bartolli/wiki-sdd
Wiki-native spec-driven development loop for the llm-wiki agent wiki: bootstrap a project scope, grill intent into a glossary, synthesize PRDs and user stories, triage stories through a state machine, slice into tracker issues, and implement slices via red-green-refactor TDD.
This skill should be used to close a session so the next one starts cold from corrected truth. Operator-invoked, gated on a retro note newer than the scope's last edit. Rewrites the primer within its budget first, then runs the status sweep (fully-resolved stories proposed for archiving, flipped only on approval) and reconciles every plan's Story Index — Focus, Next, Open, Read order, about 300 words, nothing another surface derives — confirms the index synced, and prints the one line the next session starts with. Use when the user says "/handoff", "hand off", "close the session", "wrap up the session", "prep the primer", "get the primer ready", "cold session prep", or "what does the next session start with".
Interview-style grilling that captures intent, sharpens vocabulary, and scaffolds wiki structure for a project scope. Use when the user wants to start a new workstream, refine an existing scope's intent, stress-test a plan against the project's domain language, or write a glossary.md (terms + relationships). Walks one question at a time, recommends an answer for each, and creates artifacts (index.md, primer.md, glossary.md, lazy ADRs) inline as decisions crystallize. Auto-detects greenfield (scope folder missing → scaffold) vs brownfield (scope exists → refine + cross-reference code). Triggers on phrases like "grill me", "grill the plan", "let's nail down what we're building", "set up a new scope", "refine the intent", "capture the intent", "write an intent", or /intent.
This skill should be used for a session retrospective at any point in a session — mid-session when drift is suspected, after a bug-hunting detour, after compaction, before a release cut, and always before /handoff. Asks three questions — 'What are you least confident about?', 'What's the biggest thing we're missing? What don't I realize?', and 'Where are we relative to the slice we started, and what were the detours?' — then routes every answer into a fix in the current commit when it is small and testable, else intents, sightings bumps, and story Decisions entries — never a new story and never the primer. Use when the user says "/retro", "run the retro", "lightweight retro", "mid-session retro", "session retro", "retro protocol", "check for drift", "what are we least confident about", "what are we missing", or "what don't you realize".
Canonical-vocabulary mode for agentic threads where assistant output re-enters context. Composable register predicates (technical, affect, safety, beginner) bind rule application; canonical handles, typed entities, and direct predicates extend an implicit KG across turns. Trigger on "signal-dense", "dense mode", "canonical mode", /dense, /signal-dense. Activate proactively in long technical threads, architecture reviews, ontology and KG work, and extended implementation sessions.
Implement a single ready-for-agent slice from a wiki user story using disciplined red-green-refactor with vertical tracer bullets. Reads the slice description, the story's Gherkin scenarios (as the test specification), glossary.md (for vocabulary), and the referenced specs/ADRs. Refuses horizontal slicing (write-all-tests-then-all-impl). Ticks the slice checkbox when done. Use when the user says "let's TDD slice X", "implement slice 2 of story Y", "/tdd", "red-green-refactor this", or wants to start vertical-slice implementation on a wiki-tracked story.
Break a wiki user story into vertical-slice tracer-bullet checkboxes (or refine existing slices), and in github/gitlab mode mirror ready-for-agent slices to the remote issue tracker with wikilinks back to the story file. Operates on kind: story files in the wiki. Quizzes the user on slice granularity, AFK vs HITL, and blocked-by dependencies. Use when the user says "break this story into slices", "refine the slicing", "/to-issues", "post these to GitHub", "publish issues from this story", or wants to validate vertical-slice rules on an existing story.
This skill should be used to write wiki stories — Gherkin scenarios plus a first slice list — from either input: the current conversation, synthesized into a thin plan/plan-{name}.md with one plan/{name}/story-N-{slug}.md per story; or a promoted intent, elaborated into one story under the active plan with the intent linked and promoted_to reported back. Default triage_state: needs-triage. Does NOT interview — if intent is unclear it suggests /intent and stops. Use when the user says "turn this into a plan", "draft a PRD", "/to-stories", "write up what we discussed", "synthesize this into stories", "write the story for intent X", or "elaborate intent X". Reads glossary.md and existing ADRs to use the project's vocabulary correctly.
Turn a plain-language rule into a well-formed vault trigger entry. Interviews intent (remind vs warn vs block), then authors the matching mechanics itself — stemmed keyword choice, anchored regexes, glob semantics, predicate selection — proves fire and near-miss behavior with a dry run, and writes vault.yaml only on explicit approval with kmd validate green after. The human owns the intent; the skill owns the regex. Use when the user says "add a hook", "add a trigger", "add a rule for", "create a gate", "block X until Y", "remind me about X when", "never let X happen before Y", "/to-triggers", or right after a protocol rule failed to fire — the moment a prose rule proves it needs to become a gate.
This skill should be used to move intents and user-story files through the wiki's triage state machine. Intents (draft → active / archived with promoted_to, dismissed, or fixed_by) are triaged first, ordered by sightings; stories move needs-triage → needs-info / ready-for-agent / ready-for-human / wontfix. Reads and writes frontmatter, recommends transitions, promotes an intent into a story via the elaboration skill, dismisses with a recorded reason, writes adr-no-{slug}.md when rejecting an enhancement with design rationale, and in github/gitlab mode mirrors story state to remote labels. Use when the user says "/triage", "what needs my attention", "triage the intents", "what's in the intent queue", "promote intent X", "dismiss intent X", "triage the new stories", "move story X to ready-for-agent", or similar.
Bootstrap an existing project (not yet on the wiki) to use the ~/llm-wiki Obsidian-based agent wiki. Scaffolds a new vault when none exists (vault.yaml, served templates, domain dirs). Writes three sections to the project instructions from a bundled template — ## First read, ## Wiki integration (declaring WIKI_SCOPE, WIKI_ISSUE_TRACKER, WIKI_TRIAGE_LABELS), and ## Sub-agent spawning — and guides MCP registration, local/global vault setup, and per-harness file placement when needed. Also serves as the central mental-model hub for the wiki-aware skill constellation and lists companion skills (obsidian-markdown, obsidian-bases, obsidian-cli, json-canvas). Use when the user says "set up wiki", "wire this project to the wiki", "connect this project to my wiki", "/wiki", "bootstrap a new vault", "this project isn't on the wiki yet", or when other wiki-aware skills report WIKI_SCOPE is missing.