Skip to content

Releases: developzoneio/specwright

v1.1.0 — Agent Skills + dual-format hooks

03 Jun 16:45

Choose a tag to compare

Spec-driven development workflows for Claude Code.
Nine slash commands, five specialized subagents, three guard-rail hooks, nine templates, five reusable skills — all under the sd: 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.permissionDecision and the legacy decision field. 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.md and constitution.md at 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.sh and install/install.ps1 now wire skills/<prefix>/ alongside commands/, agents/, hooks/, templates/.
  • Dry-run verified: 31 files planned on a fresh install.
  • --prefix flag (defaults to sd) 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/ — archived UPGRADE-PLAN.md + REMAINING-WORK.md so 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\.claude

macOS / Linux (bash 4+):

git clone https://github.com/developzoneio/specwright.git
cd specwright
./install/install.sh --dry-run  # preview
./install/install.sh            # install to ~/.claude

Then 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:

  1. Run the new installer — it lays down ~/.claude/<*>/sd/ alongside the old ck/ folders (your old install is untouched).
  2. In each project, re-run /sd:setup (it regenerates .claude/settings.json with hook paths pointing at hooks/sd/*).
  3. 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).