Scenario-keyed reference for AI coding agents that need to do something
specific against this wiki and its code. Each entry below is a
type: runbook page: structured frontmatter (when_to_use, steps,
pitfalls, related_tools, references) plus a short freeform body.
Read the page when the named scenario applies; cite it by canonical_id
when you act on it.
when_to_use matches your situation.runbook: block over /api/pages/for-agent/{canonical_id} or
get_page_for_agent on /knowledge-mcp — the steps are the contract.The cookbook is small on purpose. New runbooks are added when observed agent thrashing in MCP transcripts can be summarised in two-to-five imperative steps. Topic-keyed how-tos go in narrative articles instead.
mark_page_verified + triage.propose_knowledge workflow.bin/kg-judge-experiment.sh: compare Knowledge Graph proposal-judge models before changing the extractor's --judge default.list_retrieval_queries, confirm with assemble_bundle, flag stale pages.when_to_use entry — the trigger should be unambiguous.steps.pitfalls you'd warn a colleague about. (none known) is
permitted but discouraged.RunbookValidationPageFilter will reject
schema violations with a FilterException naming the issue kind.This section captures the maintenance cadence for the cookbook and the verification system that backs it. Neither item needs an engineering pass — both grow over time as the project evolves.
The 15 seed runbooks listed under Members (everything except the Setup and Wiki maintenance groups and RunningTheJudgeExperimentHarness) cover the scenarios that were obvious at launch (2026-04-25). New runbooks land when one of three triggers fires:
What does NOT belong as a runbook:
The validator (FrontmatterRunbookValidator) enforces structural rules
at save time: ≥1 when_to_use, ≥2 steps, ≥1 pitfalls;
related_tools entries that are either a path under /api/, /admin/,
/knowledge-mcp/, /wikantik-admin-mcp/ or /tools/, or a bare
snake_case or kebab-case tool name; and references that resolve to
canonical_ids or page titles. A save that violates any of these returns
FilterException naming the issue kind.
Verification confidence is computed by ConfidenceComputer from
verified_at + the verifier's membership in the trusted_authors
table:
mark_page_verified call from a trusted author within the last
90 days → confidence: authoritative.mark_page_verified call from a non-trusted author → stays
provisional (the timestamp lands; the confidence does not promote).confidence: stale.The 90-day window is wikantik.verification.stale_days (default 90),
and a page can pin its own confidence: in frontmatter, which
overrides the computed value.
The wiki currently runs single-developer, so trusted_authors has one
row (jakefear). Adding contributors is a one-line INSERT per
person:
INSERT INTO trusted_authors (login_name, notes)
VALUES ('alice', 'primary maintainer, security')
ON CONFLICT (login_name) DO NOTHING;
TrustedAuthorsDao loads the table once at startup and caches it; the
cache refreshes only on writes made through that class, and nothing in
the application writes to it. A row added with SQL is therefore not
seen until the wiki restarts; after the restart the new author's
verifications start producing authoritative results.
When to add a new trusted author:
When to remove a trusted author:
authoritative mark is backed by a real read.