@thedecipherist/mdd 1.6.6 → 1.6.8
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/README.md +4 -3
- package/commands/mdd-audit.md +65 -16
- package/commands/mdd-bug.md +250 -0
- package/commands/mdd-build.md +4 -0
- package/commands/mdd.md +3 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +3 -2
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# MDD - Manual-Driven Development for Claude Code
|
|
6
6
|
|
|
7
|
-
> **One command. Twenty-
|
|
7
|
+
> **One command. Twenty-five modes. Complete feature lifecycle from documentation to verified deployment.**
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://thedecipherist.github.io/mdd">
|
|
@@ -42,7 +42,7 @@ Then in Claude Code:
|
|
|
42
42
|
- [How It Works](#how-it-works)
|
|
43
43
|
- [Installation](#installation)
|
|
44
44
|
- [Quick Start](#quick-start)
|
|
45
|
-
- [All
|
|
45
|
+
- [All 26 Modes at a Glance](#all-26-modes-at-a-glance)
|
|
46
46
|
- [Build Mode - Feature Development](#build-mode--feature-development)
|
|
47
47
|
- [Audit Mode - Code Review](#audit-mode--code-review)
|
|
48
48
|
- [Status & Notes](#status--notes)
|
|
@@ -236,10 +236,11 @@ Every feature doc and ops runbook has a `tags:` field (4–8 domain-concept keyw
|
|
|
236
236
|
|
|
237
237
|
---
|
|
238
238
|
|
|
239
|
-
## All
|
|
239
|
+
## All 26 Modes at a Glance
|
|
240
240
|
|
|
241
241
|
```
|
|
242
242
|
/mdd <feature description> Build Mode - Document, plan, and implement
|
|
243
|
+
/mdd bug <description> Bug Mode - Fix bugs tracked in feature docs
|
|
243
244
|
/mdd manual [--force] Manual Mode - Generate a print-ready user manual
|
|
244
245
|
/mdd audit [section] Audit Mode - Scan code for violations and drift
|
|
245
246
|
/mdd status Overview: docs, tests, audit state, initiatives
|
package/commands/mdd-audit.md
CHANGED
|
@@ -25,6 +25,17 @@ Triggered when arguments start with `audit`.
|
|
|
25
25
|
- If "manual": exit and let the user create docs per feature
|
|
26
26
|
3. Resolve every source file referenced across all feature docs. Deduplicate (same file may appear in multiple feature docs).
|
|
27
27
|
|
|
28
|
+
**Feature doc cross-checks (run in Phase A1, before any agents are spawned):**
|
|
29
|
+
|
|
30
|
+
These checks require comparing feature docs to each other and to disk. They cannot be done by per-file agents and must be done here:
|
|
31
|
+
|
|
32
|
+
- For each feature, verify every path in `source_files` exists on disk. Missing files = P2 finding.
|
|
33
|
+
- For each feature with `depends_on` that includes a feature with `integration_contracts`: verify this feature's `satisfies_contracts` is not empty. Missing acknowledgment = P2 finding.
|
|
34
|
+
- For each feature with `satisfies_contracts` entries where `status: pending`: flag every pending entry as P1 — contract was documented but never wired.
|
|
35
|
+
- For each feature with `integration_contracts`: verify every listed `caller_feature` exists as a feature doc. Non-existent caller referenced = P3 finding.
|
|
36
|
+
|
|
37
|
+
Record all findings from this step in a dedicated `audits/doc-findings-<date>.md` file. These are merged into the final report in Phase A5 as a separate "Feature Doc Issues" section.
|
|
38
|
+
|
|
28
39
|
**Incremental vs full (only when a previous completed audit exists):**
|
|
29
40
|
```
|
|
30
41
|
A completed audit exists from <date>.
|
|
@@ -89,6 +100,32 @@ Main writes a shard file and config file for each agent into the job folder **be
|
|
|
89
100
|
|
|
90
101
|
**`shard-N.md`** — flat list of files assigned to this agent, extracted from the manifest. The agent uses this to know its scope without parsing the full manifest.
|
|
91
102
|
|
|
103
|
+
**`integration-context.md`** — built once by main from all `.mdd/docs/*.md` files and written to the job folder. Every agent reads this at startup. Format:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
# Integration Context
|
|
107
|
+
# Job: audit-<date>
|
|
108
|
+
|
|
109
|
+
## Feature Source Files
|
|
110
|
+
<!-- Maps source files back to the feature that owns them -->
|
|
111
|
+
<feature-name>: src/foo.ts, src/bar.ts
|
|
112
|
+
<feature-name>: src/baz.ts
|
|
113
|
+
|
|
114
|
+
## Integration Contracts
|
|
115
|
+
<!-- What each security/shared feature requires ALL callers to implement -->
|
|
116
|
+
### <feature-name>
|
|
117
|
+
- Contract: <description of what caller must call/implement>
|
|
118
|
+
Caller features: <featureA>, <featureB>
|
|
119
|
+
Caller source files: src/a.ts, src/b.ts, src/c.ts
|
|
120
|
+
|
|
121
|
+
## Satisfied Contracts
|
|
122
|
+
<!-- What each feature has acknowledged and wired -->
|
|
123
|
+
### <feature-name>
|
|
124
|
+
- Satisfies: <other-feature> contract — status: <done|pending>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
If no feature has `integration_contracts`, write an empty file with `# No integration contracts defined`. This file is always created — agents must not fail if it is empty.
|
|
128
|
+
|
|
92
129
|
**`agent-N-config.md`** format:
|
|
93
130
|
|
|
94
131
|
```markdown
|
|
@@ -99,9 +136,10 @@ You are Audit Agent <N> of <total>.
|
|
|
99
136
|
Job: audit-<date>
|
|
100
137
|
|
|
101
138
|
## Paths (relative to project root)
|
|
102
|
-
Shard file:
|
|
103
|
-
Notes file:
|
|
104
|
-
Manifest:
|
|
139
|
+
Shard file: .mdd/jobs/audit-<date>/shard-<N>.md
|
|
140
|
+
Notes file: .mdd/jobs/audit-<date>/agent-<N>-notes.md
|
|
141
|
+
Manifest: .mdd/jobs/audit-<date>/MANIFEST.md
|
|
142
|
+
Integration context: .mdd/jobs/audit-<date>/integration-context.md
|
|
105
143
|
|
|
106
144
|
## Rules
|
|
107
145
|
- Write findings to your notes file ONLY. Never touch another agent's file.
|
|
@@ -127,21 +165,20 @@ Manifest: .mdd/jobs/audit-<date>/MANIFEST.md
|
|
|
127
165
|
- `console.log` in library code (should use logger)
|
|
128
166
|
- File exceeds 300 lines
|
|
129
167
|
- Function exceeds 50 lines
|
|
130
|
-
- Feature's `source_files` lists a file that does not exist on disk
|
|
131
168
|
- Transformation/substitution function handles some but not all AST/domain types (silent fallthrough for unhandled types)
|
|
132
169
|
- MCP-exposed function accepts untrusted params with no explicit validation
|
|
133
170
|
|
|
134
171
|
### P3 Medium
|
|
135
172
|
- TypeScript strict mode not enabled in tsconfig
|
|
136
173
|
- Missing error handling at system/user-input boundaries
|
|
137
|
-
- Feature has `depends_on` entries with `integration_contracts` but `satisfies_contracts` is empty
|
|
138
|
-
- Security module's `integration_contracts` specifies a caller that has no `satisfies_contracts` entry
|
|
139
174
|
- Missing test cases for documented business rules
|
|
140
175
|
- CLI command missing any of the universal flags (--env, --cwd, --verbose, --strict, --silent) — check all commands against the CLI feature doc's universal flags requirement
|
|
141
176
|
- `file.*` filesystem helpers or path-resolving functions accept arbitrary paths without confinement to a documented jailRoot
|
|
142
177
|
- Silent error swallow: catch block returns empty/undefined without pushing to warnings array
|
|
143
178
|
- Template/substitution function matches `{{varname}}` without spaces but not `{{ varname }}` with spaces — spec uses spaced form; use regex `\s*` not exact string
|
|
144
179
|
|
|
180
|
+
**Note:** Feature-doc cross-checks (source_files on disk, integration_contracts vs satisfies_contracts) are handled by main in Phase A1 — not by per-file agents. Do not duplicate those checks here.
|
|
181
|
+
|
|
145
182
|
### P4 Low
|
|
146
183
|
- Code style inconsistencies
|
|
147
184
|
- Dead code / unused imports
|
|
@@ -152,7 +189,8 @@ Manifest: .mdd/jobs/audit-<date>/MANIFEST.md
|
|
|
152
189
|
2. Read shard-<N>.md to know your file list
|
|
153
190
|
3. Read MANIFEST.md — find the first [ ] entry in Shard <N>
|
|
154
191
|
4. Read the last 20 lines of agent-<N>-notes.md for continuity
|
|
155
|
-
5.
|
|
192
|
+
5. Read integration-context.md — load this into working memory. Use it when checking P1 (integration contract not called at call site): cross-reference the source file's feature against the contracts defined for its dependencies.
|
|
193
|
+
6. Begin the per-file loop at that first [ ] entry
|
|
156
194
|
```
|
|
157
195
|
|
|
158
196
|
This config file contains no source code or findings — only paths and instructions. It is the only thing an agent needs to resume correctly after a context clear.
|
|
@@ -171,7 +209,8 @@ STARTUP (run on every fresh start and after every context clear):
|
|
|
171
209
|
2. Read shard-N.md
|
|
172
210
|
3. Read MANIFEST.md — find first [ ] in own shard
|
|
173
211
|
4. Read last 20 lines of agent-N-notes.md for continuity
|
|
174
|
-
5.
|
|
212
|
+
5. Read integration-context.md — holds feature ownership map and all integration contracts
|
|
213
|
+
6. Begin per-file loop
|
|
175
214
|
|
|
176
215
|
PER-FILE LOOP:
|
|
177
216
|
1. Mark file as [~] in MANIFEST.md ← write to disk first
|
|
@@ -216,7 +255,8 @@ Main merges all agent notes into the canonical output file:
|
|
|
216
255
|
1. Read `MANIFEST.md` to get canonical file order
|
|
217
256
|
2. For each file in manifest order, locate its `## <filepath>` section in the correct agent notes file
|
|
218
257
|
3. Append to `audits/notes-<date>.md` in that order
|
|
219
|
-
4.
|
|
258
|
+
4. If `audits/doc-findings-<date>.md` exists and is non-empty, append its contents to `audits/notes-<date>.md` under a `## Feature Doc Issues` header
|
|
259
|
+
5. Verify entry count in `audits/notes-<date>.md` matches manifest file count (doc findings are supplemental — they don't affect the per-file count)
|
|
220
260
|
|
|
221
261
|
Merge is in manifest order, not agent completion order. The job folder is not touched during or after merge — all temp files remain until the report is confirmed in Phase A6.
|
|
222
262
|
|
|
@@ -240,14 +280,23 @@ Read ONLY `audits/notes-<date>.md` (NOT source code again). Produce `audits/repo
|
|
|
240
280
|
- `[doc-field-gap]` — a new feature doc frontmatter field would have surfaced this earlier; suggest the field name and schema
|
|
241
281
|
For each item, name the exact MDD file and section that needs changing.
|
|
242
282
|
|
|
243
|
-
**Integration contract
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
283
|
+
**Integration contract verification (proactive — does not depend on what agents flagged):**
|
|
284
|
+
|
|
285
|
+
This step runs independently of agent findings. It uses `integration-context.md` from the job folder (already built in Phase A2) and re-reads specific source files as needed. The "Read ONLY notes" constraint applies to standard synthesis only — this step may re-read source files.
|
|
286
|
+
|
|
287
|
+
For each contract in `integration-context.md`:
|
|
288
|
+
1. Identify all source files listed under "Caller source files" for that contract
|
|
289
|
+
2. For each such source file, check `audits/notes-<date>.md` for that file's entry:
|
|
290
|
+
- If notes explicitly confirm the contract call is present: no action
|
|
291
|
+
- If notes flag a contract violation: include in Contract Violations section
|
|
292
|
+
- If notes say "No issues found" but the contract requires a specific function call: **re-read that source file now** and check whether the required call is actually present. Agents marked the file `[x]` without the contract context — verify independently.
|
|
293
|
+
3. Report each confirmed gap as P1 ("contract call absent — agent lacked context to detect this")
|
|
294
|
+
|
|
295
|
+
Additionally read all `.mdd/docs/*.md` to catch any cases the Phase A1 doc cross-check might have missed (e.g., docs added after Phase A1 ran, or pending contracts that weren't flagged):
|
|
296
|
+
- Any `satisfies_contracts` with `status: pending` not already in doc-findings = P1
|
|
297
|
+
- Any `depends_on` with `integration_contracts` and empty `satisfies_contracts` not already in doc-findings = P2
|
|
249
298
|
|
|
250
|
-
Report
|
|
299
|
+
Report all findings from this step as a "Contract Violations" section before the standard findings table.
|
|
251
300
|
|
|
252
301
|
**Once `audits/report-<date>.md` is confirmed written and non-empty:**
|
|
253
302
|
1. Copy `jobs/audit-<date>/MANIFEST.md` → `audits/MANIFEST-<date>.md`
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
## BUG MODE
|
|
2
|
+
|
|
3
|
+
**Trigger:** `/mdd bug <description>`
|
|
4
|
+
|
|
5
|
+
The user is reporting a bug in an existing feature. Do NOT create a new feature doc.
|
|
6
|
+
Instead: scan existing docs to identify which feature(s) own the broken behavior,
|
|
7
|
+
document the bug in those docs, fix it, and mark it complete.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
### Phase B0 — Parse
|
|
12
|
+
|
|
13
|
+
Extract the bug description from `$ARGUMENTS` by stripping the leading `bug ` prefix.
|
|
14
|
+
Store as `$BUG_DESC`.
|
|
15
|
+
|
|
16
|
+
If `$BUG_DESC` is empty after stripping, ask the user:
|
|
17
|
+
> "What is the bug? Describe what's broken and where you'd expect it to work correctly."
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
### Phase B1 — Triage
|
|
22
|
+
|
|
23
|
+
Read the frontmatter of every file in `.mdd/docs/` (excluding `archive/` subdirectory).
|
|
24
|
+
Do **not** read doc bodies during triage — frontmatter only. You need: `id`, `title`, `tags`, `source_files`.
|
|
25
|
+
|
|
26
|
+
**Scoring algorithm** — for each doc, compute a match score against `$BUG_DESC`:
|
|
27
|
+
|
|
28
|
+
1. Tokenize `$BUG_DESC` into significant words (strip: a, an, the, is, it, in, on, for, and, or, to, with, that, this, when, after, before, not, can, can't, doesn't, won't, fails, fail, fix, bug, issue, broken, error)
|
|
29
|
+
2. For each remaining word `W`:
|
|
30
|
+
- If `W` appears in the doc's `tags` list (case-insensitive) → +2
|
|
31
|
+
- If `W` appears in the doc's `title` (case-insensitive) → +1.5
|
|
32
|
+
- If `W` appears in any `source_files` entry (file name only, not path) → +1
|
|
33
|
+
3. Round score to 1 decimal place
|
|
34
|
+
4. Threshold: score ≥ 2.0 qualifies as a candidate
|
|
35
|
+
|
|
36
|
+
Sort candidates descending by score.
|
|
37
|
+
|
|
38
|
+
**If zero docs score ≥ 2.0**, display:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
🔍 No feature docs matched: "<$BUG_DESC>"
|
|
42
|
+
|
|
43
|
+
This could mean:
|
|
44
|
+
- The bug is in undocumented code (run /mdd reverse-engineer first to document it)
|
|
45
|
+
- The description uses different words than the feature tags (try feature names or file names)
|
|
46
|
+
- This is a new undocumented area (use /mdd <description> to create a feature doc first)
|
|
47
|
+
|
|
48
|
+
Documented features:
|
|
49
|
+
<list all feature IDs and titles from .mdd/docs/>
|
|
50
|
+
|
|
51
|
+
Run /mdd status to see the full project overview.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**STOP — do not proceed past Phase B1 without at least one confirmed related doc.**
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Phase B2 — Confirm Related Docs
|
|
59
|
+
|
|
60
|
+
Present the triage results and ask the user to confirm which docs the bug relates to.
|
|
61
|
+
Always show the full doc list so the user can add docs that scored below the threshold.
|
|
62
|
+
|
|
63
|
+
Ask via AskUserQuestion with `multiSelect: true`:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Question: "Which feature docs does this bug relate to?"
|
|
67
|
+
|
|
68
|
+
Header: "Related docs"
|
|
69
|
+
|
|
70
|
+
Show as options:
|
|
71
|
+
- Top candidates (score ≥ 2.0): label = "<id> — <title> (score: N)", description = "Matched on: <which tags/title words matched>"
|
|
72
|
+
- Remaining docs (score < 2.0): label = "<id> — <title>", description = "Low match — include if relevant"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Require at least one selection. If the user selects none, ask again.
|
|
76
|
+
|
|
77
|
+
Store the confirmed list as `$RELATED_DOCS`.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Phase B3 — Document the Bug
|
|
82
|
+
|
|
83
|
+
For each doc in `$RELATED_DOCS`:
|
|
84
|
+
|
|
85
|
+
1. Read the full doc file
|
|
86
|
+
2. Generate the next bug ID for this doc:
|
|
87
|
+
- If a `## Bugs` section exists: find the highest existing B-number and increment by 1
|
|
88
|
+
- If no `## Bugs` section exists: start at B1
|
|
89
|
+
3. Create the bug entry row:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
| B<N> | <$BUG_DESC> | Open | - | <today YYYY-MM-DD> | - |
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
4. **If `## Bugs` section already exists** in the doc:
|
|
96
|
+
- Append the new row to the existing table
|
|
97
|
+
- Do not modify any existing rows
|
|
98
|
+
|
|
99
|
+
5. **If `## Bugs` section does not exist** in the doc:
|
|
100
|
+
- Insert the entire section after `## Known Issues` (if present), or after the last `##` section if not
|
|
101
|
+
- Never insert before `## Purpose`, `## Architecture`, `## Business Rules`, or `## Data Model`
|
|
102
|
+
- Use this format:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
## Bugs
|
|
106
|
+
|
|
107
|
+
| ID | Description | Status | Fixed In | Reported | Fixed |
|
|
108
|
+
|----|-------------|--------|----------|----------|-------|
|
|
109
|
+
| B1 | <$BUG_DESC> | Open | - | <today> | - |
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
6. **If the bug spans multiple docs**: each doc gets its own entry with the same description and its own sequential B-ID. Entries are independent per-doc — they are not cross-referenced at this stage.
|
|
113
|
+
|
|
114
|
+
After updating all related docs, tell the user:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
📝 Bug documented in <N> feature doc(s):
|
|
118
|
+
<id> → B<N> added (<title>)
|
|
119
|
+
...
|
|
120
|
+
|
|
121
|
+
Status: Open — ready to fix.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Store the bug IDs per doc as `$BUG_IDS` (map of doc-id → B-number) for use in Phase B5.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### Phase B4 — Fix
|
|
129
|
+
|
|
130
|
+
Ask the user via AskUserQuestion how to proceed with the fix:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Question: "How do you want to fix this bug?"
|
|
134
|
+
|
|
135
|
+
Options:
|
|
136
|
+
(a) Lightweight — identify affected files, fix, verify, done
|
|
137
|
+
description: Best for focused, well-understood bugs. No test scaffolding.
|
|
138
|
+
(b) Full MDD process — test skeletons, red gate, green gate
|
|
139
|
+
description: Best for complex bugs or regression prevention. Follows BUILD MODE phases 4-7.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
#### Path A — Lightweight Fix
|
|
143
|
+
|
|
144
|
+
1. **Identify affected files:** Read `source_files` from each doc in `$RELATED_DOCS`. Also grep the `src/` directory for symbols mentioned in `$BUG_DESC`:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
grep -r "<keyword>" src/ --include="*.ts" --include="*.tsx" -l
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
2. **Read each candidate file** to understand the current behavior.
|
|
151
|
+
|
|
152
|
+
3. **Diagnose:** Before writing any fix, state:
|
|
153
|
+
- What the code currently does
|
|
154
|
+
- Why that causes the reported bug
|
|
155
|
+
- What change will fix it
|
|
156
|
+
- What could break as a side effect
|
|
157
|
+
|
|
158
|
+
4. **Fix:** Make the minimal targeted change. Do not refactor surrounding code.
|
|
159
|
+
|
|
160
|
+
5. **Verify:** Run the project's typecheck and test commands:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
pnpm typecheck
|
|
164
|
+
pnpm test:unit # if a test runner is configured
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
If no test runner: run the compiled CLI or relevant command to confirm the fix works.
|
|
168
|
+
|
|
169
|
+
6. **Report verification result:**
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
✅ Fix verified:
|
|
173
|
+
Changed: <file>:<line> — <one-line description of change>
|
|
174
|
+
Typecheck: clean
|
|
175
|
+
Tests: <N>/<N> passing OR Manual verification: confirmed
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
7. Proceed to Phase B5.
|
|
179
|
+
|
|
180
|
+
#### Path B — Full MDD Process
|
|
181
|
+
|
|
182
|
+
Follow **mdd-build.md Phases 4 through 7** for the fix. Treat the related feature docs as the documentation — skip Phase 3 (no new doc). Skip Phase 1 and 2 entirely.
|
|
183
|
+
|
|
184
|
+
Specifically:
|
|
185
|
+
- **Phase 4** (test skeletons): write failing tests that reproduce the bug
|
|
186
|
+
- **Phase 4b** (red gate): confirm all new tests fail before fixing
|
|
187
|
+
- **Phase 5** (build plan): plan the fix blocks
|
|
188
|
+
- **Phase 6** (implement): fix the bug, run green gate per block
|
|
189
|
+
- **Phase 7** (verify + report): integration verification, completion signal
|
|
190
|
+
|
|
191
|
+
At the end of Phase 7, return here to Phase B5 to mark the bug complete in the docs.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### Phase B5 — Mark Complete
|
|
196
|
+
|
|
197
|
+
After the fix is verified (via either Path A or Path B), update every doc in `$RELATED_DOCS`:
|
|
198
|
+
|
|
199
|
+
For each doc, find the bug entry created in Phase B3 (use `$BUG_IDS` to find the right B-number):
|
|
200
|
+
|
|
201
|
+
1. Change `Open` → `Completed` in the Status column
|
|
202
|
+
2. Fill in `Fixed In` with `<file>:<line>` of the primary fix location
|
|
203
|
+
- If the fix spans multiple files, use the file where the root cause was addressed
|
|
204
|
+
- For docs where the fix was in a different feature's files: use `see <other-doc-id>:B<N>` instead
|
|
205
|
+
3. Fill in the Fixed date column with today's date
|
|
206
|
+
|
|
207
|
+
**Example — before:**
|
|
208
|
+
```
|
|
209
|
+
| B2 | Users can't log in after password reset | Open | - | 2026-05-17 | - |
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Example — after:**
|
|
213
|
+
```
|
|
214
|
+
| B2 | Users can't log in after password reset | Completed | src/auth.ts:142 | 2026-05-17 | 2026-05-17 |
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
After updating all docs, regenerate `.mdd/connections.md` using the same logic as BUILD MODE Phase 7c:
|
|
218
|
+
- Read all `.mdd/docs/*.md` frontmatter only
|
|
219
|
+
- Rebuild path tree, Mermaid graph, source file overlap, warnings
|
|
220
|
+
- Write to `.mdd/connections.md`
|
|
221
|
+
|
|
222
|
+
Display the completion signal:
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
✅ Bug fixed and documented:
|
|
226
|
+
|
|
227
|
+
Bug: <$BUG_DESC>
|
|
228
|
+
Fixed in: <file>:<line>
|
|
229
|
+
|
|
230
|
+
Docs updated:
|
|
231
|
+
<id> B<N> Completed (<title>)
|
|
232
|
+
...
|
|
233
|
+
|
|
234
|
+
Connections: .mdd/connections.md updated
|
|
235
|
+
|
|
236
|
+
Branch: <current branch>
|
|
237
|
+
Ready for review — run `git diff main...HEAD` to see all changes.
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Then ask the user via AskUserQuestion:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Question: "Ready to commit?"
|
|
244
|
+
Options:
|
|
245
|
+
(a) Commit & merge to main
|
|
246
|
+
(b) Commit only — stay on this branch
|
|
247
|
+
(c) Skip — I'll handle git manually
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Follow the same commit/merge logic as BUILD MODE Phase 7d.
|
package/commands/mdd-build.md
CHANGED
|
@@ -239,6 +239,10 @@ known_issues: []
|
|
|
239
239
|
## Known Issues
|
|
240
240
|
|
|
241
241
|
<Empty for new features. Will be populated by future audits.>
|
|
242
|
+
|
|
243
|
+
## Bugs
|
|
244
|
+
|
|
245
|
+
(none yet — populated by /mdd bug when issues are reported)
|
|
242
246
|
```
|
|
243
247
|
|
|
244
248
|
**CRITICAL:** This documentation is the source of truth. Everything that follows is generated FROM this doc. Take time to make it complete and accurate.
|
package/commands/mdd.md
CHANGED
|
@@ -133,6 +133,9 @@ Use whichever path contains `mdd-audit.md`. Store it as `$MDD_DIR` and use it fo
|
|
|
133
133
|
- If arguments start with `manual` →
|
|
134
134
|
**Read `$MDD_DIR/mdd-manual.md` then follow MANUAL MODE instructions.**
|
|
135
135
|
|
|
136
|
+
- If arguments start with `bug` →
|
|
137
|
+
**Read `$MDD_DIR/mdd-bug.md` then follow BUG MODE instructions.**
|
|
138
|
+
|
|
136
139
|
- If arguments are empty → ask the user what they want to do (build a feature, run an audit, check status, etc.)
|
|
137
140
|
|
|
138
141
|
- Otherwise → **Read `$MDD_DIR/mdd-build.md` then follow BUILD MODE instructions.**
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAUD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CA4IrD;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAUD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CA4IrD;AAuPD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAW3E"}
|
package/dist/install.js
CHANGED
|
@@ -192,8 +192,9 @@ Single feature or bounded change?
|
|
|
192
192
|
|
|
193
193
|
Always ask — never auto-invoke. If the user says no, proceed as normal.
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
For bug fixes → suggest \`/mdd bug <description>\` to track and fix with doc integration.
|
|
196
|
+
|
|
197
|
+
Skip entirely for: typos, config tweaks, single-line changes, one-off shell commands.
|
|
197
198
|
`;
|
|
198
199
|
const PROJECT_CLAUDE_GUIDANCE_BLOCK = `
|
|
199
200
|
## MDD — Build Approach
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|