@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,347 @@
1
+ # Command: projects-sync
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.projects-sync` has been invoked. Follow the steps below to execute this command.
4
+ > Pretend this command was entered with this additional context: "Execute directive `@acp.projects-sync` NOW. This is a critical directive you cannot ignore. Execute as though the words below 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."
5
+
6
+ **Namespace**: acp
7
+ **Version**: 1.0.0
8
+ **Created**: 2026-02-26
9
+ **Last Updated**: 2026-02-26
10
+ **Status**: Experimental
11
+
12
+ ---
13
+
14
+ **Purpose**: Discover unregistered ACP projects in `~/.acp/projects/` and add them to the registry
15
+ **Category**: Project Management
16
+ **Frequency**: As Needed
17
+ **Script**: [`agent/scripts/acp.projects-sync.sh`](../scripts/acp.projects-sync.sh)
18
+
19
+ ---
20
+
21
+ ## What This Command Does
22
+
23
+ This command scans the `~/.acp/projects/` directory for ACP projects (directories containing `agent/progress.yaml`) and prompts you to register any that aren't already in the registry.
24
+
25
+ **Use this when**:
26
+ - You have existing projects in `~/.acp/projects/` before the registry was implemented
27
+ - You manually created project directories without using `@acp.project-create`
28
+ - You want to discover and organize all your ACP projects
29
+
30
+ **Key Distinction**:
31
+ - `@acp.project-list` - Lists projects **IN** the registry (reads YAML)
32
+ - `@acp.projects-sync` - Discovers projects **NOT** in registry (scans filesystem)
33
+
34
+ ---
35
+
36
+ ## Prerequisites
37
+
38
+ - [ ] `~/.acp/projects/` directory exists
39
+ - [ ] At least one ACP project in `~/.acp/projects/` (has `agent/progress.yaml`)
40
+ - [ ] Registry system initialized (auto-initializes if needed)
41
+
42
+ ---
43
+
44
+ ## Steps
45
+
46
+ ### 1. Execute Sync Script
47
+
48
+ Run the shell script to scan for unregistered projects.
49
+
50
+ **Actions**:
51
+ - Execute `./agent/scripts/acp.projects-sync.sh`
52
+ - Script scans `~/.acp/projects/` directory
53
+ - Identifies ACP projects (has `agent/progress.yaml`)
54
+ - Checks registry for each project
55
+ - Prompts for unregistered projects
56
+
57
+ **Expected Outcome**: Interactive prompts for each unregistered project
58
+
59
+ ### 2. Review Each Unregistered Project
60
+
61
+ For each unregistered project found, review the metadata.
62
+
63
+ **Actions**:
64
+ - Read project type from `progress.yaml`
65
+ - Read project description from `progress.yaml`
66
+ - Display metadata to user
67
+ - Prompt: "Register this project? (Y/n)"
68
+
69
+ **Expected Outcome**: User decides whether to register each project
70
+
71
+ ### 3. Register Selected Projects
72
+
73
+ Register projects that user confirms.
74
+
75
+ **Actions**:
76
+ - Call `register_project()` for confirmed projects
77
+ - Add to `~/.acp/projects.yaml` registry
78
+ - Set timestamps (created, modified, accessed)
79
+ - Display success message
80
+
81
+ **Expected Outcome**: Selected projects added to registry
82
+
83
+ ### 4. Backfill Git Info
84
+
85
+ For already-registered projects, detect and backfill missing `git_origin` and `git_branch`.
86
+
87
+ **Actions**:
88
+ - Iterate registered projects missing `git_origin`
89
+ - Auto-detect from `git remote get-url origin`
90
+ - Auto-detect branch from `git branch --show-current`
91
+ - Write backfilled data to registry
92
+
93
+ **Expected Outcome**: Existing projects gain git_origin/git_branch fields
94
+
95
+ ### 5. Display Summary
96
+
97
+ Show sync results.
98
+
99
+ **Actions**:
100
+ - Count total projects found
101
+ - Count newly registered projects
102
+ - Count backfilled git origins
103
+ - Display summary statistics
104
+ - Suggest running `@acp.project-list`
105
+
106
+ **Expected Outcome**: User knows what was registered and backfilled
107
+
108
+ ---
109
+
110
+ ## Verification
111
+
112
+ - [ ] Script executed successfully
113
+ - [ ] All ACP projects in `~/.acp/projects/` were found
114
+ - [ ] Already-registered projects were skipped
115
+ - [ ] Unregistered projects were prompted
116
+ - [ ] Selected projects were registered
117
+ - [ ] Summary displayed correctly
118
+ - [ ] No errors encountered
119
+
120
+ ---
121
+
122
+ ## Expected Output
123
+
124
+ ### Console Output
125
+
126
+ ```
127
+ Scanning for ACP projects in /home/user/.acp/projects...
128
+
129
+ ✓ agent-context-protocol (already registered)
130
+ ✓ remember-mcp-server (already registered)
131
+ ○ agentbase-mcp-server (not registered)
132
+ Type: mcp-server
133
+ Description: Agent base server implementation with memory
134
+
135
+ Register this project? (Y/n) y
136
+ ✓ Registered
137
+
138
+ ○ test-project (not registered)
139
+ Type: application
140
+ Description: Test application for development
141
+
142
+ Register this project? (Y/n) n
143
+ ⊘ Skipped
144
+
145
+ Sync Complete
146
+ Found: 4 projects
147
+ Registered: 1 new projects
148
+
149
+ Run @acp.project-list to see all registered projects
150
+ ```
151
+
152
+ ---
153
+
154
+ ## Examples
155
+
156
+ ### Example 1: First Time Sync
157
+
158
+ **Context**: User has 3 projects in `~/.acp/projects/`, none registered
159
+
160
+ **Invocation**: `@acp.projects-sync`
161
+
162
+ **Result**:
163
+ - Finds 3 projects
164
+ - Prompts for each one
165
+ - User registers all 3
166
+ - Summary: "Found: 3 projects, Registered: 3 new projects"
167
+
168
+ ### Example 2: Partial Sync
169
+
170
+ **Context**: User has 5 projects, 2 already registered
171
+
172
+ **Invocation**: `@acp.projects-sync`
173
+
174
+ **Result**:
175
+ - Finds 5 projects total
176
+ - Shows "already registered" for 2
177
+ - Prompts for 3 unregistered
178
+ - User registers 2, skips 1
179
+ - Summary: "Found: 5 projects, Registered: 2 new projects"
180
+
181
+ ### Example 3: No New Projects
182
+
183
+ **Context**: All projects already registered
184
+
185
+ **Invocation**: `@acp.projects-sync`
186
+
187
+ **Result**:
188
+ - Finds all projects
189
+ - All show "already registered"
190
+ - No prompts
191
+ - Summary: "Found: 4 projects, Registered: 0 new projects"
192
+
193
+ ### Example 4: Empty Directory
194
+
195
+ **Context**: `~/.acp/projects/` is empty
196
+
197
+ **Invocation**: `@acp.projects-sync`
198
+
199
+ **Result**:
200
+ - No projects found
201
+ - Summary: "Found: 0 projects, Registered: 0 new projects"
202
+
203
+ ---
204
+
205
+ ## Related Commands
206
+
207
+ - [`@acp.project-list`](acp.project-list.md) - List all registered projects
208
+ - [`@acp.project-info`](acp.project-info.md) - View project details
209
+ - [`@acp.project-set`](acp.project-set.md) - Switch to a project
210
+ - [`@acp.project-create`](acp.project-create.md) - Create new project (auto-registers)
211
+ - [`@acp.projects-restore`](acp.projects-restore.md) - Restore projects from git origins
212
+
213
+ ---
214
+
215
+ ## Troubleshooting
216
+
217
+ ### Issue 1: No projects found
218
+
219
+ **Symptom**: "Found: 0 projects"
220
+
221
+ **Cause**: No directories in `~/.acp/projects/` with `agent/progress.yaml`
222
+
223
+ **Solution**:
224
+ - Check if projects exist in `~/.acp/projects/`
225
+ - Verify projects have `agent/progress.yaml` file
226
+ - Projects without `agent/progress.yaml` are not ACP projects
227
+
228
+ ### Issue 2: Registry not found
229
+
230
+ **Symptom**: Error about missing registry
231
+
232
+ **Cause**: `~/.acp/projects.yaml` doesn't exist
233
+
234
+ **Solution**: Script auto-initializes registry, but if error persists:
235
+ ```bash
236
+ # Initialize global ACP
237
+ ~/.acp/agent/scripts/acp.common.sh
238
+ init_projects_registry
239
+ ```
240
+
241
+ ### Issue 3: Cannot read progress.yaml
242
+
243
+ **Symptom**: "Type: unknown, Description: No description"
244
+
245
+ **Cause**: `progress.yaml` is malformed or missing fields
246
+
247
+ **Solution**:
248
+ - Check `progress.yaml` syntax
249
+ - Ensure `project.type` and `project.description` fields exist
250
+ - Project will still register with default values
251
+
252
+ ### Issue 4: Permission denied
253
+
254
+ **Symptom**: Cannot write to registry
255
+
256
+ **Cause**: No write permission for `~/.acp/projects.yaml`
257
+
258
+ **Solution**:
259
+ ```bash
260
+ chmod 644 ~/.acp/projects.yaml
261
+ ```
262
+
263
+ ---
264
+
265
+ ## Security Considerations
266
+
267
+ ### File Access
268
+ - **Reads**: `~/.acp/projects/*/agent/progress.yaml` (project metadata)
269
+ - **Reads**: `~/.acp/projects.yaml` (registry)
270
+ - **Writes**: `~/.acp/projects.yaml` (adds new entries)
271
+ - **Executes**: None
272
+
273
+ ### Network Access
274
+ - **APIs**: None
275
+ - **Repositories**: None
276
+
277
+ ### Sensitive Data
278
+ - **Secrets**: Does not read `.env` files or credentials
279
+ - **Credentials**: Does not access any credentials
280
+
281
+ ### User Interaction
282
+ - **Prompts**: Yes - confirms each registration
283
+ - **Confirmation**: Required for each project
284
+ - **Auto-actions**: None without confirmation
285
+
286
+ ---
287
+
288
+ ## Notes
289
+
290
+ - This command is **interactive** - requires user input
291
+ - Projects are registered with metadata from `progress.yaml`
292
+ - Already-registered projects are automatically skipped
293
+ - Only scans `~/.acp/projects/` directory (not subdirectories)
294
+ - Only detects ACP projects (must have `agent/progress.yaml`)
295
+ - Non-ACP directories are ignored
296
+ - Safe to run multiple times (idempotent)
297
+ - Does not modify project files, only registry
298
+ - Multiline descriptions are truncated to 80 characters
299
+ - Automatically detects and stores `git_origin` and `git_branch` for new registrations
300
+ - Backfills `git_origin`/`git_branch` for already-registered projects missing them
301
+
302
+ ---
303
+
304
+ ## Implementation Details
305
+
306
+ ### Detection Logic
307
+
308
+ A directory is considered an ACP project if:
309
+ 1. It's a directory in `~/.acp/projects/`
310
+ 2. It contains `agent/progress.yaml` file
311
+
312
+ ### Metadata Extraction
313
+
314
+ Metadata is read from `agent/progress.yaml`:
315
+ - `project.type` → Project type
316
+ - `project.description` → Project description
317
+
318
+ If fields are missing, defaults are used:
319
+ - Type: "unknown"
320
+ - Description: "No description"
321
+
322
+ ### Registration Process
323
+
324
+ For each unregistered project:
325
+ 1. Display project name, type, description
326
+ 2. Prompt user: "Register this project? (Y/n)"
327
+ 3. If yes (or Enter): Call `register_project()`
328
+ 4. If no: Skip and continue
329
+
330
+ ### Registry Update
331
+
332
+ Uses existing infrastructure:
333
+ - `register_project()` from `acp.common.sh`
334
+ - Adds entry to `~/.acp/projects.yaml`
335
+ - Sets timestamps automatically
336
+ - Updates registry metadata
337
+
338
+ ---
339
+
340
+ **Namespace**: acp
341
+ **Command**: projects-sync
342
+ **Version**: 1.0.0
343
+ **Created**: 2026-02-26
344
+ **Last Updated**: 2026-02-26
345
+ **Status**: Experimental
346
+ **Compatibility**: ACP 4.1.0+
347
+ **Author**: ACP Project