Releases: developzoneio/specwright
v1.1.0 — Agent Skills + dual-format hooks
Spec-driven development workflows for Claude Code.
Nine slash commands, five specialized subagents, three guard-rail hooks, nine templates, five reusable skills — all under thesd:namespace, stack-agnostic, cross-platform, and ready to drop into any project.
This is the initial public release on the specwright name. It bundles the rebranded engine (originally ck-spec-system) with the v1.1.0 architecture refresh: a new Agent Skills layer and a forward-compatible upgrade to the spec-gate hook contract.
Highlights
- Agent Skills layer (new) — 5 reusable markdown rule packs that agents reference from YAML frontmatter. De-duplicates rules across agents, shrinks prompt bodies, and makes canonical rules auditable in one place.
- Dual-format spec-gate output — emits both the new
hookSpecificOutput.permissionDecisionand the legacydecisionfield. The same hook works across Claude Code CLI versions; no runtime version probing. - All assets namespaced under
sd:—/sd:feature,sd-reviewer,skills/sd/, etc. Removable without touching the rest of your~/.claude/. - Stack-agnostic — agents read
CLAUDE.mdandconstitution.mdat runtime; no hardcoded language, framework, or layer assumptions. - Cost-aware models — Sonnet for reasoning (spec, debug, review), Haiku for execution (implementer, explorer). Typical feature run lands around $2–$3.
What's included
| Component | Count | Names |
|---|---|---|
| Slash commands | 9 | /sd:feature, /sd:bug, /sd:rca, /sd:refactor, /sd:perf, /sd:spec, /sd:explore, /sd:review, /sd:setup |
| Subagents | 5 | sd-spec-architect, sd-code-explorer, sd-debugger, sd-implementer, sd-reviewer |
| Skills (new in 1.1.0) | 5 | sd-severity-taxonomy, sd-hypothesis-tree, sd-atomic-task-format, sd-evidence-citation, sd-spec-templates |
| Hooks | 3 | prompt-router, spec-gate (dual-format), subagent-retro |
| Templates | 9 | 4 setup + 5 spec (feature / bug / refactor / perf / rca) |
Cross-platform: matching PowerShell + bash pairs for every hook. Content-hash-deduped installer with timestamped backups and dry-run preview.
New in 1.1.0
Agent Skills (new skills/sd/ layer)
A skill is a markdown rule pack referenced by agents from YAML frontmatter:
---
name: sd-reviewer
model: sonnet
skills:
- sd-severity-taxonomy
- sd-evidence-citation
---| Skill | Used by | Purpose |
|---|---|---|
sd-severity-taxonomy |
sd-reviewer |
Severity rules (BLOCK / WARN / SUGGEST / PASS) and the mandatory review output format. |
sd-hypothesis-tree |
sd-debugger |
Enumerate / verify protocol with the 5 mental models, (L × I) / C score formula, and the proximate-vs-root "why" ladder. |
sd-atomic-task-format |
sd-spec-architect, sd-implementer |
The 9-field atomic task block plus canonical enums (Step type, Complexity, Reversibility). |
sd-evidence-citation |
sd-code-explorer, sd-debugger, sd-reviewer |
file:line citation discipline, snippet length, evidence taxonomy, grouping. |
sd-spec-templates |
sd-spec-architect |
Per-template authoring rules (feature / bug / refactor / perf / rca); which cross-phase fields to leave empty. |
A skill is not an agent. It cannot be invoked directly, has no tools of its own, and produces no output on its own. It is a context block the agent inherits.
Agent frontmatter
- All 5 agents declare a
skills: [...]list. - All 5 agents declare a
color:field for terminal rendering. - Agent prompt bodies shrank where content moved into a referenced skill (lookup discipline preserved).
Hooks — dual-format spec-gate block output
spec-gate.sh and spec-gate.ps1 now emit a single JSON object that carries both schemas:
{
"decision": "block",
"reason": "spec-gate: editing code file 'src/foo.cs' but no in-progress spec is recorded ...",
"hookSpecificOutput": {
"permissionDecision": "deny",
"reason": "spec-gate: editing code file 'src/foo.cs' but no in-progress spec is recorded ..."
}
}- New schema (
hookSpecificOutput.permissionDecision = "deny") is read by recent CLI builds. - Legacy schema (
decision = "block") is read by older CLI builds. - Both are harmless to the other reader. No version probing required.
Installer
- Both
install/install.shandinstall/install.ps1now wireskills/<prefix>/alongsidecommands/,agents/,hooks/,templates/. - Dry-run verified: 31 files planned on a fresh install.
--prefixflag (defaults tosd) lets you namespace under a different prefix if you collide with another tool.
Documentation
README.md— new Skills section + updated Layer 1 diagram.docs/architecture.md— new Agent skills section + dual-format hook schema note.docs/history/— archivedUPGRADE-PLAN.md+REMAINING-WORK.mdso future readers can see how this upgrade was scoped (6 phases, file-touch matrix, decision log).
Install
Windows (PowerShell 5.1+):
git clone https://github.com/developzoneio/specwright.git
cd specwright
.\install\install.ps1 -DryRun # preview
.\install\install.ps1 # install to $env:USERPROFILE\.claudemacOS / Linux (bash 4+):
git clone https://github.com/developzoneio/specwright.git
cd specwright
./install/install.sh --dry-run # preview
./install/install.sh # install to ~/.claudeThen in any project:
cd <your-project>
claude
> /sd:setup
/sd:setup is interactive (3 questions at most) and scaffolds CLAUDE.md, .specs/, and .claude/project-config.json. See install/README.md for advanced options.
Compatibility
| Component | Tested on | Notes |
|---|---|---|
| Claude Code CLI | Latest as of June 2026 | Dual-format spec-gate keeps older CLIs working too. |
| Windows 11 | PowerShell 5.1 and 7.x | Hooks are pure ASCII for CP1252 safety. |
| macOS 13+ | bash 4+ via Homebrew | stat -f %m syntax supported. |
| Ubuntu 22.04+ | bash 5 | stat -c %Y syntax supported. |
| jq | 1.6+ | Optional; bash hooks exit 0 if missing. |
Optional MCP servers (all fall back gracefully if missing): Atlassian, Context7, sequential-thinking, GitNexus, MSSQL, Playwright, Tavily.
Upgrading from a pre-rebrand ck-spec-system install
If you previously installed under the ck/ namespace:
- Run the new installer — it lays down
~/.claude/<*>/sd/alongside the oldck/folders (your old install is untouched). - In each project, re-run
/sd:setup(it regenerates.claude/settings.jsonwith hook paths pointing athooks/sd/*). - Once you're satisfied the
sd:install works, remove the old~/.claude/<*>/ck/folders manually.
The dual-format hook output means you don't need to pin a specific Claude Code CLI version.
Full changelog
See CHANGELOG.md — [1.1.0] for this release, [1.0.0] for the rebrand baseline.
Acknowledgements
Inspired by the spec-driven discipline of long-running software teams, and by the BMAD method for structuring AI-assisted workflows. Built on top of Claude Code by Anthropic.
Commits in this release carry a Co-Authored-By trailer crediting Claude Opus 4.7 (1M context).