Files
tegwick 7d1fb97968 research: write up wiki-engines landscape scan; send IAM demand to netkingdom
- Add README.md + findings.md to research/260608-wikiengines-overview/ to
  match sibling research convention (was a bare Perplexity dump). findings.md
  synthesizes the engine landscape into adapter-contract implications and maps
  to INTENT (capability heterogeneity, L0->L4 ladder, backend-neutrality).
- Mark the netkingdom integration demand as sent: capability request
  3136a9e2 (auto-routed to netkingdom) + inbox message 46c60f17.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 18:18:45 +02:00

8.2 KiB

Findings — Wiki engine landscape and what it implies for shard-wiki

Date: 2026-06-08 · Status: research draft

Scope: a breadth-first scan of notable wiki engines, read through one question — what does this engine's storage and permission model demand of a shard adapter, and what must shard-wiki therefore NOT assume is uniform? This is landscape, not selection: shard-wiki orchestrates over these, it does not pick one.

Complements: research/260608-federation-concepts/ (federation mechanics) and research/260608-c2-wiki-origins/ (origin culture). Raw source kept alongside as 260608-perplexity-wikiengines-research.md.


1. The engines, by what they actually are

The "wiki" label spans at least four distinct system shapes. Conflating them is exactly the mistake shard-wiki's adapter contract exists to prevent.

Shape Engines Storage Permission model Page format
Simple page editor C2 (origin), DokuWiki flat files (DokuWiki: no DB) open / htaccess / ACL plugin wiki markup
App platform XWiki, TWiki, Foswiki DB + structured objects fine-grained, per-space, forms/workflow macro markup
Internet-scale collaborative MediaWiki, Semantic MediaWiki DB + revision tables role/group, extension-driven wikitext (+ semantic annotations)
Personal / single-file TiddlyWiki, (Obsidian) one HTML file / local vault user-managed, not multi-user tiddlers / Markdown
Federated / distributed Federated Wiki, Fossil, ikiwiki per-site JSON / repo per-site sovereignty / VCS auth JSON story+journal / files
Commercial benchmark Confluence proprietary store mature enterprise ACL + SSO proprietary

The same word, six storage substrates and at least five permission philosophies.

2. The two axes that matter for orchestration

Stripping the marketing, engines differ on two axes shard-wiki must model explicitly rather than flatten:

  1. Storage substrate — flat files (DokuWiki, Fossil), single file (TiddlyWiki), relational DB + revision tables (MediaWiki, XWiki, Confluence), per-site JSON journals (Federated Wiki), git repo (Fossil, ikiwiki, Gitea wikis).
  2. Permission philosophy — open-by-default (C2), file/htaccess gating (DokuWiki, yawex), per-space/per-page enterprise ACL (Foswiki, XWiki, Confluence), VCS-level auth (Fossil), or none / user-managed (TiddlyWiki).

These map directly onto two INTENT concepts:

  • Storage substrate → the shard adapter contract must not assume one backend.
  • Permission philosophy → validates the L0→L4 access ladder: real engines already span "open C2" to "enterprise ACL + SSO". shard-wiki's ladder is not invented; it's the union of where these engines actually sit.

3. Capability heterogeneity (why "capability-aware" is non-negotiable)

The scan concretely demonstrates the INTENT principle capability-aware adapters:

Operation Always available? Counter-example
Read ~yes Confluence behind SSO: not without auth
Write no C2 today is read-only/archival; MediaWiki dumps are read-only
Structured diff/merge no DB-backed engines expose revisions but not git-style 3-way merge
Semantic query rarely only Semantic MediaWiki / XWiki
Single-file atomicity special TiddlyWiki is whole-file, not per-page, writes
Native VCS history sometimes Fossil/ikiwiki yes; Confluence no (internal only)

No adapter can assume a peer supports its own operation set — the capability profile per shard is load-bearing, not decorative.

4. Mapping to shard-wiki INTENT (compare, do not equate)

4.1 Reinforcements (engines confirm an INTENT stance)

Observation INTENT principle confirmed
Six storage substrates under one word Markdown-first, backend-neutral; adapter contract
Permission philosophies span open→enterprise Open by default, progressively governed (L0→L4)
DB engines expose revisions but not portable history Git-addressable coordination adds the missing portable journal
TiddlyWiki/Obsidian = sovereign personal stores Local-first usefulness; shards, not replacements
Federated Wiki = union composed from many origins Union without erasure
Confluence/Foswiki = mature ACL but lock-in shard-wiki delegates IAM, never owns identity

4.2 Deliberate divergences (design bugs if conflated)

Engine assumption shard-wiki correction
"Pick the one engine for your team" shard-wiki attaches many as shards; not a single choice
App-platform macros define the page Markdown-first; engine-specific render stays out of core
Permissions live in the engine's DB Authorization in core, identity delegated — uniform across shards
History = the engine's revision table Coordination journal is space-level, git-backed, portable
Federation = everyone runs the same engine Adapter contract spans heterogeneous, non-git, capability-limited backends

4.3 What the landscape teaches that shard-wiki should not lose

  1. Don't homogenize — the heterogeneity is the user's reality, not a defect to fix.
  2. Openness and governance are a spectrum, not a toggle — engines live at every point C2→Confluence; the ladder must too.
  3. Structured/semantic pages exist (Semantic MediaWiki, XWiki) — Markdown-first must degrade gracefully when a shard carries structure shard-wiki can't model yet.
  4. Single-file/whole-vault write granularity (TiddlyWiki) breaks per-page write assumptions — the capability profile must express write granularity.

5. Implications for the adapter contract (carry to SHARD-WP-0002)

  1. Capability profile must encode write granularity (per-page vs whole-file vs whole-space) — TiddlyWiki and DB engines differ here.
  2. History portability is an adapter concern — engines with internal-only revisions (Confluence, MediaWiki) need the coordination journal to supply the git-addressable layer they lack.
  3. Structured/semantic payloads need a passthrough/provenance escape hatch so Semantic MediaWiki / XWiki content isn't silently flattened to lossy Markdown.
  4. Permission model is never trusted from the shard — even engines with rich internal ACLs are authorized through shard-wiki's core, not their DB.

6. Open questions (for spec / workplans)

  1. How does shard-wiki represent structured/semantic pages (Semantic MediaWiki, XWiki objects) — lossy Markdown projection, sidecar metadata, or opaque blob?
  2. Write granularity in the capability profile — what's the vocabulary (per-page / per-file / per-space / append-only)?
  3. For engines with internal-only history (Confluence), is the git coordination journal authoritative, or a mirror with reconciliation back?
  4. Which of these engines get first-class adapters vs are reachable only via a generic file/WebDAV adapter?

7. Sources

Source URL
Perplexity — wiki engines scan (raw, this dir) 260608-perplexity-wikiengines-research.md
C2 — Top Ten Wiki Engines http://c2.com/cgi/wiki?TopTenWikiEngines
C2 — WikiEngines https://wiki.c2.com/?WikiEngines
Comparison of wiki software https://www.wikiwand.com/en/articles/Comparison%20of%20wiki%20software
WikiMatrix engine comparison https://www.wikimatrix.org/
Wiki.js https://js.wiki
Foswiki https://en.wikipedia.org/wiki/Foswiki
Fossil (software) https://en.wikipedia.org/wiki/Fossil_(software)
shard-wiki — federation concepts research/260608-federation-concepts/findings.md
shard-wiki — INTENT INTENT.md

8. Traceability

This document section Informs (future)
§2 two axes Access ladder (INTENT) + adapter contract guardrails
§3 capability heterogeneity Adapter capability profile design
§4 INTENT mapping Architecture blueprint guardrails
§5 adapter implications workplans/SHARD-WP-0002-federation-architecture.md
§6 open questions spec — page model for structured/semantic content