Planwright — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Planwright (Plugin) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
Score fell 4 points between these scans.
The primary manifest — the file an agent reads to learn what this artifact does.
planwright is an opinionated Claude Code framework for spec-driven development: you specify a feature precisely, sign it off, and the framework builds it — advancing tasks, opening draft pull requests, and converging review on its own — while you keep the two controls that matter: sign-off and merge.
Think autopilot, not a replacement crew. How well it flies is bounded by how good your spec is, so planwright's whole investment is getting the spec right before any code is written. Under the hood it is loop engineering with guardrails: the agent runs in autonomous review-and-execute loops (bounded by iteration caps, convergence criteria, and no-progress detection), and every irreversible action stops at a human checkpoint.
Status: v1, self-hosting. The founding spec (specs/bootstrap/) that defines planwright v1 is complete, and planwright now develops itself through the same pipeline it ships. It is young software — expect rough edges, and please report what you find.New here? The getting-started guide takes you from a clean machine to running the pipeline end to end.
tasks, tests — reviewed and signed off before a line is written. The spec is the contract the agent executes against, not an afterthought.
sign-off (no spec runs until you have walked it and signed the brief) and merge (every PR is a draft; planwright never auto-merges). Everything in between is one revert from undone.
iteration caps, convergence criteria, no-progress detection — with hard pauses at security-sensitive or irreversible steps.
rigor through layered overlays, without editing planwright's core.
subagents, file-based state) — there is no second agent framework to install.
`gh` CLI authenticated — planwright opens draft PRs through gh. Without GitHub/gh the pipeline degrades gracefully, but the pull-request flow is unavailable; see the GitHub requirement.
planwright installs through Claude Code's standard marketplace flow:
/plugin marketplace add inkatze/planwright
/plugin install planwright@planwrightFor environments without plugin support there is a no-plugin `~/.claude/` writer (scripts/install.sh, portable shell only). Both modes, and the upgrade path, are covered in Install.
Once installed, you drive five steps; planwright does the work between your two controls:
/spec-draft → /spec-kickoff → /orchestrate → /execute-task → review & merge
▲ ▲
sign-off merge
(gate 1: no spec (gate 2: planwright
runs unsigned) never auto-merges)
└──── you author ────┘ └──── planwright runs the middle ────┘ └─── you decide ───┘(Status Draft).
understanding and sign the kickoff brief. Sign-off flips the spec to Active. (your first control)
worktree, and dispatch execution. Stateless: one step per call, so you can run it in several sessions for parallelism.
retry, convergence via /polish, then a draft PR.
The getting-started guide walks each step in depth.
planwright is an autopilot, not a replacement crew. Two controls are human-reserved, permanently:
resulting brief. There is no bypass flag.
the universal review gate, and merge is always your action.
Between them, the intervention contract has three phases: sign-off before execution, rare hard pauses during it (security-sensitive zones, destructive operations, irreducible judgment forks), and review plus merge after. Invariants the framework holds everywhere: never auto-merge; never act on a non-Active spec; never force-push, amend, squash, or rebase (new commits only).
Every feature lives in specs/<feature>/ as four files:
requirements.md — what must be true (REQ-IDs), with a Status: that movesDraft → Active → Done.
design.md — the decisions and the alternatives weighed (D-IDs).tasks.md — the work as stable-ID tasks with Done when: / Dependencies:;it doubles as the orchestration ledger.
test-spec.md — each requirement pinned to how it is verified.The format is specified in full in the spec-format doctrine.
planwright ships ten skills; each is a slash command in Claude Code.
| Stage | Command | What it does |
|---|---|---|
| Author | /spec-draft | Interactively elicit a four-file spec bundle (Status Draft). |
/spec-kickoff | Walk a spec to sign-off and flip it Active. (your first control) | |
/spec-walkthrough | Render a spec into a plain-language artifact for an unaided cold read. | |
| Execute | /orchestrate | Pick the next ready task, create its worktree, dispatch execution. |
/execute-task | Test-first build of one task → full CI → draft PR. | |
/resume | Load context for a fresh session in an in-flight worktree. | |
| Converge | /self-review | Discovery + validation review of the branch; opens or updates a draft PR. |
/polish | Autonomous review loop that drains every fixable finding, locally. | |
| Maintain | /drain | Evaluate deferred gate conditions across spec bundles. |
/builder | Detect the project's stack and recommend or apply the quality-guard catalog. |
planwright adapts to your project through overlays — layered config, doctrine, and catalog files that override the core defaults without editing planwright itself. Supply your own linters, test commands, and review rigor in a gitignored machine-local layer or a repo-tracked layer, and the framework merges them over its core. Defaults live in config/defaults.yml and every option is documented in the options reference (an undocumented option fails CI). See Customizing with overlays for the full model.
operating the pipeline, and supplying your own tooling.
per-kind merge rules.
discovery rigor, finding categorization, engineering decisions, security posture, and more.
.claude-plugin/ plugin + marketplace manifests (the install path)
skills/ the ten planwright skills (one directory each)
doctrine/ the framework rule docs
scripts/ portable-shell entry points (installer, resolver, checks)
config/ tracked default config
docs/ guides (getting-started, overlays, conventions, options)
specs/ planwright's own specs (bootstrap = the founding spec)
tests/ shell tests for the scriptsplanwright pins its toolchain with mise: run mise install once, then mise run check runs the full gate — shell tests, shellcheck, shfmt, markdownlint, yamllint, conventional-commit lint, manifest + link + options-reference checks, the spec validator, and a gitleaks scan. It is the same gate CI runs on every pull request. This is dev tooling only; planwright's runtime scripts stay plain portable bash. See Contributing for the workflow.
MIT.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.