Wiki:Wiki-Hierarchy
หน้าตา
Wiki content hierarchy
[แก้ไข]Status: draft for review — OPS-1046, 2026-11-06. Not yet enacted.
Quick summary: One MediaWiki, three visibility surfaces. Public News/ holds curated articles; protected PrivateNews: and Infrastructure: hold in-house content; Education: (proposed) holds the lesson ledger. Every family uses the same skeleton: tree + page roles + template + leaf rule.
Surfaces
[แก้ไข]| Surface | Hostname | Audience | Content | ||||
|---|---|---|---|---|---|---|---|
| Public wiki | wiki.h3.gizmo-thailand.com | anyone | News/ articles only | Private wiki | wiki-internal.surf-thailand.com | in-house group (Tony, Ada; KK/Nhong pending) | PrivateNews:, Infrastructure:, Education: |
The shared skeleton
[แก้ไข]Every content family follows the News contract (see News/Desks/DevNest/Projects/News-Hierarchy-v1):
- Tree position — slash path under the family root decides scope.
- Page roles — index (hub), rollup (generated child summary), leaf (one canonical item), correction.
- Leaf rule — store once at the most specific scope; parents link, never copy.
- Template — machine metadata as template params; categories are secondary nav only.
- Upsert — deterministic title = idempotency key; re-ask edits the same page.
News/ (live)
[แก้ไข]| Level | Pattern | Example | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Root | News | News | World/region | News/World, News/Regions/<Region> | News/Regions/Asia | Country | News/Countries/<Country>/<Desk> | News/Countries/Thailand | Local | News/Local/<Locality> | News/Local/Bangkok | Desk | News/Desks/<Desk>/<branch> | News/Desks/DevNest/Projects/News-Hierarchy-v1 | Leaf | one story_id, one title | News/World/AI/Test-Global-Story |
Template: แม่แบบ:NewsReport — params: story_id, status, visibility, confidence, summary, desk, geo_scope, country, region, topic, published_at, source_*, parent.
Education: (proposed — in-house gated)
[แก้ไข]Axes are domain + level + series (no geography). Level is a param/category, not a tree position.
| Level | Pattern | Example | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Root | Education: | (namespace pending — needs LocalSettings/Plesk) | Domain | Education:Domains/<Domain> | Education:Domains/Ada-Nest | Hub | series root — rollup of its leaves | Education:Domains/Ada-Nest/Map | Leaf | one lesson, one canonical title | Education:Domains/Ada-Nest/Memory-Banks | Review | living due-index | Education:Due |
- The WP lesson series convention maps 1:1: hub lesson (ada-nest-map, WP post 1608) becomes the hub page; ada-nest-* topics become leaves.
- intro|working|deep → template param +
Category:Education/Level/<level>. - Template:
แม่แบบ:EducationLesson— params: lesson_id (was lesson-<md5> slug), topic, level, source, learned_at, next_review, status, hub, series. - Education:Due is regenerated by the lessons-due job — replaces WP page education-due (post 354).
- Wikilinks give backlinks/"referenced by" for free; revisions are the audit trail.
Write/read flow
[แก้ไข]- Write: lesson-add.py → board-api
POST /lesson→ sink fan-out (WP CPT during transition, then Education: only). Callers never hold wiki creds. - Read: Tony via wiki-internal (Cloudflare Access + Google OIDC → in-house group); Ada via the same surface + wiki_read/wiki_search tools.
- Cutover: SEC-1035 boundary verified → register Education: + talk ns, protect to in-house → export WP lesson CPT → 301 wp/lesson/* permalinks → flip /lesson sink → WP CPT read-only archive.
Open questions
[แก้ไข]- KK/Nhong read path — need member accounts in the in-house group (SEC-1035 maps Tony+Ada only).
- Namespace creation needs Plesk/LocalSettings work (same path as PrivateNews:).
- Per-lesson private flag for sensitive topics once the boundary is proven.