Skip to content

Commit bf8ddc0

Browse files
committed
chore: archive v1.3 milestone (shipped as plugin v4.0.0)
Archive ROADMAP/REQUIREMENTS/audit to milestones/v1.3-*, collapse ROADMAP, promote carried backlog to a top-level section, evolve PROJECT.md (validated CONV-01..04 + DRIFT-01..05, versioning decoupled), add the v1.3 retrospective section, and remove REQUIREMENTS.md (fresh for the next milestone).
1 parent d543fb2 commit bf8ddc0

8 files changed

Lines changed: 213 additions & 121 deletions

File tree

.planning/MILESTONES.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Milestones
22

3+
## v1.3 Consistency and Code-Integrity Safeguards (Shipped: 2026-06-27)
4+
5+
**Phases completed:** 2 phases, 8 plans, 7 tasks
6+
7+
**Key accomplishments:**
8+
9+
- Zero-dep CJS module deriving file-name/identifier casing + export/import style by majority vote with normalized Shannon entropy, plus per-file CONVENTION-tier conformance, verb-vs-body intent, and catch-handling checks that never block.
10+
- Task 1 — handler + router branch (commit 81eaba7):
11+
- Task 1 — gsd-pattern-mapper Step 5.5 (commit 169e00d):
12+
- 1. [Rule 1 - Bug] Block comment doc contained `
13+
- One-liner:
14+
- Task 1: `cmdVerifyDrift` + router case
15+
16+
---
17+
318
## v1.0 MVP (Shipped: 2026-04-06)
419

520
**Phases completed:** 3 phases, 10 plans, 27 tasks

.planning/PROJECT.md

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,16 @@ Reduce GSD's per-turn token overhead and agent spawn latency without breaking mu
4343
- ✓ Skill directories renamed `skills/gsd-<name>/``skills/<name>/` — fixed duplicated `/gsd:gsd-<skill>` prefix in tab completion — v1.2 quick task 260424-srn
4444
- ✓ PostToolUse periodic checkpoint bridges Claude Code's microcompact gap — file-mutation tool calls trigger a fresh HANDOFF write (throttled to once per 60s) so resume reflects recent state even when only microcompact (not PreCompact) has run — quick task 260425-mct
4545

46-
### Active (v1.3 — Consistency & Code-Integrity Safeguards)
46+
- ✓ Convention and architectural conformance gate: pattern-mapper Conventions section + code-review convention/verb-vs-body/architectural-split checks, zero new runtime dep (CONV-01..04) — v4.0.0 (Phase 10)
47+
- ✓ Native drift detection: MinHash+LCS structural-dup, phantom/placeholder, and conventions reuse via `verify drift`; ranked `/gsd:scan --drift`; opt-in warn-first audit-milestone integrity gate; committed auditable allowlist + `.vibedriftignore` (DRIFT-02..05) — v4.0.0 (Phase 11)
48+
- ✓ VibeDrift adopted as a second upstream: heuristics ported natively (pinned v0.14.0 baseline), repo watched, never invoked at runtime (DRIFT-01) — v4.0.0 (Phase 11)
49+
- ✓ Weekly plugin self-update watch + CJS/SDK config-schema parity guard — v4.0.0
4750

48-
Prevention (Phase 10) — Validated 2026-06-26:
49-
- [x] **CONV-01** — pattern-mapper writes a derived Conventions section to PATTERNS.md (majority-vote + entropy)
50-
- [x] **CONV-02** — code-review flags changed files that deviate from the derived convention
51-
- [x] **CONV-03** — code-review runs a verb-vs-body intent check
52-
- [x] **CONV-04** — code-review runs an architectural-pattern split check (DI vs env, error handling)
51+
### Active
5352

54-
Detection (Phase 11):
55-
- [ ] **DRIFT-01** — optional VibeDrift gate (pinned, `--local-only`, graceful-degrade when absent)
56-
- [ ] **DRIFT-02** — config-gated pre-1.0 integrity gate in audit-milestone (`--fail-on-score`)
57-
- [ ] **DRIFT-03** — intentional-duplication allowlist suppresses the CJS<->SDK dual resolver, auditably
58-
- [ ] **DRIFT-04**`/gsd:scan --drift` produces a ranked drift report
59-
- [ ] **DRIFT-05** — native fallback heuristics run when VibeDrift is absent
53+
No active requirements: v1.3 shipped as plugin **v4.0.0** (2026-06-27). Scope the next milestone via `/gsd:new-milestone`.
6054

61-
Deferred (not in v1.3): `allowed-tools` on verification skills, tool restriction profiles, empirical token measurement.
55+
Deferred (carried to ROADMAP `## Backlog`): LIFE-02, LIFE-03, BEHAVIOR-01, UPST-03/04. Also deferred: `allowed-tools` on verification skills, tool restriction profiles, empirical token measurement.
6256

6357
### Out of Scope
6458

@@ -71,27 +65,21 @@ Deferred (not in v1.3): `allowed-tools` on verification skills, tool restriction
7165

7266
## Current State
7367

74-
**In progress:** v1.3 Consistency & Code-Integrity Safeguards. Phase 10 (Convention & Architectural Conformance) complete 2026-06-26 — `bin/lib/conventions.cjs` ships as the deterministic single source of truth (derive + conformance, zero-dep, never-throws), wired through `gsd-tools verify conventions` + CI and surfaced via the pattern-mapper Conventions section and the code-reviewer advisory CONVENTION tier. CONV-01..04 validated (12/12 must-haves + both human-UAT items passed). Phase 11 (repo-wide detection) is next.
68+
**Shipped:** v1.3 Consistency & Code-Integrity Safeguards, released as plugin **v4.0.0** (2026-06-27). Phase 10 delivered the convention conformance gate (`bin/lib/conventions.cjs` + `verify conventions` + pattern-mapper/code-review wiring, CONV-01..04). Phase 11 delivered native drift detection (`semantic-dup` + `phantom-scaffolding` + `drift-allowlist` composed via `verify drift`), `/gsd:scan --drift`, the opt-in warn-first audit-milestone integrity gate, and VibeDrift adopted as a second upstream (heuristics ported natively, never invoked at runtime). DRIFT-01..05 validated; both phases nyquist-compliant. v4.0.0 also moved the plugin to its own version line (decoupled from the gsd-core `+2` scheme). Full v1.3 details: [milestones/v1.3-ROADMAP.md](milestones/v1.3-ROADMAP.md).
7569

7670
**Shipped:** v1.2 Upstream Resilience — 2026-04-24. Three detectors now run in CI on every push (file-layout, HANDOFF schema, namespace drift), each with a committed ratchet baseline that hard-fails on regression. Unified `check-drift.cjs` orchestrator + post-sync upstream-schema detector close the loop. Plus a skill-directory rename that fixed a duplicated-prefix UX bug in tab completion. Full v1.2 details: [milestones/v1.2-ROADMAP.md](milestones/v1.2-ROADMAP.md).
7771

7872
**Previously shipped:** v1.1 Session Continuity (2026-04-20) — checkpoint/resume across `/compact`; details: [milestones/v1.1-ROADMAP.md](milestones/v1.1-ROADMAP.md). v1.0 MVP (2026-04-06) — plugin packaging + MCP + memory; details: [milestones/v1.0-ROADMAP.md](milestones/v1.0-ROADMAP.md).
7973

80-
## Current Milestone: v1.3 Consistency & Code-Integrity Safeguards
74+
## Current Milestone
8175

82-
**Goal:** Catch cross-session drift — duplicate logic under different names, oscillating naming conventions, split architectural patterns, and half-finished stubs — through prevention at authoring time and detection repo-wide.
76+
None active. v1.3 Consistency & Code-Integrity Safeguards shipped 2026-06-27 as plugin **v4.0.0**. Run `/gsd:new-milestone` to scope the next one. Archived roadmap: [milestones/v1.3-ROADMAP.md](milestones/v1.3-ROADMAP.md); requirements: [milestones/v1.3-REQUIREMENTS.md](milestones/v1.3-REQUIREMENTS.md).
8377

84-
**Target features:**
85-
- Convention/architectural conformance in plan -> execute -> review (Phase 10): pattern-mapper emits a derived Conventions section; code-review gains conformance, verb-vs-body, and architectural-split dimensions.
86-
- Repo-wide drift detection (Phase 11): a consistency sweep plus an optional, config-gated VibeDrift gate with an intentional-duplication allowlist and a GSD-native fallback.
87-
88-
**Scoped:** 2026-06-26 via `/gsd:explore`; requirements formalized via `/gsd:new-milestone`. Roadmap: [milestones/v1.3-ROADMAP.md](milestones/v1.3-ROADMAP.md). Requirements: [REQUIREMENTS.md](REQUIREMENTS.md).
89-
90-
Carried backlog (still deferred, not in v1.3):
91-
- **LIFE-02** — staleness threshold detection for HANDOFF.json
92-
- **LIFE-03** — dedicated `/gsd:checkpoint` skill (optional polish; manual path already works)
93-
- **BEHAVIOR-01** — integration tests for upstream skill behavior drift (needs integration-test infra)
94-
- **UPST-03/04** — upstream PR packaging (blocked on upstream-direction review)
78+
Carried backlog (see ROADMAP `## Backlog`, surfaces at next `/gsd:new-milestone`):
79+
- **LIFE-02**: staleness threshold detection for HANDOFF.json
80+
- **LIFE-03**: dedicated `/gsd:checkpoint` skill (optional polish; manual path already works)
81+
- **BEHAVIOR-01**: integration tests for upstream skill behavior drift (needs integration-test infra)
82+
- **UPST-03/04**: upstream PR packaging (blocked on upstream-direction review)
9583

9684
## Context
9785

@@ -101,7 +89,7 @@ Shipped v1.2 with 3 phases, 3 plans, 14 tasks, plus 3 structurally related quick
10189
Tech stack: Node.js CJS (bin/lib), MCP server (stdio JSON-RPC), Claude Code plugin system.
10290
~14k LOC in bin/*.cjs, ~573 LOC MCP server, 81 self-contained skill files (~21k LOC).
10391
Published as [jnuyens/gsd-plugin](https://github.com/jnuyens/gsd-plugin) on GitHub.
104-
Based on [GSD 1.41.2](https://github.com/gsd-build/get-shit-done) by TACHES (Lex Christopherson).
92+
Based on the [GSD](https://github.com/open-gsd/gsd-core) base tree by TÂCHES (Lex Christopherson), now community-maintained at open-gsd; selectively cherry-picked from the gsd-core 1.x line. As of v4.0.0 the plugin tracks its own version line.
10593

10694
## Constraints
10795

@@ -123,6 +111,8 @@ Based on [GSD 1.41.2](https://github.com/gsd-build/get-shit-done) by TACHES (Lex
123111
| Lightweight MCP transport | Custom stdio JSON-RPC instead of full SDK in plugin | ✓ Good — reduces dependency footprint |
124112
| memdir project-type memories | Lean phase memories with Why:/How to apply: structure | ✓ Good — auto-recalled by Claude Code's existing pipeline |
125113
| Plugin hooks via hooks/hooks.json | Auto-loaded by plugin loader, not manifest.hooks | ✓ Good — avoids duplicate registration |
114+
| VibeDrift as a second upstream (native port, never run) | Keep drift detection 100% native/zero-dep while still learning from VibeDrift heuristics | ✓ Good — DRIFT-01; ops-only release watch, nothing on the runtime path (v4.0.0) |
115+
| Plugin on its own version line (v4.0.0) | A second upstream plus features with no upstream equivalent make a gsd-core-coupled major misleading | ✓ Good — major now signals plugin milestones; gsd-core line noted per release for provenance |
126116

127117
## Evolution
128118

@@ -154,4 +144,4 @@ This document evolves at phase transitions and milestone boundaries.
154144
9. **Run `UPSTREAM_VERSION=v1.x.y node bin/maintenance/check-upstream-schema.cjs`** (use the just-synced version) — must exit 0 before declaring the sync complete. If upstream added fields, decide whether to absorb them into `schema/handoff-v1.json` as optional or bump to a `handoff-v2.json` alongside
155145

156146
---
157-
*Last updated: 2026-06-26 — Phase 10 (Convention & Architectural Conformance) complete: CONV-01..04 validated, conventions module + verify subcommand + agent/review wiring shipped. Earlier same day: formalized milestone v1.3 Consistency & Code-Integrity Safeguards (requirements CONV-01..04, DRIFT-01..05 mapped to Phases 10-11; roadmap was scoped via /gsd:explore). Prior: 2026-05-11 synced upstream GSD 1.41.2 (plugin v2.42.4) — state-mutation data-loss fixes, verifier hardening (TBD/FIXME/XXX rejection + direct probe execution), executor stall detection, phase remove --force renumbering fix, Codex/Gemini/Windows install hardening, detect-custom-files scanning skills/. Bundled SDK still v1.50.0-canary.0.*
147+
*Last updated: 2026-06-27 after the v1.3 milestone shipped as plugin v4.0.0. Phase 10 (convention conformance gate, CONV-01..04) + Phase 11 (native drift detection, VibeDrift second upstream, DRIFT-01..05); both nyquist-compliant. Plugin moved to its own version line (decoupled from the gsd-core +2 scheme). Added a weekly plugin self-update watch and a CJS/SDK config-schema parity guard. Prior: 2026-06-26 Phase 10 complete; 2026-05-11 synced upstream GSD 1.41.2 (plugin v2.42.4). Bundled SDK v1.50.0-canary.0.*

.planning/RETROSPECTIVE.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,39 @@
4747

4848
---
4949

50+
## Milestone: v1.3 — Consistency & Code-Integrity Safeguards
51+
52+
**Shipped:** 2026-06-27 (released as plugin v4.0.0)
53+
**Phases:** 2 (Phases 10-11) | **Plans:** 8
54+
55+
### What Was Built
56+
A convention conformance gate (`conventions.cjs` + `verify conventions`, derived by majority vote with entropy, wired into pattern-mapper and code-review) and native, zero-dependency drift detection (MinHash+LCS structural-dup, phantom/placeholder scaffolding, an auditable allowlist) surfaced via `verify drift`, `/gsd:scan --drift`, and an opt-in audit-milestone integrity gate. VibeDrift was adopted as a second, idea-only upstream (ported natively, watched, never run). The plugin moved to its own version line.
57+
58+
### What Worked
59+
- TDD throughout (RED/GREEN commits) made the verifier's job cheap and caught real bugs.
60+
- The verifier earned its keep: it found a genuine blocking bug (the `**` glob mistranslation that silently leaked the CJS/SDK dual-resolver pairs), auto-healed inline rather than spun into a gap phase.
61+
- Sequential-on-main-tree execution traded parallel-worktree speed for bullet-proof reliability in this runtime; the right call for an 8-plan milestone.
62+
- Nyquist validation caught soft tests (`assert.ok(true)` fallbacks) that "passed" but couldn't fail.
63+
64+
### What Was Inefficient
65+
- Several flagship-feature gaps shipped in Phase 11 and had to be caught later by code review (`.vibedriftignore` loaded-but-unused, dead `METHOD_RE`, a consumer-workflow key mismatch). Tighter executor self-review would have caught these in-phase.
66+
- The CJS/SDK dual resolver keeps producing parity drift (config schema, aliases); each is a separate fix until a parity guard exists. Added the config-schema parity test this release.
67+
68+
### Patterns Established
69+
- "Native port + second-upstream watch" as an alternative to vendoring a dependency.
70+
- Auditable-allowlist + ignore-file as the standard way to suppress intentional duplication in drift scans.
71+
- Major version as a deliberate divergence signal, decoupled from upstream tracking.
72+
73+
### Key Lessons
74+
- A config file the user populates (`.vibedriftignore`) that silently does nothing is the worst failure mode for a trust feature; wire the input through end-to-end and test it.
75+
- When two resolvers must agree (CJS/SDK), a parity test is worth more than fixing each drift instance.
76+
77+
### Cost Observations
78+
- Model mix: orchestrator on opus, executors/verifiers/auditors on sonnet.
79+
- Notable: the milestone close turned into a substantial release (flagship-gap fixes + a new cron feature + full docs + Nyquist validation) folded in at the user's request.
80+
81+
---
82+
5083
## Cross-Milestone Trends
5184

5285
### Process Evolution

.planning/ROADMAP.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- [x] **v1.0 MVP** — Phases 1-3 (shipped 2026-04-06)
66
- [x] **v1.1 Session Continuity** — Phases 4-5 (shipped 2026-04-20; Phase 6 dropped, rehomed to v1.2 backlog)
77
- [x] **v1.2 Upstream Resilience** — Phases 7-9 (shipped 2026-04-24 — 3 phases, 3 plans, 14 tasks, ~26min executor time)
8-
- [ ] **v1.3 Consistency & Code-Integrity Safeguards** — Phases 10-11 (scoped 2026-06-26). Carried backlog (still deferred): LIFE-02, LIFE-03, BEHAVIOR-01, UPST-03, UPST-04.
8+
- [x] **v1.3 Consistency & Code-Integrity Safeguards** — Phases 10-11 (shipped 2026-06-27, released as plugin v4.0.0)
99

1010
## Phases
1111

@@ -42,7 +42,10 @@ Full details: [milestones/v1.2-ROADMAP.md](milestones/v1.2-ROADMAP.md)
4242

4343
</details>
4444

45-
**v1.3 Consistency & Code-Integrity Safeguards (Phases 10-11) — SCOPED 2026-06-26 (active)**
45+
<details>
46+
<summary>✅ v1.3 Consistency & Code-Integrity Safeguards (Phases 10-11): SHIPPED 2026-06-27 (plugin v4.0.0)</summary>
47+
48+
**v1.3 Consistency & Code-Integrity Safeguards (Phases 10-11): SHIPPED 2026-06-27**
4649

4750
Addresses **cross-session drift**: independent agent sessions, no shared memory, produce
4851
locally-reasonable but globally-inconsistent code (duplicate logic under different names,
@@ -117,7 +120,11 @@ Plans:
117120

118121
- [x] 11-05-PLAN.md — `/gsd:scan --drift` ranked report branch + audit-milestone §5.6 opt-in warn-first Drift Integrity Gate
119122

120-
### v1.3 carried backlog (still deferred, NOT in this milestone)
123+
</details>
124+
125+
## Backlog
126+
127+
Still-deferred, carried forward (surfaces at next `/gsd:new-milestone`):
121128

122129
- **LIFE-02** — staleness threshold detection for HANDOFF.json (resume refuses / warns on stale)
123130
- **LIFE-03** — dedicated `/gsd:checkpoint` skill for manual save (optional; current manual path works via `/gsd:pause-work`)
@@ -132,4 +139,4 @@ Plans:
132139
| v1.0 MVP | 3 | 2026-04-06 |
133140
| v1.1 Session Continuity | 2 (+ 1 dropped) | 2026-04-20 |
134141
| v1.2 Upstream Resilience | 3 | 2026-04-24 |
135-
| v1.3 Consistency & Code-Integrity Safeguards | 2 (scoped) | |
142+
| v1.3 Consistency & Code-Integrity Safeguards | 2 | 2026-06-27 |

.planning/STATE.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
gsd_state_version: 1.0
33
milestone: v1.3
44
milestone_name: Consistency & Code-Integrity Safeguards
5-
status: milestone_complete
6-
stopped_at: Milestone complete (Phase 11 was final phase)
7-
last_updated: 2026-06-27T02:03:00.024Z
8-
last_activity: 2026-06-27 -- Phase 11 execution started
5+
status: Awaiting next milestone
6+
stopped_at: v1.3 shipped as plugin v4.0.0; milestone archived and tagged
7+
last_updated: "2026-06-27T12:43:39.188Z"
8+
last_activity: 2026-06-27 — Milestone v1.3 completed and archived
99
progress:
1010
total_phases: 2
1111
completed_phases: 2
@@ -25,10 +25,10 @@ See: .planning/PROJECT.md (updated 2026-06-26)
2525

2626
## Current Position
2727

28-
Phase: 11
29-
Plan: Not started
30-
Status: Milestone complete
31-
Last activity: 2026-06-27
28+
Phase: Milestone v1.3 complete
29+
Plan:
30+
Status: Awaiting next milestone
31+
Last activity: 2026-06-27 — Milestone v1.3 completed and archived
3232

3333
## Performance Metrics
3434

@@ -138,5 +138,9 @@ None.
138138
## Session Continuity
139139

140140
Last session: 2026-06-27T01:35:35.303Z
141-
Stopped at: Plan 03 complete, 2/3 tasks auto (Task 3 deferred human-action), moved to Plan 4 of 5
142-
Next action: `/gsd:new-milestone` to scope v1.3 (questioning → research → requirements → roadmap).
141+
Stopped at: v1.3 Consistency & Code-Integrity Safeguards shipped as plugin v4.0.0; milestone archived and tagged.
142+
Next action: `/gsd:new-milestone` to scope the next milestone.
143+
144+
## Operator Next Steps
145+
146+
- Start the next milestone with /gsd-new-milestone
File renamed without changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# Requirements Archive: v1.3 Consistency and Code-Integrity Safeguards
2+
3+
**Archived:** 2026-06-27
4+
**Status:** SHIPPED
5+
6+
For current requirements, see `.planning/REQUIREMENTS.md`.
7+
8+
---
9+
110
# Requirements: GSD Performance Optimization — v1.3 Consistency & Code-Integrity Safeguards
211

312
**Defined:** 2026-06-26

0 commit comments

Comments
 (0)