agileflow 2.61.0 → 2.62.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.
Files changed (66) hide show
  1. package/README.md +9 -9
  2. package/package.json +1 -1
  3. package/scripts/lib/counter.js +103 -0
  4. package/src/core/commands/auto.md +1 -0
  5. package/src/core/commands/babysit.md +170 -29
  6. package/src/core/commands/board.md +1 -0
  7. package/src/core/commands/ci.md +1 -0
  8. package/src/core/commands/compress.md +1 -0
  9. package/src/core/commands/deploy.md +1 -0
  10. package/src/core/commands/help.md +1 -0
  11. package/src/core/commands/research.md +1 -0
  12. package/src/core/commands/skill/create.md +566 -0
  13. package/src/core/commands/skill/delete.md +189 -0
  14. package/src/core/commands/skill/edit.md +245 -0
  15. package/src/core/commands/skill/list.md +155 -0
  16. package/src/core/commands/skill/test.md +249 -0
  17. package/src/core/commands/template.md +1 -0
  18. package/src/core/commands/tests.md +1 -0
  19. package/src/core/commands/update.md +1 -0
  20. package/src/core/commands/velocity.md +1 -0
  21. package/src/core/experts/refactor/expertise.yaml +17 -12
  22. package/src/core/templates/claude-settings.advanced.example.json +1 -1
  23. package/src/core/templates/claude-settings.example.json +1 -1
  24. package/tools/cli/commands/list.js +8 -13
  25. package/tools/cli/installers/core/installer.js +20 -19
  26. package/tools/cli/installers/ide/_base-ide.js +18 -4
  27. package/tools/cli/installers/ide/claude-code.js +4 -15
  28. package/tools/cli/installers/ide/codex.js +9 -13
  29. package/tools/cli/lib/content-injector.js +162 -31
  30. package/tools/cli/lib/utils.js +87 -0
  31. package/src/core/skills/acceptance-criteria-generator/SKILL.md +0 -46
  32. package/src/core/skills/adr-template/SKILL.md +0 -62
  33. package/src/core/skills/agileflow-acceptance-criteria/SKILL.md +0 -156
  34. package/src/core/skills/agileflow-adr/SKILL.md +0 -147
  35. package/src/core/skills/agileflow-adr/examples/database-choice-example.md +0 -122
  36. package/src/core/skills/agileflow-adr/templates/adr-template.md +0 -69
  37. package/src/core/skills/agileflow-commit-messages/SKILL.md +0 -130
  38. package/src/core/skills/agileflow-commit-messages/reference/bad-examples.md +0 -168
  39. package/src/core/skills/agileflow-commit-messages/reference/good-examples.md +0 -120
  40. package/src/core/skills/agileflow-commit-messages/scripts/check-attribution.sh +0 -15
  41. package/src/core/skills/agileflow-epic-planner/SKILL.md +0 -184
  42. package/src/core/skills/agileflow-retro-facilitator/SKILL.md +0 -119
  43. package/src/core/skills/agileflow-retro-facilitator/cookbook/4ls.md +0 -86
  44. package/src/core/skills/agileflow-retro-facilitator/cookbook/glad-sad-mad.md +0 -79
  45. package/src/core/skills/agileflow-retro-facilitator/cookbook/start-stop-continue.md +0 -142
  46. package/src/core/skills/agileflow-retro-facilitator/prompts/action-items.md +0 -83
  47. package/src/core/skills/agileflow-sprint-planner/SKILL.md +0 -212
  48. package/src/core/skills/agileflow-story-writer/SKILL.md +0 -163
  49. package/src/core/skills/agileflow-story-writer/examples/good-story-example.md +0 -63
  50. package/src/core/skills/agileflow-story-writer/templates/story-template.md +0 -44
  51. package/src/core/skills/agileflow-tech-debt/SKILL.md +0 -215
  52. package/src/core/skills/api-documentation-generator/SKILL.md +0 -65
  53. package/src/core/skills/changelog-entry/SKILL.md +0 -55
  54. package/src/core/skills/commit-message-formatter/SKILL.md +0 -50
  55. package/src/core/skills/deployment-guide-generator/SKILL.md +0 -84
  56. package/src/core/skills/diagram-generator/SKILL.md +0 -65
  57. package/src/core/skills/error-handler-template/SKILL.md +0 -78
  58. package/src/core/skills/migration-checklist/SKILL.md +0 -82
  59. package/src/core/skills/pr-description/SKILL.md +0 -65
  60. package/src/core/skills/sql-schema-generator/SKILL.md +0 -69
  61. package/src/core/skills/story-skeleton/SKILL.md +0 -34
  62. package/src/core/skills/test-case-generator/SKILL.md +0 -63
  63. package/src/core/skills/type-definitions/SKILL.md +0 -65
  64. package/src/core/skills/validation-schema-generator/SKILL.md +0 -64
  65. package/src/core/skills/writing-skills/SKILL.md +0 -352
  66. package/src/core/skills/writing-skills/testing-skills-with-subagents.md +0 -232
@@ -0,0 +1,189 @@
1
+ ---
2
+ description: Remove an installed skill from .claude/skills/
3
+ argument-hint: [SKILL_NAME] (optional)
4
+ ---
5
+
6
+ # /agileflow:skill:delete
7
+
8
+ Remove a skill from `.claude/skills/`.
9
+
10
+ ---
11
+
12
+ ## Workflow
13
+
14
+ ### STEP 1: Select skill to delete
15
+
16
+ If SKILL_NAME not provided, list available skills:
17
+
18
+ ```bash
19
+ ls -d .claude/skills/*/ 2>/dev/null | xargs -I {} basename {}
20
+ ```
21
+
22
+ Then ask user:
23
+
24
+ ```xml
25
+ <invoke name="AskUserQuestion">
26
+ <parameter name="questions">[{
27
+ "question": "Which skill would you like to delete?",
28
+ "header": "Select Skill",
29
+ "multiSelect": false,
30
+ "options": [
31
+ {"label": "<skill-1>", "description": "<description from frontmatter>"},
32
+ {"label": "<skill-2>", "description": "<description from frontmatter>"},
33
+ {"label": "<skill-3>", "description": "<description from frontmatter>"}
34
+ ]
35
+ }]</parameter>
36
+ </invoke>
37
+ ```
38
+
39
+ ### STEP 2: Show skill contents
40
+
41
+ Display what will be deleted:
42
+
43
+ ```
44
+ ⚠️ About to delete: supabase-swift
45
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
46
+
47
+ This will permanently remove:
48
+ .claude/skills/supabase-swift/
49
+ ├── SKILL.md
50
+ ├── references.md
51
+ ├── cookbook/
52
+ │ ├── crud-operations.md
53
+ │ └── authentication.md
54
+ └── .mcp.json
55
+
56
+ Total: 5 files in 2 directories
57
+
58
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
59
+ ```
60
+
61
+ ### STEP 3: Confirm deletion
62
+
63
+ ```xml
64
+ <invoke name="AskUserQuestion">
65
+ <parameter name="questions">[{
66
+ "question": "Are you sure you want to delete this skill? This cannot be undone.",
67
+ "header": "Confirm Delete",
68
+ "multiSelect": false,
69
+ "options": [
70
+ {"label": "Yes, delete permanently", "description": "Remove the skill and all its files"},
71
+ {"label": "No, keep it", "description": "Cancel and return"},
72
+ {"label": "Export first", "description": "Save a backup before deleting"}
73
+ ]
74
+ }]</parameter>
75
+ </invoke>
76
+ ```
77
+
78
+ ### STEP 4: Handle export (if requested)
79
+
80
+ If user chose "Export first":
81
+
82
+ 1. Create backup directory: `.claude/skills-backup/`
83
+ 2. Copy skill to backup with timestamp:
84
+ ```bash
85
+ cp -r .claude/skills/<skill> .claude/skills-backup/<skill>-$(date +%Y%m%d-%H%M%S)/
86
+ ```
87
+ 3. Show backup location
88
+ 4. Return to confirmation
89
+
90
+ ### STEP 5: Delete skill
91
+
92
+ ```bash
93
+ rm -rf .claude/skills/<skill>/
94
+ ```
95
+
96
+ ### STEP 6: Confirm deletion
97
+
98
+ ```
99
+ ✅ Deleted: supabase-swift
100
+
101
+ The skill has been permanently removed from .claude/skills/
102
+ ```
103
+
104
+ ### STEP 7: Offer next actions
105
+
106
+ ```xml
107
+ <invoke name="AskUserQuestion">
108
+ <parameter name="questions">[{
109
+ "question": "What would you like to do next?",
110
+ "header": "Next Action",
111
+ "multiSelect": false,
112
+ "options": [
113
+ {"label": "Delete another skill", "description": "Remove more skills"},
114
+ {"label": "Create new skill", "description": "Generate a replacement skill"},
115
+ {"label": "List remaining skills", "description": "See what's still installed"},
116
+ {"label": "Done", "description": "Exit skill management"}
117
+ ]
118
+ }]</parameter>
119
+ </invoke>
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Backup Location
125
+
126
+ Backups are stored in:
127
+ ```
128
+ .claude/skills-backup/<skill>-<timestamp>/
129
+ ```
130
+
131
+ Example:
132
+ ```
133
+ .claude/skills-backup/supabase-swift-20251227-143052/
134
+ ├── SKILL.md
135
+ ├── references.md
136
+ ├── cookbook/
137
+ └── .mcp.json
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Error Handling
143
+
144
+ ### Skill Not Found
145
+ ```
146
+ ❌ Skill "<name>" not found.
147
+
148
+ Available skills:
149
+ - ui-components
150
+ - api-integration
151
+
152
+ Use /agileflow:skill:list to see all skills.
153
+ ```
154
+
155
+ ### No Skills Installed
156
+ ```
157
+ ❌ No skills to delete.
158
+
159
+ No skills are currently installed in .claude/skills/
160
+ ```
161
+
162
+ ### Delete Failed
163
+ ```
164
+ ❌ Failed to delete skill: <error message>
165
+
166
+ The skill directory may be in use or have permission issues.
167
+ Try manually: rm -rf .claude/skills/<skill>/
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Safety Features
173
+
174
+ 1. **Always confirm** - Never delete without explicit confirmation
175
+ 2. **Show contents** - Display exactly what will be removed
176
+ 3. **Export option** - Allow backup before deletion
177
+ 4. **No batch delete** - One skill at a time for safety
178
+
179
+ ---
180
+
181
+ ## Usage
182
+
183
+ ```bash
184
+ # Interactive mode
185
+ /agileflow:skill:delete
186
+
187
+ # Delete specific skill
188
+ /agileflow:skill:delete supabase-swift
189
+ ```
@@ -0,0 +1,245 @@
1
+ ---
2
+ description: Edit an existing skill's SKILL.md, cookbook entries, or references
3
+ argument-hint: [SKILL_NAME] (optional)
4
+ ---
5
+
6
+ # /agileflow:skill:edit
7
+
8
+ Modify an existing skill in `.claude/skills/`.
9
+
10
+ ---
11
+
12
+ ## Workflow
13
+
14
+ ### STEP 1: Select skill to edit
15
+
16
+ If SKILL_NAME not provided, list available skills:
17
+
18
+ ```bash
19
+ ls -d .claude/skills/*/ 2>/dev/null | xargs -I {} basename {}
20
+ ```
21
+
22
+ Then ask user:
23
+
24
+ ```xml
25
+ <invoke name="AskUserQuestion">
26
+ <parameter name="questions">[{
27
+ "question": "Which skill would you like to edit?",
28
+ "header": "Select Skill",
29
+ "multiSelect": false,
30
+ "options": [
31
+ {"label": "<skill-1>", "description": "<description from frontmatter>"},
32
+ {"label": "<skill-2>", "description": "<description from frontmatter>"},
33
+ {"label": "<skill-3>", "description": "<description from frontmatter>"}
34
+ ]
35
+ }]</parameter>
36
+ </invoke>
37
+ ```
38
+
39
+ ### STEP 2: Show skill structure
40
+
41
+ Display current skill contents:
42
+
43
+ ```
44
+ 📝 Editing: supabase-swift
45
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
46
+
47
+ Files:
48
+ 1. SKILL.md (main skill file)
49
+ 2. references.md (documentation links)
50
+ 3. cookbook/crud-operations.md
51
+ 4. cookbook/authentication.md
52
+ 5. .mcp.json (MCP configuration)
53
+
54
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
+ ```
56
+
57
+ ### STEP 3: Ask what to edit
58
+
59
+ ```xml
60
+ <invoke name="AskUserQuestion">
61
+ <parameter name="questions">[{
62
+ "question": "What would you like to modify?",
63
+ "header": "Edit Target",
64
+ "multiSelect": false,
65
+ "options": [
66
+ {"label": "SKILL.md", "description": "Edit main skill instructions"},
67
+ {"label": "references.md", "description": "Update documentation links"},
68
+ {"label": "Cookbook entry", "description": "Edit a specific workflow"},
69
+ {"label": "Add new cookbook", "description": "Create a new workflow"},
70
+ {"label": "MCP configuration", "description": "Modify MCP server settings"},
71
+ {"label": "Rename skill", "description": "Change skill name and folder"}
72
+ ]
73
+ }]</parameter>
74
+ </invoke>
75
+ ```
76
+
77
+ ### STEP 4: Read current content
78
+
79
+ Read the selected file:
80
+
81
+ ```bash
82
+ cat .claude/skills/<skill>/<file>
83
+ ```
84
+
85
+ ### STEP 5: Ask for changes
86
+
87
+ ```xml
88
+ <invoke name="AskUserQuestion">
89
+ <parameter name="questions">[{
90
+ "question": "How would you like to modify this file?",
91
+ "header": "Edit Mode",
92
+ "multiSelect": false,
93
+ "options": [
94
+ {"label": "Describe changes", "description": "Tell me what to change and I'll update it"},
95
+ {"label": "Add content", "description": "Append new sections or examples"},
96
+ {"label": "Replace section", "description": "Rewrite a specific section"},
97
+ {"label": "Full rewrite", "description": "Regenerate with research (Recommended)"},
98
+ {"label": "Cancel", "description": "Return without changes"}
99
+ ]
100
+ }]</parameter>
101
+ </invoke>
102
+ ```
103
+
104
+ ### STEP 6: Apply changes
105
+
106
+ Based on user's choice:
107
+
108
+ **For "Describe changes":**
109
+ - Read current file
110
+ - Apply user's described modifications
111
+ - Show diff preview
112
+ - Confirm with YES/NO
113
+
114
+ **For "Full rewrite":**
115
+ - Enter plan mode to research
116
+ - Gather updated web docs, local docs, codebase patterns
117
+ - Regenerate file with new research
118
+ - Show diff preview
119
+ - Confirm with YES/NO
120
+
121
+ ### STEP 7: Show diff and confirm
122
+
123
+ ```
124
+ 📝 Changes to SKILL.md:
125
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
126
+
127
+ - old line
128
+ + new line
129
+
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+ ```
132
+
133
+ ```xml
134
+ <invoke name="AskUserQuestion">
135
+ <parameter name="questions">[{
136
+ "question": "Apply these changes?",
137
+ "header": "Confirm",
138
+ "multiSelect": false,
139
+ "options": [
140
+ {"label": "Yes, save changes", "description": "Write the updated file"},
141
+ {"label": "No, discard", "description": "Cancel without saving"},
142
+ {"label": "Edit more", "description": "Make additional changes first"}
143
+ ]
144
+ }]</parameter>
145
+ </invoke>
146
+ ```
147
+
148
+ ### STEP 8: Write changes
149
+
150
+ If confirmed:
151
+ 1. Write updated file
152
+ 2. Show success message
153
+ 3. Offer next actions
154
+
155
+ ---
156
+
157
+ ## Special Edits
158
+
159
+ ### Rename Skill
160
+
161
+ 1. Get new name from user
162
+ 2. Validate: letters, numbers, hyphens only
163
+ 3. Create new directory: `.claude/skills/<new-name>/`
164
+ 4. Copy all files
165
+ 5. Update `name:` in SKILL.md frontmatter
166
+ 6. Delete old directory
167
+ 7. Confirm completion
168
+
169
+ ### Add Cookbook Entry
170
+
171
+ 1. Ask for use case name
172
+ 2. Create `cookbook/<use-case>.md` from template
173
+ 3. Update SKILL.md to reference new cookbook
174
+ 4. Show diff and confirm
175
+
176
+ ---
177
+
178
+ ## Cookbook Template
179
+
180
+ ```markdown
181
+ # <Use Case Title>
182
+
183
+ <Brief description of this workflow.>
184
+
185
+ ## Prerequisites
186
+
187
+ - <Prerequisite 1>
188
+ - <Prerequisite 2>
189
+
190
+ ## Instructions
191
+
192
+ 1. **<Step 1>**:
193
+ <Details>
194
+
195
+ 2. **<Step 2>**:
196
+ ```<language>
197
+ <code example>
198
+ ```
199
+
200
+ 3. **<Step 3>**:
201
+ <Details>
202
+
203
+ ## Example
204
+
205
+ **Input**: <sample>
206
+ **Output**: <result>
207
+
208
+ ## Troubleshooting
209
+
210
+ - **<Problem>**: <Solution>
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Error Handling
216
+
217
+ ### Skill Not Found
218
+ ```
219
+ ❌ Skill "<name>" not found.
220
+
221
+ Available skills:
222
+ - supabase-swift
223
+ - ui-components
224
+
225
+ Use /agileflow:skill:list to see all skills.
226
+ ```
227
+
228
+ ### No Skills Installed
229
+ ```
230
+ ❌ No skills installed yet.
231
+
232
+ Create a skill first: /agileflow:skill:create
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Usage
238
+
239
+ ```bash
240
+ # Interactive mode
241
+ /agileflow:skill:edit
242
+
243
+ # Edit specific skill
244
+ /agileflow:skill:edit supabase-swift
245
+ ```
@@ -0,0 +1,155 @@
1
+ ---
2
+ description: List all installed skills with their descriptions and status
3
+ argument-hint: (no arguments)
4
+ ---
5
+
6
+ # /agileflow:skill:list
7
+
8
+ Display all skills installed in `.claude/skills/` with their metadata.
9
+
10
+ ---
11
+
12
+ ## Output Format
13
+
14
+ ```
15
+ 📦 Installed Skills (X total)
16
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
17
+
18
+ SKILL NAME DESCRIPTION FILES
19
+ ─────────────────────────────────────────────────────────────────────
20
+ supabase-swift Supabase database operations 4 files
21
+ └─ cookbook/crud-operations.md, cookbook/auth.md
22
+
23
+ ui-components React component patterns 3 files
24
+ └─ cookbook/create-component.md
25
+
26
+ api-integration REST API client patterns 2 files
27
+
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+ ```
30
+
31
+ ---
32
+
33
+ ## Workflow
34
+
35
+ ### STEP 1: Check for skills directory
36
+
37
+ ```bash
38
+ ls -la .claude/skills/ 2>/dev/null
39
+ ```
40
+
41
+ If directory doesn't exist or is empty:
42
+ ```
43
+ No skills installed yet.
44
+
45
+ To create a skill, run: /agileflow:skill:create
46
+ ```
47
+
48
+ ### STEP 2: Scan each skill directory
49
+
50
+ For each subdirectory in `.claude/skills/`:
51
+
52
+ 1. **Read SKILL.md frontmatter** to extract:
53
+ - `name` - skill identifier
54
+ - `description` - skill purpose
55
+
56
+ 2. **Count supporting files**:
57
+ - cookbook/*.md
58
+ - tools/*
59
+ - .mcp.json (if present)
60
+ - references.md (if present)
61
+
62
+ 3. **Check for MCP integration**:
63
+ - If `.mcp.json` exists, note "MCP: ✓"
64
+
65
+ ### STEP 3: Format output
66
+
67
+ ```
68
+ 📦 Installed Skills (3 total)
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
70
+
71
+ supabase-swift MCP: ✓
72
+ Supabase database operations for Swift apps
73
+ └─ 4 files: cookbook/crud.md, cookbook/auth.md, references.md, .mcp.json
74
+
75
+ ui-components
76
+ React component patterns with accessibility
77
+ └─ 3 files: cookbook/create.md, cookbook/styling.md, references.md
78
+
79
+ api-integration
80
+ REST API client patterns with error handling
81
+ └─ 2 files: SKILL.md, references.md
82
+
83
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
84
+ ```
85
+
86
+ ### STEP 4: Offer next actions
87
+
88
+ ```xml
89
+ <invoke name="AskUserQuestion">
90
+ <parameter name="questions">[{
91
+ "question": "What would you like to do?",
92
+ "header": "Skill Actions",
93
+ "multiSelect": false,
94
+ "options": [
95
+ {"label": "Create new skill", "description": "Generate a new skill with research"},
96
+ {"label": "Edit a skill", "description": "Modify an existing skill"},
97
+ {"label": "Delete a skill", "description": "Remove a skill"},
98
+ {"label": "Test a skill", "description": "Verify a skill works correctly"},
99
+ {"label": "Done", "description": "Exit skill management"}
100
+ ]
101
+ }]</parameter>
102
+ </invoke>
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Skill Metadata Parsing
108
+
109
+ **SKILL.md Frontmatter Example:**
110
+ ```yaml
111
+ ---
112
+ name: supabase-swift
113
+ description: Use when building Swift apps with Supabase database operations
114
+ ---
115
+ ```
116
+
117
+ **Parse with:**
118
+ ```bash
119
+ head -10 .claude/skills/<skill>/SKILL.md | grep -E "^(name|description):"
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Error Handling
125
+
126
+ ### No Skills Directory
127
+ ```
128
+ 📦 No skills installed yet.
129
+
130
+ Skills are stored in .claude/skills/ and can be created with:
131
+ /agileflow:skill:create
132
+
133
+ This will research best practices and generate a contextual skill.
134
+ ```
135
+
136
+ ### Invalid Skill (Missing SKILL.md)
137
+ Skip directories without SKILL.md and note:
138
+ ```
139
+ ⚠️ Skipped: <dirname>/ (missing SKILL.md)
140
+ ```
141
+
142
+ ### Corrupted Frontmatter
143
+ If frontmatter can't be parsed:
144
+ ```
145
+ ⚠️ <skill>: Could not parse frontmatter
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Usage
151
+
152
+ ```bash
153
+ # List all installed skills
154
+ /agileflow:skill:list
155
+ ```