From efed6a707c72978c083af966a129ac5678fafb92 Mon Sep 17 00:00:00 2001 From: Ankur <04.ankur@gmail.com> Date: Thu, 30 Apr 2026 10:12:43 +0530 Subject: [PATCH] =?UTF-8?q?Release=20prep=20=E2=80=94=20bump=20to=200.2.5?= =?UTF-8?q?=20and=20roll=20up=20CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps `package.json` + `package-lock.json` from 0.2.1 → 0.2.5. Rolls every [Unreleased] entry — refine, clarify, depends_on/related frontmatter + list column, the constitution, the @inquirer/prompts drop, the api-mode drop, and skills install auto-detect — into a new [0.2.5] — 2026-04-30 — Ankur section, with a fresh empty [Unreleased] block above. The release header frames this as the host-agent-first cut: the SDK path and the interactive prompt layer both go away, voice and spec-quality rules move into `.draftwise/constitution.md`, and the spec lifecycle gains clarify (audit before tech) plus refine (re-ground without clobbering PM edits). Under 0.x semver the patch lane carries breaking changes; the api-mode and inquirer drops both remove paths a small subset of users could have depended on, while every other change is additive at the CLI surface. Tests (266) + lint clean on the bumped tree. After merge, ritual: `git tag -a v0.2.5 -m "v0.2.5"`, `git push origin v0.2.5`, `npm publish` (interactive — OTP + login may be needed if the npm session expired). --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7c692c..7fc2885 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ Each released version is tagged in git (`v0.0.1`, `v0.1.0`, etc.) and includes t ## [Unreleased] +## [0.2.5] — 2026-04-30 — Ankur + +The host-agent-first release. API mode is gone — Draftwise runs only inside coding agents now (Claude Code, Cursor, Gemini CLI), printing scanner data plus an instruction for the host agent's model to synthesize. The interactive prompt layer (`@inquirer/prompts`) is gone with it: every command takes its full input set as flags or positional args, and the CLI never blocks on stdin. With synthesis moved entirely into the host agent, voice and spec-quality rules now live in `.draftwise/constitution.md` — a user-editable, version-controlled file every drafting prompt tells the agent to read before drafting. Two new commands fill out the spec lifecycle: `draftwise clarify` audits an existing product spec for ambiguities + missing edge cases before drafting tech; `draftwise refine [--type=product|tech|tasks]` re-grounds a spec against its source-of-truth while preserving PM hand-edits. Product specs gain optional `depends_on:` / `related:` YAML frontmatter, and `draftwise list` surfaces a fourth DEPENDS ON column. `draftwise skills install` auto-detects which AI harnesses are on the machine instead of writing to all three by default. + +Bumps `package.json` + `package-lock.json` from 0.2.1 → 0.2.5. Under 0.x semver the patch lane carries breaking changes; the api-mode drop and inquirer drop both remove paths a small subset of users could have depended on, while every other change is additive at the CLI surface. Rolls all [Unreleased] entries into [0.2.5] — 2026-04-30 — Ankur, with a fresh empty [Unreleased] block above. + +After merge, ritual: `git tag -a v0.2.5 -m "v0.2.5"`, `git push origin v0.2.5`, `npm publish` (interactive — OTP + login may be needed if the npm session expired). + ### Added - **`draftwise refine [] [--type=product|tech|tasks]` — re-ground an existing spec while preserving PM hand-edits.** Resolves CLAUDE.md's long-standing "AI-assisted spec merge mode" open question. Different shape from `clarify`: clarify finds gaps and walks the PM through them; refine takes the existing spec as ground truth for what the PM wants and improves how it's written and grounded. Reads the chosen file (`product-spec.md` by default, `technical-spec.md` for `--type=tech`, `tasks.md` for `--type=tasks`), prints it plus the upstream source-of-truth (scanner output for product/tech brownfield, `overview.md` for greenfield, plus the upstream spec for tech/tasks), then prints a three-phase instruction telling the host coding agent to (1) audit each section as strong-leave-alone or weak-rewrite — bar is "actively misleads or under-specifies," not "could be tighter"; (2) re-ground the weak sections against the source-of-truth, removing or marking `(unverified)` any code reference the scanner doesn't surface; (3) save the refined file back, preserving strong sections character-for-character and any YAML frontmatter at the top of `product-spec.md` verbatim. Hard rules in the prompt: no fabricated code references, no scope creep (refining ≠ adding new features / edge cases), don't touch sections that are already strong. Same auto-pick / multi-spec / unknown-slug ergonomics as `tech`. Filters specs by which file the requested type requires (product-spec for `product`, technical-spec for `tech`, tasks for `tasks`); tech/tasks additionally validate that the upstream spec exists. Why: re-running `new` / `tech` / `tasks` on an existing spec only offers Overwrite or Cancel — both blunt. PMs review and edit specs, then want a "tighten this up" pass that doesn't blow away their edits. Refine is that pass. Prompt at `src/ai/prompts/refine.js` (per-type metadata table for file name, source-of-truth labels, and section-preservation rules); command at `src/commands/refine.js`; routed via `COMMANDS` in `src/index.js`. — Ankur diff --git a/package-lock.json b/package-lock.json index 439eb78..686ee5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "draftwise", - "version": "0.2.1", + "version": "0.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "draftwise", - "version": "0.2.1", + "version": "0.2.5", "license": "MIT", "dependencies": { "yaml": "^2.8.3" diff --git a/package.json b/package.json index a940da5..3123a12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "draftwise", - "version": "0.2.1", + "version": "0.2.5", "description": "Codebase-aware product specs. AI scans your repo, then drafts specs that fit it.", "main": "src/index.js", "scripts": {