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