Releases: deftai/directive
v0.20.0-rc.3 — GA-Blocker Sweep (fork/copy testing only)
v0.20.0-rc.3 — GA-Blocker Sweep Release Candidate
Third and (intended) final release candidate for the v0.20.0 vBRIEF architecture cutover. Cut from phase2/vbrief-cutover at 27ffcb4. Closes all GA-blocker checklist items tracked on PR #403.
⚠️ Testing Addendum — Please Read Before Installing
Do NOT apply this release candidate to a working repository. This is an RC build for testing and feedback only. To evaluate it:
- Fork or copy your real project first, then run this build against the fork or copy.
- Do NOT run
task migrate:vbrief, the installer binary, or any RC-targeted flow against a production working tree — the migration is intentionally one-way and the surface area is large enough that we want reports from users who cannot cleanly revert. - Test as much as you can and please file issues against this tag with reproduction steps. We are actively iterating and may need you to re-test.
- Preserve your real project until the final v0.20.0 ships, after which upgrades can be safely applied with the standard
task migrate:vbriefpath.
GA-Blocker PRs merged into phase2/vbrief-cutover (this RC)
- #472 —
fix(interview): restore deterministic-question confirm/back/discuss affordances(closes #431, #359) - #474 —
feat(scripts): spec_render + roadmap_render v0.20 GA blockers(closes #458, #434, #435) - #475 —
feat(strategy): speckit v0.20 scope emission + GA docs/glossary/issue:ingest(closes #436, #432, #433, #457, #429, #454)
Key changes
Renderers (#458, #434, #435)
scripts/roadmap_render.pynow reads both{from, to}and{source, target}edge conventions (from/topreferred). Prevents silent empty dep-map failures when schema-compliant v0.20 input meets legacy code paths.scripts/spec_render.pyrenders narratives in a declaredSPECIFICATION_NARRATIVE_KEY_ORDERcovering both interview/light and speckit key sets — eliminates the 44-byte H1-only failure mode for speckit specs.scripts/spec_render.py--include-scopesflag (default on) walksvbrief/{pending,active,completed}/and emits an## Implementation Plansection grouped by lifecycle bucket — SPECIFICATION.md is now complete for any v0.20+ project.
Strategies and workflow gates (#436, #432, #433)
- Speckit Phase 4 now emits one scope vBRIEF per implementation phase into
vbrief/pending/YYYY-MM-DD-ip<NNN>-<slug>.vbrief.json(3-digit zero-padded) with canonicalDescription/Acceptance/Tracesnarratives.plan.vbrief.jsonreverts to its documented session-todo role.scripts/migrate_vbrief.pygainsmigrate_speckit_plan()for converting existing speckit-shaped plans. - Speckit Phase 3 -> 4 transition is now gated on
SPECIFICATION.mdexisting and matching the rendered spec vBRIEF hash. End-of-Phase-3 render is invoked byskills/deft-directive-setup/SKILL.mdeven when the user declines the explicit prompt. - Greenfield export prompt: end of Phase 3 now asks users whether to generate
SPECIFICATION.mdand/orPRD.mdwith four numbered choices before handing off to build.
Interview deterministic questions (#431, follow-up to #359)
- Restored all three #359 behaviors that regressed in RC2: confirm-after-number-press, back-navigation (
b/back/prev), slot-0 "Discuss with agent" escape hatch, plus a persistent one-line legend (Enter confirm / b back / 0 discuss) under every deterministic question.
Tooling, docs, release prep (#454, #457, #429)
task issue:ingest: newscripts/issue_ingest.pywith single-issue and bulk modes. Fetches GitHub issues, deduplicates against existingreferences, and writes scope vBRIEFs tovbrief/<status>/YYYY-MM-DD-<N>-<slug>.vbrief.json. Wired viatasks/issue.yml.glossary.md: new canonical v0.20 vocabulary surface with RFC2119 legend and 13 required terms (Scope vBRIEF, Lifecycle folder, Plan-level / Item-level narrative, Filename stem, Cross-scope dependency, Exit Commands, Origin provenance, Canonical narrative key, Preparatory strategy, Spec-generating strategy, Rendered export, Source of truth). Cross-referenced fromvbrief/vbrief.md,README.md,UPGRADING.md.- README: RC-specific safety banner removed; distilled upgrade-safety guidance moved to
UPGRADING.mdunder a new "Upgrade safety" subsection.
Status
- Target for final: v0.20.0 after rc.3 testing feedback.
- PR #403 remains draft; final merge to
masteris still pending rc.3 feedback and the remaining PR #403 release-checklist items. - Open GA-blocker issues (#429, #431, #432, #433, #434, #435, #436, #454, #457, #458) stay OPEN until PR #403 merges to
master, at which point theCloses #Nauto-close keywords will fire.
Feedback
File issues against this tag with reproduction steps. Mention v0.20.0-rc.3 in the issue body so we can triage by RC window.
What's Changed
- .github/workflows: Migrate workflows to Blacksmith runners by @blacksmith-sh[bot] in #430
- fix(interview): restore deterministic-question confirm/back/discuss affordances (#431) by @MScottAdams in #472
- feat(scripts): spec_render + roadmap_render v0.20 GA blockers (#458, #434, #435) by @MScottAdams in #474
- feat(strategy): speckit v0.20 scope emission + GA docs/glossary/issue:ingest (#436, #432, #433, #457, #429, #454) by @MScottAdams in #475
New Contributors
- @blacksmith-sh[bot] made their first contribution in #430
Full Changelog: v0.20.0-rc.2...v0.20.0-rc.3
v0.20.0-rc.2
Full Changelog: v0.20.0-rc.1...v0.20.0-rc.2
v0.20.0-rc.1
What's Changed
- docs(roadmap): add Phase 2 gap analysis stories P/Q/R/S/T by @MScottAdams in #337
- feat(vbrief): update vbrief.md with vBRIEF-centric document model (#310) by @MScottAdams in #343
- feat(tasks): add scope lifecycle task commands for vBRIEF model (#324) by @MScottAdams in #339
- feat(tasks): add roadmap:render generation tool with drift detection (#311) by @MScottAdams in #340
- feat(tasks): add project:render PROJECT-DEFINITION regeneration tool (#323) by @MScottAdams in #342
- feat(tasks): add migrate:vbrief migration script for vBRIEF-centric cutover (#312) by @MScottAdams in #341
- feat(tasks): add vBRIEF validation tooling for centric document model (#333) by @MScottAdams in #344
- docs(vbrief): update ancillary framework docs for vBRIEF-centric model by @MScottAdams in #346
- docs(vbrief): update main.md and AGENTS.md for vBRIEF-centric model by @MScottAdams in #347
- feat(installer): rewrite Go installer thin pointers for deft-directive-* namespace by @MScottAdams in #348
- docs(vbrief): rename deft-swarm to deft-directive-swarm with flexible vBRIEF allocation by @MScottAdams in #352
- docs(vbrief): rename deft-build/review-cycle/pre-pr to deft-directive-* by @MScottAdams in #349
- docs(vbrief): rename deft-roadmap-refresh+sync to deft-directive-refinement+sync and rewrite by @MScottAdams in #350
- docs(vbrief): rename deft-setup+interview to deft-directive-* and rewrite for vBRIEF model by @MScottAdams in #351
- test(vbrief): add content and structural test coverage for vBRIEF-centric model by @MScottAdams in #354
- feat(vbrief): add pre-cutover detection and backward compatibility guard by @MScottAdams in #353
- feat(cli): update cmd_spec and cmd_project for vBRIEF-centric model by @MScottAdams in #355
- chore(release): promote CHANGELOG to v0.20.0, bump version, update ROADMAP by @MScottAdams in #356
- chore(vbrief): add issue reconciliation script and close obsoleted issues by @MScottAdams in #357
- feat(swarm): configurable base branch and auto-generate vBRIEFs from GitHub issues (#373) by @MScottAdams in #374
- feat(strategies): convert speckit and enterprise to vBRIEF-centric outputs (#361, #362, #364) by @MScottAdams in #376
- feat(strategies): convert rapid, bdd, discuss to vBRIEF-centric outputs (#363, #365, #366) by @MScottAdams in #377
- feat(strategies): convert research, map to vBRIEF-centric outputs; redirect roadmap to refinement (#367, #368, #369) by @MScottAdams in #378
- feat(change,skills): convert deft:change to vBRIEF outputs, replace PRD gate, fix deterministic question UX (#371, #372, #345, #359) by @MScottAdams in #379
- fix(strategies,skills): idempotency guards + SKILL.md cutover + version bump (#387, #389, #390) by @MScottAdams in #393
- fix(docs): bootstrap + discoverability + lifecycle docs + GitHub prereqs + CHANGELOG (#358, #385, #386, #388, #391) by @MScottAdams in #394
- fix(scripts): migration parser + roadmap render + spec status gate (#381, #382, #383, #384) by @MScottAdams in #395
- fix(scripts): migrate_vbrief ingests PRD/SPECIFICATION structured content into spec narratives (#397) by @MScottAdams in #399
- fix(scripts,skills): auto-render staleness warning + pre-pr auto-render step (#398) by @MScottAdams in #400
- fix(scripts): project_render.py SKELETON_NARRATIVES matches validator (#405) by @MScottAdams in #413
- feat(cli): upgrade gate + lifecycle subdirs in run (#404, #410) by @MScottAdams in #414
- docs: vBRIEF-centric README + brownfield adoption guide (#407, #408) by @MScottAdams in #415
- docs: UPGRADING.md + QUICK-START upgrade detection + v0.19 bridge (#411) by @MScottAdams in #416
- fix(scripts): migrate_vbrief derives Overview narrative on v0.19 fixtures (#417) by @MScottAdams in #419
Full Changelog: v0.19.0...v0.20.0-rc.1
v0.19.0 -- Review Cycle Optimization + Interview Cleanup
Key Changes
- Greptile review cycle optimization (#305): 5-change bundle -- mandatory deft-pre-pr, PR scope gate, adaptive poll cadence (20-30s/60s/90s), parallel rebase monitoring, .greptile/rules.md template
- Approach 3 interactive blocking fallback (#307): Last-resort Start-Sleep loop for sessions without start_agent or timer
- Select-String fallback for oversized output (#328): Recovery path when do_not_summarize_output produces too-large output
- Interview routing keyword fix (#301): Bare 'interview' replaced with 'interview loop' / 'q&a loop'
- Interview invocation contract (#302): Embedded vs delegation modes documented
- Rule 5 vs Rule 6 fix (#303): Confirmation gate strictness asymmetry clarified
- Setup reference regression tests (#304): 2 new assertions for deft-setup/deft-interview
Stats
2 agents | ~25 min elapsed | 2 PRs merged (#329, #330) | 7 issues closed
Full Changelog: v0.18.0...v0.19.0
What's Changed
- docs(roadmap): refresh -- add #301-#304, #305, #307, Phase 2 vBRIEF Cutover (#309+bundle); restructure phases by @MScottAdams in #327
- fix(interview): clarify invocation contract + fix ok inconsistency + add setup reference tests by @MScottAdams in #329
- fix(review-cycle): optimize Greptile review cycle + add Approach 3 fallback + interview routing fix by @MScottAdams in #330
Full Changelog: v0.18.1...v0.19.0
v0.18.1 -- Spec sync + test coverage
What's Changed
Added
- Subprocess-based unit tests for v0.17.0 task scripts (#293, t3.3.4): 25 subprocess-based tests covering \ oolchain-check.py, \�erify-stubs.py, \�alidate-links.py, \change:init, and \commit:lint; coverage 87.58%
Fixed
- Spec status sync (#298, t1.25.1): Flipped 24 stale [pending]\ task statuses to [completed]\ across v0.14.0--v0.18.0
Full Changelog: v0.18.0...v0.18.1
What's Changed
- docs(roadmap): refresh -- add #298 to Phase 1 Cleanup by @MScottAdams in #306
- chore(spec): flip all stale [pending] task statuses to [completed] (#298) by @MScottAdams in #325
- test(cli): add subprocess-based unit tests for v0.17.0 task scripts (#293) by @MScottAdams in #326
Full Changelog: v0.18.0...v0.18.1
v0.18.0 -- deft-interview skill + swarm/test-with-code improvements
What's New
Added
- skills/deft-interview/SKILL.md (#296) -- New deterministic structured Q&A interview skill. Encodes a reusable interview loop any skill can invoke: one-question-per-turn, numbered options with stated defaults, other/IDK escape, depth gate, confirmation gate, and structured handoff contract (answers map). Includes thin pointer, AGENTS.md routing, deft-setup integration, and 12 tests.
- deft-swarm Phase 6 Slack release announcement (#292) -- New step auto-generates a standard Slack announcement block after the GitHub release is tagged. Includes version, release title, summary, key changes, agent count, duration, PR numbers, and release URL.
Fixed
- deft-swarm Phase 6 read-back verification (#288) -- After resolving rebase conflicts, agent must re-read the resolved file and verify structural integrity before
git add. Prefersedit_filesover shell regex for CHANGELOG.md/SPECIFICATION.md. Mirrors the mandatory pre-commit file review. - Strengthen test-with-code rule (#294) -- New source files MUST include corresponding test files in the same PR. 4-surface update: AGENTS.md Before committing, main.md testing gate (regression vs forward coverage distinction), deft-swarm Prompt Template CONSTRAINTS, deft-build pre-commit checklist.
- Resolve 5 untracked xfail gaps (#295) -- Flipped 20 xfail entries to passing: RFC2119 legend standardization (6 files), missing shape sections (8 files), taskfile-migration.md stub, testbed spec rephrasing, stale PROJECT.md xfails.
Issues Closed
Next Up (Phase 1 Cleanup is now empty)
Phase 2 content fixes and deft-interview follow-up issues: #301 (routing keyword), #302 (invocation contract), #303 (Rule 5/6 consistency), #304 (deft-setup test coverage)
What's Changed
- docs(roadmap): refresh -- add #288, #292, #293, #294, #295, #296 by @MScottAdams in #297
- chore(spec): resolve 5 untracked xfail gaps in known_failures.json (#295) by @MScottAdams in #300
- feat(skills): add deft-interview skill + strengthen swarm/test-with-code rules (#288 #292 #294 #296) by @MScottAdams in #299
Full Changelog: v0.17.0...v0.18.0
v0.17.0 -- Modular Taskfile + Deterministic Enforcement
Restructured the monolithic Taskfile.yml into a modular tasks/ directory with 8 included task files, and added 7 new deterministic enforcement tasks -- replacing prompt-driven agent honor system with binary pass/fail gates.
New tasks:
toolchain:check-- verifies go, uv, task, git, gh are installedverify:stubs-- scans source files for TODO/FIXME/HACK/stub patternsverify:links-- validates internal markdown link targets existspec:pipeline-- chains spec:validate + spec:renderchangelog:check-- verifies CHANGELOG.md [Unreleased] has entrieschange:init-- scaffolds history/changes// directory structurecommit:lint-- validates conventional commit message format
Infrastructure:
- Root Taskfile.yml is now a minimal includes-only entrypoint
- Existing tasks moved to
tasks/core.yml,tasks/spec.yml,tasks/install.yml - Enhanced
task checkgate now includes toolchain, stub, and link verification - 3 new Python scripts under
scripts/for portable cross-platform checks
Implements the deterministic > probabilistic design principle from meta/philosophy.md. Partial progress on #233; fully closes #235.
v0.16.0
What's Changed
- docs(roadmap): refresh -- add #256, #258, #261, #263 to Phase 1/2 by @MScottAdams in #265
- docs(roadmap): refresh -- add #266, #268 to Phase 2, #270 to Phase 3 by @MScottAdams in #273
- fix(skill): harden deft-swarm Phase 5->6 gate and add crash recovery (#261, #263) by @MScottAdams in #275
- fix(docs): update --body-file convention to use OS temp directory (#256) by @MScottAdams in #276
- docs(readme): installer links at top + fenced code blocks for copy button (#266, #268) by @MScottAdams in #278
- feat(skill): add deft_version field to deft-setup artifact templates (#270) by @MScottAdams in #277
- docs(roadmap): refresh -- add #279, #272, #269 to Phase 1, #274 to Phase 1 Cleanup by @MScottAdams in #280
- fix(skill): deft-setup -- pwd path anchor + post-interview confirmation gate (#272, #269) by @MScottAdams in #284
- fix(workflow): semantic accuracy check in mandatory pre-commit file review (#274) by @MScottAdams in #285
- fix(skill): deft-review-cycle -- Approach 2 idle warning + MCP capability detection (#279, #282) by @MScottAdams in #286
- fix(test,agents): WinError 448 pytest symlink fix + AGENTS.md BOM-safe PS rule (#281, #283) by @MScottAdams in #287
- chore(release): promote v0.16.0 -- 12 Phase 1 fixes and adoption blockers by @MScottAdams in #289
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
- fix(skills): roadmap-refresh row format template + spec task scaffolding (#221, #248) by @MScottAdams in #259
- docs(content): purge stale core refs, add strategy stubs, getting-started stub (#51, #112) by @MScottAdams in #260
- refactor(skills): rename deft-rwldl to deft-pre-pr; docs(readme): add artifact storage section (#226, #234) by @MScottAdams in #262
- chore: release v0.15.0 by @MScottAdams in #264
Full Changelog: v0.14.2...v0.15.0
v0.14.2
What's Changed
- docs(roadmap): refresh -- triage #228 (Phase 3), #248 (Phase 2) by @MScottAdams in #252
- fix(skill): strengthen batch-fix enforcement in deft-review-cycle (#250) by @MScottAdams in #253
- fix(skill): add autonomous Greptile re-review monitoring to deft-swarm Phase 6 rebase cascade (#249) by @MScottAdams in #254
- fix(skill): add semantic contradiction check for !/⊗ rules to deft-build and deft-rwldl (#251) by @MScottAdams in #255
- chore: release v0.14.2 by @MScottAdams in #257
Full Changelog: v0.14.1...v0.14.2