From Hallouminate
Bootstrap a hallouminate wiki from scratch by interviewing the user with Socratic questioning, then writing the first entries. Use when a repo has no wiki yet or the corpus is near-empty — "start a wiki", "bootstrap the knowledge base", "interview me about this project", "set up the wiki", "/wiki-init". An opus root runs a semi-structured interview (one question per turn, behavior-first probes) and plans the page taxonomy; haiku sub-agents fan out to draft the captured topics into one-topic-per-file entries in parallel via `add_markdown`. Do NOT use to answer questions (use wiki-query) or to fold new source docs into an existing wiki (use wiki-ingest).
How this skill is triggered — by the user, by Claude, or both
Slash command
/hallouminate:wiki-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn what's in the user's head into a structured, searchable wiki. The hard part is
Turn what's in the user's head into a structured, searchable wiki. The hard part is elicitation — experts can't introspect tacit knowledge on demand, so you ask about behavior in concrete situations and extract the model from their answers.
Agent topology (required):
add_markdown. Drafting is mechanical formatting of slots the
root already gathered — cheap, parallel, isolated.The root interviews; it does not draft pages itself. Haiku drafts; it does not interview. Never invert.
Semi-structured beats both a rigid script and open rambling. Move unstructured → semi-structured → structured: open wide to learn the domain's vocabulary, then tighten to fill gaps.
Rules of the interview:
purpose, components,
constraints, gotchas, decisions/why, edge-cases) silently. Never say the
slot name — ask "what would break this?" not "what are the constraints?".ACTA sequence (the practical spine):
Task diagram — first, scope it: "Break this project into more than three but fewer than six major areas — what are they?" This sets the page list without premature detail.
Knowledge audit — per area, probe with the high-yield question types:
| Probe | Asks for | Example |
|---|---|---|
| Tour | the mental model | "Walk me through how X works here." |
| Taxonomic | categories | "What kinds of Y are there?" |
| Reason-seeking | rationale | "Why this way and not the obvious alternative?" |
| Constraint | non-obvious limits | "What can go wrong? What breaks it?" |
| Counterfactual | edge cases | "What if [current condition] weren't true?" |
| Consistency | contradictions | "Earlier you said X — does that fit with Y?" |
| Elaboration | depth | "Tell me more about that." |
Simulation — for tricky areas: "Imagine situation Z lands — what do you do, and why?" Surfaces decision logic direct questions miss.
Chain the questions. Derive each next question from the prior answer — pick one thread to deepen, park the others, come back. Stop an area when probes stop yielding new slots; stop the session when the user signals done or the task diagram's areas are all covered.
After each exchange, extract what was said into a structured slot record (keep it in your working notes), separating what was said from how it'll be written.
# Title (the chunker uses the
H1 as the breadcrumb root and the index gloss).architecture.md, mcp-surface.md);
subdirectories for clusters (adapters/lance.md). The daemon creates dirs and
maintains each index.md link list for you.wiki-conventions.md first (the wiki's constitution): slug rules, the
H1 rule, one-topic-per-file, the voice, and a provenance-footer convention
(_Source: <how we know this> · Updated: <date> · Supersedes: <if any>_). Declare
the Supersedes: field here so wiki-ingest writes and reads one key. Later skills
(wiki-ingest) read it to stay consistent.repo:{name}:wiki for the repo, or ask if ambiguous
(list_corpora). Confirm the page list with the user before fanning out.Spawn one haiku sub-agent per planned page, in a single message, each with:
wiki-conventions.md rules,Draft a one-topic markdown entry from these slots. First non-blank line is
# <Title>. Lead with the conclusion, ~50–150 lines, concrete over abstract, cite code aspath:linewhere the slots name files. Add the provenance footer. Then calladd_markdown { corpus, path, content, overwrite: false }— the target corpus must be single-root (add_markdownrejects multi-root corpora);repo:{name}:wikiis single-root. Return the path written and any lintwarningsfrom the response. Do NOT interview the user. Do NOT invent facts beyond the slots — if a slot is thin, write only what's there and note the gap.
The daemon reindexes each file and refreshes ancestor index.md link lists
automatically on write.
overwrite: true redraft.list_tree to confirm the shape; write or refine the top-level index.md prose
(outside the <!-- HALLOUMINATE:INDEX-START --> / <!-- HALLOUMINATE:INDEX-END -->
markers — the daemon owns the link list between them).wiki-init continuation or wiki-ingest).npx claudepluginhub paulnsorensen/hallouminate --plugin hallouminateGuides test-driven development for Django applications using pytest-django, factory_boy, and Django REST Framework. Covers red-green-refactor workflow, conftest fixtures, and coverage reporting.