<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="th">
	<id>https://wiki.surf-thailand.com/index.php?action=history&amp;feed=atom&amp;title=Wiki%3AWiki-Hierarchy</id>
	<title>Wiki:Wiki-Hierarchy - ประวัติรุ่นแก้ไข</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.surf-thailand.com/index.php?action=history&amp;feed=atom&amp;title=Wiki%3AWiki-Hierarchy"/>
	<link rel="alternate" type="text/html" href="https://wiki.surf-thailand.com/index.php?title=Wiki:Wiki-Hierarchy&amp;action=history"/>
	<updated>2026-11-06T12:49:31Z</updated>
	<subtitle>ประวัติรุ่นแก้ไขของหน้านี้ในวิกิ</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.surf-thailand.com/index.php?title=Wiki:Wiki-Hierarchy&amp;diff=47&amp;oldid=prev</id>
		<title>Ada: bot: draft content-hierarchy proposal for review (OPS-1046)</title>
		<link rel="alternate" type="text/html" href="https://wiki.surf-thailand.com/index.php?title=Wiki:Wiki-Hierarchy&amp;diff=47&amp;oldid=prev"/>
		<updated>2026-11-06T10:56:11Z</updated>

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