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