Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 09:04:17 +08:00
commit 652915e226
62 changed files with 8212 additions and 0 deletions

View File

@@ -0,0 +1,241 @@
---
description: Create slash command(s) following standardized structure - supports parallel creation for 3+ commands
argument-hint: <command-name> "<description>" [--plugin=name] | <cmd-1> "<desc-1>" <cmd-2> "<desc-2>" ... [--plugin=name]
---
---
🚨 **EXECUTION NOTICE FOR CLAUDE**
When you invoke this command via `SlashCommand(/domain-plugin-builder:slash-commands-create ...)`, the system returns THESE INSTRUCTIONS below.
**YOU are the executor. This is NOT an autonomous subprocess.**
- ✅ The phases below are YOUR execution checklist
- ✅ YOU must run each phase immediately using tools (Bash, Read, Write, Edit, TodoWrite)
- ✅ Complete ALL phases before considering this command done
- ❌ DON'T wait for "the command to complete" - YOU complete it by executing the phases
- ❌ DON'T treat this as status output - it IS your instruction set
**Immediately after SlashCommand returns, start executing Phase 0, then Phase 1, etc.**
See `@CLAUDE.md` section "SlashCommand Execution - YOU Are The Executor" for detailed explanation.
---
## Security Requirements
**CRITICAL:** All generated files must follow security rules:
@~/.claude/plugins/marketplaces/dev-lifecycle-marketplace/docs/security/SECURITY-RULES.md
**Key requirements:**
- Never hardcode API keys or secrets
- Use placeholders: `your_service_key_here`
- Protect `.env` files with `.gitignore`
- Create `.env.example` with placeholders only
- Document key acquisition for users
**Arguments**: $ARGUMENTS
Goal: Create properly structured slash command(s). For 3+ commands, creates them in parallel for faster execution.
**CRITICAL EXECUTION INSTRUCTIONS:**
- DO NOT wait for phases to run automatically
- DO NOT just explain what the phases do
- EXECUTE each phase immediately using the actual tools (Bash, Read, Write, Edit, TodoWrite)
- The `!{tool command}` syntax shows you WHAT to execute - use the real tool to DO IT
- Complete all phases in order before finishing
Phase 0: Create Todo List
Create todo list for all phases below.
Phase 1: Load Architectural Framework
Actions:
- Load component decision guidance:
!{Read ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/docs/frameworks/claude/reference/component-decision-framework.md}
- Load composition patterns:
!{Read ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/docs/frameworks/claude/reference/dans-composition-pattern.md}
- These provide critical understanding of:
- Commands are the primitive (start here!)
- When to use commands vs skills vs agents vs hooks
- Skills compose commands (not vice versa)
- Composition hierarchies and patterns
- Anti-patterns to avoid
Phase 2: Parse Arguments and Determine Plugin
Parse $ARGUMENTS to extract:
- Command names and descriptions
- Plugin name (from --plugin=name or detect from pwd)
If plugin not specified:
!{bash basename $(pwd)}
Store plugin name for Phase 3.
Phase 3: Load Templates
Load command template for reference:
!{Read ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/templates/commands/template-command-patterns.md}
Phase 4: Parse Arguments & Determine Mode
Actions:
Use bash to parse $ARGUMENTS and count how many commands are being requested:
!{bash echo "$ARGUMENTS" | grep -oE '<[^>]+>' | wc -l}
Store the count. Then extract each command specification:
- If count = 1: Single command mode - extract <command-name> and "<description>"
- If count = 2: Two commands mode - extract both <cmd-N> "<desc-N>" pairs
- If count >= 3: Multiple commands mode - extract all <cmd-N> "<desc-N>" pairs
Phase 5: Create Commands
Actions:
**Decision: 1-2 commands = build directly, 3+ commands = use Task() for parallel**
**For 1-2 Commands:**
Build directly - execute these steps immediately:
1. **List existing agents (to use correct names in Task() calls):**
!{ls plugins/$PLUGIN_NAME/agents/*.md 2>/dev/null}
2. Load template:
!{Read ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/templates/commands/template-command-patterns.md}
3. For each command, create the file:
!{Write plugins/$PLUGIN_NAME/commands/$CMD_NAME.md}
Include:
- Frontmatter with description, argument-hint, allowed-tools
- Use Goal → Actions → Phase pattern
- Keep under 150 lines
- **CRITICAL:** If command invokes agents via Task(), use ACTUAL agent names from step 1!
- Format: subagent_type="$PLUGIN_NAME:agent-name"
- Example: If agents/security-scanner.md exists, use subagent_type="my-plugin:security-scanner"
- NEVER use placeholder names - use REAL agent file names!
4. Validate:
!{Bash ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/scripts/validate-command.sh plugins/$PLUGIN_NAME/commands/$CMD_NAME.md}
No need for Task() overhead when building 1-2 commands
**For 3+ Commands:**
**CRITICAL: Send ALL Task() calls in a SINGLE MESSAGE for parallel execution!**
Example for 3 commands - send all at once:
```
Task(description="Create command 1", subagent_type="domain-plugin-builder:slash-commands-builder", prompt="You are the slash-commands-builder agent. Create a complete slash command.
Command name: $CMD_1_NAME
Description: $CMD_1_DESC
Plugin: $PLUGIN_NAME
**CRITICAL: Use ACTUAL Agent Names**
BEFORE creating the command, list existing agents:
!{ls plugins/$PLUGIN_NAME/agents/*.md 2>/dev/null}
If the command needs to invoke an agent via Task(), use the ACTUAL agent names from the list above!
- Format: subagent_type=\"$PLUGIN_NAME:agent-name\"
- Example: If agents/security-scanner.md exists, use subagent_type=\"$PLUGIN_NAME:security-scanner\"
- NEVER use placeholder names like \"agent1\" or \"scanner\" - use the REAL agent file names!
Load template: plugins/domain-plugin-builder/skills/build-assistant/templates/commands/template-command-patterns.md
Create command file at: plugins/$PLUGIN_NAME/commands/$CMD_1_NAME.md
Follow framework structure:
- Frontmatter with description, argument-hint, allowed-tools
- Goal → Actions → Phase pattern
- Keep under 150 lines
- Use $ARGUMENTS for all argument references
- Use ACTUAL agent names in Task() calls (subagent_type field)
- Validate with validation script
Deliverable: Complete validated command file with correct agent references")
Task(description="Create command 2", subagent_type="domain-plugin-builder:slash-commands-builder", prompt="[Same structure with $CMD_2_NAME, $CMD_2_DESC]")
Task(description="Create command 3", subagent_type="domain-plugin-builder:slash-commands-builder", prompt="[Same structure with $CMD_3_NAME, $CMD_3_DESC]")
[Continue for all N commands from $ARGUMENTS]
```
**DO NOT wait between Task() calls - send them ALL together in one response!**
The agents will run in parallel automatically. Only proceed to Phase 6 after all Task() calls complete.
Phase 6: Validation
For each created command:
!{bash ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/scripts/validate-command.sh plugins/$PLUGIN_NAME/commands/$CMD_NAME.md}
If validation fails, read errors and fix issues.
Phase 7: Sync to Airtable
**Use bulk sync script for efficiency:**
Bash: python ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/scripts/bulk-sync-airtable.py --plugin={plugin-name} --marketplace={marketplace-name} --type=commands
This syncs ALL commands in parallel instead of one at a time.
**Environment Requirement:**
- Requires AIRTABLE_TOKEN environment variable
- If not set, displays error message with instructions
Phase 8: Register in Settings
**CRITICAL: Commands must be registered to be usable!**
Run registration script to add all created commands to ~/.claude/settings.json:
!{bash ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/scripts/register-commands-in-settings.sh $PLUGIN_NAME}
This registers entries like:
- SlashCommand(/$PLUGIN_NAME:$CMD_1)
- SlashCommand(/$PLUGIN_NAME:$CMD_2)
- etc.
Verify registration by checking settings.json contains the new commands.
Phase 9: Self-Validation
Run validation script to verify all work completed:
!{bash ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/skills/build-assistant/scripts/validate-command.sh plugins/$PLUGIN_NAME/commands/*.md}
Mark all todos complete if validation passes.
Phase 10: Summary
Display results:
**Commands Created:** <count>
**Plugin:** $PLUGIN_NAME
**Location:** plugins/$PLUGIN_NAME/commands/
**Files:**
- $CMD_1.md - $DESC_1 ✅
- $CMD_2.md - $DESC_2 ✅
- etc.
**Validation:** All passed ✅
**Registration:** Complete ✅
**Airtable Sync:** Attempted ✅
**Next Steps:**
- Test commands: /$PLUGIN_NAME:$CMD_NAME
- Add to build workflow
- Commit to git