Skip to content

specwright v1.7.0

Latest

Choose a tag to compare

@developzoneio developzoneio released this 02 Oct 09:06
· 1 commit to main since this release
5a3f0d0

specwright v1.7.0

Full details: CHANGELOG.md
· Diff: v1.6.0...v1.7.0

Highlights

  • Four new lifecycle hooks (Bash + PowerShell pairs)
    • session-context (SessionStart) - in-progress specs and the constitution pointer, once per session
    • precompact-state (PreCompact) - the driven spec survives a compaction
    • stop-gate (Stop, ADR 0016) - opt-in; a turn cannot close past a skipped HARD gate
    • handoff-integrity (PostToolUse, ADR 0017) - opt-in; flags an edit outside the task's declared Files
  • Model escalation across /sd:feature, /sd:bug, /sd:rca, /sd:refactor, /sd:perf and
    /sd:port, owned by the new sd-model-escalation skill and guarded by contract-lint band CL6xx.
  • sd-bootstrap-guard skill - one owner for the Phase 0 bootstrap guard (CL009).
  • Task check-off marker for 02-tasks.md (SL067) and the port task-block checks SL061-SL066.

Important fixes

  • spec-gate denies were dropped when a permission rule already allowed the tool - the deny
    JSON now carries hookEventName: "PreToolUse". Under acceptEdits, an explicit grant or
    skip-permissions, spec-gate previously blocked nothing. Re-install to pick this up.
  • spec-gate now gates shell writes to .specs/index.md and allows legal status transitions.
  • spec-gate.sh no longer records a stray CR with a native Windows jq.exe.
  • PORT- specs were invisible to hook enforcement (hardcoded prefix alternation).
  • Installer: BASE_PATH validation, a working partial-install guard, and --prefix parity
    across all four install/uninstall scripts.
  • e2e harness: hooks now run on Linux/macOS, and the spec-gate scenarios actually exercise the hook.

Changed

  • prompt-router trimmed to per-prompt routing; session context moved to session-context.
  • Contract-lint CL500 byte ratchet retired in favour of scripts/prompt-size-report (ADR 0011).

Upgrade

.\install\install.ps1          # Windows
./install/install.sh           # macOS / Linux

Then wire the new hooks in ~/.claude/settings.json (see templates/settings.template.json).
stop-gate and handoff-integrity stay off until enabled in .claude/project-config.json.