← Docs hub

Maintainer guide

This directory is the governance scaffold for llmwiki maintainers. Contributors should read ../../CONTRIBUTING.md first — it has the short version of what this folder covers in detail.

Docs at a glance

File What it's for
ARCHITECTURE.md One-page system diagram + layer boundaries + what NOT to add
AWOS-CURSOR.md Cursor-compatible AWOS install (Layers A–C, recruitment MCP, companion plugins)
AGENT-WORKFLOW-ALTERNATIVES.md Cursor-ready SDD alternatives vs AWOS — #114 pitfalls, features, learning curve
REVIEW_CHECKLIST.md Canonical code-review criteria — apply to every incoming PR
RELEASE_PROCESS.md Version bump → CHANGELOG → tag → release.yml checklist (canonical order; cut via /release skill)
TRIAGE.md Label taxonomy + triage rules + stale-issue policy
DECLINED.md Graveyard of declined ideas with dates + reasons
../../context/product/roadmap.md The roadmap — phases, what is next, and which issue delivers each item
REFRESH_DEMO.md Local command that incrementally regenerates demo/ from git-detected docs/ changes — needs a working copy and a synth backend; never runs in CI
surfaces/ Per-page behavioural specs for the built site — scan the relevant Must lines when reviewing a UI PR

Slash commands

Three commands drive maintainer work, and all three live in .claude/commands/. Both Claude Code and Cursor read top-level .claude/commands/*.md, so one file per command serves both surfaces and no per-surface duplicate is needed; Cursor also reads .claude/skills/ and .claude/agents/ natively. Only a nested .claude/commands/<ns>/ namespace is invisible to Cursor and needs a flat wrapper — the full discovery model, the symptoms it explains, and how to re-verify it live in AWOS-CURSOR.md. llmwiki install-agent-kit ships none of them — the vault commands it does ship are in ../reference/slash-commands.md.

Both delivery commands are generated by AWOS from the decisions in ../../context/product/delivery-flow.md — to change how they behave, change those decisions (and record the edit under that file's Local Customizations), then re-run /awos:flow instead of hand-editing the command files.

/awos:flow itself is plugin-provided, not a file in this repo's .claude/commands/. On Claude Code it arrives with /plugin install awos@awos-marketplace; Cursor has no plugin runtime, so ./scripts/update-awos.sh --plugin generates .cursor/commands/awos-flow.md via scripts/sync-awos-plugin-cursor.sh and the slash name there is /awos-flow. See AWOS-CURSOR.md.

Code review uses REVIEW_CHECKLIST.md directly (or via the single independent review stage inside /implement-feature / /fix-bug, where the coding agent picks its own most suitable review skill or command).

The nine /awos:* commands are the one exception to the single-file rule: Cursor does not read nested .claude/commands/<ns>/, so each also needs a flat .cursor/commands/awos-*.md wrapper, and the slash name differs per surface — /awos:product on Claude, /awos-product on Cursor. Both trees are generated from .awos/commands/ by scripts/sync-awos-cursor-commands.sh. Of those, product, roadmap, architecture and hire are the human-invoked ones that populate context/product/; spec, tech, tasks, implement and verify are invoked internally by /implement-feature and are not normal entry points. tests/test_command_surface_parity.py guards both halves: every nested namespace keeps its flat wrapper, and no top-level command grows a redundant Cursor duplicate.

When things go wrong

Why a dedicated maintainer folder?

Because maintainer docs have a different audience than user docs. User docs go in docs/ (rendered on the site). Maintainer docs stay here — they're less polished, more operational, and they change with the team rather than with releases.

Keep this folder short. When a doc is over one screen, prune.

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date