diff --git a/.changeset/tidy-tigers-dance.md b/.changeset/tidy-tigers-dance.md new file mode 100644 index 000000000..52bda9a90 --- /dev/null +++ b/.changeset/tidy-tigers-dance.md @@ -0,0 +1,5 @@ +--- +type: Removed +pr: 3313 +--- +**Redundant `CHANGELOG.md` row left behind by #3308 has been deleted** — the canonical `.changeset/3262-extract-scan-phase-plans.md` fragment remains the single source of truth for the `scanPhasePlans` extraction (k014, #3262). Per [CONTRIBUTING.md](CONTRIBUTING.md) ("Do not edit `CHANGELOG.md` directly"), the release workflow folds `.changeset/*.md` fragments into the changelog at release time; the hand-written row would have produced a duplicated entry on the next release. (#3313) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a836d715..025013e41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased](https://github.com/gsd-build/get-shit-done/compare/v1.41.0...HEAD) -### Enhancement - -- **Shared `scanPhasePlans()` helper extracted to `bin/lib/plan-scan.cjs` (k014)** — four divergent copies of the plan-scan algorithm in `state.cjs`, `roadmap.cjs`, `init.cjs`, and `phase.cjs` are now replaced by a single canonical implementation. Each copy had subtle differences (regex shapes, flat vs nested coverage, pre-bounce exclusion patterns) that caused plan-count drift between the four callers. The helper covers both the flat layout (`*-PLAN.md`, `PLAN.md`) and the nested layout (`plans/PLAN-NN-slug.md`) introduced in #3139, and returns `{ planCount, summaryCount, completed, hasNestedPlans, planFiles, summaryFiles }`. (#3262) - ### Fixed - **`/gsd-discuss-phase` and `/gsd-plan-phase` first-touch creation now apply `project_code` prefix consistently with `phase.add`/`phase.insert`** — projects with `project_code` set in `.planning/config.json` no longer accumulate a two-headed naming convention (`01-foundation/` mixed with `XR-02.1-spike/`). `init.phase-op` and `init.plan-phase` now expose `expected_phase_dir` (with prefix) in their JSON bundle; workflow fallback mkdir calls use this value instead of constructing the path from `padded_phase`+`phase_slug`. `phase.scaffold phase-dir` (CJS and SDK) also fixed. (#3287)