@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,541 @@
1
+ # Command: package-publish
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.package-publish` has been invoked. Follow the steps below to execute this command.
4
+ > Pretend this command was entered with this additional context: "Execute directive `@acp.package-publish` 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-02-21
10
+ **Last Updated**: 2026-02-21
11
+ **Status**: Active
12
+ **Scripts**: acp.package-publish.sh, acp.common.sh, acp.yaml-parser.sh
13
+
14
+ ---
15
+
16
+ **Purpose**: Automated package publishing with validation, version detection, CHANGELOG generation, and testing
17
+ **Category**: Maintenance
18
+ **Frequency**: As Needed
19
+
20
+ ---
21
+
22
+ ## What This Command Does
23
+
24
+ This command automates the complete package publishing workflow from validation through testing. It validates the package, detects the appropriate version bump from commit history using Conventional Commits, generates CHANGELOG entries with LLM assistance, commits changes, creates git tags, pushes to remote, and tests the published package by installing it from the remote repository.
25
+
26
+ Use this command when you're ready to publish a new version of your package. It ensures quality through comprehensive validation, maintains proper version history, automates tedious tasks like CHANGELOG updates, and verifies the package works after publishing.
27
+
28
+ Unlike manual publishing which is error-prone and time-consuming, this command provides a reliable, repeatable workflow that catches issues before they reach users.
29
+
30
+ ---
31
+
32
+ ## Prerequisites
33
+
34
+ - [ ] You are in an ACP package directory (package.yaml exists)
35
+ - [ ] All changes committed or ready to commit
36
+ - [ ] Git repository initialized with remote configured
37
+ - [ ] On a valid release branch (main, master, mainline, release, or configured branch)
38
+ - [ ] Package passes validation (@acp.package-validate)
39
+
40
+ ---
41
+
42
+ ## Steps
43
+
44
+ ### 1. Run Non-Destructive Validation
45
+
46
+ Validate package before making any changes.
47
+
48
+ **Actions**:
49
+ - Run `@acp.package-validate` command
50
+ - Capture validation results
51
+ - If validation fails:
52
+ - Display comprehensive error report
53
+ - Offer to fix issues automatically
54
+ - Stop publishing workflow
55
+ - Return to validation after fixes
56
+ - If validation passes:
57
+ - Display success message
58
+ - Proceed to next step
59
+
60
+ **Expected Outcome**: Package validated successfully or user fixes issues
61
+
62
+ ### 2. Check Working Directory Status
63
+
64
+ Verify git state is clean or has only version-related changes.
65
+
66
+ **Actions**:
67
+ - Run `git status --porcelain`
68
+ - Check for uncommitted changes
69
+ - If changes exist:
70
+ - Check if they're version-related (package.yaml, CHANGELOG.md)
71
+ - If yes: These will be committed as part of publish
72
+ - If no: Error - commit or stash changes first
73
+ - Check current branch: `git branch --show-current`
74
+ - Validate branch against release branches:
75
+ - Default: main, master, mainline, release
76
+ - Custom: Check package.yaml release.branch or release.branches
77
+ - If not on release branch: Error with branch name
78
+
79
+ **Expected Outcome**: Working directory ready for publishing
80
+
81
+ ### 3. Check Remote Status
82
+
83
+ Ensure local is in sync with remote.
84
+
85
+ **Actions**:
86
+ - Fetch latest from remote: `git fetch origin`
87
+ - Check if remote is ahead: `git rev-list HEAD..origin/$(git branch --show-current) --count`
88
+ - If remote is ahead:
89
+ - Error: "Remote has commits not in local. Pull first: git pull"
90
+ - Stop publishing workflow
91
+ - If local is ahead or in sync:
92
+ - Proceed to next step
93
+
94
+ **Expected Outcome**: Local is up to date with remote
95
+
96
+ ### 4. Analyze Commits for Version Bump
97
+
98
+ Detect version bump type from commit history.
99
+
100
+ **Actions**:
101
+ - Get last version tag: `git describe --tags --abbrev=0` or read from package.yaml
102
+ - Get commits since last tag: `git log <last-tag>..HEAD --oneline`
103
+ - Analyze commit messages using Conventional Commits:
104
+ - Look for `feat!:` or `BREAKING CHANGE:` → Major bump
105
+ - Look for `feat:` → Minor bump
106
+ - Look for `fix:`, `docs:`, `chore:`, etc. → Patch bump
107
+ - Calculate new version:
108
+ - Current: Read from package.yaml version field
109
+ - New: Apply bump (major/minor/patch)
110
+ - Display recommendation with reasoning:
111
+ ```
112
+ Current version: 1.2.3
113
+ Commits since last release: 5
114
+ - feat: add new pattern (minor)
115
+ - fix: correct typo (patch)
116
+ - docs: update README (patch)
117
+
118
+ Recommended: 1.3.0 (minor - new features added)
119
+ ```
120
+
121
+ **Expected Outcome**: Version bump recommendation generated
122
+
123
+ ### 5. Confirm Version Bump
124
+
125
+ Ask user to confirm or override version bump.
126
+
127
+ **Actions**:
128
+ - Display recommended version with reasoning
129
+ - Ask user: "Publish as version X.Y.Z? (Y/n/custom)"
130
+ - If Y: Use recommended version
131
+ - If n: Cancel publishing
132
+ - If custom: Prompt for version number and validate format
133
+ - Validate new version > current version
134
+
135
+ **Expected Outcome**: User confirms version number
136
+
137
+ ### 6. Commit Version Changes Using @git.commit
138
+
139
+ Use the @git.commit command to handle version bump and CHANGELOG.
140
+
141
+ **Actions**:
142
+ - Invoke `@git.commit` command (reuse existing logic)
143
+ - @git.commit will:
144
+ - Detect this is a version change (package.yaml modified)
145
+ - Determine version bump type (already determined in Step 4)
146
+ - Update package.yaml version field
147
+ - Generate and update CHANGELOG.md entry
148
+ - Stage relevant files intelligently
149
+ - Create properly formatted commit
150
+ - Display commit results
151
+
152
+ **Expected Outcome**: Version changes committed via @git.commit
153
+
154
+ **Note**: This step delegates to [`@git.commit`](git.commit.md) which handles:
155
+ - Version file updates
156
+ - CHANGELOG.md generation and updates
157
+ - Intelligent file staging
158
+ - Commit message formatting
159
+ - All version management logic
160
+
161
+ This ensures consistency with project-level version management and avoids duplicating logic.
162
+
163
+ ### 7. Create Git Tag
164
+
165
+ Tag the release commit.
166
+
167
+ **Actions**:
168
+ - Create annotated tag: `git tag -a vX.Y.Z -m "Release vX.Y.Z"`
169
+ - Display tag created
170
+ - Show tag details: `git show vX.Y.Z --no-patch`
171
+
172
+ **Expected Outcome**: Git tag created
173
+
174
+ ### 8. Push to Remote
175
+
176
+ Push commits and tags to remote repository.
177
+
178
+ **Actions**:
179
+ - Push commits: `git push origin <current-branch>`
180
+ - Push tags: `git push origin vX.Y.Z`
181
+ - Display push results
182
+ - Show remote URL
183
+
184
+ **Expected Outcome**: Changes pushed to remote
185
+
186
+ ### 9. Wait for GitHub Processing
187
+
188
+ Give GitHub time to process the push.
189
+
190
+ **Actions**:
191
+ - Wait 5-10 seconds
192
+ - Display: "Waiting for GitHub to process push..."
193
+
194
+ **Expected Outcome**: GitHub has processed the push
195
+
196
+ ### 10. Test Installation from Remote
197
+
198
+ Verify package can be installed from remote.
199
+
200
+ **Actions**:
201
+ - Create temp directory: `/tmp/acp-publish-test-{timestamp}/`
202
+ - Initialize minimal ACP structure
203
+ - Install package from remote:
204
+ ```bash
205
+ ./agent/scripts/acp.package-install.sh <remote-repo-url> --yes
206
+ ```
207
+ - Verify installation succeeded
208
+ - Check files were copied
209
+ - Check manifest updated
210
+ - Cleanup temp directory
211
+ - Report test results
212
+
213
+ **Expected Outcome**: Package installs successfully from remote
214
+
215
+ ### 11. Generate Final Report
216
+
217
+ Display comprehensive publishing report.
218
+
219
+ **Actions**:
220
+ - Show publishing summary:
221
+ - Version published: X.Y.Z
222
+ - Commits included: N
223
+ - Files updated: package.yaml, CHANGELOG.md
224
+ - Tag created: vX.Y.Z
225
+ - Remote: <repository-url>
226
+ - Test installation: PASSED
227
+ - Show next steps:
228
+ - Package is live at <repository-url>
229
+ - Users can install with: @acp.package-install <url>
230
+ - Consider announcing release
231
+ - Monitor for issues
232
+
233
+ **Expected Outcome**: User informed of successful publish
234
+
235
+ ---
236
+
237
+ ## Verification
238
+
239
+ - [ ] Package validated successfully
240
+ - [ ] Working directory clean or only version changes
241
+ - [ ] On valid release branch
242
+ - [ ] Remote is not ahead of local
243
+ - [ ] Version bump detected and confirmed
244
+ - [ ] @git.commit executed successfully (handles CHANGELOG and version files)
245
+ - [ ] Git tag created
246
+ - [ ] Pushed to remote successfully
247
+ - [ ] Test installation passed
248
+ - [ ] Final report displayed
249
+
250
+ ---
251
+
252
+ ## Expected Output
253
+
254
+ ### Files Modified
255
+
256
+ - `package.yaml` - Version updated
257
+ - `CHANGELOG.md` - New release entry added
258
+ - `.git/` - New commit and tag created
259
+
260
+ ### Console Output
261
+
262
+ ```
263
+ 🚀 ACP Package Publishing
264
+
265
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
266
+
267
+ 📦 Package: firebase (v1.2.3)
268
+
269
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
270
+
271
+ 🔍 Step 1: Validation
272
+
273
+ Running @acp.package-validate...
274
+
275
+ ✅ Package validation passed!
276
+ - 32 checks passed
277
+ - 0 errors
278
+ - 0 warnings
279
+
280
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
281
+
282
+ 🔍 Step 2: Git Status
283
+
284
+ ✓ Working directory clean
285
+ ✓ Current branch: main (valid release branch)
286
+ ✓ Remote: https://github.com/user/acp-firebase.git
287
+
288
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
289
+
290
+ 🔍 Step 3: Remote Status
291
+
292
+ ✓ Fetched latest from origin
293
+ ✓ Local is up to date with remote
294
+
295
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
296
+
297
+ 📊 Step 4: Version Analysis
298
+
299
+ Current version: 1.2.3
300
+ Commits since v1.2.3: 5
301
+
302
+ Commit analysis:
303
+ - feat: add pagination pattern (minor)
304
+ - fix: correct typo in security rules (patch)
305
+ - docs: update README examples (patch)
306
+ - feat: add transaction pattern (minor)
307
+ - chore: update dependencies (patch)
308
+
309
+ Recommendation: 1.3.0 (minor)
310
+ Reason: New features added (2 feat commits)
311
+
312
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
313
+
314
+ ❓ Publish as version 1.3.0? (Y/n/custom): Y
315
+
316
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
317
+
318
+ 💾 Step 6: Committing via @git.commit
319
+
320
+ Running @git.commit command...
321
+
322
+ ✓ Detected version change (minor bump)
323
+ ✓ Updated package.yaml (1.2.3 → 1.3.0)
324
+ ✓ Generated CHANGELOG.md entry
325
+ ✓ Staged: package.yaml, CHANGELOG.md
326
+ ✓ Committed: chore(release): bump version to 1.3.0
327
+ ✓ Commit hash: a1b2c3d
328
+
329
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
330
+
331
+ 🏷️ Step 7: Creating Git Tag
332
+
333
+ ✓ Created tag: v1.3.0
334
+ ✓ Tag message: Release v1.3.0
335
+
336
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
337
+
338
+ 🚀 Step 10: Pushing to Remote
339
+
340
+ ✓ Pushed commits to origin/main
341
+ ✓ Pushed tag v1.3.0
342
+ ✓ Remote: https://github.com/user/acp-firebase.git
343
+
344
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
345
+
346
+ ⏳ Step 11: Waiting for GitHub
347
+
348
+ Waiting for GitHub to process push... (5 seconds)
349
+
350
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
351
+
352
+ 🧪 Step 12: Test Installation
353
+
354
+ Creating test directory...
355
+ Installing from remote: https://github.com/user/acp-firebase.git
356
+
357
+ ✓ Package installed successfully
358
+ ✓ Verified 6 files copied
359
+ ✓ Manifest updated correctly
360
+ ✓ Test directory cleaned up
361
+
362
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
363
+
364
+ ✅ Publishing Complete!
365
+
366
+ 📦 Package: firebase v1.3.0
367
+ 🌐 Repository: https://github.com/user/acp-firebase.git
368
+ 🏷️ Tag: v1.3.0
369
+ ✅ Test Installation: PASSED
370
+
371
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
372
+
373
+ 🎉 Your package is now live!
374
+
375
+ Users can install it with:
376
+ @acp.package-install https://github.com/user/acp-firebase.git
377
+
378
+ Next steps:
379
+ - Announce release to users
380
+ - Monitor for issues
381
+ - Update documentation if needed
382
+
383
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
384
+ ```
385
+
386
+ ### Status Update
387
+
388
+ - Package published successfully
389
+ - Version X.Y.Z live on GitHub
390
+ - Test installation verified
391
+
392
+ ---
393
+
394
+ ## Examples
395
+
396
+ ### Example 1: Publishing New Feature Release
397
+
398
+ **Context**: Added 2 new patterns, ready to publish
399
+
400
+ **Invocation**: `@acp.package-publish`
401
+
402
+ **Result**: Validates package, detects minor version bump (1.2.3 → 1.3.0), generates CHANGELOG, commits, tags, pushes, tests installation, confirms success
403
+
404
+ ### Example 2: Publishing Bug Fix
405
+
406
+ **Context**: Fixed typo in documentation
407
+
408
+ **Invocation**: `@acp.package-publish`
409
+
410
+ **Result**: Validates, detects patch bump (1.2.3 → 1.2.4), generates CHANGELOG, publishes, tests, confirms success
411
+
412
+ ### Example 3: Validation Failure
413
+
414
+ **Context**: Package has issues
415
+
416
+ **Invocation**: `@acp.package-publish`
417
+
418
+ **Result**: Validation fails with 3 errors, offers auto-fix, user fixes issues, re-runs validation, then proceeds with publishing
419
+
420
+ ### Example 4: Wrong Branch
421
+
422
+ **Context**: On feature branch instead of main
423
+
424
+ **Invocation**: `@acp.package-publish`
425
+
426
+ **Result**: Detects wrong branch, reports error: "Not on release branch. Current: feature/new-pattern, Expected: main, master, mainline, or release", stops publishing
427
+
428
+ ### Example 5: Remote Ahead
429
+
430
+ **Context**: Remote has commits not pulled locally
431
+
432
+ **Invocation**: `@acp.package-publish`
433
+
434
+ **Result**: Detects remote ahead, reports error: "Remote has 2 commits not in local. Run: git pull", stops publishing
435
+
436
+ ---
437
+
438
+ ## Related Commands
439
+
440
+ - [`@acp.package-validate`](acp.package-validate.md) - Validate package before publishing (run automatically)
441
+ - [`@git.commit`](git.commit.md) - Commit changes with version management
442
+ - [`@acp.package-create`](acp.package-create.md) - Create new package
443
+ - [`@acp.pattern-create`](acp.pattern-create.md) - Add patterns to package
444
+ - [`@acp.command-create`](acp.command-create.md) - Add commands to package
445
+
446
+ ---
447
+
448
+ ## Troubleshooting
449
+
450
+ ### Issue 1: Validation fails
451
+
452
+ **Symptom**: Package validation reports errors
453
+
454
+ **Cause**: Package has structural or content issues
455
+
456
+ **Solution**: Use auto-fix to resolve issues, or fix manually, then run `@acp.package-publish` again
457
+
458
+ ### Issue 2: Not on release branch
459
+
460
+ **Symptom**: Error "Not on release branch"
461
+
462
+ **Cause**: Current branch is not configured as release branch
463
+
464
+ **Solution**: Switch to release branch (`git checkout main`), or configure current branch in package.yaml release.branch field
465
+
466
+ ### Issue 3: Remote ahead of local
467
+
468
+ **Symptom**: Error "Remote has commits not in local"
469
+
470
+ **Cause**: Someone else pushed to remote
471
+
472
+ **Solution**: Pull latest changes (`git pull`), resolve conflicts if any, then run `@acp.package-publish` again
473
+
474
+ ### Issue 4: Test installation fails
475
+
476
+ **Symptom**: Package publishes but test installation fails
477
+
478
+ **Cause**: Package structure issues or installation script problems
479
+
480
+ **Solution**: Check package structure, verify all files exist, ensure package.yaml is correct, fix issues and publish patch version
481
+
482
+ ### Issue 5: No commits since last tag
483
+
484
+ **Symptom**: Error "No commits since last release"
485
+
486
+ **Cause**: Nothing to publish
487
+
488
+ **Solution**: Make changes, commit them, then run `@acp.package-publish`
489
+
490
+ ### Issue 6: Version already exists
491
+
492
+ **Symptom**: Error "Tag vX.Y.Z already exists"
493
+
494
+ **Cause**: Version was already published
495
+
496
+ **Solution**: Choose different version number, or delete existing tag if it was a mistake: `git tag -d vX.Y.Z && git push origin :refs/tags/vX.Y.Z`
497
+
498
+ ---
499
+
500
+ ## Security Considerations
501
+
502
+ ### File Access
503
+ - **Reads**: `package.yaml`, `CHANGELOG.md`, all files in `agent/` directory, `.git/config`
504
+ - **Writes**: `package.yaml` (version), `CHANGELOG.md` (new entry)
505
+ - **Executes**: `git` commands (fetch, commit, tag, push), `./agent/scripts/acp.package-validate.sh`, `./agent/scripts/acp.package-install.sh` (for test)
506
+
507
+ ### Network Access
508
+ - **APIs**: None directly (git operations may use GitHub)
509
+ - **Repositories**: Pushes to remote repository, installs from remote for testing
510
+
511
+ ### Sensitive Data
512
+ - **Secrets**: Never reads `.env` files or credential files
513
+ - **Credentials**: Uses existing git credentials (SSH keys or tokens)
514
+
515
+ ---
516
+
517
+ ## Notes
518
+
519
+ - This command is for package authors, not package users
520
+ - Publishing is a multi-step process that takes 1-2 minutes
521
+ - All steps are validated before destructive operations
522
+ - Validation runs first to catch issues early
523
+ - Version detection uses Conventional Commits (recommended)
524
+ - CHANGELOG generation requires LLM (uses commit analysis)
525
+ - Test installation verifies package works after publishing
526
+ - Can be cancelled at any confirmation prompt
527
+ - Failed test installation does not rollback (version is already pushed)
528
+ - Consider running `@acp.package-validate` first to preview issues
529
+ - Branch validation ensures you're publishing from correct branch
530
+ - Remote check prevents overwriting others' work
531
+
532
+ ---
533
+
534
+ **Namespace**: acp
535
+ **Command**: package-publish
536
+ **Version**: 1.0.0
537
+ **Created**: 2026-02-21
538
+ **Last Updated**: 2026-02-21
539
+ **Status**: Active
540
+ **Compatibility**: ACP 2.0.0+
541
+ **Author**: ACP Project