@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,895 @@
|
|
|
1
|
+
# Command: package-create
|
|
2
|
+
|
|
3
|
+
> **🤖 Agent Directive**: If you are reading this file, the command `@acp.package-create` has been invoked. Follow the steps below to execute this command.
|
|
4
|
+
> Pretend this command was entered with this additional context: "Execute directive `@{namespace}-{command-name} 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**: 2.0.0
|
|
9
|
+
**Created**: 2026-02-20
|
|
10
|
+
**Last Updated**: 2026-02-21
|
|
11
|
+
**Status**: Active
|
|
12
|
+
**Scripts**: acp.package-create.sh, acp.common.sh, acp.yaml-parser.sh
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
**Purpose**: Create a new ACP package with full ACP installation, release branch configuration, and pre-commit hooks
|
|
17
|
+
**Category**: Creation
|
|
18
|
+
**Frequency**: Once per package
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## What This Command Does
|
|
23
|
+
|
|
24
|
+
This command creates a complete ACP package from scratch with:
|
|
25
|
+
|
|
26
|
+
1. **Full ACP Installation** - Runs `acp.install.sh` to install complete ACP structure
|
|
27
|
+
2. **Package Metadata** - Creates `package.yaml` with package information
|
|
28
|
+
3. **Release Branch Configuration** - Configures which branch(es) can publish
|
|
29
|
+
4. **Pre-Commit Hooks** - Installs validation hooks automatically
|
|
30
|
+
5. **Git Repository** - Initializes git with initial commit
|
|
31
|
+
6. **Documentation** - Creates README.md, LICENSE, CHANGELOG.md
|
|
32
|
+
|
|
33
|
+
Unlike the old version, this command:
|
|
34
|
+
- ✅ Installs **complete ACP** (all templates, commands, scripts)
|
|
35
|
+
- ✅ Configures **release branch** for publishing
|
|
36
|
+
- ✅ Installs **pre-commit hooks** for validation
|
|
37
|
+
- ❌ Does NOT create example files (use templates instead)
|
|
38
|
+
|
|
39
|
+
Use this command when starting a new ACP package that you plan to share with others.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Auto-Initialization
|
|
44
|
+
|
|
45
|
+
When creating packages in `~/.acp/projects/` for the first time, the system automatically initializes `~/.acp/` infrastructure:
|
|
46
|
+
- Creates `~/.acp/` directory
|
|
47
|
+
- Installs full ACP (templates, scripts, schemas)
|
|
48
|
+
- Creates `~/.acp/projects/` directory
|
|
49
|
+
- Creates `~/.acp/agent/manifest.yaml` for package tracking
|
|
50
|
+
|
|
51
|
+
This happens automatically - no manual setup required.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Prerequisites
|
|
56
|
+
|
|
57
|
+
- [ ] ACP installed in current directory (to access the script)
|
|
58
|
+
- [ ] Git installed on system
|
|
59
|
+
- [ ] Basic understanding of what content you want to package
|
|
60
|
+
- [ ] (Optional) GitHub account for publishing
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Steps
|
|
65
|
+
|
|
66
|
+
### 1. Gather Package Information via Chat
|
|
67
|
+
|
|
68
|
+
**IMPORTANT**: Collect all information from the user via chat BEFORE executing the script.
|
|
69
|
+
|
|
70
|
+
**Actions**:
|
|
71
|
+
1. Explain what information is needed and why
|
|
72
|
+
2. Ask user for each piece of information one at a time
|
|
73
|
+
3. Validate each input before proceeding
|
|
74
|
+
4. Summarize all collected information
|
|
75
|
+
5. Ask for confirmation before proceeding
|
|
76
|
+
|
|
77
|
+
**Information to Collect**:
|
|
78
|
+
|
|
79
|
+
**Package Name** (required)
|
|
80
|
+
- Ask: "What would you like to name your package? (lowercase, no spaces, hyphens allowed)"
|
|
81
|
+
- Validation: Must be lowercase, alphanumeric, and hyphens only
|
|
82
|
+
- Examples: "firebase", "mcp-integration", "oauth-2"
|
|
83
|
+
- Note: This becomes the directory name `acp-{name}/`
|
|
84
|
+
|
|
85
|
+
**Description** (required)
|
|
86
|
+
- Ask: "Provide a one-line description of your package:"
|
|
87
|
+
- Validation: Should be clear and concise (< 100 characters recommended)
|
|
88
|
+
- Examples: "Firebase patterns and utilities for ACP projects"
|
|
89
|
+
|
|
90
|
+
**Author Name** (required)
|
|
91
|
+
- Ask: "What is your name (package author)?"
|
|
92
|
+
- Examples: "Patrick Michaelsen", "Your Name"
|
|
93
|
+
|
|
94
|
+
**License** (optional, default: MIT)
|
|
95
|
+
- Ask: "What license would you like to use? (default: MIT)"
|
|
96
|
+
- Common options: MIT, Apache-2.0, GPL-3.0, BSD-3-Clause
|
|
97
|
+
- Default: MIT if not specified
|
|
98
|
+
|
|
99
|
+
**Homepage URL** (optional)
|
|
100
|
+
- Ask: "What is the homepage URL for this package? (optional, press Enter to skip)"
|
|
101
|
+
- Examples: "https://github.com/username/acp-firebase"
|
|
102
|
+
- Note: Can be GitHub repo URL or documentation site
|
|
103
|
+
|
|
104
|
+
**Repository URL** (required)
|
|
105
|
+
- Ask: "What is the git repository URL? (e.g., https://github.com/username/acp-{name}.git)"
|
|
106
|
+
- Validation: Should be a valid git URL
|
|
107
|
+
- Examples: "https://github.com/prmichaelsen/acp-firebase.git"
|
|
108
|
+
|
|
109
|
+
**Tags** (required)
|
|
110
|
+
- Ask: "What tags describe your package? (comma-separated, for discovery)"
|
|
111
|
+
- Validation: At least one tag recommended
|
|
112
|
+
- Examples: "firebase, firestore, database, backend"
|
|
113
|
+
- Note: These help users find your package via `@acp.package-search`
|
|
114
|
+
|
|
115
|
+
**Release Branch** (optional, default: main)
|
|
116
|
+
- Ask: "What branch should be used for publishing? (default: main)"
|
|
117
|
+
- Common options: main, master, mainline, release
|
|
118
|
+
- Default: main if not specified
|
|
119
|
+
- Note: Only commits to this branch can be published
|
|
120
|
+
|
|
121
|
+
**Target Directory** (optional)
|
|
122
|
+
- Ask: "Where would you like to create the package? (default: ~/.acp/projects/{package-name} or $HOME/.acp/projects/{package-name})"
|
|
123
|
+
- Supports: Absolute paths, relative paths, `~` expansion, `$HOME` expansion
|
|
124
|
+
- Examples: "~/.acp/projects/firebase", "~/dev/packages", "$HOME/packages", "/tmp", "."
|
|
125
|
+
- Default: `~/.acp/projects/{package-name}` if not specified (equivalent to `$HOME/.acp/projects/{package-name}`)
|
|
126
|
+
- Note: Package will be created in the specified directory
|
|
127
|
+
- Rationale: `~/.acp/projects/` is for development work, while `~/.acp/packages/` is reserved for installed packages from remote repositories
|
|
128
|
+
|
|
129
|
+
**Expected Outcome**: All metadata collected and validated
|
|
130
|
+
|
|
131
|
+
**Example Chat Interaction**:
|
|
132
|
+
```
|
|
133
|
+
Agent: Let's create a new ACP package! I'll need to collect some information from you.
|
|
134
|
+
|
|
135
|
+
Agent: What would you like to name your package? (lowercase, no spaces, hyphens allowed)
|
|
136
|
+
Examples: "firebase", "mcp-integration", "oauth-2"
|
|
137
|
+
|
|
138
|
+
User: firebase
|
|
139
|
+
|
|
140
|
+
Agent: Great! "firebase" is a valid package name. ✓
|
|
141
|
+
|
|
142
|
+
Agent: Provide a one-line description of your package:
|
|
143
|
+
|
|
144
|
+
User: Firebase patterns and utilities for ACP projects
|
|
145
|
+
|
|
146
|
+
Agent: Perfect! ✓
|
|
147
|
+
|
|
148
|
+
Agent: What is your name (package author)?
|
|
149
|
+
|
|
150
|
+
User: Patrick Michaelsen
|
|
151
|
+
|
|
152
|
+
Agent: ✓
|
|
153
|
+
|
|
154
|
+
Agent: What license would you like to use? (default: MIT)
|
|
155
|
+
|
|
156
|
+
User: [Enter]
|
|
157
|
+
|
|
158
|
+
Agent: Using MIT license. ✓
|
|
159
|
+
|
|
160
|
+
Agent: What is the homepage URL for this package? (optional, press Enter to skip)
|
|
161
|
+
|
|
162
|
+
User: https://github.com/prmichaelsen/acp-firebase
|
|
163
|
+
|
|
164
|
+
Agent: ✓
|
|
165
|
+
|
|
166
|
+
Agent: What is the git repository URL?
|
|
167
|
+
Example: https://github.com/username/acp-firebase.git
|
|
168
|
+
|
|
169
|
+
User: https://github.com/prmichaelsen/acp-firebase.git
|
|
170
|
+
|
|
171
|
+
Agent: ✓
|
|
172
|
+
|
|
173
|
+
Agent: What tags describe your package? (comma-separated, for discovery)
|
|
174
|
+
These help users find your package via @acp.package-search
|
|
175
|
+
|
|
176
|
+
User: firebase, firestore, database, backend
|
|
177
|
+
|
|
178
|
+
Agent: ✓
|
|
179
|
+
|
|
180
|
+
Agent: What branch should be used for publishing? (default: main)
|
|
181
|
+
|
|
182
|
+
User: [Enter]
|
|
183
|
+
|
|
184
|
+
Agent: Using main branch. ✓
|
|
185
|
+
|
|
186
|
+
Agent: Where would you like to create the package? (default: ~/.acp/projects/firebase or $HOME/.acp/projects/firebase)
|
|
187
|
+
|
|
188
|
+
User: [Enter]
|
|
189
|
+
|
|
190
|
+
Agent: Using ~/.acp/projects/firebase. ✓
|
|
191
|
+
|
|
192
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
193
|
+
|
|
194
|
+
Summary of collected information:
|
|
195
|
+
|
|
196
|
+
Package name: firebase
|
|
197
|
+
Description: Firebase patterns and utilities for ACP projects
|
|
198
|
+
Author: Patrick Michaelsen
|
|
199
|
+
License: MIT
|
|
200
|
+
Homepage: https://github.com/prmichaelsen/acp-firebase
|
|
201
|
+
Repository: https://github.com/prmichaelsen/acp-firebase.git
|
|
202
|
+
Tags: firebase, firestore, database, backend
|
|
203
|
+
Release branch: main
|
|
204
|
+
Target directory: ~/.acp/projects/firebase (or $HOME/.acp/projects/firebase)
|
|
205
|
+
|
|
206
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
207
|
+
|
|
208
|
+
Agent: Does this look correct? (yes/no)
|
|
209
|
+
|
|
210
|
+
User: yes
|
|
211
|
+
|
|
212
|
+
Agent: Excellent! I'll now create your package...
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 2. Execute Package Creation Script
|
|
216
|
+
|
|
217
|
+
Once all information is collected and confirmed, execute the script with the collected arguments.
|
|
218
|
+
|
|
219
|
+
**Actions**:
|
|
220
|
+
1. Prepare script execution with collected values
|
|
221
|
+
2. Execute `./agent/scripts/acp.package-create.sh` with heredoc input
|
|
222
|
+
3. Monitor script output and report progress
|
|
223
|
+
4. Verify successful completion
|
|
224
|
+
|
|
225
|
+
**Script Execution**:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
cd /home/prmichaelsen/agent-context-protocol
|
|
229
|
+
|
|
230
|
+
./agent/scripts/acp.package-create.sh << 'EOF'
|
|
231
|
+
{package-name}
|
|
232
|
+
{description}
|
|
233
|
+
{author}
|
|
234
|
+
{license}
|
|
235
|
+
{homepage}
|
|
236
|
+
{repository-url}
|
|
237
|
+
{tags}
|
|
238
|
+
{release-branch}
|
|
239
|
+
{target-directory}
|
|
240
|
+
EOF
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Example with collected values**:
|
|
244
|
+
```bash
|
|
245
|
+
./agent/scripts/acp.package-create.sh << 'EOF'
|
|
246
|
+
firebase
|
|
247
|
+
Firebase patterns and utilities for ACP projects
|
|
248
|
+
Patrick Michaelsen
|
|
249
|
+
MIT
|
|
250
|
+
https://github.com/prmichaelsen/acp-firebase
|
|
251
|
+
https://github.com/prmichaelsen/acp-firebase.git
|
|
252
|
+
firebase, firestore, database, backend
|
|
253
|
+
main
|
|
254
|
+
.
|
|
255
|
+
EOF
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Path Expansion**:
|
|
259
|
+
- `~` expands to user's home directory
|
|
260
|
+
- `$HOME` expands to home directory
|
|
261
|
+
- Relative paths resolved from current directory
|
|
262
|
+
- Absolute paths used as-is
|
|
263
|
+
|
|
264
|
+
**Expected Outcome**: Script executes successfully and creates complete package structure
|
|
265
|
+
|
|
266
|
+
**Script Output to Display**:
|
|
267
|
+
```
|
|
268
|
+
📦 ACP Package Creator
|
|
269
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
270
|
+
|
|
271
|
+
Creating new ACP package: firebase
|
|
272
|
+
|
|
273
|
+
Package name: firebase
|
|
274
|
+
Description: Firebase patterns and utilities for ACP projects
|
|
275
|
+
Author: Patrick Michaelsen
|
|
276
|
+
License: MIT
|
|
277
|
+
Homepage: https://github.com/prmichaelsen/acp-firebase
|
|
278
|
+
Repository: https://github.com/prmichaelsen/acp-firebase.git
|
|
279
|
+
Tags: firebase, firestore, database, backend
|
|
280
|
+
Release branch: main
|
|
281
|
+
|
|
282
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
283
|
+
|
|
284
|
+
Creating Directory Structure
|
|
285
|
+
|
|
286
|
+
✓ Created directory: acp-firebase/
|
|
287
|
+
|
|
288
|
+
Installing ACP
|
|
289
|
+
|
|
290
|
+
✓ ACP installed successfully
|
|
291
|
+
✓ All templates and commands available
|
|
292
|
+
|
|
293
|
+
Creating package.yaml
|
|
294
|
+
|
|
295
|
+
✓ Created package.yaml
|
|
296
|
+
✓ Configured release branch: main
|
|
297
|
+
|
|
298
|
+
Creating Documentation
|
|
299
|
+
|
|
300
|
+
✓ Created README.md
|
|
301
|
+
✓ Created LICENSE (MIT)
|
|
302
|
+
✓ Created CHANGELOG.md
|
|
303
|
+
✓ Created .gitignore
|
|
304
|
+
|
|
305
|
+
Installing Pre-Commit Hook
|
|
306
|
+
|
|
307
|
+
✓ Installed pre-commit hook
|
|
308
|
+
✓ Validates package.yaml before commits
|
|
309
|
+
|
|
310
|
+
Initializing Git Repository
|
|
311
|
+
|
|
312
|
+
✓ Initialized git repository
|
|
313
|
+
✓ Created initial commit
|
|
314
|
+
|
|
315
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
316
|
+
|
|
317
|
+
🎉 Package Created Successfully!
|
|
318
|
+
|
|
319
|
+
Your ACP package is ready at: ./acp-firebase/
|
|
320
|
+
|
|
321
|
+
[Next steps displayed...]
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Directory Structure Created**:
|
|
325
|
+
```
|
|
326
|
+
acp-{package-name}/
|
|
327
|
+
├── AGENT.md # ACP documentation
|
|
328
|
+
├── README.md # Package documentation
|
|
329
|
+
├── LICENSE # License file (MIT)
|
|
330
|
+
├── CHANGELOG.md # Version history
|
|
331
|
+
├── package.yaml # Package metadata
|
|
332
|
+
├── .gitignore # Git exclusions
|
|
333
|
+
└── agent/
|
|
334
|
+
├── .gitignore # Agent-specific exclusions
|
|
335
|
+
├── progress.template.yaml # Progress tracking template
|
|
336
|
+
├── manifest.template.yaml # Manifest template
|
|
337
|
+
├── design/
|
|
338
|
+
│ ├── .gitkeep
|
|
339
|
+
│ ├── requirements.template.md
|
|
340
|
+
│ └── design.template.md
|
|
341
|
+
├── milestones/
|
|
342
|
+
│ ├── .gitkeep
|
|
343
|
+
│ └── milestone-1-{title}.template.md
|
|
344
|
+
├── patterns/
|
|
345
|
+
│ ├── .gitkeep
|
|
346
|
+
│ ├── bootstrap.template.md
|
|
347
|
+
│ └── pattern.template.md
|
|
348
|
+
├── tasks/
|
|
349
|
+
│ ├── .gitkeep
|
|
350
|
+
│ └── task-1-{title}.template.md
|
|
351
|
+
├── commands/
|
|
352
|
+
│ ├── command.template.md
|
|
353
|
+
│ ├── acp.init.md
|
|
354
|
+
│ ├── acp.proceed.md
|
|
355
|
+
│ ├── acp.status.md
|
|
356
|
+
│ └── ... (all ACP commands)
|
|
357
|
+
├── scripts/
|
|
358
|
+
│ ├── acp.common.sh
|
|
359
|
+
│ ├── acp.install.sh
|
|
360
|
+
│ ├── acp.version-update.sh
|
|
361
|
+
│ └── ... (all ACP scripts)
|
|
362
|
+
└── schemas/
|
|
363
|
+
└── package.schema.yaml
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### 3. Display Script Output and Next Steps
|
|
367
|
+
|
|
368
|
+
After script execution completes, display the next steps for the user.
|
|
369
|
+
|
|
370
|
+
**Actions**:
|
|
371
|
+
- Confirm package was created successfully
|
|
372
|
+
- Show package location
|
|
373
|
+
- Provide GitHub publishing instructions
|
|
374
|
+
- Explain how to add content
|
|
375
|
+
- Remind about package.yaml maintenance
|
|
376
|
+
|
|
377
|
+
**Expected Outcome**: User knows exactly what to do next
|
|
378
|
+
|
|
379
|
+
**Instructions Display**:
|
|
380
|
+
```
|
|
381
|
+
🎉 Package Created Successfully!
|
|
382
|
+
|
|
383
|
+
Your ACP package is ready at: ./acp-{package-name}/
|
|
384
|
+
|
|
385
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
386
|
+
|
|
387
|
+
📋 Next Steps:
|
|
388
|
+
|
|
389
|
+
1. Add your content:
|
|
390
|
+
- Use @acp.pattern-create to create patterns
|
|
391
|
+
- Use @acp.command-create to create commands
|
|
392
|
+
- Use @acp.design-create to create designs
|
|
393
|
+
|
|
394
|
+
These commands automatically:
|
|
395
|
+
- Add namespace prefix to filenames
|
|
396
|
+
- Update package.yaml contents section
|
|
397
|
+
- Update README.md "What's Included" section
|
|
398
|
+
|
|
399
|
+
2. Validate your package:
|
|
400
|
+
cd acp-{package-name}
|
|
401
|
+
@acp.package-validate
|
|
402
|
+
|
|
403
|
+
This checks:
|
|
404
|
+
- package.yaml structure
|
|
405
|
+
- File existence and namespace consistency
|
|
406
|
+
- Git repository setup
|
|
407
|
+
- README.md structure
|
|
408
|
+
|
|
409
|
+
3. Create GitHub repository:
|
|
410
|
+
- Go to https://github.com/new
|
|
411
|
+
- Name: acp-{package-name}
|
|
412
|
+
- Description: {description}
|
|
413
|
+
- Create repository (public recommended)
|
|
414
|
+
|
|
415
|
+
4. Push to GitHub:
|
|
416
|
+
cd acp-{package-name}
|
|
417
|
+
git remote add origin {repository-url}
|
|
418
|
+
git branch -M {release-branch}
|
|
419
|
+
git push -u origin {release-branch}
|
|
420
|
+
|
|
421
|
+
5. Add GitHub topic for discoverability:
|
|
422
|
+
- Go to repository settings
|
|
423
|
+
- Add topic: "acp-package" (REQUIRED)
|
|
424
|
+
- Add other topics: {tags}
|
|
425
|
+
|
|
426
|
+
6. Publish your first version:
|
|
427
|
+
cd acp-{package-name}
|
|
428
|
+
@acp.package-publish
|
|
429
|
+
|
|
430
|
+
This will:
|
|
431
|
+
- Validate package
|
|
432
|
+
- Detect version bump from commits
|
|
433
|
+
- Update CHANGELOG.md
|
|
434
|
+
- Create git tag
|
|
435
|
+
- Push to remote
|
|
436
|
+
- Test installation
|
|
437
|
+
|
|
438
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
439
|
+
|
|
440
|
+
📚 Resources:
|
|
441
|
+
|
|
442
|
+
- Package structure guide: See AGENT.md
|
|
443
|
+
- package.yaml reference: agent/design/acp-package-management-system.md
|
|
444
|
+
- Entity creation: @acp.pattern-create, @acp.command-create, @acp.design-create
|
|
445
|
+
- Validation: @acp.package-validate
|
|
446
|
+
- Publishing: @acp.package-publish
|
|
447
|
+
|
|
448
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
449
|
+
|
|
450
|
+
✅ Package creation complete!
|
|
451
|
+
|
|
452
|
+
Your package has:
|
|
453
|
+
✓ Full ACP installation (all templates and commands)
|
|
454
|
+
✓ Pre-commit hook (validates package.yaml before commits)
|
|
455
|
+
✓ Release branch configured ({release-branch})
|
|
456
|
+
✓ Git repository initialized
|
|
457
|
+
|
|
458
|
+
Ready to add content with @acp.pattern-create, @acp.command-create, @acp.design-create
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### 4. Verify Package Creation
|
|
462
|
+
|
|
463
|
+
Check that all files were created correctly.
|
|
464
|
+
|
|
465
|
+
**Actions**:
|
|
466
|
+
- List created files
|
|
467
|
+
- Verify directory structure
|
|
468
|
+
- Check git repository status
|
|
469
|
+
- Confirm package.yaml is valid
|
|
470
|
+
- Verify pre-commit hook installed
|
|
471
|
+
|
|
472
|
+
**Expected Outcome**: Package is ready for content addition
|
|
473
|
+
|
|
474
|
+
**Verification Commands**:
|
|
475
|
+
```bash
|
|
476
|
+
# List package contents
|
|
477
|
+
ls -la acp-{package-name}/
|
|
478
|
+
|
|
479
|
+
# Check ACP installation
|
|
480
|
+
ls -la acp-{package-name}/agent/
|
|
481
|
+
|
|
482
|
+
# Check git status
|
|
483
|
+
cd acp-{package-name} && git status
|
|
484
|
+
|
|
485
|
+
# Verify package.yaml
|
|
486
|
+
cat acp-{package-name}/package.yaml
|
|
487
|
+
|
|
488
|
+
# Check pre-commit hook
|
|
489
|
+
ls -la acp-{package-name}/.git/hooks/pre-commit
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Verification
|
|
495
|
+
|
|
496
|
+
- [ ] Package directory created with correct name
|
|
497
|
+
- [ ] Full ACP installed (AGENT.md, agent/ directory with all files)
|
|
498
|
+
- [ ] All templates available (design, milestone, pattern, task, command)
|
|
499
|
+
- [ ] All ACP commands available (acp.init.md, acp.proceed.md, etc.)
|
|
500
|
+
- [ ] All ACP scripts available (acp.common.sh, acp.install.sh, etc.)
|
|
501
|
+
- [ ] `package.yaml` created with valid YAML
|
|
502
|
+
- [ ] Release branch configured in package.yaml
|
|
503
|
+
- [ ] README.md created with package information
|
|
504
|
+
- [ ] LICENSE file created
|
|
505
|
+
- [ ] CHANGELOG.md created with initial version
|
|
506
|
+
- [ ] .gitignore created
|
|
507
|
+
- [ ] Pre-commit hook installed and executable
|
|
508
|
+
- [ ] Git repository initialized
|
|
509
|
+
- [ ] Initial commit created
|
|
510
|
+
- [ ] GitHub publishing instructions displayed
|
|
511
|
+
- [ ] User understands next steps
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
## Expected Output
|
|
516
|
+
|
|
517
|
+
### Files Created
|
|
518
|
+
|
|
519
|
+
```
|
|
520
|
+
acp-{package-name}/
|
|
521
|
+
├── AGENT.md # ACP documentation
|
|
522
|
+
├── README.md # Package documentation
|
|
523
|
+
├── LICENSE # License file
|
|
524
|
+
├── CHANGELOG.md # Version history
|
|
525
|
+
├── package.yaml # Package metadata
|
|
526
|
+
├── .gitignore # Git exclusions
|
|
527
|
+
├── .git/
|
|
528
|
+
│ └── hooks/
|
|
529
|
+
│ └── pre-commit # Validation hook
|
|
530
|
+
└── agent/
|
|
531
|
+
├── .gitignore # Agent-specific exclusions
|
|
532
|
+
├── progress.template.yaml # Progress tracking template
|
|
533
|
+
├── manifest.template.yaml # Manifest template
|
|
534
|
+
├── design/
|
|
535
|
+
│ ├── .gitkeep
|
|
536
|
+
│ ├── requirements.template.md
|
|
537
|
+
│ └── design.template.md
|
|
538
|
+
├── milestones/
|
|
539
|
+
│ ├── .gitkeep
|
|
540
|
+
│ └── milestone-1-{title}.template.md
|
|
541
|
+
├── patterns/
|
|
542
|
+
│ ├── .gitkeep
|
|
543
|
+
│ ├── bootstrap.template.md
|
|
544
|
+
│ └── pattern.template.md
|
|
545
|
+
├── tasks/
|
|
546
|
+
│ ├── .gitkeep
|
|
547
|
+
│ └── task-1-{title}.template.md
|
|
548
|
+
├── commands/
|
|
549
|
+
│ ├── command.template.md
|
|
550
|
+
│ ├── acp.init.md
|
|
551
|
+
│ ├── acp.proceed.md
|
|
552
|
+
│ └── ... (all ACP commands)
|
|
553
|
+
├── scripts/
|
|
554
|
+
│ ├── acp.common.sh
|
|
555
|
+
│ ├── acp.install.sh
|
|
556
|
+
│ └── ... (all ACP scripts)
|
|
557
|
+
└── schemas/
|
|
558
|
+
└── package.schema.yaml
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### Console Output
|
|
562
|
+
|
|
563
|
+
```
|
|
564
|
+
📦 ACP Package Creator
|
|
565
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
566
|
+
|
|
567
|
+
Creating new ACP package: firebase
|
|
568
|
+
|
|
569
|
+
Package name: firebase
|
|
570
|
+
Description: Firebase patterns and utilities for ACP projects
|
|
571
|
+
Author: Patrick Michaelsen
|
|
572
|
+
License: MIT
|
|
573
|
+
Homepage: https://github.com/prmichaelsen/acp-firebase
|
|
574
|
+
Repository: https://github.com/prmichaelsen/acp-firebase.git
|
|
575
|
+
Tags: firebase, firestore, database, backend
|
|
576
|
+
Release branch: main
|
|
577
|
+
|
|
578
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
579
|
+
|
|
580
|
+
Creating Directory Structure
|
|
581
|
+
|
|
582
|
+
✓ Created directory: acp-firebase/
|
|
583
|
+
|
|
584
|
+
Installing ACP
|
|
585
|
+
|
|
586
|
+
✓ Cloning ACP repository...
|
|
587
|
+
✓ Creating directory structure...
|
|
588
|
+
✓ Installing ACP files...
|
|
589
|
+
✓ ACP installed successfully
|
|
590
|
+
|
|
591
|
+
Creating package.yaml
|
|
592
|
+
|
|
593
|
+
✓ Created package.yaml
|
|
594
|
+
✓ Configured release branch: main
|
|
595
|
+
|
|
596
|
+
Creating Documentation
|
|
597
|
+
|
|
598
|
+
✓ Created README.md
|
|
599
|
+
✓ Created LICENSE (MIT)
|
|
600
|
+
✓ Created CHANGELOG.md
|
|
601
|
+
✓ Created .gitignore
|
|
602
|
+
|
|
603
|
+
Installing Pre-Commit Hook
|
|
604
|
+
|
|
605
|
+
✓ Installed pre-commit hook
|
|
606
|
+
✓ Validates package.yaml before commits
|
|
607
|
+
|
|
608
|
+
Initializing Git Repository
|
|
609
|
+
|
|
610
|
+
✓ Initialized git repository
|
|
611
|
+
✓ Created initial commit
|
|
612
|
+
|
|
613
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
614
|
+
|
|
615
|
+
🎉 Package Created Successfully!
|
|
616
|
+
|
|
617
|
+
[Next steps displayed as shown in Step 3]
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
---
|
|
621
|
+
|
|
622
|
+
## Examples
|
|
623
|
+
|
|
624
|
+
### Example 1: Creating Firebase Package
|
|
625
|
+
|
|
626
|
+
**Context**: Want to share Firebase patterns with community
|
|
627
|
+
|
|
628
|
+
**Invocation**: `@acp.package-create`
|
|
629
|
+
|
|
630
|
+
**Interaction**:
|
|
631
|
+
```
|
|
632
|
+
Package name: firebase
|
|
633
|
+
Description: Firebase patterns and utilities for ACP projects
|
|
634
|
+
Author: Patrick Michaelsen
|
|
635
|
+
License [MIT]:
|
|
636
|
+
Homepage: https://github.com/prmichaelsen/acp-firebase
|
|
637
|
+
Repository: https://github.com/prmichaelsen/acp-firebase.git
|
|
638
|
+
Tags: firebase, firestore, database, backend
|
|
639
|
+
Release branch [main]:
|
|
640
|
+
Target directory [.]:
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
**Result**: Complete ACP package with full installation, ready to add Firebase patterns
|
|
644
|
+
|
|
645
|
+
### Example 2: Creating MCP Integration Package
|
|
646
|
+
|
|
647
|
+
**Context**: Want to package MCP server integration patterns
|
|
648
|
+
|
|
649
|
+
**Invocation**: `@acp.package-create`
|
|
650
|
+
|
|
651
|
+
**Interaction**:
|
|
652
|
+
```
|
|
653
|
+
Package name: mcp-integration
|
|
654
|
+
Description: Model Context Protocol server integration patterns
|
|
655
|
+
Author: Patrick Michaelsen
|
|
656
|
+
License [MIT]: Apache-2.0
|
|
657
|
+
Homepage: https://github.com/prmichaelsen/acp-mcp-integration
|
|
658
|
+
Repository: https://github.com/prmichaelsen/acp-mcp-integration.git
|
|
659
|
+
Tags: mcp, model-context-protocol, integration, server
|
|
660
|
+
Release branch [main]: mainline
|
|
661
|
+
Target directory [.]: ~/projects
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
**Result**: Package created in ~/projects/acp-mcp-integration/ with Apache-2.0 license and mainline release branch
|
|
665
|
+
|
|
666
|
+
### Example 3: Creating OAuth Package with Custom Branch
|
|
667
|
+
|
|
668
|
+
**Context**: Want to share OAuth 2.0 implementation patterns, using release branch
|
|
669
|
+
|
|
670
|
+
**Invocation**: `@acp.package-create`
|
|
671
|
+
|
|
672
|
+
**Interaction**:
|
|
673
|
+
```
|
|
674
|
+
Package name: oauth
|
|
675
|
+
Description: OAuth 2.0 authentication patterns and flows
|
|
676
|
+
Author: Patrick Michaelsen
|
|
677
|
+
License [MIT]: MIT
|
|
678
|
+
Homepage: https://github.com/prmichaelsen/acp-oauth
|
|
679
|
+
Repository: https://github.com/prmichaelsen/acp-oauth.git
|
|
680
|
+
Tags: oauth, authentication, security, auth
|
|
681
|
+
Release branch [main]: release
|
|
682
|
+
Target directory [.]:
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
**Result**: Package with release branch configured for publishing
|
|
686
|
+
|
|
687
|
+
---
|
|
688
|
+
|
|
689
|
+
## Related Commands
|
|
690
|
+
|
|
691
|
+
- [`@acp.pattern-create`](acp.pattern-create.md) - Create patterns in package
|
|
692
|
+
- [`@acp.command-create`](acp.command-create.md) - Create commands in package
|
|
693
|
+
- [`@acp.design-create`](acp.design-create.md) - Create designs in package
|
|
694
|
+
- [`@acp.package-validate`](acp.package-validate.md) - Validate package before publishing
|
|
695
|
+
- [`@acp.package-publish`](acp.package-publish.md) - Publish package to GitHub
|
|
696
|
+
- [`@acp.package-install`](acp.package-install.md) - Install packages (test your package)
|
|
697
|
+
- [`@git.init`](git.init.md) - Initialize git repository
|
|
698
|
+
- [`@git.commit`](git.commit.md) - Version-aware commits
|
|
699
|
+
|
|
700
|
+
---
|
|
701
|
+
|
|
702
|
+
## Troubleshooting
|
|
703
|
+
|
|
704
|
+
### Issue 1: Directory already exists
|
|
705
|
+
|
|
706
|
+
**Symptom**: Error "Directory acp-{name} already exists"
|
|
707
|
+
|
|
708
|
+
**Cause**: Package directory already created
|
|
709
|
+
|
|
710
|
+
**Solution**:
|
|
711
|
+
- Choose a different package name
|
|
712
|
+
- Or remove existing directory: `rm -rf acp-{name}`
|
|
713
|
+
- Or work in existing directory (skip creation steps)
|
|
714
|
+
|
|
715
|
+
### Issue 2: Git not installed
|
|
716
|
+
|
|
717
|
+
**Symptom**: Error "git: command not found"
|
|
718
|
+
|
|
719
|
+
**Cause**: Git not installed on system
|
|
720
|
+
|
|
721
|
+
**Solution**:
|
|
722
|
+
- Install git: https://git-scm.com/downloads
|
|
723
|
+
- Or skip git initialization (manual setup later)
|
|
724
|
+
|
|
725
|
+
### Issue 3: Invalid package name
|
|
726
|
+
|
|
727
|
+
**Symptom**: Warning about package name format
|
|
728
|
+
|
|
729
|
+
**Cause**: Package name contains spaces or special characters
|
|
730
|
+
|
|
731
|
+
**Solution**:
|
|
732
|
+
- Use lowercase letters, numbers, and hyphens only
|
|
733
|
+
- No spaces or special characters
|
|
734
|
+
- Examples: "firebase", "mcp-integration", "oauth-2"
|
|
735
|
+
|
|
736
|
+
### Issue 4: ACP installation failed
|
|
737
|
+
|
|
738
|
+
**Symptom**: Error during ACP installation step
|
|
739
|
+
|
|
740
|
+
**Cause**: Network issues or repository unavailable
|
|
741
|
+
|
|
742
|
+
**Solution**:
|
|
743
|
+
- Check internet connection
|
|
744
|
+
- Verify GitHub is accessible
|
|
745
|
+
- Try again later
|
|
746
|
+
- Or manually install ACP: `curl -fsSL https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainline/agent/scripts/acp.install.sh | bash`
|
|
747
|
+
|
|
748
|
+
### Issue 5: Pre-commit hook not working
|
|
749
|
+
|
|
750
|
+
**Symptom**: Hook doesn't run or validation fails
|
|
751
|
+
|
|
752
|
+
**Cause**: Hook not executable or validation script missing
|
|
753
|
+
|
|
754
|
+
**Solution**:
|
|
755
|
+
- Make hook executable: `chmod +x .git/hooks/pre-commit`
|
|
756
|
+
- Verify validation script exists: `ls agent/scripts/acp.yaml-validate.sh`
|
|
757
|
+
- Test hook manually: `.git/hooks/pre-commit`
|
|
758
|
+
|
|
759
|
+
---
|
|
760
|
+
|
|
761
|
+
## Security Considerations
|
|
762
|
+
|
|
763
|
+
### File Access
|
|
764
|
+
- **Reads**: None (creates new files)
|
|
765
|
+
- **Writes**: Creates entire package directory structure
|
|
766
|
+
- **Executes**: `acp.install.sh`, `git init`, `git add`, `git commit`
|
|
767
|
+
|
|
768
|
+
### Network Access
|
|
769
|
+
- **APIs**: None
|
|
770
|
+
- **Repositories**: Clones agent-context-protocol repository for ACP installation
|
|
771
|
+
|
|
772
|
+
### Sensitive Data
|
|
773
|
+
- **Secrets**: Never include secrets in package files
|
|
774
|
+
- **Credentials**: Never commit credentials to git
|
|
775
|
+
- **Personal Info**: Only include what you want public
|
|
776
|
+
|
|
777
|
+
---
|
|
778
|
+
|
|
779
|
+
## Notes
|
|
780
|
+
|
|
781
|
+
- Package name becomes directory name: `acp-{name}/`
|
|
782
|
+
- Package name in `package.yaml` should NOT include "acp-" prefix
|
|
783
|
+
- GitHub repository name should include "acp-" prefix for clarity
|
|
784
|
+
- Always add "acp-package" topic to GitHub repository for discoverability
|
|
785
|
+
- Update `package.yaml` whenever you add/remove files (or use entity creation commands)
|
|
786
|
+
- Follow semantic versioning for package and file versions
|
|
787
|
+
- Test package installation before publishing: `@acp.package-validate`
|
|
788
|
+
- Use `@acp.package-publish` for automated publishing workflow
|
|
789
|
+
- Pre-commit hook validates package.yaml before every commit
|
|
790
|
+
- Release branch configuration prevents accidental publishing from wrong branch
|
|
791
|
+
|
|
792
|
+
---
|
|
793
|
+
|
|
794
|
+
## Best Practices
|
|
795
|
+
|
|
796
|
+
### Package Naming
|
|
797
|
+
- Use descriptive, single-word names when possible
|
|
798
|
+
- Use hyphens for multi-word names (e.g., "mcp-integration")
|
|
799
|
+
- Avoid generic names (e.g., "utils", "helpers")
|
|
800
|
+
- Be specific about what the package provides
|
|
801
|
+
|
|
802
|
+
### Content Organization
|
|
803
|
+
- **Patterns**: Reusable architectural patterns
|
|
804
|
+
- **Commands**: Workflow automation commands
|
|
805
|
+
- **Designs**: Technical specifications and architecture docs
|
|
806
|
+
|
|
807
|
+
### Documentation
|
|
808
|
+
- Write clear, concise descriptions
|
|
809
|
+
- Include usage examples in README.md
|
|
810
|
+
- Document dependencies clearly
|
|
811
|
+
- Keep CHANGELOG.md updated
|
|
812
|
+
- Add troubleshooting section for common issues
|
|
813
|
+
|
|
814
|
+
### Version Management
|
|
815
|
+
- Start at 1.0.0 for initial release
|
|
816
|
+
- Use semantic versioning (MAJOR.MINOR.PATCH)
|
|
817
|
+
- Update CHANGELOG.md with each version
|
|
818
|
+
- Use `@acp.package-publish` for automated versioning
|
|
819
|
+
- Tag releases in git: `git tag v1.0.0`
|
|
820
|
+
|
|
821
|
+
### GitHub Setup
|
|
822
|
+
- Add "acp-package" topic (required for discovery)
|
|
823
|
+
- Add descriptive topics/tags
|
|
824
|
+
- Write clear repository description
|
|
825
|
+
- Include installation instructions in README
|
|
826
|
+
- Add LICENSE file
|
|
827
|
+
- Consider adding GitHub Actions for validation
|
|
828
|
+
|
|
829
|
+
### Development Workflow
|
|
830
|
+
1. Create package with `@acp.package-create`
|
|
831
|
+
2. Add content with `@acp.pattern-create`, `@acp.command-create`, `@acp.design-create`
|
|
832
|
+
3. Validate with `@acp.package-validate`
|
|
833
|
+
4. Commit changes (pre-commit hook validates automatically)
|
|
834
|
+
5. Publish with `@acp.package-publish`
|
|
835
|
+
6. Test installation: `@acp.package-install {your-repo-url}`
|
|
836
|
+
|
|
837
|
+
---
|
|
838
|
+
|
|
839
|
+
## Changes from v1.0.0
|
|
840
|
+
|
|
841
|
+
### Breaking Changes
|
|
842
|
+
- **Complete rewrite**: Now installs full ACP instead of minimal structure
|
|
843
|
+
- **No example files**: Use templates from ACP installation instead
|
|
844
|
+
- **Release branch required**: Must configure release branch for publishing
|
|
845
|
+
- **Pre-commit hooks**: Automatically installed (validates package.yaml)
|
|
846
|
+
|
|
847
|
+
### New Features
|
|
848
|
+
- Full ACP installation with all templates and commands
|
|
849
|
+
- Release branch configuration
|
|
850
|
+
- Pre-commit hook installation
|
|
851
|
+
- Better error handling and validation
|
|
852
|
+
- Clearer next steps and instructions
|
|
853
|
+
|
|
854
|
+
### Migration Guide
|
|
855
|
+
|
|
856
|
+
If you have packages created with v1.0.0:
|
|
857
|
+
|
|
858
|
+
1. **Install full ACP**:
|
|
859
|
+
```bash
|
|
860
|
+
cd your-package
|
|
861
|
+
curl -fsSL https://raw.githubusercontent.com/prmichaelsen/agent-context-protocol/mainline/agent/scripts/acp.install.sh | bash
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
2. **Add release branch to package.yaml**:
|
|
865
|
+
```yaml
|
|
866
|
+
release:
|
|
867
|
+
branch: main # or master, mainline, release
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
3. **Install pre-commit hook**:
|
|
871
|
+
```bash
|
|
872
|
+
# In your package directory
|
|
873
|
+
. agent/scripts/acp.common.sh
|
|
874
|
+
install_precommit_hook
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
4. **Remove example files** (if present):
|
|
878
|
+
```bash
|
|
879
|
+
rm agent/patterns/example-pattern.md
|
|
880
|
+
rm agent/commands/example-command.md
|
|
881
|
+
rm agent/design/example-design.md
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
5. **Update package.yaml contents** (remove example files from contents section)
|
|
885
|
+
|
|
886
|
+
---
|
|
887
|
+
|
|
888
|
+
**Namespace**: acp
|
|
889
|
+
**Command**: package-create
|
|
890
|
+
**Version**: 2.0.0
|
|
891
|
+
**Created**: 2026-02-20
|
|
892
|
+
**Last Updated**: 2026-02-21
|
|
893
|
+
**Status**: Active
|
|
894
|
+
**Compatibility**: ACP 2.8.0+
|
|
895
|
+
**Author**: ACP Project
|