@prmichaelsen/reddit-mcp 0.1.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.
- package/.claude/settings.local.json +23 -0
- package/.env.example +13 -0
- package/AGENT.md +1772 -0
- package/README.md +54 -0
- package/agent/commands/acp.clarification-capture.md +386 -0
- package/agent/commands/acp.clarification-create.md +432 -0
- package/agent/commands/acp.clarifications-research.md +326 -0
- package/agent/commands/acp.command-create.md +432 -0
- package/agent/commands/acp.design-create.md +286 -0
- package/agent/commands/acp.design-reference.md +355 -0
- package/agent/commands/acp.index.md +423 -0
- package/agent/commands/acp.init.md +546 -0
- package/agent/commands/acp.package-create.md +895 -0
- package/agent/commands/acp.package-info.md +212 -0
- package/agent/commands/acp.package-install.md +539 -0
- package/agent/commands/acp.package-list.md +280 -0
- package/agent/commands/acp.package-publish.md +541 -0
- package/agent/commands/acp.package-remove.md +293 -0
- package/agent/commands/acp.package-search.md +307 -0
- package/agent/commands/acp.package-update.md +361 -0
- package/agent/commands/acp.package-validate.md +540 -0
- package/agent/commands/acp.pattern-create.md +386 -0
- package/agent/commands/acp.plan.md +577 -0
- package/agent/commands/acp.proceed.md +882 -0
- package/agent/commands/acp.project-create.md +675 -0
- package/agent/commands/acp.project-info.md +312 -0
- package/agent/commands/acp.project-list.md +226 -0
- package/agent/commands/acp.project-remove.md +379 -0
- package/agent/commands/acp.project-set.md +227 -0
- package/agent/commands/acp.project-update.md +307 -0
- package/agent/commands/acp.projects-restore.md +228 -0
- package/agent/commands/acp.projects-sync.md +347 -0
- package/agent/commands/acp.report.md +407 -0
- package/agent/commands/acp.resume.md +239 -0
- package/agent/commands/acp.sessions.md +301 -0
- package/agent/commands/acp.status.md +293 -0
- package/agent/commands/acp.sync.md +364 -0
- package/agent/commands/acp.task-create.md +500 -0
- package/agent/commands/acp.update.md +302 -0
- package/agent/commands/acp.validate.md +466 -0
- package/agent/commands/acp.version-check-for-updates.md +276 -0
- package/agent/commands/acp.version-check.md +191 -0
- package/agent/commands/acp.version-update.md +289 -0
- package/agent/commands/command.template.md +339 -0
- package/agent/commands/git.commit.md +526 -0
- package/agent/commands/git.init.md +514 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/design.template.md +154 -0
- package/agent/design/requirements.md +332 -0
- package/agent/design/requirements.template.md +387 -0
- package/agent/index/.gitkeep +0 -0
- package/agent/index/local.main.template.yaml +37 -0
- package/agent/manifest.template.yaml +13 -0
- package/agent/manifest.yaml +61 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-foundation-listings-mvp.md +140 -0
- package/agent/milestones/milestone-1-{title}.template.md +206 -0
- package/agent/milestones/milestone-2-content-interaction.md +56 -0
- package/agent/milestones/milestone-3-users-and-messaging.md +54 -0
- package/agent/milestones/milestone-4-subreddits-and-flair.md +56 -0
- package/agent/milestones/milestone-5-moderation.md +53 -0
- package/agent/milestones/milestone-6-advanced-features-and-polish.md +56 -0
- package/agent/package.template.yaml +86 -0
- package/agent/patterns/.gitkeep +0 -0
- package/agent/patterns/bootstrap.template.md +1237 -0
- package/agent/patterns/pattern.template.md +382 -0
- package/agent/progress.template.yaml +161 -0
- package/agent/progress.yaml +223 -0
- package/agent/schemas/package.schema.yaml +276 -0
- package/agent/scripts/acp.common.sh +1781 -0
- package/agent/scripts/acp.yaml-parser.sh +985 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-1-project-scaffolding.md +75 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-2-reddit-oauth.md +71 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-3-reddit-api-client.md +71 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-4-listing-tools.md +65 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-5-search-tools.md +43 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-6-testing-verification.md +49 -0
- package/agent/tasks/milestone-2-content-interaction/task-7-post-tools.md +56 -0
- package/agent/tasks/milestone-2-content-interaction/task-8-comment-tools.md +49 -0
- package/agent/tasks/milestone-2-content-interaction/task-9-vote-save-report-tools.md +50 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-10-account-tools.md +44 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-11-user-profile-tools.md +50 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-12-private-message-tools.md +50 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-13-subreddit-tools.md +47 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-14-flair-tools.md +46 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-15-http-transport.md +53 -0
- package/agent/tasks/milestone-5-moderation/task-16-mod-action-tools.md +48 -0
- package/agent/tasks/milestone-5-moderation/task-17-mod-listing-tools.md +47 -0
- package/agent/tasks/milestone-5-moderation/task-18-mod-management-tools.md +42 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-19-multireddit-tools.md +49 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-20-wiki-tools.md +47 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-21-documentation-polish.md +65 -0
- package/agent/tasks/task-1-{title}.template.md +244 -0
- package/dist/auth/oauth.d.ts +15 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/client/reddit.d.ts +28 -0
- package/dist/client/reddit.d.ts.map +1 -0
- package/dist/factory.d.ts +2 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +30394 -0
- package/dist/factory.js.map +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31955 -0
- package/dist/index.js.map +7 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +30401 -0
- package/dist/server.js.map +7 -0
- package/dist/tools/listings.d.ts +4 -0
- package/dist/tools/listings.d.ts.map +1 -0
- package/dist/tools/search.d.ts +4 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/transport/http.d.ts +7 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/types/index.d.ts +78 -0
- package/dist/types/index.d.ts.map +1 -0
- package/esbuild.build.js +21 -0
- package/jest.config.js +18 -0
- package/package.json +46 -0
- package/src/auth/oauth.ts +200 -0
- package/src/client/reddit.ts +245 -0
- package/src/factory.ts +5 -0
- package/src/index.ts +31 -0
- package/src/server.ts +36 -0
- package/src/tools/listings.ts +202 -0
- package/src/tools/search.ts +85 -0
- package/src/transport/http.ts +49 -0
- package/src/types/index.ts +83 -0
- package/tests/fixtures/reddit-responses.ts +132 -0
- package/tests/helpers/mock-client.ts +36 -0
- package/tests/unit/auth.test.ts +89 -0
- package/tests/unit/client.test.ts +218 -0
- package/tests/unit/listings.test.ts +113 -0
- package/tests/unit/search.test.ts +59 -0
- package/tests/unit/server.test.ts +14 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
# Command: index
|
|
2
|
+
|
|
3
|
+
> **🤖 Agent Directive**: If you are reading this file, the command `@acp-index` has been invoked. Follow the steps below to execute this command.
|
|
4
|
+
> Pretend this command was entered with this additional context: "Execute directive `@acp-index` 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
|
+
**Namespace**: acp
|
|
8
|
+
**Version**: 1.0.0
|
|
9
|
+
**Created**: 2026-03-02
|
|
10
|
+
**Last Updated**: 2026-03-02
|
|
11
|
+
**Status**: Active
|
|
12
|
+
**Scripts**: None
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
**Purpose**: Manage the key file index — list, add, remove, explore, and show indexed key files
|
|
17
|
+
**Category**: Maintenance
|
|
18
|
+
**Frequency**: As Needed
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
This command supports both CLI-style subcommands and natural language arguments.
|
|
25
|
+
|
|
26
|
+
### Subcommands
|
|
27
|
+
|
|
28
|
+
| Subcommand | Description |
|
|
29
|
+
|------------|-------------|
|
|
30
|
+
| (none) / `list` | List all indexed key files (default) |
|
|
31
|
+
| `add <path>` | Add a file to `agent/index/local.main.yaml` |
|
|
32
|
+
| `remove <path>` | Remove a file from `agent/index/local.main.yaml` |
|
|
33
|
+
| `explore` | Scan codebase and suggest key files to add |
|
|
34
|
+
| `show` | Show full metadata for all entries |
|
|
35
|
+
|
|
36
|
+
### Natural Language (Fuzzy Matching)
|
|
37
|
+
|
|
38
|
+
| Example | Detected Subcommand |
|
|
39
|
+
|---------|---------------------|
|
|
40
|
+
| `@acp.index` | list |
|
|
41
|
+
| `@acp.index show all files` | show |
|
|
42
|
+
| `@acp.index add the testing pattern` | add (infer path from "testing pattern") |
|
|
43
|
+
| `@acp.index remove requirements.md` | remove |
|
|
44
|
+
| `@acp.index what should I add?` | explore |
|
|
45
|
+
| `@acp.index suggest key files` | explore |
|
|
46
|
+
|
|
47
|
+
**Matching rules**:
|
|
48
|
+
- Look for keywords: `add`, `remove`, `delete`, `explore`, `suggest`, `scan`, `show`, `detail`, `list`
|
|
49
|
+
- If a path is provided after `add`/`remove`, use it directly
|
|
50
|
+
- If a description is given instead of path (e.g., "the testing pattern"), search the codebase for matching files
|
|
51
|
+
- Default to `list` if no subcommand detected
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## What This Command Does
|
|
56
|
+
|
|
57
|
+
This command manages the ACP Key File Index system. The key file index is a weighted list of critical project files stored in `agent/index/` that agents must read before taking action. This command provides a convenient interface for viewing, adding, removing, and discovering index entries without manually editing YAML.
|
|
58
|
+
|
|
59
|
+
Use this when you want to see what files are indexed, add newly created files, remove stale entries, or discover files that should be indexed based on codebase analysis.
|
|
60
|
+
|
|
61
|
+
See also: `agent/design/local.key-file-index-system.md`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Prerequisites
|
|
66
|
+
|
|
67
|
+
- [ ] ACP installed in project
|
|
68
|
+
- [ ] `agent/index/` directory exists (created by `acp.install.sh` or Task 99)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Steps
|
|
73
|
+
|
|
74
|
+
### 1. Check Index Directory
|
|
75
|
+
|
|
76
|
+
**Actions**:
|
|
77
|
+
- Check if `agent/index/` directory exists
|
|
78
|
+
- If not: warn user and suggest running `mkdir -p agent/index`
|
|
79
|
+
- List all `*.yaml` files (excluding `*.template.yaml`)
|
|
80
|
+
|
|
81
|
+
**Expected Outcome**: Index directory confirmed, files discovered
|
|
82
|
+
|
|
83
|
+
### 2. Parse Arguments
|
|
84
|
+
|
|
85
|
+
**Actions**:
|
|
86
|
+
- Detect subcommand from flags or natural language (see Arguments section)
|
|
87
|
+
- If ambiguous, default to `list`
|
|
88
|
+
- If `add`/`remove` with natural language path description, search codebase to resolve to actual path
|
|
89
|
+
|
|
90
|
+
**Expected Outcome**: Subcommand and arguments determined
|
|
91
|
+
|
|
92
|
+
### 3. Execute Subcommand
|
|
93
|
+
|
|
94
|
+
Branch to the appropriate subcommand handler below.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Subcommand: `list` (Default)
|
|
99
|
+
|
|
100
|
+
List all indexed key files across all namespaces in a compact table.
|
|
101
|
+
|
|
102
|
+
**Actions**:
|
|
103
|
+
- Parse all index YAML files in `agent/index/`
|
|
104
|
+
- Group entries by namespace
|
|
105
|
+
- Sort within each namespace by weight descending
|
|
106
|
+
|
|
107
|
+
**Display format**:
|
|
108
|
+
```
|
|
109
|
+
📑 Key File Index (7 entries across 2 namespaces)
|
|
110
|
+
|
|
111
|
+
local (4 entries):
|
|
112
|
+
1.0 requirements agent/design/requirements.md
|
|
113
|
+
0.8 pattern agent/patterns/local.e2e-testing.md
|
|
114
|
+
0.7 design agent/design/local.architecture.md
|
|
115
|
+
0.6 design src/core/state-machine.ts
|
|
116
|
+
|
|
117
|
+
core-sdk (3 entries):
|
|
118
|
+
0.5 pattern agent/patterns/core-sdk.service-base.md
|
|
119
|
+
0.4 pattern agent/patterns/core-sdk.testing-unit.md
|
|
120
|
+
0.3 design agent/design/core-sdk.architecture.md
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**If no index files found**:
|
|
124
|
+
```
|
|
125
|
+
📑 Key File Index: Empty
|
|
126
|
+
|
|
127
|
+
No index files found in agent/index/.
|
|
128
|
+
Run @acp.index explore to discover key files, or @acp.index add <path> to add one.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### Subcommand: `add <path>`
|
|
134
|
+
|
|
135
|
+
Add a file to `agent/index/local.main.yaml`.
|
|
136
|
+
|
|
137
|
+
**Actions**:
|
|
138
|
+
1. Validate the file exists at the given path
|
|
139
|
+
2. Check if it's already in any index file (warn if duplicate)
|
|
140
|
+
3. Prompt for required metadata:
|
|
141
|
+
- **weight** (suggest based on kind: 0.9 for requirements, 0.8 for patterns, 0.7 for designs)
|
|
142
|
+
- **kind** (pattern, command, design, requirements)
|
|
143
|
+
- **description** (what the file contains)
|
|
144
|
+
- **rationale** (why it should be in the index)
|
|
145
|
+
- **applies** (comma-separated fully qualified command names)
|
|
146
|
+
4. Append entry to `agent/index/local.main.yaml`
|
|
147
|
+
- If file doesn't exist, create it from `local.main.template.yaml`
|
|
148
|
+
5. Check recommended limits:
|
|
149
|
+
- Warn if local namespace exceeds 10 entries
|
|
150
|
+
- Warn if total across namespaces exceeds 20 entries
|
|
151
|
+
|
|
152
|
+
**Display on success**:
|
|
153
|
+
```
|
|
154
|
+
✅ Added to key file index:
|
|
155
|
+
|
|
156
|
+
path: agent/patterns/local.my-pattern.md
|
|
157
|
+
weight: 0.8
|
|
158
|
+
kind: pattern
|
|
159
|
+
applies: acp.proceed, acp.task-create
|
|
160
|
+
|
|
161
|
+
Local namespace: 5 entries (within limits)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Subcommand: `remove <path>`
|
|
167
|
+
|
|
168
|
+
Remove a file from `agent/index/local.main.yaml`.
|
|
169
|
+
|
|
170
|
+
**Actions**:
|
|
171
|
+
1. Find entry by path in `agent/index/local.main.yaml`
|
|
172
|
+
2. If not found: report error, suggest checking `@acp.index list`
|
|
173
|
+
3. If found: show the entry and confirm removal
|
|
174
|
+
4. Remove entry from YAML file
|
|
175
|
+
|
|
176
|
+
**Note**: Only entries in `local.*.yaml` can be removed via this command. Package index entries should be managed via package updates.
|
|
177
|
+
|
|
178
|
+
**Display on success**:
|
|
179
|
+
```
|
|
180
|
+
✅ Removed from key file index:
|
|
181
|
+
|
|
182
|
+
path: agent/patterns/local.old-pattern.md
|
|
183
|
+
was: weight 0.8, pattern
|
|
184
|
+
|
|
185
|
+
Local namespace: 3 entries remaining
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### Subcommand: `explore`
|
|
191
|
+
|
|
192
|
+
Scan the codebase and suggest files that should be indexed.
|
|
193
|
+
|
|
194
|
+
**Actions**:
|
|
195
|
+
1. List all files in `agent/design/` (excluding templates)
|
|
196
|
+
2. List all files in `agent/patterns/` (excluding templates)
|
|
197
|
+
3. Check for `requirements.md`, `architecture` design docs
|
|
198
|
+
4. Cross-reference with all existing index entries
|
|
199
|
+
5. Present un-indexed files as suggestions with recommended metadata
|
|
200
|
+
|
|
201
|
+
**Display format**:
|
|
202
|
+
```
|
|
203
|
+
🔍 Exploring codebase for key files...
|
|
204
|
+
|
|
205
|
+
Found 4 un-indexed files:
|
|
206
|
+
|
|
207
|
+
1. agent/design/requirements.md
|
|
208
|
+
Suggested: weight 1.0, kind: requirements
|
|
209
|
+
Applies: acp.init, acp.design-create, acp.task-create, acp.plan, acp.proceed
|
|
210
|
+
|
|
211
|
+
2. agent/patterns/local.library-services.md
|
|
212
|
+
Suggested: weight 0.7, kind: pattern
|
|
213
|
+
Applies: acp.proceed, acp.task-create
|
|
214
|
+
|
|
215
|
+
3. agent/design/yaml-parser-design.md
|
|
216
|
+
Suggested: weight 0.6, kind: design
|
|
217
|
+
Applies: acp.proceed
|
|
218
|
+
|
|
219
|
+
4. agent/design/acp-package-development-system.md
|
|
220
|
+
Suggested: weight 0.6, kind: design
|
|
221
|
+
Applies: acp.design-create, acp.plan
|
|
222
|
+
|
|
223
|
+
Would you like to add any of these? (enter numbers, "all", or "none")
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
If user selects entries:
|
|
227
|
+
- Prompt for confirmation/adjustment of suggested metadata
|
|
228
|
+
- Add selected entries to `agent/index/local.main.yaml`
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### Subcommand: `show`
|
|
233
|
+
|
|
234
|
+
Show full metadata for all index entries across all namespaces.
|
|
235
|
+
|
|
236
|
+
**Actions**:
|
|
237
|
+
- Parse all index YAML files
|
|
238
|
+
- Display every field for every entry
|
|
239
|
+
- Group by namespace and qualifier
|
|
240
|
+
|
|
241
|
+
**Display format**:
|
|
242
|
+
```
|
|
243
|
+
📑 Key File Index — Full Details
|
|
244
|
+
|
|
245
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
246
|
+
local.main.yaml (4 entries)
|
|
247
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
|
+
|
|
249
|
+
path: agent/design/acp-commands-design.md
|
|
250
|
+
weight: 0.9
|
|
251
|
+
kind: design
|
|
252
|
+
description: Core design document for the ACP command system.
|
|
253
|
+
rationale: Essential context for creating or modifying any ACP command.
|
|
254
|
+
applies: acp.command-create, acp.design-create, acp.plan
|
|
255
|
+
|
|
256
|
+
─────────────────────────────────────────
|
|
257
|
+
|
|
258
|
+
path: agent/patterns/local.e2e-testing.md
|
|
259
|
+
weight: 0.8
|
|
260
|
+
kind: pattern
|
|
261
|
+
description: E2E testing pattern used across all test suites.
|
|
262
|
+
rationale: Prevents agents from writing tests that don't follow conventions.
|
|
263
|
+
applies: acp.task-create, acp.proceed
|
|
264
|
+
|
|
265
|
+
[... more entries ...]
|
|
266
|
+
|
|
267
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
268
|
+
core-sdk.main.yaml (3 entries)
|
|
269
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
270
|
+
|
|
271
|
+
[... entries ...]
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Verification
|
|
277
|
+
|
|
278
|
+
- [ ] `agent/index/` directory checked
|
|
279
|
+
- [ ] Subcommand detected from arguments or NLP
|
|
280
|
+
- [ ] `list`: All entries displayed grouped by namespace
|
|
281
|
+
- [ ] `add`: File validated, metadata collected, entry appended, limits checked
|
|
282
|
+
- [ ] `remove`: Entry found, confirmed, removed from YAML
|
|
283
|
+
- [ ] `explore`: Un-indexed files discovered and presented with suggestions
|
|
284
|
+
- [ ] `show`: Full metadata displayed for all entries
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Expected Output
|
|
289
|
+
|
|
290
|
+
### Files Modified
|
|
291
|
+
- `agent/index/local.main.yaml` — Modified by `add` and `remove` subcommands
|
|
292
|
+
|
|
293
|
+
### Console Output
|
|
294
|
+
See display formats for each subcommand above.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Examples
|
|
299
|
+
|
|
300
|
+
### Example 1: Listing Indexed Files
|
|
301
|
+
|
|
302
|
+
**Context**: Want to see what's currently indexed
|
|
303
|
+
|
|
304
|
+
**Invocation**: `@acp.index`
|
|
305
|
+
|
|
306
|
+
**Result**: Displays compact table of all indexed files grouped by namespace
|
|
307
|
+
|
|
308
|
+
### Example 2: Adding a New Pattern
|
|
309
|
+
|
|
310
|
+
**Context**: Just created a new pattern and want to index it
|
|
311
|
+
|
|
312
|
+
**Invocation**: `@acp.index add agent/patterns/local.api-conventions.md`
|
|
313
|
+
|
|
314
|
+
**Result**: Prompts for weight/kind/description/rationale/applies, adds to local.main.yaml
|
|
315
|
+
|
|
316
|
+
### Example 3: Exploring for Missing Files
|
|
317
|
+
|
|
318
|
+
**Context**: Want to discover what files should be indexed
|
|
319
|
+
|
|
320
|
+
**Invocation**: `@acp.index explore`
|
|
321
|
+
|
|
322
|
+
**Result**: Scans agent/design/ and agent/patterns/, shows un-indexed files with suggestions
|
|
323
|
+
|
|
324
|
+
### Example 4: Natural Language Add
|
|
325
|
+
|
|
326
|
+
**Context**: Want to add a file using description instead of path
|
|
327
|
+
|
|
328
|
+
**Invocation**: `@acp.index add the e2e testing pattern`
|
|
329
|
+
|
|
330
|
+
**Result**: Agent searches for matching file, finds `agent/patterns/local.e2e-testing.md`, proceeds with add flow
|
|
331
|
+
|
|
332
|
+
### Example 5: Removing a Stale Entry
|
|
333
|
+
|
|
334
|
+
**Context**: A file was deleted but still in the index
|
|
335
|
+
|
|
336
|
+
**Invocation**: `@acp.index remove agent/design/old-feature.md`
|
|
337
|
+
|
|
338
|
+
**Result**: Finds entry, confirms removal, updates local.main.yaml
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Related Commands
|
|
343
|
+
|
|
344
|
+
- [`@acp.init`](acp.init.md) - Reads key files during initialization (step 2.8)
|
|
345
|
+
- [`@acp.proceed`](acp.proceed.md) - Reads contextual key files before task execution
|
|
346
|
+
- [`@acp.validate`](acp.validate.md) - Validates index file paths and schema
|
|
347
|
+
- [`@acp.design-create`](acp.design-create.md) - Prompts to add new designs to index
|
|
348
|
+
- [`@acp.pattern-create`](acp.pattern-create.md) - Prompts to add new patterns to index
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Troubleshooting
|
|
353
|
+
|
|
354
|
+
### Issue 1: No agent/index/ directory
|
|
355
|
+
|
|
356
|
+
**Symptom**: Warning "agent/index/ directory not found"
|
|
357
|
+
|
|
358
|
+
**Cause**: ACP installed before key file index system was available
|
|
359
|
+
|
|
360
|
+
**Solution**: Run `mkdir -p agent/index` to create the directory
|
|
361
|
+
|
|
362
|
+
### Issue 2: File not found when adding
|
|
363
|
+
|
|
364
|
+
**Symptom**: Error "File does not exist: <path>"
|
|
365
|
+
|
|
366
|
+
**Cause**: Path is incorrect or file was deleted
|
|
367
|
+
|
|
368
|
+
**Solution**: Verify the file path. Use `@acp.index explore` to discover files automatically.
|
|
369
|
+
|
|
370
|
+
### Issue 3: Cannot remove package index entry
|
|
371
|
+
|
|
372
|
+
**Symptom**: Error "Entry is in package index, not local"
|
|
373
|
+
|
|
374
|
+
**Cause**: Trying to remove an entry from a package-shipped index file
|
|
375
|
+
|
|
376
|
+
**Solution**: Package index entries are managed by the package. Use `@acp.package-update` or `@acp.package-remove` to modify package indices.
|
|
377
|
+
|
|
378
|
+
### Issue 4: Exceeding recommended limits
|
|
379
|
+
|
|
380
|
+
**Symptom**: Warning about too many entries
|
|
381
|
+
|
|
382
|
+
**Cause**: Index has more than 10 entries per namespace or 20 total
|
|
383
|
+
|
|
384
|
+
**Solution**: Review entries and remove lower-priority ones. The index should focus on truly critical files.
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Security Considerations
|
|
389
|
+
|
|
390
|
+
### File Access
|
|
391
|
+
- **Reads**: `agent/index/*.yaml`, `agent/design/*`, `agent/patterns/*`
|
|
392
|
+
- **Writes**: `agent/index/local.main.yaml` (add/remove operations)
|
|
393
|
+
- **Executes**: None
|
|
394
|
+
|
|
395
|
+
### Network Access
|
|
396
|
+
- **APIs**: None
|
|
397
|
+
- **Repositories**: None
|
|
398
|
+
|
|
399
|
+
### Sensitive Data
|
|
400
|
+
- **Secrets**: Never includes secrets in index entries
|
|
401
|
+
- **Credentials**: Does not access credentials
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Notes
|
|
406
|
+
|
|
407
|
+
- This is an LLM-based command — no shell scripts, the agent interprets and executes directly
|
|
408
|
+
- Only `local.*.yaml` files can be modified by this command; package indices are read-only
|
|
409
|
+
- The `explore` subcommand uses heuristics to suggest files, not exhaustive analysis
|
|
410
|
+
- Entries are YAML — the agent must maintain valid YAML when adding/removing
|
|
411
|
+
- Recommended limits are advisory, not enforced: 5-10 per namespace, 15-20 total
|
|
412
|
+
- The `applies` field should use fully qualified command names (e.g., `acp.init`, `core-sdk.bootstrap`)
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
**Namespace**: acp
|
|
417
|
+
**Command**: index
|
|
418
|
+
**Version**: 1.0.0
|
|
419
|
+
**Created**: 2026-03-02
|
|
420
|
+
**Last Updated**: 2026-03-02
|
|
421
|
+
**Status**: Active
|
|
422
|
+
**Compatibility**: ACP 5.10.0+
|
|
423
|
+
**Author**: ACP Project
|