@prmichaelsen/remember-mcp 3.0.0 → 3.12.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 (208) hide show
  1. package/AGENT.md +296 -250
  2. package/CHANGELOG.md +338 -0
  3. package/README.md +68 -45
  4. package/agent/commands/acp.clarification-create.md +382 -0
  5. package/agent/commands/acp.project-info.md +309 -0
  6. package/agent/commands/acp.project-remove.md +379 -0
  7. package/agent/commands/acp.project-update.md +296 -0
  8. package/agent/commands/acp.task-create.md +17 -9
  9. package/agent/commands/git.commit.md +13 -1
  10. package/agent/design/comment-memory-type.md +2 -2
  11. package/agent/design/local.collaborative-memory-sync.md +265 -0
  12. package/agent/design/local.content-flags.md +210 -0
  13. package/agent/design/local.ghost-persona-system.md +273 -0
  14. package/agent/design/local.group-acl-integration.md +338 -0
  15. package/agent/design/local.memory-acl-schema.md +352 -0
  16. package/agent/design/local.memory-collection-pattern-v2.md +348 -0
  17. package/agent/design/local.moderation-and-space-config.md +257 -0
  18. package/agent/design/local.v2-api-reference.md +621 -0
  19. package/agent/design/local.v2-migration-guide.md +191 -0
  20. package/agent/design/local.v2-usage-examples.md +265 -0
  21. package/agent/design/permissions-storage-architecture.md +11 -3
  22. package/agent/design/trust-escalation-prevention.md +9 -2
  23. package/agent/design/trust-system-implementation.md +12 -3
  24. package/agent/milestones/milestone-14-memory-collection-v2.md +182 -0
  25. package/agent/milestones/milestone-15-moderation-space-config.md +126 -0
  26. package/agent/progress.yaml +628 -49
  27. package/agent/scripts/acp.common.sh +2 -0
  28. package/agent/scripts/acp.install.sh +11 -1
  29. package/agent/scripts/acp.package-install-optimized.sh +454 -0
  30. package/agent/scripts/acp.package-install.sh +247 -300
  31. package/agent/scripts/acp.project-info.sh +218 -0
  32. package/agent/scripts/acp.project-remove.sh +302 -0
  33. package/agent/scripts/acp.project-update.sh +296 -0
  34. package/agent/scripts/acp.yaml-parser.sh +128 -10
  35. package/agent/tasks/milestone-14-memory-collection-v2/task-165-core-infrastructure-setup.md +171 -0
  36. package/agent/tasks/milestone-14-memory-collection-v2/task-166-update-remember-publish.md +191 -0
  37. package/agent/tasks/milestone-14-memory-collection-v2/task-167-update-remember-retract.md +186 -0
  38. package/agent/tasks/milestone-14-memory-collection-v2/task-168-implement-remember-revise.md +184 -0
  39. package/agent/tasks/milestone-14-memory-collection-v2/task-169-update-remember-search-space.md +179 -0
  40. package/agent/tasks/milestone-14-memory-collection-v2/task-170-update-remember-create-update.md +139 -0
  41. package/agent/tasks/milestone-14-memory-collection-v2/task-172-performance-testing-optimization.md +161 -0
  42. package/agent/tasks/milestone-14-memory-collection-v2/task-173-documentation-examples.md +258 -0
  43. package/agent/tasks/milestone-15-moderation-space-config/task-174-add-moderation-schema-fields.md +57 -0
  44. package/agent/tasks/milestone-15-moderation-space-config/task-175-create-space-config-service.md +64 -0
  45. package/agent/tasks/milestone-15-moderation-space-config/task-176-wire-moderation-publish-flow.md +45 -0
  46. package/agent/tasks/milestone-15-moderation-space-config/task-177-add-moderation-search-filters.md +70 -0
  47. package/agent/tasks/milestone-15-moderation-space-config/task-178-create-remember-moderate-tool.md +69 -0
  48. package/agent/tasks/milestone-15-moderation-space-config/task-179-documentation-integration-tests.md +58 -0
  49. package/agent/tasks/milestone-16-ghost-system/task-187-ghost-config-firestore.md +41 -0
  50. package/agent/tasks/milestone-16-ghost-system/task-188-trust-filter-integration.md +44 -0
  51. package/agent/tasks/milestone-16-ghost-system/task-189-ghost-memory-filtering.md +43 -0
  52. package/agent/tasks/milestone-16-ghost-system/task-190-ghost-config-tools.md +45 -0
  53. package/agent/tasks/milestone-16-ghost-system/task-191-escalation-firestore.md +38 -0
  54. package/agent/tasks/milestone-16-ghost-system/task-192-documentation-verification.md +39 -0
  55. package/agent/tasks/milestone-7-trust-permissions/task-180-access-result-permission-types.md +69 -0
  56. package/agent/tasks/milestone-7-trust-permissions/task-181-firestore-permissions-access-logs.md +56 -0
  57. package/agent/tasks/milestone-7-trust-permissions/task-182-trust-enforcement-service.md +68 -0
  58. package/agent/tasks/milestone-7-trust-permissions/task-183-access-control-service.md +70 -0
  59. package/agent/tasks/milestone-7-trust-permissions/task-184-permission-tools.md +79 -0
  60. package/agent/tasks/milestone-7-trust-permissions/task-185-wire-trust-into-search-query.md +55 -0
  61. package/agent/tasks/milestone-7-trust-permissions/task-186-documentation-verification.md +56 -0
  62. package/agent/tasks/task-76-fix-indexnullstate-schema-bug.md +197 -0
  63. package/dist/collections/composite-ids.d.ts +106 -0
  64. package/dist/collections/core-infrastructure.spec.d.ts +11 -0
  65. package/dist/collections/dot-notation.d.ts +106 -0
  66. package/dist/collections/tracking-arrays.d.ts +176 -0
  67. package/dist/constants/content-types.d.ts +1 -0
  68. package/dist/schema/v2-collections-comments.spec.d.ts +8 -0
  69. package/dist/schema/v2-collections.d.ts +210 -0
  70. package/dist/server-factory.d.ts +15 -0
  71. package/dist/server-factory.js +2798 -1029
  72. package/dist/server.js +2526 -1012
  73. package/dist/services/access-control.d.ts +103 -0
  74. package/dist/services/access-control.spec.d.ts +2 -0
  75. package/dist/services/credentials-provider.d.ts +24 -0
  76. package/dist/services/credentials-provider.spec.d.ts +2 -0
  77. package/dist/services/escalation.service.d.ts +22 -0
  78. package/dist/services/escalation.service.spec.d.ts +2 -0
  79. package/dist/services/ghost-config.service.d.ts +55 -0
  80. package/dist/services/ghost-config.service.spec.d.ts +2 -0
  81. package/dist/services/space-config.service.d.ts +23 -0
  82. package/dist/services/space-config.service.spec.d.ts +2 -0
  83. package/dist/services/trust-enforcement.d.ts +83 -0
  84. package/dist/services/trust-enforcement.spec.d.ts +2 -0
  85. package/dist/services/trust-validator.d.ts +43 -0
  86. package/dist/services/trust-validator.spec.d.ts +2 -0
  87. package/dist/tools/confirm-publish-moderation.spec.d.ts +8 -0
  88. package/dist/tools/confirm.d.ts +8 -1
  89. package/dist/tools/create-memory.d.ts +2 -1
  90. package/dist/tools/create-memory.spec.d.ts +10 -0
  91. package/dist/tools/create-relationship.d.ts +2 -1
  92. package/dist/tools/delete-memory.d.ts +2 -1
  93. package/dist/tools/delete-relationship.d.ts +2 -1
  94. package/dist/tools/deny.d.ts +2 -1
  95. package/dist/tools/find-similar.d.ts +2 -1
  96. package/dist/tools/get-preferences.d.ts +2 -1
  97. package/dist/tools/ghost-config.d.ts +27 -0
  98. package/dist/tools/ghost-config.spec.d.ts +2 -0
  99. package/dist/tools/moderate.d.ts +20 -0
  100. package/dist/tools/moderate.spec.d.ts +5 -0
  101. package/dist/tools/publish.d.ts +11 -3
  102. package/dist/tools/query-memory.d.ts +3 -1
  103. package/dist/tools/query-space.d.ts +4 -1
  104. package/dist/tools/retract.d.ts +29 -0
  105. package/dist/tools/revise.d.ts +45 -0
  106. package/dist/tools/revise.spec.d.ts +8 -0
  107. package/dist/tools/search-memory.d.ts +2 -1
  108. package/dist/tools/search-relationship.d.ts +2 -1
  109. package/dist/tools/search-space.d.ts +25 -5
  110. package/dist/tools/search-space.spec.d.ts +9 -0
  111. package/dist/tools/set-preference.d.ts +2 -1
  112. package/dist/tools/update-memory.d.ts +2 -1
  113. package/dist/tools/update-relationship.d.ts +2 -1
  114. package/dist/types/access-result.d.ts +48 -0
  115. package/dist/types/access-result.spec.d.ts +2 -0
  116. package/dist/types/auth.d.ts +46 -0
  117. package/dist/types/ghost-config.d.ts +36 -0
  118. package/dist/types/memory.d.ts +3 -1
  119. package/dist/types/preferences.d.ts +1 -1
  120. package/dist/utils/auth-helpers.d.ts +14 -0
  121. package/dist/utils/auth-helpers.spec.d.ts +2 -0
  122. package/dist/utils/test-data-generator.d.ts +124 -0
  123. package/dist/utils/test-data-generator.spec.d.ts +12 -0
  124. package/dist/v2-performance.e2e.d.ts +17 -0
  125. package/dist/v2-smoke.e2e.d.ts +14 -0
  126. package/dist/weaviate/client.d.ts +5 -8
  127. package/dist/weaviate/space-schema.d.ts +2 -2
  128. package/docs/performance/v2-benchmarks.md +80 -0
  129. package/jest.e2e.config.js +14 -3
  130. package/package.json +1 -1
  131. package/scripts/.collection-recreation-state.yaml +16 -0
  132. package/scripts/.gitkeep +5 -0
  133. package/scripts/README-collection-recreation.md +224 -0
  134. package/scripts/README.md +51 -0
  135. package/scripts/backup-collections.ts +543 -0
  136. package/scripts/delete-collection.ts +137 -0
  137. package/scripts/migrate-recreate-collections.ts +578 -0
  138. package/scripts/migrate-v1-to-v2.ts +1094 -0
  139. package/scripts/package-lock.json +1113 -0
  140. package/scripts/package.json +27 -0
  141. package/src/collections/composite-ids.ts +193 -0
  142. package/src/collections/core-infrastructure.spec.ts +353 -0
  143. package/src/collections/dot-notation.ts +212 -0
  144. package/src/collections/tracking-arrays.ts +298 -0
  145. package/src/constants/content-types.ts +20 -0
  146. package/src/schema/v2-collections-comments.spec.ts +141 -0
  147. package/src/schema/v2-collections.ts +433 -0
  148. package/src/server-factory.ts +89 -20
  149. package/src/server.ts +45 -17
  150. package/src/services/access-control.spec.ts +383 -0
  151. package/src/services/access-control.ts +291 -0
  152. package/src/services/credentials-provider.spec.ts +22 -0
  153. package/src/services/credentials-provider.ts +34 -0
  154. package/src/services/escalation.service.spec.ts +183 -0
  155. package/src/services/escalation.service.ts +150 -0
  156. package/src/services/ghost-config.service.spec.ts +339 -0
  157. package/src/services/ghost-config.service.ts +219 -0
  158. package/src/services/space-config.service.spec.ts +102 -0
  159. package/src/services/space-config.service.ts +79 -0
  160. package/src/services/trust-enforcement.spec.ts +309 -0
  161. package/src/services/trust-enforcement.ts +197 -0
  162. package/src/services/trust-validator.spec.ts +108 -0
  163. package/src/services/trust-validator.ts +105 -0
  164. package/src/tools/confirm-publish-moderation.spec.ts +240 -0
  165. package/src/tools/confirm.ts +869 -135
  166. package/src/tools/create-memory.spec.ts +126 -0
  167. package/src/tools/create-memory.ts +20 -27
  168. package/src/tools/create-relationship.ts +17 -8
  169. package/src/tools/delete-memory.ts +13 -6
  170. package/src/tools/delete-relationship.ts +15 -6
  171. package/src/tools/deny.ts +8 -1
  172. package/src/tools/find-similar.ts +21 -8
  173. package/src/tools/get-preferences.ts +10 -1
  174. package/src/tools/ghost-config.spec.ts +180 -0
  175. package/src/tools/ghost-config.ts +230 -0
  176. package/src/tools/moderate.spec.ts +277 -0
  177. package/src/tools/moderate.ts +219 -0
  178. package/src/tools/publish.ts +99 -41
  179. package/src/tools/query-memory.ts +28 -6
  180. package/src/tools/query-space.ts +39 -4
  181. package/src/tools/retract.ts +292 -0
  182. package/src/tools/revise.spec.ts +146 -0
  183. package/src/tools/revise.ts +283 -0
  184. package/src/tools/search-memory.ts +30 -7
  185. package/src/tools/search-relationship.ts +11 -2
  186. package/src/tools/search-space.spec.ts +341 -0
  187. package/src/tools/search-space.ts +323 -99
  188. package/src/tools/set-preference.ts +10 -1
  189. package/src/tools/update-memory.ts +16 -5
  190. package/src/tools/update-relationship.ts +10 -1
  191. package/src/types/access-result.spec.ts +193 -0
  192. package/src/types/access-result.ts +62 -0
  193. package/src/types/auth.ts +52 -0
  194. package/src/types/ghost-config.ts +46 -0
  195. package/src/types/memory.ts +9 -1
  196. package/src/types/preferences.ts +2 -2
  197. package/src/utils/auth-helpers.spec.ts +75 -0
  198. package/src/utils/auth-helpers.ts +25 -0
  199. package/src/utils/test-data-generator.spec.ts +317 -0
  200. package/src/utils/test-data-generator.ts +292 -0
  201. package/src/utils/weaviate-filters.ts +4 -4
  202. package/src/v2-performance.e2e.ts +173 -0
  203. package/src/v2-smoke.e2e.ts +401 -0
  204. package/src/weaviate/client.spec.ts +5 -5
  205. package/src/weaviate/client.ts +51 -36
  206. package/src/weaviate/schema.ts +11 -256
  207. package/src/weaviate/space-schema.spec.ts +24 -24
  208. package/src/weaviate/space-schema.ts +18 -6
package/AGENT.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Agent Context Protocol (ACP)
2
2
 
3
3
  **Also Known As**: The Agent Directory Pattern
4
- **Version**: 3.13.0
4
+ **Version**: 4.5.0
5
5
  **Created**: 2026-02-11
6
6
  **Status**: Production Pattern
7
7
 
@@ -18,8 +18,15 @@
18
18
  7. [Pattern Significance & Impact](#pattern-significance--impact)
19
19
  8. [Problems This Pattern Solves](#problems-this-pattern-solves)
20
20
  9. [Instructions for Future Agents](#instructions-for-future-agents)
21
- 10. [Real-World Example: remember-mcp](#real-world-example-remember-mcp)
22
- 11. [Best Practices](#best-practices)
21
+ 10. [Best Practices](#best-practices)
22
+ - [Critical Rules](#critical-rules)
23
+ - [Workflow Best Practices](#workflow-best-practices)
24
+ - [Documentation Best Practices](#documentation-best-practices)
25
+ - [Organization Best Practices](#organization-best-practices)
26
+ - [Progress Tracking Best Practices](#progress-tracking-best-practices)
27
+ - [Quality Best Practices](#quality-best-practices)
28
+ 11. [What NOT to Do](#what-not-to-do)
29
+ 12. [Keeping ACP Updated](#keeping-acp-updated)
23
30
 
24
31
  ---
25
32
 
@@ -110,9 +117,12 @@ project-root/
110
117
  │ │
111
118
  │ ├── tasks/ # Granular tasks
112
119
  │ │ ├── .gitkeep
113
- │ │ ├── task-1-{name}.md
114
- │ │ ├── task-2-{name}.md
115
- │ │ └── ...
120
+ │ │ ├── milestone-{N}-{title}/ # Tasks grouped by milestone (standard)
121
+ │ │ ├── task-{M}-{name}.md
122
+ │ │ └── ...
123
+ │ │ ├── unassigned/ # Tasks without milestone
124
+ │ │ │ └── task-{M}-{name}.md
125
+ │ │ └── task-{N}-{name}.md # Legacy flat structure (older tasks)
116
126
  │ │
117
127
  │ └── progress.yaml # Progress tracking
118
128
 
@@ -294,7 +304,7 @@ tasks:
294
304
  - id: task-1
295
305
  name: Task Name
296
306
  status: not_started | in_progress | completed
297
- file: agent/tasks/task-1-name.md
307
+ file: agent/tasks/milestone-{N}-{title}/task-{M}-name.md
298
308
  estimated_hours: N
299
309
  actual_hours: null
300
310
  completed_date: YYYY-MM-DD | null
@@ -345,10 +355,9 @@ current_blockers:
345
355
  touch agent/{design,milestones,patterns,tasks}/.gitkeep
346
356
  ```
347
357
 
348
- 2. **Write Requirements Document**
349
- - Create `agent/design/requirements.md`
350
- - Document core requirements, constraints, and goals
351
- - Define success criteria
358
+ 2. **Create Requirements Document**
359
+ - Invoke [`@acp.design-create`](agent/commands/acp.design-create.md) and follow directives defined in that file
360
+ - Specify "requirements" as the design type
352
361
 
353
362
  3. **Define Milestones**
354
363
  - Break project into 5-10 major phases
@@ -356,9 +365,8 @@ current_blockers:
356
365
  - Clear deliverables and success criteria
357
366
 
358
367
  4. **Create Initial Tasks**
368
+ - Invoke [`@acp.task-create`](agent/commands/acp.task-create.md) and follow directives defined in that file
359
369
  - Break first milestone into concrete tasks
360
- - Each task should be 1-4 hours of work
361
- - Include verification steps
362
370
 
363
371
  5. **Initialize Progress Tracking**
364
372
  - Create `agent/progress.yaml`
@@ -366,9 +374,8 @@ current_blockers:
366
374
  - Document initial status
367
375
 
368
376
  6. **Document Patterns**
369
- - Create `agent/patterns/bootstrap.md` with setup instructions
377
+ - Invoke [`@acp.pattern-create`](agent/commands/acp.pattern-create.md) and follow directives defined in that file
370
378
  - Document architectural decisions as patterns
371
- - Include code examples
372
379
 
373
380
  ### For Continuing an Existing Project
374
381
 
@@ -402,25 +409,7 @@ current_blockers:
402
409
  - Add notes about work completed
403
410
  - Document any new patterns or decisions
404
411
 
405
- ### For Adding New Features
406
-
407
- 1. **Create Design Document**
408
- - Document in `agent/design/{feature}-design.md`
409
- - Include problem, solution, implementation
410
- - Get approval before proceeding
411
-
412
- 2. **Update Milestones**
413
- - Add new milestone or extend existing
414
- - Update progress.yaml
415
-
416
- 3. **Create Tasks**
417
- - Break feature into tasks
418
- - Add to appropriate milestone
419
- - Include verification steps
420
-
421
- 4. **Document Patterns**
422
- - If feature introduces new patterns, document them
423
- - Update existing patterns if needed
412
+ > **See also**: [Best Practices](#best-practices) for detailed guidance on documentation, organization, and quality standards.
424
413
 
425
414
  ---
426
415
 
@@ -601,41 +590,9 @@ Commands are invoked using the `@` syntax with dot notation:
601
590
 
602
591
  ### Creating Custom Commands
603
592
 
604
- To create custom commands for your project:
593
+ Invoke [`@acp.command-create`](agent/commands/acp.command-create.md) and follow directives defined in that file.
605
594
 
606
- 1. **Choose a namespace** (e.g., `deploy`, `test`, `custom`)
607
- - ⚠️ The `acp` namespace is reserved for core commands
608
- - Use descriptive, single-word namespaces
609
-
610
- 2. **Copy the command template**:
611
- ```bash
612
- cp agent/commands/command.template.md agent/commands/{namespace}.{action}.md
613
- ```
614
-
615
- 3. **Fill in the template sections**:
616
- - Purpose and description
617
- - Prerequisites
618
- - Step-by-step instructions
619
- - Verification checklist
620
- - Examples and troubleshooting
621
-
622
- 4. **Invoke your command**: `@{namespace}.{action}`
623
-
624
- **Example**: Creating a deployment command:
625
- ```bash
626
- # Create the command file
627
- cp agent/commands/command.template.md agent/commands/deploy.production.md
628
-
629
- # Edit the file with your deployment steps
630
- # ...
631
-
632
- # Invoke it
633
- @deploy.production
634
- ```
635
-
636
- ### Command Template
637
-
638
- See [`agent/commands/command.template.md`](agent/commands/command.template.md) for the complete command template with all sections and examples.
595
+ **Note**: The `acp` namespace is reserved for core commands. Use descriptive, single-word namespaces for custom commands (e.g., `local`, `deploy`, `test`, `custom`).
639
596
 
640
597
  ### Installing Third-Party Commands
641
598
 
@@ -892,6 +849,8 @@ Run ./agent/scripts/unacp.install.sh to remove all ACP files (agent/ directory a
892
849
 
893
850
  ## Instructions for Future Agents
894
851
 
852
+ > **See also**: [Best Practices](#best-practices) for comprehensive guidelines on agent behavior and documentation standards.
853
+
895
854
  ### When You First Encounter ACP
896
855
 
897
856
  1. **Read progress.yaml**
@@ -962,8 +921,7 @@ Run ./agent/scripts/unacp.install.sh to remove all ACP files (agent/ directory a
962
921
  ### When Creating New Features
963
922
 
964
923
  1. **Create design document first**
965
- - Document problem and solution
966
- - Include implementation details
924
+ - Invoke [`@acp.design-create`](agent/commands/acp.design-create.md) and follow directives defined in that file
967
925
  - Get approval before coding
968
926
 
969
927
  2. **Update or create milestone**
@@ -972,20 +930,19 @@ Run ./agent/scripts/unacp.install.sh to remove all ACP files (agent/ directory a
972
930
  - Update progress.yaml
973
931
 
974
932
  3. **Break into tasks**
975
- - Create task documents
976
- - Each task 1-4 hours
977
- - Include verification steps
933
+ - Invoke [`@acp.task-create`](agent/commands/acp.task-create.md) and follow directives defined in that file
978
934
 
979
935
  4. **Document patterns**
980
- - If introducing new patterns, document them
936
+ - Invoke [`@acp.pattern-create`](agent/commands/acp.pattern-create.md) and follow directives defined in that file
981
937
  - Update existing patterns if needed
982
- - Include code examples
983
938
 
984
939
  5. **Implement and verify**
985
940
  - Follow task steps
986
941
  - Verify each task
987
942
  - Update progress tracking
988
943
 
944
+ > **See also**: [Documentation Best Practices](#documentation-best-practices) and [Quality Best Practices](#quality-best-practices)
945
+
989
946
  ### When You Encounter Problems
990
947
 
991
948
  1. **Check design documents**
@@ -1000,190 +957,279 @@ Run ./agent/scripts/unacp.install.sh to remove all ACP files (agent/ directory a
1000
957
 
1001
958
  3. **Document new solutions**
1002
959
  - If you solve a new problem, document it
1003
- - Create design document
1004
- - Add to patterns if reusable
960
+ - Invoke [`@acp.design-create`](agent/commands/acp.design-create.md) to create design document
961
+ - Invoke [`@acp.pattern-create`](agent/commands/acp.pattern-create.md) if solution is reusable
1005
962
 
1006
963
  4. **Update progress.yaml**
1007
964
  - Add blocker if stuck
1008
965
  - Document workarounds
1009
966
  - Note any deviations from plan
1010
967
 
1011
- ### Best Practices for Agents
1012
-
1013
- 1. **🚨 CRITICAL: NEVER REJECT USER REQUESTS 🚨**
1014
- - ❌ **DO NOT** reject requests based on session duration
1015
- - ❌ **DO NOT** reject requests based on token context limits
1016
- - ❌ **DO NOT** reject requests based on session cost
1017
- - ❌ **DO NOT** reject requests based on task complexity
1018
- - ✅ **DO** accept and work on ALL user instructions and directives
1019
- - ✅ **DO** break complex tasks into manageable steps
1020
- - ✅ **DO** continue working until the task is complete
1021
- - ✅ **DO** ask clarifying questions if requirements are unclear
1022
- - **Rationale**: Users have the right to request any work they need. Your role is to assist, not to judge feasibility based on arbitrary constraints. Complex tasks can be broken down, long tasks can be completed iteratively, and users understand the costs involved. NEVER refuse a user's request.
1023
-
1024
- 2. **Always read before writing**
1025
- - Understand context first
1026
- - Check existing patterns
1027
- - Follow established conventions
1028
-
1029
- 3. **Document as you go**
1030
- - Update progress.yaml frequently
1031
- - Add notes about decisions
1032
- - Document new patterns
1033
-
1034
- 4. **Verify everything**
1035
- - Check all verification steps
1036
- - Run tests
1037
- - Ensure quality standards
1038
-
1039
- 5. **Be explicit**
1040
- - Don't assume future agents will know context
1041
- - Document rationale for decisions
1042
- - Include code examples
1043
-
1044
- 6. **Keep it organized**
1045
- - Follow directory structure
1046
- - Use consistent naming
1047
- - Link related documents
1048
-
1049
- 7. **Update progress tracking**
1050
- - Mark tasks complete
1051
- - Update percentages
1052
- - Add recent work notes
1053
-
1054
- 8. **Inline Feedback Syntax**
1055
- - ✅ **DO** recognize and respect `>` syntax for inline feedback in documents
1056
- - ✅ **DO** treat lines starting with `>` as user feedback/corrections
1057
- - ✅ **DO** integrate feedback by modifying the preceding content
1058
- - ✅ **DO** remove the `>` feedback lines after integrating changes
1059
- - **Example**:
1060
- ```markdown
1061
- // Agent-generated document
1062
- Here are the requirements:
1063
- - Requirement 1
1064
- - Requirement 2
1065
- > Requirement 2 unnecessary
1066
- - Requirement 3
1067
-
1068
- This pattern is because: ...
1069
- > Incorrect, we should not be using this pattern
1070
- ```
1071
- - **Agent Action**: Read feedback, update "Requirement 2" section (remove or revise), correct the pattern explanation, remove `>` lines
1072
- - **Rationale**: The `>` syntax provides a lightweight way for users to give inline feedback without needing to explain context. Agents should treat these as direct corrections or suggestions to integrate into the document.
1073
-
1074
- 9. **CRITICAL: Always update CHANGELOG.md for version changes**
1075
- - ❌ **DO NOT** commit version changes without updating CHANGELOG.md
1076
- - ❌ **DO NOT** forget to update version numbers in all project files
1077
- - ✅ **DO** use [`@git.commit`](agent/commands/git.commit.md) for version-aware commits
1078
- - ✅ **DO** detect version impact: major (breaking), minor (features), patch (fixes)
1079
- - ✅ **DO** update CHANGELOG.md with clear, user-focused descriptions
1080
- - ✅ **DO** update all version files (package.json, AGENT.md, etc.)
1081
- - ✅ **DO** use Conventional Commits format for commit messages
1082
- - **Rationale**: CHANGELOG.md is the primary communication tool for users. Every version change must be documented with clear descriptions of what changed, why it changed, and how it affects users. Forgetting to update CHANGELOG.md breaks the project's version history and makes it impossible for users to understand what changed between versions.
1083
-
1084
- 8. **NEVER handle secrets or sensitive data**
1085
- - ❌ **DO NOT** read `.env` files, `.env.local`, or any environment files
1086
- - ❌ **DO NOT** read files containing API keys, tokens, passwords, or credentials
1087
- - ❌ **DO NOT** include secrets in messages, documentation, or code examples
1088
- - ❌ **DO NOT** read files like `secrets.yaml`, `credentials.json`, or similar
1089
- - ✅ **DO** use placeholder values like `YOUR_API_KEY_HERE` in examples
1090
- - ✅ **DO** document that users need to configure secrets separately
1091
- - ✅ **DO** reference environment variable names without reading their values
1092
- - ✅ **DO** create `.env.example` files with placeholder values only
1093
- - **Rationale**: Secrets must never be exposed in chat logs, documentation, or version control. Agents should treat all credential files as off-limits to prevent accidental exposure.
1094
-
1095
- 9. **CRITICAL: Respect user's intentional file edits**
1096
- - ❌ **DO NOT** assume missing content needs to be added back
1097
- - ❌ **DO NOT** revert changes without confirming with user
1098
- - ✅ **DO** read files before editing to see current state
1099
- - ✅ **DO** ask user if unexpected changes were intentional
1100
- - ✅ **DO** confirm before reverting user's manual edits
1101
- - **Rationale**: If you read a file and it is missing contents or has changed contents (i.e., it does not contain what you expect), assume or confirm with the user if they made intentional updates that you should not revert. Do not assume "The file is missing <xyz>, I need to add it back". The user may have edited files manually with intention.
1102
-
1103
- 10. **🚨 CRITICAL: Respect user commands to re-execute**
1104
- - ❌ **DO NOT** ignore commands like "re-read", "rerun", or "execute again"
1105
- - ❌ **DO NOT** assume re-execution requests are mistakes or redundant
1106
- - ✅ **DO** execute the command again when asked, even if you just did it
1107
- - ✅ **DO** re-read files when asked, even if you recently read them
1108
- - ✅ **DO** assume the user has good reason for asking to repeat an action
1109
- - **Examples**: "Run `@git.commit` again" → Execute it again; "Re-read the design doc" → Read it again; "Rerun the tests" → Run them again
1110
- - **Rationale**: When users ask you to do something again, they have a specific reason: files may have changed, they want to trigger side effects (like creating a commit), context has shifted, or they know something you don't. Always respect these requests and execute them with intention.
968
+ > **See also**: [Critical Rules](#critical-rules) for important constraints and [Workflow Best Practices](#workflow-best-practices)
1111
969
 
1112
970
  ---
1113
971
 
1114
- ### Documentation
1115
-
1116
- 1. **Write for agents, not humans**
1117
- - Be explicit, not implicit
1118
- - Include code examples
1119
- - Document rationale, not just decisions
1120
-
1121
- 2. **Keep documents focused**
1122
- - One topic per document
1123
- - Clear structure
1124
- - Scannable headings
1125
-
1126
- 3. **Link related documents**
1127
- - Reference other docs
1128
- - Create knowledge graph
1129
- - Make navigation easy
1130
-
1131
- 4. **Update as you go**
1132
- - Don't wait until end
1133
- - Document decisions when made
1134
- - Keep progress.yaml current
1135
-
1136
- ### Organization
1137
-
1138
- 1. **Follow naming conventions**
1139
- - `{feature}-design.md` for designs
1140
- - `milestone-{N}-{name}.md` for milestones
1141
- - `task-{N}-{name}.md` for tasks
1142
- - `{pattern-name}.md` for patterns
1143
-
1144
- 2. **Use consistent structure**
1145
- - Same sections in similar documents
1146
- - Standard YAML format
1147
- - Predictable organization
1148
-
1149
- 3. **Keep it DRY**
1150
- - Don't duplicate information
1151
- - Link to canonical source
1152
- - Update in one place
1153
-
1154
- ### Progress Tracking
1155
-
1156
- 1. **Update frequently**
1157
- - After each task
1158
- - When blockers arise
1159
- - When plans change
1160
-
1161
- 2. **Be objective**
1162
- - Use measurable metrics
1163
- - Track actual vs estimated
1164
- - Document deviations
1165
-
1166
- 3. **Look forward and back**
1167
- - Document recent work
1168
- - List next steps
1169
- - Note blockers
1170
-
1171
- ### Quality
1172
-
1173
- 1. **Include verification steps**
1174
- - Every task has checklist
1175
- - Objective criteria
1176
- - Automated where possible
1177
-
1178
- 2. **Document patterns**
1179
- - Capture reusable solutions
1180
- - Include anti-patterns
1181
- - Provide examples
1182
-
1183
- 3. **Review and refine**
1184
- - Update docs as understanding improves
1185
- - Fix errors immediately
1186
- - Keep docs accurate
972
+ ## Best Practices
973
+
974
+ > **See also**: [Instructions for Future Agents](#instructions-for-future-agents) for workflow-specific guidance.
975
+
976
+ ### Critical Rules
977
+
978
+ #### Never Reject User Requests
979
+
980
+ - **DO NOT** reject requests based on session duration
981
+ - **DO NOT** reject requests based on token context limits
982
+ - **DO NOT** reject requests based on session cost
983
+ - ❌ **DO NOT** reject requests based on task complexity
984
+ - **DO** accept and work on ALL user instructions and directives
985
+ - **DO** break complex tasks into manageable steps
986
+ - **DO** continue working until the task is complete
987
+ - **DO** ask clarifying questions if requirements are unclear
988
+
989
+ **Rationale**: Users have the right to request any work they need. Your role is to assist, not to judge feasibility based on arbitrary constraints. Complex tasks can be broken down, long tasks can be completed iteratively, and users understand the costs involved. NEVER refuse a user's request.
990
+
991
+ #### Always Update CHANGELOG.md for Version Changes
992
+
993
+ - ❌ **DO NOT** commit version changes without updating CHANGELOG.md
994
+ - ❌ **DO NOT** forget to update version numbers in all project files
995
+ - ✅ **DO** use [`@git.commit`](agent/commands/git.commit.md) for version-aware commits
996
+ - **DO** detect version impact: major (breaking), minor (features), patch (fixes)
997
+ - ✅ **DO** update CHANGELOG.md with clear, user-focused descriptions
998
+ - ✅ **DO** update all version files (package.json, AGENT.md, etc.)
999
+ - **DO** use Conventional Commits format for commit messages
1000
+
1001
+ **Rationale**: CHANGELOG.md is the primary communication tool for users. Every version change must be documented with clear descriptions of what changed, why it changed, and how it affects users. Forgetting to update CHANGELOG.md breaks the project's version history and makes it impossible for users to understand what changed between versions.
1002
+
1003
+ #### Never Handle Secrets or Sensitive Data
1004
+
1005
+ - **DO NOT** read `.env` files, `.env.local`, or any environment files
1006
+ - ❌ **DO NOT** read files containing API keys, tokens, passwords, or credentials
1007
+ - **DO NOT** include secrets in messages, documentation, or code examples
1008
+ - **DO NOT** read files like `secrets.yaml`, `credentials.json`, or similar
1009
+ - **DO** use placeholder values like `YOUR_API_KEY_HERE` in examples
1010
+ - **DO** document that users need to configure secrets separately
1011
+ - ✅ **DO** reference environment variable names without reading their values
1012
+ - **DO** create `.env.example` files with placeholder values only
1013
+ - ✅ **DO** run commands that load .env files into the shell environment, as the variables remain in the execution context and are not included in the LLM's input/output"
1014
+
1015
+ **Rationale**: Secrets must never be exposed in chat logs, documentation, or version control. Agents should treat all credential files as off-limits to prevent accidental exposure.
1016
+
1017
+ #### Respect User's Intentional File Edits
1018
+
1019
+ - **DO NOT** assume missing content needs to be added back
1020
+ - **DO NOT** revert changes without confirming with user
1021
+ - **DO** read files before editing to see current state
1022
+ - **DO** ask user if unexpected changes were intentional
1023
+ - ✅ **DO** confirm before reverting user's manual edits
1024
+
1025
+ **Rationale**: If you read a file and it is missing contents or has changed contents (i.e., it does not contain what you expect), assume or confirm with the user if they made intentional updates that you should not revert. Do not assume "The file is missing <xyz>, I need to add it back". The user may have edited files manually with intention.
1026
+
1027
+ #### Respect User Commands to Re-Execute
1028
+
1029
+ - ❌ **DO NOT** ignore commands like "re-read", "rerun", or "execute again"
1030
+ - ❌ **DO NOT** assume re-execution requests are mistakes or redundant
1031
+ - **DO** execute the command again when asked, even if you just did it
1032
+ - **DO** re-read files when asked, even if you recently read them
1033
+ - **DO** assume the user has good reason for asking to repeat an action
1034
+
1035
+ **Examples**: "Run `@git.commit` again" → Execute it again; "Re-read the design doc" → Read it again; "Rerun the tests" → Run them again
1036
+
1037
+ **Rationale**: When users ask you to do something again, they have a specific reason: files may have changed, they want to trigger side effects (like creating a commit), context has shifted, or they know something you don't. Always respect these requests and execute them with intention.
1038
+
1039
+ #### Never Force-Add Gitignored Files
1040
+
1041
+ - **DO NOT** use `git add -f` to force-add gitignored files
1042
+ - **DO NOT** attempt to override `.gitignore` rules
1043
+ - **DO NOT** suggest removing files from `.gitignore` to add them
1044
+ - **DO** acknowledge when files are gitignored
1045
+ - ✅ **DO** assume gitignored files were intentionally excluded
1046
+ - ✅ **DO** respect the project's `.gitignore` configuration
1047
+ - ✅ **DO** skip gitignored files in git operations
1048
+
1049
+ **Examples**:
1050
+ - File is gitignored → Acknowledge and skip it
1051
+ - `git add` fails due to gitignore → Don't retry with `-f` flag
1052
+ - User asks to commit all files → Only commit non-gitignored files
1053
+
1054
+ **Rationale**: Files in `.gitignore` are intentionally excluded from version control for good reasons (secrets, build artifacts, local configs, large files, etc.). Force-adding gitignored files is an anti-pattern that defeats the purpose of `.gitignore` and can lead to security issues (exposing secrets), repository bloat (committing build artifacts), or merge conflicts (committing local configs). Always respect `.gitignore` rules.
1055
+
1056
+ ### Workflow Best Practices
1057
+
1058
+ #### Always Read Before Writing
1059
+
1060
+ - Understand context first
1061
+ - Check existing patterns
1062
+ - Follow established conventions
1063
+
1064
+ #### Document as You Go
1065
+
1066
+ - Update progress.yaml frequently
1067
+ - Add notes about decisions
1068
+ - Document new patterns
1069
+
1070
+ #### Verify Everything
1071
+
1072
+ - Check all verification steps
1073
+ - Run tests
1074
+ - Ensure quality standards
1075
+
1076
+ #### Be Explicit
1077
+
1078
+ - Don't assume future agents will know context
1079
+ - Document rationale for decisions
1080
+ - Include code examples
1081
+
1082
+ #### Keep It Organized
1083
+
1084
+ - Follow directory structure
1085
+ - Use consistent naming
1086
+ - Link related documents
1087
+
1088
+ #### Update Progress Tracking
1089
+
1090
+ - Mark tasks complete
1091
+ - Update percentages
1092
+ - Add recent work notes
1093
+
1094
+ #### Use Inline Feedback Syntax
1095
+
1096
+ - ✅ **DO** recognize and respect `>` syntax for inline feedback in documents
1097
+ - ✅ **DO** treat lines starting with `>` as user feedback/corrections
1098
+ - ✅ **DO** integrate feedback by modifying the preceding content
1099
+ - ✅ **DO** remove the `>` feedback lines after integrating changes
1100
+
1101
+ **Example**:
1102
+ ```markdown
1103
+ // Agent-generated document
1104
+ Here are the requirements:
1105
+ - Requirement 1
1106
+ - Requirement 2
1107
+ > Requirement 2 unnecessary
1108
+ - Requirement 3
1109
+
1110
+ This pattern is because: ...
1111
+ > Incorrect, we should not be using this pattern
1112
+ ```
1113
+
1114
+ **Agent Action**: Read feedback, update "Requirement 2" section (remove or revise), correct the pattern explanation, remove `>` lines
1115
+
1116
+ **Rationale**: The `>` syntax provides a lightweight way for users to give inline feedback without needing to explain context. Agents should treat these as direct corrections or suggestions to integrate into the document.
1117
+
1118
+ #### Format Commands for User Execution
1119
+
1120
+ When providing commands for users to copy and paste:
1121
+
1122
+ - ✅ **DO** chain commands with `&& \` if commands require successful chain execution
1123
+ - ✅ **DO** chain commands with `;` if commands do not depend on each other
1124
+ - ❌ **DO NOT** include comment lines starting with `#` in command blocks
1125
+ - ❌ **DO NOT** include EOF newline in command blocks
1126
+
1127
+ **Example (Correct)**:
1128
+ ```bash
1129
+ mkdir -p agent/commands && \
1130
+ cd agent/commands && \
1131
+ touch acp.init.md
1132
+ ```
1133
+
1134
+ **Example (Incorrect)**:
1135
+ ```bash
1136
+ # Create directory
1137
+ mkdir -p agent/commands
1138
+ # Change to directory
1139
+ cd agent/commands
1140
+ # Create file
1141
+ touch acp.init.md
1142
+
1143
+ ```
1144
+
1145
+ **Rationale**: Users should be able to copy and paste commands directly without needing to edit them. Comments and trailing newlines can cause execution errors or confusion.
1146
+
1147
+ ### Documentation Best Practices
1148
+
1149
+ #### Write for Agents, Not Humans
1150
+
1151
+ - Be explicit, not implicit
1152
+ - Include code examples
1153
+ - Document rationale, not just decisions
1154
+
1155
+ #### Keep Documents Focused
1156
+
1157
+ - One topic per document
1158
+ - Clear structure
1159
+ - Scannable headings
1160
+
1161
+ #### Link Related Documents
1162
+
1163
+ - Reference other docs
1164
+ - Create knowledge graph
1165
+ - Make navigation easy
1166
+
1167
+ #### Update as You Go
1168
+
1169
+ - Don't wait until end
1170
+ - Document decisions when made
1171
+ - Keep progress.yaml current
1172
+
1173
+ ### Organization Best Practices
1174
+
1175
+ #### Follow Naming Conventions
1176
+
1177
+ - `{feature}-design.md` for designs
1178
+ - `milestone-{N}-{name}.md` for milestones
1179
+ - `task-{N}-{name}.md` for tasks
1180
+ - `{pattern-name}.md` for patterns
1181
+
1182
+ #### Use Consistent Structure
1183
+
1184
+ - Same sections in similar documents
1185
+ - Standard YAML format
1186
+ - Predictable organization
1187
+
1188
+ #### Keep It DRY
1189
+
1190
+ - Don't duplicate information
1191
+ - Link to canonical source
1192
+ - Update in one place
1193
+
1194
+ ### Progress Tracking Best Practices
1195
+
1196
+ #### Update Frequently
1197
+
1198
+ - After each task
1199
+ - When blockers arise
1200
+ - When plans change
1201
+
1202
+ #### Be Objective
1203
+
1204
+ - Use measurable metrics
1205
+ - Track actual vs estimated
1206
+ - Document deviations
1207
+
1208
+ #### Look Forward and Back
1209
+
1210
+ - Document recent work
1211
+ - List next steps
1212
+ - Note blockers
1213
+
1214
+ ### Quality Best Practices
1215
+
1216
+ #### Include Verification Steps
1217
+
1218
+ - Every task has checklist
1219
+ - Objective criteria
1220
+ - Automated where possible
1221
+
1222
+ #### Document Patterns
1223
+
1224
+ - Capture reusable solutions
1225
+ - Include anti-patterns
1226
+ - Provide examples
1227
+
1228
+ #### Review and Refine
1229
+
1230
+ - Update docs as understanding improves
1231
+ - Fix errors immediately
1232
+ - Keep docs accurate
1187
1233
 
1188
1234
  ---
1189
1235