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.…
Fetches and displays PR review comments from GitHub, grouped by priority, and allows the user to reply to or resolve individual threads.
$ npx -y skills add Obsidian-Owl/specwright --skill sw-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sw-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Fetches and displays PR review comments from GitHub, grouped by priority, and allows the user to reply to or resolve individual threads.
name: sw-review description: Fetches and displays PR review comments from GitHub, grouped by priority, and allows the user to reply to or resolve individual threads. argument-hint: "[pr-number]" allowed-tools: - Read - Bash - Grep - AskUserQuestion
Surface PR review comments, triage autonomously per Google severity framework (`protocols/decision.md`), draft replies, and present for approval before posting. When the associated Specwright work can be resolved safely, use `review-packet.md`, `approvals.md`, and unit evidence as the primary reply context instead of reasoning from the diff alone. Stateless with respect to Specwright state — never modifies workflow.json.
Fetch all comment types, group by status, apply autonomous triage:
The PR itself is the review surface — reviewers see replies directly. When no associated work can be matched, say so explicitly and use a diff-only fallback.
approval lineage, and evidence as first-class context
**PR detection (MEDIUM freedom):**
is empty or HEAD is detached, report the detached HEAD condition and stop.
If no open PR is found, retry with `--state merged` as a fallback for merged PRs.
AskUserQuestion to disambiguate. In headless mode, use the most recent and record the fallback choice in output.
from the current branch.
unset, degrade to URL display. sw-review only supports the `gh` CLI.
**Comment fetching (MEDIUM freedom):**
To correlate: match REST review comment `id` against GraphQL `reviewThreads.comments.nodes[].databaseId`. If correlation fails, treat as unresolved.
results are returned, assume more may exist and display: "Showing first 50 — view full thread at {url}." Pagination state is in `Link` response headers, not in the JSON body.
file path and line number (`path`, `line`) for review comments, and body text.
**Comment grouping and prioritization (MEDIUM freedom):**
resolved threads. Do not interleave types.
first for general comments).
**Associated work context (MEDIUM freedom):**
number when provided, then `workUnits[].prNumber`, then the PR head branch against `workflow.json.branch`. If more than one work matches, report the ambiguity and fall back instead of picking one silently.
`approvals.md`, and unit evidence before drafting replies or validating bot comments.
`approvals.md` to verify approval lineage claims and evidence files to verify gate-status claims. Do not default to diff-only reasoning when these audit artifacts are available.
**Responding and resolving (MEDIUM freedom):**
`gh api --method POST /repos/{owner}/{repo}/pulls/{n}/comments/{id}/replies`.
`/repos/{owner}/{repo}/issues/{n}/comments` with a `body` field. Issue comments have no threading — there is no `in_reply_to_id` for this endpoint.
via `gh api graphql`. The `gh pr edit` command is for PR metadata only — it cannot post replies or resolve threads; always use `gh api` instead.
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…