devflow-kit 0.2.0 → 0.3.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/CHANGELOG.md +92 -1
- package/README.md +13 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +147 -21
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/src/claude/CLAUDE.md +332 -0
- package/src/claude/agents/devflow/audit-typescript.md +294 -0
- package/src/claude/agents/devflow/release.md +862 -0
- package/src/claude/commands/devflow/pre-commit.md +13 -4
- package/src/claude/commands/devflow/pre-pr.md +14 -2
- package/src/claude/commands/devflow/release.md +251 -0
|
@@ -9,6 +9,7 @@ Perform a comprehensive review of uncommitted changes by orchestrating multiple
|
|
|
9
9
|
|
|
10
10
|
**Audit Strategy**:
|
|
11
11
|
- **Always Run** (5 core audits): Security, Performance, Architecture, Tests, Complexity
|
|
12
|
+
- **Language-Specific** (conditional): TypeScript (runs only if .ts/.tsx files changed or tsconfig.json exists)
|
|
12
13
|
- **Available on demand**: Documentation, Dependencies, Database (use `/pre-pr` for full audit)
|
|
13
14
|
|
|
14
15
|
This lightweight approach provides fast feedback for individual commits. Use `/pre-pr` for comprehensive branch reviews before creating pull requests.
|
|
@@ -38,10 +39,15 @@ echo ""
|
|
|
38
39
|
Launch these sub-agents in parallel:
|
|
39
40
|
|
|
40
41
|
1. audit-security sub-agent
|
|
41
|
-
2. audit-
|
|
42
|
-
3. audit-
|
|
43
|
-
4. audit-
|
|
44
|
-
5. audit-
|
|
42
|
+
2. audit-typescript sub-agent (automatically skips if not applicable)
|
|
43
|
+
3. audit-performance sub-agent
|
|
44
|
+
4. audit-architecture sub-agent
|
|
45
|
+
5. audit-tests sub-agent
|
|
46
|
+
6. audit-complexity sub-agent
|
|
47
|
+
|
|
48
|
+
**Note**: The audit-typescript agent contains built-in detection logic and will automatically skip if:
|
|
49
|
+
- No .ts/.tsx files were changed AND
|
|
50
|
+
- No tsconfig.json exists in the project
|
|
45
51
|
|
|
46
52
|
### Step 3: Synthesize Review Findings
|
|
47
53
|
|
|
@@ -84,6 +90,9 @@ Create a comprehensive review document at `.docs/reviews/diff-{YYYY-MM-DD_HHMM}.
|
|
|
84
90
|
### Security Review (audit-security)
|
|
85
91
|
{security findings with file:line references}
|
|
86
92
|
|
|
93
|
+
### TypeScript Review (audit-typescript)
|
|
94
|
+
{type safety findings, or "⏭️ Skipped - not applicable" if no TS files}
|
|
95
|
+
|
|
87
96
|
### Performance Review (audit-performance)
|
|
88
97
|
{performance findings with specific optimizations}
|
|
89
98
|
|
|
@@ -85,8 +85,9 @@ Launch these sub-agents in parallel based on change detection:
|
|
|
85
85
|
6. audit-dependencies sub-agent
|
|
86
86
|
7. audit-documentation sub-agent
|
|
87
87
|
|
|
88
|
-
**Conditional Audits
|
|
89
|
-
8. audit-
|
|
88
|
+
**Conditional Audits** (automatically detect and skip if not applicable):
|
|
89
|
+
8. audit-typescript sub-agent (only if .ts/.tsx files changed or tsconfig.json exists)
|
|
90
|
+
9. audit-database sub-agent (only if database changes detected)
|
|
90
91
|
|
|
91
92
|
### Step 4: Synthesize Comprehensive Review
|
|
92
93
|
|
|
@@ -157,6 +158,16 @@ Create a detailed review document at `.docs/reviews/branch-{BRANCH_NAME}-{YYYY-M
|
|
|
157
158
|
#### Security Recommendations
|
|
158
159
|
{specific security improvements needed}
|
|
159
160
|
|
|
161
|
+
### 📘 TypeScript Analysis (audit-typescript)
|
|
162
|
+
**Type Safety**: {Excellent/Good/Acceptable/Poor}
|
|
163
|
+
**Note**: Only included if TypeScript files changed or project uses TypeScript
|
|
164
|
+
|
|
165
|
+
#### TypeScript Issues Found
|
|
166
|
+
{detailed type safety findings with file:line references}
|
|
167
|
+
|
|
168
|
+
#### TypeScript Recommendations
|
|
169
|
+
{specific type safety improvements needed}
|
|
170
|
+
|
|
160
171
|
### ⚡ Performance Analysis (audit-performance)
|
|
161
172
|
**Performance Impact**: {Positive/Neutral/Negative}
|
|
162
173
|
|
|
@@ -247,6 +258,7 @@ Create a detailed review document at `.docs/reviews/branch-{BRANCH_NAME}-{YYYY-M
|
|
|
247
258
|
|
|
248
259
|
**Breakdown**:
|
|
249
260
|
- Security: {score}/10
|
|
261
|
+
- TypeScript: {score}/10 (if applicable)
|
|
250
262
|
- Performance: {score}/10
|
|
251
263
|
- Architecture: {score}/10
|
|
252
264
|
- Test Coverage: {score}/10
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Automated release workflow with version management and publishing
|
|
3
|
+
allowed-tools: Task, Bash, Read, Write, Edit, Grep, Glob
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Your Task
|
|
7
|
+
|
|
8
|
+
Orchestrate a complete release workflow using the release sub-agent. This command guides you through creating a professional release with version management, changelog generation, building, testing, and publishing.
|
|
9
|
+
|
|
10
|
+
**Workflow**: User input → Release agent automation → User confirmations at critical steps
|
|
11
|
+
|
|
12
|
+
### Step 1: Determine Release Type
|
|
13
|
+
|
|
14
|
+
First, ask the user what type of release they want to create:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
echo "🚀 DEVFLOW RELEASE AUTOMATION"
|
|
18
|
+
echo ""
|
|
19
|
+
echo "This will guide you through creating a new release."
|
|
20
|
+
echo ""
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Present options to the user:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
What type of release do you want to create?
|
|
27
|
+
|
|
28
|
+
1. **patch** - Bug fixes and maintenance (0.1.2 → 0.1.3)
|
|
29
|
+
2. **minor** - New features, backwards compatible (0.1.2 → 0.2.0)
|
|
30
|
+
3. **major** - Breaking changes (0.1.2 → 1.0.0)
|
|
31
|
+
4. **custom** - Specify exact version (e.g., 2.0.0-beta.1)
|
|
32
|
+
5. **analyze** - Analyze changes and get recommendation first
|
|
33
|
+
|
|
34
|
+
Please specify the release type (patch/minor/major/custom/analyze):
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 2: Launch Release Agent
|
|
38
|
+
|
|
39
|
+
Once the user provides input, launch the release sub-agent with the appropriate prompt:
|
|
40
|
+
|
|
41
|
+
**If user chose "analyze"**:
|
|
42
|
+
```
|
|
43
|
+
Invoke the release sub-agent with this prompt:
|
|
44
|
+
|
|
45
|
+
"Analyze the current repository state and recent commits. Execute through Step 3 (Determine New Version) and provide a recommendation for the version bump type. Show:
|
|
46
|
+
- Current version
|
|
47
|
+
- Commits since last release
|
|
48
|
+
- Breaking changes, features, and fixes detected
|
|
49
|
+
- Recommended version bump with reasoning
|
|
50
|
+
|
|
51
|
+
Stop and wait for user decision before proceeding with the release."
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**If user chose "patch", "minor", or "major"**:
|
|
55
|
+
```
|
|
56
|
+
Invoke the release sub-agent with this prompt:
|
|
57
|
+
|
|
58
|
+
"Create a {bump_type} release. Follow the complete release workflow:
|
|
59
|
+
1. Detect project type and configuration
|
|
60
|
+
2. Verify clean working directory
|
|
61
|
+
3. Analyze recent changes since last release
|
|
62
|
+
4. Calculate new version as {bump_type} bump
|
|
63
|
+
5. Generate changelog entry from commits
|
|
64
|
+
6. Update version files
|
|
65
|
+
7. Build project (if applicable)
|
|
66
|
+
8. Run tests (if applicable)
|
|
67
|
+
|
|
68
|
+
STOP before Step 8 (Commit Version Bump) and show me:
|
|
69
|
+
- Current version → New version
|
|
70
|
+
- Generated changelog entry
|
|
71
|
+
- Files that will be modified
|
|
72
|
+
- Build/test results
|
|
73
|
+
|
|
74
|
+
Wait for my confirmation before proceeding with commit, push, publish, and tagging."
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**If user chose "custom"**:
|
|
78
|
+
```
|
|
79
|
+
Ask user: "Please specify the exact version number (e.g., 2.0.0-beta.1):"
|
|
80
|
+
|
|
81
|
+
Then invoke the release sub-agent with this prompt:
|
|
82
|
+
|
|
83
|
+
"Create a release with custom version {specified_version}. Follow the complete release workflow:
|
|
84
|
+
1. Detect project type and configuration
|
|
85
|
+
2. Verify clean working directory
|
|
86
|
+
3. Analyze recent changes since last release
|
|
87
|
+
4. Use the specified version: {specified_version}
|
|
88
|
+
5. Generate changelog entry from commits
|
|
89
|
+
6. Update version files
|
|
90
|
+
7. Build project (if applicable)
|
|
91
|
+
8. Run tests (if applicable)
|
|
92
|
+
|
|
93
|
+
STOP before Step 8 (Commit Version Bump) and show me:
|
|
94
|
+
- Current version → New version
|
|
95
|
+
- Generated changelog entry
|
|
96
|
+
- Files that will be modified
|
|
97
|
+
- Build/test results
|
|
98
|
+
|
|
99
|
+
Wait for my confirmation before proceeding with commit, push, publish, and tagging."
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Step 3: Review and Confirm
|
|
103
|
+
|
|
104
|
+
After the release agent completes the preparation phase and stops, present the summary to the user:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
📋 RELEASE READY FOR REVIEW
|
|
108
|
+
|
|
109
|
+
Current Version: {current_version}
|
|
110
|
+
New Version: {new_version}
|
|
111
|
+
Project Type: {project_type}
|
|
112
|
+
|
|
113
|
+
📝 Changelog Entry:
|
|
114
|
+
{generated_changelog}
|
|
115
|
+
|
|
116
|
+
📄 Files to be Modified:
|
|
117
|
+
- {version_file}
|
|
118
|
+
- {changelog_file}
|
|
119
|
+
|
|
120
|
+
✅ Build Status: {build_result}
|
|
121
|
+
✅ Test Status: {test_result}
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
The release agent will now:
|
|
126
|
+
1. Commit version bump
|
|
127
|
+
2. Push to remote
|
|
128
|
+
3. Publish package (if applicable)
|
|
129
|
+
4. Create git tag
|
|
130
|
+
5. Create GitHub/GitLab release (if available)
|
|
131
|
+
|
|
132
|
+
⚠️ WARNING: Steps 3-5 are PERMANENT and PUBLIC
|
|
133
|
+
|
|
134
|
+
Do you want to proceed with the release? (yes/no):
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Step 4: Complete Release (After Confirmation)
|
|
138
|
+
|
|
139
|
+
If user confirms, continue with the release agent:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Invoke the release sub-agent again with this prompt:
|
|
143
|
+
|
|
144
|
+
"Continue the release process from Step 8 (Commit Version Bump):
|
|
145
|
+
8. Commit version bump
|
|
146
|
+
9. Push to remote
|
|
147
|
+
10. Publish package (if applicable) - STOP and ask for confirmation before publishing
|
|
148
|
+
11. Create git tag
|
|
149
|
+
12. Create GitHub/GitLab release
|
|
150
|
+
13. Provide final summary
|
|
151
|
+
|
|
152
|
+
Execute these steps sequentially. Before Step 10 (publishing to package registry), STOP and explicitly ask for confirmation as this is permanent and public."
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Step 5: Publish Confirmation
|
|
156
|
+
|
|
157
|
+
When the agent reaches the publish step, ask for explicit confirmation:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
⚠️ FINAL CONFIRMATION REQUIRED
|
|
161
|
+
|
|
162
|
+
The package is ready to be published to the public registry.
|
|
163
|
+
|
|
164
|
+
Project: {project_name}
|
|
165
|
+
Version: {new_version}
|
|
166
|
+
Registry: {registry_name}
|
|
167
|
+
Command: {publish_command}
|
|
168
|
+
|
|
169
|
+
This action is PERMANENT and IRREVERSIBLE.
|
|
170
|
+
|
|
171
|
+
Do you want to publish to the public registry? (yes/no):
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Step 6: Final Summary
|
|
175
|
+
|
|
176
|
+
After the release is complete, the agent will provide a final summary. Display it to the user and provide next steps:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
The release agent will show:
|
|
180
|
+
- Release summary with all completed steps
|
|
181
|
+
- Links to package registry
|
|
182
|
+
- Links to GitHub/GitLab release
|
|
183
|
+
- Links to tag and commits
|
|
184
|
+
- Verification steps for the user
|
|
185
|
+
|
|
186
|
+
Next steps for you:
|
|
187
|
+
1. Verify package appears in registry
|
|
188
|
+
2. Test installation in fresh environment
|
|
189
|
+
3. Announce release to users/team
|
|
190
|
+
4. Update documentation if needed
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Error Handling
|
|
194
|
+
|
|
195
|
+
If the release agent encounters an error at any step:
|
|
196
|
+
|
|
197
|
+
1. **Before commit**: Changes can be rolled back easily
|
|
198
|
+
```bash
|
|
199
|
+
git checkout {version_files}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
2. **After commit, before push**: Can amend or reset
|
|
203
|
+
```bash
|
|
204
|
+
git reset --hard HEAD~1
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
3. **After push, before publish**: Can remove tag and revert
|
|
208
|
+
```bash
|
|
209
|
+
git tag -d {tag}
|
|
210
|
+
git push origin :{tag}
|
|
211
|
+
git revert HEAD
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
4. **After publish**: Cannot unpublish in most registries
|
|
215
|
+
- npm: Can only deprecate, not unpublish after 24h
|
|
216
|
+
- Document issue and create patch release
|
|
217
|
+
|
|
218
|
+
Always provide clear recovery instructions if something fails.
|
|
219
|
+
|
|
220
|
+
## Safety Features
|
|
221
|
+
|
|
222
|
+
- ✅ Verify clean working directory before starting
|
|
223
|
+
- ✅ Show preview of all changes before committing
|
|
224
|
+
- ✅ Require explicit confirmation before publishing
|
|
225
|
+
- ✅ Provide rollback instructions at each step
|
|
226
|
+
- ✅ Stop and ask before any permanent/public action
|
|
227
|
+
- ✅ Generate proper semantic versioning
|
|
228
|
+
- ✅ Run build and tests before releasing
|
|
229
|
+
|
|
230
|
+
## Quick Reference
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# Standard releases
|
|
234
|
+
/release # Interactive - asks for release type
|
|
235
|
+
|
|
236
|
+
# With specific type (if supported in future)
|
|
237
|
+
/release patch
|
|
238
|
+
/release minor
|
|
239
|
+
/release major
|
|
240
|
+
|
|
241
|
+
# Analyze first
|
|
242
|
+
/release analyze # Show recommendations without releasing
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Notes
|
|
246
|
+
|
|
247
|
+
- The release sub-agent handles all the technical details
|
|
248
|
+
- This command provides the user interaction layer
|
|
249
|
+
- Critical steps require explicit user confirmation
|
|
250
|
+
- All actions are logged and can be audited
|
|
251
|
+
- Works with any programming language/ecosystem
|