@prmichaelsen/acp-mcp 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 (94) hide show
  1. package/.env.example +5 -0
  2. package/AGENT.md +1279 -0
  3. package/README.md +78 -0
  4. package/agent/commands/acp.command-create.md +372 -0
  5. package/agent/commands/acp.design-create.md +224 -0
  6. package/agent/commands/acp.init.md +410 -0
  7. package/agent/commands/acp.package-create.md +894 -0
  8. package/agent/commands/acp.package-info.md +211 -0
  9. package/agent/commands/acp.package-install.md +461 -0
  10. package/agent/commands/acp.package-list.md +279 -0
  11. package/agent/commands/acp.package-publish.md +540 -0
  12. package/agent/commands/acp.package-remove.md +292 -0
  13. package/agent/commands/acp.package-search.md +306 -0
  14. package/agent/commands/acp.package-update.md +310 -0
  15. package/agent/commands/acp.package-validate.md +535 -0
  16. package/agent/commands/acp.pattern-create.md +326 -0
  17. package/agent/commands/acp.plan.md +552 -0
  18. package/agent/commands/acp.proceed.md +336 -0
  19. package/agent/commands/acp.project-create.md +672 -0
  20. package/agent/commands/acp.report.md +394 -0
  21. package/agent/commands/acp.resume.md +237 -0
  22. package/agent/commands/acp.status.md +280 -0
  23. package/agent/commands/acp.sync.md +363 -0
  24. package/agent/commands/acp.task-create.md +390 -0
  25. package/agent/commands/acp.update.md +301 -0
  26. package/agent/commands/acp.validate.md +436 -0
  27. package/agent/commands/acp.version-check-for-updates.md +275 -0
  28. package/agent/commands/acp.version-check.md +190 -0
  29. package/agent/commands/acp.version-update.md +288 -0
  30. package/agent/commands/command.template.md +316 -0
  31. package/agent/commands/git.commit.md +513 -0
  32. package/agent/commands/git.init.md +513 -0
  33. package/agent/commands/mcp-server-starter.add-tool.md +677 -0
  34. package/agent/commands/mcp-server-starter.init.md +894 -0
  35. package/agent/design/.gitkeep +0 -0
  36. package/agent/design/design.template.md +136 -0
  37. package/agent/design/remember-mcp-analysis.md +987 -0
  38. package/agent/design/requirements.template.md +387 -0
  39. package/agent/manifest.template.yaml +13 -0
  40. package/agent/manifest.yaml +109 -0
  41. package/agent/milestones/.gitkeep +0 -0
  42. package/agent/milestones/milestone-1-{title}.template.md +206 -0
  43. package/agent/package.template.yaml +36 -0
  44. package/agent/patterns/.gitkeep +0 -0
  45. package/agent/patterns/bootstrap.template.md +1237 -0
  46. package/agent/patterns/mcp-server-starter.bootstrap.md +597 -0
  47. package/agent/patterns/mcp-server-starter.build-config.md +554 -0
  48. package/agent/patterns/mcp-server-starter.config-management.md +525 -0
  49. package/agent/patterns/mcp-server-starter.server-factory.md +616 -0
  50. package/agent/patterns/mcp-server-starter.server-standalone.md +642 -0
  51. package/agent/patterns/mcp-server-starter.test-config.md +558 -0
  52. package/agent/patterns/mcp-server-starter.tool-creation.md +653 -0
  53. package/agent/patterns/pattern.template.md +364 -0
  54. package/agent/progress.template.yaml +161 -0
  55. package/agent/progress.yaml +33 -0
  56. package/agent/schemas/package.schema.yaml +161 -0
  57. package/agent/scripts/acp.common.sh +1362 -0
  58. package/agent/scripts/acp.install.sh +213 -0
  59. package/agent/scripts/acp.package-create.sh +925 -0
  60. package/agent/scripts/acp.package-info.sh +270 -0
  61. package/agent/scripts/acp.package-install.sh +550 -0
  62. package/agent/scripts/acp.package-list.sh +263 -0
  63. package/agent/scripts/acp.package-publish.sh +420 -0
  64. package/agent/scripts/acp.package-remove.sh +272 -0
  65. package/agent/scripts/acp.package-search.sh +156 -0
  66. package/agent/scripts/acp.package-update.sh +356 -0
  67. package/agent/scripts/acp.package-validate.sh +766 -0
  68. package/agent/scripts/acp.uninstall.sh +85 -0
  69. package/agent/scripts/acp.version-check-for-updates.sh +98 -0
  70. package/agent/scripts/acp.version-check.sh +47 -0
  71. package/agent/scripts/acp.version-update.sh +158 -0
  72. package/agent/scripts/acp.yaml-parser.sh +736 -0
  73. package/agent/scripts/acp.yaml-validate.sh +205 -0
  74. package/agent/tasks/.gitkeep +0 -0
  75. package/agent/tasks/task-1-{title}.template.md +225 -0
  76. package/dist/config.d.ts +4 -0
  77. package/dist/server-factory.d.ts +9 -0
  78. package/dist/server-factory.js +99 -0
  79. package/dist/server-factory.js.map +7 -0
  80. package/dist/server.d.ts +2 -0
  81. package/dist/server.js +106 -0
  82. package/dist/server.js.map +7 -0
  83. package/dist/tools/acp-remote-list-files.d.ts +15 -0
  84. package/dist/types/ssh-config.d.ts +16 -0
  85. package/esbuild.build.js +34 -0
  86. package/esbuild.watch.js +31 -0
  87. package/jest.config.js +31 -0
  88. package/package.json +54 -0
  89. package/src/config.ts +16 -0
  90. package/src/server-factory.ts +43 -0
  91. package/src/server.ts +46 -0
  92. package/src/tools/acp-remote-list-files.ts +89 -0
  93. package/src/types/ssh-config.ts +17 -0
  94. package/tsconfig.json +22 -0
@@ -0,0 +1,535 @@
1
+ # Command: package-validate
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@acp.package-validate` 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-validate` 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**: Comprehensive package validation with shell and LLM checks, auto-fix, and test installation
16
+ **Category**: Maintenance
17
+ **Frequency**: As Needed
18
+
19
+ ---
20
+
21
+ ## What This Command Does
22
+
23
+ This command performs comprehensive validation of an ACP package to ensure it's ready for publishing. It combines shell-based structural validation (files, YAML, git) with LLM-based content quality validation, tests the package by installing it to a temporary directory, checks remote repository availability, and offers auto-fix capabilities for common issues.
24
+
25
+ Use this command before publishing a package, after making significant changes, or when preparing a release. It catches issues early and provides actionable fixes, ensuring package quality and preventing broken installations for users.
26
+
27
+ Unlike `@acp.validate` which validates general ACP documentation, `@acp.package-validate` is specifically designed for package authors and includes package-specific checks like namespace consistency, remote availability, and test installation.
28
+
29
+ ---
30
+
31
+ ## Prerequisites
32
+
33
+ - [ ] You are in an ACP package directory (package.yaml exists)
34
+ - [ ] Git repository initialized
35
+ - [ ] Git remote configured
36
+ - [ ] All package files created and documented
37
+
38
+ ---
39
+
40
+ ## Steps
41
+
42
+ ### 1. Detect Package Context
43
+
44
+ Verify this is a package directory.
45
+
46
+ **Actions**:
47
+ - Check if package.yaml exists in current directory
48
+ - If not found, report error: "Not a package directory. package.yaml not found."
49
+ - If found, proceed with validation
50
+
51
+ **Expected Outcome**: Package context confirmed
52
+
53
+ ### 2. Shell-Based Validation
54
+
55
+ Run structural validation checks that don't require LLM.
56
+
57
+ **Actions**:
58
+ - **YAML Validation**: Run `./agent/scripts/acp.yaml-validate.sh package.yaml`
59
+ - Validates package.yaml structure against schema
60
+ - Checks required fields (name, version, description, author, license, repository)
61
+ - Validates version format (semver: X.Y.Z)
62
+ - Checks reserved names (acp, local, core, system, global)
63
+ - Validates repository URL format
64
+ - **File Existence**: Check all files listed in package.yaml contents exist
65
+ - Verify patterns/ files exist
66
+ - Verify commands/ files exist
67
+ - Verify designs/ files exist
68
+ - Report missing files
69
+ - **Unlisted Files**: Check for agent/ files not in package.yaml
70
+ - Find all .md files in agent/patterns/, agent/commands/, agent/designs/
71
+ - Compare with package.yaml contents
72
+ - Report unlisted files
73
+ - **Namespace Consistency**: Validate filenames use package namespace
74
+ - Extract namespace from package.yaml name field
75
+ - **Only validates files listed in package.yaml contents**
76
+ - Skips files not in contents (e.g., installed dependencies tracked in manifest.yaml)
77
+ - Check all command files in contents start with {namespace}.
78
+ - Check all pattern files in contents start with {namespace}. (if package uses namespaced patterns)
79
+ - Report files without namespace prefix
80
+ - **Note**: Files in your repository but not in package.yaml contents are skipped (this is normal for installed dependencies)
81
+ - **Git Repository**: Validate git setup
82
+ - Check `.git/` directory exists
83
+ - Check git remote configured: `git remote -v`
84
+ - Extract remote URL
85
+ - Verify remote URL matches package.yaml repository field
86
+ - Report git issues
87
+ - **README.md**: Check README exists and has required sections
88
+ - Verify README.md exists
89
+ - Check for "What's Included" section
90
+ - Check for "Installation" section
91
+ - Check for "License" section
92
+ - Report missing sections
93
+
94
+ **Expected Outcome**: Shell validation complete with error/warning list
95
+
96
+ ### 3. LLM-Based Validation
97
+
98
+ Run content quality checks that require LLM analysis.
99
+
100
+ **Actions**:
101
+ - **Documentation Completeness**: Check all documents have complete sections
102
+ - Read each pattern, command, design file
103
+ - Verify all template sections filled in
104
+ - Check for placeholder text (e.g., "[Description]", "TODO")
105
+ - Verify examples are complete and realistic
106
+ - Report incomplete documentation
107
+ - **Content Quality**: Analyze documentation clarity
108
+ - Check descriptions are clear and helpful
109
+ - Verify steps are actionable and specific
110
+ - Ensure examples are realistic
111
+ - Validate code examples are syntactically correct
112
+ - Report quality issues
113
+ - **Namespace Consistency (Content)**: Check file content uses correct namespace
114
+ - Read command files
115
+ - Check invocation examples use correct namespace (@{namespace}-{command})
116
+ - Check related command links use correct namespace
117
+ - Report namespace inconsistencies
118
+ - **README Structure**: Validate README.md follows package structure
119
+ - Check overview is clear
120
+ - Verify installation instructions are correct
121
+ - Check "What's Included" section matches package.yaml
122
+ - Verify namespace convention documented
123
+ - Report README issues
124
+
125
+ **Expected Outcome**: LLM validation complete with quality assessment
126
+
127
+ ### 4. Test Installation
128
+
129
+ Install package to temporary directory to verify it works.
130
+
131
+ **Actions**:
132
+ - Create temporary directory: `/tmp/acp-validate-test-{timestamp}/`
133
+ - Initialize minimal ACP structure in temp directory:
134
+ - Create agent/patterns/, agent/commands/, agent/designs/
135
+ - Create minimal agent/manifest.yaml
136
+ - Run package installation:
137
+ - Execute: `./agent/scripts/acp.package-install.sh {current-directory} --yes`
138
+ - Capture installation output
139
+ - Check for errors
140
+ - Verify installation:
141
+ - Check files were copied to temp directory
142
+ - Verify manifest.yaml updated
143
+ - Check file count matches expected
144
+ - Cleanup:
145
+ - Remove temporary directory
146
+ - Report test results
147
+
148
+ **Expected Outcome**: Test installation succeeded or failed with details
149
+
150
+ ### 5. Remote Availability Check
151
+
152
+ Verify package is accessible from remote repository.
153
+
154
+ **Actions**:
155
+ - Extract repository URL from package.yaml
156
+ - Check if remote repository exists:
157
+ - Try: `git ls-remote {repository-url} HEAD`
158
+ - If succeeds: Remote is accessible
159
+ - If fails: Remote not accessible or doesn't exist
160
+ - Report remote status
161
+
162
+ **Expected Outcome**: Remote availability confirmed
163
+
164
+ ### 6. Generate Validation Report
165
+
166
+ Compile all validation results into comprehensive report.
167
+
168
+ **Actions**:
169
+ - Count total checks performed
170
+ - List all errors found (categorized)
171
+ - List all warnings found (categorized)
172
+ - Calculate validation score (% of checks passed)
173
+ - Determine overall status: PASS, PASS WITH WARNINGS, or FAIL
174
+ - Format report for display
175
+
176
+ **Expected Outcome**: Comprehensive validation report ready
177
+
178
+ ### 7. Offer Auto-Fix
179
+
180
+ If issues found, offer to fix them automatically.
181
+
182
+ **Actions**:
183
+ - Identify fixable issues:
184
+ - Missing files in package.yaml → Add them
185
+ - Unlisted files → Add to package.yaml
186
+ - Missing namespace prefix → Add prefix to filenames
187
+ - Missing README sections → Add sections
188
+ - Missing git remote → Prompt for URL and add
189
+ - Incomplete documentation → Prompt for missing information
190
+ - Present fix options:
191
+ - "Fix all issues automatically" (batch mode)
192
+ - "Fix issues one by one" (interactive mode)
193
+ - "Show me what would be fixed" (dry-run mode)
194
+ - "Skip auto-fix" (manual mode)
195
+ - If user chooses fix:
196
+ - Apply fixes based on mode
197
+ - Re-run validation
198
+ - Report results
199
+
200
+ **Expected Outcome**: Issues fixed or user declined
201
+
202
+ ### 8. Display Final Report
203
+
204
+ Show validation results to user.
205
+
206
+ **Actions**:
207
+ - Display formatted report in chat
208
+ - Show validation score
209
+ - List remaining issues (if any)
210
+ - Provide recommendations
211
+ - Suggest next steps
212
+
213
+ **Expected Outcome**: User informed of validation status
214
+
215
+ ---
216
+
217
+ ## Verification
218
+
219
+ - [ ] Package context detected (package.yaml exists)
220
+ - [ ] Shell validation completed (YAML, files, namespace, git, README)
221
+ - [ ] LLM validation completed (content quality, completeness)
222
+ - [ ] Test installation attempted
223
+ - [ ] Remote availability checked
224
+ - [ ] Validation report generated
225
+ - [ ] Auto-fix offered (if issues found)
226
+ - [ ] Final report displayed
227
+ - [ ] No validation errors remain OR user acknowledged remaining issues
228
+
229
+ ---
230
+
231
+ ## Expected Output
232
+
233
+ ### Files Modified
234
+
235
+ **If auto-fix used**:
236
+ - `package.yaml` - Added missing files to contents section
237
+ - `README.md` - Added missing sections
238
+ - `agent/commands/*.md` - Added namespace prefixes (if needed)
239
+ - `agent/patterns/*.md` - Added namespace prefixes (if needed)
240
+ - `.git/config` - Added remote (if missing)
241
+
242
+ **If auto-fix not used**:
243
+ - None (validation is read-only)
244
+
245
+ ### Console Output
246
+
247
+ ```
248
+ 🔍 ACP Package Validation
249
+
250
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
251
+
252
+ 📦 Package: firebase (v1.2.0)
253
+
254
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
255
+
256
+ 🔧 Shell Validation
257
+
258
+ ✅ YAML Structure
259
+ ✓ package.yaml is valid YAML
260
+ ✓ All required fields present
261
+ ✓ Version format valid (1.2.0)
262
+ ✓ Repository URL valid
263
+ ✓ No reserved names used
264
+
265
+ ✅ File Existence
266
+ ✓ All 6 files in contents exist
267
+ ✓ patterns/firebase.user-scoped-collections.md ✓
268
+ ✓ patterns/firebase.security-rules.md ✓
269
+ ✓ commands/firebase.init.md ✓
270
+ ✓ commands/firebase.migrate.md ✓
271
+ ✓ designs/firebase.architecture.md ✓
272
+ ✓ designs/firebase.integration.md ✓
273
+
274
+ ⚠️ Unlisted Files
275
+ ⚠️ Found 1 file not in package.yaml:
276
+ - patterns/firebase.queries.md (not listed in contents)
277
+
278
+ ✅ Namespace Consistency
279
+ ✓ All command files use 'firebase' namespace
280
+ ✓ All pattern files use 'firebase' namespace
281
+
282
+ ✅ Git Repository
283
+ ✓ Git repository initialized
284
+ ✓ Remote configured: https://github.com/user/acp-firebase.git
285
+ ✓ Remote URL matches package.yaml
286
+
287
+ ✅ README.md
288
+ ✓ README.md exists
289
+ ✓ Has "What's Included" section
290
+ ✓ Has "Installation" section
291
+ ✓ Has "License" section
292
+
293
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
294
+
295
+ 🤖 LLM Validation
296
+
297
+ ✅ Documentation Completeness
298
+ ✓ All patterns have complete sections
299
+ ✓ All commands have complete sections
300
+ ✓ All designs have complete sections
301
+ ✓ No placeholder text found
302
+
303
+ ✅ Content Quality
304
+ ✓ Descriptions are clear and helpful
305
+ ✓ Steps are actionable and specific
306
+ ✓ Examples are realistic and complete
307
+ ✓ Code examples are syntactically correct
308
+
309
+ ✅ Namespace Consistency (Content)
310
+ ✓ Command invocations use correct namespace
311
+ ✓ Related command links use correct namespace
312
+
313
+ ✅ README Structure
314
+ ✓ Overview is clear
315
+ ✓ Installation instructions correct
316
+ ✓ "What's Included" matches package.yaml
317
+ ✓ Namespace convention documented
318
+
319
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
320
+
321
+ 🧪 Test Installation
322
+
323
+ ✓ Created test directory: /tmp/acp-validate-test-1708478400/
324
+ ✓ Initialized minimal ACP structure
325
+ ✓ Installed package from current directory
326
+ ✓ Verified 6 files copied successfully
327
+ ✓ Verified manifest.yaml updated
328
+ ✓ Cleaned up test directory
329
+
330
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
+
332
+ 🌐 Remote Availability
333
+
334
+ ✓ Remote repository accessible
335
+ ✓ URL: https://github.com/user/acp-firebase.git
336
+ ✓ Latest commit: a1b2c3d4
337
+
338
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
339
+
340
+ 📊 Validation Summary
341
+
342
+ Total Checks: 32
343
+ Passed: 31
344
+ Warnings: 1
345
+ Errors: 0
346
+
347
+ Overall Status: ✅ PASS WITH WARNINGS
348
+
349
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
350
+
351
+ ⚠️ Issues Found
352
+
353
+ Warnings (1):
354
+ 1. Unlisted file: patterns/firebase.queries.md
355
+ → This file exists but is not listed in package.yaml contents
356
+
357
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
358
+
359
+ 🔧 Auto-Fix Available
360
+
361
+ I can fix these issues automatically:
362
+ 1. Add firebase.queries.md to package.yaml contents
363
+
364
+ Options:
365
+ 1. Fix all issues automatically (recommended)
366
+ 2. Fix issues one by one (interactive)
367
+ 3. Show what would be fixed (dry-run)
368
+ 4. Skip auto-fix (manual)
369
+
370
+ Choose option (1-4): 1
371
+
372
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
373
+
374
+ 🔧 Applying Fixes
375
+
376
+ ✓ Added patterns/firebase.queries.md to package.yaml
377
+ ✓ Updated package.yaml
378
+
379
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
380
+
381
+ 🔄 Re-running Validation
382
+
383
+ ✅ All checks passed!
384
+
385
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
386
+
387
+ ✅ Package Validation Complete!
388
+
389
+ Your package is ready to publish.
390
+
391
+ Recommendations:
392
+ - Run @acp.package-publish to publish this package
393
+ - Consider adding more examples to patterns
394
+ - Update CHANGELOG.md before publishing
395
+
396
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
397
+ ```
398
+
399
+ ### Status Update
400
+
401
+ - Validation completed
402
+ - Issues fixed (if auto-fix used)
403
+ - Package ready or needs manual fixes
404
+
405
+ ---
406
+
407
+ ## Examples
408
+
409
+ ### Example 1: Pre-Publish Validation
410
+
411
+ **Context**: About to publish package, want to ensure it's valid
412
+
413
+ **Invocation**: `@acp.package-validate`
414
+
415
+ **Result**: Runs all checks, finds 2 issues (missing file in package.yaml, incomplete README), offers auto-fix, fixes issues, re-validates, confirms package is ready
416
+
417
+ ### Example 2: After Adding New Files
418
+
419
+ **Context**: Added 3 new patterns, want to verify package is still valid
420
+
421
+ **Invocation**: `@acp.package-validate`
422
+
423
+ **Result**: Validates package, finds new files not listed in package.yaml, offers to add them, updates package.yaml, confirms all checks pass
424
+
425
+ ### Example 3: Validation Failure
426
+
427
+ **Context**: Package has multiple issues
428
+
429
+ **Invocation**: `@acp.package-validate`
430
+
431
+ **Result**: Finds 5 errors (missing git remote, invalid version format, namespace inconsistencies, incomplete docs, missing README sections), offers step-by-step fixes, guides through fixing each issue
432
+
433
+ ### Example 4: Clean Package
434
+
435
+ **Context**: Well-maintained package, routine validation
436
+
437
+ **Invocation**: `@acp.package-validate`
438
+
439
+ **Result**: All 32 checks pass, no warnings, no errors, confirms package is ready to publish
440
+
441
+ ---
442
+
443
+ ## Related Commands
444
+
445
+ - [`@acp.validate`](acp.validate.md) - General ACP documentation validation (not package-specific)
446
+ - [`@acp.package-publish`](acp.package-publish.md) - Publish package (runs validation first)
447
+ - [`@acp.pattern-create`](acp.pattern-create.md) - Create patterns (auto-updates package.yaml)
448
+ - [`@acp.command-create`](acp.command-create.md) - Create commands (auto-updates package.yaml)
449
+ - [`@acp.design-create`](acp.design-create.md) - Create designs (auto-updates package.yaml)
450
+
451
+ ---
452
+
453
+ ## Troubleshooting
454
+
455
+ ### Issue 1: Not a package directory
456
+
457
+ **Symptom**: Error "package.yaml not found"
458
+
459
+ **Cause**: Running command in non-package directory
460
+
461
+ **Solution**: Navigate to package directory, or create package with `@acp.package-create`
462
+
463
+ ### Issue 2: YAML validation fails
464
+
465
+ **Symptom**: Multiple YAML structure errors
466
+
467
+ **Cause**: Invalid YAML syntax or missing required fields
468
+
469
+ **Solution**: Fix YAML syntax (check indentation, quotes), add missing required fields, or use auto-fix
470
+
471
+ ### Issue 3: Test installation fails
472
+
473
+ **Symptom**: Package installs but test installation reports errors
474
+
475
+ **Cause**: Files missing, incorrect paths, or installation script issues
476
+
477
+ **Solution**: Check file paths in package.yaml, verify all files exist, ensure agent/ directory structure is correct
478
+
479
+ ### Issue 4: Remote not accessible
480
+
481
+ **Symptom**: Remote availability check fails
482
+
483
+ **Cause**: Repository doesn't exist, URL incorrect, or network issues
484
+
485
+ **Solution**: Verify repository URL in package.yaml, check git remote configuration, ensure repository is public or you have access
486
+
487
+ ### Issue 5: Namespace inconsistencies
488
+
489
+ **Symptom**: Files don't use package namespace
490
+
491
+ **Cause**: Files created manually without namespace prefix
492
+
493
+ **Solution**: Use auto-fix to add namespace prefixes, or rename files manually to include namespace
494
+
495
+ ---
496
+
497
+ ## Security Considerations
498
+
499
+ ### File Access
500
+ - **Reads**: `package.yaml`, all files in `agent/` directory, `README.md`, `.git/config`
501
+ - **Writes**: Only if auto-fix used: `package.yaml`, `README.md`, files being renamed
502
+ - **Executes**: `./agent/scripts/acp.yaml-validate.sh`, `./agent/scripts/acp.package-install.sh` (for test), `git` commands
503
+
504
+ ### Network Access
505
+ - **APIs**: None
506
+ - **Repositories**: Checks remote repository accessibility via `git ls-remote`
507
+
508
+ ### Sensitive Data
509
+ - **Secrets**: Never reads `.env` files or credential files
510
+ - **Credentials**: Does not access credentials (git operations use existing auth)
511
+
512
+ ---
513
+
514
+ ## Notes
515
+
516
+ - This command is designed for package authors, not package users
517
+ - Validation is comprehensive and may take 1-2 minutes for large packages
518
+ - Auto-fix is safe and non-destructive (creates backups)
519
+ - Test installation uses temporary directory (automatically cleaned up)
520
+ - Remote check requires network access
521
+ - LLM validation requires agent context (won't work in pure shell)
522
+ - Run this before every publish to ensure quality
523
+ - Validation score helps track package quality over time
524
+ - Consider running in CI/CD pipeline for automated quality checks
525
+
526
+ ---
527
+
528
+ **Namespace**: acp
529
+ **Command**: package-validate
530
+ **Version**: 1.0.0
531
+ **Created**: 2026-02-21
532
+ **Last Updated**: 2026-02-21
533
+ **Status**: Active
534
+ **Compatibility**: ACP 2.0.0+
535
+ **Author**: ACP Project