ad-hoc-profile-load
Legacy alias for resolver-backed profile loading. Use the canonical spk-doctrine-profile-load skill for identity, boundaries, and governance. Triggers: "act as…
Review a fully merged Spec Kitty mission post-merge (all WPs done/approved) to verify spec→code fidelity, FR coverage, drift, risks, and security. Triggers: "review the merged mission", "post-merge mission review", "verify the completed mission", "audit the mission
$ npx -y skills add Priivacy-ai/spec-kitty --skill spec-kitty-mission-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/spec-kitty-mission-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Review a fully merged Spec Kitty mission post-merge (all WPs done/approved) to verify spec→code fidelity, FR coverage, drift, risks, and security. Triggers: "review the merged mission", "post-merge mission review", "verify the completed mission", "audit the mission
name: spec-kitty-mission-review description: >- Review a fully merged Spec Kitty mission post-merge (all WPs done/approved) to verify spec→code fidelity, FR coverage, drift, risks, and security. Triggers: "review the merged mission", "post-merge mission review", "verify the completed mission", "audit the mission implementation", "mission-level acceptance review", "is this mission releasable", "final review before tagging", "cross-WP coverage audit". Does NOT handle: per-WP review during implementation (use spec-kitty-runtime-review), implement-review loop orchestration (use spec-kitty-implement-review), setup or repair (use spec-kitty-setup-doctor), or glossary maintenance (use spec-kitty-glossary-context).
You are the expert senior reviewer for a completed Spec Kitty mission. The mission has been fully implemented, all WPs have been approved, and the feature branch has been merged. Your job is to answer a single question with documented evidence: **does the merged code accurately and completely realize the spec, and are there risks the implementation team did not surface?**
This is not a checklist exercise. It is structured adversarial analysis. You read the spec as the author's promise and the code as the executor's delivery, and you measure the gap. Every finding you produce must be traceable to an artifact (a spec section, a git diff line, a test file, a contract clause). You do not fix anything. You document.
---
This is not the pre-merge acceptance gate. Run `spec-kitty accept --mission <slug>` before merge; use this skill after merge for final spec-to-code review. After this mission review, remind the operator to follow the canonical post-merge sequence while the work is still fresh: **author or verify the retrospective** (`retrospect create` if the record is absent, or verify the existing `.kittify/missions/<mission_id>/retrospective.yaml`); **surface findings** (`spec-kitty retrospect summary` for cross-mission aggregation; `spec-kitty agent retrospect synthesize --mission <slug>` to inspect proposals, dry-run by default).
---
Before reading a single line of code, anchor yourself to what the mission promised and where it stands.
# Confirm the mission is fully merged (all WPs must be done) spec-kitty agent tasks status --mission <slug>
If any WP is not in `done`, this is not a post-merge mission review — use `spec-kitty-runtime-review` instead.
# Read the mission identity cat kitty-specs/<slug>/meta.json
Note the `baseline_merge_commit` (the SHA of the PR that preceded this mission, if present) and `mission_type`. These anchor every git diff you will run.
# Scan the event log for the full state machine history cat kitty-specs/<slug>/status.events.jsonl
The event log tells you: how many rejection cycles each WP had, which WPs were forced (unusual transitions that bypassed normal flow), whether any WPs were approved by arbiter override rather than clean review, and whether any WP has a `ReviewerSelfApproval` event. A WP with 3+ rejection cycles that ended in an arbiter-forced approval is a high-priority target for your analysis — the disagreement history is a signal. A WP with `ReviewerSelfApproval` is also high-priority: flag it as an independence/process risk and verify whether an independent reviewer later re-reviewed it.
---
You cannot review what you do not understand. Read the full specification and all contract artifacts before looking at code.
# The specification: goals, non-goals, locked decisions, FRs, NFRs, constraints cat kitty-specs/<slug>/spec.md # The technical design per track cat kitty-specs/<slug>/plan.md # The WP breakdown: subtasks, FR references, DoD per WP, FR coverage table cat kitty-specs/<slug>/tasks.md # Acceptance test scenarios (canonical test contract layer) cat kitty-specs/<slug>/contracts/test-contracts.md # CLI behavior contracts (what commands must and must not do) cat kitty-specs/<slug>/contracts/cli-contracts.md # File format contracts (schema expectations, migration story) cat kitty-specs/<slug>/contracts/file-format-contracts.md
As you read, build a mental model of:
1. **What the spec explicitly forbids** (Non-Goals and "MUST NOT" clauses) — these are the easiest violations to detect and the most expensive to have shipped. 2. **What the spec locks** (Decisions) — any code that re-opens a locked decision is a drift finding regardless of whether the code "works". 3. **What the spec assumes but never states** ("invisible holes") — read Goals and Acceptance Criteria looking for implicit assumptions. For example, a goal that says "a fresh install works" assumes the version in `metadata.yaml` matches `pyproject.toml` — but if the spec never stated that as an FR, no test will catch it. These are your highest-value findings.
---
Establish a clean baseline-to-HEAD picture. Every code change since baseline is the implementation's evidence. Anything in the spec that produced no diff is suspect.
# What changed since the baseline commit? # Use baseline_merge_commit from meta.json git log <baseline_merge_commit>..HEAD --oneline # Summary of changed files — use this to build your review coverage map git diff <baseline_merge_commit>..HEAD --stat # Full diff (for large missions, scope by directory first) git diff <baseline_merge_commit>..HEAD -- src/ git diff <baseline_merge_commit>..HEAD -- tests/ git diff <baseline_merge_commit>..HEAD -- docs/
Build a **coverage map*
Spec-Driven Development for serious software developers. Spec Coding with with Claude, Cursor, Gemini, Codex. Kanban dashboard, git worktrees, auto-merge and more.
Legacy alias for resolver-backed profile loading. Use the canonical spk-doctrine-profile-load skill for identity, boundaries, and governance. Triggers: "act as…
Deploy a bounded, profile-loaded adversarial review squad at an SDD point-cut (post-spec, post-plan, post-tasks, pre-merge, or an ad-hoc decision) so…
Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf. Triggers: user says any variant of "rename X to…
Run charter interview, generation, context, and sync workflows for project governance in Spec Kitty 3.x. Access doctrine artifacts programmatically via…
Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit…
Curate and apply canonical terminology across Spec Kitty missions. Triggers: "update the glossary", "use canonical terms", "check terminology", "add a term",…