@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.
- package/README.md +68 -0
- package/agent/commands/acp.clarification-address.md +417 -0
- package/agent/commands/acp.clarification-capture.md +386 -0
- package/agent/commands/acp.clarification-create.md +437 -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.handoff.md +270 -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 +587 -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/commands/tanstack-cloudflare.deploy.md +272 -0
- package/agent/commands/tanstack-cloudflare.tail.md +275 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/design.template.md +154 -0
- package/agent/design/local.dashboard-layout-routing.md +288 -0
- package/agent/design/local.data-model-yaml-parsing.md +310 -0
- package/agent/design/local.search-filtering.md +331 -0
- package/agent/design/local.server-api-auto-refresh.md +235 -0
- package/agent/design/local.table-tree-views.md +299 -0
- package/agent/design/local.visualizer-requirements.md +349 -0
- package/agent/design/requirements.template.md +387 -0
- package/agent/index/.gitkeep +0 -0
- package/agent/index/acp.core.yaml +137 -0
- package/agent/index/local.main.template.yaml +37 -0
- package/agent/manifest.template.yaml +13 -0
- package/agent/manifest.yaml +302 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-project-scaffold-data-pipeline.md +67 -0
- package/agent/milestones/milestone-1-{title}.template.md +206 -0
- package/agent/milestones/milestone-2-dashboard-views-interaction.md +79 -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/patterns/tanstack-cloudflare.acl-permissions.md +332 -0
- package/agent/patterns/tanstack-cloudflare.action-bar-item.md +416 -0
- package/agent/patterns/tanstack-cloudflare.api-route-handlers.md +401 -0
- package/agent/patterns/tanstack-cloudflare.auth-session-management.md +387 -0
- package/agent/patterns/tanstack-cloudflare.card-and-list.md +271 -0
- package/agent/patterns/tanstack-cloudflare.chat-engine.md +353 -0
- package/agent/patterns/tanstack-cloudflare.confirmation-tokens.md +346 -0
- package/agent/patterns/tanstack-cloudflare.durable-objects-websocket.md +516 -0
- package/agent/patterns/tanstack-cloudflare.email-service.md +431 -0
- package/agent/patterns/tanstack-cloudflare.expander.md +98 -0
- package/agent/patterns/tanstack-cloudflare.fcm-push.md +115 -0
- package/agent/patterns/tanstack-cloudflare.firebase-anonymous-sessions.md +441 -0
- package/agent/patterns/tanstack-cloudflare.firebase-auth.md +348 -0
- package/agent/patterns/tanstack-cloudflare.firebase-firestore.md +550 -0
- package/agent/patterns/tanstack-cloudflare.firebase-storage.md +369 -0
- package/agent/patterns/tanstack-cloudflare.form-controls.md +145 -0
- package/agent/patterns/tanstack-cloudflare.global-search-context.md +93 -0
- package/agent/patterns/tanstack-cloudflare.image-carousel.md +126 -0
- package/agent/patterns/tanstack-cloudflare.library-services.md +553 -0
- package/agent/patterns/tanstack-cloudflare.lightbox.md +169 -0
- package/agent/patterns/tanstack-cloudflare.markdown-content.md +115 -0
- package/agent/patterns/tanstack-cloudflare.mention-suggestions.md +98 -0
- package/agent/patterns/tanstack-cloudflare.modal.md +156 -0
- package/agent/patterns/tanstack-cloudflare.nextjs-to-tanstack-routing.md +461 -0
- package/agent/patterns/tanstack-cloudflare.notifications-engine.md +151 -0
- package/agent/patterns/tanstack-cloudflare.oauth-token-refresh.md +90 -0
- package/agent/patterns/tanstack-cloudflare.og-metadata.md +296 -0
- package/agent/patterns/tanstack-cloudflare.pagination.md +442 -0
- package/agent/patterns/tanstack-cloudflare.pill-input.md +220 -0
- package/agent/patterns/tanstack-cloudflare.provider-adapter.md +401 -0
- package/agent/patterns/tanstack-cloudflare.rate-limiting.md +323 -0
- package/agent/patterns/tanstack-cloudflare.scheduled-tasks.md +338 -0
- package/agent/patterns/tanstack-cloudflare.searchable-settings.md +375 -0
- package/agent/patterns/tanstack-cloudflare.slide-over.md +129 -0
- package/agent/patterns/tanstack-cloudflare.ssr-preload.md +571 -0
- package/agent/patterns/tanstack-cloudflare.third-party-api-integration.md +508 -0
- package/agent/patterns/tanstack-cloudflare.toast-system.md +142 -0
- package/agent/patterns/tanstack-cloudflare.unified-header.md +280 -0
- package/agent/patterns/tanstack-cloudflare.user-scoped-collections.md +628 -0
- package/agent/patterns/tanstack-cloudflare.websocket-manager.md +237 -0
- package/agent/patterns/tanstack-cloudflare.wrangler-configuration.md +358 -0
- package/agent/patterns/tanstack-cloudflare.zod-schema-validation.md +336 -0
- package/agent/progress.template.yaml +161 -0
- package/agent/progress.yaml +145 -0
- package/agent/schemas/package.schema.yaml +276 -0
- package/agent/scripts/acp.common.sh +1781 -0
- package/agent/scripts/acp.install.sh +333 -0
- package/agent/scripts/acp.package-create.sh +924 -0
- package/agent/scripts/acp.package-info.sh +288 -0
- package/agent/scripts/acp.package-install.sh +893 -0
- package/agent/scripts/acp.package-list.sh +311 -0
- package/agent/scripts/acp.package-publish.sh +420 -0
- package/agent/scripts/acp.package-remove.sh +348 -0
- package/agent/scripts/acp.package-search.sh +156 -0
- package/agent/scripts/acp.package-update.sh +517 -0
- package/agent/scripts/acp.package-validate.sh +1018 -0
- package/agent/scripts/acp.uninstall.sh +85 -0
- package/agent/scripts/acp.version-check-for-updates.sh +98 -0
- package/agent/scripts/acp.version-check.sh +47 -0
- package/agent/scripts/acp.version-update.sh +176 -0
- package/agent/scripts/acp.yaml-parser.sh +985 -0
- package/agent/scripts/acp.yaml-validate.sh +205 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-1-initialize-tanstack-start-project.md +210 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-2-implement-data-model-yaml-parser.md +294 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-3-build-server-api-data-loading.md +193 -0
- package/agent/tasks/milestone-1-project-scaffold-data-pipeline/task-4-add-auto-refresh-sse.md +262 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-10-polish-integration-testing.md +156 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-5-build-dashboard-layout-routing.md +178 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-6-build-overview-page.md +141 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-7-implement-milestone-table-view.md +153 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-8-implement-milestone-tree-view.md +174 -0
- package/agent/tasks/milestone-2-dashboard-views-interaction/task-9-implement-search-filtering.md +233 -0
- package/agent/tasks/task-1-{title}.template.md +244 -0
- package/bin/visualize.mjs +84 -0
- package/package.json +48 -0
- package/src/components/ExtraFieldsBadge.tsx +15 -0
- package/src/components/FilterBar.tsx +33 -0
- package/src/components/Header.tsx +23 -0
- package/src/components/MilestoneTable.tsx +167 -0
- package/src/components/MilestoneTree.tsx +84 -0
- package/src/components/ProgressBar.tsx +20 -0
- package/src/components/SearchInput.tsx +22 -0
- package/src/components/Sidebar.tsx +54 -0
- package/src/components/StatusBadge.tsx +23 -0
- package/src/components/StatusDot.tsx +12 -0
- package/src/components/TaskList.tsx +36 -0
- package/src/components/ViewToggle.tsx +31 -0
- package/src/lib/config.ts +8 -0
- package/src/lib/file-watcher.ts +43 -0
- package/src/lib/search.ts +48 -0
- package/src/lib/types.ts +73 -0
- package/src/lib/useAutoRefresh.ts +31 -0
- package/src/lib/useCollapse.ts +31 -0
- package/src/lib/useFilteredData.ts +55 -0
- package/src/lib/yaml-loader-real.spec.ts +47 -0
- package/src/lib/yaml-loader.spec.ts +201 -0
- package/src/lib/yaml-loader.ts +265 -0
- package/src/routeTree.gen.ts +140 -0
- package/src/router.tsx +10 -0
- package/src/routes/__root.tsx +75 -0
- package/src/routes/api/watch.ts +29 -0
- package/src/routes/index.tsx +115 -0
- package/src/routes/milestones.tsx +50 -0
- package/src/routes/search.tsx +84 -0
- package/src/routes/tasks.tsx +63 -0
- package/src/services/progress-database.service.ts +46 -0
- package/src/styles.css +25 -0
- package/tsconfig.json +24 -0
- package/vite.config.ts +16 -0
- 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
|