@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.
- package/commands/mdd-import-spec.md +284 -59
- package/package.json +1 -1
|
@@ -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.
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
-
|
|
57
|
-
-
|
|
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
|
-
|
|
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 —
|
|
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.
|
|
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
|
-
|
|
199
|
+
Initiative: .mdd/initiatives/<slug>.md
|
|
96
200
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
<
|
|
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,
|
|
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
|
-
<
|
|
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
|
|
390
|
+
## API / Interface
|
|
173
391
|
|
|
174
|
-
<
|
|
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
|
-
<
|
|
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
|
|
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`:
|
|
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
|
|
195
|
-
✅
|
|
196
|
-
✅
|
|
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
|
-
|
|
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
|
-
|
|
212
|
-
|
|
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:
|
|
225
|
-
|
|
226
|
-
|
|
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
|
-
|
|
229
|
-
<
|
|
230
|
-
|
|
231
|
-
|
|
453
|
+
Structure:
|
|
454
|
+
<initiative title>
|
|
455
|
+
Wave 1 — <name> (<N> features)
|
|
456
|
+
Wave 2 — <name> (<N> features)
|
|
457
|
+
...
|
|
232
458
|
|
|
233
|
-
Startup:
|
|
459
|
+
Startup: .mdd/.startup.md rebuilt
|
|
234
460
|
Connections: .mdd/connections.md updated
|
|
235
461
|
|
|
236
462
|
Next steps:
|
|
237
|
-
/mdd <
|
|
238
|
-
/mdd audit
|
|
239
|
-
/mdd
|
|
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
|
```
|