Wiki Page Format
Every wiki page should tell a future agent what is true now, why it is true, where it belongs, and what to update next.
Routing
Open Filing Decision Tree first when the question is where a page belongs. Open this page before creating or substantially rewriting the page body, especially for source-backed articles, entity pages, tool pages, protocols, and long references.
The wiki is compiled knowledge, not a transcript archive. Page format exists so agents can distinguish current synthesis from evidence history, route pages consistently, preserve provenance, and avoid graph drift. Source: AGENTS.md Page Format
Required Frontmatter
---
title: Page Title
type: skill | style | architecture | postmortem | design | tool | workflow | research | concept | person | project | place | philosophy | pattern | tension | era | transition | decision | career | finance | interview-prep | meta | story | asset
created: YYYY-MM-DD
updated: YYYY-MM-DD
source: Source description
tags: [lowercase, hyphenated]
related: ["[[Other Page]]"]
---
Keep the seven required keys in the order shown. tags, related, and aliases are YAML lists; values must be unique, and tags must be lowercase with hyphens instead of spaces. Use the closest semantic type, not the physical directory at all costs. For operational namespaces such as resolver/, skill-resolver/, soul/, user/, heartbeat/, and agent-docs/, type: meta is usually correct unless the page is clearly a story, workflow, tool, or concept.
Optional but important:
aliases: required forpersonpages, useful for tools/projects/renamed pages.tier:1,2, or3for enrichment priority.longform: true: for coherent reference pages that are intentionally long.relationships: typed links when a page uses, extends, contradicts, or supersedes another page.generated: true: for generated source views when the generator supports it. Generated pages must also follow Generated Surface Contract.routing_summary: compact trigger guidance when a page is loaded by agents or context routers.structure_lint: false: reserved for immutable archive bodies that intentionally embed complete Markdown documents. Addstructure_lint_reasonwhenever this escape hatch is used. Metadata checks still apply.
Body Structure
# Title> One-line summary that says what the page does- Current compiled truth organized by theme
- Decision tables, routing rules, examples, or failure modes when useful
---separator when required## Timeline- Append-only dated evidence entries
The separator is required for person, project, tool, and any page over 50 lines. Above the separator is rewritten when the current synthesis changes. Below it is append-only evidence.
Lint-Enforced Consistency
npm run lint-wiki enforces the page contract across authored and generated pages. It blocks malformed or incomplete metadata, reordered required keys, duplicate list values, ambiguous page titles, multiple or misplaced H1 headings, title/H1 disagreement, skipped heading levels, duplicate sibling headings, empty sections, missing heading boundaries, missing lead summaries, and malformed or misplaced timelines. It also detects duplicate authored titles across directories while allowing generated skill projections to mirror their canonical owners.
Run npm run lint-wiki -- --verbose to see every affected file. Structural exceptions require structure_lint: false plus a reason in frontmatter; use that only when preserving nested source documents is the page's purpose.
Page Shape Variants
| Shape | Use for | Required behavior |
|---|---|---|
| Canonical synthesis article | Concepts, tools, projects, philosophies, design/style, architecture | Lead with the current model, not source chronology. |
| Entity page | Person, project, tool, institution | Include aliases/tier when relevant and keep timeline append-only. |
| Protocol or workflow | Meta/process pages | Include trigger, procedure, failure modes, verification, and closeout. |
| Directory hub/README | Category navigation | Explain what belongs, what does not, and first pages to read. |
| Resolver companion | wiki/resolver/ or wiki/skill-resolver/ extract |
Point back to the canonical resolver; do not fork the rule. |
| Generated source view | wiki/skills/<category>/ or another derived context view |
Do not hand-edit generated bodies; update source and regenerate. |
| Ledger | Low-signal entities or compact inventories | Include aliases, promotion criteria, and source references. |
| Redirected/folded topic | Retired page identity | Preserve retrieval via aliases or wiki/meta/wiki-redirects.json. |
Compiled Truth
Compiled truth is the current best understanding. Rewrite it when better evidence arrives. Good compiled truth:
- starts with the key insight
- groups facts by theme
- links to related pages inline
- names contradictions when they matter
- removes stale wording instead of appending historical layers
- states ownership boundaries when adjacent pages are easy to confuse
Canonical format versus portable format
This schema is canonical and may be richer than an interchange format. Do not
rename fields, replace wikilinks, expose private source paths, or reshape the
operating log merely to make authored files look like OKF. The deterministic
OKF v0.2 projector maps public pages into ordinary Markdown links,
sources[], generated, reserved indexes, and a sanitized log. Unknown
Kevin-specific provenance remains an explicit tolerated extension; verification
and freshness are never invented. Source: Open Knowledge Format (OKF); OKF v0.2
SPEC
Timeline Entry Format
Timeline entries are evidence, not a second article. Format:
- **YYYY-MM-DD** | What happened and why it matters. [Source: source name, date]
Use full dates when the evidence provides them. When source precision is lower, use a bounded machine-readable label such as YYYY, YYYY-MM, YYYY-Fall, Pre-YYYY, or an explicit range joined by to or →. Do not use life-stage labels such as “freshman year” as the date key; keep that context in the evidence text.
Never silently delete a timeline entry. If a past entry was wrong, append a correction entry with the new evidence.
Computed Backlink Rendering
Do not author a ## Backlinks section. Backlinks are computed from wiki/_backlinks.json and rendered by the UI. Manual backlink sections create dead placeholders and pollute the graph. Use related: frontmatter and inline [[wikilinks]] for outgoing connections.
Length
Length follows the subject:
- under 15 lines: likely a stub; merge unless it has clear identity or redirect value
- 30-150 lines: normal compiled page
- over 400 lines: mark
longform: trueor split if it is really multiple topics
Do not split a coherent reference page just to satisfy a line count. Do split when one page has two durable subjects with different update paths.
Closeout
After substantive page edits, follow Index Logging Protocol:
npx tsx scripts/build-index.ts
qmd update && qmd embed
Run narrower doctors when the edit touches routing, generated views, skills, config, or schema.
Timeline
- 2026-09-12 | Added blocking consistency rules for metadata order and shape, page identity, heading outlines, section boundaries, lead summaries, duplicate authored titles, and terminal machine-readable timelines. Added a reasoned archival-body escape hatch. Source: User request, 2026-09-12;
scripts/lib/wiki-page-consistency.ts - 2026-08-11 | Separated canonical page authoring from the OKF v0.2 public projection so interoperability cannot flatten evidence/review structure or bypass privacy. Source: OKF v0.2 SPEC; local exporter
- 2026-07-22 | Added
financeas a recognized semantic type for the new restricted personal-finance category. Source: User request, 2026-07-22 - 2026-07-01 | Linked generated-page formatting to Generated Surface Contract so page shape and generated ownership use the same source/projection rule. Source: User request, 2026-07-01
- 2026-07-01 | Updated page format for the current wiki shape: resolver companions, generated skill pages, operational identity subtrees, page shape variants, and expanded frontmatter guidance. Source: User request, 2026-07-01
- 2026-06-18 | Expanded page format into an agent-ready schema with frontmatter, compiled-truth, timeline, backlink, and length rules. Source: User request, 2026-06-18; AGENTS.md
- 2026-05-31 | Meta page extracted from AGENTS.md page format contract. Source: AGENTS.md