-
Notifications
You must be signed in to change notification settings - Fork 0
Wiki Structure and Conventions
type: reference up: "What-is-the-llm-wiki-Template" related:
- "What-is-the-llm-wiki-Template"
- "Everyday-Operations"
- "Knowledge-Graph"
- "Best-Practices"
- "Concepts-Glossary" source: "https://github.com/crcresearch/llm-wiki-memory-template/blob/main/wiki/init-wiki.sh" tags: [reference, conventions, structure, frontmatter]
The files, frontmatter, and link conventions that make a template wiki navigable and queryable. This page is grounded in the generated SCHEMA_<project>.md, wiki/init-wiki.sh, and Edge-Types.md; defer to your project's own SCHEMA_<project>.md when in doubt, since it is the authoritative reference.
wiki/init-wiki.sh scaffolds a namespaced wiki. In this bundle the files are:
-
Home_<project>.md— the human-facing entry point. -
Home.md— a GitHub-wiki redirect toHome_<project>.md(never edited). -
index_<project>.md— the catalog of all pages. -
log_<project>.md— the append-only chronological record. -
SCHEMA_<project>.md— the authoritative conventions reference. -
Edge-Types.md— the typed-edge vocabulary.
The <project> suffix (here llm-wiki-KB) namespaces the special files so multiple wikis can be aggregated into a single Obsidian vault without index.md/log.md name collisions. init-wiki.sh is idempotent and auto-detects create-vs-update mode: on a fresh repo it scaffolds; on an existing wiki it patches the SCHEMA and CLAUDE.md up to current conventions. Execute it, do not reimplement it.
The human-facing entry point: a project description plus a ## Categories section that mirrors the top-level categories in the index, with one to three representative links per category. It is a curated navigation surface, not a comprehensive catalog (that is the index's job). Update it when a new top-level category emerges or when a page significant enough to be a category's representative link lands; routine additions inside an existing category are index-only.
The content-oriented catalog: every page listed with a one-line description, organized by category. The LLM updates it on every ingest, and reads it first when answering a query to find which pages are relevant, then drills in. At moderate scale this index-first navigation replaces the need for embedding-based RAG infrastructure.
The chronological, append-only record of wiki activity: ingests, queries, lint passes, updates. Each entry is a heading ## [YYYY-MM-DD] <verb> | <Subject> (verbs: ingest, query, lint, update, create), and the first bullet is always the attribution line - by: <human> via <agent>, where <human> is git config user.name in the wiki repo (read it, do not invent it). Then two to five bullets of substance. Discipline: one commit per log entry, committed separately from the page/index changes, so git blame on the log stays a faithful per-entry record. See Everyday-Operations.
The authoritative conventions reference: page format, required and optional frontmatter, the two structured page types (analysis, decision) and their required sections, naming, cross-reference styles, the edges-as-interface-operations model, the topology-vs-content retrieval guidance, log attribution, and the Ingest/Query/Lint procedures. When any other document (including this bundle) disagrees with your SCHEMA_<project>.md, the SCHEMA wins for your project.
The canonical list of typed-edge predicates available in the wiki (16 forward predicates: up, source, extends, supports, criticizes, concept, partOf, dependsOn, defines, resolvedBy, incorporatedInto, outOfScopeFor, precedes, feedsInto, related, mentions). You reference it in two ways: by choosing predicates for your frontmatter, and by inline "Variant 1" annotations on body links (a content link followed by a parenthesized italic link to the predicate's anchor, e.g. [Theory X](Theory-X) ([*extends*](Edge-Types#extends))). Forward predicates are author-facing; inverse predicates (extendedBy, supportedBy, ...) are materialized by the KG pipeline, never authored by hand. See Knowledge-Graph.
Required on every page: type: and up:. Optional and commonly used: tags: and the typed edges source:, extends:, supports:, criticizes:, related: (plus derived_from: for analysis pages and decided_at: for decision pages). The seed question also names an area: field; in this template area is not a standard authored field, tags: plays the topical-clustering role, though the KG pipeline does materialize an "area inheritance" relation derived from the LA3D ontology. Treat type, up, tags, and the typed edges as the authoring vocabulary. Rule: every page gets frontmatter, no exceptions; use type: untyped rather than skipping it.
The SCHEMA's type: vocabulary: concept, entity, source-summary, synthesis, analysis, decision, index, comparison, and untyped. Most types have no required structure beyond the general page format. Two are query-driven and do have required sections:
-
analysis— a fileable synthesis answer. Requires Question / Context / Analysis / Conclusion / Open follow-ups and aderived_from:frontmatter field. -
decision— a design choice with rationale. Requires Question / Options considered / Decision / Rejected alternatives / Revisit triggers and adecided_at:field.
(The KG ontology's node vocabulary includes near-equivalents like Concept, Synthesis, Entity, Index, SourceSummary; the SCHEMA type: values are what you author.)
Two notations, deliberately different by location:
-
Body text:
[Display Text](Page-Name)(GitHub-wiki style). Emits amentionsedge in the graph. -
Frontmatter edge fields:
[[Page-Name]]wikilinks (Obsidian-graph compatible). Emits the typed edge named by the field.
Link concepts on first mention within a page, aim for at least two inbound and two outbound links per page, and keep links bidirectional: if A links to B, B should link back to A (typically in B's See also).
Yes. The KG extractor treats them differently. A [[Page-Name]] in a frontmatter edge field carries the typed predicate of that field (extends, supports, etc.). A [Display](Page-Name) in the body emits a generic mentions edge (weighted via RDF-star). So frontmatter edges are the semantically rich, queryable relationships; body links are the navigational mesh. The inline Variant 1 annotation lets a body link also carry a typed predicate when one clearly fits. See Knowledge-Graph.
A hub is a page with many inbound links: a page others repeatedly reference. Category indexes, foundational concept pages, and heavily-cited findings become hubs naturally as the wiki grows. The KG pipeline materializes a hub flag so topology queries can find them ("which pages are the hubs of this wiki?"). You do not declare a hub; it emerges from how often other pages link to it.
An orphan is a page with no inbound links from any other page or from the index: it exists but is invisible to the wiki's normal navigation and to retrieval. Fix it by linking it in from a relevant parent or sibling page (and adding its index entry), or, if it no longer belongs, flag it for archival. Orphan detection is one of the standard lint checks.
- What-is-the-llm-wiki-Template — orientation
- Everyday-Operations — how index, log, and pages get updated in practice
- Knowledge-Graph — how frontmatter and links become a queryable graph
-
Best-Practices — when to use
extends:versusrelated:, and keeping the wiki healthy - Concepts-Glossary — definitions of graph and frontmatter terms