@thedecipherist/mdd 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Triggered when arguments start with `import-spec`.
4
4
 
5
- Reads one or more large spec or prompt documents — the kind produced by extended brainstorming sessions with Claude — and converts them into properly structured MDD feature docs. Every decision in the spec is preserved. Duplicate or overlapping topics are merged intelligently. Path grouping determines whether to create initiative/waves or flat docs.
5
+ Reads one or more large spec or prompt documents — the kind produced by extended brainstorming sessions with Claude — and converts them into properly structured MDD initiatives, waves, and feature docs. Every decision in the spec is preserved. Duplicate or overlapping topics are merged intelligently. Features are numbered and waved in **build dependency order**, not spec-reading order.
6
6
 
7
7
  ---
8
8
 
@@ -39,25 +39,29 @@ Reading <filename> (<N> lines)...
39
39
  Full file read. Proceeding to feature extraction.
40
40
  ```
41
41
 
42
- If multiple files are provided, merge all content into a single working document after all files are fully read. Tag each section internally with its source filename (e.g. `<!-- source: rawpg-prompt-driver.md -->`) for traceability — these tags are used in the merge summary and content mapping display but are never written to output docs.
42
+ If multiple files are provided, merge all content into a single working document after all files are fully read. Tag each section internally with its source filename (e.g. `<!-- source: spec.md -->`) for traceability — these tags are used in the merge summary and content mapping display but are never written to output docs.
43
43
 
44
44
  ---
45
45
 
46
- ### Phase IS2 — Feature Extraction + Path Grouping
46
+ ### Phase IS2 — Feature Extraction, Classification + Path Grouping
47
47
 
48
- This phase runs in two steps. Path grouping always runs before complexity determination because the number of distinct top-level path areas is the primary signal for initiative-scale scope.
48
+ This phase runs in four steps. Build-order classification (IS2c) always precedes structure determination (IS2d) because the correct numbering depends on understanding what you build vs. what you reference.
49
49
 
50
- #### Step IS2a — Extract features
50
+ #### Step IS2a — Extract features + record source line ranges
51
51
 
52
- Read the entire merged spec. Identify every distinct feature, system, subsystem, or bounded capability described. A "feature" is any topic that could become a standalone MDD doc — something with a purpose, decisions, constraints, and a clear scope.
52
+ Read the entire merged working document. Identify every distinct feature, system, subsystem, or bounded capability described. A "feature" is any topic that could become a standalone MDD doc — something with a purpose, decisions, constraints, and a clear scope.
53
53
 
54
- For each identified feature:
54
+ For each identified feature, record:
55
55
  - Name / title
56
- - Core purpose (1–2 sentences distilled from the spec)
57
- - All key decisions, constraints, business rules, and edge cases mentioned in the spec
56
+ - **The exact line ranges in the source file(s) that cover this feature.** Record every range, including secondary ranges where the feature is discussed again (e.g. a directive mentioned in the syntax section AND in the security section AND in the changelog). Format: `lines 254–340, 2401–2450, 4725–4741`
57
+ - A brief extraction note: what types of content are in those ranges (e.g. "syntax section: options table, processing pipeline, scope model; security section: filesystem confinement rules; changelog: file resolution model decisions")
58
58
  - Dependencies on other features identified in the same spec
59
59
 
60
- Track which spec sections contribute to each feature. When multiple spec sections cover the same concept (same feature re-discussed with refinements), **merge them** do not create duplicate docs. When versions of the same decision conflict, keep the most specific or most recent version and note the discarded variant.
60
+ This line-range map is used in IS4 to re-read the source before writing each doc. It is the most important output of IS2a. Do not skip or estimate ranges check your chunk boundaries if unsure.
61
+
62
+ Track which spec sections contribute to each feature. When multiple spec sections cover the same concept (same feature re-discussed with refinements), **merge them** — do not create duplicate docs. Record all contributing ranges. When versions of the same decision conflict, keep the most specific or most recent version and note the discarded variant.
63
+
64
+ **Changelog and review-pass sections** (sections titled "v1.0 Review", "Changelog", "Decision Log", or similar retrospective formats) are not standalone features — they are design decision records. For each decision in such a section, identify which feature it belongs to and add its line range to that feature's source ranges. Do not create a standalone "Changelog" feature doc.
61
65
 
62
66
  #### Step IS2b — Assign paths
63
67
 
@@ -68,7 +72,47 @@ For each identified feature, determine its `path` value:
68
72
  - Title Case, 1–3 levels, `/`-separated
69
73
  - Siblings must use identical parent spelling (if `Auth/Login` exists, new auth docs use `Auth`, not `Authentication`)
70
74
 
71
- #### Step IS2c — Determine output structure
75
+ #### Step IS2c — Build-order classification
76
+
77
+ This is the most important step. Features are numbered in the order a developer would actually build them — not the order they appear in the spec.
78
+
79
+ **Classify every feature as one of two types:**
80
+
81
+ **COMPONENT** — Something that results in code: a module, class, package, service, server, or runtime. The thing you sit down and write. Examples: Parser, Template Engine, Renderer, MCP Server, CLI.
82
+
83
+ **SPEC** — Something that describes behaviour a COMPONENT must implement: a directive definition, an API contract, a security rule, a caching rule, a language feature. You consult a SPEC doc while building the COMPONENT that implements it. Examples: `@include` directive spec, Security Config spec, Cache Modes spec.
84
+
85
+ **Order COMPONENT features by build dependency:**
86
+
87
+ Start from the foundation (the component everything else depends on) and work outward. Ask: "What must exist before I can build this?" The component with no dependencies comes first. The component that depends on everything comes last.
88
+
89
+ Example for a language toolchain:
90
+ ```
91
+ Parser — foundation, no deps, must exist first
92
+ Stripper — depends on Parser AST
93
+ Renderer — depends on Parser AST, no connection deps
94
+ Template Engine — depends on Parser + Renderer
95
+ MCP Server — depends on Template Engine
96
+ Hook — depends on MCP Server
97
+ CLI — depends on all of the above
98
+ ```
99
+
100
+ **Assign SPEC features to waves:** A SPEC feature belongs in the wave of the COMPONENT that implements it. The SPEC doc gets created alongside its implementing COMPONENT's wave so that both exist when building begins. The COMPONENT doc lists SPEC docs in its `depends_on`.
101
+
102
+ **Determine wave breakdown:** Group COMPONENTs (and their associated SPECs) into waves by build phase. Each wave should have a clear demo-state — a thing you can actually demonstrate when the wave is done.
103
+
104
+ Example wave structure for a language toolchain:
105
+ ```
106
+ Wave 1 — Foundation: Parser + all language directive SPECs
107
+ Wave 2 — Static Output: Stripper + Renderer
108
+ Wave 3 — Engine: Template Engine + Caching SPECs
109
+ Wave 4 — Live Data: MCP Server + Hook + Security SPECs
110
+ Wave 5 — CLI: CLI + Distribution
111
+ ```
112
+
113
+ **If no COMPONENT/SPEC distinction applies** (e.g. a feature-extension spec for an existing product), order features by: user-facing value first, infrastructure last. Earlier features should be shippable without later features.
114
+
115
+ #### Step IS2d — Determine output structure
72
116
 
73
117
  Count distinct root-level path segments (top-level areas):
74
118
 
@@ -78,7 +122,64 @@ Count distinct root-level path segments (top-level areas):
78
122
  | 1–2 root areas AND 4–7 features | Waves + Feature docs (no initiative wrapper) |
79
123
  | Any root area count AND 1–3 features | Flat feature docs only |
80
124
 
81
- These thresholds are guidelines — apply judgment. A 3-feature spec spanning radically different domains can still warrant waves.
125
+ These thresholds are guidelines — apply judgment.
126
+
127
+ ---
128
+
129
+ ### Phase IS2.5 — CLAUDE.md Check
130
+
131
+ Before showing the dry-run preview, check the project's CLAUDE.md.
132
+
133
+ Run: `[ -f CLAUDE.md ] && wc -l CLAUDE.md || echo "missing"`
134
+
135
+ **If CLAUDE.md is missing or under 10 lines:**
136
+
137
+ Ask the user via AskUserQuestion:
138
+
139
+ > "This looks like a new project. Want me to create a CLAUDE.md with a description of what `<product name>` is, its architecture, and how the MDD docs map to the codebase? This gives Claude the context it needs to build from the docs correctly."
140
+
141
+ Options:
142
+ - **"Yes, create CLAUDE.md"** — proceed to draft it from the spec, include in IS4 write step
143
+ - **"No, skip"** — continue without creating CLAUDE.md
144
+
145
+ **If CLAUDE.md already exists and is substantial:** skip this check entirely.
146
+
147
+ **CLAUDE.md content to draft (if approved):**
148
+
149
+ Derive from the spec:
150
+
151
+ ```markdown
152
+ # CLAUDE.md
153
+
154
+ ## What This Project Is
155
+
156
+ <Product name> — <one paragraph elevator pitch. What does it do, who is it for, what problem does it solve. Write this in plain terms, not marketing language.>
157
+
158
+ ## Core Philosophy
159
+
160
+ <The fundamental design principles that drive all decisions. Extract from the spec's philosophy/principles sections. These are the "why" behind architecture choices.>
161
+
162
+ ## Architecture Overview
163
+
164
+ <The major components and how they relate. For a toolchain: list each component, one line description, what it depends on. For an API: list major subsystems. Make it concrete.>
165
+
166
+ ## Tech Stack
167
+
168
+ <Language, frameworks, package manager, test runner — derive from spec if stated, leave blank if not.>
169
+
170
+ ## What the MDD Docs Represent
171
+
172
+ This project uses MDD (Manual-Driven Development). The `.mdd/` directory contains:
173
+ - `.mdd/initiatives/` — the top-level initiative(s) defining the full scope
174
+ - `.mdd/waves/` — waves within each initiative, each with a concrete demo-state
175
+ - `.mdd/docs/` — individual feature docs, one per buildable unit or behavioural spec
176
+
177
+ **The docs are numbered in build dependency order.** `/mdd 01` is always the first thing to build. Read the wave file before starting a wave to understand what "done" looks like.
178
+
179
+ ## Key Constraints
180
+
181
+ <Any hard rules derived from the spec: immutable rules, security constraints, "never do X", platform requirements. These are the lines that cannot be crossed.>
182
+ ```
82
183
 
83
184
  ---
84
185
 
@@ -91,16 +192,23 @@ Before writing any files, display the complete proposed structure and wait for e
91
192
 
92
193
  Source: <filename(s)>
93
194
  Features identified: <N> Merged: <N> duplicate/overlapping topics
195
+ CLAUDE.md: <"will be created" | "already exists, skipping" | "skipping (user declined)">
196
+
197
+ Proposed structure: Initiative "<name>" → <N> Waves → <N> Feature docs
94
198
 
95
- Proposed structure: <Flat docs | Waves | Initiative: "<name>" → Waves>
199
+ Initiative: .mdd/initiatives/<slug>.md
96
200
 
97
- Path Tree:
98
- <Root Area 1>
99
- ├── <Section> → <NN>-<slug> (draft)
100
- └── <Section>
101
- └── <Sub-section> <NN>-<slug> (draft)
102
- <Root Area 2>
103
- └── <Section> → <NN>-<slug> (draft)
201
+ Waves (in build order):
202
+ Wave 1 — <name> (.mdd/waves/<slug>-wave-1.md)
203
+ Demo-state: <what you can demonstrate when this wave is done>
204
+ Features:
205
+ <NN> <slug> [COMPONENT] <path>
206
+ <NN> <slug> [SPEC] <path>
207
+ Wave 2 <name> (.mdd/waves/<slug>-wave-2.md)
208
+ Demo-state: <demo-state>
209
+ Features:
210
+ <NN> <slug> [COMPONENT] <path>
211
+ ...
104
212
 
105
213
  IDs assigned: <NN>–<NN> (continuing from existing <prev>)
106
214
 
@@ -112,10 +220,11 @@ Content mapping:
112
220
  <NN>-<slug>: §<Spec Section> + §<Spec Section>
113
221
  <NN>-<slug>: §<Spec Section>
114
222
 
115
- Adjust paths, titles, or grouping? (approve / adjust / abort)
223
+ Is the build order correct? Does each wave's demo-state make sense?
224
+ (approve / adjust / abort)
116
225
  ```
117
226
 
118
- **If the user says "adjust":** accept their description of changes, re-run IS2 with that feedback applied, then show the preview again. Repeat until the user approves.
227
+ **If the user says "adjust":** accept their description of changes — reordering waves, reclassifying features, changing demo-states, renaming — re-run IS2 with that feedback applied, then show the preview again. Repeat until the user approves.
119
228
 
120
229
  **If the user says "abort":** stop. Write nothing.
121
230
 
@@ -125,22 +234,131 @@ Adjust paths, titles, or grouping? (approve / adjust / abort)
125
234
 
126
235
  ### Phase IS4 — Write Files
127
236
 
128
- **If initiative-scale was detected:** Create `.mdd/initiative.md` with:
129
- - `id`, `title`, `status: planning`, `created: <today>`
130
- - A brief initiative description derived from the spec's overall theme
131
- - Wave breakdown: one wave per major root path area or logical phase, each listing its feature doc slugs
237
+ Write in this order: CLAUDE.md (if approved) → initiative waves feature docs.
238
+
239
+ #### CLAUDE.md (if approved in IS2.5)
240
+
241
+ Write the drafted CLAUDE.md to the project root. Report: `✅ CLAUDE.md created`
242
+
243
+ #### Initiative file
244
+
245
+ Create `.mdd/initiatives/<slug>.md`:
246
+
247
+ ```markdown
248
+ ---
249
+ id: <slug>
250
+ title: <Full Initiative Title>
251
+ status: active
252
+ version: 1
253
+ hash:
254
+ created: <today YYYY-MM-DD>
255
+ ---
256
+
257
+ # <Full Initiative Title>
258
+
259
+ ## Overview
260
+
261
+ <Comprehensive description of what this initiative delivers. This should be 3-6 paragraphs:
262
+ - What the product/system is and what it does
263
+ - Why it exists and what problem it solves
264
+ - The core design philosophy and principles that drive all decisions
265
+ - The major components or areas being built
266
+ - What "done" looks like for the full initiative
267
+ Do NOT write "brief" — write enough that a developer reading only this file understands what they are building and why.>
268
+
269
+ ## Open Product Questions
270
+ (none — imported from spec)
271
+
272
+ ## Waves
273
+ | Wave | File | Demo-state | Status |
274
+ |------|------|------------|--------|
275
+ <one row per wave>
276
+ | Wave 1 | waves/<slug>-wave-1.md | <demo-state> | planned |
277
+ | Wave 2 | waves/<slug>-wave-2.md | <demo-state> | planned |
278
+ ```
279
+
280
+ Compute and write the `hash:` field after writing (hash of file content excluding the hash line).
281
+
282
+ #### Wave files
283
+
284
+ For each wave, create `.mdd/waves/<slug>-wave-N.md`:
285
+
286
+ ```markdown
287
+ ---
288
+ id: <slug>-wave-N
289
+ title: "Wave N: <Wave Title>"
290
+ initiative: <initiative-slug>
291
+ initiative_version: 1
292
+ status: planned
293
+ depends_on: <none | slug of previous wave>
294
+ demo_state: "<concrete thing you can demonstrate when this wave is complete>"
295
+ created: <today YYYY-MM-DD>
296
+ hash:
297
+ ---
298
+
299
+ # Wave N: <Wave Title>
300
+
301
+ ## Demo-State
302
+
303
+ <demo-state>
304
+ *(This wave is not complete until this can be manually demonstrated.)*
305
+
306
+ ## Features
307
+
308
+ | # | Feature | Doc | Type | Status | Depends on |
309
+ |---|---------|-----|------|--------|------------|
310
+ | 1 | <slug> | docs/<NN>-<slug>.md | COMPONENT | planned | — |
311
+ | 2 | <slug> | docs/<NN>-<slug>.md | SPEC | planned | <dep or —> |
312
+
313
+ ## Open Research
314
+
315
+ (none — imported from spec)
316
+ ```
317
+
318
+ Compute and write the `hash:` field after writing.
319
+
320
+ #### Feature docs
132
321
 
133
- **For each feature doc in the approved plan:**
322
+ For each feature in the approved plan, in wave order:
134
323
 
135
324
  1. Auto-number continuing from the highest existing doc number in `.mdd/docs/`
136
- 2. Write a complete MDD feature doc at `.mdd/docs/<NN>-<slug>.md` using the canonical frontmatter structure:
325
+
326
+ 2. **Re-read the source before writing.** Look up the line ranges recorded for this feature in IS2a. Re-read each range from the original spec file now — do not write from the IS2a extraction summary alone. The summary identified what exists; the re-read provides the actual content. Use the same chunked read strategy as IS1 if a range is large.
327
+
328
+ ```
329
+ Re-reading source for <slug>...
330
+ lines <X>–<Y> (<section name>) ✓
331
+ lines <X>–<Y> (<section name>) ✓
332
+ Writing doc...
333
+ ```
334
+
335
+ 3. **Run the completeness checklist against the freshly-read source before writing the doc.** For each item present in the source, it must appear in the doc:
336
+
337
+ - [ ] Every options / parameters table — every row, every column, every default value
338
+ - [ ] Every CLI subcommand and its flags (including rare/advanced flags)
339
+ - [ ] Every config JSON structure — exact keys, types, nesting, defaults
340
+ - [ ] Every TypeScript interface and type alias defined in the spec
341
+ - [ ] Every AST node type and its fields
342
+ - [ ] Every error message format and the exact condition that triggers it
343
+ - [ ] Every behavioral table (evaluation tables, state tables, format tables, platform tables)
344
+ - [ ] Every "always" / "never" / "must not" / "only valid when" rule
345
+ - [ ] Every example that illustrates an edge case or non-obvious behaviour
346
+ - [ ] Every named distinction where two similar things behave differently (e.g. `column` singular vs `columns` plural)
347
+
348
+ If any item is present in the source but not yet captured in your notes, add it now before writing the doc. Do not skip this step.
349
+
350
+ 4. Write `.mdd/docs/<NN>-<slug>.md`:
137
351
 
138
352
  ```markdown
139
353
  ---
140
354
  id: <NN>-<slug>
141
355
  title: <Feature Title>
356
+ type: <COMPONENT | SPEC>
357
+ initiative: <initiative-slug>
358
+ wave: <wave-slug>
359
+ wave_status: planned
142
360
  edition: <project name or "Both">
143
- depends_on: [<IDs of other imported features this one depends on>]
361
+ depends_on: [<IDs of docs this one depends on>]
144
362
  source_files: []
145
363
  routes: []
146
364
  models: []
@@ -159,27 +377,27 @@ known_issues: []
159
377
 
160
378
  ## Purpose
161
379
 
162
- <2–3 sentences from the merged spec content>
380
+ <Full description of what this feature is and does. Include the core design rationale — the "why" behind the decisions. Do not limit this to a sentence count. If the spec says a lot about this feature, capture it all here. A developer reading only this doc should fully understand what they are building.>
163
381
 
164
382
  ## Architecture
165
383
 
166
- <How this feature fits into the system, derived from spec decisions>
384
+ <How this feature fits into the system. For a COMPONENT: describe its responsibilities, inputs, outputs, and what it must never do. For a SPEC: describe the behaviour contract the implementing COMPONENT must satisfy. Include TypeScript interfaces, AST node types, and data structures if the spec defines them.>
167
385
 
168
386
  ## Data Model
169
387
 
170
- <If the spec describes data structures omit section if truly not applicable>
388
+ <Data structures, schemas, config formats described in the spec. Include the exact field names, types, and constraints. Omit section only if the spec truly defines no data structures for this feature.>
171
389
 
172
- ## API Endpoints
390
+ ## API / Interface
173
391
 
174
- <If the spec describes endpoints omit section if truly not applicable>
392
+ <Public interface this feature exposes: function signatures, tool names, command syntax, config keys. Omit if not applicable.>
175
393
 
176
394
  ## Business Rules
177
395
 
178
- <All decisions, constraints, validation rules, edge cases from the spec>
396
+ <Every decision, constraint, validation rule, edge case, error behaviour, and "never do X" described in the spec for this feature. This section should be exhaustive — if it is in the spec, it is here. Use bullet points or numbered lists for clarity.>
179
397
 
180
398
  ## Dependencies
181
399
 
182
- <Other features this one requires, by doc ID>
400
+ <Other feature docs this one requires. List by ID and title. For SPECs, name the COMPONENT that implements this spec.>
183
401
 
184
402
  ## Known Issues
185
403
 
@@ -187,30 +405,35 @@ known_issues: []
187
405
  ```
188
406
 
189
407
  3. Tags: 4–8 domain-concept keywords. NOT file paths or spec section names.
190
- 4. `depends_on`: if feature A was described in the spec as depending on feature B (also imported), use the IDs assigned in this run.
408
+ 4. `depends_on`: populate from the build order analysis. COMPONENT docs list the SPEC docs they implement. SPEC docs list other SPECs they depend on (e.g. the expression system spec is depended on by the filter spec).
191
409
 
192
410
  **Progress report as you write:**
193
411
  ```
194
- Writing docs...
195
- <NN>-<slug>.md (<path>)
196
- <NN>-<slug>.md (<path>)
412
+ Writing files...
413
+ CLAUDE.md
414
+ initiatives/markdownai.md
415
+ ✅ waves/markdownai-wave-1.md (Wave 1 — Foundation)
416
+ ✅ waves/markdownai-wave-2.md (Wave 2 — Static Pipeline)
417
+ ...
418
+ ✅ docs/01-<slug>.md [COMPONENT] <path>
419
+ ✅ docs/02-<slug>.md [SPEC] <path>
197
420
  ...
198
421
  ```
199
422
 
200
423
  ---
201
424
 
202
- ### Phase IS5 — Rebuild .startup.md
425
+ ### Phase IS5 — Rebuild .startup.md + Connections
203
426
 
204
- Trigger the `.mdd/.startup.md` rebuild:
205
- - Rebuild the auto-generated zone (Project Snapshot, Features Documented list with IDs, status, and tags)
427
+ Rebuild `.mdd/.startup.md`:
428
+ - Rebuild the auto-generated zone (Project Snapshot, Features Documented list with IDs, status, and tags; Ops Runbooks)
429
+ - Add initiative and wave summary to the Features section: show initiative title, each wave with status, feature count
206
430
  - Preserve the Notes zone exactly as-is
207
431
  - Update the generated date and current branch
208
432
 
209
- Then regenerate connections.md:
433
+ Then regenerate `.mdd/connections.md`:
210
434
 
211
- **Regenerate `.mdd/connections.md`:**
212
- Read all `.mdd/docs/*.md` (excluding `archive/`) frontmatter only (id, title, status, path, depends_on, source_files). Never read doc bodies. Then:
213
- - **Path tree:** sort docs by path alphabetically, then by id within the same path. Render as indented tree using `├──` / `└──` characters. Each leaf: `<path-leaf-segment> <id> <status>`.
435
+ Read all `.mdd/docs/*.md` (excluding `archive/`) — frontmatter only (id, title, type, status, path, depends_on, wave, source_files). Never read doc bodies. Then:
436
+ - **Path tree:** sort docs by path alphabetically, then by id within the same path. Render as indented tree using `├──` / `└──` characters. Each leaf: `<path-leaf-segment> <id> <type> <status>`.
214
437
  - **Mermaid graph:** one node per doc (short node ID), one `-->` edge per `depends_on` entry, `:::<status>` suffix on each node. Include `classDef complete fill:#00e5cc,color:#000`, `in_progress fill:#ffaa00,color:#000`, `draft fill:#888,color:#fff`, `deprecated fill:#555,color:#aaa`.
215
438
  - **Source overlap:** build map of source_file → docs that reference it. Include only files with 2+ docs.
216
439
  - **Warnings:** broken `depends_on` refs (target doesn't exist), circular dependencies, docs missing `path`.
@@ -221,21 +444,23 @@ Then report:
221
444
  ```
222
445
  ✅ Import Spec Complete
223
446
 
224
- Source: <filename(s)>
225
- Created: <N> feature docs
226
- Structure: <Flat | Waves | Initiative + Waves>
447
+ Source: <filename(s)>
448
+ CLAUDE.md: <created | skipped>
449
+ Initiative: .mdd/initiatives/<slug>.md
450
+ Waves: <N> wave files created
451
+ Docs: <N> feature docs created (<N> COMPONENT, <N> SPEC)
227
452
 
228
- Docs created:
229
- <NN>-<slug> <path> draft
230
- <NN>-<slug> <path> draft
231
- ...
453
+ Structure:
454
+ <initiative title>
455
+ Wave 1 — <name> (<N> features)
456
+ Wave 2 — <name> (<N> features)
457
+ ...
232
458
 
233
- Startup: .mdd/.startup.md rebuilt
459
+ Startup: .mdd/.startup.md rebuilt
234
460
  Connections: .mdd/connections.md updated
235
461
 
236
462
  Next steps:
237
- /mdd <NN> — start building any imported feature
238
- /mdd audit — run a full audit across all imported docs
239
- /mdd upgrade add path fields to any pre-existing docs that are missing them
240
- /mdd rebuild-tags — regenerate tags if any look thin
463
+ /mdd plan-execute <slug>-wave-1 — start building Wave 1
464
+ /mdd audit — run a full audit across all imported docs
465
+ /mdd <NN> jump directly to any feature doc
241
466
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thedecipherist/mdd",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "MDD — Manual-Driven Development workflow for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {