Initial commit
This commit is contained in:
617
commands/create_workflow.md
Normal file
617
commands/create_workflow.md
Normal file
@@ -0,0 +1,617 @@
|
||||
---
|
||||
description: Create new agents or commands using discovered patterns and templates
|
||||
category: workflow-discovery
|
||||
tools: Read, Write, Edit, Grep, Glob
|
||||
model: inherit
|
||||
version: 1.0.0
|
||||
workspace_only: true
|
||||
---
|
||||
|
||||
# Create Workflow
|
||||
|
||||
You are tasked with helping users create new agents or commands by leveraging discovered patterns,
|
||||
templates, and examples from the workflow catalog.
|
||||
|
||||
## Purpose
|
||||
|
||||
This command guides users through creating well-structured, standardized workflows by showing
|
||||
relevant examples and enforcing frontmatter consistency.
|
||||
|
||||
## Initial Response
|
||||
|
||||
When invoked:
|
||||
|
||||
```
|
||||
I'll help you create a new agent or command.
|
||||
|
||||
What would you like to create?
|
||||
1. Agent (for Task tool sub-agents)
|
||||
2. Command (for slash commands)
|
||||
|
||||
Or provide details:
|
||||
- Name: (e.g., code-reviewer, test-generator)
|
||||
- Purpose: (brief description)
|
||||
- Similar to: (optional - name of existing workflow to model after)
|
||||
```
|
||||
|
||||
## Process
|
||||
|
||||
### Step 1: Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
1. **Type**: Agent or Command?
|
||||
2. **Name**: What should it be called? (suggest kebab-case)
|
||||
3. **Purpose**: What does it do?
|
||||
4. **Tools needed**: Which Claude Code tools will it use?
|
||||
5. **Category**: Which category does it belong to?
|
||||
6. **Similar workflows**: Any existing workflows to model after?
|
||||
|
||||
### Step 2: Parallel Example Research
|
||||
|
||||
**IMPORTANT**: Spawn 3 parallel tasks to gather comprehensive examples.
|
||||
|
||||
Use TodoWrite to track parallel research.
|
||||
|
||||
**Task 1 - Local Examples**:
|
||||
|
||||
```
|
||||
Use codebase-pattern-finder agent:
|
||||
"Find all {agents/commands} in our workspace that are similar to {user-description}. Focus on {category} workflows. Return file paths and brief descriptions."
|
||||
|
||||
Tools: Glob, Grep, Read
|
||||
Path: /Users/ryan/code-repos/ryan-claude-workspace
|
||||
Return: List of similar local workflows with their frontmatter and key patterns
|
||||
```
|
||||
|
||||
**Task 2 - Catalog Examples**:
|
||||
|
||||
```
|
||||
Use thoughts-analyzer agent:
|
||||
"Search the workflow catalog at thoughts/shared/workflows/ for workflows similar to {user-description}. Find examples from external repositories that match the {category} category."
|
||||
|
||||
Tools: Grep, Read
|
||||
Path: thoughts/shared/workflows/
|
||||
Return: External workflow examples with their implementations
|
||||
```
|
||||
|
||||
**Task 3 - Frontmatter Standards**:
|
||||
|
||||
```
|
||||
Use codebase-analyzer agent:
|
||||
"Analyze all existing {agents/commands} in the workspace to extract the frontmatter standard. What fields are required? What patterns are used? What categories exist?"
|
||||
|
||||
Tools: Glob, Grep, Read
|
||||
Path: /Users/ryan/code-repos/ryan-claude-workspace/{agents,commands}/
|
||||
Return: Frontmatter standard with field definitions and examples
|
||||
```
|
||||
|
||||
**WAIT for all 3 tasks to complete.**
|
||||
|
||||
### Step 3: Aggregate Examples
|
||||
|
||||
Combine results from parallel tasks:
|
||||
|
||||
- Local examples (Task 1)
|
||||
- Catalog examples (Task 2)
|
||||
- Frontmatter standards (Task 3)
|
||||
|
||||
Mark all tasks complete in TodoWrite.
|
||||
|
||||
Analyze:
|
||||
|
||||
1. **Common patterns**: What do similar workflows do?
|
||||
2. **Tool usage**: Which tools are typically used?
|
||||
3. **Structure**: How are they organized?
|
||||
4. **Frontmatter**: What's the standard format?
|
||||
|
||||
### Step 4: Present Options to User
|
||||
|
||||
Show analysis and options:
|
||||
|
||||
````markdown
|
||||
# Create {workflow-type}: {name}
|
||||
|
||||
## Similar Workflows Found
|
||||
|
||||
### From Our Workspace
|
||||
|
||||
1. **{local-workflow-1}**
|
||||
- Purpose: {description}
|
||||
- Tools: {tools}
|
||||
- File: {path}
|
||||
|
||||
2. **{local-workflow-2}** [....]
|
||||
|
||||
### From Catalog
|
||||
|
||||
1. **{external-workflow-1}** (from {repo})
|
||||
- Purpose: {description}
|
||||
- Tools: {tools}
|
||||
|
||||
## Frontmatter Standard
|
||||
|
||||
Based on existing workflows, here's the standard format:
|
||||
|
||||
```yaml
|
||||
---
|
||||
{ required-fields }
|
||||
---
|
||||
```
|
||||
````
|
||||
|
||||
## Recommended Approach
|
||||
|
||||
Based on similar workflows, I recommend:
|
||||
|
||||
- **Model after**: {most-similar-workflow}
|
||||
- **Tools to use**: {suggested-tools}
|
||||
- **Key patterns**: {patterns-to-follow}
|
||||
|
||||
Would you like me to:
|
||||
|
||||
1. Generate a workflow based on {specific-example}
|
||||
2. Create a custom workflow from scratch
|
||||
3. Show me more examples first
|
||||
|
||||
````
|
||||
|
||||
### Step 5: Generate Workflow Template
|
||||
|
||||
Based on user selection, generate the appropriate template:
|
||||
|
||||
#### 5a. For Agents
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: {workflow-name}
|
||||
description: |
|
||||
{Clear description from user input}
|
||||
|
||||
Use this agent when:
|
||||
- {use case 1}
|
||||
- {use case 2}
|
||||
|
||||
This agent will:
|
||||
- {action 1}
|
||||
- {action 2}
|
||||
tools: {validated-tool-list}
|
||||
model: inherit
|
||||
category: {selected-category}
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# {Agent Name}
|
||||
|
||||
You are a specialized agent for {purpose}.
|
||||
|
||||
## Your Role
|
||||
|
||||
{Detailed role description}
|
||||
|
||||
## Process
|
||||
|
||||
### Step 1: {First Step}
|
||||
|
||||
{Instructions for first step}
|
||||
|
||||
### Step 2: {Second Step}
|
||||
|
||||
{Instructions for second step}
|
||||
|
||||
[Continue with all steps...]
|
||||
|
||||
## Output Format
|
||||
|
||||
Return your findings in this format:
|
||||
|
||||
````
|
||||
|
||||
{Expected output structure}
|
||||
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
|
||||
- {Guideline 1}
|
||||
- {Guideline 2}
|
||||
- {Guideline 3}
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: {Scenario}
|
||||
|
||||
**Input**: {example input}
|
||||
**Expected output**: {example output}
|
||||
|
||||
[More examples...]
|
||||
```
|
||||
|
||||
#### 5b. For Commands
|
||||
|
||||
````markdown
|
||||
---
|
||||
description: { One-line summary }
|
||||
category: { category }
|
||||
argument-hint: { if applicable }
|
||||
tools: { tool-list }
|
||||
model: inherit
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# {Command Name}
|
||||
|
||||
You are tasked with {command purpose}.
|
||||
|
||||
## Purpose
|
||||
|
||||
{Detailed explanation of what this command does and why it exists}
|
||||
|
||||
## Initial Response
|
||||
|
||||
When invoked:
|
||||
|
||||
\`\`\` {Default message to show user} \`\`\`
|
||||
|
||||
## Process
|
||||
|
||||
### Step 1: {First Step Name}
|
||||
|
||||
{Instructions for first step}
|
||||
|
||||
### Step 2: {Second Step Name}
|
||||
|
||||
{Instructions for second step}
|
||||
|
||||
[Continue with all steps...]
|
||||
|
||||
## Configuration
|
||||
|
||||
This command uses configuration from `.claude/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"catalyst": {
|
||||
"project": {
|
||||
"ticketPrefix": "PROJ"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
````
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
### {Advanced Feature 1}
|
||||
|
||||
```
|
||||
{Example usage}
|
||||
```
|
||||
|
||||
### {Advanced Feature 2}
|
||||
|
||||
```
|
||||
{Example usage}
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
|
||||
- {Guideline 1}
|
||||
- {Guideline 2}
|
||||
|
||||
## Integration with Other Commands
|
||||
|
||||
- **{Related command 1}**: {How they work together}
|
||||
- **{Related command 2}**: {How they work together}
|
||||
|
||||
## Error Handling
|
||||
|
||||
### {Common Error 1}
|
||||
|
||||
- {How to handle it}
|
||||
|
||||
### {Common Error 2}
|
||||
|
||||
- {How to handle it}
|
||||
|
||||
````
|
||||
|
||||
### Step 6: Validate Template
|
||||
|
||||
Before showing to user, validate:
|
||||
|
||||
1. **Frontmatter**:
|
||||
- All required fields present?
|
||||
- Tools list valid?
|
||||
- Category matches existing categories?
|
||||
- Name in kebab-case?
|
||||
- Version starts at 1.0.0?
|
||||
|
||||
2. **Structure**:
|
||||
- Clear purpose statement?
|
||||
- Step-by-step process?
|
||||
- Output format specified (for agents)?
|
||||
- Error handling included?
|
||||
|
||||
3. **Consistency**:
|
||||
- Matches patterns from similar workflows?
|
||||
- Uses workspace conventions?
|
||||
- References config.json for project-specific values?
|
||||
|
||||
If validation fails, fix issues before proceeding.
|
||||
|
||||
### Step 7: Present Draft
|
||||
|
||||
Show the user the generated template:
|
||||
|
||||
```markdown
|
||||
# Generated Workflow: {name}
|
||||
|
||||
I've created a draft based on {source-pattern}.
|
||||
|
||||
**Type**: {Agent/Command}
|
||||
**File**: {target-path}
|
||||
|
||||
## Frontmatter
|
||||
```yaml
|
||||
{frontmatter}
|
||||
````
|
||||
|
||||
## Key Features
|
||||
|
||||
- {Feature 1}
|
||||
- {Feature 2}
|
||||
- {Feature 3}
|
||||
|
||||
## Modeled After
|
||||
|
||||
- Local: {local-example if any}
|
||||
- External: {catalog-example if any}
|
||||
|
||||
Would you like me to:
|
||||
|
||||
1. Save this workflow as-is
|
||||
2. Make adjustments (specify what to change)
|
||||
3. Show me alternative approaches
|
||||
|
||||
````
|
||||
|
||||
### Step 8: Iterate on Feedback
|
||||
|
||||
Be ready to adjust:
|
||||
- Add/remove steps
|
||||
- Change tools
|
||||
- Adjust frontmatter
|
||||
- Modify structure
|
||||
- Add examples
|
||||
- Update descriptions
|
||||
|
||||
Continue iterating until user is satisfied.
|
||||
|
||||
### Step 9: Save Workflow
|
||||
|
||||
Determine save location:
|
||||
|
||||
**If Agent**:
|
||||
- Save to: `agents/{workflow-name}.md`
|
||||
|
||||
**If Command**:
|
||||
- Save to: `commands/{workflow-name}.md`
|
||||
|
||||
### Step 10: Create Creation Record
|
||||
|
||||
Save creation details to `thoughts/shared/workflows/created.md`:
|
||||
|
||||
```markdown
|
||||
## {workflow-name}
|
||||
|
||||
- **Created**: {date}
|
||||
- **Type**: {agent/command}
|
||||
- **Location**: {file-path}
|
||||
- **Modeled After**:
|
||||
- {local-example if any}
|
||||
- {catalog-example if any}
|
||||
- **Purpose**: {brief-description}
|
||||
- **Tools**: {tool-list}
|
||||
- **Category**: {category}
|
||||
|
||||
**Creation Notes**: {any special notes about decisions made}
|
||||
````
|
||||
|
||||
### Step 11: Confirmation
|
||||
|
||||
Present success summary:
|
||||
|
||||
```markdown
|
||||
✅ Workflow created successfully!
|
||||
|
||||
**Saved to**: {file-path}
|
||||
|
||||
**What's included**:
|
||||
|
||||
- Standardized frontmatter
|
||||
- Clear step-by-step process
|
||||
- {Type-specific features}
|
||||
- Error handling guidelines
|
||||
|
||||
**Next steps**:
|
||||
|
||||
1. Review: `{file-path}`
|
||||
2. Test: Try using the workflow
|
||||
3. Customize: Adjust for your specific needs
|
||||
4. Commit: `git add {file-path} && git commit -m "Add {workflow-name} {type}"`
|
||||
|
||||
Creation recorded in: thoughts/shared/workflows/created.md
|
||||
```
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
### Create from Catalog Entry
|
||||
|
||||
```
|
||||
/create-workflow from catalog wshobson/commands/code-review
|
||||
```
|
||||
|
||||
Creates a new workflow based on a specific catalog entry.
|
||||
|
||||
### Create with Custom Template
|
||||
|
||||
```
|
||||
/create-workflow agent data-analyzer --template minimal
|
||||
```
|
||||
|
||||
Uses predefined templates:
|
||||
|
||||
- `minimal`: Basic structure only
|
||||
- `standard`: Full featured (default)
|
||||
- `advanced`: Includes sub-agent patterns
|
||||
|
||||
### Quick Create
|
||||
|
||||
```
|
||||
/create-workflow command quick-commit "Create conventional commits"
|
||||
```
|
||||
|
||||
Skips interactive steps, uses defaults.
|
||||
|
||||
## Templates
|
||||
|
||||
### Minimal Agent Template
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: {name}
|
||||
description: {description}
|
||||
tools: Read, Grep
|
||||
model: inherit
|
||||
category: general
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# {Name}
|
||||
|
||||
You are a specialized agent for {purpose}.
|
||||
|
||||
## Process
|
||||
|
||||
[Your implementation]
|
||||
|
||||
## Output
|
||||
|
||||
Return: {what you return}
|
||||
```
|
||||
|
||||
### Minimal Command Template
|
||||
|
||||
```yaml
|
||||
---
|
||||
description: {description}
|
||||
category: general
|
||||
tools: Read, Write
|
||||
model: inherit
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# {Name}
|
||||
|
||||
You are tasked with {purpose}.
|
||||
|
||||
## Process
|
||||
|
||||
[Your implementation]
|
||||
```
|
||||
|
||||
## Categories
|
||||
|
||||
Standard categories found in workspace:
|
||||
|
||||
**For Agents**:
|
||||
|
||||
- `research` - Finding and analyzing information
|
||||
- `analysis` - Deep code/data analysis
|
||||
- `search` - Locating files/patterns
|
||||
- `execution` - Running commands/operations
|
||||
- `validation` - Checking and verifying
|
||||
- `general` - Multi-purpose agents
|
||||
|
||||
**For Commands**:
|
||||
|
||||
- `workflow` - Development workflows
|
||||
- `planning` - Planning and design
|
||||
- `implementation` - Code changes
|
||||
- `validation` - Testing and verification
|
||||
- `linear` - Linear integration
|
||||
- `git` - Version control
|
||||
- `workflow-discovery` - Meta-workflows
|
||||
- `general` - Miscellaneous
|
||||
|
||||
## Frontmatter Field Reference
|
||||
|
||||
### Required for All
|
||||
|
||||
- `description`: One-line summary (commands) or longer explanation (agents)
|
||||
- `tools`: Array of Claude Code tools used
|
||||
- `model`: Usually "inherit"
|
||||
- `version`: Start with "1.0.0"
|
||||
|
||||
### Agent-Specific
|
||||
|
||||
- `name`: Agent identifier in kebab-case
|
||||
- `category`: Agent category from list above
|
||||
|
||||
### Command-Specific
|
||||
|
||||
- `category`: Command category from list above
|
||||
- `argument-hint`: (optional) Hint for command arguments
|
||||
|
||||
### Optional for Both
|
||||
|
||||
- `source`: URL of origin if imported/adapted
|
||||
- `adapted`: Date if modified from external source
|
||||
- `original-author`: Credit for original creator
|
||||
|
||||
## Important Notes
|
||||
|
||||
- **Follow standards**: Always use workspace frontmatter format
|
||||
- **Validate tools**: Only reference tools that exist in Claude Code
|
||||
- **Check categories**: Use existing categories when possible
|
||||
- **Kebab-case names**: All workflow names should be kebab-case
|
||||
- **Clear descriptions**: Make purpose immediately obvious
|
||||
- **Include examples**: Show expected inputs/outputs for agents
|
||||
- **Error handling**: Always include error scenarios
|
||||
- **Configuration**: Use .claude/config.json for project values
|
||||
|
||||
## Integration with Other Commands
|
||||
|
||||
- **Discover**: `/discover-workflows` → find examples to model after
|
||||
- **Import**: `/import-workflow` → import external workflow as starting point
|
||||
- **Create**: `/create-workflow` (this command) → create new workflow
|
||||
- **Validate**: `/validate-frontmatter` → ensure consistency
|
||||
|
||||
## Error Handling
|
||||
|
||||
### No Similar Workflows Found
|
||||
|
||||
- Show general templates
|
||||
- Ask for more details about desired functionality
|
||||
- Suggest browsing catalog manually
|
||||
|
||||
### Invalid Tool References
|
||||
|
||||
- List available tools
|
||||
- Suggest alternatives
|
||||
- Ask if should proceed without unavailable tools
|
||||
|
||||
### Category Mismatch
|
||||
|
||||
- Show list of existing categories
|
||||
- Suggest closest match
|
||||
- Allow creating new category if justified
|
||||
|
||||
### Name Collision
|
||||
|
||||
- Detect existing workflow with same name
|
||||
- Suggest alternative names
|
||||
- Ask: Rename / Replace / Cancel?
|
||||
|
||||
This command helps you create high-quality workflows following workspace standards!
|
||||
Reference in New Issue
Block a user