@amsterdamdatalabs/enact-extensions 0.1.3 → 0.1.8

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 (105) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/install.d.ts.map +1 -1
  7. package/dist/install.js +15 -1
  8. package/dist/install.js.map +1 -1
  9. package/dist/internal/agents.d.ts +29 -0
  10. package/dist/internal/agents.d.ts.map +1 -0
  11. package/dist/internal/agents.js +83 -0
  12. package/dist/internal/agents.js.map +1 -0
  13. package/extensions/enact-context/hooks/hooks.json +17 -7
  14. package/extensions/enact-core/.agents/plugin.json +39 -0
  15. package/extensions/enact-core/hooks/hooks.json +14 -0
  16. package/extensions/enact-factory/.agents/plugin.json +9 -3
  17. package/extensions/enact-factory/agents/architect.toml +30 -0
  18. package/extensions/enact-factory/agents/code-reviewer.toml +29 -0
  19. package/extensions/enact-factory/agents/critic.toml +35 -0
  20. package/extensions/enact-factory/agents/executor.toml +23 -0
  21. package/extensions/enact-factory/agents/explore.toml +22 -0
  22. package/extensions/enact-factory/agents/planner.toml +23 -0
  23. package/extensions/enact-factory/agents/verifier.toml +29 -0
  24. package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +52 -0
  25. package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +262 -0
  26. package/extensions/enact-factory/skills/azdo-ci-strategy/references/build-failures.md +60 -0
  27. package/extensions/enact-factory/skills/azdo-ci-strategy/references/cli-reference.md +87 -0
  28. package/extensions/enact-factory/skills/azdo-ci-strategy/references/policies-and-pipelines.md +132 -0
  29. package/extensions/enact-factory/skills/azdo-ci-strategy/references/troubleshooting.md +53 -0
  30. package/extensions/enact-factory/skills/deep-interview/SKILL.md +72 -0
  31. package/extensions/enact-factory/skills/drive-loop/SKILL.md +259 -0
  32. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +107 -0
  33. package/extensions/enact-factory/skills/hyperplan/SKILL.md +51 -0
  34. package/extensions/enact-factory/skills/looplan/SKILL.md +103 -0
  35. package/extensions/enact-factory/skills/plan/SKILL.md +71 -0
  36. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +41 -0
  37. package/extensions/enact-factory/skills/research/SKILL.md +73 -0
  38. package/extensions/enact-factory/skills/review/SKILL.md +48 -0
  39. package/extensions/enact-factory/skills/security-research/SKILL.md +54 -0
  40. package/extensions/enact-factory/skills/tdd/SKILL.md +56 -0
  41. package/extensions/enact-factory/skills/trace/SKILL.md +37 -0
  42. package/extensions/enact-factory/skills/ultraqa/SKILL.md +79 -0
  43. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +51 -0
  44. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +15 -0
  45. package/extensions/enact-loop/.agents/plugin.json +46 -0
  46. package/extensions/enact-loop/.mcp.json +1 -0
  47. package/extensions/enact-loop/hooks/hooks.json +27 -0
  48. package/extensions/enact-loop/skills/enact-loop/SKILL.md +327 -0
  49. package/extensions/enact-operator/.agents/plugin.json +0 -1
  50. package/extensions/enact-operator/hooks/hooks.json +0 -55
  51. package/extensions/enact-wiki/skills/wiki/SKILL.md +42 -0
  52. package/extensions/plugin-dev/.agents/plugin.json +4 -6
  53. package/extensions/plugin-dev/agents/plugin-validator.md +1 -1
  54. package/extensions/plugin-dev/skills/agent-development/SKILL.md +7 -7
  55. package/extensions/plugin-dev/{commands/create-plugin.md → skills/create-plugin/SKILL.md} +44 -37
  56. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +13 -14
  57. package/extensions/plugin-dev/skills/skill-development/SKILL.md +0 -2
  58. package/extensions/plugin-dev/{commands/start.md → skills/start/SKILL.md} +7 -6
  59. package/package.json +11 -6
  60. package/scripts/check-hooks.mjs +174 -0
  61. package/scripts/check-principles.mjs +101 -0
  62. package/scripts/enact-extensions.mjs +87 -3
  63. package/scripts/lib/run-validate.mjs +36 -2
  64. package/scripts/lib/ups-router.mjs +432 -0
  65. package/spec/enact.json +4 -0
  66. package/spec/enact.md +5 -2
  67. package/extensions/cmux/.agents/plugin.json +0 -37
  68. package/extensions/cmux/skills/cmux/SKILL.md +0 -82
  69. package/extensions/cmux/skills/cmux/agents/openai.yaml +0 -4
  70. package/extensions/cmux/skills/cmux/references/handles-and-identify.md +0 -35
  71. package/extensions/cmux/skills/cmux/references/panes-surfaces.md +0 -37
  72. package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +0 -23
  73. package/extensions/cmux/skills/cmux/references/windows-workspaces.md +0 -31
  74. package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +0 -122
  75. package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +0 -4
  76. package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +0 -66
  77. package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +0 -45
  78. package/extensions/cmux/skills/cmux-workspace/SKILL.md +0 -93
  79. package/extensions/devops/.agents/plugin.json +0 -36
  80. package/extensions/devops/skills/azure-devops-cli/SKILL.md +0 -431
  81. package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +0 -4
  82. package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +0 -217
  83. package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +0 -4
  84. package/extensions/enact-factory/hooks/user-prompt-submit.mjs +0 -67
  85. package/extensions/enact-operator/commands/doctor.md +0 -39
  86. package/extensions/enact-operator/commands/setup.md +0 -51
  87. package/extensions/plugin-dev/.mcp.json +0 -3
  88. package/extensions/plugin-dev/commands/_archive/create-marketplace.md +0 -427
  89. package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +0 -12
  90. package/extensions/plugin-dev/hooks/hooks.json +0 -3
  91. package/extensions/plugin-dev/skills/command-development/SKILL.md +0 -763
  92. package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +0 -612
  93. package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +0 -527
  94. package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +0 -762
  95. package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +0 -769
  96. package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +0 -508
  97. package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +0 -966
  98. package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +0 -943
  99. package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +0 -637
  100. package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +0 -191
  101. package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +0 -447
  102. package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +0 -723
  103. package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +0 -234
  104. package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +0 -160
  105. /package/extensions/enact-operator/{skills/_variants.md → docs/skill-variants.md} +0 -0
@@ -1,67 +0,0 @@
1
- #!/usr/bin/env node
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
- import { dirname, isAbsolute, join, resolve } from "node:path";
4
-
5
- function readStdin() {
6
- try {
7
- return JSON.parse(readFileSync(0, "utf8") || "{}");
8
- } catch {
9
- return {};
10
- }
11
- }
12
-
13
- function findWorkspaceRoot() {
14
- let current = resolve(process.cwd());
15
- while (true) {
16
- if (existsSync(join(current, "config.toml"))) {
17
- return current;
18
- }
19
- const parent = dirname(current);
20
- if (parent === current) {
21
- throw new Error(`Workspace config.toml not found while walking up from ${process.cwd()}`);
22
- }
23
- current = parent;
24
- }
25
- }
26
-
27
- function expandPath(raw, sourceDir) {
28
- const trimmed = raw.trim();
29
- if (trimmed === "~") return process.env.HOME ?? trimmed;
30
- if (trimmed.startsWith("~/")) return join(process.env.HOME ?? "", trimmed.slice(2));
31
- if (isAbsolute(trimmed)) return trimmed;
32
- return resolve(sourceDir, trimmed);
33
- }
34
-
35
- function readFactoryStorage(root) {
36
- const configPath = join(root, "config.toml");
37
- const raw = readFileSync(configPath, "utf8");
38
- const match = raw.match(/^\[factory\][\s\S]*?^\s*storage\s*=\s*"([^"]+)"/m);
39
- if (!match?.[1]) {
40
- throw new Error(`Missing [factory].storage in ${configPath}`);
41
- }
42
- return expandPath(match[1], root);
43
- }
44
-
45
- function writeJson(path, data) {
46
- mkdirSync(dirname(path), { recursive: true });
47
- writeFileSync(path, `${JSON.stringify(data, null, 2)}\n`, "utf8");
48
- }
49
-
50
- const payload = readStdin();
51
- const prompt = payload?.prompt ?? payload?.user_prompt ?? payload?.input ?? payload?.message ?? "";
52
- if (typeof prompt !== "string") {
53
- process.exit(0);
54
- }
55
-
56
- const normalized = prompt.toLowerCase();
57
- if (!normalized.includes("$workitem-triage") && !normalized.includes("$enact-factory:workitem-triage")) {
58
- process.exit(0);
59
- }
60
-
61
- const root = findWorkspaceRoot();
62
- const factoryStorage = readFactoryStorage(root);
63
- writeJson(join(factoryStorage, "state", "factory-active-skill.json"), {
64
- activeSkill: "workitem-triage",
65
- activatedAt: new Date().toISOString(),
66
- activatedBy: "factory-hook-user-prompt-submit",
67
- });
@@ -1,39 +0,0 @@
1
- ---
2
- name: doctor
3
- description: Health-check Enact Operator install, hooks, plugins, and runtime readiness
4
- argument-hint: [focus-area]
5
- ---
6
-
7
- # Doctor
8
-
9
- Run the Enact Operator **doctor** workflow for this workspace. User focus (optional): `$ARGUMENTS`
10
-
11
- ## Policy
12
-
13
- - Start from repo truth (`.enact/operator/`, hook files, source plugin bundle), not chat memory.
14
- - If `operator_*` MCP tools are not visible, load the **enact-operator** MCP server first, then prefer MCP over CLI.
15
- - Report **healthy**, **degraded**, and **broken** with an exact fix per finding.
16
-
17
- ## Steps
18
-
19
- 1. Primary health surface:
20
- - MCP: `operator_doctor`
21
- - CLI: `enact-operator doctor`
22
- 2. If plugins are in scope, inspect source bundle validity:
23
- - MCP: `operator_plugin_list`, `operator_plugin_validate`
24
- - CLI: `enact-operator plugins validate`
25
- 3. If hooks are in scope (or user mentioned hooks):
26
- - MCP: `operator_hooks_status`
27
- - CLI: `enact-operator hooks status`
28
- 4. If sessions/team/runtime are in scope:
29
- - MCP: `operator_session_status`, `operator_team_status`, `operator_hud`
30
- 5. Summarize findings and the shortest remediation path for each issue.
31
-
32
- ## Output
33
-
34
- - What is healthy
35
- - What is degraded
36
- - What is broken
37
- - Exact command, file path, or config change to fix each item
38
-
39
- For deeper operator guidance, follow the `doctor` skill in this plugin's `skills/doctor/SKILL.md`.
@@ -1,51 +0,0 @@
1
- ---
2
- name: setup
3
- description: Bootstrap Enact Operator in this repo — layout, hooks, agents, and readiness checks
4
- argument-hint: [reinstall|validate-only]
5
- ---
6
-
7
- # Setup
8
-
9
- Run the Enact Operator **setup** workflow for this workspace. User mode (optional): `$ARGUMENTS`
10
-
11
- ## Policy
12
-
13
- - Start from the project root and existing `.enact/operator/` state, not chat memory.
14
- - If `operator_*` MCP tools are not visible, load the **enact-operator** MCP server first, then prefer MCP over CLI.
15
- - Confirm each step before advancing; do not skip verification at the end.
16
-
17
- ## Workflow
18
-
19
- 1. Top-level installer:
20
- - MCP: `operator_setup`
21
- - CLI: `enact-operator setup`
22
- 2. Install hooks (no MCP equivalent):
23
- - CLI: `enact-operator hooks install`
24
- 3. Hook registration:
25
- - MCP: `operator_hooks_status`
26
- - CLI: `enact-operator hooks status`
27
- 4. Agent role-pack:
28
- - MCP: `operator_agents_pack_install`
29
- - CLI: `enact-operator agents install-pack`
30
- 5. Plugin bundle source coherence:
31
- - MCP: `operator_plugin_validate`
32
- - CLI: `enact-operator plugins validate`
33
- 6. Install registry:
34
- - MCP: `operator_install_registry`
35
- 7. Runtime health:
36
- - MCP: `operator_doctor`
37
- - CLI: `enact-operator doctor`
38
- 8. Replacement readiness:
39
- - MCP: `operator_audit_replacement_readiness`
40
- - CLI: `enact-operator audit replacement-readiness`
41
-
42
- If the user passed `validate-only`, run steps 3–8 only (skip install mutations).
43
-
44
- ## Final check
45
-
46
- - Doctor reports no blocking errors
47
- - Plugin validation reports the enact-operator source bundle is valid
48
- - Hooks status shows required hooks registered
49
- - `.enact/operator/` exists with expected subdirectories
50
-
51
- For full setup contract details, follow the `enact-operator-setup` skill in `skills/setup/SKILL.md`.
@@ -1,3 +0,0 @@
1
- {
2
- "mcpServers": {}
3
- }
@@ -1,427 +0,0 @@
1
- ---
2
- description: Create plugin marketplaces with guided workflow
3
- argument-hint: [marketplace-description]
4
- allowed-tools: Read, Write, Edit, Grep, Glob, Bash(mkdir:*), Bash(git init:*), TaskCreate, TaskGet, TaskUpdate, TaskList, AskUserQuestion, Skill, Task
5
- model: sonnet
6
- ---
7
-
8
- # Marketplace Creation Workflow
9
-
10
- Guide the user through creating a complete plugin marketplace from initial concept to validated, distributable collection. Follow a systematic approach: understand requirements, plan plugins, configure structure, add entries, validate, and prepare for distribution.
11
-
12
- ## Core Principles
13
-
14
- - **Ask clarifying questions**: Identify all ambiguities about marketplace purpose, plugins, distribution strategy. Ask specific questions rather than making assumptions. Wait for user answers before proceeding.
15
- - **Load marketplace-structure skill**: Use the Skill tool to load the marketplace-structure skill for schema and pattern guidance
16
- - **Use plugin-validator agent**: Leverage the plugin-validator agent for comprehensive marketplace validation
17
- - **Follow best practices**: Apply patterns from this repository's own marketplace.json
18
- - **Use Task tools**: Track all progress throughout all phases using TaskCreate, TaskUpdate, and TaskList
19
-
20
- **Initial request:** $ARGUMENTS
21
-
22
- **Security note:** This workflow has broad file system access to create marketplace structures. It can write files and create directories within your permission scope. Review the target directory before starting, and see [docs/workflow-security.md](../../../docs/workflow-security.md) for details.
23
-
24
- ---
25
-
26
- ## Phase 1: Discovery
27
-
28
- **Goal**: Understand what marketplace needs to be created and its purpose
29
-
30
- **Actions**:
31
-
32
- 1. Create task list with all 8 phases
33
- 2. If marketplace purpose is clear from arguments:
34
- - Summarize understanding
35
- - Identify marketplace type (team internal, community, single-plugin, multi-plugin)
36
- 3. If marketplace purpose is unclear, ask user:
37
- - What plugins will this marketplace contain?
38
- - Who is the target audience? (team, community, public)
39
- - Will plugins be local (in same repo) or external (GitHub, git URLs)?
40
- - Single maintainer or community contributions?
41
- 4. Summarize understanding and confirm with user before proceeding
42
-
43
- **Output**: Clear statement of marketplace purpose and distribution strategy
44
-
45
- ---
46
-
47
- ## Phase 2: Plugin Planning
48
-
49
- **Goal**: Determine which plugins to include and their sources
50
-
51
- **MUST load marketplace-structure skill** using Skill tool before this phase.
52
-
53
- **Actions**:
54
-
55
- 1. Load marketplace-structure skill for schema guidance
56
- 2. List plugins to include in marketplace:
57
- - For each plugin: name, source type, brief description
58
- 3. Categorize by source type:
59
- - **Local (relative path)**: Plugins maintained in same repository
60
- - **GitHub**: External plugins on GitHub
61
- - **Git URL**: External plugins on GitLab, Bitbucket, or self-hosted
62
- 4. Present plugin plan to user as table:
63
-
64
- ```text
65
- | Plugin Name | Source Type | Description |
66
- |------------------|-------------|------------------------|
67
- | code-formatter | local | Code formatting tools |
68
- | security-scanner | github | Security analysis |
69
- | legacy-tool | git-url | Legacy utility |
70
- ```
71
-
72
- 5. For each local plugin, determine:
73
- - Does it already exist? (will validate)
74
- - Need to create it? (redirect to /plugin-dev:create-plugin)
75
- 6. Get user confirmation or adjustments
76
-
77
- **Output**: Confirmed list of plugins with sources
78
-
79
- ---
80
-
81
- ## Phase 3: Metadata Design
82
-
83
- **Goal**: Define marketplace metadata and owner information
84
-
85
- **Actions**:
86
-
87
- 1. Determine marketplace name:
88
- - Must be kebab-case (lowercase, hyphens)
89
- - Should be descriptive of purpose
90
- - Examples: `team-tools`, `security-plugins`, `awesome-claude-plugins`
91
-
92
- 2. Gather owner information:
93
- - Ask user: "Who maintains this marketplace?"
94
- - Required: name
95
- - Optional: email, url
96
-
97
- 3. Define optional metadata:
98
- - description: Brief marketplace description
99
- - version: Initial version (recommend 1.0.0 or 0.1.0)
100
- - pluginRoot: Base path for relative sources (default: none)
101
-
102
- 4. Present configuration summary:
103
-
104
- ```json
105
- {
106
- "name": "team-tools",
107
- "owner": {
108
- "name": "Platform Team",
109
- "email": "platform@company.com"
110
- },
111
- "metadata": {
112
- "description": "Internal development tools",
113
- "version": "1.0.0"
114
- }
115
- }
116
- ```
117
-
118
- 5. Get user confirmation
119
-
120
- **Output**: Confirmed marketplace metadata
121
-
122
- ---
123
-
124
- ## Phase 4: Structure Creation
125
-
126
- **Goal**: Create marketplace directory structure and manifest
127
-
128
- **Actions**:
129
-
130
- 1. Determine marketplace location:
131
- - Ask user: "Where should I create the marketplace?"
132
- - Offer options: current directory, new directory, custom path
133
-
134
- 2. Create directory structure using bash:
135
-
136
- ```bash
137
- mkdir -p marketplace-name/.claude-plugin
138
- mkdir -p marketplace-name/plugins # if local plugins
139
- ```
140
-
141
- 3. Create marketplace.json manifest using Write tool:
142
-
143
- ```json
144
- {
145
- "name": "marketplace-name",
146
- "owner": {
147
- "name": "[from Phase 3]"
148
- },
149
- "metadata": {
150
- "description": "[from Phase 3]",
151
- "version": "[from Phase 3]"
152
- },
153
- "plugins": []
154
- }
155
- ```
156
-
157
- 4. Create README.md template with:
158
- - Marketplace description
159
- - Installation instructions
160
- - Available plugins table (to be filled in Phase 5)
161
- - Contributing guidelines (if community)
162
-
163
- 5. Initialize git repo if creating new directory (only `git init` is available; additional git operations like staging and committing are left to the user after the workflow completes to respect their commit preferences)
164
-
165
- **Output**: Marketplace directory structure created
166
-
167
- **Post-workflow git operations** (user can run after completion):
168
-
169
- ```bash
170
- git add .
171
- git commit -m "feat: initial marketplace structure"
172
- ```
173
-
174
- ---
175
-
176
- ## Phase 5: Plugin Entry Configuration
177
-
178
- **Goal**: Configure each plugin entry with appropriate metadata
179
-
180
- **Actions**:
181
-
182
- 1. For each plugin in the plan (from Phase 2):
183
-
184
- **For local plugins**:
185
- - If plugin exists:
186
- - Read its plugin.json to get metadata
187
- - Create entry with relative source path
188
- - If plugin doesn't exist:
189
- - Ask: "Plugin 'X' doesn't exist. Create it now or add placeholder?"
190
- - If create: Use Task tool to run /plugin-dev:create-plugin
191
- - If placeholder: Create entry with TODO comment in README
192
-
193
- **For GitHub plugins**:
194
- - Create entry with github source object
195
- - Prompt for version, description if not known
196
- - Consider strict: false if plugin lacks plugin.json
197
-
198
- **For git URL plugins**:
199
- - Create entry with url source object
200
- - Prompt for version, description if not known
201
-
202
- 2. For each entry, configure optional fields:
203
- - version (recommend always including)
204
- - description (recommend always including)
205
- - category (if marketplace uses categories)
206
- - tags (for discoverability)
207
-
208
- 3. Update marketplace.json with all plugin entries
209
-
210
- 4. Update README.md with plugin table:
211
-
212
- | Plugin | Description | Version |
213
- | ------ | ----------- | ------- |
214
- | X | Does Y | 1.0.0 |
215
-
216
- **Output**: All plugin entries configured in marketplace.json
217
-
218
- ---
219
-
220
- ## Phase 6: Distribution Setup
221
-
222
- **Goal**: Configure distribution strategy based on target audience
223
-
224
- **Actions**:
225
-
226
- 1. **For team/internal marketplaces**:
227
- - Provide team settings configuration:
228
-
229
- ```json
230
- {
231
- "extraKnownMarketplaces": {
232
- "marketplace-name": {
233
- "source": {
234
- "source": "github",
235
- "repo": "org/marketplace-repo"
236
- }
237
- }
238
- }
239
- }
240
- ```
241
-
242
- - Document which plugins should be in `enabledPlugins`
243
- - Add to README: How team members install
244
-
245
- 2. **For community/public marketplaces**:
246
- - Create CONTRIBUTING.md with:
247
- - Plugin submission guidelines
248
- - Review process
249
- - Quality requirements
250
- - Create CI workflow for validation (optional):
251
- - JSON syntax check
252
- - Required field validation
253
- - Duplicate name detection
254
-
255
- 3. **For all marketplaces**:
256
- - Document installation command in README:
257
-
258
- ```bash
259
- /plugin marketplace add owner/repo
260
- ```
261
-
262
- - List individual plugin installation:
263
-
264
- ```bash
265
- /plugin install plugin-name@marketplace-name
266
- ```
267
-
268
- **Output**: Distribution documentation complete
269
-
270
- ---
271
-
272
- ## Phase 7: Validation
273
-
274
- **Goal**: Ensure marketplace meets quality standards
275
-
276
- **Actions**:
277
-
278
- 1. **Run plugin-validator agent**:
279
- - Use plugin-validator agent to validate marketplace
280
- - Check: schema, required fields, plugin entries, source paths
281
-
282
- 2. **Fix critical issues**:
283
- - Address any critical errors from validation
284
- - Fix warnings that indicate real problems
285
-
286
- 3. **Validate local plugins** (if any):
287
- - For each local plugin, run plugin validation
288
- - Fix any issues found
289
-
290
- 4. **Check best practices**:
291
- - All entries have version
292
- - All entries have description
293
- - README documents all plugins
294
- - Owner information complete
295
-
296
- 5. **Present validation report**:
297
- - Summary of marketplace validation
298
- - Summary of each local plugin validation
299
- - Overall quality assessment
300
-
301
- 6. **Ask user**: "Validation complete. Would you like me to fix any issues, or proceed to testing?"
302
-
303
- **Output**: Marketplace validated and ready for testing
304
-
305
- ---
306
-
307
- ## Phase 8: Testing & Finalization
308
-
309
- **Goal**: Test marketplace installation and finalize
310
-
311
- **Actions**:
312
-
313
- 1. **Test locally**:
314
- - Show user how to test:
315
-
316
- ```bash
317
- /plugin marketplace add ./path/to/marketplace
318
- ```
319
-
320
- - List marketplace:
321
-
322
- ```bash
323
- /plugin marketplace list
324
- ```
325
-
326
- - Install test plugin:
327
-
328
- ```bash
329
- /plugin install plugin-name@marketplace-name
330
- ```
331
-
332
- 2. **Verification checklist**:
333
- - [ ] Marketplace adds successfully
334
- - [ ] All plugins appear in `/plugin` browser
335
- - [ ] Local plugins install correctly
336
- - [ ] External plugins accessible (if public)
337
-
338
- 3. **Create summary**:
339
- - Mark all tasks complete
340
- - List what was created:
341
- - Marketplace name and purpose
342
- - Number of plugins configured
343
- - Distribution strategy
344
- - Key files created
345
- - Next steps:
346
- - Push to GitHub/git hosting
347
- - Share with team
348
- - Add to project settings
349
-
350
- 4. **Suggest improvements** (optional):
351
- - Additional plugins to consider
352
- - CI/CD integration opportunities
353
- - Version management strategies
354
-
355
- **Output**: Complete, validated marketplace ready for distribution
356
-
357
- ---
358
-
359
- ## Important Notes
360
-
361
- ### Throughout All Phases
362
-
363
- - **Use Task tools** to track progress at every phase (TaskCreate, TaskUpdate, TaskList)
364
- - **Load marketplace-structure skill** for schema reference
365
- - **Use plugin-validator agent** for validation
366
- - **Ask for user confirmation** at key decision points
367
- - **Follow this repository's marketplace.json** as reference
368
- - **Apply best practices**:
369
- - kebab-case names
370
- - Complete owner information
371
- - Version all entries
372
- - Document all plugins in README
373
- - ${CLAUDE_PLUGIN_ROOT} for local plugin paths
374
-
375
- ### Key Decision Points (Wait for User)
376
-
377
- 1. After Phase 1: Confirm marketplace purpose
378
- 2. After Phase 2: Approve plugin plan
379
- 3. After Phase 3: Confirm metadata
380
- 4. After Phase 5: Proceed to distribution setup
381
- 5. After Phase 7: Fix issues or proceed
382
-
383
- ### Skills to Load
384
-
385
- - **Phase 2+**: marketplace-structure (for schema and patterns)
386
- - **Phase 5**: plugin-structure (if creating local plugins)
387
-
388
- ### Quality Standards
389
-
390
- Every marketplace must meet these standards:
391
-
392
- - ✅ Valid JSON syntax
393
- - ✅ All required fields present (name, owner, plugins)
394
- - ✅ Plugin entries have name and source
395
- - ✅ No duplicate plugin names
396
- - ✅ Local source paths exist
397
- - ✅ README documents marketplace and plugins
398
- - ✅ Validated with plugin-validator agent
399
-
400
- ---
401
-
402
- ## Example Workflow
403
-
404
- ### User Request
405
-
406
- "Create a marketplace for our team's internal tools"
407
-
408
- ### Phase 1: Discovery
409
-
410
- - Understand: Internal team distribution
411
- - Confirm: Team-only plugins, GitHub hosting
412
-
413
- ### Phase 2: Plugin Planning
414
-
415
- - 3 plugins: linter-config (local), security-scanner (local), docs-generator (github)
416
-
417
- ### Phase 3: Metadata
418
-
419
- - name: team-tools
420
- - owner: Platform Team
421
- - version: 1.0.0
422
-
423
- ### Phase 4-8: Structure, Entries, Distribution, Validation, Testing
424
-
425
- ---
426
-
427
- Begin with Phase 1: Discovery.
@@ -1,12 +0,0 @@
1
- ---
2
- description: Get an overview of plugin development capabilities and skill routing
3
- argument-hint: [question or task]
4
- allowed-tools: Skill, AskUserQuestion
5
- model: sonnet
6
- ---
7
-
8
- Invoke the plugin-dev:plugin-dev-guide skill to load plugin development guidance.
9
-
10
- Then help with: $ARGUMENTS
11
-
12
- If no arguments provided, summarize what plugin development capabilities are available and ask the user what they want to build or learn about.
@@ -1,3 +0,0 @@
1
- {
2
- "hooks": {}
3
- }