@amsterdamdatalabs/enact-extensions 0.1.5 → 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.
- package/README.md +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +15 -1
- package/dist/install.js.map +1 -1
- package/dist/internal/agents.d.ts +29 -0
- package/dist/internal/agents.d.ts.map +1 -0
- package/dist/internal/agents.js +83 -0
- package/dist/internal/agents.js.map +1 -0
- package/extensions/enact-context/hooks/hooks.json +20 -0
- package/extensions/enact-core/.agents/plugin.json +39 -0
- package/extensions/enact-core/hooks/hooks.json +14 -0
- package/extensions/enact-factory/.agents/plugin.json +9 -3
- package/extensions/enact-factory/agents/architect.toml +30 -0
- package/extensions/enact-factory/agents/code-reviewer.toml +29 -0
- package/extensions/enact-factory/agents/critic.toml +35 -0
- package/extensions/enact-factory/agents/executor.toml +23 -0
- package/extensions/enact-factory/agents/explore.toml +22 -0
- package/extensions/enact-factory/agents/planner.toml +23 -0
- package/extensions/enact-factory/agents/verifier.toml +29 -0
- package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +52 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +262 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/references/build-failures.md +60 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/references/cli-reference.md +87 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/references/policies-and-pipelines.md +132 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/references/troubleshooting.md +53 -0
- package/extensions/enact-factory/skills/deep-interview/SKILL.md +72 -0
- package/extensions/enact-factory/skills/drive-loop/SKILL.md +259 -0
- package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +107 -0
- package/extensions/enact-factory/skills/hyperplan/SKILL.md +51 -0
- package/extensions/enact-factory/skills/looplan/SKILL.md +103 -0
- package/extensions/enact-factory/skills/plan/SKILL.md +71 -0
- package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +41 -0
- package/extensions/enact-factory/skills/research/SKILL.md +73 -0
- package/extensions/enact-factory/skills/review/SKILL.md +48 -0
- package/extensions/enact-factory/skills/security-research/SKILL.md +54 -0
- package/extensions/enact-factory/skills/tdd/SKILL.md +56 -0
- package/extensions/enact-factory/skills/trace/SKILL.md +37 -0
- package/extensions/enact-factory/skills/ultraqa/SKILL.md +79 -0
- package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +51 -0
- package/extensions/enact-factory/skills/workitem-triage/SKILL.md +15 -0
- package/extensions/enact-loop/.agents/plugin.json +46 -0
- package/extensions/enact-loop/.mcp.json +1 -0
- package/extensions/enact-loop/hooks/hooks.json +27 -0
- package/extensions/enact-loop/skills/enact-loop/SKILL.md +327 -0
- package/extensions/enact-operator/.agents/plugin.json +0 -1
- package/extensions/enact-operator/hooks/hooks.json +0 -35
- package/extensions/enact-wiki/skills/wiki/SKILL.md +42 -0
- package/extensions/plugin-dev/.agents/plugin.json +4 -6
- package/extensions/plugin-dev/agents/plugin-validator.md +1 -1
- package/extensions/plugin-dev/skills/agent-development/SKILL.md +7 -7
- package/extensions/plugin-dev/{commands/create-plugin.md → skills/create-plugin/SKILL.md} +44 -37
- package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +13 -14
- package/extensions/plugin-dev/skills/skill-development/SKILL.md +0 -2
- package/extensions/plugin-dev/{commands/start.md → skills/start/SKILL.md} +7 -6
- package/package.json +11 -6
- package/scripts/check-hooks.mjs +174 -0
- package/scripts/check-principles.mjs +101 -0
- package/scripts/enact-extensions.mjs +87 -3
- package/scripts/lib/run-validate.mjs +36 -2
- package/scripts/lib/ups-router.mjs +432 -0
- package/spec/enact.json +4 -0
- package/spec/enact.md +5 -2
- package/extensions/cmux/.agents/plugin.json +0 -37
- package/extensions/cmux/skills/cmux/SKILL.md +0 -82
- package/extensions/cmux/skills/cmux/agents/openai.yaml +0 -4
- package/extensions/cmux/skills/cmux/references/handles-and-identify.md +0 -35
- package/extensions/cmux/skills/cmux/references/panes-surfaces.md +0 -37
- package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +0 -23
- package/extensions/cmux/skills/cmux/references/windows-workspaces.md +0 -31
- package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +0 -122
- package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +0 -4
- package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +0 -66
- package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +0 -45
- package/extensions/cmux/skills/cmux-workspace/SKILL.md +0 -93
- package/extensions/devops/.agents/plugin.json +0 -36
- package/extensions/devops/skills/azure-devops-cli/SKILL.md +0 -431
- package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +0 -4
- package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +0 -217
- package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +0 -4
- package/extensions/enact-factory/hooks/user-prompt-submit.mjs +0 -67
- package/extensions/enact-operator/commands/doctor.md +0 -39
- package/extensions/enact-operator/commands/setup.md +0 -51
- package/extensions/plugin-dev/.mcp.json +0 -3
- package/extensions/plugin-dev/commands/_archive/create-marketplace.md +0 -427
- package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +0 -12
- package/extensions/plugin-dev/hooks/hooks.json +0 -3
- package/extensions/plugin-dev/skills/command-development/SKILL.md +0 -763
- package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +0 -612
- package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +0 -527
- package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +0 -762
- package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +0 -769
- package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +0 -508
- package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +0 -966
- package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +0 -943
- package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +0 -637
- package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +0 -191
- package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +0 -447
- package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +0 -723
- package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +0 -234
- package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +0 -160
- /package/extensions/enact-operator/{skills/_variants.md → docs/skill-variants.md} +0 -0
package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md
DELETED
|
@@ -1,943 +0,0 @@
|
|
|
1
|
-
# Marketplace Considerations for Commands
|
|
2
|
-
|
|
3
|
-
Guidelines for creating commands designed for distribution and marketplace success.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Commands distributed through marketplaces need additional consideration beyond personal use commands. They must work across environments, handle diverse use cases, and provide excellent user experience for unknown users.
|
|
8
|
-
|
|
9
|
-
## Design for Distribution
|
|
10
|
-
|
|
11
|
-
### Universal Compatibility
|
|
12
|
-
|
|
13
|
-
**Cross-platform considerations:**
|
|
14
|
-
|
|
15
|
-
```markdown
|
|
16
|
-
---
|
|
17
|
-
description: Cross-platform command
|
|
18
|
-
allowed-tools: Bash(*)
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Platform-Aware Command
|
|
22
|
-
|
|
23
|
-
Detecting platform...
|
|
24
|
-
|
|
25
|
-
case "$(uname)" in
|
|
26
|
-
Darwin*) PLATFORM="macOS" ;;
|
|
27
|
-
Linux*) PLATFORM="Linux" ;;
|
|
28
|
-
MINGW*|MSYS*|CYGWIN*) PLATFORM="Windows" ;;
|
|
29
|
-
*) PLATFORM="Unknown" ;;
|
|
30
|
-
esac
|
|
31
|
-
|
|
32
|
-
Platform: $PLATFORM
|
|
33
|
-
|
|
34
|
-
<!-- Adjust behavior based on platform -->
|
|
35
|
-
|
|
36
|
-
if [ "$PLATFORM" = "Windows" ]; then
|
|
37
|
-
|
|
38
|
-
# Windows-specific handling
|
|
39
|
-
|
|
40
|
-
PATH_SEP="\\"
|
|
41
|
-
NULL_DEVICE="NUL"
|
|
42
|
-
else
|
|
43
|
-
|
|
44
|
-
# Unix-like handling
|
|
45
|
-
|
|
46
|
-
PATH_SEP="/"
|
|
47
|
-
NULL_DEVICE="/dev/null"
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
[Platform-appropriate implementation...]
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Avoid platform-specific commands:**
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
<!-- BAD: macOS-specific -->
|
|
57
|
-
|
|
58
|
-
`pbcopy < file.txt`
|
|
59
|
-
|
|
60
|
-
<!-- GOOD: Platform detection -->
|
|
61
|
-
|
|
62
|
-
if command -v pbcopy > /dev/null; then
|
|
63
|
-
pbcopy < file.txt
|
|
64
|
-
elif command -v xclip > /dev/null; then
|
|
65
|
-
xclip -selection clipboard < file.txt
|
|
66
|
-
elif command -v clip.exe > /dev/null; then
|
|
67
|
-
cat file.txt | clip.exe
|
|
68
|
-
else
|
|
69
|
-
echo "Clipboard not available on this platform"
|
|
70
|
-
fi
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Minimal Dependencies
|
|
74
|
-
|
|
75
|
-
**Check for required tools:**
|
|
76
|
-
|
|
77
|
-
```markdown
|
|
78
|
-
---
|
|
79
|
-
description: Dependency-aware command
|
|
80
|
-
allowed-tools: Bash(*)
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
# Check Dependencies
|
|
84
|
-
|
|
85
|
-
Required tools:
|
|
86
|
-
|
|
87
|
-
- git
|
|
88
|
-
- jq
|
|
89
|
-
- node
|
|
90
|
-
|
|
91
|
-
Checking availability...
|
|
92
|
-
|
|
93
|
-
MISSING_DEPS=""
|
|
94
|
-
|
|
95
|
-
for tool in git jq node; do
|
|
96
|
-
if ! command -v $tool > /dev/null; then
|
|
97
|
-
MISSING_DEPS="$MISSING_DEPS $tool"
|
|
98
|
-
fi
|
|
99
|
-
done
|
|
100
|
-
|
|
101
|
-
if [ -n "$MISSING_DEPS" ]; then
|
|
102
|
-
❌ ERROR: Missing required dependencies:$MISSING_DEPS
|
|
103
|
-
|
|
104
|
-
INSTALLATION:
|
|
105
|
-
|
|
106
|
-
- git: https://git-scm.com/downloads
|
|
107
|
-
- jq: https://stedolan.github.io/jq/download/
|
|
108
|
-
- node: https://nodejs.org/
|
|
109
|
-
|
|
110
|
-
Install missing tools and try again.
|
|
111
|
-
|
|
112
|
-
Exit.
|
|
113
|
-
fi
|
|
114
|
-
|
|
115
|
-
✓ All dependencies available
|
|
116
|
-
|
|
117
|
-
[Continue with command...]
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Document optional dependencies:**
|
|
121
|
-
|
|
122
|
-
```markdown
|
|
123
|
-
<!--
|
|
124
|
-
DEPENDENCIES:
|
|
125
|
-
Required:
|
|
126
|
-
- git 2.0+: Version control
|
|
127
|
-
- jq 1.6+: JSON processing
|
|
128
|
-
|
|
129
|
-
Optional:
|
|
130
|
-
- gh: GitHub CLI (for PR operations)
|
|
131
|
-
- docker: Container operations (for containerized tests)
|
|
132
|
-
|
|
133
|
-
Feature availability depends on installed tools.
|
|
134
|
-
-->
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Graceful Degradation
|
|
138
|
-
|
|
139
|
-
**Handle missing features:**
|
|
140
|
-
|
|
141
|
-
```markdown
|
|
142
|
-
---
|
|
143
|
-
description: Feature-aware command
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
# Feature Detection
|
|
147
|
-
|
|
148
|
-
Detecting available features...
|
|
149
|
-
|
|
150
|
-
FEATURES=""
|
|
151
|
-
|
|
152
|
-
if command -v gh > /dev/null; then
|
|
153
|
-
FEATURES="$FEATURES github"
|
|
154
|
-
fi
|
|
155
|
-
|
|
156
|
-
if command -v docker > /dev/null; then
|
|
157
|
-
FEATURES="$FEATURES docker"
|
|
158
|
-
fi
|
|
159
|
-
|
|
160
|
-
Available features: $FEATURES
|
|
161
|
-
|
|
162
|
-
if echo "$FEATURES" | grep -q "github"; then
|
|
163
|
-
|
|
164
|
-
# Full functionality with GitHub integration
|
|
165
|
-
|
|
166
|
-
echo "✓ GitHub integration available"
|
|
167
|
-
else
|
|
168
|
-
|
|
169
|
-
# Reduced functionality without GitHub
|
|
170
|
-
|
|
171
|
-
echo "⚠ Limited functionality: GitHub CLI not installed"
|
|
172
|
-
echo " Install 'gh' for full features"
|
|
173
|
-
fi
|
|
174
|
-
|
|
175
|
-
[Adapt behavior based on available features...]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## User Experience for Unknown Users
|
|
179
|
-
|
|
180
|
-
### Clear Onboarding
|
|
181
|
-
|
|
182
|
-
**First-run experience:**
|
|
183
|
-
|
|
184
|
-
```markdown
|
|
185
|
-
---
|
|
186
|
-
description: Command with onboarding
|
|
187
|
-
allowed-tools: Read, Write
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
# First Run Check
|
|
191
|
-
|
|
192
|
-
if [ ! -f ".claude/command-initialized" ]; then
|
|
193
|
-
**Welcome to Command Name!**
|
|
194
|
-
|
|
195
|
-
This appears to be your first time using this command.
|
|
196
|
-
|
|
197
|
-
WHAT THIS COMMAND DOES:
|
|
198
|
-
[Brief explanation of purpose and benefits]
|
|
199
|
-
|
|
200
|
-
QUICK START:
|
|
201
|
-
|
|
202
|
-
1. Basic usage: /command [arg]
|
|
203
|
-
2. For help: /command help
|
|
204
|
-
3. Examples: /command examples
|
|
205
|
-
|
|
206
|
-
SETUP:
|
|
207
|
-
No additional setup required. You're ready to go!
|
|
208
|
-
|
|
209
|
-
✓ Initialization complete
|
|
210
|
-
|
|
211
|
-
[Create initialization marker]
|
|
212
|
-
|
|
213
|
-
Ready to proceed with your request...
|
|
214
|
-
fi
|
|
215
|
-
|
|
216
|
-
[Normal command execution...]
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**Progressive feature discovery:**
|
|
220
|
-
|
|
221
|
-
```markdown
|
|
222
|
-
---
|
|
223
|
-
description: Command with tips
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
# Command Execution
|
|
227
|
-
|
|
228
|
-
[Main functionality...]
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
💡 TIP: Did you know?
|
|
233
|
-
|
|
234
|
-
You can speed up this command with the --fast flag:
|
|
235
|
-
/command --fast [args]
|
|
236
|
-
|
|
237
|
-
For more tips: /command tips
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### Comprehensive Error Handling
|
|
241
|
-
|
|
242
|
-
**Anticipate user mistakes:**
|
|
243
|
-
|
|
244
|
-
```markdown
|
|
245
|
-
---
|
|
246
|
-
description: Forgiving command
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
# User Input Handling
|
|
250
|
-
|
|
251
|
-
Argument: "$1"
|
|
252
|
-
|
|
253
|
-
<!-- Check for common typos -->
|
|
254
|
-
|
|
255
|
-
if [ "$1" = "hlep" ] || [ "$1" = "hepl" ]; then
|
|
256
|
-
Did you mean: help?
|
|
257
|
-
|
|
258
|
-
Showing help instead...
|
|
259
|
-
[Display help]
|
|
260
|
-
|
|
261
|
-
Exit.
|
|
262
|
-
fi
|
|
263
|
-
|
|
264
|
-
<!-- Suggest similar commands if not found -->
|
|
265
|
-
|
|
266
|
-
if [ "$1" != "valid-option1" ] && [ "$1" != "valid-option2" ]; then
|
|
267
|
-
❌ Unknown option: $1
|
|
268
|
-
|
|
269
|
-
Did you mean:
|
|
270
|
-
|
|
271
|
-
- valid-option1 (most similar)
|
|
272
|
-
- valid-option2
|
|
273
|
-
|
|
274
|
-
For all options: /command help
|
|
275
|
-
|
|
276
|
-
Exit.
|
|
277
|
-
fi
|
|
278
|
-
|
|
279
|
-
[Command continues...]
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
**Helpful diagnostics:**
|
|
283
|
-
|
|
284
|
-
```markdown
|
|
285
|
-
---
|
|
286
|
-
description: Diagnostic command
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
# Operation Failed
|
|
290
|
-
|
|
291
|
-
The operation could not complete.
|
|
292
|
-
|
|
293
|
-
**Diagnostic Information:**
|
|
294
|
-
|
|
295
|
-
Environment:
|
|
296
|
-
|
|
297
|
-
- Platform: $(uname)
|
|
298
|
-
- Shell: $SHELL
|
|
299
|
-
- Working directory: $(pwd)
|
|
300
|
-
- Command: /command $@
|
|
301
|
-
|
|
302
|
-
Checking common issues:
|
|
303
|
-
|
|
304
|
-
- Git repository: $(git rev-parse --git-dir 2>&1)
|
|
305
|
-
- Write permissions: $(test -w . && echo "OK" || echo "DENIED")
|
|
306
|
-
- Required files: $(test -f config.yml && echo "Found" || echo "Missing")
|
|
307
|
-
|
|
308
|
-
This information helps debug the issue.
|
|
309
|
-
|
|
310
|
-
For support, include the above diagnostics.
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
## Distribution Best Practices
|
|
314
|
-
|
|
315
|
-
### Namespace Awareness
|
|
316
|
-
|
|
317
|
-
**Avoid name collisions:**
|
|
318
|
-
|
|
319
|
-
```markdown
|
|
320
|
-
---
|
|
321
|
-
description: Namespaced command
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
<!--
|
|
325
|
-
COMMAND NAME: plugin-name-command
|
|
326
|
-
|
|
327
|
-
This command is namespaced with the plugin name to avoid
|
|
328
|
-
conflicts with commands from other plugins.
|
|
329
|
-
|
|
330
|
-
Alternative naming approaches:
|
|
331
|
-
- Use plugin prefix: /plugin-command
|
|
332
|
-
- Use category: /category-command
|
|
333
|
-
- Use verb-noun: /verb-noun
|
|
334
|
-
|
|
335
|
-
Chosen approach: plugin-name prefix
|
|
336
|
-
Reasoning: Clearest ownership, least likely to conflict
|
|
337
|
-
-->
|
|
338
|
-
|
|
339
|
-
# Plugin Name Command
|
|
340
|
-
|
|
341
|
-
[Implementation...]
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
**Document naming rationale:**
|
|
345
|
-
|
|
346
|
-
```markdown
|
|
347
|
-
<!--
|
|
348
|
-
NAMING DECISION:
|
|
349
|
-
|
|
350
|
-
Command name: /deploy-app
|
|
351
|
-
|
|
352
|
-
Alternatives considered:
|
|
353
|
-
- /deploy: Too generic, likely conflicts
|
|
354
|
-
- /app-deploy: Less intuitive ordering
|
|
355
|
-
- /my-plugin-deploy: Too verbose
|
|
356
|
-
|
|
357
|
-
Final choice balances:
|
|
358
|
-
- Discoverability (clear purpose)
|
|
359
|
-
- Brevity (easy to type)
|
|
360
|
-
- Uniqueness (unlikely conflicts)
|
|
361
|
-
-->
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Configurability
|
|
365
|
-
|
|
366
|
-
**User preferences:**
|
|
367
|
-
|
|
368
|
-
```markdown
|
|
369
|
-
---
|
|
370
|
-
description: Configurable command
|
|
371
|
-
allowed-tools: Read
|
|
372
|
-
---
|
|
373
|
-
|
|
374
|
-
# Load User Configuration
|
|
375
|
-
|
|
376
|
-
Default configuration:
|
|
377
|
-
|
|
378
|
-
- verbose: false
|
|
379
|
-
- color: true
|
|
380
|
-
- max_results: 10
|
|
381
|
-
|
|
382
|
-
Checking for user config: .claude/plugin-name.local.md
|
|
383
|
-
|
|
384
|
-
if [ -f ".claude/plugin-name.local.md" ]; then
|
|
385
|
-
|
|
386
|
-
# Parse YAML frontmatter for settings
|
|
387
|
-
|
|
388
|
-
VERBOSE=$(grep "^verbose:" .claude/plugin-name.local.md | cut -d: -f2 | tr -d ' ')
|
|
389
|
-
COLOR=$(grep "^color:" .claude/plugin-name.local.md | cut -d: -f2 | tr -d ' ')
|
|
390
|
-
MAX_RESULTS=$(grep "^max_results:" .claude/plugin-name.local.md | cut -d: -f2 | tr -d ' ')
|
|
391
|
-
|
|
392
|
-
echo "✓ Using user configuration"
|
|
393
|
-
else
|
|
394
|
-
echo "Using default configuration"
|
|
395
|
-
echo "Create .claude/plugin-name.local.md to customize"
|
|
396
|
-
fi
|
|
397
|
-
|
|
398
|
-
[Use configuration in command...]
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
**Sensible defaults:**
|
|
402
|
-
|
|
403
|
-
```markdown
|
|
404
|
-
---
|
|
405
|
-
description: Command with smart defaults
|
|
406
|
-
---
|
|
407
|
-
|
|
408
|
-
# Smart Defaults
|
|
409
|
-
|
|
410
|
-
Configuration:
|
|
411
|
-
|
|
412
|
-
- Format: ${FORMAT:-json} # Defaults to json
|
|
413
|
-
- Output: ${OUTPUT:-stdout} # Defaults to stdout
|
|
414
|
-
- Verbose: ${VERBOSE:-false} # Defaults to false
|
|
415
|
-
|
|
416
|
-
These defaults work for 80% of use cases.
|
|
417
|
-
|
|
418
|
-
Override with arguments:
|
|
419
|
-
/command --format yaml --output file.txt --verbose
|
|
420
|
-
|
|
421
|
-
Or set in .claude/plugin-name.local.md:
|
|
422
|
-
\`\`\`yaml
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
format: yaml
|
|
427
|
-
output: custom.txt
|
|
428
|
-
verbose: true
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
\`\`\`
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### Version Compatibility
|
|
436
|
-
|
|
437
|
-
**Version checking:**
|
|
438
|
-
|
|
439
|
-
```markdown
|
|
440
|
-
---
|
|
441
|
-
description: Version-aware command
|
|
442
|
-
---
|
|
443
|
-
|
|
444
|
-
<!--
|
|
445
|
-
COMMAND VERSION: 2.1.0
|
|
446
|
-
|
|
447
|
-
COMPATIBILITY:
|
|
448
|
-
- Requires plugin version: >= 2.0.0
|
|
449
|
-
- Breaking changes from v1.x documented in MIGRATION.md
|
|
450
|
-
|
|
451
|
-
VERSION HISTORY:
|
|
452
|
-
- v2.1.0: Added --new-feature flag
|
|
453
|
-
- v2.0.0: BREAKING: Changed argument order
|
|
454
|
-
- v1.0.0: Initial release
|
|
455
|
-
-->
|
|
456
|
-
|
|
457
|
-
# Version Check
|
|
458
|
-
|
|
459
|
-
Command version: 2.1.0
|
|
460
|
-
Plugin version: [detect from plugin.json]
|
|
461
|
-
|
|
462
|
-
if [ "$PLUGIN_VERSION" < "2.0.0" ]; then
|
|
463
|
-
❌ ERROR: Incompatible plugin version
|
|
464
|
-
|
|
465
|
-
This command requires plugin version >= 2.0.0
|
|
466
|
-
Current version: $PLUGIN_VERSION
|
|
467
|
-
|
|
468
|
-
Update plugin:
|
|
469
|
-
/plugin update plugin-name
|
|
470
|
-
|
|
471
|
-
Exit.
|
|
472
|
-
fi
|
|
473
|
-
|
|
474
|
-
✓ Version compatible
|
|
475
|
-
|
|
476
|
-
[Command continues...]
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
**Deprecation warnings:**
|
|
480
|
-
|
|
481
|
-
```markdown
|
|
482
|
-
---
|
|
483
|
-
description: Command with deprecation warnings
|
|
484
|
-
---
|
|
485
|
-
|
|
486
|
-
# Deprecation Check
|
|
487
|
-
|
|
488
|
-
if [ "$1" = "--old-flag" ]; then
|
|
489
|
-
⚠️ DEPRECATION WARNING
|
|
490
|
-
|
|
491
|
-
The --old-flag option is deprecated as of v2.0.0
|
|
492
|
-
It will be removed in v3.0.0 (est. June 2025)
|
|
493
|
-
|
|
494
|
-
Use instead: --new-flag
|
|
495
|
-
|
|
496
|
-
Example:
|
|
497
|
-
Old: /command --old-flag value
|
|
498
|
-
New: /command --new-flag value
|
|
499
|
-
|
|
500
|
-
See migration guide: /command migrate
|
|
501
|
-
|
|
502
|
-
Continuing with deprecated behavior for now...
|
|
503
|
-
fi
|
|
504
|
-
|
|
505
|
-
[Handle both old and new flags during deprecation period...]
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
## Marketplace Presentation
|
|
509
|
-
|
|
510
|
-
### Command Discovery
|
|
511
|
-
|
|
512
|
-
**Descriptive naming:**
|
|
513
|
-
|
|
514
|
-
```markdown
|
|
515
|
-
---
|
|
516
|
-
description: Review pull request with security and quality checks
|
|
517
|
-
---
|
|
518
|
-
|
|
519
|
-
<!-- GOOD: Descriptive name and description -->
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
```markdown
|
|
523
|
-
---
|
|
524
|
-
description: Do the thing
|
|
525
|
-
---
|
|
526
|
-
|
|
527
|
-
<!-- BAD: Vague description -->
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
**Searchable keywords:**
|
|
531
|
-
|
|
532
|
-
```markdown
|
|
533
|
-
<!--
|
|
534
|
-
KEYWORDS: security, code-review, quality, validation, audit
|
|
535
|
-
|
|
536
|
-
These keywords help users discover this command when searching
|
|
537
|
-
for related functionality in the marketplace.
|
|
538
|
-
-->
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
### Showcase Examples
|
|
542
|
-
|
|
543
|
-
**Compelling demonstrations:**
|
|
544
|
-
|
|
545
|
-
```markdown
|
|
546
|
-
---
|
|
547
|
-
description: Advanced code analysis command
|
|
548
|
-
---
|
|
549
|
-
|
|
550
|
-
# Code Analysis Command
|
|
551
|
-
|
|
552
|
-
This command performs deep code analysis with actionable insights.
|
|
553
|
-
|
|
554
|
-
## Demo: Quick Security Audit
|
|
555
|
-
|
|
556
|
-
Try it now:
|
|
557
|
-
\`\`\`
|
|
558
|
-
/analyze-code src/ --security
|
|
559
|
-
\`\`\`
|
|
560
|
-
|
|
561
|
-
**What you'll get:**
|
|
562
|
-
|
|
563
|
-
- Security vulnerability detection
|
|
564
|
-
- Code quality metrics
|
|
565
|
-
- Performance bottleneck identification
|
|
566
|
-
- Actionable recommendations
|
|
567
|
-
|
|
568
|
-
**Sample output:**
|
|
569
|
-
\`\`\`
|
|
570
|
-
Security Analysis Results
|
|
571
|
-
=========================
|
|
572
|
-
|
|
573
|
-
🔴 Critical (2):
|
|
574
|
-
|
|
575
|
-
- SQL injection risk in users.js:45
|
|
576
|
-
- XSS vulnerability in display.js:23
|
|
577
|
-
|
|
578
|
-
🟡 Warnings (5):
|
|
579
|
-
|
|
580
|
-
- Unvalidated input in api.js:67
|
|
581
|
-
...
|
|
582
|
-
|
|
583
|
-
Recommendations:
|
|
584
|
-
|
|
585
|
-
1. Fix critical issues immediately
|
|
586
|
-
2. Review warnings before next release
|
|
587
|
-
3. Run /analyze-code --fix for auto-fixes
|
|
588
|
-
\`\`\`
|
|
589
|
-
|
|
590
|
-
---
|
|
591
|
-
|
|
592
|
-
Ready to analyze your code...
|
|
593
|
-
|
|
594
|
-
[Command implementation...]
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
### User Reviews and Feedback
|
|
598
|
-
|
|
599
|
-
**Feedback mechanism:**
|
|
600
|
-
|
|
601
|
-
```markdown
|
|
602
|
-
---
|
|
603
|
-
description: Command with feedback
|
|
604
|
-
---
|
|
605
|
-
|
|
606
|
-
# Command Complete
|
|
607
|
-
|
|
608
|
-
[Command results...]
|
|
609
|
-
|
|
610
|
-
---
|
|
611
|
-
|
|
612
|
-
**How was your experience?**
|
|
613
|
-
|
|
614
|
-
This helps improve the command for everyone.
|
|
615
|
-
|
|
616
|
-
Rate this command:
|
|
617
|
-
|
|
618
|
-
- 👍 Helpful
|
|
619
|
-
- 👎 Not helpful
|
|
620
|
-
- 🐛 Found a bug
|
|
621
|
-
- 💡 Have a suggestion
|
|
622
|
-
|
|
623
|
-
Reply with an emoji or:
|
|
624
|
-
|
|
625
|
-
- /command feedback
|
|
626
|
-
|
|
627
|
-
Your feedback matters!
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
**Usage analytics preparation:**
|
|
631
|
-
|
|
632
|
-
```markdown
|
|
633
|
-
<!--
|
|
634
|
-
ANALYTICS NOTES:
|
|
635
|
-
|
|
636
|
-
Track for improvement:
|
|
637
|
-
- Most common arguments
|
|
638
|
-
- Failure rates
|
|
639
|
-
- Average execution time
|
|
640
|
-
- User satisfaction scores
|
|
641
|
-
|
|
642
|
-
Privacy-preserving:
|
|
643
|
-
- No personally identifiable information
|
|
644
|
-
- Aggregate statistics only
|
|
645
|
-
- User opt-out respected
|
|
646
|
-
-->
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
## Quality Standards
|
|
650
|
-
|
|
651
|
-
### Professional Polish
|
|
652
|
-
|
|
653
|
-
**Consistent branding:**
|
|
654
|
-
|
|
655
|
-
```markdown
|
|
656
|
-
---
|
|
657
|
-
description: Branded command
|
|
658
|
-
---
|
|
659
|
-
|
|
660
|
-
# ✨ Command Name
|
|
661
|
-
|
|
662
|
-
Part of the [Plugin Name] suite
|
|
663
|
-
|
|
664
|
-
[Command functionality...]
|
|
665
|
-
|
|
666
|
-
---
|
|
667
|
-
|
|
668
|
-
**Need Help?**
|
|
669
|
-
|
|
670
|
-
- Documentation: https://docs.example.com
|
|
671
|
-
- Support: support@example.com
|
|
672
|
-
- Community: https://community.example.com
|
|
673
|
-
|
|
674
|
-
Powered by Plugin Name v2.1.0
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
**Attention to detail:**
|
|
678
|
-
|
|
679
|
-
```markdown
|
|
680
|
-
<!-- Details that matter -->
|
|
681
|
-
|
|
682
|
-
✓ Use proper emoji/symbols consistently
|
|
683
|
-
✓ Align output columns neatly
|
|
684
|
-
✓ Format numbers with thousands separators
|
|
685
|
-
✓ Use color/formatting appropriately
|
|
686
|
-
✓ Provide progress indicators
|
|
687
|
-
✓ Show estimated time remaining
|
|
688
|
-
✓ Confirm successful operations
|
|
689
|
-
```
|
|
690
|
-
|
|
691
|
-
### Reliability
|
|
692
|
-
|
|
693
|
-
**Idempotency:**
|
|
694
|
-
|
|
695
|
-
```markdown
|
|
696
|
-
---
|
|
697
|
-
description: Idempotent command
|
|
698
|
-
---
|
|
699
|
-
|
|
700
|
-
# Safe Repeated Execution
|
|
701
|
-
|
|
702
|
-
Checking if operation already completed...
|
|
703
|
-
|
|
704
|
-
if [ -f ".claude/operation-completed.flag" ]; then
|
|
705
|
-
ℹ️ Operation already completed
|
|
706
|
-
|
|
707
|
-
Completed at: $(cat .claude/operation-completed.flag)
|
|
708
|
-
|
|
709
|
-
To re-run:
|
|
710
|
-
|
|
711
|
-
1. Remove flag: rm .claude/operation-completed.flag
|
|
712
|
-
2. Run command again
|
|
713
|
-
|
|
714
|
-
Otherwise, no action needed.
|
|
715
|
-
|
|
716
|
-
Exit.
|
|
717
|
-
fi
|
|
718
|
-
|
|
719
|
-
Performing operation...
|
|
720
|
-
|
|
721
|
-
[Safe, repeatable operation...]
|
|
722
|
-
|
|
723
|
-
Marking complete...
|
|
724
|
-
echo "$(date)" > .claude/operation-completed.flag
|
|
725
|
-
```
|
|
726
|
-
|
|
727
|
-
**Atomic operations:**
|
|
728
|
-
|
|
729
|
-
```markdown
|
|
730
|
-
---
|
|
731
|
-
description: Atomic command
|
|
732
|
-
---
|
|
733
|
-
|
|
734
|
-
# Atomic Operation
|
|
735
|
-
|
|
736
|
-
This operation is atomic - either fully succeeds or fully fails.
|
|
737
|
-
|
|
738
|
-
Creating temporary workspace...
|
|
739
|
-
TEMP_DIR=$(mktemp -d)
|
|
740
|
-
|
|
741
|
-
Performing changes in isolated environment...
|
|
742
|
-
[Make changes in $TEMP_DIR]
|
|
743
|
-
|
|
744
|
-
if [ $? -eq 0 ]; then
|
|
745
|
-
✓ Changes validated
|
|
746
|
-
|
|
747
|
-
Applying changes atomically...
|
|
748
|
-
mv $TEMP_DIR/\* ./target/
|
|
749
|
-
|
|
750
|
-
✓ Operation complete
|
|
751
|
-
else
|
|
752
|
-
❌ Changes failed validation
|
|
753
|
-
|
|
754
|
-
Rolling back...
|
|
755
|
-
rm -rf $TEMP_DIR
|
|
756
|
-
|
|
757
|
-
No changes applied. Safe to retry.
|
|
758
|
-
fi
|
|
759
|
-
```
|
|
760
|
-
|
|
761
|
-
## Testing for Distribution
|
|
762
|
-
|
|
763
|
-
### Pre-Release Checklist
|
|
764
|
-
|
|
765
|
-
```markdown
|
|
766
|
-
<!--
|
|
767
|
-
PRE-RELEASE CHECKLIST:
|
|
768
|
-
|
|
769
|
-
Functionality:
|
|
770
|
-
- [ ] Works on macOS
|
|
771
|
-
- [ ] Works on Linux
|
|
772
|
-
- [ ] Works on Windows (WSL)
|
|
773
|
-
- [ ] All arguments tested
|
|
774
|
-
- [ ] Error cases handled
|
|
775
|
-
- [ ] Edge cases covered
|
|
776
|
-
|
|
777
|
-
User Experience:
|
|
778
|
-
- [ ] Clear description
|
|
779
|
-
- [ ] Helpful error messages
|
|
780
|
-
- [ ] Examples provided
|
|
781
|
-
- [ ] First-run experience good
|
|
782
|
-
- [ ] Documentation complete
|
|
783
|
-
|
|
784
|
-
Distribution:
|
|
785
|
-
- [ ] No hardcoded paths
|
|
786
|
-
- [ ] Dependencies documented
|
|
787
|
-
- [ ] Configuration options clear
|
|
788
|
-
- [ ] Version number set
|
|
789
|
-
- [ ] Changelog updated
|
|
790
|
-
|
|
791
|
-
Quality:
|
|
792
|
-
- [ ] No TODO comments
|
|
793
|
-
- [ ] No debug code
|
|
794
|
-
- [ ] Performance acceptable
|
|
795
|
-
- [ ] Security reviewed
|
|
796
|
-
- [ ] Privacy considered
|
|
797
|
-
|
|
798
|
-
Support:
|
|
799
|
-
- [ ] README complete
|
|
800
|
-
- [ ] Troubleshooting guide
|
|
801
|
-
- [ ] Support contact provided
|
|
802
|
-
- [ ] Feedback mechanism
|
|
803
|
-
- [ ] License specified
|
|
804
|
-
-->
|
|
805
|
-
```
|
|
806
|
-
|
|
807
|
-
### Beta Testing
|
|
808
|
-
|
|
809
|
-
**Beta release approach:**
|
|
810
|
-
|
|
811
|
-
```markdown
|
|
812
|
-
---
|
|
813
|
-
description: Beta command (v0.9.0)
|
|
814
|
-
---
|
|
815
|
-
|
|
816
|
-
# 🧪 Beta Command
|
|
817
|
-
|
|
818
|
-
**This is a beta release**
|
|
819
|
-
|
|
820
|
-
Features may change based on feedback.
|
|
821
|
-
|
|
822
|
-
BETA STATUS:
|
|
823
|
-
|
|
824
|
-
- Version: 0.9.0
|
|
825
|
-
- Stability: Experimental
|
|
826
|
-
- Support: Limited
|
|
827
|
-
- Feedback: Encouraged
|
|
828
|
-
|
|
829
|
-
Known limitations:
|
|
830
|
-
|
|
831
|
-
- Performance not optimized
|
|
832
|
-
- Some edge cases not handled
|
|
833
|
-
- Documentation incomplete
|
|
834
|
-
|
|
835
|
-
Help improve this command:
|
|
836
|
-
|
|
837
|
-
- Report issues: /command report-issue
|
|
838
|
-
- Suggest features: /command suggest
|
|
839
|
-
- Join beta testers: /command join-beta
|
|
840
|
-
|
|
841
|
-
---
|
|
842
|
-
|
|
843
|
-
[Command implementation...]
|
|
844
|
-
|
|
845
|
-
---
|
|
846
|
-
|
|
847
|
-
**Thank you for beta testing!**
|
|
848
|
-
|
|
849
|
-
Your feedback helps make this command better.
|
|
850
|
-
```
|
|
851
|
-
|
|
852
|
-
## Maintenance and Updates
|
|
853
|
-
|
|
854
|
-
### Update Strategy
|
|
855
|
-
|
|
856
|
-
**Versioned commands:**
|
|
857
|
-
|
|
858
|
-
```markdown
|
|
859
|
-
<!--
|
|
860
|
-
VERSION STRATEGY:
|
|
861
|
-
|
|
862
|
-
Major (X.0.0): Breaking changes
|
|
863
|
-
- Document all breaking changes
|
|
864
|
-
- Provide migration guide
|
|
865
|
-
- Support old version briefly
|
|
866
|
-
|
|
867
|
-
Minor (x.Y.0): New features
|
|
868
|
-
- Backward compatible
|
|
869
|
-
- Announce new features
|
|
870
|
-
- Update examples
|
|
871
|
-
|
|
872
|
-
Patch (x.y.Z): Bug fixes
|
|
873
|
-
- No user-facing changes
|
|
874
|
-
- Update changelog
|
|
875
|
-
- Security fixes prioritized
|
|
876
|
-
|
|
877
|
-
Release schedule:
|
|
878
|
-
- Patches: As needed
|
|
879
|
-
- Minors: Monthly
|
|
880
|
-
- Majors: Annually or as needed
|
|
881
|
-
-->
|
|
882
|
-
```
|
|
883
|
-
|
|
884
|
-
**Update notifications:**
|
|
885
|
-
|
|
886
|
-
```markdown
|
|
887
|
-
---
|
|
888
|
-
description: Update-aware command
|
|
889
|
-
---
|
|
890
|
-
|
|
891
|
-
# Check for Updates
|
|
892
|
-
|
|
893
|
-
Current version: 2.1.0
|
|
894
|
-
Latest version: [check if available]
|
|
895
|
-
|
|
896
|
-
if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then
|
|
897
|
-
📢 UPDATE AVAILABLE
|
|
898
|
-
|
|
899
|
-
New version: $LATEST_VERSION
|
|
900
|
-
Current: $CURRENT_VERSION
|
|
901
|
-
|
|
902
|
-
What's new:
|
|
903
|
-
|
|
904
|
-
- Feature improvements
|
|
905
|
-
- Bug fixes
|
|
906
|
-
- Performance enhancements
|
|
907
|
-
|
|
908
|
-
Update with:
|
|
909
|
-
/plugin update plugin-name
|
|
910
|
-
|
|
911
|
-
Release notes: https://releases.example.com/v$LATEST_VERSION
|
|
912
|
-
fi
|
|
913
|
-
|
|
914
|
-
[Command continues...]
|
|
915
|
-
```
|
|
916
|
-
|
|
917
|
-
## Best Practices Summary
|
|
918
|
-
|
|
919
|
-
### Distribution Design
|
|
920
|
-
|
|
921
|
-
1. **Universal**: Works across platforms and environments
|
|
922
|
-
2. **Self-contained**: Minimal dependencies, clear requirements
|
|
923
|
-
3. **Graceful**: Degrades gracefully when features unavailable
|
|
924
|
-
4. **Forgiving**: Anticipates and handles user mistakes
|
|
925
|
-
5. **Helpful**: Clear errors, good defaults, excellent docs
|
|
926
|
-
|
|
927
|
-
### Marketplace Success
|
|
928
|
-
|
|
929
|
-
1. **Discoverable**: Clear name, good description, searchable keywords
|
|
930
|
-
2. **Professional**: Polished presentation, consistent branding
|
|
931
|
-
3. **Reliable**: Tested thoroughly, handles edge cases
|
|
932
|
-
4. **Maintainable**: Versioned, updated regularly, supported
|
|
933
|
-
5. **User-focused**: Great UX, responsive to feedback
|
|
934
|
-
|
|
935
|
-
### Quality Standards
|
|
936
|
-
|
|
937
|
-
1. **Complete**: Fully documented, all features working
|
|
938
|
-
2. **Tested**: Works in real environments, edge cases handled
|
|
939
|
-
3. **Secure**: No vulnerabilities, safe operations
|
|
940
|
-
4. **Performant**: Reasonable speed, resource-efficient
|
|
941
|
-
5. **Ethical**: Privacy-respecting, user consent
|
|
942
|
-
|
|
943
|
-
With these considerations, commands become marketplace-ready and delight users across diverse environments and use cases.
|