From 8941e131e84ad2c4096a96b54501731a488c67b2 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 14 Jun 2026 21:14:26 +0200 Subject: [PATCH] research: UseModWiki deep dive (flat-file ancestor); SHARD-WP-0003 done SHARD-WP-0003 T9 (final). Lineage dive: the flat-file ancestor (Clifford Adams c.2000, from AtisWiki/CvWiki) that early Wikipedia ran on (MediaWiki Phase I). No new capability -- reinforces the minimal flat-file floor (UC-82) and CamelCase linking (UC-25); historical grounding that the file-store floor is the field's common root. Enrichment-only: UC-01/40/25/36/41. Marks T9 done and SHARD-WP-0003 complete (9/9). Feeds SHARD-WP-0002 T11. Co-Authored-By: Claude Opus 4.8 --- SCOPE.md | 4 +- .../260614-usemodwiki-deep-dive/README.md | 14 +++ .../260614-usemodwiki-deep-dive/findings.md | 87 +++++++++++++++++++ research/README.md | 3 +- spec/UseCaseCatalog.md | 32 ++++++- workplans/SHARD-WP-0003-engine-dives-batch.md | 4 +- 6 files changed, 137 insertions(+), 7 deletions(-) create mode 100644 research/260614-usemodwiki-deep-dive/README.md create mode 100644 research/260614-usemodwiki-deep-dive/findings.md diff --git a/SCOPE.md b/SCOPE.md index db1b31e..566a522 100644 --- a/SCOPE.md +++ b/SCOPE.md @@ -19,10 +19,10 @@ Learnings update both SCOPE and INTENT where necessary. |-------|-------| | Code | Python package scaffold (`src/shard_wiki/`, smoke tests only) | | Intent | `INTENT.md` established; authorization-in-core amendments drafted | -| Research | yawex prior art; c2 origins; federation concepts; wikiengines overview (`research/260608-*/`); XWiki/TWiki/Foswiki deep dives (`research/260613-*/`); Xanadu + ZigZag + Roam + Obsidian + Notion + Joplin + Logseq + local-first workspaces (Anytype/AFFiNE/AppFlowy) + Trilium + Wiki.js + Federated Wiki + Wikibase + git-forge wikis + TiddlyWiki + ikiwiki + Quip + MojoMojo + Oddmuse deep dives & shard-spectrum synthesis (`research/260614-*/`) | +| Research | yawex prior art; c2 origins; federation concepts; wikiengines overview (`research/260608-*/`); XWiki/TWiki/Foswiki deep dives (`research/260613-*/`); Xanadu + ZigZag + Roam + Obsidian + Notion + Joplin + Logseq + local-first workspaces (Anytype/AFFiNE/AppFlowy) + Trilium + Wiki.js + Federated Wiki + Wikibase + git-forge wikis + TiddlyWiki + ikiwiki + Quip + MojoMojo + Oddmuse + UseModWiki deep dives & shard-spectrum synthesis (`research/260614-*/`) | | Demand | NetKingdom integration asks captured, not yet negotiated | | Spec | Architecture blueprint drafted; UseCaseCatalog 82 UCs from research; PRD/TSD scaffolds | -| Work | `SHARD-WP-0001` active (6 tasks); `SHARD-WP-0002` active (16 tasks: T1–T10 federation + T11–T16 adapter contract); `SHARD-WP-0003` active (9 engine dives); `SHARD-WP-0004` active (8 computational-knowledge dives) | +| Work | `SHARD-WP-0001` active (6 tasks); `SHARD-WP-0002` active (16 tasks: T1–T10 federation + T11–T16 adapter contract); `SHARD-WP-0003` **done** (9 engine dives complete); `SHARD-WP-0004` active (8 computational-knowledge dives) | ## In Scope (today) diff --git a/research/260614-usemodwiki-deep-dive/README.md b/research/260614-usemodwiki-deep-dive/README.md new file mode 100644 index 0000000..0002217 --- /dev/null +++ b/research/260614-usemodwiki-deep-dive/README.md @@ -0,0 +1,14 @@ +# 260614 — UseModWiki deep dive + +Deep dive on **UseModWiki**: the **flat-file ancestor** — a Perl CGI wiki (Clifford Adams, +2000) descended from AtisWiki/CvWiki, **CamelCase** linking, plain flat-file page + history +storage, and the **engine Wikipedia originally ran on** (MediaWiki Phase I). Origins/lineage +value: the minimal flat-file page+history model the whole field descends from. + +- `findings.md` — the model, lineage, capability profile, INTENT mapping, enrichments (no new + UC — reinforces the minimal flat-file baseline UC-82), architecture notes, sources, + traceability. + +Catalog yield: **enrichment-only** (reinforces UC-82) — enriched UC-01 (open wiki), UC-40 +(flat-file store), UC-25 (CamelCase naming), UC-36/41 (flat-file history). Lineage noted for +the origins record. Feeds SHARD-WP-0002 T11 (minimal profile lineage). diff --git a/research/260614-usemodwiki-deep-dive/findings.md b/research/260614-usemodwiki-deep-dive/findings.md new file mode 100644 index 0000000..12d53b9 --- /dev/null +++ b/research/260614-usemodwiki-deep-dive/findings.md @@ -0,0 +1,87 @@ +# UseModWiki — deep dive (findings) + +**Date:** 2026-06-14 · **Source:** SHARD-WP-0003 T9 · **Subject:** UseModWiki, Clifford +Adams's flat-file Perl wiki — the lineage root of much of the field. + +## Why this dive + +This is a **lineage** dive, not a new-capability one. UseModWiki is the **ancestor**: the +minimal flat-file page+history wiki the c2-era engines and **MediaWiki Phase I** descend +from (Wikipedia ran on UseModWiki, 2001–2002). It pairs with +`research/260608-c2-wiki-origins/` to record *where the page+history model came from*. It +adds no new shard capability beyond the minimal flat-file floor (UC-82, Oddmuse) — its value +is **historical grounding** and confirming the floor is genuinely the field's common root. + +## 1. The model + +- **Perl CGI** (`wiki.pl`), single-script, descended from AtisWiki → CvWiki → UseModWiki + (c. 2000), by Clifford Adams. +- **Flat-file storage**: each page stored as a text file (under a `db/` data directory), + with **page history** kept (older revisions retained as files / in the page record). No + database. +- **Linking**: **CamelCase** (`WikiWord`) auto-links by default; later added **free links** + `[[Like This]]`. This is the canonical CamelCase-naming lineage (UC-25). +- **Open editing**, recent-changes, simple markup — the c2 ethos in a portable script. + +## 2. Lineage + +- **MediaWiki Phase I** *was* UseModWiki — early Wikipedia ran on it before the PHP rewrite + (Phase II/III). So UseModWiki is the **direct ancestor of MediaWiki/Wikibase** (T2) and a + sibling-root of the c2 tradition. +- The **flat-file page+history model** here is the shape Oddmuse (UC-82), TWiki's file store + (UC-40), and others elaborate — confirming the **minimal file-store floor** is the field's + common origin, not a modern simplification. + +## 3. Capability profile + +Essentially **identical to the minimal floor** (UC-82, Oddmuse): + +| Dimension | UseModWiki | +|-----------|------------| +| Attachment mode | **file-store** (flat files under `db/`); CGI, no API | +| Addressing | page = file; **CamelCase** name = identity | +| Structure | flat page space; CamelCase link graph | +| History | flat-file retained revisions (may be limited) | +| Native query | none | +| Translation | simple wiki markup → Markdown (lossy) | +| Write granularity | page (file) | +| Access | open editing (optional admin password) | +| Provenance | timestamp, optional username | + +## 4. INTENT mapping + +- **Reinforces the minimal flat-file baseline** (UC-82): UseModWiki is the *historical* + instance of the graceful-degradation floor — attach via its flat files; partial history + surfaced honestly. +- **CamelCase naming** (UC-25): the canonical source of WikiWord auto-linking — the page + model's name/identity and link-resolution must accommodate CamelCase-derived identities. +- **Open wiki** (UC-01): the c2 open-editing ethos at the root. +- **Lineage grounding**: confirms shard-wiki's "Git-based Markdown" page model descends from + (and must remain attach-compatible with) the flat-file ancestor. + +**No new UC** — UseModWiki adds historical grounding, not a new orchestration scenario; +its capabilities are subsumed by UC-82 (minimal flat-file baseline) plus UC-25 (CamelCase). + +## 5. Architecture notes for SHARD-WP-0002 + +- **T11:** UseModWiki = a second instance of the **minimal/floor profile** (with Oddmuse); + confirms the floor is the field's common root, so the floor profile is the right baseline. +- **Naming/identity:** CamelCase-derived page identities (UC-25) are part of the legacy + identity surface the adapter must parse (and translate to the page model's identity). + +## 6. Open questions + +(None new — covered by UC-82 partial-history honesty, catalog open-Q30, and the c2 origins +record. CamelCase resolution is UC-25.) + +## 7. Sources + +- UseModWiki — usemod.com/cgi-bin/wiki.pl (the wiki about itself); Wikipedia: *UseModWiki*, + *MediaWiki* (Phase I history) +- prior: `research/260608-c2-wiki-origins/`; `research/260614-oddmuse-deep-dive/` (minimal + floor, UC-82) + +## 8. Traceability + +**No new UC** (reinforces UC-82). Enriched: UC-01, UC-40, UC-25, UC-36, UC-41. Lineage noted +for the origins record. Architecture cross-ref: SHARD-WP-0002 T11 (minimal-profile lineage). diff --git a/research/README.md b/research/README.md index 41d4457..d76b21d 100644 --- a/research/README.md +++ b/research/README.md @@ -35,4 +35,5 @@ when multiple files or sources are involved. Findings here inform `spec/` and | 2026-06-14 | `260614-ikiwiki-deep-dive/` | ikiwiki — wiki compiler: git-canonical Markdown source → static HTML (derived publish/projection); git-distributed clone federation + XML-RPC pinger (third federation flavor); UC-79 | | 2026-06-14 | `260614-quip-deep-dive/` | Salesforce Quip — closed-SaaS live docs + embedded spreadsheets/live apps; REST + lossy HTML import/export; Salesforce enterprise ACL; external-API payload-format facet + inline-object page model; UC-80 | | 2026-06-14 | `260614-mojomojo-deep-dive/` | MojoMojo — Perl Catalyst/DBIx::Class DB-backed wiki; pages + history in SQL tables, no file store/API → direct-DB-read binding; DB version rows as history source; UC-81 | -| 2026-06-14 | `260614-oddmuse-deep-dive/` | Oddmuse — single Perl CGI, plain-text `page/` files + `keep/` revisions, no DB; the minimal file-store floor / graceful-degradation baseline; partial-history honesty; UC-82 | \ No newline at end of file +| 2026-06-14 | `260614-oddmuse-deep-dive/` | Oddmuse — single Perl CGI, plain-text `page/` files + `keep/` revisions, no DB; the minimal file-store floor / graceful-degradation baseline; partial-history honesty; UC-82 | +| 2026-06-14 | `260614-usemodwiki-deep-dive/` | UseModWiki — flat-file ancestor (Wikipedia's MediaWiki Phase I); CamelCase linking; lineage grounding for the minimal file-store floor; enrichment-only (reinforces UC-82, UC-25) | \ No newline at end of file diff --git a/spec/UseCaseCatalog.md b/spec/UseCaseCatalog.md index af21a2c..c00347e 100644 --- a/spec/UseCaseCatalog.md +++ b/spec/UseCaseCatalog.md @@ -19,7 +19,8 @@ Promoted from `research/260608-c2-wiki-origins/`, `research/260614-ikiwiki-deep-dive/`, and `research/260614-quip-deep-dive/`, and `research/260614-mojomojo-deep-dive/`, and -`research/260614-oddmuse-deep-dive/`. +`research/260614-oddmuse-deep-dive/`, and +`research/260614-usemodwiki-deep-dive/`. See InfoTechPrimers on coulomb.social for use-case catalog conventions. ## Conventions @@ -1371,7 +1372,11 @@ sub-page/per-assertion provenance even if MVP records it per page. reduce ambiguity across the information space. **Source:** c2, yawex **Notes:** c2 flat namespace + `WikiWord` / `Precise` principle; yawex -CamelCase and `[[free links]]`. Markdown-first link semantics TBD. +CamelCase and `[[free links]]`. Markdown-first link semantics TBD. **UseModWiki** is the +canonical lineage source of **CamelCase auto-linking** (later adding `[[free links]]`) — and +the engine **early Wikipedia ran on** (MediaWiki Phase I), so CamelCase-derived page +identities are part of the legacy identity surface the adapter must parse and translate +(UC-82, `research/260614-usemodwiki-deep-dive/findings.md` §1, §2). **Priority:** Later --- @@ -2081,6 +2086,29 @@ recorded:** degrade to read/projection/overlay/backup; write-through (page + kee under the lock) only carefully. Architecture logged for `SHARD-WP-0002` (T11/T13): minimal/ floor capability profile, partial-history import with completeness metadata. +### usemodwiki mapping + +(Lineage dive — **no new UC**; reinforces UC-82. Source: the **UseModWiki deep dive**, +`research/260614-usemodwiki-deep-dive/findings.md`.) + +| UseModWiki mechanism (findings §) | Catalog UC | +|-----------------------------------|------------| +| Perl CGI flat-file page+history store (`db/`); the field's ancestor (§1, §2) | UC-82 (reinforced); UC-40 (enriched) | +| CamelCase auto-linking (+ later `[[free links]]`) (§1) | UC-25 (enriched) | +| Open-editing c2 ethos at the root (§1) | UC-01 (enriched) | +| Flat-file retained revisions (§1) | UC-36 / UC-41 (enriched) | +| MediaWiki Phase I = UseModWiki → ancestor of MediaWiki/Wikibase (§2) | links UC-73 (Wikibase lineage) | + +Note: UseModWiki is a **lineage** dive — the **flat-file ancestor** (Clifford Adams, c. 2000, +from AtisWiki/CvWiki) that **early Wikipedia ran on** (MediaWiki Phase I). It adds **no new +shard capability**: its profile is the **minimal flat-file floor** already captured by UC-82 +(Oddmuse), and its CamelCase linking is UC-25. Its value is **historical grounding** — +confirming the minimal file-store floor is the field's *common root*, not a modern +simplification, and that shard-wiki's Git-based-Markdown page model must remain +attach-compatible with that ancestor (flat files + CamelCase identities + partial history). +Architecture: a second instance of the **minimal/floor profile** (T11) and the CamelCase +identity surface (UC-25) the adapter must parse/translate. + --- ## Open questions diff --git a/workplans/SHARD-WP-0003-engine-dives-batch.md b/workplans/SHARD-WP-0003-engine-dives-batch.md index ae87f3c..de6498c 100644 --- a/workplans/SHARD-WP-0003-engine-dives-batch.md +++ b/workplans/SHARD-WP-0003-engine-dives-batch.md @@ -4,7 +4,7 @@ type: workplan title: "wiki-engine deep-dive batch (new-insight + git-forge + classic engines)" domain: whynot repo: shard-wiki -status: active +status: done owner: tegwick topic_slug: whynot created: "2026-06-14" @@ -178,7 +178,7 @@ history), UC-34 (structured fields); feed `SHARD-WP-0002` T13/T14. ```task id: SHARD-WP-0003-T9 -status: todo +status: done priority: low state_hub_task_id: "119c6d50-deaa-45ee-bb44-271985974d89" ```