@prmichaelsen/acp-visualizer 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.
Files changed (180) hide show
  1. package/README.md +68 -0
  2. package/agent/commands/acp.clarification-address.md +417 -0
  3. package/agent/commands/acp.clarification-capture.md +386 -0
  4. package/agent/commands/acp.clarification-create.md +437 -0
  5. package/agent/commands/acp.clarifications-research.md +326 -0
  6. package/agent/commands/acp.command-create.md +432 -0
  7. package/agent/commands/acp.design-create.md +286 -0
  8. package/agent/commands/acp.design-reference.md +355 -0
  9. package/agent/commands/acp.handoff.md +270 -0
  10. package/agent/commands/acp.index.md +423 -0
  11. package/agent/commands/acp.init.md +546 -0
  12. package/agent/commands/acp.package-create.md +895 -0
  13. package/agent/commands/acp.package-info.md +212 -0
  14. package/agent/commands/acp.package-install.md +539 -0
  15. package/agent/commands/acp.package-list.md +280 -0
  16. package/agent/commands/acp.package-publish.md +541 -0
  17. package/agent/commands/acp.package-remove.md +293 -0
  18. package/agent/commands/acp.package-search.md +307 -0
  19. package/agent/commands/acp.package-update.md +361 -0
  20. package/agent/commands/acp.package-validate.md +540 -0
  21. package/agent/commands/acp.pattern-create.md +386 -0
  22. package/agent/commands/acp.plan.md +587 -0
  23. package/agent/commands/acp.proceed.md +882 -0
  24. package/agent/commands/acp.project-create.md +675 -0
  25. package/agent/commands/acp.project-info.md +312 -0
  26. package/agent/commands/acp.project-list.md +226 -0
  27. package/agent/commands/acp.project-remove.md +379 -0
  28. package/agent/commands/acp.project-set.md +227 -0
  29. package/agent/commands/acp.project-update.md +307 -0
  30. package/agent/commands/acp.projects-restore.md +228 -0
  31. package/agent/commands/acp.projects-sync.md +347 -0
  32. package/agent/commands/acp.report.md +407 -0
  33. package/agent/commands/acp.resume.md +239 -0
  34. package/agent/commands/acp.sessions.md +301 -0
  35. package/agent/commands/acp.status.md +293 -0
  36. package/agent/commands/acp.sync.md +364 -0
  37. package/agent/commands/acp.task-create.md +500 -0
  38. package/agent/commands/acp.update.md +302 -0
  39. package/agent/commands/acp.validate.md +466 -0
  40. package/agent/commands/acp.version-check-for-updates.md +276 -0
  41. package/agent/commands/acp.version-check.md +191 -0
  42. package/agent/commands/acp.version-update.md +289 -0
  43. package/agent/commands/command.template.md +339 -0
  44. package/agent/commands/git.commit.md +526 -0
  45. package/agent/commands/git.init.md +514 -0
  46. package/agent/commands/tanstack-cloudflare.deploy.md +272 -0
  47. package/agent/commands/tanstack-cloudflare.tail.md +275 -0
  48. package/agent/design/.gitkeep +0 -0
  49. package/agent/design/design.template.md +154 -0
  50. package/agent/design/local.dashboard-layout-routing.md +288 -0
  51. package/agent/design/local.data-model-yaml-parsing.md +310 -0
  52. package/agent/design/local.search-filtering.md +331 -0
  53. package/agent/design/local.server-api-auto-refresh.md +235 -0
  54. package/agent/design/local.table-tree-views.md +299 -0
  55. package/agent/design/local.visualizer-requirements.md +349 -0
  56. package/agent/design/requirements.template.md +387 -0
  57. package/agent/index/.gitkeep +0 -0
  58. package/agent/index/acp.core.yaml +137 -0
  59. package/agent/index/local.main.template.yaml +37 -0
  60. package/agent/manifest.template.yaml +13 -0
  61. package/agent/manifest.yaml +302 -0
  62. package/agent/milestones/.gitkeep +0 -0
  63. package/agent/milestones/milestone-1-project-scaffold-data-pipeline.md +67 -0
  64. package/agent/milestones/milestone-1-{title}.template.md +206 -0
  65. package/agent/milestones/milestone-2-dashboard-views-interaction.md +79 -0
  66. package/agent/package.template.yaml +86 -0
  67. package/agent/patterns/.gitkeep +0 -0
  68. package/agent/patterns/bootstrap.template.md +1237 -0
  69. package/agent/patterns/pattern.template.md +382 -0
  70. package/agent/patterns/tanstack-cloudflare.acl-permissions.md +332 -0
  71. package/agent/patterns/tanstack-cloudflare.action-bar-item.md +416 -0
  72. package/agent/patterns/tanstack-cloudflare.api-route-handlers.md +401 -0
  73. package/agent/patterns/tanstack-cloudflare.auth-session-management.md +387 -0
  74. package/agent/patterns/tanstack-cloudflare.card-and-list.md +271 -0
  75. package/agent/patterns/tanstack-cloudflare.chat-engine.md +353 -0
  76. package/agent/patterns/tanstack-cloudflare.confirmation-tokens.md +346 -0
  77. package/agent/patterns/tanstack-cloudflare.durable-objects-websocket.md +516 -0
  78. package/agent/patterns/tanstack-cloudflare.email-service.md +431 -0
  79. package/agent/patterns/tanstack-cloudflare.expander.md +98 -0
  80. package/agent/patterns/tanstack-cloudflare.fcm-push.md +115 -0
  81. package/agent/patterns/tanstack-cloudflare.firebase-anonymous-sessions.md +441 -0
  82. package/agent/patterns/tanstack-cloudflare.firebase-auth.md +348 -0
  83. package/agent/patterns/tanstack-cloudflare.firebase-firestore.md +550 -0
  84. package/agent/patterns/tanstack-cloudflare.firebase-storage.md +369 -0
  85. package/agent/patterns/tanstack-cloudflare.form-controls.md +145 -0
  86. package/agent/patterns/tanstack-cloudflare.global-search-context.md +93 -0
  87. package/agent/patterns/tanstack-cloudflare.image-carousel.md +126 -0
  88. package/agent/patterns/tanstack-cloudflare.library-services.md +553 -0
  89. package/agent/patterns/tanstack-cloudflare.lightbox.md +169 -0
  90. package/agent/patterns/tanstack-cloudflare.markdown-content.md +115 -0
  91. package/agent/patterns/tanstack-cloudflare.mention-suggestions.md +98 -0
  92. package/agent/patterns/tanstack-cloudflare.modal.md +156 -0
  93. package/agent/patterns/tanstack-cloudflare.nextjs-to-tanstack-routing.md +461 -0
  94. package/agent/patterns/tanstack-cloudflare.notifications-engine.md +151 -0
  95. package/agent/patterns/tanstack-cloudflare.oauth-token-refresh.md +90 -0
  96. package/agent/patterns/tanstack-cloudflare.og-metadata.md +296 -0
  97. package/agent/patterns/tanstack-cloudflare.pagination.md +442 -0
  98. package/agent/patterns/tanstack-cloudflare.pill-input.md +220 -0
  99. package/agent/patterns/tanstack-cloudflare.provider-adapter.md +401 -0
  100. package/agent/patterns/tanstack-cloudflare.rate-limiting.md +323 -0
  101. package/agent/patterns/tanstack-cloudflare.scheduled-tasks.md +338 -0
  102. package/agent/patterns/tanstack-cloudflare.searchable-settings.md +375 -0
  103. package/agent/patterns/tanstack-cloudflare.slide-over.md +129 -0
  104. package/agent/patterns/tanstack-cloudflare.ssr-preload.md +571 -0
  105. package/agent/patterns/tanstack-cloudflare.third-party-api-integration.md +508 -0
  106. package/agent/patterns/tanstack-cloudflare.toast-system.md +142 -0
  107. package/agent/patterns/tanstack-cloudflare.unified-header.md +280 -0
  108. package/agent/patterns/tanstack-cloudflare.user-scoped-collections.md +628 -0
  109. package/agent/patterns/tanstack-cloudflare.websocket-manager.md +237 -0
  110. package/agent/patterns/tanstack-cloudflare.wrangler-configuration.md +358 -0
  111. package/agent/patterns/tanstack-cloudflare.zod-schema-validation.md +336 -0
  112. package/agent/progress.template.yaml +161 -0
  113. package/agent/progress.yaml +145 -0
  114. package/agent/schemas/package.schema.yaml +276 -0
  115. package/agent/scripts/acp.common.sh +1781 -0
  116. package/agent/scripts/acp.install.sh +333 -0
  117. package/agent/scripts/acp.package-create.sh +924 -0
  118. package/agent/scripts/acp.package-info.sh +288 -0
  119. package/agent/scripts/acp.package-install.sh +893 -0
  120. package/agent/scripts/acp.package-list.sh +311 -0
  121. package/agent/scripts/acp.package-publish.sh +420 -0
  122. package/agent/scripts/acp.package-remove.sh +348 -0
  123. package/agent/scripts/acp.package-search.sh +156 -0
  124. package/agent/scripts/acp.package-update.sh +517 -0
  125. package/agent/scripts/acp.package-validate.sh +1018 -0
  126. package/agent/scripts/acp.uninstall.sh +85 -0
  127. package/agent/scripts/acp.version-check-for-updates.sh +98 -0
  128. package/agent/scripts/acp.version-check.sh +47 -0
  129. package/agent/scripts/acp.version-update.sh +176 -0
  130. package/agent/scripts/acp.yaml-parser.sh +985 -0
  131. package/agent/scripts/acp.yaml-validate.sh +205 -0
  132. package/agent/tasks/.gitkeep +0 -0
  133. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-1-initialize-tanstack-start-project.md +210 -0
  134. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-2-implement-data-model-yaml-parser.md +294 -0
  135. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-3-build-server-api-data-loading.md +193 -0
  136. package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-4-add-auto-refresh-sse.md +262 -0
  137. package/agent/tasks/milestone-2-dashboard-views-interaction/task-10-polish-integration-testing.md +156 -0
  138. package/agent/tasks/milestone-2-dashboard-views-interaction/task-5-build-dashboard-layout-routing.md +178 -0
  139. package/agent/tasks/milestone-2-dashboard-views-interaction/task-6-build-overview-page.md +141 -0
  140. package/agent/tasks/milestone-2-dashboard-views-interaction/task-7-implement-milestone-table-view.md +153 -0
  141. package/agent/tasks/milestone-2-dashboard-views-interaction/task-8-implement-milestone-tree-view.md +174 -0
  142. package/agent/tasks/milestone-2-dashboard-views-interaction/task-9-implement-search-filtering.md +233 -0
  143. package/agent/tasks/task-1-{title}.template.md +244 -0
  144. package/bin/visualize.mjs +84 -0
  145. package/package.json +48 -0
  146. package/src/components/ExtraFieldsBadge.tsx +15 -0
  147. package/src/components/FilterBar.tsx +33 -0
  148. package/src/components/Header.tsx +23 -0
  149. package/src/components/MilestoneTable.tsx +167 -0
  150. package/src/components/MilestoneTree.tsx +84 -0
  151. package/src/components/ProgressBar.tsx +20 -0
  152. package/src/components/SearchInput.tsx +22 -0
  153. package/src/components/Sidebar.tsx +54 -0
  154. package/src/components/StatusBadge.tsx +23 -0
  155. package/src/components/StatusDot.tsx +12 -0
  156. package/src/components/TaskList.tsx +36 -0
  157. package/src/components/ViewToggle.tsx +31 -0
  158. package/src/lib/config.ts +8 -0
  159. package/src/lib/file-watcher.ts +43 -0
  160. package/src/lib/search.ts +48 -0
  161. package/src/lib/types.ts +73 -0
  162. package/src/lib/useAutoRefresh.ts +31 -0
  163. package/src/lib/useCollapse.ts +31 -0
  164. package/src/lib/useFilteredData.ts +55 -0
  165. package/src/lib/yaml-loader-real.spec.ts +47 -0
  166. package/src/lib/yaml-loader.spec.ts +201 -0
  167. package/src/lib/yaml-loader.ts +265 -0
  168. package/src/routeTree.gen.ts +140 -0
  169. package/src/router.tsx +10 -0
  170. package/src/routes/__root.tsx +75 -0
  171. package/src/routes/api/watch.ts +29 -0
  172. package/src/routes/index.tsx +115 -0
  173. package/src/routes/milestones.tsx +50 -0
  174. package/src/routes/search.tsx +84 -0
  175. package/src/routes/tasks.tsx +63 -0
  176. package/src/services/progress-database.service.ts +46 -0
  177. package/src/styles.css +25 -0
  178. package/tsconfig.json +24 -0
  179. package/vite.config.ts +16 -0
  180. package/vitest.config.ts +27 -0
@@ -0,0 +1,293 @@
1
+ # Command: package-remove
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.package-remove` has been invoked. Follow the steps below to execute this command.
4
+
5
+ **Namespace**: acp
6
+ **Version**: 2.0.0
7
+ **Created**: 2026-02-18
8
+ **Last Updated**: 2026-02-22
9
+ **Status**: Active
10
+ **Scripts**: acp.package-remove.sh, acp.common.sh, acp.yaml-parser.sh
11
+
12
+ ---
13
+
14
+ **Purpose**: Remove installed ACP packages and clean up manifest
15
+ **Category**: Maintenance
16
+ **Frequency**: As Needed
17
+
18
+ ---
19
+
20
+ ## What This Command Does
21
+
22
+ This command removes installed ACP packages by deleting their files from `agent/` directories and removing their entries from `agent/manifest.yaml`. It can optionally preserve locally modified files to prevent accidental loss of customizations.
23
+
24
+ Use this command when you no longer need a package, want to clean up unused dependencies, or need to reinstall a package from scratch.
25
+
26
+ ---
27
+
28
+ ## Prerequisites
29
+
30
+ - [ ] ACP installed in project
31
+ - [ ] `agent/manifest.yaml` exists with installed packages
32
+ - [ ] `agent/scripts/acp.package-remove.sh` exists
33
+ - [ ] Package to remove is actually installed
34
+
35
+ ---
36
+
37
+ ## Steps
38
+
39
+ ### 1. Run Package Remove Script
40
+
41
+ Execute the remove script with the package name.
42
+
43
+ **Actions**:
44
+ - Run `./agent/scripts/acp.package-remove.sh` with package name:
45
+ ```bash
46
+ # Interactive mode (asks for confirmation)
47
+ ./agent/scripts/acp.package-remove.sh <package-name>
48
+
49
+ # Auto-confirm mode (skips prompts)
50
+ ./agent/scripts/acp.package-remove.sh -y <package-name>
51
+
52
+ # Keep modified files
53
+ ./agent/scripts/acp.package-remove.sh --keep-modified <package-name>
54
+ ```
55
+ - The script will:
56
+ - Verify package is installed
57
+ - List files that will be removed
58
+ - Detect locally modified files via checksums
59
+ - Ask for confirmation (unless -y flag used)
60
+ - Remove files (or keep modified ones if --keep-modified)
61
+ - Remove package entry from manifest
62
+ - Update manifest timestamp
63
+ - Report removal summary
64
+
65
+ **Expected Outcome**: Package removed successfully
66
+
67
+ ### 2. Verify Removal
68
+
69
+ Check that files were removed correctly.
70
+
71
+ **Actions**:
72
+ - Verify files deleted from `agent/` directories
73
+ - Check `agent/manifest.yaml` no longer has package entry
74
+ - If `--keep-modified` used, verify modified files were kept
75
+ - Confirm no orphaned files remain
76
+
77
+ **Expected Outcome**: Package completely removed (or modified files kept)
78
+
79
+ ### 3. Document Removal
80
+
81
+ Update progress tracking with removal notes.
82
+
83
+ **Actions**:
84
+ - Add note to `agent/progress.yaml` about package removal
85
+ - Document which package was removed
86
+ - Note removal date
87
+ - List any kept files (if --keep-modified used)
88
+
89
+ **Expected Outcome**: Removal tracked in progress
90
+
91
+ ---
92
+
93
+ ## Verification
94
+
95
+ - [ ] Script executed successfully
96
+ - [ ] Package files removed from agent/ directories
97
+ - [ ] Package entry removed from manifest
98
+ - [ ] Modified files kept if --keep-modified used
99
+ - [ ] Manifest timestamp updated
100
+ - [ ] Removal summary displayed
101
+ - [ ] No errors during removal
102
+
103
+ ---
104
+
105
+ ## Expected Output
106
+
107
+ ### Files Modified
108
+ - `agent/manifest.yaml` - Package entry removed, timestamp updated
109
+ - `agent/patterns/*.md` - Pattern files deleted
110
+ - `agent/commands/*.md` - Command files deleted
111
+ - `agent/design/*.md` - Design files deleted
112
+
113
+ ### Console Output
114
+
115
+ **Standard Removal**:
116
+ ```
117
+ 📦 ACP Package Remover
118
+ ========================================
119
+
120
+ Package: firebase (1.2.0)
121
+
122
+ ⚠️ This will remove:
123
+ - 3 pattern(s)
124
+ - 2 command(s)
125
+ - 1 design(s)
126
+
127
+ Total: 6 file(s)
128
+
129
+ Remove package 'firebase'? (y/N) y
130
+
131
+ Removing files...
132
+ ✓ Removed patterns/user-scoped-collections.md
133
+ ✓ Removed patterns/firebase-security-rules.md
134
+ ✓ Removed patterns/firestore-queries.md
135
+ ✓ Removed commands/firebase.init.md
136
+ ✓ Removed commands/firebase.migrate.md
137
+ ✓ Removed design/firebase-architecture.md
138
+
139
+ Updating manifest...
140
+ ✓ Manifest updated
141
+
142
+ ✅ Removal complete!
143
+
144
+ Removed: 6 file(s)
145
+ ```
146
+
147
+ **With Modified Files** (`--keep-modified`):
148
+ ```
149
+ 📦 ACP Package Remover
150
+ ========================================
151
+
152
+ Package: firebase (1.2.0)
153
+
154
+ ⚠️ This will remove:
155
+ - 3 pattern(s)
156
+ - 2 command(s)
157
+ - 1 design(s)
158
+
159
+ Total: 6 file(s)
160
+
161
+ ⚠️ Modified files detected:
162
+ - patterns/firebase-security-rules.md
163
+
164
+ Modified files will be kept (--keep-modified)
165
+
166
+ Remove package 'firebase'? (y/N) y
167
+
168
+ Removing files...
169
+ ✓ Removed patterns/user-scoped-collections.md
170
+ ⊙ Kept patterns/firebase-security-rules.md (modified)
171
+ ✓ Removed patterns/firestore-queries.md
172
+ ✓ Removed commands/firebase.init.md
173
+ ✓ Removed commands/firebase.migrate.md
174
+ ✓ Removed design/firebase-architecture.md
175
+
176
+ Updating manifest...
177
+ ✓ Manifest updated
178
+
179
+ ✅ Removal complete!
180
+
181
+ Removed: 5 file(s)
182
+ Kept: 1 file(s) (modified)
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Examples
188
+
189
+ ### Example 1: Remove Package
190
+
191
+ **Context**: No longer need firebase package
192
+
193
+ **Invocation**: `@acp.package-remove firebase`
194
+
195
+ **Result**: Prompts for confirmation, removes all 6 files, updates manifest
196
+
197
+ ### Example 2: Remove with Auto-Confirm
198
+
199
+ **Context**: Want to remove without prompts
200
+
201
+ **Invocation**: `@acp.package-remove -y firebase`
202
+
203
+ **Result**: Removes package immediately without confirmation
204
+
205
+ ### Example 3: Keep Modified Files
206
+
207
+ **Context**: Want to remove package but keep customized files
208
+
209
+ **Invocation**: `@acp.package-remove --keep-modified firebase`
210
+
211
+ **Result**: Removes 5 unmodified files, keeps 1 modified file, updates manifest
212
+
213
+ ### Example 4: Package Not Installed
214
+
215
+ **Context**: Try to remove non-existent package
216
+
217
+ **Invocation**: `@acp.package-remove nonexistent`
218
+
219
+ **Result**: Error message "Package not installed: nonexistent", exits without changes
220
+
221
+ ---
222
+
223
+ ## Related Commands
224
+
225
+ - [`@acp.package-install`](acp.package-install.md) - Install packages
226
+ - [`@acp.package-list`](acp.package-list.md) - List installed packages
227
+ - [`@acp.package-info`](acp.package-info.md) - Show package details
228
+ - [`@acp.package-update`](acp.package-update.md) - Update packages
229
+
230
+ ---
231
+
232
+ ## Troubleshooting
233
+
234
+ ### Issue 1: Package not found
235
+
236
+ **Symptom**: Error "Package not installed"
237
+
238
+ **Cause**: Package name incorrect or not installed
239
+
240
+ **Solution**: Run `@acp.package-list` to see installed packages, check spelling
241
+
242
+ ### Issue 2: Files not removed
243
+
244
+ **Symptom**: Files still exist after removal
245
+
246
+ **Cause**: Files were modified and --keep-modified was used
247
+
248
+ **Solution**: This is intentional. Remove manually or run without --keep-modified
249
+
250
+ ### Issue 3: Manifest corrupted after removal
251
+
252
+ **Symptom**: Manifest has syntax errors
253
+
254
+ **Cause**: Rare edge case in awk processing
255
+
256
+ **Solution**: Restore from git backup, reinstall packages
257
+
258
+ ---
259
+
260
+ ## Security Considerations
261
+
262
+ ### File Deletion
263
+ - **Deletes**: All files installed by the package
264
+ - **Preserves**: Modified files if --keep-modified used
265
+ - **Irreversible**: Deleted files cannot be recovered (unless in git)
266
+
267
+ ### Best Practices
268
+ - **Use git**: Commit before removing packages
269
+ - **Review first**: Use `@acp.package-info` to see what will be removed
270
+ - **Keep modified**: Use --keep-modified if you've customized files
271
+ - **Backup**: Consider git commit or manual backup before removal
272
+
273
+ ---
274
+
275
+ ## Notes
276
+
277
+ - Removal is permanent (unless files are in git)
278
+ - Modified files detected via checksum comparison
279
+ - Manifest entry completely removed
280
+ - --keep-modified preserves customizations
281
+ - Safe to remove and reinstall packages
282
+ - Use `@acp.package-list --modified` to see which files would be kept
283
+
284
+ ---
285
+
286
+ **Namespace**: acp
287
+ **Command**: package-remove
288
+ **Version**: 1.0.0
289
+ **Created**: 2026-02-18
290
+ **Last Updated**: 2026-02-18
291
+ **Status**: Active
292
+ **Compatibility**: ACP 2.0.0+
293
+ **Author**: ACP Project
@@ -0,0 +1,307 @@
1
+ # Command: package-search
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.package-search` has been invoked. Follow the steps below to execute this command.
4
+
5
+ **Namespace**: acp
6
+ **Version**: 1.0.0
7
+ **Created**: 2026-02-18
8
+ **Last Updated**: 2026-02-18
9
+ **Status**: Active
10
+ **Scripts**: acp.package-search.sh, acp.common.sh
11
+
12
+ ---
13
+
14
+ **Purpose**: Discover ACP packages on GitHub using the GitHub API
15
+ **Category**: Package Discovery
16
+ **Frequency**: As Needed
17
+
18
+ ---
19
+
20
+ ## What This Command Does
21
+
22
+ This command searches GitHub for ACP packages using the GitHub API. **By default, it only searches repositories with the `acp-package` topic**, ensuring you only see actual ACP packages and not unrelated repositories.
23
+
24
+ It fetches `package.yaml` metadata from each result and displays comprehensive information including version, description, tags, stars, and installation commands.
25
+
26
+ Use this command when you want to discover available ACP packages, find packages for specific technologies (via tags), or browse community-created patterns and commands.
27
+
28
+ ---
29
+
30
+ ## Prerequisites
31
+
32
+ - [ ] Internet connection available
33
+ - [ ] `curl` command available
34
+ - [ ] `agent/scripts/acp.package-search.sh` exists
35
+ - [ ] Optional: `GITHUB_TOKEN` environment variable for higher rate limits
36
+
37
+ ---
38
+
39
+ ## Steps
40
+
41
+ ### 1. Run Package Search Script
42
+
43
+ Execute the search script with your query.
44
+
45
+ **Actions**:
46
+ - Run `./agent/scripts/acp.package-search.sh` with search terms:
47
+ ```bash
48
+ # Search by keyword
49
+ ./agent/scripts/acp.package-search.sh firebase
50
+
51
+ # Filter by tag
52
+ ./agent/scripts/acp.package-search.sh oauth --tag authentication
53
+
54
+ # Search specific user's packages
55
+ ./agent/scripts/acp.package-search.sh --user prmichaelsen
56
+
57
+ # Sort by recently updated
58
+ ./agent/scripts/acp.package-search.sh --sort updated --limit 5
59
+ ```
60
+
61
+ **Expected Outcome**: Search results displayed
62
+
63
+ ### 2. Review Search Results
64
+
65
+ Analyze the displayed packages.
66
+
67
+ **Actions**:
68
+ - Review package names and versions
69
+ - Read descriptions
70
+ - Check star counts (popularity indicator)
71
+ - Note tags (technology indicators)
72
+ - Identify relevant packages for your project
73
+
74
+ **Expected Outcome**: Suitable packages identified
75
+
76
+ ### 3. Install Selected Package
77
+
78
+ Use the provided installation command.
79
+
80
+ **Actions**:
81
+ - Copy installation command from search results
82
+ - Run `@acp.package-install <url>` with the package URL
83
+ - Follow installation prompts
84
+
85
+ **Expected Outcome**: Package installed successfully
86
+
87
+ ---
88
+
89
+ ## Syntax
90
+
91
+ ```bash
92
+ ./agent/scripts/acp.package-search.sh [query] [options]
93
+
94
+ Options:
95
+ --tag <tag> Filter by additional tag
96
+ --user <username> Search specific user's repos
97
+ --org <org> Search specific organization
98
+ --sort <field> Sort by: stars, updated, name (default: stars)
99
+ --limit <n> Limit results (default: 10, max: 100)
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Verification
105
+
106
+ - [ ] Script executed successfully
107
+ - [ ] GitHub API queried successfully
108
+ - [ ] Results displayed with all metadata
109
+ - [ ] Package versions shown
110
+ - [ ] Tags displayed
111
+ - [ ] Star counts shown
112
+ - [ ] Installation commands provided
113
+ - [ ] Filters work correctly
114
+ - [ ] Handles no results gracefully
115
+ - [ ] Handles API errors gracefully
116
+
117
+ ---
118
+
119
+ ## Expected Output
120
+
121
+ ### Files Modified
122
+ None - this is a read-only command
123
+
124
+ ### Console Output
125
+ ```
126
+ 🔍 ACP Package Search
127
+ ========================================
128
+
129
+ ℹ Searching GitHub for: firebase+topic:acp-package
130
+ ℹ Sort by: stars
131
+ ℹ Limit: 10
132
+
133
+ 📦 Found 3 package(s)
134
+
135
+ 1. firebase (1.2.0) ⭐ 45
136
+ https://github.com/prmichaelsen/acp-firebase
137
+ Firebase patterns and utilities for ACP projects
138
+ Tags: firebase, firestore, database, backend
139
+ Install: ./agent/scripts/acp.package-install.sh https://github.com/prmichaelsen/acp-firebase.git
140
+
141
+ 2. firebase-v11 (1.0.0) ⭐ 12
142
+ https://github.com/otheruser/acp-firebase-v11
143
+ Firebase patterns for v11 Admin SDK
144
+ Tags: firebase, firebase-v11, legacy
145
+ Install: ./agent/scripts/acp.package-install.sh https://github.com/otheruser/acp-firebase-v11.git
146
+
147
+ 3. fullstack (2.0.0) ⭐ 89
148
+ https://github.com/community/acp-fullstack
149
+ Complete fullstack patterns including Firebase
150
+ Tags: firebase, cloudflare, tanstack, fullstack
151
+ Install: ./agent/scripts/acp.package-install.sh https://github.com/community/acp-fullstack.git
152
+
153
+ Showing 3 of 3 result(s)
154
+
155
+ To install a package:
156
+ ./agent/scripts/acp.package-install.sh <repository-url>
157
+ ```
158
+
159
+ ---
160
+
161
+ ## Examples
162
+
163
+ ### Example 1: Search by Keyword
164
+
165
+ **Context**: Looking for Firebase-related packages
166
+
167
+ **Invocation**: `@acp.package-search firebase`
168
+
169
+ **Result**: Shows 3 packages with firebase in name/description/tags, sorted by stars
170
+
171
+ ### Example 2: Filter by Tag
172
+
173
+ **Context**: Need OAuth authentication patterns
174
+
175
+ **Invocation**: `@acp.package-search oauth --tag authentication`
176
+
177
+ **Result**: Shows packages tagged with both "oauth" and "authentication"
178
+
179
+ ### Example 3: Browse User's Packages
180
+
181
+ **Context**: Want to see all packages from specific author
182
+
183
+ **Invocation**: `@acp.package-search --user prmichaelsen`
184
+
185
+ **Result**: Shows all acp-package repos from prmichaelsen
186
+
187
+ ### Example 4: Find Recent Packages
188
+
189
+ **Context**: Want to see recently updated packages
190
+
191
+ **Invocation**: `@acp.package-search --sort updated --limit 5`
192
+
193
+ **Result**: Shows 5 most recently updated packages
194
+
195
+ ### Example 5: No Results
196
+
197
+ **Context**: Search for non-existent package
198
+
199
+ **Invocation**: `@acp.package-search nonexistent123`
200
+
201
+ **Result**: "No packages found matching your search", suggests trying broader terms
202
+
203
+ ---
204
+
205
+ ## Related Commands
206
+
207
+ - [`@acp.package-install`](acp.package-install.md) - Install discovered packages
208
+ - [`@acp.package-list`](acp.package-list.md) - List installed packages
209
+ - [`@acp.package-info`](acp.package-info.md) - Show package details
210
+
211
+ ---
212
+
213
+ ## GitHub API Details
214
+
215
+ ### Rate Limits
216
+ - **Without token**: 60 requests/hour
217
+ - **With token**: 5,000 requests/hour
218
+
219
+ ### Setting GitHub Token
220
+ ```bash
221
+ export GITHUB_TOKEN="your_github_token"
222
+ ```
223
+
224
+ ### API Endpoints Used
225
+ - `GET /search/repositories` - Search repos by topic
226
+ - `GET /repos/{owner}/{repo}/contents/package.yaml` - Fetch metadata
227
+
228
+ ---
229
+
230
+ ## Package Discovery Requirements
231
+
232
+ For packages to be discoverable via `@acp.package-search`:
233
+
234
+ 1. **GitHub Topic** (REQUIRED): Add `acp-package` topic to repository
235
+ - This is the canonical way to identify ACP packages
236
+ - Without this topic, packages will NOT appear in search results
237
+ 2. **package.yaml**: Include in repository root with:
238
+ ```yaml
239
+ name: package-name
240
+ version: 1.0.0
241
+ description: Clear description
242
+ tags:
243
+ - tag1
244
+ - tag2
245
+ ```
246
+ 3. **Clear Description**: Add description to GitHub repository
247
+ 4. **ACP Structure**: Follow standard `agent/` directory structure
248
+
249
+ **Note**: The `topic:acp-package` filter is always applied to ensure search results contain only actual ACP packages, not unrelated repositories with "acp" in the name.
250
+
251
+ ---
252
+
253
+ ## Troubleshooting
254
+
255
+ ### Issue 1: No results found
256
+
257
+ **Symptom**: "No packages found"
258
+
259
+ **Cause**: No packages match search criteria
260
+
261
+ **Solution**: Try broader search terms, remove filters, check spelling
262
+
263
+ ### Issue 2: API rate limit exceeded
264
+
265
+ **Symptom**: "API rate limit exceeded" error
266
+
267
+ **Cause**: Made too many requests (60/hour without token)
268
+
269
+ **Solution**: Wait for rate limit reset, or set GITHUB_TOKEN for higher limits
270
+
271
+ ### Issue 3: Package.yaml not found
272
+
273
+ **Symptom**: Version shows "unknown"
274
+
275
+ **Cause**: Package doesn't have package.yaml in root
276
+
277
+ **Solution**: This is informational only, package can still be installed
278
+
279
+ ### Issue 4: Slow response
280
+
281
+ **Symptom**: Search takes long time
282
+
283
+ **Cause**: Fetching package.yaml for each result
284
+
285
+ **Solution**: This is normal, reduce --limit for faster results
286
+
287
+ ---
288
+
289
+ ## Notes
290
+
291
+ - Requires internet connection
292
+ - Uses GitHub API (no authentication required for basic use)
293
+ - Fetches package.yaml for each result (adds latency)
294
+ - Results cached by GitHub (may not show very recent packages)
295
+ - Set GITHUB_TOKEN for higher rate limits
296
+ - Packages must have `acp-package` topic to be discoverable
297
+
298
+ ---
299
+
300
+ **Namespace**: acp
301
+ **Command**: package-search
302
+ **Version**: 1.0.0
303
+ **Created**: 2026-02-18
304
+ **Last Updated**: 2026-02-18
305
+ **Status**: Active
306
+ **Compatibility**: ACP 2.0.0+
307
+ **Author**: ACP Project