Changelog¶
All notable changes to nspec are documented in CHANGELOG.md.
Recent Releases¶
3.15.2 - 2026-06-22¶
✨ Features
- MCP↔CLI surface parity matrix and a doc-coverage matrix generated from source surface extractors
♻️ Refactors & Fixes
- Remove the praxis-model graph export subsystem (the
nspec praxisCLI group, thepraxis_*MCP tools, and the shipped schema) - Guard hooks: honor
NSPEC_CONFIRM_DESTRUCTIVEas a leading assignment of any segment; emit$CLAUDE_PROJECT_DIR-prefixed hook commands - Parity audit: key CLI args by full command path and model commands as a parent-child tree
📝 Docs
- Rewrite the CLI reference for the full command tree and the MCP tools reference + overview
- Add the E026 epic goal / definition-of-complete template; author the E025 documentation-overhaul epic
- Note that the praxis-model schema is a repo-only reference, not shipped
3.15.0 - 2026-06-20¶
✨ Features
- TUI dependency visualization: always-visible upstream/downstream sections, inline add/remove from the detail view, transitive (indirect) deps, and blocked/cyclic highlighting
- Praxis graph model (E022): graph IR, exporter/importer round-trip serde, render layer, schemas dir, and CLI/MCP entry points
/nloopepic-finalize blocks at exit — ensure the PR is mergeable, then request mergeepic_contextMCP tool + Implementation Outcome template sectioncreate_specreturns epic-categorization and placement framework; best-effort cascade bump for spec priorities;resumetool to unpark a spec
♻️ Refactors & Fixes
- Make enforcement guard hooks opt-in (not installed by default)
rename_specfalls back to a filesystem move for untracked spec files- Route TUI Move-to-epic through the canonical epic-membership DAO
- Stop shipping legacy flat FR/IMPL templates; lift
TemplateEngineinto nspec core - Pin transitive security floors to clear pip-audit CVEs
🔒 Security
- Pin transitive dependency security floors to clear outstanding pip-audit CVEs
📝 Docs
- Document the spec-priority containment policy; split E001 into E023/E024
- CI: add a coverage gate (82%), a complexity gate, and ruff format-check + lint in
test-quick; add an event-synchronized TUI smoke harness (make smoke)
3.11.0 - 2026-06-12¶
✨ Features
- Pre-review agent health check with a date-format ping
♻️ Refactors & Fixes
- Remove provider/model enum validation
syncnever overwrites user-owned files on version-bump auto-sync- Executor always passes agent prompts via a stdin file; simplify the statusline command
3.10.1 - 2026-06-10¶
♻️ Refactors & Fixes
- Default codex to
gpt-5.5($20 tier) and align shipped defaults with the dogfood config
3.10.0 - 2026-06-09¶
✨ Features
- Dynamic CLI-discovered provider enum validation with a TTL cache (S561)
- Spec CRUD tools:
set_acceptance_criteria,set_impl_task,move_spec,rename_spec(ID-stable retitle), and confirmation-gateddelete_spec - Retarget the gemini backend to the
agyCLI
♻️ Refactors & Fixes
- Reject partial or malformed on-disk provider enum cache (S561 hardening)
- Count completed children in the epic rollup
- Lower the stdin threshold below the tmux command-length limit
3.9.0 - 2026-06-01¶
✨ Features
- Structured codex review verdict via
--output-schema(S558) - Inject structured remediation tasks into the IMPL on
NEEDS_WORK, consumed by/ngo's Phase 6 retry loop (E021) - Fixture reviewer backend + blackbox remediation e2e (S554)
- Activity-based liveness watchdog for the tmux executor poll
♻️ Refactors & Fixes
- Strip the
:linesuffix fromcheck_impl_taskFile:annotations - Target Python 3.14
📝 Docs
- Require all transient files under
work/(no/tmp); drop the park-to-defer protocol - Add the
/ngolifecycle audit grounding E021
3.8.8 - 2026-05-27¶
✨ Features
- Auto-install the statusline via
initandskills_sync - Add the
/npickupskill as the counterpart to/nhandoff
3.8.7 - 2026-05-27¶
♻️ Refactors & Fixes
- Use a printf pipe for the qa-diff Python script in the
nspec.mktemplate
3.8.6 - 2026-05-27¶
♻️ Refactors & Fixes
- Make the QA step in
/ngoblocking to prevent duplicate runs
3.8.5 - 2026-05-26¶
♻️ Refactors & Fixes
- Correct a ruff format issue in the
_mutation.pyhint string
3.8.4 - 2026-05-26¶
♻️ Refactors & Fixes
- Maintenance release: update PyPI metadata
3.8.3 - 2026-05-26¶
♻️ Refactors & Fixes
- Maintenance release (version bump only)
3.8.2 - 2026-05-26¶
♻️ Refactors & Fixes
- Harden the JSON verdict parser for codex terminal line wrapping
3.8.1 - 2026-05-25¶
✨ Features
- Add
qa-snapshotandqa-difftargets to thenspec.mktemplate
3.8.0 - 2026-05-25¶
✨ Features
- Add a real review cycle to the
/ne2e-lifecycletest and converge the skill with the CI e2e scripts - Add a QA regression gate and an e2e Claude Code CLI integration test to CI
- Forward-port S544 — consolidate review artifact output into a per-spec layout
♻️ Refactors & Fixes
- Extract status/result string constants
- Resolve the S330 ID collision (rename the statusline spec to S959)
- Numerous CI fixes (PEP 668 compliance, poetry install, mkdocs in the docs workflow)
3.7.0 - 2026-05-23¶
✨ Features
- Nightly commit/PR digest with auto-filed review specs
- PR description and spec/IMPL completeness review gate
- Files Edited auto-tracking and fail-fast DoD in templates
♻️ Refactors & Fixes
- Search the last fenced JSON block for the verdict, not the first
- Add ~110 mutation-killing tests across the five highest-complexity modules (Phase 1–3)
📝 Docs
- Add v3.3.0–v3.6.0 changelog entries; refresh the full site docs for v3.6.0
- Expand the Playwright testing guide with all 27 terminal tools; update the MCP tool reference to 82 tools
3.6.0 - 2026-05-22¶
Bug Fixes
- Fix dashboard CLI epic filter using membership DAO for correct scope
- Fix
supersedereversal and cross-directory spec lookup viafind_spec_files - Fix review commit discovery using IMPL
File:annotations instead ofRefs:convention - Fix review atomic output persistence — raw output saved before verdict parsing
- Fix bare newline sanitization in JSON verdicts from codex terminal wrapping
- Fix review bypass for S350 terse detection on structured JSON verdicts
- Bump
urllib3to >=2.7.0 for CVE-2026-44431/44432
3.5.3 - 2026-05-13¶
Enhancements
- Mutation testing with
mutmut(CI weekly,make test-mutation) /nqaquality analysis skill withdocs/qa/status.mdtracking- Enable ruff rule sets: N (PEP 8 naming), RSE (unnecessary raise parens), G (logging format strings)
Bug Fixes
- Fix CI: drop container job for mutation testing, generate
poetry.lockin CI image build - Fix CI: exclude
mcp_server.pyfrom vulture, ignore pip-audit py vuln
3.5.2 - 2026-05-10¶
Bug Fixes
- Fix TUI: align PICKUP sort with
next_specby adding Ready toSTATUS_RANK - Fix
write_review_verdictto allow validverdict_tokenfor external agents - Remove subagent/Agent tool usage from all skills
3.5.1 - 2026-05-10¶
Bug Fixes
- Fix review: accept double-terse APPROVED on confirmation re-review
3.5.0 - 2026-05-10¶
Enhancements
- Unified session audit trail and handoff (
audit_recordtool) - Review prompt uses stdin passthrough instead of inline diff
- Gap-fill ID allocator scans from range start upward
Bug Fixes
- Fix
next_specto useDatasetLoaderfor branch-only spec visibility - Fix
/nloopto run specs inline instead of spawning subagents
3.4.3 - 2026-05-10¶
Bug Fixes
- Fix
spec_root='.'config resolution to project root - Remove dangling refs to superseded specs from E001 and S905
3.4.2 - 2026-05-10¶
Enhancements
- User-defined spec types with custom templates
context-auditCLI command for CLAUDE.md budget analysispreflightstate-introspection tool for/ngopipelineepic_specsstarting_spec_idparameter for backlog slicing- Generic markdown renderer for FR/IMPL sections in TUI detail view
- Bidirectional GitHub tracker sync with auto back-comments
- Auto-select epic with user validation in
/nspecskill - E2E tests for epic management lifecycle
Bug Fixes
- Fix datasets gracefully skipping invalid FR/IMPL files instead of aborting
- Fix review detecting pre-implementation specs for spec-quality review
- Fix config
spec_root='.'resolving to config dir, not project root - Fix validator Layer 7 false-positives on FR-Completed + IMPL-in-progress
- Fix orphaned specs missing
epic_idinMainDatasetLoaderparse
3.4.1 - 2026-05-09¶
Bug Fixes
- Fix TUI epic membership using DAO instead of
fr.deps
3.4.0 - 2026-05-04¶
Enhancements
/ngoalways pushes after spec completion for async CI feedbackDatasetLoaderTTL cache to avoid redundant re-parsing- Consolidate inline imports to top-level where safe
- Migrate
fr.type == Epictois_epicfield
Bug Fixes
- Fix cache invalidation in
set_loeandrenumber_spec
3.3.0 - 2026-05-02¶
Enhancements
- Policy-as-code hooks for credentials and destructive operations (
guard-credentials.sh,guard-destructive.sh) - Auto-extend ID range ceiling on exhaustion
Bug Fixes
- Fix atomic active-symlink swap to eliminate concurrent-write race
- Fix cross-dir spec ID collisions no longer hard-blocking all MCP tools
- Fix empty-diff rubber-stamp pipeline in review
- Fix
approve_review()decoupled from status transitions - Fix Implementer/Reviewer field reconciliation after verdict write
- Fix git-diff check skip for cross-repo
File:annotations - Fix large agent output persistence and structured collision errors
- Fix codex review behavior: model list, diff scope, verdict-severity
3.2.0 - 2026-03-23¶
Bug Fixes
- Fix
get_epiccrash when no active epic set (return type mismatch) - Fix
create_specleaving orphan FR/IMPL files on validation failure — now rolls back - Fix TUI race condition: task mutations now use atomic writes (
spec_write) - Fix
review_spec(uncommitted=true)returning empty diff — addedgit diff --cached - Fix review diff excluding root-level files (Makefile, pyproject.toml, .github/)
Enhancements
- Configurable review diff paths via
[review].diff_include/diff_excludein config.toml - CI runners scaled to 4 parallel workers
3.1.0 - 2026-03-19¶
Bug Fixes
- Fix
task_completegreedy backtick regex for File: annotations with multiple backtick pairs - Fix self-review bypass when review agent is configured
- Fix NEEDS_WORK verdict not reverting FR/IMPL status to Active
- Fix LOE auto-generation writing invalid format in IMPL files
- Fix TUI epic spec list not sorted by priority in detail view
- Fix TUI hiding epics with zero specs from dashboard
- Fix TUI follow mode false "no active spec" warning
Enhancements
- Epic priority auto-assign and
swap_prioritytool - Auto-compute LOE after
write_refinementwhen agent omits it - Detect HTML comment placeholders as skeleton content in
refine_impl - TUI: hide superseded/rejected specs with 'c' toggle
/nreview-epicbatch review skill with convergence protocol- CI watch hook for automatic post-push monitoring
3.0.0 - 2026-03-16¶
Major Changes
- Package reorganization: domain/, runtime/, workflow/, validation/, analysis/ packages
- Spec type registry with custom FR/IMPL types
- GitHub issue import via
issue_importtool and/ntriageskill - FR skeleton detection and auto-authoring via
refine_fr/write_fr_refinement - IMPL skeleton detection and auto-refinement via
refine_impl/write_refinement - Agent execution framework with
execute_agent(Codex, Claude, Gemini backends) - Review token anti-rubber-stamping (single-use tokens from
review_spec) - Spec test targeting via
spec_testsandspec_test_filestools - Swarm orchestration:
swarm_launch,swarm_status,swarm_teardown - Checkout/reservation system with TTL leases
- Template profiles: quick, standard, full, formal
- Skills management:
skills_install,skills_sync,skills_update
2.3.0 - 2026-03-10¶
- Safe template substitution with
SafeFormatMap - Pluggable DAO layer with protocols, factory, registry, and markdown backends
- TerminusDB E2E test coverage (acceptance criteria, edge cardinality, connection resilience, migration edge cases, MCP tools)
- Docker-compose hardening for E2E tests
- Review prompt improvements (filtered pathspecs, test result receipts)
BackendConfigfor persistence engine selection
2.2.0 - 2026-02-15¶
- Multi-agent queue system with atomic claim/release
- Codex code review integration
- Session management with per-session files
- Fuzzy ID resolution across all MCP tools
- ADR support (FR-900–999 range)
2.1.0 - 2026-01-20¶
- Interactive TUI with Textual
- Engineering metrics dashboard
- 6-layer validation engine
- Dependency graph with circular reference detection
2.0.0 - 2025-12-01¶
- MCP server with stdio, SSE, and HTTP transports
- FR/IMPL pairing with auto-assigned IDs
nspec initwith stack auto-detection- Skills system for Claude Code integration