feat(wiki): add repo-scoped LLM wiki integrated with SDD workflow - #22
Merged
Conversation
Introduces the repo-scoped .wiki/ knowledge base with the /sdd:wiki-ingest skill and its bundled helpers. Two modes (--preliminary for post-ship, --final for post-merge) write SDD artifacts to structured markdown pages with YAML frontmatter, grouped-by-type index, and append-only log. A deterministic keyword matcher (wiki-query.sh) powers future consultation by /spec, /plan, and /wiki:close-loop. All ingestion is opt-in with explicit user confirmation. Content stays in English per project conventions. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both /spec and /plan now run wiki-query.sh against keywords from the user input before collecting requirements. Matches are presented as reuse/extend/ignore options. Missing wiki or no matches is a silent no-op — the skills stay usable in repos without .wiki/. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Step 9 prompts the user to archive spec/plan/tasks to the repo wiki after PR creation. Declining is a silent no-op. Gotchas now clarify that /ship is not the end of the workflow — review, CI, and post-merge close-loop are expected phases. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Consolidates review findings, post-review commits, and user-stated lessons into the wiki as final pages cross-linked to the preliminary entries. Uses gh CLI to gather post-merge context. Delegates writes to /sdd:wiki-ingest --final. Warns when invoked before merge or when a PR was closed without merging. Nothing is written without explicit user confirmation. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds Phase 7 (close-loop) to the SDD pipeline documentation and makes explicit that /ship is not terminal. Updates the root CLAUDE.md with the new pipeline diagram, wiki skills in the table, and a pointer to wiki-conventions.md. /sdd:run continues to orchestrate phases 1-6 only — close-loop stays manual by design. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review flagged three SKILL.md references to wiki-ingest scripts that
used raw relative paths (skills/wiki-ingest/scripts/…). Those only
resolve when the user happens to be working inside this repo; once
the plugin is installed from the marketplace, the scripts live in
the plugin cache and the relative path silently breaks. Switched to
${CLAUDE_PLUGIN_ROOT} which is already used for cross-skill paths
in hooks.json.
Also:
- Strengthen wiki-query ranking test with a third, single-token entry
so the assertion actually verifies sort order (previous test was
tautological — both candidates had the same score).
- Broaden the globs in sdd-workflow.md so the Phase 7 rule surfaces
when editing ship/spec/plan/wiki-ingest/wiki-close-loop skills.
Refs #21
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update the pipeline tagline to include the close-loop phase, document the new /sdd:wiki-ingest and /sdd:wiki-close-loop skills in their own "Knowledge Base (Wiki)" section, extend the core SDD table with row 7, and mention the wiki-aware behavior in the sequence diagram and "when to use what" table. Also call out explicitly that /ship is not terminal — a frequent point of confusion the wiki docs address. Refs #21 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
robertraf
added a commit
that referenced
this pull request
Apr 17, 2026
Bumps plugin version to 1.1.0 to reflect the wiki feature set added in #22 (wiki-ingest, wiki-close-loop, and related changes to spec/plan/ship). Adds a CI guard to the validate-plugin job that fails a pull request when plugin files change (skills, agents, hooks, .claude-plugin, settings.json) without a strictly greater semver in .claude-plugin/plugin.json. This prevents future version-bump omissions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
robertraf
added a commit
that referenced
this pull request
Apr 17, 2026
) Bumps plugin version to 1.1.0 to reflect the wiki feature set added in #22 (wiki-ingest, wiki-close-loop, and related changes to spec/plan/ship). Adds a CI guard to the validate-plugin job that fails a pull request when plugin files change (skills, agents, hooks, .claude-plugin, settings.json) without a strictly greater semver in .claude-plugin/plugin.json. This prevents future version-bump omissions. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a repo-scoped LLM Wiki (
.wiki/) that accumulates high-value SDD artifacts — specs, plans, tasks summaries, review findings, and lessons learned — so future sessions consult prior work instead of rediscovering context. Introduces two new skills (/sdd:wiki-ingest,/sdd:wiki-close-loop) and a new Phase 7 "close-loop" that makes explicit what was already true:/shipis not the end of the workflow.What changed
skills/wiki-ingest/SKILL.md— new skill with--preliminaryand--finalmodes; writes YAML-frontmatter markdown pages, updatesindex.mdper type section, and appends parseable entries tolog.md. All ingestion is opt-in.skills/wiki-ingest/scripts/wiki-init.sh— idempotent.wiki/initializer (createsindex.md,log.md,CLAUDE.mdseed).skills/wiki-ingest/scripts/wiki-query.sh— deterministic keyword matcher over.wiki/index.md: tokenize → drop stopwords + short tokens → rank by match count.skills/wiki-close-loop/SKILL.md— new skill for post-merge consolidation. Usesghto gather review comments and post-review commits, then delegates to/sdd:wiki-ingest --finalwith cross-links to the preliminary pages.skills/spec/SKILL.md,skills/plan/SKILL.md— new Step 0 consults the wiki via${CLAUDE_PLUGIN_ROOT}/skills/wiki-ingest/scripts/wiki-query.shbefore interviewing. Graceful no-op when.wiki/is absent.skills/ship/SKILL.md— new Step 9 prompts to ingest spec/plan/tasks; Gotchas now flag that/shipis not terminal..claude/rules/wiki-conventions.md— full schema: frontmatter fields, naming,index.md/log.mdformat, matching algorithm, lifecycle..claude/rules/sdd-workflow.md— adds Phase 7 and broadensglobsso the rule surfaces in affected skills.CLAUDE.md— pipeline diagram now ends in/sdd:wiki-close-loop; skills table extended.tests/wiki-init-tests.sh,tests/wiki-query-tests.sh— 27 shell tests (14 + 13).Change overview
```mermaid
graph TD
SPEC[Modified: /spec] -->|Step 0: consult| Q[New: wiki-query.sh]
PLAN[Modified: /plan] -->|Step 0: consult| Q
Q --> IDX[.wiki/index.md]
SHIP[Modified: /ship] -->|Step 9: prompt| WI[New: /sdd:wiki-ingest --preliminary]
CL[New: /sdd:wiki-close-loop] --> WIF[New: /sdd:wiki-ingest --final]
WI --> INIT[New: wiki-init.sh]
WIF --> INIT
WI --> WIKI[.wiki/]
WIF --> WIKI
```
How to test
```bash
bash tests/validate-skills.sh
```
Expected: 15 skills tested, 210 OK, 0 FAIL.
```bash
bash tests/wiki-init-tests.sh
bash tests/wiki-query-tests.sh
```
Expected: 14/14 and 13/13 passing.
.wiki/is absent..wiki/spec-*.md,plan-*.md,tasks-summary-*.mdare created with frontmatter.related:links point to the preliminary.Breaking changes
References
Closes #21