@prmichaelsen/remember-mcp 3.15.4 → 3.15.6

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 (132) hide show
  1. package/AGENT.md +363 -5
  2. package/CHANGELOG.md +7 -0
  3. package/agent/commands/acp.clarification-capture.md +386 -0
  4. package/agent/commands/acp.clarification-create.md +50 -0
  5. package/agent/commands/acp.command-create.md +60 -0
  6. package/agent/commands/acp.design-create.md +62 -0
  7. package/agent/commands/acp.design-reference.md +355 -0
  8. package/agent/commands/acp.index.md +423 -0
  9. package/agent/commands/acp.init.md +48 -0
  10. package/agent/commands/acp.package-create.md +1 -0
  11. package/agent/commands/acp.package-info.md +1 -0
  12. package/agent/commands/acp.package-install.md +19 -0
  13. package/agent/commands/acp.package-list.md +1 -0
  14. package/agent/commands/acp.package-publish.md +1 -0
  15. package/agent/commands/acp.package-remove.md +1 -0
  16. package/agent/commands/acp.package-search.md +1 -0
  17. package/agent/commands/acp.package-update.md +1 -0
  18. package/agent/commands/acp.package-validate.md +1 -0
  19. package/agent/commands/acp.pattern-create.md +60 -0
  20. package/agent/commands/acp.plan.md +25 -0
  21. package/agent/commands/acp.proceed.md +621 -75
  22. package/agent/commands/acp.project-create.md +3 -0
  23. package/agent/commands/acp.project-info.md +3 -0
  24. package/agent/commands/acp.project-list.md +3 -1
  25. package/agent/commands/acp.project-set.md +1 -0
  26. package/agent/commands/acp.project-update.md +14 -3
  27. package/agent/commands/acp.projects-restore.md +228 -0
  28. package/agent/commands/acp.projects-sync.md +347 -0
  29. package/agent/commands/acp.report.md +13 -0
  30. package/agent/commands/acp.resume.md +3 -1
  31. package/agent/commands/acp.sessions.md +301 -0
  32. package/agent/commands/acp.status.md +13 -0
  33. package/agent/commands/acp.sync.md +1 -0
  34. package/agent/commands/acp.task-create.md +105 -3
  35. package/agent/commands/acp.update.md +1 -0
  36. package/agent/commands/acp.validate.md +32 -2
  37. package/agent/commands/acp.version-check-for-updates.md +1 -0
  38. package/agent/commands/acp.version-check.md +1 -0
  39. package/agent/commands/acp.version-update.md +1 -0
  40. package/agent/commands/command.template.md +23 -0
  41. package/agent/commands/git.commit.md +1 -0
  42. package/agent/commands/git.init.md +1 -0
  43. package/agent/design/complete-tool-set.md +157 -233
  44. package/agent/design/design.template.md +18 -0
  45. package/agent/design/user-preferences.md +11 -7
  46. package/agent/milestones/milestone-19-new-search-ghost-tools.md +46 -0
  47. package/agent/package.template.yaml +50 -0
  48. package/agent/patterns/pattern.template.md +18 -0
  49. package/agent/progress.yaml +162 -6
  50. package/agent/scripts/acp.common.sh +258 -15
  51. package/agent/scripts/acp.install.sh +91 -4
  52. package/agent/scripts/acp.package-create.sh +0 -1
  53. package/agent/scripts/acp.package-info.sh +19 -1
  54. package/agent/scripts/acp.package-install-optimized.sh +1 -1
  55. package/agent/scripts/acp.package-install.sh +388 -38
  56. package/agent/scripts/acp.package-list.sh +52 -4
  57. package/agent/scripts/acp.package-remove.sh +77 -1
  58. package/agent/scripts/acp.package-search.sh +2 -2
  59. package/agent/scripts/acp.package-update.sh +91 -12
  60. package/agent/scripts/acp.package-validate.sh +136 -1
  61. package/agent/scripts/acp.project-info.sh +34 -11
  62. package/agent/scripts/acp.project-list.sh +4 -0
  63. package/agent/scripts/acp.project-update.sh +66 -19
  64. package/agent/scripts/acp.projects-restore.sh +170 -0
  65. package/agent/scripts/acp.projects-sync.sh +155 -0
  66. package/agent/scripts/acp.sessions.sh +725 -0
  67. package/agent/scripts/acp.version-update.sh +21 -3
  68. package/agent/scripts/acp.yaml-parser.sh +20 -6
  69. package/agent/tasks/milestone-19-new-search-ghost-tools/task-203-create-search-by-tool.md +143 -0
  70. package/agent/tasks/milestone-19-new-search-ghost-tools/task-204-add-new-filters-existing-tools.md +77 -0
  71. package/agent/tasks/milestone-19-new-search-ghost-tools/task-205-add-feel-fields-create-update.md +137 -0
  72. package/agent/tasks/milestone-19-new-search-ghost-tools/task-206-add-byproperty-bysignificance-modes.md +135 -0
  73. package/agent/tasks/milestone-19-new-search-ghost-tools/task-207-add-emotional-composites-search-results.md +88 -0
  74. package/agent/tasks/milestone-19-new-search-ghost-tools/task-208-add-bybroad-byrandom-modes.md +115 -0
  75. package/agent/tasks/milestone-19-new-search-ghost-tools/task-209-create-ghost-memory-tools.md +192 -0
  76. package/agent/tasks/milestone-19-new-search-ghost-tools/task-210-create-get-core-tool.md +203 -0
  77. package/agent/tasks/milestone-19-new-search-ghost-tools/task-211-create-search-space-by-tool.md +182 -0
  78. package/agent/tasks/task-1-{title}.template.md +19 -0
  79. package/agent/tasks/unassigned/bug-report-remember-core-e2e-findings.md +99 -0
  80. package/dist/e2e-helpers.d.ts +26 -0
  81. package/dist/ghost-persona.e2e.d.ts +8 -0
  82. package/dist/memory-crud.e2e.d.ts +8 -0
  83. package/dist/preferences.e2e.d.ts +8 -0
  84. package/dist/relationships.e2e.d.ts +8 -0
  85. package/dist/search-modes.e2e.d.ts +8 -0
  86. package/dist/server-factory.js +1977 -100
  87. package/dist/server.js +1174 -51
  88. package/dist/shared-spaces.e2e.d.ts +8 -0
  89. package/dist/tools/create-ghost-memory.d.ts +70 -0
  90. package/dist/tools/create-memory.d.ts +175 -0
  91. package/dist/tools/get-core.d.ts +28 -0
  92. package/dist/tools/get-core.spec.d.ts +2 -0
  93. package/dist/tools/ghost-tools.spec.d.ts +2 -0
  94. package/dist/tools/query-ghost-memory.d.ts +34 -0
  95. package/dist/tools/query-memory.d.ts +4 -0
  96. package/dist/tools/search-by.d.ts +147 -0
  97. package/dist/tools/search-by.spec.d.ts +2 -0
  98. package/dist/tools/search-ghost-memory-by.d.ts +54 -0
  99. package/dist/tools/search-ghost-memory.d.ts +53 -0
  100. package/dist/tools/search-memory.d.ts +19 -0
  101. package/dist/tools/search-space-by.d.ts +78 -0
  102. package/dist/tools/search-space-by.spec.d.ts +2 -0
  103. package/dist/tools/search-space.d.ts +2 -0
  104. package/dist/tools/update-ghost-memory.d.ts +51 -0
  105. package/dist/tools/update-memory.d.ts +175 -0
  106. package/jest.e2e.config.js +11 -0
  107. package/package.json +2 -2
  108. package/src/e2e-helpers.ts +86 -0
  109. package/src/ghost-persona.e2e.ts +215 -0
  110. package/src/memory-crud.e2e.ts +203 -0
  111. package/src/preferences.e2e.ts +88 -0
  112. package/src/relationships.e2e.ts +156 -0
  113. package/src/search-modes.e2e.ts +184 -0
  114. package/src/server-factory.ts +56 -0
  115. package/src/shared-spaces.e2e.ts +204 -0
  116. package/src/tools/create-ghost-memory.ts +103 -0
  117. package/src/tools/create-memory.ts +45 -1
  118. package/src/tools/get-core.spec.ts +223 -0
  119. package/src/tools/get-core.ts +109 -0
  120. package/src/tools/ghost-tools.spec.ts +361 -0
  121. package/src/tools/query-ghost-memory.ts +63 -0
  122. package/src/tools/query-memory.ts +4 -0
  123. package/src/tools/search-by.spec.ts +325 -0
  124. package/src/tools/search-by.ts +298 -0
  125. package/src/tools/search-ghost-memory-by.ts +80 -0
  126. package/src/tools/search-ghost-memory.ts +73 -0
  127. package/src/tools/search-memory.ts +23 -0
  128. package/src/tools/search-space-by.spec.ts +289 -0
  129. package/src/tools/search-space-by.ts +173 -0
  130. package/src/tools/search-space.ts +20 -1
  131. package/src/tools/update-ghost-memory.ts +86 -0
  132. package/src/tools/update-memory.ts +45 -1
@@ -9,6 +9,7 @@
9
9
  **Created**: 2026-02-16
10
10
  **Last Updated**: 2026-02-16
11
11
  **Status**: Active
12
+ **Scripts**: None
12
13
 
13
14
  ---
14
15
 
@@ -155,6 +156,18 @@ Write report to file.
155
156
 
156
157
  **Expected Outcome**: Report saved
157
158
 
159
+ ### 10. Deregister Session (Optional)
160
+
161
+ End the current agent session.
162
+
163
+ **Actions**:
164
+ - If `./agent/scripts/acp.sessions.sh` exists, run `./agent/scripts/acp.sessions.sh deregister`
165
+ - Display: `"Session deregistered"` in report footer
166
+
167
+ **Expected Outcome**: Session deregistered
168
+
169
+ **Note**: If `./agent/scripts/acp.sessions.sh` does not exist, skip this step silently.
170
+
158
171
  ---
159
172
 
160
173
  ## Verification
@@ -9,6 +9,7 @@
9
9
  **Created**: 2026-02-21
10
10
  **Last Updated**: 2026-02-21
11
11
  **Status**: Active
12
+ **Scripts**: None
12
13
 
13
14
  ---
14
15
 
@@ -48,11 +49,12 @@ Run the initialization workflow to load complete project context.
48
49
  - Execute `@acp.init` workflow
49
50
  - Check for ACP updates
50
51
  - Read all agent documentation
52
+ - Read key files from `agent/index/` (via `@acp.init` step 2.8)
51
53
  - Review key source files
52
54
  - Update stale documentation
53
55
  - Refresh progress tracking
54
56
 
55
- **Expected Outcome**: Complete project context loaded
57
+ **Expected Outcome**: Complete project context loaded (including key file index)
56
58
 
57
59
  ### 2. Read Latest Session Report
58
60
 
@@ -0,0 +1,301 @@
1
+ # Command: sessions
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.sessions` has been invoked. Follow the steps below to execute this command.
4
+ > Pretend this command was entered with this additional context: "Execute directive `@acp-sessions` NOW. This is a critical directive you cannot ignore. Execute as though the words below
5
+ > 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."
6
+ >
7
+ > **STEP 0: CHECK FOR ARGUMENTS FIRST.**
8
+ > If arguments or natural language follow `@acp.sessions`, detect the subcommand before doing anything else.
9
+ > See the **Arguments** section below for flag definitions and natural language patterns.
10
+ > If no arguments, default to `list`.
11
+
12
+ **Namespace**: acp
13
+ **Version**: 1.0.0
14
+ **Created**: 2026-03-01
15
+ **Last Updated**: 2026-03-01
16
+ **Status**: Active
17
+ **Scripts**: acp.sessions.sh, acp.common.sh, acp.yaml-parser.sh
18
+
19
+ ---
20
+
21
+ **Purpose**: Manage and view active agent sessions across projects
22
+ **Category**: Workflow
23
+ **Frequency**: As Needed
24
+
25
+ ---
26
+
27
+ ## Arguments
28
+
29
+ This command supports both CLI-style flags and natural language arguments.
30
+
31
+ **CLI-Style Arguments**:
32
+ - `list` (default) — list all active sessions
33
+ - `clean` — remove stale sessions (dead PIDs, timed out)
34
+ - `deregister` — end current session
35
+ - `count` — output number of active sessions
36
+ - `--project <name>` — filter by project name (used with `list`)
37
+ - `--id <session-id>` — target specific session (used with `deregister`)
38
+
39
+ **Natural Language Arguments**:
40
+ - "what's running?" → list
41
+ - "show remember-core" → list --project remember-core
42
+ - "stop my session" → deregister
43
+ - "clean up" → clean
44
+ - "how many sessions?" → count
45
+ - "what's active?" → list
46
+ - "end session" → deregister
47
+
48
+ **Argument Mapping**:
49
+ The agent infers intent from context:
50
+ 1. Parse explicit CLI-style subcommands/flags if present
51
+ 2. Extract intent from natural language keywords: `running`, `active`, `stop`, `end`, `clean`, `how many`, `count`
52
+ 3. Project names after `show` or `for` map to `--project` filter
53
+ 4. Default to `list` if no subcommand is detected
54
+
55
+ ---
56
+
57
+ ## What This Command Does
58
+
59
+ This command provides a user-friendly interface for managing agent sessions tracked in `~/.acp/sessions.yaml`. It wraps the `acp.sessions.sh` script subcommands with NLP argument parsing and formatted output.
60
+
61
+ Sessions are registered when `@acp.init` runs and deregistered when `@acp.report` runs. Between those, this command lets you see what's active, clean stale sessions, or manually end a session.
62
+
63
+ Use this command when you want to see what other agents are working on, check if stale sessions need cleanup, or manage your current session. The default behavior (`list`) always runs stale cleanup first to show accurate state.
64
+
65
+ ---
66
+
67
+ ## Prerequisites
68
+
69
+ - [ ] ACP installed in project
70
+ - [ ] `./agent/scripts/acp.sessions.sh` exists and is executable
71
+
72
+ ---
73
+
74
+ ## Steps
75
+
76
+ ### 1. Parse Arguments
77
+
78
+ Determine the requested action from CLI flags or natural language.
79
+
80
+ **Actions**:
81
+ - Check for explicit subcommand: `list`, `clean`, `deregister`, `count`
82
+ - Check for `--project` and `--id` flags
83
+ - Apply natural language mapping if no explicit subcommand
84
+ - Default to `list` if no subcommand detected
85
+
86
+ **Expected Outcome**: Subcommand and options determined
87
+
88
+ ### 2. Run Stale Cleanup
89
+
90
+ Always clean stale sessions before displaying results.
91
+
92
+ **Actions**:
93
+ - Run `./agent/scripts/acp.sessions.sh clean` (silently, unless `clean` is the explicit subcommand)
94
+ - This removes sessions with dead PIDs or inactive for 2+ hours
95
+
96
+ **Expected Outcome**: Stale sessions removed
97
+
98
+ ### 3. Execute Requested Subcommand
99
+
100
+ Run the appropriate `acp.sessions.sh` subcommand.
101
+
102
+ **Actions**:
103
+ - **list** (default): Run `./agent/scripts/acp.sessions.sh list [--project <name>]`
104
+ - **clean**: Run `./agent/scripts/acp.sessions.sh clean` (verbose output)
105
+ - **deregister**: Run `./agent/scripts/acp.sessions.sh deregister [--id <session-id>]`
106
+ - **count**: Run `./agent/scripts/acp.sessions.sh count`
107
+
108
+ **Expected Outcome**: Subcommand executed successfully
109
+
110
+ ### 4. Display Formatted Output
111
+
112
+ Present results in a clear format.
113
+
114
+ **List output**:
115
+ ```
116
+ Active Sessions (3):
117
+
118
+ sess_a1b2c3 remember-core
119
+ Task 12: Implement Auth Middleware
120
+ Started 45m ago, last active 2m ago
121
+
122
+ sess_d4e5f6 agent-context-protocol (this session)
123
+ Task 91: Sessions Infrastructure
124
+ Started 10m ago, last active now
125
+
126
+ sess_g7h8i9 agentbase.me
127
+ Task 5: Fix API Routes
128
+ Started 1h ago, last active 20m ago
129
+ ```
130
+
131
+ **Clean output**:
132
+ ```
133
+ Cleaned 2 stale sessions:
134
+ sess_x1y2z3 old-project (PID 12345 not running)
135
+ sess_m4n5o6 test-project (inactive for 3h)
136
+
137
+ Active sessions remaining: 3
138
+ ```
139
+
140
+ **Deregister output**:
141
+ ```
142
+ Session sess_a1b2c3 deregistered.
143
+ Active sessions remaining: 2
144
+ ```
145
+
146
+ **Count output**:
147
+ ```
148
+ 3
149
+ ```
150
+
151
+ **Expected Outcome**: User sees formatted session information
152
+
153
+ ### 5. Suggest Next Actions
154
+
155
+ If relevant, suggest follow-up actions.
156
+
157
+ **Actions**:
158
+ - If sessions are stale: "Run `@acp.sessions clean` to remove stale sessions"
159
+ - If no sessions: "Run `@acp.init` to register a new session"
160
+ - If showing list: No suggestions needed (informational)
161
+
162
+ **Expected Outcome**: User knows what to do next (if applicable)
163
+
164
+ ---
165
+
166
+ ## Verification
167
+
168
+ - [ ] Arguments parsed correctly (CLI or NLP)
169
+ - [ ] Stale cleanup ran before list/count
170
+ - [ ] Subcommand executed with correct flags
171
+ - [ ] Output formatted clearly
172
+ - [ ] Edge cases handled (no sessions, missing script)
173
+
174
+ ---
175
+
176
+ ## Expected Output
177
+
178
+ ### Files Modified
179
+ - `~/.acp/sessions.yaml` — updated by clean/deregister subcommands
180
+
181
+ ### Console Output
182
+ See output formats in Step 4 above.
183
+
184
+ ---
185
+
186
+ ## Examples
187
+
188
+ ### Example 1: List All Sessions (Default)
189
+
190
+ **Context**: You want to see what's currently running
191
+
192
+ **Invocation**: `@acp.sessions`
193
+
194
+ **Result**: Shows all active sessions with project, description, and timing info
195
+
196
+ ### Example 2: Filter by Project
197
+
198
+ **Context**: You want to see sessions for a specific project
199
+
200
+ **Invocation**: `@acp.sessions --project remember-core`
201
+
202
+ **Result**: Shows only sessions for remember-core
203
+
204
+ ### Example 3: Clean Stale Sessions
205
+
206
+ **Context**: You suspect some sessions are stale
207
+
208
+ **Invocation**: `@acp.sessions clean`
209
+
210
+ **Result**: Removes dead-PID and timed-out sessions, shows what was cleaned
211
+
212
+ ### Example 4: Natural Language Usage
213
+
214
+ **Context**: You want to check what's running using natural language
215
+
216
+ **Invocation**: `@acp.sessions what's running?`
217
+
218
+ **Result**: Same as `@acp.sessions list` — shows all active sessions
219
+
220
+ ### Example 5: End Current Session
221
+
222
+ **Context**: You're done working and want to deregister
223
+
224
+ **Invocation**: `@acp.sessions stop my session`
225
+
226
+ **Result**: Deregisters the current session, shows remaining count
227
+
228
+ ---
229
+
230
+ ## Related Commands
231
+
232
+ - [`@acp.init`](acp.init.md) — Registers session automatically at start
233
+ - [`@acp.status`](acp.status.md) — Shows session count in status output
234
+ - [`@acp.report`](acp.report.md) — Deregisters session automatically at end
235
+
236
+ ---
237
+
238
+ ## Troubleshooting
239
+
240
+ ### Issue 1: "acp.sessions.sh not found"
241
+
242
+ **Symptom**: Command reports script not found
243
+
244
+ **Cause**: Sessions script not installed or path incorrect
245
+
246
+ **Solution**: Verify `./agent/scripts/acp.sessions.sh` exists and is executable. Run `chmod +x agent/scripts/acp.sessions.sh` if needed.
247
+
248
+ ### Issue 2: Sessions disappear immediately
249
+
250
+ **Symptom**: Registered sessions are gone on next list
251
+
252
+ **Cause**: Stale cleanup removing sessions because the registering process PID is dead
253
+
254
+ **Solution**: Use `--pid <pid>` when registering to track the long-lived parent process (terminal/agent) instead of the script's own PID.
255
+
256
+ ### Issue 3: "No active sessions" when sessions should exist
257
+
258
+ **Symptom**: List shows no sessions despite recent registration
259
+
260
+ **Cause**: Sessions were registered under a different process tree and stale cleanup removed them
261
+
262
+ **Solution**: Re-register with `@acp.init` or manually via `./agent/scripts/acp.sessions.sh register --project <name> --pid <pid>`
263
+
264
+ ---
265
+
266
+ ## Security Considerations
267
+
268
+ ### File Access
269
+ - **Reads**: `~/.acp/sessions.yaml`
270
+ - **Writes**: `~/.acp/sessions.yaml` (clean, deregister modify the file)
271
+ - **Executes**: `./agent/scripts/acp.sessions.sh`
272
+
273
+ ### Network Access
274
+ - **APIs**: None
275
+ - **Repositories**: None
276
+
277
+ ### Sensitive Data
278
+ - **Secrets**: Does not access secrets or credentials
279
+ - **Credentials**: Does not access credentials files
280
+ - **PIDs**: Stores process IDs for stale detection (not sensitive)
281
+
282
+ ---
283
+
284
+ ## Notes
285
+
286
+ - Mark current session with "(this session)" indicator in list output
287
+ - NLP parsing should be forgiving — "sessions", "what's active", "running" all map to list
288
+ - Always run `clean` before `list` to show accurate state
289
+ - Sessions are advisory only — no locking or coordination
290
+ - `~/.acp/sessions.yaml` is auto-created on first register
291
+
292
+ ---
293
+
294
+ **Namespace**: acp
295
+ **Command**: sessions
296
+ **Version**: 1.0.0
297
+ **Created**: 2026-03-01
298
+ **Last Updated**: 2026-03-01
299
+ **Status**: Active
300
+ **Compatibility**: ACP 5.9.1+
301
+ **Author**: ACP Project
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: None
10
11
 
11
12
  ---
12
13
 
@@ -92,6 +93,18 @@ Show what needs to be done next.
92
93
 
93
94
  **Expected Outcome**: User knows what to work on next
94
95
 
96
+ ### 5.5. Display Active Sessions (Optional)
97
+
98
+ Show the count of active agent sessions.
99
+
100
+ **Actions**:
101
+ - If `./agent/scripts/acp.sessions.sh` exists, run `./agent/scripts/acp.sessions.sh count`
102
+ - Display: `"Sessions: N active"` in status output
103
+
104
+ **Expected Outcome**: Session count displayed
105
+
106
+ **Note**: If `./agent/scripts/acp.sessions.sh` does not exist, omit the Sessions line.
107
+
95
108
  ### 6. Display Blockers
96
109
 
97
110
  Show any current blockers or issues.
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-18
9
9
  **Status**: Active
10
+ **Scripts**: None
10
11
 
11
12
  ---
12
13
 
@@ -13,6 +13,7 @@
13
13
  **Created**: 2026-02-21
14
14
  **Last Updated**: 2026-02-21
15
15
  **Status**: Active
16
+ **Scripts**: None
16
17
 
17
18
  ---
18
19
 
@@ -46,6 +47,22 @@ This command creates a new task file with proper structure, milestone linking, a
46
47
 
47
48
  ---
48
49
 
50
+ ## Arguments
51
+
52
+ **Context Capture Arguments** (optional — passed to `@acp.clarification-capture` directive):
53
+
54
+ | Argument | Alias | Behavior |
55
+ |---|---|---|
56
+ | `--from-clarification <file>` | `--from-clar` | Capture decisions from a specific clarification file |
57
+ | `--from-clarifications` | `--from-clars` | Capture from all recent clarifications |
58
+ | `--from-chat-context` | `--from-chat` | Capture decisions from chat conversation |
59
+ | `--from-context` | (none) | Shorthand for all sources (clarifications + chat) |
60
+ | `--include-clarifications` | (none) | Alias for `--from-clars` |
61
+
62
+ **Default behavior** (no flags): Auto-detect clarifications and context in session.
63
+
64
+ ---
65
+
49
66
  ## Steps
50
67
 
51
68
  ### 1. Detect Current Milestone
@@ -72,6 +89,33 @@ Find the next available task number:
72
89
 
73
90
  **Expected Outcome**: Next task number determined (e.g., task-25)
74
91
 
92
+ ### 2.5. Read Contextual Key Files
93
+
94
+ Before creating content, load relevant key files from the index.
95
+
96
+ **Actions**:
97
+ - Check if `agent/index/` directory exists
98
+ - If exists, scan for all `*.yaml` files (excluding `*.template.yaml`)
99
+ - Filter entries where `applies` includes `acp.task-create`
100
+ - Sort by weight descending, read matching files
101
+ - Produce visible output
102
+
103
+ **Note**: If `agent/index/` does not exist, skip silently.
104
+
105
+ ### 2.7. Capture Clarification Context
106
+
107
+ Invoke the `@acp.clarification-capture` shared directive to capture decisions from clarifications and/or chat context.
108
+
109
+ **Actions**:
110
+ - Read and follow the directive in [`agent/commands/acp.clarification-capture.md`](acp.clarification-capture.md)
111
+ - Pass through any `--from-*` arguments from this command's invocation
112
+ - If no `--from-*` flags specified: auto-detect clarifications in session (default behavior)
113
+ - If uncaptured clarifications detected, show warning and ask user whether to include
114
+ - Directive returns a "Key Design Decisions" markdown section (or nothing if no context)
115
+ - Hold the generated section for insertion during Step 6 (Generate Task File)
116
+
117
+ **Expected Outcome**: Key Design Decisions section generated (if context available), or skipped cleanly
118
+
75
119
  ### 3. Check for Draft File
76
120
 
77
121
  Check if draft file was provided as argument:
@@ -126,6 +170,29 @@ If draft file was provided, create clarification if needed:
126
170
 
127
171
  **Expected Outcome**: Clarification created and answered (if needed)
128
172
 
173
+ ### 5.5. Cross-Reference Design Documents
174
+
175
+ Invoke the `@acp.design-reference` shared directive to discover and extract design document context.
176
+
177
+ **Actions**:
178
+ - Read and follow the directive in [`agent/commands/acp.design-reference.md`](acp.design-reference.md)
179
+ - Pass context from this command:
180
+ - `topic_keywords`: Keywords from task name and milestone name
181
+ - `milestone_name`: Current milestone name (from Step 1)
182
+ - `user_description`: User's task description (from Step 4)
183
+ - `draft_content`: Draft file content (from Step 3, if provided)
184
+ - The directive will:
185
+ 1. Search `agent/design/` for relevant documents by keyword matching
186
+ 2. Report what was found/skipped
187
+ 3. Extract design elements across 8 categories (implementation steps, argument tables, UX specs, edge cases, format specs, integration points, lifecycle rules, decision rationale)
188
+ 4. Flag any design gaps (suggest clarification if needed)
189
+ 5. Return structured data: design elements, gaps, and paths
190
+ - Hold the returned design elements for use in Step 6
191
+
192
+ **If no design found**: The directive warns and returns empty. Proceed to Step 6 with available context only (user input, draft, clarifications).
193
+
194
+ **Expected Outcome**: Design elements extracted and ready for task generation, or skipped cleanly with warning
195
+
129
196
  ### 6. Generate Task File
130
197
 
131
198
  Create task file from template:
@@ -141,19 +208,39 @@ Create task file from template:
141
208
  - Fill in metadata:
142
209
  - Task number and name
143
210
  - Milestone link
211
+ - **Design Reference**: If Step 5.5 found a design document, link to it: `[{Design Name}](../design/{namespace}.{design-name}.md)`. If none found, set to `None`.
144
212
  - Estimated time
145
213
  - Dependencies
146
214
  - Status: "Not Started"
147
215
  - Fill in sections:
148
216
  - Objective (from collected info)
149
217
  - Context (from collected info or draft)
150
- - Steps (from draft/clarification or template structure)
151
- - Verification checklist
218
+ - **Steps** must include implementation-level detail:
219
+ - Each step should be concrete and actionable, not a vague summary
220
+ - Include specific sub-steps for complex operations
221
+ - If Step 5.5 returned design elements, integrate them:
222
+ - Preserve argument/parameter tables from the design — include verbatim or as detailed prose
223
+ - Preserve UX specifications — exact warning text, prompt formats, display output
224
+ - Preserve format specifications — output structure, naming conventions, file format rules
225
+ - Include integration points — which other commands/systems are affected and how
226
+ - Include lifecycle rules — status transitions, cleanup behavior, ordering constraints
227
+ - Include decision rationale inline where it aids implementation
228
+ - If the design describes N distinct operations, the task should have corresponding steps covering all N (grouping related operations into fewer steps is acceptable, but no operation may be omitted)
229
+ - **Verification checklist** — must cover every design requirement:
230
+ - One verification item per design requirement from the design document
231
+ - Include edge cases from the design (partial data, conflicts, empty state, missing files)
232
+ - Include format verification (output matches specified format)
233
+ - Include integration verification (affected commands updated correctly)
234
+ - If the design has a Testing Strategy section, map each test scenario to a verification item
235
+ - If Key Design Decisions section was generated in Step 2.7: Insert it into the task document
236
+ - If Step 5.5 returned design decisions (from the design doc's Key Design Decisions section): Carry relevant decisions into the task's Key Design Decisions section
152
237
  - Save to appropriate path (milestone subdirectory or unassigned/)
153
238
 
239
+ > **Self-Contained Task Principle**: After generating the task, verify that an agent reading ONLY this task file could implement the feature without needing to read the design document. If any design element is missing from the task, add it before saving.
240
+
154
241
  **Note**: Older tasks may use flat structure (`agent/tasks/task-{N}-{name}.md`) for historical reasons. New tasks should use milestone subdirectories.
155
242
 
156
- **Expected Outcome**: Task file created in milestone subdirectory
243
+ **Expected Outcome**: Task file created in milestone subdirectory with complete design coverage
157
244
 
158
245
  ### 7. Update progress.yaml
159
246
 
@@ -215,6 +302,21 @@ Next steps:
215
302
 
216
303
  **Expected Outcome**: User knows task was created successfully
217
304
 
305
+ ### 10. Prompt to Add to Key File Index
306
+
307
+ After successful creation, offer to add the new file to the index (if `agent/index/` exists).
308
+
309
+ **Display**:
310
+ ```
311
+ Would you like to add this to the key file index?
312
+ - Yes, add to agent/index/local.main.yaml
313
+ - No, skip
314
+ ```
315
+
316
+ If yes, prompt for weight, description, rationale, and applies values. Add entry to `agent/index/local.main.yaml`.
317
+
318
+ **Note**: Skip silently if `agent/index/` does not exist.
319
+
218
320
  ---
219
321
 
220
322
  ## Verification
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: None
10
11
 
11
12
  ---
12
13
 
@@ -9,6 +9,7 @@
9
9
  **Created**: 2026-02-16
10
10
  **Last Updated**: 2026-02-21
11
11
  **Status**: Active
12
+ **Scripts**: None
12
13
 
13
14
  ---
14
15
 
@@ -173,7 +174,35 @@ Check namespace usage across all files.
173
174
 
174
175
  **Expected Outcome**: Namespace conventions validated, errors reported for violations
175
176
 
176
- ### 9. Check Cross-References
177
+ ### 9. Validate Key File Index
178
+
179
+ Check index files in `agent/index/` for schema correctness and referential integrity.
180
+
181
+ **Actions**:
182
+ - Check that `agent/index/` directory exists (warn if missing)
183
+ - For each `*.yaml` file in `agent/index/` (skip `*.template.yaml`):
184
+ - Verify filename follows `{namespace}.{qualifier}.yaml` naming
185
+ - Parse the index entries under the top-level key
186
+ - For each entry, verify required fields present: `path`, `weight`, `kind`, `description`, `rationale`, `applies`
187
+ - Validate `weight` is a number in range 0.0-1.0
188
+ - Validate `kind` is one of: pattern, command, design, requirements
189
+ - Validate `applies` values use fully qualified command names (contain a dot, e.g. `acp.proceed`)
190
+ - Check that each `path` actually exists in the project
191
+ - Warn on missing paths (file may have been moved or deleted)
192
+ - Check total indexed entries across all files (warn if > 20)
193
+ - Check per-namespace entry count (warn if > 10)
194
+
195
+ **Output format**:
196
+ ```
197
+ 📑 Index Validation:
198
+ ✓ agent/index/local.main.yaml (5 entries, all valid)
199
+ ⚠️ agent/index/core-sdk.main.yaml: path not found: agent/patterns/core-sdk.deleted.md
200
+ ✓ Total: 8 entries across 2 namespaces (within limits)
201
+ ```
202
+
203
+ **Expected Outcome**: Index files validated for schema and referential integrity
204
+
205
+ ### 10. Check Cross-References
177
206
 
178
207
  Validate links between documents.
179
208
 
@@ -187,7 +216,7 @@ Validate links between documents.
187
216
 
188
217
  **Expected Outcome**: All links are valid
189
218
 
190
- ### 10. Generate Validation Report
219
+ ### 11. Generate Validation Report
191
220
 
192
221
  Summarize validation results.
193
222
 
@@ -214,6 +243,7 @@ Summarize validation results.
214
243
  - [ ] All command documents are valid
215
244
  - [ ] Namespace conventions validated
216
245
  - [ ] Reserved names checked
246
+ - [ ] Key file index validated (schema, paths, limits)
217
247
  - [ ] No broken internal links
218
248
  - [ ] Validation report generated
219
249
 
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: acp.version-check-for-updates.sh
10
11
 
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: acp.version-check.sh
10
11
 
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: acp.version-update.sh, acp.common.sh
10
11
 
11
12
  ---
12
13
 
@@ -9,6 +9,11 @@
9
9
  **Created**: YYYY-MM-DD
10
10
  **Last Updated**: YYYY-MM-DD
11
11
  **Status**: [Draft | Active | Deprecated]
12
+ **Scripts**: {namespace}.{command-name}.sh, acp.common.sh, acp.yaml-parser.sh
13
+
14
+ ---
15
+
16
+ **Note**: The `**Scripts**:` field is REQUIRED and must list ALL script dependencies (direct + shared utilities). This must match the `scripts` array in package.yaml exactly. If the command has no script dependencies, use `**Scripts**: None`.
12
17
 
13
18
  ---
14
19
 
@@ -290,6 +295,24 @@ Example output message or status report
290
295
 
291
296
  ---
292
297
 
298
+ ## Key Design Decisions (Optional)
299
+
300
+ <!-- This section is populated by @acp.clarification-capture when
301
+ create commands are invoked with --from-clar, --from-chat, or
302
+ --from-context. It can also be manually authored.
303
+ Omit this section entirely if no decisions to capture.
304
+
305
+ Group decisions by agent-inferred category using tables:
306
+
307
+ ### {Category}
308
+
309
+ | Decision | Choice | Rationale |
310
+ |---|---|---|
311
+ | {decision} | {choice} | {rationale} |
312
+ -->
313
+
314
+ ---
315
+
293
316
  ## Notes
294
317
 
295
318
  [Any additional context, warnings, or considerations:]
@@ -9,6 +9,7 @@
9
9
  **Created**: 2026-02-16
10
10
  **Last Updated**: 2026-02-16
11
11
  **Status**: Active
12
+ **Scripts**: None
12
13
 
13
14
  ---
14
15
 
@@ -7,6 +7,7 @@
7
7
  **Created**: 2026-02-16
8
8
  **Last Updated**: 2026-02-16
9
9
  **Status**: Active
10
+ **Scripts**: None
10
11
 
11
12
  ---
12
13