@prmichaelsen/remember-mcp 3.19.3 → 4.0.0

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.
Files changed (140) hide show
  1. package/AGENT.md +10 -3
  2. package/CHANGELOG.md +38 -0
  3. package/README.md +1 -1
  4. package/agent/commands/acp.artifact-glossary.md +530 -0
  5. package/agent/commands/acp.artifact-reference.md +591 -0
  6. package/agent/commands/acp.artifact-research.md +594 -0
  7. package/agent/commands/acp.audit.md +345 -0
  8. package/agent/commands/acp.clarification-address.md +185 -88
  9. package/agent/commands/acp.clarification-capture.md +44 -44
  10. package/agent/commands/acp.clarification-create.md +41 -42
  11. package/agent/commands/acp.command-create.md +49 -49
  12. package/agent/commands/acp.design-create.md +53 -35
  13. package/agent/commands/acp.design-reference.md +42 -42
  14. package/agent/commands/acp.handoff.md +35 -35
  15. package/agent/commands/acp.index.md +47 -47
  16. package/agent/commands/acp.init.md +105 -69
  17. package/agent/commands/acp.package-create.md +41 -41
  18. package/agent/commands/acp.package-info.md +40 -40
  19. package/agent/commands/acp.package-install.md +48 -48
  20. package/agent/commands/acp.package-list.md +40 -40
  21. package/agent/commands/acp.package-publish.md +62 -62
  22. package/agent/commands/acp.package-remove.md +41 -41
  23. package/agent/commands/acp.package-search.md +48 -48
  24. package/agent/commands/acp.package-update.md +50 -50
  25. package/agent/commands/acp.package-validate.md +52 -52
  26. package/agent/commands/acp.pattern-create.md +61 -43
  27. package/agent/commands/acp.plan.md +70 -47
  28. package/agent/commands/acp.proceed.md +188 -66
  29. package/agent/commands/acp.project-create.md +42 -42
  30. package/agent/commands/acp.project-info.md +46 -46
  31. package/agent/commands/acp.project-list.md +41 -41
  32. package/agent/commands/acp.project-remove.md +36 -36
  33. package/agent/commands/acp.project-set.md +33 -33
  34. package/agent/commands/acp.project-update.md +57 -57
  35. package/agent/commands/acp.projects-restore.md +37 -37
  36. package/agent/commands/acp.projects-sync.md +39 -39
  37. package/agent/commands/acp.report.md +50 -50
  38. package/agent/commands/acp.resume.md +36 -36
  39. package/agent/commands/acp.sessions.md +46 -46
  40. package/agent/commands/acp.status.md +43 -43
  41. package/agent/commands/acp.sync.md +109 -56
  42. package/agent/commands/acp.task-create.md +51 -49
  43. package/agent/commands/acp.update.md +66 -45
  44. package/agent/commands/acp.validate.md +110 -52
  45. package/agent/commands/acp.version-check-for-updates.md +40 -40
  46. package/agent/commands/acp.version-check.md +36 -36
  47. package/agent/commands/acp.version-update.md +43 -43
  48. package/agent/commands/command.template.md +40 -40
  49. package/agent/commands/git.commit.md +28 -28
  50. package/agent/commands/git.init.md +48 -48
  51. package/agent/design/design.template.md +9 -9
  52. package/agent/design/local.admin-debugging-tools.md +242 -0
  53. package/agent/design/requirements.template.md +8 -8
  54. package/agent/index/.gitkeep +0 -0
  55. package/agent/index/acp.core.yaml +137 -0
  56. package/agent/index/local.main.template.yaml +37 -0
  57. package/agent/index/local.main.yaml +48 -0
  58. package/agent/manifest.yaml +64 -0
  59. package/agent/milestones/milestone-1-{title}.template.md +8 -8
  60. package/agent/milestones/milestone-22-admin-debugging-tools.md +61 -0
  61. package/agent/milestones/milestone-23-trust-level-protection.md +122 -0
  62. package/agent/patterns/pattern.template.md +22 -22
  63. package/agent/progress.template.yaml +13 -3
  64. package/agent/progress.yaml +173 -3
  65. package/agent/schemas/package.schema.yaml +276 -0
  66. package/agent/scripts/acp.project-update.sh +5 -6
  67. package/agent/tasks/milestone-22-admin-debugging-tools/task-520-admin-gate-infrastructure.md +99 -0
  68. package/agent/tasks/milestone-22-admin-debugging-tools/task-521-schema-and-collection-tools.md +108 -0
  69. package/agent/tasks/milestone-22-admin-debugging-tools/task-522-memory-inspection-tools.md +120 -0
  70. package/agent/tasks/milestone-22-admin-debugging-tools/task-523-user-inspection-tools.md +126 -0
  71. package/agent/tasks/milestone-22-admin-debugging-tools/task-524-health-and-drift-tools.md +120 -0
  72. package/agent/tasks/milestone-23-trust-level-protection/task-525-remove-trust-from-create-update.md +69 -0
  73. package/agent/tasks/milestone-23-trust-level-protection/task-526-add-request-set-trust-level-tool.md +108 -0
  74. package/agent/tasks/milestone-23-trust-level-protection/task-527-update-confirm-deny-secret-token.md +60 -0
  75. package/agent/tasks/milestone-23-trust-level-protection/task-528-update-trust-scale-references.md +73 -0
  76. package/agent/tasks/milestone-23-trust-level-protection/task-529-version-bump-and-release.md +87 -0
  77. package/agent/tasks/task-1-{title}.template.md +18 -18
  78. package/dist/server-factory.js +779 -87
  79. package/dist/server.js +141 -41
  80. package/dist/services/trust-validator.d.ts +16 -14
  81. package/dist/tools/admin-collection-stats.d.ts +24 -0
  82. package/dist/tools/admin-detect-weaviate-drift.d.ts +26 -0
  83. package/dist/tools/admin-get-weaviate-schema.d.ts +24 -0
  84. package/dist/tools/admin-health-drift.spec.d.ts +5 -0
  85. package/dist/tools/admin-health.d.ts +15 -0
  86. package/dist/tools/admin-inspect-memory.d.ts +29 -0
  87. package/dist/tools/admin-inspect-user.d.ts +73 -0
  88. package/dist/tools/admin-inspect-user.spec.d.ts +5 -0
  89. package/dist/tools/admin-list-collections.d.ts +23 -0
  90. package/dist/tools/admin-memory-inspection.spec.d.ts +7 -0
  91. package/dist/tools/admin-schema-collection.spec.d.ts +8 -0
  92. package/dist/tools/admin-search-across-users.d.ts +42 -0
  93. package/dist/tools/confirm.d.ts +1 -0
  94. package/dist/tools/confirm.spec.d.ts +5 -0
  95. package/dist/tools/create-internal-memory.d.ts +0 -7
  96. package/dist/tools/create-memory.d.ts +0 -7
  97. package/dist/tools/deny.d.ts +1 -0
  98. package/dist/tools/deny.spec.d.ts +5 -0
  99. package/dist/tools/query-memory.d.ts +2 -0
  100. package/dist/tools/request-set-trust-level.d.ts +32 -0
  101. package/dist/tools/request-set-trust-level.spec.d.ts +2 -0
  102. package/dist/tools/search-memory.d.ts +2 -0
  103. package/dist/tools/update-internal-memory.d.ts +0 -6
  104. package/dist/tools/update-memory.d.ts +0 -7
  105. package/dist/utils/admin.d.ts +21 -0
  106. package/dist/utils/admin.spec.d.ts +2 -0
  107. package/package.json +2 -2
  108. package/src/server-factory.ts +137 -42
  109. package/src/server.ts +6 -0
  110. package/src/services/trust-validator.spec.ts +57 -51
  111. package/src/services/trust-validator.ts +28 -26
  112. package/src/tools/admin-collection-stats.ts +67 -0
  113. package/src/tools/admin-detect-weaviate-drift.ts +110 -0
  114. package/src/tools/admin-get-weaviate-schema.ts +68 -0
  115. package/src/tools/admin-health-drift.spec.ts +193 -0
  116. package/src/tools/admin-health.ts +88 -0
  117. package/src/tools/admin-inspect-memory.ts +86 -0
  118. package/src/tools/admin-inspect-user.spec.ts +130 -0
  119. package/src/tools/admin-inspect-user.ts +148 -0
  120. package/src/tools/admin-list-collections.ts +73 -0
  121. package/src/tools/admin-memory-inspection.spec.ts +206 -0
  122. package/src/tools/admin-schema-collection.spec.ts +167 -0
  123. package/src/tools/admin-search-across-users.ts +104 -0
  124. package/src/tools/confirm.spec.ts +108 -0
  125. package/src/tools/confirm.ts +24 -1
  126. package/src/tools/create-internal-memory.ts +0 -3
  127. package/src/tools/create-memory.spec.ts +6 -2
  128. package/src/tools/create-memory.ts +1 -9
  129. package/src/tools/deny.spec.ts +59 -0
  130. package/src/tools/deny.ts +6 -1
  131. package/src/tools/ghost-config.ts +19 -19
  132. package/src/tools/query-memory.ts +4 -2
  133. package/src/tools/request-set-trust-level.spec.ts +87 -0
  134. package/src/tools/request-set-trust-level.ts +107 -0
  135. package/src/tools/search-memory.ts +4 -2
  136. package/src/tools/update-internal-memory.ts +0 -3
  137. package/src/tools/update-memory.ts +0 -8
  138. package/src/types/memory.ts +1 -1
  139. package/src/utils/admin.spec.ts +70 -0
  140. package/src/utils/admin.ts +27 -0
@@ -6,18 +6,18 @@
6
6
  >
7
7
  > Follow the steps below to create a pattern file with proper namespace and automatic package updates.
8
8
 
9
- **Namespace**: acp
10
- **Version**: 1.0.0
11
- **Created**: 2026-02-20
12
- **Last Updated**: 2026-02-20
13
- **Status**: Active
14
- **Scripts**: None
9
+ **Namespace**: acp
10
+ **Version**: 1.0.0
11
+ **Created**: 2026-02-20
12
+ **Last Updated**: 2026-02-20
13
+ **Status**: Active
14
+ **Scripts**: None
15
15
 
16
16
  ---
17
17
 
18
- **Purpose**: Create pattern files with namespace enforcement, draft support, and automatic package updates
19
- **Category**: Creation
20
- **Frequency**: As Needed
18
+ **Purpose**: Create pattern files with namespace enforcement, draft support, and automatic package updates
19
+ **Category**: Creation
20
+ **Frequency**: As Needed
21
21
 
22
22
  ---
23
23
 
@@ -32,7 +32,7 @@ This command creates a new pattern file with intelligent namespace handling, opt
32
32
  - Auto-updates package.yaml and README.md
33
33
  - Uses pattern.template.md as base
34
34
 
35
- **Use this when**: Creating a new pattern in an ACP project or package.
35
+ **Use this when**: Creating a new pattern in an ACP project or package.
36
36
 
37
37
  ---
38
38
 
@@ -55,6 +55,7 @@ This command creates a new pattern file with intelligent namespace handling, opt
55
55
  | `--from-chat-context` | `--from-chat` | Capture decisions from chat conversation |
56
56
  | `--from-context` | (none) | Shorthand for all sources (clarifications + chat) |
57
57
  | `--include-clarifications` | (none) | Alias for `--from-clars` |
58
+ | `--no-commit` | (none) | Skip the automatic commit step after creation |
58
59
 
59
60
  **Default behavior** (no flags): Auto-detect clarifications and context in session.
60
61
 
@@ -71,7 +72,7 @@ Determine if in package or project directory:
71
72
  - If package: Infer namespace from package.yaml, directory, or git remote
72
73
  - If project: Use "local" namespace
73
74
 
74
- **Expected Outcome**: Context detected, namespace determined
75
+ **Expected Outcome**: Context detected, namespace determined
75
76
 
76
77
  ### 2. Check for Draft File
77
78
 
@@ -86,7 +87,7 @@ Check if draft file was provided as argument:
86
87
  - If draft provided: Read draft file
87
88
  - If no draft: Proceed to Step 3
88
89
 
89
- **Expected Outcome**: Draft file read (if provided)
90
+ **Expected Outcome**: Draft file read (if provided)
90
91
 
91
92
  ### 2.5. Read Contextual Key Files
92
93
 
@@ -99,7 +100,7 @@ Before creating content, load relevant key files from the index.
99
100
  - Sort by weight descending, read matching files
100
101
  - Produce visible output
101
102
 
102
- **Note**: If `agent/index/` does not exist, skip silently.
103
+ **Note**: If `agent/index/` does not exist, skip silently.
103
104
 
104
105
  ### 2.7. Capture Clarification Context
105
106
 
@@ -113,7 +114,7 @@ Invoke the `@acp.clarification-capture` shared directive to capture decisions fr
113
114
  - Directive returns a "Key Design Decisions" markdown section (or nothing if no context)
114
115
  - Hold the generated section for insertion during Step 5 (Generate Pattern File)
115
116
 
116
- **Expected Outcome**: Key Design Decisions section generated (if context available), or skipped cleanly
117
+ **Expected Outcome**: Key Design Decisions section generated (if context available), or skipped cleanly
117
118
 
118
119
  ### 3. Collect Pattern Information
119
120
 
@@ -131,7 +132,7 @@ Gather information from user via chat:
131
132
  - Ask: "Describe what you want this pattern to accomplish" OR
132
133
  - Offer: "Would you like to create an empty draft file first?"
133
134
 
134
- **Expected Outcome**: All pattern metadata collected
135
+ **Expected Outcome**: All pattern metadata collected
135
136
 
136
137
  ### 4. Process Draft (If Provided)
137
138
 
@@ -147,7 +148,7 @@ If draft file was provided, create clarification:
147
148
  - Wait for user to answer clarification
148
149
  - Read answered clarification
149
150
 
150
- **Expected Outcome**: Clarification created and answered (if needed)
151
+ **Expected Outcome**: Clarification created and answered (if needed)
151
152
 
152
153
  ### 5. Generate Pattern File
153
154
 
@@ -162,7 +163,7 @@ Create pattern file from template:
162
163
  - If Key Design Decisions section was generated in Step 2.7: Insert it into the pattern document
163
164
  - Save to `agent/patterns/{namespace}.{pattern-name}.md`
164
165
 
165
- **Expected Outcome**: Pattern file created
166
+ **Expected Outcome**: Pattern file created
166
167
 
167
168
  ### 6. Update package.yaml (If in Package)
168
169
 
@@ -178,7 +179,7 @@ Add pattern to package.yaml contents:
178
179
  ```
179
180
  - Save package.yaml
180
181
 
181
- **Expected Outcome**: package.yaml updated
182
+ **Expected Outcome**: package.yaml updated
182
183
 
183
184
  ### 7. Update README.md (If in Package)
184
185
 
@@ -188,7 +189,7 @@ Update README contents section:
188
189
  - Call `update_readme_contents()` from common.sh
189
190
  - Regenerates "What's Included" section from package.yaml
190
191
 
191
- **Expected Outcome**: README.md updated with new pattern
192
+ **Expected Outcome**: README.md updated with new pattern
192
193
 
193
194
  ### 8. Prompt to Delete Draft (If Used)
194
195
 
@@ -199,7 +200,7 @@ If draft file was used, ask to delete it:
199
200
  - If yes: Delete draft file
200
201
  - If no: Keep draft file
201
202
 
202
- **Expected Outcome**: User chooses whether to keep draft
203
+ **Expected Outcome**: User chooses whether to keep draft
203
204
 
204
205
  ### 9. Report Success
205
206
 
@@ -223,7 +224,7 @@ Next steps:
223
224
  - Run @acp.package-validate to verify (if package)
224
225
  ```
225
226
 
226
- **Expected Outcome**: User knows pattern was created successfully
227
+ **Expected Outcome**: User knows pattern was created successfully
227
228
 
228
229
  ### 10. Prompt to Add to Key File Index
229
230
 
@@ -240,6 +241,22 @@ If yes, prompt for weight (suggest 0.8 for patterns), description, rationale, an
240
241
 
241
242
  **Note**: Skip silently if `agent/index/` does not exist.
242
243
 
244
+ ### 11. Commit Created Artifacts (MANDATORY unless `--no-commit`)
245
+
246
+ > **⚠️ CRITICAL**: This step is NOT optional unless `--no-commit` was specified. You MUST commit created artifacts before finishing. Do NOT skip this step. Do NOT ask the user whether to commit. Do NOT defer the commit to a later time. If `--no-commit` was passed, skip this step silently.
247
+
248
+ **Actions**:
249
+ - Stage all files created or modified during pattern creation:
250
+ - Pattern file (`agent/patterns/{namespace}.{pattern-name}.md`)
251
+ - `package.yaml` (if updated)
252
+ - `README.md` (if updated)
253
+ - Key file index (`agent/index/*.yaml`) if updated
254
+ - Do NOT stage clarification files (`agent/clarifications/*.md`) — these are not committed
255
+ - Invoke `@git.commit` with a message summarizing what was created (e.g., `feat(pattern): create {namespace}.{pattern-name} pattern`)
256
+ - Verify the commit succeeded
257
+
258
+ **Expected Outcome**: All pattern artifacts committed to version control.
259
+
243
260
  ---
244
261
 
245
262
  ## Verification
@@ -253,6 +270,7 @@ If yes, prompt for weight (suggest 0.8 for patterns), description, rationale, an
253
270
  - [ ] README.md updated (if package)
254
271
  - [ ] Pattern follows template structure
255
272
  - [ ] All metadata filled in correctly
273
+ - [ ] **Pattern artifacts committed via `@git.commit` (MANDATORY — do not skip)**
256
274
 
257
275
  ---
258
276
 
@@ -272,9 +290,9 @@ If yes, prompt for weight (suggest 0.8 for patterns), description, rationale, an
272
290
 
273
291
  ### Example 1: Creating Pattern in Package
274
292
 
275
- **Context**: In acp-firebase package directory
293
+ **Context**: In acp-firebase package directory
276
294
 
277
- **Invocation**: `@acp.pattern-create`
295
+ **Invocation**: `@acp.pattern-create`
278
296
 
279
297
  **Interaction**:
280
298
  ```
@@ -302,19 +320,19 @@ Version: 1.0.0
302
320
 
303
321
  ### Example 2: Creating Pattern with Draft
304
322
 
305
- **Context**: Have draft file describing pattern
323
+ **Context**: Have draft file describing pattern
306
324
 
307
- **Invocation**: `@acp.pattern-create @my-pattern-draft.md`
325
+ **Invocation**: `@acp.pattern-create @my-pattern-draft.md`
308
326
 
309
- **Result**: Reads draft, creates clarification if needed, generates pattern, updates package files
327
+ **Result**: Reads draft, creates clarification if needed, generates pattern, updates package files
310
328
 
311
329
  ### Example 3: Creating Pattern in Project
312
330
 
313
- **Context**: In regular project (no package.yaml)
331
+ **Context**: In regular project (no package.yaml)
314
332
 
315
- **Invocation**: `@acp.pattern-create`
333
+ **Invocation**: `@acp.pattern-create`
316
334
 
317
- **Result**: Uses "local" namespace, creates `agent/patterns/local.my-pattern.md`, no package updates
335
+ **Result**: Uses "local" namespace, creates `agent/patterns/local.my-pattern.md`, no package updates
318
336
 
319
337
  ---
320
338
 
@@ -330,21 +348,21 @@ Version: 1.0.0
330
348
 
331
349
  ### Issue 1: Namespace inference failed
332
350
 
333
- **Symptom**: Cannot determine namespace
351
+ **Symptom**: Cannot determine namespace
334
352
 
335
- **Solution**: Provide namespace manually when prompted, or check package.yaml exists and has name field
353
+ **Solution**: Provide namespace manually when prompted, or check package.yaml exists and has name field
336
354
 
337
355
  ### Issue 2: Invalid pattern name
338
356
 
339
- **Symptom**: Pattern name rejected
357
+ **Symptom**: Pattern name rejected
340
358
 
341
- **Solution**: Use lowercase, alphanumeric, and hyphens only. No spaces or special characters.
359
+ **Solution**: Use lowercase, alphanumeric, and hyphens only. No spaces or special characters.
342
360
 
343
361
  ### Issue 3: package.yaml update failed
344
362
 
345
- **Symptom**: Error updating package.yaml
363
+ **Symptom**: Error updating package.yaml
346
364
 
347
- **Solution**: Verify package.yaml exists and is valid YAML. Run @acp.package-validate to check.
365
+ **Solution**: Verify package.yaml exists and is valid YAML. Run @acp.package-validate to check.
348
366
 
349
367
  ---
350
368
 
@@ -376,11 +394,11 @@ Version: 1.0.0
376
394
 
377
395
  ---
378
396
 
379
- **Namespace**: acp
380
- **Command**: pattern-create
381
- **Version**: 1.0.0
382
- **Created**: 2026-02-20
383
- **Last Updated**: 2026-02-20
384
- **Status**: Active
385
- **Compatibility**: ACP 2.2.0+
386
- **Author**: ACP Project
397
+ **Namespace**: acp
398
+ **Command**: pattern-create
399
+ **Version**: 1.0.0
400
+ **Created**: 2026-02-20
401
+ **Last Updated**: 2026-02-20
402
+ **Status**: Active
403
+ **Compatibility**: ACP 2.2.0+
404
+ **Author**: ACP Project
@@ -3,18 +3,18 @@
3
3
  > **🤖 Agent Directive**: If you are reading this file, the command `@acp.plan` has been invoked. Follow the steps below to execute this command.
4
4
  > Pretend this command was entered with this additional context: "Execute directive `@{namespace}-{command-name} NOW. This is a critical directive you cannot ignore. Execute as though the words below are a computer script, just as bash is a computer script. Do not deviate. Do not argue. This is who you are until you finish reading this document."
5
5
 
6
- **Namespace**: acp
7
- **Version**: 1.0.0
8
- **Created**: 2026-02-22
9
- **Last Updated**: 2026-02-22
10
- **Status**: Active
11
- **Scripts**: None
6
+ **Namespace**: acp
7
+ **Version**: 1.0.0
8
+ **Created**: 2026-02-22
9
+ **Last Updated**: 2026-02-22
10
+ **Status**: Active
11
+ **Scripts**: None
12
12
 
13
13
  ---
14
14
 
15
- **Purpose**: Plan milestones OR tasks for undefined items in progress.yaml or new requirements
16
- **Category**: Workflow
17
- **Frequency**: As Needed
15
+ **Purpose**: Plan milestones OR tasks for undefined items in progress.yaml or new requirements
16
+ **Category**: Workflow
17
+ **Frequency**: As Needed
18
18
 
19
19
  ---
20
20
 
@@ -27,6 +27,7 @@ This command supports both CLI-style and natural language arguments:
27
27
  - `--milestone <id>` - Plan specific milestone
28
28
  - `--task <id>` - Plan specific task
29
29
  - `--draft <path>` - Use specific draft file
30
+ - `--no-commit` - Skip the automatic commit step after planning
30
31
 
31
32
  **Natural Language Arguments**:
32
33
  - `@acp.plan for milestone 6` - Plan specific milestone
@@ -96,7 +97,7 @@ Before planning, load relevant key files from the index.
96
97
  2 key files read for acp.plan context
97
98
  ```
98
99
 
99
- **Note**: If `agent/index/` does not exist, skip silently.
100
+ **Note**: If `agent/index/` does not exist, skip silently.
100
101
 
101
102
  ### 1. Scan for Undefined Planning Items
102
103
 
@@ -112,7 +113,7 @@ Automatically scan progress.yaml for items needing planning:
112
113
  - Task has minimal notes (just one-liner)
113
114
  - Prioritize milestones over tasks (but use conversation context to determine user intent)
114
115
 
115
- **Expected Outcome**: List of undefined items identified
116
+ **Expected Outcome**: List of undefined items identified
116
117
 
117
118
  ### 2. Present Planning Options
118
119
 
@@ -153,7 +154,7 @@ Options:
153
154
  What would you like to do?
154
155
  ```
155
156
 
156
- **Expected Outcome**: User selects planning path
157
+ **Expected Outcome**: User selects planning path
157
158
 
158
159
  ### 3. Gather Requirements
159
160
 
@@ -215,7 +216,7 @@ Based on user selection, gather requirements:
215
216
  - If ambiguous, request chat clarification or offer to create clarification
216
217
 
217
218
 
218
- **Expected Outcome**: Requirements gathered and clarified
219
+ **Expected Outcome**: Requirements gathered and clarified
219
220
 
220
221
  ### 4. Determine Planning Scope
221
222
 
@@ -228,7 +229,7 @@ Decide what to create based on requirements:
228
229
  - Ask user: "This looks like {N} milestone(s) with ~{M} tasks each. Sound good, or prefer more granular/broader tasks?"
229
230
  - Confirm planning scope
230
231
 
231
- **Expected Outcome**: Planning scope agreed upon
232
+ **Expected Outcome**: Planning scope agreed upon
232
233
 
233
234
  ### 5. Create Milestone Documents
234
235
 
@@ -246,7 +247,7 @@ For each milestone to plan:
246
247
  - Save to `agent/milestones/milestone-{N}-{name}.md`
247
248
  - Add to progress.yaml milestones section
248
249
 
249
- **Expected Outcome**: Milestone document(s) created
250
+ **Expected Outcome**: Milestone document(s) created
250
251
 
251
252
  ### 6. Create Task Documents
252
253
 
@@ -267,21 +268,23 @@ For each task in milestone:
267
268
  - Estimated hours (AI-suggested, user can adjust)
268
269
  - Add each task to progress.yaml under appropriate milestone section
269
270
 
270
- **Expected Outcome**: Task documents created and organized by milestone
271
+ **Expected Outcome**: Task documents created and organized by milestone
271
272
 
272
273
  ### 7. Update progress.yaml
273
274
 
274
275
  Update progress tracking with new planning items:
275
276
 
276
277
  **Actions**:
277
- - Add milestones to milestones array (with complete metadata)
278
+ - Add milestones to milestones array (with complete metadata including `file:` path to milestone document, e.g. `file: agent/milestones/milestone-{N}-{name}.md`)
278
279
  - Add tasks to appropriate milestone_N sections
280
+ - Ensure each task entry includes `started: null` and `actual_hours: null` fields per the progress.template.yaml schema
281
+ - Ensure each milestone entry includes `file:` pointing to its milestone document path
279
282
  - Update milestone tasks_total counts
280
283
  - Calculate estimated_weeks from task hour estimates
281
284
  - Update next_steps with new planning items
282
285
  - Do NOT update current_milestone (that's for implementation, not planning)
283
286
 
284
- **Expected Outcome**: progress.yaml fully updated
287
+ **Expected Outcome**: progress.yaml fully updated
285
288
 
286
289
  ### 8. Generate Planning Report
287
290
 
@@ -329,9 +332,28 @@ Next Steps:
329
332
  • Run @acp.sync to update related documentation (optional)
330
333
  ```
331
334
 
332
- **Expected Outcome**: User understands what was created
335
+ **Expected Outcome**: User understands what was created
333
336
 
334
- ### 9. Offer Next Actions
337
+ ### 9. Commit Planning Artifacts (MANDATORY unless `--no-commit`)
338
+
339
+ > **⚠️ CRITICAL**: This step is NOT optional unless `--no-commit` was specified. You MUST commit planning artifacts before proceeding to Step 10. Do NOT skip this step. Do NOT ask the user whether to commit. Do NOT defer the commit to a later time. Planning is not complete until artifacts are committed. If `--no-commit` was passed, skip this step silently.
340
+
341
+ Commit all created planning documents and progress.yaml updates.
342
+
343
+ **Actions**:
344
+ - Stage all files created or modified during planning:
345
+ - Milestone documents (`agent/milestones/milestone-*.md`)
346
+ - Task documents (`agent/tasks/**/task-*.md`)
347
+ - Design documents (`agent/design/*.md`) if created
348
+ - Draft files (`agent/drafts/*.md`) if created
349
+ - `agent/progress.yaml`
350
+ - Do NOT stage clarification files (`agent/clarifications/*.md`) — these are not committed
351
+ - Invoke `@git.commit` with a message summarizing what was planned (e.g., `plan(M18): create milestone and 5 tasks for Feature X`)
352
+ - Verify the commit succeeded before moving to Step 10
353
+
354
+ **Expected Outcome**: All planning artifacts committed to version control. `git status` shows clean working tree for planned files.
355
+
356
+ ### 10. Offer Next Actions
335
357
 
336
358
  Prompt user for next action:
337
359
 
@@ -342,7 +364,7 @@ Prompt user for next action:
342
364
  - `@acp.sync` - Sync documentation with new plans
343
365
  - Review and refine manually
344
366
 
345
- **Expected Outcome**: User chooses next action
367
+ **Expected Outcome**: User chooses next action
346
368
 
347
369
  ---
348
370
 
@@ -357,6 +379,7 @@ Prompt user for next action:
357
379
  - [ ] Orphaned tasks placed in unassigned/ folder
358
380
  - [ ] progress.yaml updated with all new items
359
381
  - [ ] Planning report generated
382
+ - [ ] **Planning artifacts committed via `@git.commit` (MANDATORY — do not skip)**
360
383
  - [ ] Next actions offered
361
384
 
362
385
  ---
@@ -387,9 +410,9 @@ Prompt user for next action:
387
410
 
388
411
  ### Example 1: Planning Undefined Milestone
389
412
 
390
- **Context**: M6 exists in progress.yaml but no milestone document
413
+ **Context**: M6 exists in progress.yaml but no milestone document
391
414
 
392
- **Invocation**: `@acp.plan`
415
+ **Invocation**: `@acp.plan`
393
416
 
394
417
  **Result**:
395
418
  ```
@@ -421,25 +444,25 @@ User: yes
421
444
 
422
445
  ### Example 2: Planning with Draft File
423
446
 
424
- **Context**: Have requirements draft prepared
447
+ **Context**: Have requirements draft prepared
425
448
 
426
- **Invocation**: `@acp.plan @agent/drafts/auth-feature.draft.md`
449
+ **Invocation**: `@acp.plan @agent/drafts/auth-feature.draft.md`
427
450
 
428
- **Result**: Reads draft, creates clarification if needed, generates milestone and tasks, updates progress.yaml
451
+ **Result**: Reads draft, creates clarification if needed, generates milestone and tasks, updates progress.yaml
429
452
 
430
453
  ### Example 3: Batch Planning
431
454
 
432
- **Context**: Multiple undefined items
455
+ **Context**: Multiple undefined items
433
456
 
434
- **Invocation**: `@acp.plan --all`
457
+ **Invocation**: `@acp.plan --all`
435
458
 
436
- **Result**: Plans all undefined milestones and tasks without prompting, generates report
459
+ **Result**: Plans all undefined milestones and tasks without prompting, generates report
437
460
 
438
461
  ### Example 4: New Feature Planning
439
462
 
440
- **Context**: No undefined items, want to plan new feature
463
+ **Context**: No undefined items, want to plan new feature
441
464
 
442
- **Invocation**: `@acp.plan`
465
+ **Invocation**: `@acp.plan`
443
466
 
444
467
  **Result**:
445
468
  ```
@@ -482,27 +505,27 @@ User: c
482
505
 
483
506
  ### Issue 1: No milestones in progress.yaml
484
507
 
485
- **Symptom**: Error "No milestones found"
508
+ **Symptom**: Error "No milestones found"
486
509
 
487
- **Solution**: Guide user through creating first milestone. Offer to create default milestone structure or collect requirements in chat.
510
+ **Solution**: Guide user through creating first milestone. Offer to create default milestone structure or collect requirements in chat.
488
511
 
489
512
  ### Issue 2: Ambiguous requirements
490
513
 
491
- **Symptom**: Cannot determine full requirements for a requested plan item
514
+ **Symptom**: Cannot determine full requirements for a requested plan item
492
515
 
493
- **Solution**: Create clarification document to gather missing details. Inform user this takes longer but yields better results.
516
+ **Solution**: Create clarification document to gather missing details. Inform user this takes longer but yields better results.
494
517
 
495
518
  ### Issue 3: Task numbering conflicts
496
519
 
497
- **Symptom**: Task numbers overlap or have gaps
520
+ **Symptom**: Task numbers overlap or have gaps
498
521
 
499
- **Solution**: Agent auto-detects highest task number across ALL milestones and increments. Gaps are acceptable.
522
+ **Solution**: Agent auto-detects highest task number across ALL milestones and increments. Gaps are acceptable.
500
523
 
501
524
  ### Issue 4: Milestone numbering gaps
502
525
 
503
- **Symptom**: M1, M2, M5 exist but M3, M4 missing
526
+ **Symptom**: M1, M2, M5 exist but M3, M4 missing
504
527
 
505
- **Solution**: Prompt user to either fill gaps or continue with M6. Offer options to refine requirements, create drafts, or skip to more defined milestones.
528
+ **Solution**: Prompt user to either fill gaps or continue with M6. Offer options to refine requirements, create drafts, or skip to more defined milestones.
506
529
 
507
530
  ---
508
531
 
@@ -567,11 +590,11 @@ Dependencies may be inferred from:
567
590
 
568
591
  ---
569
592
 
570
- **Namespace**: acp
571
- **Command**: plan
572
- **Version**: 1.0.0
573
- **Created**: 2026-02-22
574
- **Last Updated**: 2026-02-22
575
- **Status**: Active
576
- **Compatibility**: ACP 3.7.3+
577
- **Author**: ACP Project
593
+ **Namespace**: acp
594
+ **Command**: plan
595
+ **Version**: 1.0.0
596
+ **Created**: 2026-02-22
597
+ **Last Updated**: 2026-02-22
598
+ **Status**: Active
599
+ **Compatibility**: ACP 3.7.3+
600
+ **Author**: ACP Project