@prmichaelsen/remember-mcp 3.15.4 → 3.15.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +363 -5
- package/CHANGELOG.md +7 -0
- package/agent/commands/acp.clarification-capture.md +386 -0
- package/agent/commands/acp.clarification-create.md +50 -0
- package/agent/commands/acp.command-create.md +60 -0
- package/agent/commands/acp.design-create.md +62 -0
- package/agent/commands/acp.design-reference.md +355 -0
- package/agent/commands/acp.index.md +423 -0
- package/agent/commands/acp.init.md +48 -0
- package/agent/commands/acp.package-create.md +1 -0
- package/agent/commands/acp.package-info.md +1 -0
- package/agent/commands/acp.package-install.md +19 -0
- package/agent/commands/acp.package-list.md +1 -0
- package/agent/commands/acp.package-publish.md +1 -0
- package/agent/commands/acp.package-remove.md +1 -0
- package/agent/commands/acp.package-search.md +1 -0
- package/agent/commands/acp.package-update.md +1 -0
- package/agent/commands/acp.package-validate.md +1 -0
- package/agent/commands/acp.pattern-create.md +60 -0
- package/agent/commands/acp.plan.md +25 -0
- package/agent/commands/acp.proceed.md +621 -75
- package/agent/commands/acp.project-create.md +3 -0
- package/agent/commands/acp.project-info.md +3 -0
- package/agent/commands/acp.project-list.md +3 -1
- package/agent/commands/acp.project-set.md +1 -0
- package/agent/commands/acp.project-update.md +14 -3
- package/agent/commands/acp.projects-restore.md +228 -0
- package/agent/commands/acp.projects-sync.md +347 -0
- package/agent/commands/acp.report.md +13 -0
- package/agent/commands/acp.resume.md +3 -1
- package/agent/commands/acp.sessions.md +301 -0
- package/agent/commands/acp.status.md +13 -0
- package/agent/commands/acp.sync.md +1 -0
- package/agent/commands/acp.task-create.md +105 -3
- package/agent/commands/acp.update.md +1 -0
- package/agent/commands/acp.validate.md +32 -2
- package/agent/commands/acp.version-check-for-updates.md +1 -0
- package/agent/commands/acp.version-check.md +1 -0
- package/agent/commands/acp.version-update.md +1 -0
- package/agent/commands/command.template.md +23 -0
- package/agent/commands/git.commit.md +1 -0
- package/agent/commands/git.init.md +1 -0
- package/agent/design/complete-tool-set.md +157 -233
- package/agent/design/design.template.md +18 -0
- package/agent/design/user-preferences.md +11 -7
- package/agent/milestones/milestone-19-new-search-ghost-tools.md +46 -0
- package/agent/package.template.yaml +50 -0
- package/agent/patterns/pattern.template.md +18 -0
- package/agent/progress.yaml +162 -6
- package/agent/scripts/acp.common.sh +258 -15
- package/agent/scripts/acp.install.sh +91 -4
- package/agent/scripts/acp.package-create.sh +0 -1
- package/agent/scripts/acp.package-info.sh +19 -1
- package/agent/scripts/acp.package-install-optimized.sh +1 -1
- package/agent/scripts/acp.package-install.sh +388 -38
- package/agent/scripts/acp.package-list.sh +52 -4
- package/agent/scripts/acp.package-remove.sh +77 -1
- package/agent/scripts/acp.package-search.sh +2 -2
- package/agent/scripts/acp.package-update.sh +91 -12
- package/agent/scripts/acp.package-validate.sh +136 -1
- package/agent/scripts/acp.project-info.sh +34 -11
- package/agent/scripts/acp.project-list.sh +4 -0
- package/agent/scripts/acp.project-update.sh +66 -19
- package/agent/scripts/acp.projects-restore.sh +170 -0
- package/agent/scripts/acp.projects-sync.sh +155 -0
- package/agent/scripts/acp.sessions.sh +725 -0
- package/agent/scripts/acp.version-update.sh +21 -3
- package/agent/scripts/acp.yaml-parser.sh +20 -6
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-203-create-search-by-tool.md +143 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-204-add-new-filters-existing-tools.md +77 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-205-add-feel-fields-create-update.md +137 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-206-add-byproperty-bysignificance-modes.md +135 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-207-add-emotional-composites-search-results.md +88 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-208-add-bybroad-byrandom-modes.md +115 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-209-create-ghost-memory-tools.md +192 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-210-create-get-core-tool.md +203 -0
- package/agent/tasks/milestone-19-new-search-ghost-tools/task-211-create-search-space-by-tool.md +182 -0
- package/agent/tasks/task-1-{title}.template.md +19 -0
- package/agent/tasks/unassigned/bug-report-remember-core-e2e-findings.md +99 -0
- package/dist/e2e-helpers.d.ts +26 -0
- package/dist/ghost-persona.e2e.d.ts +8 -0
- package/dist/memory-crud.e2e.d.ts +8 -0
- package/dist/preferences.e2e.d.ts +8 -0
- package/dist/relationships.e2e.d.ts +8 -0
- package/dist/search-modes.e2e.d.ts +8 -0
- package/dist/server-factory.js +1971 -94
- package/dist/server.js +1168 -45
- package/dist/shared-spaces.e2e.d.ts +8 -0
- package/dist/tools/create-ghost-memory.d.ts +70 -0
- package/dist/tools/create-memory.d.ts +175 -0
- package/dist/tools/get-core.d.ts +28 -0
- package/dist/tools/get-core.spec.d.ts +2 -0
- package/dist/tools/ghost-tools.spec.d.ts +2 -0
- package/dist/tools/query-ghost-memory.d.ts +34 -0
- package/dist/tools/query-memory.d.ts +4 -0
- package/dist/tools/search-by.d.ts +147 -0
- package/dist/tools/search-by.spec.d.ts +2 -0
- package/dist/tools/search-ghost-memory-by.d.ts +54 -0
- package/dist/tools/search-ghost-memory.d.ts +53 -0
- package/dist/tools/search-memory.d.ts +19 -0
- package/dist/tools/search-space-by.d.ts +78 -0
- package/dist/tools/search-space-by.spec.d.ts +2 -0
- package/dist/tools/search-space.d.ts +2 -0
- package/dist/tools/update-ghost-memory.d.ts +51 -0
- package/dist/tools/update-memory.d.ts +175 -0
- package/jest.e2e.config.js +11 -0
- package/package.json +2 -2
- package/src/e2e-helpers.ts +86 -0
- package/src/ghost-persona.e2e.ts +215 -0
- package/src/memory-crud.e2e.ts +203 -0
- package/src/preferences.e2e.ts +88 -0
- package/src/relationships.e2e.ts +156 -0
- package/src/search-modes.e2e.ts +184 -0
- package/src/server-factory.ts +56 -0
- package/src/shared-spaces.e2e.ts +204 -0
- package/src/tools/create-ghost-memory.ts +103 -0
- package/src/tools/create-memory.ts +45 -1
- package/src/tools/get-core.spec.ts +223 -0
- package/src/tools/get-core.ts +109 -0
- package/src/tools/ghost-tools.spec.ts +361 -0
- package/src/tools/query-ghost-memory.ts +63 -0
- package/src/tools/query-memory.ts +4 -0
- package/src/tools/search-by.spec.ts +325 -0
- package/src/tools/search-by.ts +298 -0
- package/src/tools/search-ghost-memory-by.ts +80 -0
- package/src/tools/search-ghost-memory.ts +73 -0
- package/src/tools/search-memory.ts +23 -0
- package/src/tools/search-space-by.spec.ts +289 -0
- package/src/tools/search-space-by.ts +173 -0
- package/src/tools/search-space.ts +20 -1
- package/src/tools/update-ghost-memory.ts +86 -0
- package/src/tools/update-memory.ts +45 -1
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**:
|
|
4
|
+
**Version**: 5.13.1
|
|
5
5
|
**Created**: 2026-02-11
|
|
6
6
|
**Status**: Production Pattern
|
|
7
7
|
|
|
@@ -17,16 +17,17 @@
|
|
|
17
17
|
6. [How to Use the Agent Pattern](#how-to-use-the-agent-pattern)
|
|
18
18
|
7. [Pattern Significance & Impact](#pattern-significance--impact)
|
|
19
19
|
8. [Problems This Pattern Solves](#problems-this-pattern-solves)
|
|
20
|
-
9. [
|
|
21
|
-
10. [
|
|
20
|
+
9. [Key File Index](#key-file-index)
|
|
21
|
+
10. [Instructions for Future Agents](#instructions-for-future-agents)
|
|
22
|
+
11. [Best Practices](#best-practices)
|
|
22
23
|
- [Critical Rules](#critical-rules)
|
|
23
24
|
- [Workflow Best Practices](#workflow-best-practices)
|
|
24
25
|
- [Documentation Best Practices](#documentation-best-practices)
|
|
25
26
|
- [Organization Best Practices](#organization-best-practices)
|
|
26
27
|
- [Progress Tracking Best Practices](#progress-tracking-best-practices)
|
|
27
28
|
- [Quality Best Practices](#quality-best-practices)
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
12. [What NOT to Do](#what-not-to-do)
|
|
30
|
+
13. [Keeping ACP Updated](#keeping-acp-updated)
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
@@ -124,6 +125,16 @@ project-root/
|
|
|
124
125
|
│ │ │ └── task-{M}-{name}.md
|
|
125
126
|
│ │ └── task-{N}-{name}.md # Legacy flat structure (older tasks)
|
|
126
127
|
│ │
|
|
128
|
+
│ ├── files/ # Template source files (in packages)
|
|
129
|
+
│ │ ├── config/ # Config templates
|
|
130
|
+
│ │ └── src/ # Source code templates
|
|
131
|
+
│ │
|
|
132
|
+
│ ├── index/ # Key file index
|
|
133
|
+
│ │ ├── .gitkeep
|
|
134
|
+
│ │ ├── local.main.yaml # Project's own key files
|
|
135
|
+
│ │ ├── local.main.template.yaml# Template with schema docs
|
|
136
|
+
│ │ └── {pkg}.main.yaml # Package-shipped indices
|
|
137
|
+
│ │
|
|
127
138
|
│ └── progress.yaml # Progress tracking
|
|
128
139
|
│
|
|
129
140
|
└── (project-specific files) # Your project structure
|
|
@@ -677,6 +688,123 @@ When working in any project, you can discover globally installed packages:
|
|
|
677
688
|
|
|
678
689
|
---
|
|
679
690
|
|
|
691
|
+
## Project Registry System
|
|
692
|
+
|
|
693
|
+
ACP supports a global project registry at `~/.acp/projects.yaml` that tracks all projects in the `~/.acp/projects/` workspace. This enables project discovery, context switching, and metadata management across your entire ACP workspace.
|
|
694
|
+
|
|
695
|
+
### Key Features
|
|
696
|
+
|
|
697
|
+
- **Project Discovery**: List all registered projects with filtering options
|
|
698
|
+
- **Context Switching**: Quickly switch between projects using `@acp.project-set`
|
|
699
|
+
- **Metadata Tracking**: Track project type, status, tags, and relationships
|
|
700
|
+
- **Automatic Registration**: Projects auto-register when created via `@acp.project-create`
|
|
701
|
+
- **Sync Discovery**: Find and register existing projects with `@acp.projects-sync`
|
|
702
|
+
|
|
703
|
+
### Commands
|
|
704
|
+
|
|
705
|
+
| Command | Description |
|
|
706
|
+
|---------|-------------|
|
|
707
|
+
| [`@acp.project-list`](agent/commands/acp.project-list.md) | List all registered projects with optional filtering |
|
|
708
|
+
| [`@acp.project-set`](agent/commands/acp.project-set.md) | Switch to a project (set as current) |
|
|
709
|
+
| [`@acp.project-info`](agent/commands/acp.project-info.md) | Show detailed project information |
|
|
710
|
+
| [`@acp.project-update`](agent/commands/acp.project-update.md) | Update project metadata |
|
|
711
|
+
| [`@acp.project-remove`](agent/commands/acp.project-remove.md) | Remove project from registry |
|
|
712
|
+
| [`@acp.projects-sync`](agent/commands/acp.projects-sync.md) | Discover and register existing projects |
|
|
713
|
+
|
|
714
|
+
### Registry Structure
|
|
715
|
+
|
|
716
|
+
The `~/.acp/projects.yaml` file tracks all registered projects:
|
|
717
|
+
|
|
718
|
+
```yaml
|
|
719
|
+
projects:
|
|
720
|
+
- name: my-project
|
|
721
|
+
path: /home/user/.acp/projects/my-project
|
|
722
|
+
type: library
|
|
723
|
+
status: in_progress
|
|
724
|
+
registered: 2026-02-23T10:00:00Z
|
|
725
|
+
last_accessed: 2026-02-26T15:30:00Z
|
|
726
|
+
tags:
|
|
727
|
+
- typescript
|
|
728
|
+
- npm
|
|
729
|
+
related_projects: []
|
|
730
|
+
description: My awesome project
|
|
731
|
+
|
|
732
|
+
current_project: my-project
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
### Example Workflow
|
|
736
|
+
|
|
737
|
+
```bash
|
|
738
|
+
# List all projects
|
|
739
|
+
@acp.project-list
|
|
740
|
+
|
|
741
|
+
# Switch to a specific project
|
|
742
|
+
@acp.project-set my-project
|
|
743
|
+
|
|
744
|
+
# View project details
|
|
745
|
+
@acp.project-info
|
|
746
|
+
|
|
747
|
+
# Update project metadata
|
|
748
|
+
@acp.project-update --tags "typescript,api,rest"
|
|
749
|
+
|
|
750
|
+
# Discover unregistered projects
|
|
751
|
+
@acp.projects-sync
|
|
752
|
+
|
|
753
|
+
# Remove a project from registry (keeps files)
|
|
754
|
+
@acp.project-remove old-project
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
### For Agents: How to Use the Registry
|
|
758
|
+
|
|
759
|
+
When working in any ACP project, you can:
|
|
760
|
+
|
|
761
|
+
1. **Check current project**: Read `~/.acp/projects.yaml` and find `current_project`
|
|
762
|
+
2. **List available projects**: Use `@acp.project-list` to see all projects
|
|
763
|
+
3. **Switch context**: Use `@acp.project-set <name>` to change projects
|
|
764
|
+
4. **Get project info**: Use `@acp.project-info` for detailed metadata
|
|
765
|
+
|
|
766
|
+
**Automatic Tracking**: The `@acp.init` command automatically reads the registry and reports the current project context.
|
|
767
|
+
|
|
768
|
+
---
|
|
769
|
+
|
|
770
|
+
## Sessions System
|
|
771
|
+
|
|
772
|
+
ACP supports global session tracking via `~/.acp/sessions.yaml` for awareness of concurrent agent work across projects. When multiple `claude` terminals run from a single IDE instance, sessions give each agent visibility into what other agents are doing.
|
|
773
|
+
|
|
774
|
+
This is an advisory-only visibility layer — no locking or coordination. Sessions are registered at `@acp.init` and deregistered at `@acp.report`, with automatic stale cleanup for crashed terminals.
|
|
775
|
+
|
|
776
|
+
### What sessions.yaml Tracks
|
|
777
|
+
|
|
778
|
+
Each session entry contains: session ID, project name, description, timestamps (started, last_activity), status (active/idle), current milestone and task, PID (for stale detection), terminal, and optional remote URL.
|
|
779
|
+
|
|
780
|
+
### Commands
|
|
781
|
+
|
|
782
|
+
| Command | Description |
|
|
783
|
+
|---------|-------------|
|
|
784
|
+
| [`@acp.sessions`](agent/commands/acp.sessions.md) | List, clean, deregister, or count sessions |
|
|
785
|
+
| `@acp.sessions list` | Show all active sessions |
|
|
786
|
+
| `@acp.sessions clean` | Remove stale sessions (dead PIDs, timeouts) |
|
|
787
|
+
| `@acp.sessions deregister` | End current session |
|
|
788
|
+
|
|
789
|
+
### Integration with Other Commands
|
|
790
|
+
|
|
791
|
+
| Command | Integration |
|
|
792
|
+
|---------|-------------|
|
|
793
|
+
| `@acp.init` | Registers session and displays active siblings |
|
|
794
|
+
| `@acp.status` | Shows session count ("Sessions: N active") |
|
|
795
|
+
| `@acp.report` | Deregisters session on completion |
|
|
796
|
+
|
|
797
|
+
All integrations are optional — if `acp.sessions.sh` is missing, commands skip the session step silently.
|
|
798
|
+
|
|
799
|
+
### Session Lifecycle
|
|
800
|
+
|
|
801
|
+
1. **Register**: `@acp.init` registers a session with project, PID, timestamps
|
|
802
|
+
2. **Heartbeat**: Activity updates via `acp.sessions.sh heartbeat`
|
|
803
|
+
3. **Deregister**: `@acp.report` ends the session, or manual via `@acp.sessions deregister`
|
|
804
|
+
4. **Stale Cleanup**: Dead PIDs removed immediately; inactive >2h removed; inactive >30m marked idle
|
|
805
|
+
|
|
806
|
+
---
|
|
807
|
+
|
|
680
808
|
## Experimental Features
|
|
681
809
|
|
|
682
810
|
ACP supports marking features as "experimental" to enable safe innovation without affecting stable installations.
|
|
@@ -754,6 +882,196 @@ Validation ensures consistency:
|
|
|
754
882
|
|
|
755
883
|
---
|
|
756
884
|
|
|
885
|
+
## Benchmark Suite
|
|
886
|
+
|
|
887
|
+
ACP includes an automated E2E benchmark system that compares project outcomes with and without ACP to generate quantitative success metrics.
|
|
888
|
+
|
|
889
|
+
### Quick Start
|
|
890
|
+
|
|
891
|
+
```bash
|
|
892
|
+
# Run all benchmarks (ACP vs baseline)
|
|
893
|
+
bash agent/benchmarks/runner/run-benchmark.sh
|
|
894
|
+
|
|
895
|
+
# Run a specific task
|
|
896
|
+
bash agent/benchmarks/runner/run-benchmark.sh --task complex-auth-system
|
|
897
|
+
|
|
898
|
+
# Run ACP mode only, 3 runs for statistical averaging
|
|
899
|
+
bash agent/benchmarks/runner/run-benchmark.sh --task medium-rest-api --acp-only --runs 3
|
|
900
|
+
|
|
901
|
+
# Serve HTML reports
|
|
902
|
+
bash agent/benchmarks/runner/serve-reports.sh
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
### Benchmark Tasks
|
|
906
|
+
|
|
907
|
+
| Task | Complexity | Steps | Description |
|
|
908
|
+
|------|-----------|-------|-------------|
|
|
909
|
+
| hello-world | simple | 1 | Basic script creation |
|
|
910
|
+
| simple-cli-tool | medium | 3 | CSV-to-JSON CLI tool |
|
|
911
|
+
| medium-rest-api | medium | 4 | Express CRUD API with refactoring |
|
|
912
|
+
| complex-auth-system | complex | 5 | JWT authentication system |
|
|
913
|
+
| legacy-refactor | complex | 6 | Refactor messy legacy app (seed-based) |
|
|
914
|
+
| order-pipeline | complex | 7 | Order system with event-driven pivot |
|
|
915
|
+
|
|
916
|
+
### How It Works
|
|
917
|
+
|
|
918
|
+
1. Each task runs in an isolated temp directory using `claude -p` (non-interactive mode)
|
|
919
|
+
2. Multi-turn conversations use `--resume` for step-by-step execution
|
|
920
|
+
3. ACP mode installs ACP and injects `@acp.plan` / `@acp.proceed` directives
|
|
921
|
+
4. After execution: automated verification checks + LLM evaluator (6-category rubric)
|
|
922
|
+
5. Reports generated in Markdown and HTML (with Chart.js radar charts)
|
|
923
|
+
|
|
924
|
+
### Key Files
|
|
925
|
+
|
|
926
|
+
- `agent/benchmarks/runner/run-benchmark.sh` — Main entry point
|
|
927
|
+
- `agent/benchmarks/runner/run-single.sh` — Single task/mode runner
|
|
928
|
+
- `agent/benchmarks/runner/verify.sh` — Verification functions per task
|
|
929
|
+
- `agent/benchmarks/runner/evaluator-prompt.md` — LLM evaluator rubric
|
|
930
|
+
- `agent/benchmarks/suite/` — Benchmark task definitions
|
|
931
|
+
- `agent/benchmarks/reports/` — Generated reports (gitignored)
|
|
932
|
+
- `.github/workflows/benchmark.yaml` — On-demand CI workflow
|
|
933
|
+
|
|
934
|
+
### Design Document
|
|
935
|
+
|
|
936
|
+
See [agent/design/local.benchmark-suite.md](agent/design/local.benchmark-suite.md) for the full design specification.
|
|
937
|
+
|
|
938
|
+
---
|
|
939
|
+
|
|
940
|
+
## Template Source Files
|
|
941
|
+
|
|
942
|
+
ACP packages can bundle template source files (code, configs, etc.) alongside patterns, commands, and designs. Templates are declared in the `contents.files` section of `package.yaml` and stored in the `agent/files/` directory of the package.
|
|
943
|
+
|
|
944
|
+
### Templates vs Other Content Types
|
|
945
|
+
|
|
946
|
+
| Type | Location | Purpose |
|
|
947
|
+
|------|----------|---------|
|
|
948
|
+
| Patterns | `agent/patterns/` | Documentation and guidance |
|
|
949
|
+
| Commands | `agent/commands/` | Agent directives |
|
|
950
|
+
| Designs | `agent/design/` | Architecture documentation |
|
|
951
|
+
| Scripts | `agent/scripts/` | Shell utilities |
|
|
952
|
+
| **Files** | **Project root (target paths)** | **Actual code and config files** |
|
|
953
|
+
|
|
954
|
+
### Installing Template Files
|
|
955
|
+
|
|
956
|
+
```bash
|
|
957
|
+
# Install all files (templates install to target paths)
|
|
958
|
+
@acp.package-install --repo <url>
|
|
959
|
+
|
|
960
|
+
# Install specific template files only
|
|
961
|
+
@acp.package-install --files config/tsconfig.json src/schemas/example.schema.ts --repo <url>
|
|
962
|
+
|
|
963
|
+
# Preview what would be installed
|
|
964
|
+
@acp.package-install --list --repo <url>
|
|
965
|
+
```
|
|
966
|
+
|
|
967
|
+
### Variable Substitution
|
|
968
|
+
|
|
969
|
+
Templates with `.template` extension can contain `{{VARIABLE}}` placeholders that are replaced during installation:
|
|
970
|
+
|
|
971
|
+
```json
|
|
972
|
+
{
|
|
973
|
+
"name": "{{PACKAGE_NAME}}",
|
|
974
|
+
"author": "{{AUTHOR_NAME}}"
|
|
975
|
+
}
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
Variables are declared in `package.yaml` and values are prompted during installation. Variable values are stored in the manifest for reproducible updates.
|
|
979
|
+
|
|
980
|
+
### Target Paths
|
|
981
|
+
|
|
982
|
+
Each file declares a `target` path in `package.yaml`:
|
|
983
|
+
- `target: ./` installs to project root
|
|
984
|
+
- `target: src/schemas/` installs to `src/schemas/` directory
|
|
985
|
+
- `.template` extension is stripped (e.g., `settings.json.template` becomes `settings.json`)
|
|
986
|
+
- Unsafe paths (`../`, absolute paths) are rejected
|
|
987
|
+
|
|
988
|
+
### Security Considerations
|
|
989
|
+
|
|
990
|
+
Templates install to project directories (not `agent/`):
|
|
991
|
+
- May overwrite existing files
|
|
992
|
+
- Always prompted before installation (unless `-y` flag)
|
|
993
|
+
- Target paths validated for safety
|
|
994
|
+
- Conflict detection warns about overwrites
|
|
995
|
+
- Use `--list` to preview before installing
|
|
996
|
+
|
|
997
|
+
### Package.yaml Declaration
|
|
998
|
+
|
|
999
|
+
```yaml
|
|
1000
|
+
contents:
|
|
1001
|
+
files:
|
|
1002
|
+
- name: config/tsconfig.json
|
|
1003
|
+
description: TypeScript configuration
|
|
1004
|
+
target: ./
|
|
1005
|
+
required: true
|
|
1006
|
+
|
|
1007
|
+
- name: config/settings.json.template
|
|
1008
|
+
description: Settings with variable substitution
|
|
1009
|
+
target: config/
|
|
1010
|
+
required: false
|
|
1011
|
+
variables:
|
|
1012
|
+
- PROJECT_NAME
|
|
1013
|
+
- AUTHOR_NAME
|
|
1014
|
+
```
|
|
1015
|
+
|
|
1016
|
+
---
|
|
1017
|
+
|
|
1018
|
+
## Key File Index
|
|
1019
|
+
|
|
1020
|
+
This project uses the ACP Key File Index system to ensure agents read critical files before making decisions. Key files are declared in `agent/index/` with weights and descriptions.
|
|
1021
|
+
|
|
1022
|
+
### How It Works
|
|
1023
|
+
|
|
1024
|
+
Index files in `agent/index/` declare which project files are critical. Each entry includes:
|
|
1025
|
+
- **path**: Path to the file (relative to project root)
|
|
1026
|
+
- **weight**: Priority from 0.0-1.0 (higher = more important)
|
|
1027
|
+
- **kind**: Type of file — `pattern`, `command`, `design`, or `requirements`
|
|
1028
|
+
- **description**: What the file contains
|
|
1029
|
+
- **rationale**: Why an agent must read it
|
|
1030
|
+
- **applies**: Comma-separated list of commands that should read this file (e.g. `acp.proceed, acp.plan`)
|
|
1031
|
+
|
|
1032
|
+
### Index File Naming
|
|
1033
|
+
|
|
1034
|
+
Files follow `{namespace}.{qualifier}.yaml` naming:
|
|
1035
|
+
- `local.main.yaml` — Project's own key files (highest precedence)
|
|
1036
|
+
- `{package}.main.yaml` — Package-shipped key files (installed via `@acp.package-install`)
|
|
1037
|
+
|
|
1038
|
+
### When Key Files Are Read
|
|
1039
|
+
|
|
1040
|
+
- **`@acp.init`**: Reads all key files with weight >= 0.8
|
|
1041
|
+
- **`@acp.proceed`**, **`@acp.plan`**: Read key files where `applies` includes the command name
|
|
1042
|
+
- **Creation commands** (`@acp.design-create`, etc.): Read key files where `applies` includes the command name
|
|
1043
|
+
- **After context compaction**: Re-read key files following [When Recovering from Context Loss](#when-recovering-from-context-loss)
|
|
1044
|
+
|
|
1045
|
+
### Managing the Index
|
|
1046
|
+
|
|
1047
|
+
Use `@acp.index` to manage entries:
|
|
1048
|
+
```
|
|
1049
|
+
@acp.index list # List all indexed key files
|
|
1050
|
+
@acp.index add <path> # Add a file to the index
|
|
1051
|
+
@acp.index remove <path> # Remove a file from the index
|
|
1052
|
+
@acp.index explore # Suggest files that should be indexed
|
|
1053
|
+
@acp.index show <path> # Show details for a specific entry
|
|
1054
|
+
```
|
|
1055
|
+
|
|
1056
|
+
### Weight Guidelines
|
|
1057
|
+
|
|
1058
|
+
| Weight | Use For |
|
|
1059
|
+
|--------|---------|
|
|
1060
|
+
| 0.9-1.0 | Requirements, critical design docs |
|
|
1061
|
+
| 0.7-0.8 | Important patterns, testing guides |
|
|
1062
|
+
| 0.5-0.6 | Useful references, conventions |
|
|
1063
|
+
| 0.3-0.4 | Package-shipped indices (convention) |
|
|
1064
|
+
|
|
1065
|
+
### Validation
|
|
1066
|
+
|
|
1067
|
+
Run `@acp.validate` to check index health: valid schema, existing paths, reasonable limits (recommended max 20 entries total, 10 per namespace).
|
|
1068
|
+
|
|
1069
|
+
### Design Document
|
|
1070
|
+
|
|
1071
|
+
See `agent/design/local.key-file-index-system.md` for the complete design specification.
|
|
1072
|
+
|
|
1073
|
+
---
|
|
1074
|
+
|
|
757
1075
|
## Sample Prompts for Using ACP
|
|
758
1076
|
|
|
759
1077
|
### Initialize Prompt
|
|
@@ -918,6 +1236,29 @@ Run ./agent/scripts/unacp.install.sh to remove all ACP files (agent/ directory a
|
|
|
918
1236
|
- Update milestone progress
|
|
919
1237
|
- Add notes about work done
|
|
920
1238
|
|
|
1239
|
+
### When Recovering from Context Loss
|
|
1240
|
+
|
|
1241
|
+
When your context is compacted, truncated, or you start a new session mid-task:
|
|
1242
|
+
|
|
1243
|
+
1. **Re-read `agent/index/` key files**
|
|
1244
|
+
- Scan `agent/index/` for `*.yaml` files (excluding `*.template.yaml`)
|
|
1245
|
+
- Read entries with weight >= 0.8 to restore critical context
|
|
1246
|
+
- Filter by `applies` field if you know which command you were executing
|
|
1247
|
+
|
|
1248
|
+
2. **Re-read `agent/progress.yaml`**
|
|
1249
|
+
- Identify current milestone and task
|
|
1250
|
+
- Check what was last completed
|
|
1251
|
+
|
|
1252
|
+
3. **Re-read the current task document**
|
|
1253
|
+
- Determine which step you were on
|
|
1254
|
+
- Review remaining verification items
|
|
1255
|
+
|
|
1256
|
+
4. **Offer scope control to the user**
|
|
1257
|
+
- Ask if they want full context reload or minimal recovery
|
|
1258
|
+
- Suggest relevant key files based on current work
|
|
1259
|
+
|
|
1260
|
+
This is equivalent to running `@acp.init` steps 2-2.8 followed by resuming the current task.
|
|
1261
|
+
|
|
921
1262
|
### When Creating New Features
|
|
922
1263
|
|
|
923
1264
|
1. **Create design document first**
|
|
@@ -1115,6 +1456,16 @@ This pattern is because: ...
|
|
|
1115
1456
|
|
|
1116
1457
|
**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
1458
|
|
|
1459
|
+
#### Use Direct Git Commits
|
|
1460
|
+
|
|
1461
|
+
When creating git commits, always use `git commit -m` directly:
|
|
1462
|
+
|
|
1463
|
+
- ✅ **DO** use `git commit -m "message"` to create commits
|
|
1464
|
+
- ❌ **DO NOT** use bash tools, subshells, or scripts to generate commits
|
|
1465
|
+
- ❌ **DO NOT** use heredocs, `echo`, or `cat` to construct commit messages
|
|
1466
|
+
|
|
1467
|
+
**Rationale**: Direct `git commit -m` is simpler, more transparent, and avoids escaping issues. The commit message should be authored directly, not piped through intermediate tools.
|
|
1468
|
+
|
|
1118
1469
|
#### Format Commands for User Execution
|
|
1119
1470
|
|
|
1120
1471
|
When providing commands for users to copy and paste:
|
|
@@ -1225,6 +1576,13 @@ touch acp.init.md
|
|
|
1225
1576
|
- Include anti-patterns
|
|
1226
1577
|
- Provide examples
|
|
1227
1578
|
|
|
1579
|
+
#### Documentation is a First-Class Deliverable
|
|
1580
|
+
|
|
1581
|
+
- README.md, architecture docs, and migration guides are deliverables equal to source code
|
|
1582
|
+
- A project with passing tests but missing required documentation is INCOMPLETE
|
|
1583
|
+
- Verify documentation files exist and contain required sections before marking tasks complete
|
|
1584
|
+
- Documentation tasks deserve the same rigor as implementation tasks
|
|
1585
|
+
|
|
1228
1586
|
#### Review and Refine
|
|
1229
1587
|
|
|
1230
1588
|
- Update docs as understanding improves
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.15.5] - 2026-03-07
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Add graph traversal guidance to `remember_search_memory` tool description — prompts LLM to use `include_relationships: true` for exploring a memory's connected knowledge
|
|
13
|
+
- Add graph traversal guidance to `remember_search_space` tool description — prompts LLM to use `remember_search_memory` to traverse the author's memory graph from space results
|
|
14
|
+
|
|
8
15
|
## [3.15.0] - 2026-03-06
|
|
9
16
|
|
|
10
17
|
### Fixed
|