gate-build
Runs configured build and test commands in tiered order. Captures output as evidence per tier. Returns PASS, FAIL, WARN, or SKIP based on per-tier verdicts.…
Ships the current work unit. Verifies all gates passed, creates a PR with evidence-mapped body, updates workflow state to shipped.
$ npx -y skills add Obsidian-Owl/specwright --skill sw-ship --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sw-shipContext preview
The summary Claude sees to decide when to auto-load this skill.
Ships the current work unit. Verifies all gates passed, creates a PR with evidence-mapped body, updates workflow state to shipped.
name: sw-ship description: >- Ships the current work unit. Verifies all gates passed, creates a PR with evidence-mapped body, updates workflow state to shipped. argument-hint: "" allowed-tools: - Read - Write - Bash - Glob - Grep
Merge the current work unit to main via a pull request. The PR body maps evidence to acceptance criteria and derives its reviewer-facing audit summary from `review-packet.md` so reviewers can verify without opening raw transcripts or reconstructing rationale from the diff alone. The PR itself is the human gate — reviewers verify before merge.
**Stage boundary (LOW freedom):** Follow `protocols/stage-boundary.md`. Create PRs and mark shipped. NEVER start new work, run builds, or begin next unit. After PR: show URL, suggest `/sw-learn`, handoff.
**Pre-flight checks (LOW freedom):**
top-level worktree owns it, STOP with explicit `/sw-adopt` guidance instead of generic adopt/takeover behavior.
"Run /sw-verify first." Reject all other statuses with the standard transition error.
`workflow.json`. Gates without a verdict → STOP: "Gate {name} has no verdict. Run /sw-verify first."
Fix and re-run /sw-verify."
For branch-head validation, branch-head `require` blocks stale, diverged, and blocked freshness results. Queue-managed validation remains distinct and must not force a local rebase by default. When branch-head validation is blocked and `rebase` or `merge` reconcile is configured, run `protocols/git-reconcile.md` in the owning worktree and continue shipping in that same run after a successful reconcile. `manual` remains an explicit fallback: STOP with the same manual reconcile guidance used by build and verify: reconcile the current branch against the recorded target in the owning worktree, or run `/sw-adopt` first if a linked-worktree ownership conflict exists, then rerun `/sw-verify` followed by `/sw-ship`. Do not silently rewrite `targetRef` or freshness metadata to bypass the block.
→ STOP: "Review packet missing for {unitId}. Re-run /sw-verify."
gate with a non-SKIP verdict. Missing evidence file → STOP: "Evidence missing for gate {name}. Re-run /sw-verify."
Report out-of-scope uncommitted files in the gate handoff — do not commit them.
**PR creation (MEDIUM freedom):**
lineage, implementation rationale digest, conformance summary, and remaining attention from the packet instead of reconstructing them from the raw diff.
`{workDir}/evidence/` files. For each enabled gate: read the verdict from the selected work's `workflow.json`. For non-SKIP gates: read the evidence file. Never infer verdicts from build output — only report what is recorded in the selected work's `workflow.json` and backed by an evidence file. SKIP gates show "SKIP". (Pre-flight has already verified that all non-SKIP gates have evidence files, so this reading step is guaranteed to succeed.)
rationale digest, conformance summary, and remaining attention into the PR body instead of depending on local-only file links.
packet or tracked evidence files directly in addition to the inline summary.
Implemented It This Way, Acceptance Criteria (status + evidence per criterion), Spec Conformance, Gate Summary, Remaining Attention, Evidence links.
**State updates (LOW freedom):** Follow `protocols/state.md`. State lifecycle for shipping: 1. After pre-flight passes: set the selected work's status to `shipping` (write workflow.json). 2. Push branch, create PR. 3. After successful PR creation, write `workUnits[{current unit}].prNumber` immediately, inside the same rollback envelope. `prMergedAt` remains null until merge is confirmed later. If `workUnits` is absent, skip this step. 4. After the `prNumber` write succeeds: set status to `shipped`. 5. If push, `gh pr create`, or the `prNumber` write fails: revert status to `verifying` (rollback transition) and `prNumber
Craft quality software with AI discipline. Spec-driven development plugin for Claude Code and Opencode — quality gates, adversarial testing, and evidence capture.
Repo: Obsidian-Owl/specwright
Runs configured build and test commands in tiered order. Captures output as evidence per tier. Returns PASS, FAIL, WARN, or SKIP based on per-tier verdicts.…
Detects leaked secrets, injection patterns, and sensitive data exposure across changed files. Uses real tooling when configured, LLM judgment for analysis.…
Tiered semantic analysis of changed code (rg → ast-grep → OpenGrep). Detects error-path bugs structural gates miss. Findings default to WARN. Internal —…
Maps every acceptance criterion from the spec to implementation evidence and test evidence. Criteria without evidence fail. The ultimate quality gate. Internal…
Audits test quality — assertion strength, boundary coverage, mock discipline, error path testing. Delegates to the tester agent for adversarial analysis.…
Detects unused exports, orphaned files, architecture layer violations, and circular dependencies across changed files. Delegates to architect agent for…