@atlashub/smartstack-cli 1.37.0 → 2.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/.documentation/agents.html +147 -40
- package/.documentation/apex.html +1 -1
- package/.documentation/business-analyse.html +3 -3
- package/.documentation/cli-commands.html +2 -2
- package/.documentation/commands.html +14 -14
- package/.documentation/efcore.html +14 -14
- package/.documentation/gitflow.html +12 -12
- package/.documentation/hooks.html +41 -3
- package/.documentation/index.html +1 -1
- package/.documentation/init.html +2 -2
- package/.documentation/installation.html +11 -11
- package/.documentation/js/app.js +1 -1
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +4 -4
- package/config/mcp-defaults.json +62 -0
- package/dist/index.js +58 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +70010 -0
- package/dist/mcp-entry.mjs.map +1 -0
- package/package.json +14 -5
- package/templates/agents/gitflow/start.md +5 -4
- package/templates/agents/mcp-healthcheck.md +15 -13
- package/templates/mcp-scaffolding/component.tsx.hbs +298 -0
- package/templates/mcp-scaffolding/controller.cs.hbs +184 -0
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +231 -0
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -0
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -0
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +134 -0
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -0
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -0
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +413 -0
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -0
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -0
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -0
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +390 -0
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -0
- package/templates/ralph/README.md +3 -3
- package/templates/ralph/ralph.config.yaml +2 -2
- package/templates/skills/admin/SKILL.md +42 -0
- package/templates/skills/business-analyse/_shared.md +79 -15
- package/templates/skills/business-analyse/questionnaire/01-context.md +4 -4
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +3 -3
- package/templates/skills/business-analyse/questionnaire/03-scope.md +4 -4
- package/templates/skills/business-analyse/questionnaire/04-data.md +7 -7
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +1 -1
- package/templates/skills/business-analyse/questionnaire/06-security.md +3 -3
- package/templates/skills/business-analyse/questionnaire/07-ui.md +1 -1
- package/templates/skills/business-analyse/questionnaire/08-performance.md +3 -3
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +4 -4
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +2 -2
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +2 -2
- package/templates/skills/business-analyse/questionnaire/12-migration.md +1 -1
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +2 -2
- package/templates/skills/business-analyse/steps/step-01-discover.md +50 -25
- package/templates/skills/business-analyse/steps/step-03-specify.md +63 -0
- package/templates/skills/business-analyse/steps/step-04-validate.md +23 -1
- package/templates/skills/business-analyse/steps/step-05-handoff.md +248 -66
- package/templates/skills/business-analyse/templates/tpl-handoff.md +99 -23
- package/templates/skills/cc-agent/SKILL.md +129 -0
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -0
- package/templates/skills/cc-agent/references/permission-modes.md +102 -0
- package/templates/skills/cc-agent/references/tools-reference.md +144 -0
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -0
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -0
- package/templates/skills/cc-agent/steps/step-02-generate.md +204 -0
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -0
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -0
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -0
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -0
- package/templates/skills/cc-audit/SKILL.md +108 -0
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -0
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -0
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -0
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -0
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -0
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -0
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -0
- package/templates/skills/cc-skill/SKILL.md +134 -0
- package/templates/skills/cc-skill/references/best-practices.md +167 -0
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -0
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -0
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -0
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -0
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -0
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -0
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -0
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -0
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -0
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -0
- package/templates/skills/cc-skill/templates/step-template.md +82 -0
- package/templates/skills/check-version/SKILL.md +6 -0
- package/templates/skills/controller/templates.md +82 -0
- package/templates/skills/debug/SKILL.md +4 -0
- package/templates/skills/documentation/SKILL.md +1 -0
- package/templates/skills/efcore/SKILL.md +5 -0
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -0
- package/templates/skills/efcore/steps/db/step-deploy.md +26 -5
- package/templates/skills/efcore/steps/migration/step-03-validate.md +19 -0
- package/templates/skills/efcore/steps/shared/step-00-init.md +21 -7
- package/templates/skills/explore/SKILL.md +28 -32
- package/templates/skills/feature-full/SKILL.md +1 -0
- package/templates/skills/gitflow/SKILL.md +8 -0
- package/templates/skills/gitflow/steps/step-start.md +45 -10
- package/templates/skills/mcp/SKILL.md +38 -18
- package/templates/skills/quick-search/SKILL.md +8 -1
- package/templates/skills/ralph-loop/SKILL.md +1 -1
- package/templates/skills/ralph-loop/steps/step-00-init.md +8 -68
- package/templates/skills/ralph-loop/steps/step-04-check.md +1 -1
- package/templates/skills/refactor/SKILL.md +1 -0
- package/templates/skills/review-code/SKILL.md +11 -3
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -0
- package/templates/skills/review-code/references/security-checklist.md +86 -1
- package/templates/skills/review-code/references/smartstack-conventions.md +166 -0
- package/templates/skills/ui-components/SKILL.md +31 -438
- package/templates/skills/ui-components/accessibility.md +170 -0
- package/templates/skills/ui-components/patterns/data-table.md +39 -0
- package/templates/skills/ui-components/patterns/entity-card.md +77 -0
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -0
- package/templates/skills/ui-components/patterns/kanban.md +43 -0
- package/templates/skills/ui-components/style-guide.md +86 -0
- package/templates/skills/utils/SKILL.md +1 -0
- package/templates/skills/validate/SKILL.md +1 -0
- package/templates/skills/workflow/SKILL.md +27 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-00-init
|
|
3
|
+
description: Parse subcommand, agent name, scope, category, and resolve target directory
|
|
4
|
+
next_step: steps/step-01-design.md
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 0: Initialization
|
|
8
|
+
|
|
9
|
+
## MANDATORY EXECUTION RULES:
|
|
10
|
+
- ALWAYS parse subcommand first (create or update)
|
|
11
|
+
- ALWAYS validate agent name uniqueness
|
|
12
|
+
- ALWAYS resolve target file path before proceeding
|
|
13
|
+
- For UPDATE: verify agent exists before continuing
|
|
14
|
+
|
|
15
|
+
## YOUR TASK:
|
|
16
|
+
Parse input arguments, validate the agent name, and resolve the target file path.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## EXECUTION SEQUENCE:
|
|
21
|
+
|
|
22
|
+
### 1. Parse Input
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Arguments from $ARGUMENTS:
|
|
26
|
+
First word → {subcommand} ("create" or "update")
|
|
27
|
+
Second word → {agent_name} (unique identifier)
|
|
28
|
+
--scope X → {scope} (default: "project")
|
|
29
|
+
--category X → {category} (optional, for subdirectory)
|
|
30
|
+
|
|
31
|
+
Valid subcommands: create, update
|
|
32
|
+
Valid scopes: project, global, templates
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If {subcommand} is missing or invalid:
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
AskUserQuestion:
|
|
39
|
+
header: "Action"
|
|
40
|
+
question: "What do you want to do?"
|
|
41
|
+
options:
|
|
42
|
+
- label: "Create"
|
|
43
|
+
description: "Create a new agent from scratch"
|
|
44
|
+
- label: "Update"
|
|
45
|
+
description: "Update an existing agent"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. Validate Agent Name
|
|
49
|
+
|
|
50
|
+
If {agent_name} missing:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
AskUserQuestion:
|
|
54
|
+
header: "Name"
|
|
55
|
+
question: "What is the agent name? (unique identifier, kebab-case)"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Validation rules:
|
|
59
|
+
- Kebab-case recommended (hyphens, no spaces)
|
|
60
|
+
- Must be unique within scope
|
|
61
|
+
- Must not conflict with built-in agents (Explore, Plan, general-purpose, Bash)
|
|
62
|
+
|
|
63
|
+
### 3. Resolve Target Path
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Based on {scope} and {category}:
|
|
67
|
+
|
|
68
|
+
"project" →
|
|
69
|
+
No category: {target_path} = "{cwd}/.claude/agents/{agent_name}.md"
|
|
70
|
+
With category: {target_path} = "{cwd}/.claude/agents/{category}/{agent_name}.md"
|
|
71
|
+
|
|
72
|
+
"global" →
|
|
73
|
+
No category: {target_path} = "~/.claude/agents/{agent_name}.md"
|
|
74
|
+
With category: {target_path} = "~/.claude/agents/{category}/{agent_name}.md"
|
|
75
|
+
|
|
76
|
+
"templates" →
|
|
77
|
+
No category: {target_path} = "{cwd}/templates/agents/{agent_name}.md"
|
|
78
|
+
With category: {target_path} = "{cwd}/templates/agents/{category}/{agent_name}.md"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 4. Check Existing
|
|
82
|
+
|
|
83
|
+
**For CREATE:**
|
|
84
|
+
- Verify {target_path} does NOT already exist
|
|
85
|
+
- If exists: warn and ask to overwrite or switch to update
|
|
86
|
+
|
|
87
|
+
**For UPDATE:**
|
|
88
|
+
- Verify {target_path} exists
|
|
89
|
+
- If missing: search for agent in other locations, suggest correct path
|
|
90
|
+
- If found: read file and extract current frontmatter
|
|
91
|
+
|
|
92
|
+
### 5. List Existing Agents (for context)
|
|
93
|
+
|
|
94
|
+
Scan the target scope for existing agents:
|
|
95
|
+
```
|
|
96
|
+
Glob: "{target_dir}/*.md"
|
|
97
|
+
Glob: "{target_dir}/**/*.md"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Display:
|
|
101
|
+
```
|
|
102
|
+
Existing agents in {scope}:
|
|
103
|
+
| Name | Category | Model |
|
|
104
|
+
|------|----------|-------|
|
|
105
|
+
| {name} | {cat} | {model} |
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 6. Show Summary
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Agent Configuration:
|
|
112
|
+
|
|
113
|
+
| Setting | Value |
|
|
114
|
+
|---------|-------|
|
|
115
|
+
| Action | {subcommand} |
|
|
116
|
+
| Name | {agent_name} |
|
|
117
|
+
| Scope | {scope} |
|
|
118
|
+
| Category | {category} |
|
|
119
|
+
| Target | {target_path} |
|
|
120
|
+
|
|
121
|
+
→ Designing agent...
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## SUCCESS METRICS:
|
|
127
|
+
- Subcommand correctly identified
|
|
128
|
+
- Agent name validated (unique, not built-in)
|
|
129
|
+
- Target path resolved and checked
|
|
130
|
+
- Existing agents listed for context
|
|
131
|
+
- Summary displayed
|
|
132
|
+
|
|
133
|
+
## NEXT STEP:
|
|
134
|
+
After showing summary, proceed directly to `./step-01-design.md`
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-01-design
|
|
3
|
+
description: Design agent - choose model, tools, permissions, skills to preload
|
|
4
|
+
next_step: steps/step-02-generate.md
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 1: Design Agent
|
|
8
|
+
|
|
9
|
+
## MANDATORY EXECUTION RULES:
|
|
10
|
+
- ALWAYS ask the user for design decisions (don't assume)
|
|
11
|
+
- For UPDATE: show current values and ask what to change
|
|
12
|
+
- Load reference docs for guidance
|
|
13
|
+
- Tools should follow principle of least privilege
|
|
14
|
+
|
|
15
|
+
## YOUR TASK:
|
|
16
|
+
Guide the user through agent design decisions. Gather model, tools, permissions, skills, and system prompt content.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## EXECUTION SEQUENCE:
|
|
21
|
+
|
|
22
|
+
### 1. Load References
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Read: "references/agent-frontmatter.md"
|
|
26
|
+
Read: "references/tools-reference.md"
|
|
27
|
+
Read: "references/permission-modes.md"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. Gather Description
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
AskUserQuestion:
|
|
34
|
+
header: "Purpose"
|
|
35
|
+
question: "Describe what this agent does and WHEN Claude should delegate to it. Be specific - Claude uses this to decide delegation. Example: 'Expert code reviewer for PR analysis. Use when reviewing code changes for security, logic, or performance.'"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Store in {description}.
|
|
39
|
+
|
|
40
|
+
### 3. Choose Model
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
AskUserQuestion:
|
|
44
|
+
header: "Model"
|
|
45
|
+
question: "Which model should this agent use?"
|
|
46
|
+
options:
|
|
47
|
+
- label: "Haiku (Recommended for fast tasks)"
|
|
48
|
+
description: "Fast and cheap. Best for: search, scan, simple checks, read-only tasks."
|
|
49
|
+
- label: "Sonnet"
|
|
50
|
+
description: "Balanced. Best for: code generation, analysis, most tasks."
|
|
51
|
+
- label: "Opus"
|
|
52
|
+
description: "Most capable. Best for: complex reasoning, architecture, planning."
|
|
53
|
+
- label: "Inherit"
|
|
54
|
+
description: "Use parent's model. Best when you don't want to override."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 4. Choose Tools
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
AskUserQuestion:
|
|
61
|
+
header: "Tools"
|
|
62
|
+
question: "What tools does this agent need?"
|
|
63
|
+
options:
|
|
64
|
+
- label: "Read-only"
|
|
65
|
+
description: "Read, Grep, Glob - safe exploration only"
|
|
66
|
+
- label: "Read + Write"
|
|
67
|
+
description: "Read, Write, Edit, Grep, Glob - file modifications"
|
|
68
|
+
- label: "Full dev"
|
|
69
|
+
description: "Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch"
|
|
70
|
+
- label: "Custom"
|
|
71
|
+
description: "I'll specify the exact tool list"
|
|
72
|
+
multiSelect: false
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If "Custom" selected, ask for comma-separated list.
|
|
76
|
+
|
|
77
|
+
Map selections:
|
|
78
|
+
- Read-only → "Read, Grep, Glob"
|
|
79
|
+
- Read + Write → "Read, Write, Edit, Grep, Glob"
|
|
80
|
+
- Full dev → "Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch"
|
|
81
|
+
|
|
82
|
+
Also ask about disallowed tools:
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
AskUserQuestion:
|
|
86
|
+
header: "Blocked"
|
|
87
|
+
question: "Should any tools be explicitly blocked? (Usually not needed)"
|
|
88
|
+
options:
|
|
89
|
+
- label: "None (Recommended)"
|
|
90
|
+
description: "Don't block any tools beyond the allowed list"
|
|
91
|
+
- label: "Block Bash"
|
|
92
|
+
description: "Prevent command execution"
|
|
93
|
+
- label: "Block Write/Edit"
|
|
94
|
+
description: "Read-only, no file modifications"
|
|
95
|
+
- label: "Custom"
|
|
96
|
+
description: "I'll specify tools to block"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 5. Choose Permission Mode
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
AskUserQuestion:
|
|
103
|
+
header: "Permissions"
|
|
104
|
+
question: "How should this agent handle permission prompts?"
|
|
105
|
+
options:
|
|
106
|
+
- label: "Default (Recommended)"
|
|
107
|
+
description: "Standard permission prompts for sensitive operations"
|
|
108
|
+
- label: "Accept Edits"
|
|
109
|
+
description: "Auto-accept file edits. Good for code generation agents."
|
|
110
|
+
- label: "Plan (read-only)"
|
|
111
|
+
description: "Read-only exploration mode. No modifications allowed."
|
|
112
|
+
- label: "Don't Ask"
|
|
113
|
+
description: "Auto-deny all permission prompts. For background tasks."
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 6. Choose Skills to Preload (optional)
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
AskUserQuestion:
|
|
120
|
+
header: "Skills"
|
|
121
|
+
question: "Should any skills be preloaded into this agent? Preloaded skills inject their full content at startup."
|
|
122
|
+
options:
|
|
123
|
+
- label: "None (Recommended)"
|
|
124
|
+
description: "Agent operates without preloaded skills"
|
|
125
|
+
- label: "Select skills"
|
|
126
|
+
description: "I'll choose which skills to preload"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If "Select skills", list available skills and let user choose.
|
|
130
|
+
|
|
131
|
+
### 7. Design System Prompt
|
|
132
|
+
|
|
133
|
+
Ask the user to describe the agent's behavior:
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
AskUserQuestion:
|
|
137
|
+
header: "Behavior"
|
|
138
|
+
question: "Describe the agent's behavior pattern. Choose a template or describe custom behavior."
|
|
139
|
+
options:
|
|
140
|
+
- label: "Explorer"
|
|
141
|
+
description: "Search codebase, read files, report findings. Workflow: Search → Read → Analyze → Report."
|
|
142
|
+
- label: "Modifier"
|
|
143
|
+
description: "Read code, make changes, validate. Workflow: Read → Edit → Validate → Report."
|
|
144
|
+
- label: "Validator"
|
|
145
|
+
description: "Check conventions, rules, quality. Workflow: Scan → Check → Report issues."
|
|
146
|
+
- label: "Custom"
|
|
147
|
+
description: "I'll describe the workflow and behavior"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If "Custom", ask for detailed description of:
|
|
151
|
+
1. What the agent does when invoked
|
|
152
|
+
2. The workflow steps (numbered)
|
|
153
|
+
3. Key execution rules
|
|
154
|
+
4. Output format
|
|
155
|
+
|
|
156
|
+
### 8. Show Design Summary
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Agent Design:
|
|
160
|
+
|
|
161
|
+
| Field | Value |
|
|
162
|
+
|-------|-------|
|
|
163
|
+
| Name | {agent_name} |
|
|
164
|
+
| Description | {description} (truncated) |
|
|
165
|
+
| Model | {model} |
|
|
166
|
+
| Tools | {tools} |
|
|
167
|
+
| Blocked tools | {disallowed_tools} |
|
|
168
|
+
| Permission mode | {permission_mode} |
|
|
169
|
+
| Preloaded skills | {preloaded_skills} |
|
|
170
|
+
| Behavior pattern | {pattern} |
|
|
171
|
+
| Category | {category} |
|
|
172
|
+
|
|
173
|
+
→ Generating agent file...
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## SUCCESS METRICS:
|
|
179
|
+
- All required fields gathered from user
|
|
180
|
+
- Model choice appropriate for agent's purpose
|
|
181
|
+
- Tools follow least privilege principle
|
|
182
|
+
- Permission mode matches risk level
|
|
183
|
+
- System prompt pattern identified
|
|
184
|
+
|
|
185
|
+
## NEXT STEP:
|
|
186
|
+
After design is confirmed, proceed directly to `./step-02-generate.md`
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-02-generate
|
|
3
|
+
description: Generate agent .md file from template based on design choices
|
|
4
|
+
next_step: steps/step-03-validate.md
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 2: Generate Agent File
|
|
8
|
+
|
|
9
|
+
## MANDATORY EXECUTION RULES:
|
|
10
|
+
- ALWAYS load the appropriate template from `templates/` directory
|
|
11
|
+
- ALWAYS use the design choices from Step 1
|
|
12
|
+
- For UPDATE: read existing agent first, then apply changes
|
|
13
|
+
- Generate COMPLETE agent file (not a stub)
|
|
14
|
+
|
|
15
|
+
## YOUR TASK:
|
|
16
|
+
Generate the agent .md file based on the design choices gathered in Step 1.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## EXECUTION SEQUENCE:
|
|
21
|
+
|
|
22
|
+
### 1. Load Template
|
|
23
|
+
|
|
24
|
+
Based on agent configuration:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Standalone (no category) → Read: "templates/agent-standalone.md"
|
|
28
|
+
Categorized (with category) → Read: "templates/agent-categorized.md"
|
|
29
|
+
With preloaded skills → Read: "templates/agent-with-skills.md"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. Create Directory (if needed)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# For categorized agents
|
|
36
|
+
mkdir -p {target_dir}/{category}/
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 3. Generate Frontmatter
|
|
40
|
+
|
|
41
|
+
Build the YAML frontmatter from design choices:
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
---
|
|
45
|
+
name: {agent_name}
|
|
46
|
+
description: {description}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Add optional fields only if they differ from defaults:
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
# Only if not inherit
|
|
53
|
+
model: {model}
|
|
54
|
+
|
|
55
|
+
# Only if explicitly specified
|
|
56
|
+
tools: "{tools}"
|
|
57
|
+
|
|
58
|
+
# Only if blocking specific tools
|
|
59
|
+
disallowedTools: "{disallowed_tools}"
|
|
60
|
+
|
|
61
|
+
# Only if not default
|
|
62
|
+
permissionMode: {permission_mode}
|
|
63
|
+
|
|
64
|
+
# Only if preloading skills
|
|
65
|
+
skills:
|
|
66
|
+
- {skill_1}
|
|
67
|
+
- {skill_2}
|
|
68
|
+
|
|
69
|
+
# Optional visual indicator
|
|
70
|
+
color: {color}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Close frontmatter:
|
|
74
|
+
```yaml
|
|
75
|
+
---
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 4. Generate System Prompt Content
|
|
79
|
+
|
|
80
|
+
Based on the behavior pattern chosen in Step 1:
|
|
81
|
+
|
|
82
|
+
**Explorer pattern:**
|
|
83
|
+
```markdown
|
|
84
|
+
You are a specialized exploration agent for {purpose}.
|
|
85
|
+
|
|
86
|
+
## Workflow
|
|
87
|
+
|
|
88
|
+
1. **Search**: Use Grep and Glob to find relevant files
|
|
89
|
+
2. **Read**: Load and analyze discovered files
|
|
90
|
+
3. **Analyze**: Identify patterns, dependencies, and relationships
|
|
91
|
+
4. **Report**: Present findings in structured format
|
|
92
|
+
|
|
93
|
+
## Execution Rules
|
|
94
|
+
|
|
95
|
+
- Run independent searches in parallel
|
|
96
|
+
- Always cite file paths and line numbers
|
|
97
|
+
- Focus only on what's relevant to the request
|
|
98
|
+
- Present findings as tables or structured lists
|
|
99
|
+
|
|
100
|
+
## Output Format
|
|
101
|
+
|
|
102
|
+
List findings with file references:
|
|
103
|
+
```
|
|
104
|
+
- path/to/file.ext:line - Description of finding
|
|
105
|
+
```
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Modifier pattern:**
|
|
109
|
+
```markdown
|
|
110
|
+
You are a code modification specialist for {purpose}.
|
|
111
|
+
|
|
112
|
+
## Workflow
|
|
113
|
+
|
|
114
|
+
1. **Read**: Load all specified files with Read tool
|
|
115
|
+
2. **Analyze**: Understand current structure and patterns
|
|
116
|
+
3. **Edit**: Apply requested changes using Edit tool
|
|
117
|
+
4. **Validate**: Verify changes are correct
|
|
118
|
+
5. **Report**: List what was modified
|
|
119
|
+
|
|
120
|
+
## Execution Rules
|
|
121
|
+
|
|
122
|
+
- Follow existing code style exactly
|
|
123
|
+
- Preserve all formatting and indentation
|
|
124
|
+
- Make minimal changes to achieve the goal
|
|
125
|
+
- Never add comments unless requested
|
|
126
|
+
|
|
127
|
+
## Output Format
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
- path/to/file.ext: [Description of change]
|
|
131
|
+
```
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Validator pattern:**
|
|
135
|
+
```markdown
|
|
136
|
+
You are a validation specialist for {purpose}.
|
|
137
|
+
|
|
138
|
+
## Workflow
|
|
139
|
+
|
|
140
|
+
1. **Scan**: Find all files to validate
|
|
141
|
+
2. **Check**: Apply validation rules to each file
|
|
142
|
+
3. **Report**: Present issues with severity and recommendations
|
|
143
|
+
|
|
144
|
+
## Execution Rules
|
|
145
|
+
|
|
146
|
+
- Check ALL files in scope, not just a sample
|
|
147
|
+
- Every issue must have a clear recommendation
|
|
148
|
+
- Use severity levels: ERROR, WARN, INFO
|
|
149
|
+
- Present results as tables
|
|
150
|
+
|
|
151
|
+
## Output Format
|
|
152
|
+
|
|
153
|
+
| File | Severity | Issue | Recommendation |
|
|
154
|
+
|------|----------|-------|----------------|
|
|
155
|
+
| path | ERROR | ... | ... |
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Custom pattern:**
|
|
159
|
+
Use the user's description from Step 1 to generate appropriate sections.
|
|
160
|
+
|
|
161
|
+
### 5. Write Agent File
|
|
162
|
+
|
|
163
|
+
Use Write tool to create the file at {target_path}.
|
|
164
|
+
|
|
165
|
+
### 6. For UPDATE Subcommand
|
|
166
|
+
|
|
167
|
+
If {subcommand} = "update":
|
|
168
|
+
1. Read existing file at {target_path}
|
|
169
|
+
2. Parse current frontmatter
|
|
170
|
+
3. Apply only the requested changes (merge frontmatter, update content sections)
|
|
171
|
+
4. Use Edit tool for targeted modifications
|
|
172
|
+
5. Preserve custom content not being updated
|
|
173
|
+
|
|
174
|
+
### 7. Confirm Generation
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
Generated: {target_path}
|
|
178
|
+
|
|
179
|
+
Frontmatter:
|
|
180
|
+
name: {agent_name}
|
|
181
|
+
description: {description} (truncated)
|
|
182
|
+
model: {model}
|
|
183
|
+
tools: {tools}
|
|
184
|
+
permissionMode: {permission_mode}
|
|
185
|
+
|
|
186
|
+
Content sections:
|
|
187
|
+
- Workflow ({step_count} steps)
|
|
188
|
+
- Execution Rules
|
|
189
|
+
- Output Format
|
|
190
|
+
|
|
191
|
+
→ Validating agent...
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## SUCCESS METRICS:
|
|
197
|
+
- Agent .md file created at correct path
|
|
198
|
+
- Frontmatter includes all required and chosen optional fields
|
|
199
|
+
- System prompt is clear and actionable
|
|
200
|
+
- Content follows the chosen behavior pattern
|
|
201
|
+
- No placeholder text left unreplaced
|
|
202
|
+
|
|
203
|
+
## NEXT STEP:
|
|
204
|
+
Proceed directly to `./step-03-validate.md`
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-03-validate
|
|
3
|
+
description: Validate generated agent file and display final summary
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Step 3: Validate Agent
|
|
7
|
+
|
|
8
|
+
## MANDATORY EXECUTION RULES:
|
|
9
|
+
- Validate the generated file against official conventions
|
|
10
|
+
- Check frontmatter completeness
|
|
11
|
+
- Verify tool names are valid
|
|
12
|
+
- Display actionable report if issues found
|
|
13
|
+
|
|
14
|
+
## YOUR TASK:
|
|
15
|
+
Validate the generated agent against official Claude Code conventions and display a final summary.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## EXECUTION SEQUENCE:
|
|
20
|
+
|
|
21
|
+
### 1. Read Generated File
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Read: "{target_path}"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 2. Validate Frontmatter
|
|
28
|
+
|
|
29
|
+
**Required fields:**
|
|
30
|
+
- [ ] `name` exists and is a valid identifier
|
|
31
|
+
- [ ] `description` exists, non-empty, actionable for Claude delegation
|
|
32
|
+
|
|
33
|
+
**Optional field validation:**
|
|
34
|
+
- [ ] `model` is valid: haiku, sonnet, opus, inherit (or absent)
|
|
35
|
+
- [ ] `tools` references valid tool names (see tools-reference.md)
|
|
36
|
+
- [ ] `disallowedTools` references valid tool names
|
|
37
|
+
- [ ] `permissionMode` is valid: default, acceptEdits, dontAsk, bypassPermissions, plan
|
|
38
|
+
- [ ] `skills` references existing skill names
|
|
39
|
+
- [ ] `color` is a valid color name (if present)
|
|
40
|
+
|
|
41
|
+
**Valid tool names:**
|
|
42
|
+
```
|
|
43
|
+
Read, Write, Edit, Bash, Glob, Grep, Task, WebFetch, WebSearch,
|
|
44
|
+
NotebookEdit, AskUserQuestion, TodoWrite, Skill, ToolSearch,
|
|
45
|
+
mcp__* (any MCP tool)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 3. Validate Content
|
|
49
|
+
|
|
50
|
+
- [ ] Has workflow or instructions section
|
|
51
|
+
- [ ] Workflow has numbered steps
|
|
52
|
+
- [ ] Has execution rules
|
|
53
|
+
- [ ] Has output format specification
|
|
54
|
+
- [ ] Content is not empty (> 5 lines of non-frontmatter content)
|
|
55
|
+
- [ ] No unreplaced placeholder text
|
|
56
|
+
|
|
57
|
+
### 4. Check Consistency
|
|
58
|
+
|
|
59
|
+
- [ ] If `permissionMode: plan` → tools should be read-only (warn if Write/Edit/Bash included)
|
|
60
|
+
- [ ] If `model: haiku` → agent should be designed for simple/fast tasks (info)
|
|
61
|
+
- [ ] If `skills` field present → referenced skills exist in scope
|
|
62
|
+
- [ ] Description matches the agent's actual capabilities (tools + content)
|
|
63
|
+
|
|
64
|
+
### 5. Check Against Built-in Agents
|
|
65
|
+
|
|
66
|
+
Verify the agent doesn't duplicate a built-in agent:
|
|
67
|
+
|
|
68
|
+
| Built-in | Purpose |
|
|
69
|
+
|----------|---------|
|
|
70
|
+
| Explore | Fast codebase search, read-only (haiku) |
|
|
71
|
+
| Plan | Research and design, read-only (inherit) |
|
|
72
|
+
| general-purpose | Complex multi-step tasks (all tools) |
|
|
73
|
+
| Bash | Command execution in separate context |
|
|
74
|
+
|
|
75
|
+
If the new agent overlaps significantly with a built-in, display a warning:
|
|
76
|
+
```
|
|
77
|
+
WARN: This agent's purpose overlaps with the built-in '{name}' agent.
|
|
78
|
+
Consider using the built-in agent instead, or ensure this agent adds
|
|
79
|
+
unique value (specialized prompts, restricted tools, preloaded skills).
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 6. Display Validation Report
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Agent Validation Report:
|
|
86
|
+
|
|
87
|
+
| Check | Status |
|
|
88
|
+
|-------|--------|
|
|
89
|
+
| Frontmatter complete | PASS/FAIL |
|
|
90
|
+
| Tool names valid | PASS/FAIL |
|
|
91
|
+
| Permission mode valid | PASS/FAIL |
|
|
92
|
+
| Content quality | PASS/WARN |
|
|
93
|
+
| No built-in overlap | PASS/WARN |
|
|
94
|
+
| Skills references | PASS/WARN/N/A |
|
|
95
|
+
|
|
96
|
+
{If any FAIL: show specific issues and recommendations}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 7. Display Final Summary
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Agent Created Successfully!
|
|
103
|
+
|
|
104
|
+
| Property | Value |
|
|
105
|
+
|----------|-------|
|
|
106
|
+
| Name | {agent_name} |
|
|
107
|
+
| Location | {target_path} |
|
|
108
|
+
| Model | {model} |
|
|
109
|
+
| Tools | {tools} |
|
|
110
|
+
| Permission mode | {permission_mode} |
|
|
111
|
+
| Skills | {preloaded_skills} |
|
|
112
|
+
|
|
113
|
+
Usage:
|
|
114
|
+
In Task tool: subagent_type="{agent_name}"
|
|
115
|
+
In skill frontmatter: agent: "{agent_name}"
|
|
116
|
+
In agent frontmatter: (reference by name)
|
|
117
|
+
|
|
118
|
+
Next steps:
|
|
119
|
+
- Test the agent via Task tool
|
|
120
|
+
- Reference it in a skill with `context: fork` and `agent: {agent_name}`
|
|
121
|
+
- Run audit: /cc-audit
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## SUCCESS METRICS:
|
|
127
|
+
- All validations pass (or issues clearly reported)
|
|
128
|
+
- Final summary displayed with usage instructions
|
|
129
|
+
- Agent is ready to use
|
|
130
|
+
- No built-in overlap warnings (or acknowledged)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Template: Categorized Agent
|
|
2
|
+
|
|
3
|
+
Use this template for agents that belong to a category subdirectory (e.g., efcore/, gitflow/).
|
|
4
|
+
|
|
5
|
+
## Generated agent file format:
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
---
|
|
9
|
+
name: {{AGENT_NAME}}
|
|
10
|
+
description: {{DESCRIPTION}}
|
|
11
|
+
{{#if MODEL}}
|
|
12
|
+
model: {{MODEL}}
|
|
13
|
+
{{/if}}
|
|
14
|
+
{{#if TOOLS}}
|
|
15
|
+
tools: "{{TOOLS}}"
|
|
16
|
+
{{/if}}
|
|
17
|
+
{{#if DISALLOWED_TOOLS}}
|
|
18
|
+
disallowedTools: "{{DISALLOWED_TOOLS}}"
|
|
19
|
+
{{/if}}
|
|
20
|
+
{{#if PERMISSION_MODE}}
|
|
21
|
+
permissionMode: {{PERMISSION_MODE}}
|
|
22
|
+
{{/if}}
|
|
23
|
+
{{#if COLOR}}
|
|
24
|
+
color: {{COLOR}}
|
|
25
|
+
{{/if}}
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
{{SYSTEM_PROMPT}}
|
|
29
|
+
|
|
30
|
+
## Context: {{CATEGORY}}
|
|
31
|
+
|
|
32
|
+
This agent is part of the **{{CATEGORY}}** agent group, specialized for {{CATEGORY_PURPOSE}}.
|
|
33
|
+
|
|
34
|
+
## Workflow
|
|
35
|
+
|
|
36
|
+
1. **{{STEP_1_NAME}}**: {{STEP_1_DESC}}
|
|
37
|
+
2. **{{STEP_2_NAME}}**: {{STEP_2_DESC}}
|
|
38
|
+
3. **{{STEP_3_NAME}}**: {{STEP_3_DESC}}
|
|
39
|
+
|
|
40
|
+
## Execution Rules
|
|
41
|
+
|
|
42
|
+
- {{RULE_1}}
|
|
43
|
+
- {{RULE_2}}
|
|
44
|
+
- {{RULE_3}}
|
|
45
|
+
|
|
46
|
+
## Output Format
|
|
47
|
+
|
|
48
|
+
{{OUTPUT_FORMAT_DESCRIPTION}}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## File Location:
|
|
52
|
+
- Project: `.claude/agents/{category}/{name}.md`
|
|
53
|
+
- Global: `~/.claude/agents/{category}/{name}.md`
|
|
54
|
+
- Templates: `templates/agents/{category}/{name}.md`
|
|
55
|
+
|
|
56
|
+
## Category Examples:
|
|
57
|
+
| Category | Purpose | Agents |
|
|
58
|
+
|----------|---------|--------|
|
|
59
|
+
| `efcore` | EF Core database operations | migration, db-status, db-deploy, conflicts |
|
|
60
|
+
| `gitflow` | Git workflow management | commit, merge, plan, finish, status |
|
|
61
|
+
| `testing` | Test execution and validation | unit-tests, integration-tests, coverage |
|
|
62
|
+
|
|
63
|
+
## Notes:
|
|
64
|
+
- Category directories group related agents together
|
|
65
|
+
- Agents within a category often share similar tool requirements
|
|
66
|
+
- Category name should be lowercase, descriptive
|
|
67
|
+
- Each agent in the category should have a distinct, non-overlapping purpose
|