| name | wiki |
| description | Dispatcher for the harness wiki knowledge base — routes the first token of
$ARGUMENTS to one of three subcommands: ingest, query, or lint. The corpus
lives at .oh/skills/wiki/corpus/ (entity pages) and corpus/raw/ (immutable
snapshots), owned by this skill and gitignored-by-default (curated entries are
whitelisted into git with `git add -f`). Canonical schema:
.oh/skills/wiki/references/schema.md. Full per-subcommand procedures live
in references/{ingest,query,lint}.md. Always logs per the Memory Improvement
Protocol.
TRIGGER when: "add to wiki", "capture this page", "snapshot this source",
"ingest <url|path>", or promoting a sub-agent draft -> ingest; "what does the
wiki say about X", "find wiki entries for X", "look up X in the wiki" -> query;
"lint the wiki", "regenerate the wiki index", "find stale/orphaned wiki
entries" -> lint.
|
| argument-hint | ingest <url|path> [--slug <override>] | ingest --from-draft <slug> [--allow-stale] | query <topic> | lint [--dry-run] |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, WebFetch |
Wiki
One parameterized skill over the harness wiki knowledge base. The first token of
$ARGUMENTS selects the operation; the remainder is that subcommand's argument
string. This dispatcher holds the routing logic and the rules shared by all
three operations; the full per-subcommand procedure lives in references/.
Subcommands
| Subcommand | Argument form | Purpose | Reference |
|---|
ingest | <url|path> [--slug <override>] · --from-draft <slug> [--allow-stale] | Capture a source or promote a draft into a wiki entity page (the only authorized write path) | references/ingest.md |
query | <topic> | Frontmatter OR-search; read top ≤3 matches (by updated: desc) into context | references/query.md |
lint | [--dry-run] | 5 health checks + atomic corpus/README.md index regeneration | references/lint.md |
Dispatch
Parse $ARGUMENTS: the first whitespace-delimited token is the subcommand; the
rest is the subcommand's argument string.
ARGUMENTS="${ARGUMENTS:-}"
SUB="${ARGUMENTS%% *}"
REST="${ARGUMENTS#"$SUB"}"
REST="${REST# }"
Route on $SUB, then follow the matching reference document end-to-end (its
instructions are authoritative — this dispatcher does not restate them):
$SUB | Action |
|---|
ingest | Read references/ingest.md; execute it with $REST as its argument string. |
query | Read references/query.md; execute it with $REST as the <topic>. |
lint | Read references/lint.md; execute it with $REST (only --dry-run is recognized). |
| anything else (incl. empty) | Print the usage line from argument-hint and exit 0. Do not guess a subcommand. |
Shared rules
These hold across all three subcommands; the reference docs assume them.
When NOT to use
- A topic that is a behavioral norm ("always do X") → a rule/skill, not the wiki.
- A session journal entry ("this run showed Y") →
.oh/memory/, not the wiki.
- Human-facing prose →
docs/, not the wiki (the wiki is LLM-readable synthesis).
- Full-text body search → direct
grep; query is intentionally frontmatter-only.
See Also
.oh/skills/wiki/references/schema.md — canonical schema and authoring rules
.oh/skills/wiki/references/ingest.md · query.md · lint.md — full procedures
.oh/skills/retro/references/memory-protocol.md — the Memory Improvement Protocol
.oh/evals/probes/wiki-readme-index.sh — drift guard for the tracked corpus index