@jakkrichm/create-nexus-devflow 2.0.12 → 2.0.13

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 (124) hide show
  1. package/lib/update.js +15 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/70-release/SKILL.md +2 -0
  4. package/template/.agents/skills/ci/SKILL.md +25 -78
  5. package/template/.agents/skills/commit/SKILL.md +39 -43
  6. package/template/.agents/skills/debug/SKILL.md +43 -104
  7. package/template/.agents/skills/deploy/SKILL.md +37 -65
  8. package/template/.agents/skills/insight/SKILL.md +27 -116
  9. package/template/.agents/skills/preview/SKILL.md +24 -103
  10. package/template/.agents/skills/review/SKILL.md +53 -37
  11. package/template/.agents/skills/rollback/SKILL.md +1 -0
  12. package/template/.agents/skills/security-review/SKILL.md +44 -147
  13. package/template/.agents/skills/simplify/SKILL.md +48 -57
  14. package/template/.agents/skills/test/SKILL.md +63 -51
  15. package/template/.claude/skills/70-release/SKILL.md +2 -0
  16. package/template/.claude/skills/ci/SKILL.md +25 -78
  17. package/template/.claude/skills/commit/SKILL.md +39 -43
  18. package/template/.claude/skills/debug/SKILL.md +43 -104
  19. package/template/.claude/skills/deploy/SKILL.md +37 -65
  20. package/template/.claude/skills/insight/SKILL.md +27 -116
  21. package/template/.claude/skills/preview/SKILL.md +24 -103
  22. package/template/.claude/skills/review/SKILL.md +53 -37
  23. package/template/.claude/skills/rollback/SKILL.md +1 -0
  24. package/template/.claude/skills/security-review/SKILL.md +44 -147
  25. package/template/.claude/skills/simplify/SKILL.md +48 -57
  26. package/template/.claude/skills/test/SKILL.md +63 -51
  27. package/template/devflow/history/HISTORY.md +27 -0
  28. package/template/devflow/reference/running-id-contract.md +1 -1
  29. package/template/.agents/skills/9arm-skills/README.md +0 -51
  30. package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +0 -86
  31. package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +0 -79
  32. package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +0 -71
  33. package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +0 -72
  34. package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +0 -302
  35. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +0 -390
  36. package/template/.agents/skills/code-review-and-quality/SKILL.md +0 -392
  37. package/template/.agents/skills/code-simplification/SKILL.md +0 -331
  38. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +0 -298
  39. package/template/.agents/skills/deployment-procedures/SKILL.md +0 -241
  40. package/template/.agents/skills/deprecation-and-migration/SKILL.md +0 -206
  41. package/template/.agents/skills/diagnosing-bugs/SKILL.md +0 -93
  42. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +0 -300
  43. package/template/.agents/skills/human-review-decisions/SKILL.md +0 -74
  44. package/template/.agents/skills/idea-refine/SKILL.md +0 -178
  45. package/template/.agents/skills/idea-refine/examples.md +0 -238
  46. package/template/.agents/skills/idea-refine/frameworks.md +0 -99
  47. package/template/.agents/skills/idea-refine/refinement-criteria.md +0 -113
  48. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +0 -15
  49. package/template/.agents/skills/incremental-implementation/SKILL.md +0 -248
  50. package/template/.agents/skills/insight-capture/SKILL.md +0 -84
  51. package/template/.agents/skills/intelligent-routing/SKILL.md +0 -176
  52. package/template/.agents/skills/md2html/SKILL.md +0 -154
  53. package/template/.agents/skills/md2html/components.md +0 -505
  54. package/template/.agents/skills/md2html/template.html +0 -1152
  55. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +0 -239
  56. package/template/.agents/skills/pr-review/SKILL.md +0 -143
  57. package/template/.agents/skills/pr-review-analysis/SKILL.md +0 -89
  58. package/template/.agents/skills/preview-local-check/SKILL.md +0 -59
  59. package/template/.agents/skills/release-git-operations/SKILL.md +0 -97
  60. package/template/.agents/skills/review-followup-routing/SKILL.md +0 -98
  61. package/template/.agents/skills/security-and-hardening/SKILL.md +0 -349
  62. package/template/.agents/skills/security-and-hardening/security-checklist.md +0 -134
  63. package/template/.agents/skills/shipping-and-launch/SKILL.md +0 -311
  64. package/template/.agents/skills/silent-failure-audit/SKILL.md +0 -73
  65. package/template/.agents/skills/spec-orchestration/SKILL.md +0 -91
  66. package/template/.agents/skills/specialist-agent-routing/SKILL.md +0 -107
  67. package/template/.agents/skills/test-driven-development/SKILL.md +0 -422
  68. package/template/.agents/skills/test-driven-development/testing-patterns.md +0 -236
  69. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +0 -56
  70. package/template/.agents/skills/using-agent-skills/SKILL.md +0 -171
  71. package/template/.agents/skills/verification-orchestration/SKILL.md +0 -68
  72. package/template/.agents/skills/vulnerability-scanner/SKILL.md +0 -276
  73. package/template/.agents/skills/vulnerability-scanner/checklists.md +0 -121
  74. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  75. package/template/.agents/skills/wiki/SKILL.md +0 -149
  76. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +0 -87
  77. package/template/.claude/skills/9arm-skills/README.md +0 -51
  78. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +0 -86
  79. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +0 -79
  80. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +0 -71
  81. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +0 -72
  82. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +0 -302
  83. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +0 -390
  84. package/template/.claude/skills/code-review-and-quality/SKILL.md +0 -392
  85. package/template/.claude/skills/code-simplification/SKILL.md +0 -331
  86. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +0 -298
  87. package/template/.claude/skills/deployment-procedures/SKILL.md +0 -241
  88. package/template/.claude/skills/deprecation-and-migration/SKILL.md +0 -206
  89. package/template/.claude/skills/diagnosing-bugs/SKILL.md +0 -93
  90. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +0 -300
  91. package/template/.claude/skills/human-review-decisions/SKILL.md +0 -74
  92. package/template/.claude/skills/idea-refine/SKILL.md +0 -178
  93. package/template/.claude/skills/idea-refine/examples.md +0 -238
  94. package/template/.claude/skills/idea-refine/frameworks.md +0 -99
  95. package/template/.claude/skills/idea-refine/refinement-criteria.md +0 -113
  96. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +0 -15
  97. package/template/.claude/skills/incremental-implementation/SKILL.md +0 -248
  98. package/template/.claude/skills/insight-capture/SKILL.md +0 -84
  99. package/template/.claude/skills/intelligent-routing/SKILL.md +0 -176
  100. package/template/.claude/skills/md2html/SKILL.md +0 -154
  101. package/template/.claude/skills/md2html/components.md +0 -505
  102. package/template/.claude/skills/md2html/template.html +0 -1152
  103. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +0 -239
  104. package/template/.claude/skills/pr-review/SKILL.md +0 -143
  105. package/template/.claude/skills/pr-review-analysis/SKILL.md +0 -89
  106. package/template/.claude/skills/preview-local-check/SKILL.md +0 -59
  107. package/template/.claude/skills/release-git-operations/SKILL.md +0 -97
  108. package/template/.claude/skills/review-followup-routing/SKILL.md +0 -98
  109. package/template/.claude/skills/security-and-hardening/SKILL.md +0 -349
  110. package/template/.claude/skills/security-and-hardening/security-checklist.md +0 -134
  111. package/template/.claude/skills/shipping-and-launch/SKILL.md +0 -311
  112. package/template/.claude/skills/silent-failure-audit/SKILL.md +0 -73
  113. package/template/.claude/skills/spec-orchestration/SKILL.md +0 -91
  114. package/template/.claude/skills/specialist-agent-routing/SKILL.md +0 -107
  115. package/template/.claude/skills/test-driven-development/SKILL.md +0 -422
  116. package/template/.claude/skills/test-driven-development/testing-patterns.md +0 -236
  117. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +0 -56
  118. package/template/.claude/skills/using-agent-skills/SKILL.md +0 -171
  119. package/template/.claude/skills/verification-orchestration/SKILL.md +0 -68
  120. package/template/.claude/skills/vulnerability-scanner/SKILL.md +0 -276
  121. package/template/.claude/skills/vulnerability-scanner/checklists.md +0 -121
  122. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  123. package/template/.claude/skills/wiki/SKILL.md +0 -149
  124. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +0 -87
@@ -1,241 +0,0 @@
1
- ---
2
- name: deployment-procedures
3
- description: "[Devflow] Production deployment principles and decision-making. Safe deployment workflows, rollback strategies, and verification. Teaches thinking, not scripts."
4
- allowed-tools: Read, Glob, Grep, Bash
5
- ---
6
-
7
- # Deployment Procedures
8
-
9
- > Deployment principles and decision-making for safe production releases.
10
- > **Learn to THINK, not memorize scripts.**
11
-
12
- ---
13
-
14
- ## ⚠️ How to Use This Skill
15
-
16
- This skill teaches **deployment principles**, not bash scripts to copy.
17
-
18
- - Every deployment is unique
19
- - Understand the WHY behind each step
20
- - Adapt procedures to your platform
21
-
22
- ---
23
-
24
- ## 1. Platform Selection
25
-
26
- ### Decision Tree
27
-
28
- ```
29
- What are you deploying?
30
-
31
- ├── Static site / JAMstack
32
- │ └── Vercel, Netlify, Cloudflare Pages
33
-
34
- ├── Simple web app
35
- │ ├── Managed → Railway, Render, Fly.io
36
- │ └── Control → VPS + PM2/Docker
37
-
38
- ├── Microservices
39
- │ └── Container orchestration
40
-
41
- └── Serverless
42
- └── Edge functions, Lambda
43
- ```
44
-
45
- ### Each Platform Has Different Procedures
46
-
47
- | Platform | Deployment Method |
48
- |----------|------------------|
49
- | **Vercel/Netlify** | Git push, auto-deploy |
50
- | **Railway/Render** | Git push or CLI |
51
- | **VPS + PM2** | SSH + manual steps |
52
- | **Docker** | Image push + orchestration |
53
- | **Kubernetes** | kubectl apply |
54
-
55
- ---
56
-
57
- ## 2. Pre-Deployment Principles
58
-
59
- ### The 4 Verification Categories
60
-
61
- | Category | What to Check |
62
- |----------|--------------|
63
- | **Code Quality** | Tests passing, linting clean, reviewed |
64
- | **Build** | Production build works, no warnings |
65
- | **Environment** | Env vars set, secrets current |
66
- | **Safety** | Backup done, rollback plan ready |
67
-
68
- ### Pre-Deployment Checklist
69
-
70
- - [ ] All tests passing
71
- - [ ] Code reviewed and approved
72
- - [ ] Production build successful
73
- - [ ] Environment variables verified
74
- - [ ] Database migrations ready (if any)
75
- - [ ] Rollback plan documented
76
- - [ ] Team notified
77
- - [ ] Monitoring ready
78
-
79
- ---
80
-
81
- ## 3. Deployment Workflow Principles
82
-
83
- ### The 5-Phase Process
84
-
85
- ```
86
- 1. PREPARE
87
- └── Verify code, build, env vars
88
-
89
- 2. BACKUP
90
- └── Save current state before changing
91
-
92
- 3. DEPLOY
93
- └── Execute with monitoring open
94
-
95
- 4. VERIFY
96
- └── Health check, logs, key flows
97
-
98
- 5. CONFIRM or ROLLBACK
99
- └── All good? Confirm. Issues? Rollback.
100
- ```
101
-
102
- ### Phase Principles
103
-
104
- | Phase | Principle |
105
- |-------|-----------|
106
- | **Prepare** | Never deploy untested code |
107
- | **Backup** | Can't rollback without backup |
108
- | **Deploy** | Watch it happen, don't walk away |
109
- | **Verify** | Trust but verify |
110
- | **Confirm** | Have rollback trigger ready |
111
-
112
- ---
113
-
114
- ## 4. Post-Deployment Verification
115
-
116
- ### What to Verify
117
-
118
- | Check | Why |
119
- |-------|-----|
120
- | **Health endpoint** | Service is running |
121
- | **Error logs** | No new errors |
122
- | **Key user flows** | Critical features work |
123
- | **Performance** | Response times acceptable |
124
-
125
- ### Verification Window
126
-
127
- - **First 5 minutes**: Active monitoring
128
- - **15 minutes**: Confirm stable
129
- - **1 hour**: Final verification
130
- - **Next day**: Review metrics
131
-
132
- ---
133
-
134
- ## 5. Rollback Principles
135
-
136
- ### When to Rollback
137
-
138
- | Symptom | Action |
139
- |---------|--------|
140
- | Service down | Rollback immediately |
141
- | Critical errors | Rollback |
142
- | Performance >50% degraded | Consider rollback |
143
- | Minor issues | Fix forward if quick |
144
-
145
- ### Rollback Strategy by Platform
146
-
147
- | Platform | Rollback Method |
148
- |----------|----------------|
149
- | **Vercel/Netlify** | Redeploy previous commit |
150
- | **Railway/Render** | Rollback in dashboard |
151
- | **VPS + PM2** | Restore backup, restart |
152
- | **Docker** | Previous image tag |
153
- | **K8s** | kubectl rollout undo |
154
-
155
- ### Rollback Principles
156
-
157
- 1. **Speed over perfection**: Rollback first, debug later
158
- 2. **Don't compound errors**: One rollback, not multiple changes
159
- 3. **Communicate**: Tell team what happened
160
- 4. **Post-mortem**: Understand why after stable
161
-
162
- ---
163
-
164
- ## 6. Zero-Downtime Deployment
165
-
166
- ### Strategies
167
-
168
- | Strategy | How It Works |
169
- |----------|--------------|
170
- | **Rolling** | Replace instances one by one |
171
- | **Blue-Green** | Switch traffic between environments |
172
- | **Canary** | Gradual traffic shift |
173
-
174
- ### Selection Principles
175
-
176
- | Scenario | Strategy |
177
- |----------|----------|
178
- | Standard release | Rolling |
179
- | High-risk change | Blue-green (easy rollback) |
180
- | Need validation | Canary (test with real traffic) |
181
-
182
- ---
183
-
184
- ## 7. Emergency Procedures
185
-
186
- ### Service Down Priority
187
-
188
- 1. **Assess**: What's the symptom?
189
- 2. **Quick fix**: Restart if unclear
190
- 3. **Rollback**: If restart doesn't help
191
- 4. **Investigate**: After stable
192
-
193
- ### Investigation Order
194
-
195
- | Check | Common Issues |
196
- |-------|--------------|
197
- | **Logs** | Errors, exceptions |
198
- | **Resources** | Disk full, memory |
199
- | **Network** | DNS, firewall |
200
- | **Dependencies** | Database, APIs |
201
-
202
- ---
203
-
204
- ## 8. Anti-Patterns
205
-
206
- | ❌ Don't | ✅ Do |
207
- |----------|-------|
208
- | Deploy on Friday | Deploy early in week |
209
- | Rush deployment | Follow the process |
210
- | Skip staging | Always test first |
211
- | Deploy without backup | Backup before deploy |
212
- | Walk away after deploy | Monitor for 15+ min |
213
- | Multiple changes at once | One change at a time |
214
-
215
- ---
216
-
217
- ## 9. Decision Checklist
218
-
219
- Before deploying:
220
-
221
- - [ ] **Platform-appropriate procedure?**
222
- - [ ] **Backup strategy ready?**
223
- - [ ] **Rollback plan documented?**
224
- - [ ] **Monitoring configured?**
225
- - [ ] **Team notified?**
226
- - [ ] **Time to monitor after?**
227
-
228
- ---
229
-
230
- ## 10. Best Practices
231
-
232
- 1. **Small, frequent deploys** over big releases
233
- 2. **Feature flags** for risky changes
234
- 3. **Automate** repetitive steps
235
- 4. **Document** every deployment
236
- 5. **Review** what went wrong after issues
237
- 6. **Test rollback** before you need it
238
-
239
- ---
240
-
241
- > **Remember:** Every deployment is a risk. Minimize risk through preparation, not speed.
@@ -1,206 +0,0 @@
1
- ---
2
- name: deprecation-and-migration
3
- description: "[Devflow] Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when deciding whether to maintain or sunset existing code."
4
- ---
5
-
6
- # Deprecation and Migration
7
-
8
- ## Overview
9
-
10
- Code is a liability, not an asset. Every line of code has ongoing maintenance cost — bugs to fix, dependencies to update, security patches to apply, and new engineers to onboard. Deprecation is the discipline of removing code that no longer earns its keep, and migration is the process of moving users safely from the old to the new.
11
-
12
- Most engineering organizations are good at building things. Few are good at removing them. This skill addresses that gap.
13
-
14
- ## When to Use
15
-
16
- - Replacing an old system, API, or library with a new one
17
- - Sunsetting a feature that's no longer needed
18
- - Consolidating duplicate implementations
19
- - Removing dead code that nobody owns but everybody depends on
20
- - Planning the lifecycle of a new system (deprecation planning starts at design time)
21
- - Deciding whether to maintain a legacy system or invest in migration
22
-
23
- ## Core Principles
24
-
25
- ### Code Is a Liability
26
-
27
- Every line of code has ongoing cost: it needs tests, documentation, security patches, dependency updates, and mental overhead for anyone working nearby. The value of code is the functionality it provides, not the code itself. When the same functionality can be provided with less code, less complexity, or better abstractions — the old code should go.
28
-
29
- ### Hyrum's Law Makes Removal Hard
30
-
31
- With enough users, every observable behavior becomes depended on — including bugs, timing quirks, and undocumented side effects. This is why deprecation requires active migration, not just announcement. Users can't "just switch" when they depend on behaviors the replacement doesn't replicate.
32
-
33
- ### Deprecation Planning Starts at Design Time
34
-
35
- When building something new, ask: "How would we remove this in 3 years?" Systems designed with clean interfaces, feature flags, and minimal surface area are easier to deprecate than systems that leak implementation details everywhere.
36
-
37
- ## The Deprecation Decision
38
-
39
- Before deprecating anything, answer these questions:
40
-
41
- ```
42
- 1. Does this system still provide unique value?
43
- → If yes, maintain it. If no, proceed.
44
-
45
- 2. How many users/consumers depend on it?
46
- → Quantify the migration scope.
47
-
48
- 3. Does a replacement exist?
49
- → If no, build the replacement first. Don't deprecate without an alternative.
50
-
51
- 4. What's the migration cost for each consumer?
52
- → If trivially automated, do it. If manual and high-effort, weigh against maintenance cost.
53
-
54
- 5. What's the ongoing maintenance cost of NOT deprecating?
55
- → Security risk, engineer time, opportunity cost of complexity.
56
- ```
57
-
58
- ## Compulsory vs Advisory Deprecation
59
-
60
- | Type | When to Use | Mechanism |
61
- |------|-------------|-----------|
62
- | **Advisory** | Migration is optional, old system is stable | Warnings, documentation, nudges. Users migrate on their own timeline. |
63
- | **Compulsory** | Old system has security issues, blocks progress, or maintenance cost is unsustainable | Hard deadline. Old system will be removed by date X. Provide migration tooling. |
64
-
65
- **Default to advisory.** Use compulsory only when the maintenance cost or risk justifies forcing migration. Compulsory deprecation requires providing migration tooling, documentation, and support — you can't just announce a deadline.
66
-
67
- ## The Migration Process
68
-
69
- ### Step 1: Build the Replacement
70
-
71
- Don't deprecate without a working alternative. The replacement must:
72
-
73
- - Cover all critical use cases of the old system
74
- - Have documentation and migration guides
75
- - Be proven in production (not just "theoretically better")
76
-
77
- ### Step 2: Announce and Document
78
-
79
- ```markdown
80
- ## Deprecation Notice: OldService
81
-
82
- **Status:** Deprecated as of 2025-03-01
83
- **Replacement:** NewService (see migration guide below)
84
- **Removal date:** Advisory — no hard deadline yet
85
- **Reason:** OldService requires manual scaling and lacks observability.
86
- NewService handles both automatically.
87
-
88
- ### Migration Guide
89
- 1. Replace `import { client } from 'old-service'` with `import { client } from 'new-service'`
90
- 2. Update configuration (see examples below)
91
- 3. Run the migration verification script: `npx migrate-check`
92
- ```
93
-
94
- ### Step 3: Migrate Incrementally
95
-
96
- Migrate consumers one at a time, not all at once. For each consumer:
97
-
98
- ```
99
- 1. Identify all touchpoints with the deprecated system
100
- 2. Update to use the replacement
101
- 3. Verify behavior matches (tests, integration checks)
102
- 4. Remove references to the old system
103
- 5. Confirm no regressions
104
- ```
105
-
106
- **The Churn Rule:** If you own the infrastructure being deprecated, you are responsible for migrating your users — or providing backward-compatible updates that require no migration. Don't announce deprecation and leave users to figure it out.
107
-
108
- ### Step 4: Remove the Old System
109
-
110
- Only after all consumers have migrated:
111
-
112
- ```
113
- 1. Verify zero active usage (metrics, logs, dependency analysis)
114
- 2. Remove the code
115
- 3. Remove associated tests, documentation, and configuration
116
- 4. Remove the deprecation notices
117
- 5. Celebrate — removing code is an achievement
118
- ```
119
-
120
- ## Migration Patterns
121
-
122
- ### Strangler Pattern
123
-
124
- Run old and new systems in parallel. Route traffic incrementally from old to new. When the old system handles 0% of traffic, remove it.
125
-
126
- ```
127
- Phase 1: New system handles 0%, old handles 100%
128
- Phase 2: New system handles 10% (canary)
129
- Phase 3: New system handles 50%
130
- Phase 4: New system handles 100%, old system idle
131
- Phase 5: Remove old system
132
- ```
133
-
134
- ### Adapter Pattern
135
-
136
- Create an adapter that translates calls from the old interface to the new implementation. Consumers keep using the old interface while you migrate the backend.
137
-
138
- ```typescript
139
- // Adapter: old interface, new implementation
140
- class LegacyTaskService implements OldTaskAPI {
141
- constructor(private newService: NewTaskService) {}
142
-
143
- // Old method signature, delegates to new implementation
144
- getTask(id: number): OldTask {
145
- const task = this.newService.findById(String(id));
146
- return this.toOldFormat(task);
147
- }
148
- }
149
- ```
150
-
151
- ### Feature Flag Migration
152
-
153
- Use feature flags to switch consumers from old to new system one at a time:
154
-
155
- ```typescript
156
- function getTaskService(userId: string): TaskService {
157
- if (featureFlags.isEnabled('new-task-service', { userId })) {
158
- return new NewTaskService();
159
- }
160
- return new LegacyTaskService();
161
- }
162
- ```
163
-
164
- ## Zombie Code
165
-
166
- Zombie code is code that nobody owns but everybody depends on. It's not actively maintained, has no clear owner, and accumulates security vulnerabilities and compatibility issues. Signs:
167
-
168
- - No commits in 6+ months but active consumers exist
169
- - No assigned maintainer or team
170
- - Failing tests that nobody fixes
171
- - Dependencies with known vulnerabilities that nobody updates
172
- - Documentation that references systems that no longer exist
173
-
174
- **Response:** Either assign an owner and maintain it properly, or deprecate it with a concrete migration plan. Zombie code cannot stay in limbo — it either gets investment or removal.
175
-
176
- ## Common Rationalizations
177
-
178
- | Rationalization | Reality |
179
- |---|---|
180
- | "It still works, why remove it?" | Working code that nobody maintains accumulates security debt and complexity. Maintenance cost grows silently. |
181
- | "Someone might need it later" | If it's needed later, it can be rebuilt. Keeping unused code "just in case" costs more than rebuilding. |
182
- | "The migration is too expensive" | Compare migration cost to ongoing maintenance cost over 2-3 years. Migration is usually cheaper long-term. |
183
- | "We'll deprecate it after we finish the new system" | Deprecation planning starts at design time. By the time the new system is done, you'll have new priorities. Plan now. |
184
- | "Users will migrate on their own" | They won't. Provide tooling, documentation, and incentives — or do the migration yourself (the Churn Rule). |
185
- | "We can maintain both systems indefinitely" | Two systems doing the same thing is double the maintenance, testing, documentation, and onboarding cost. |
186
-
187
- ## Red Flags
188
-
189
- - Deprecated systems with no replacement available
190
- - Deprecation announcements with no migration tooling or documentation
191
- - "Soft" deprecation that's been advisory for years with no progress
192
- - Zombie code with no owner and active consumers
193
- - New features added to a deprecated system (invest in the replacement instead)
194
- - Deprecation without measuring current usage
195
- - Removing code without verifying zero active consumers
196
-
197
- ## Verification
198
-
199
- After completing a deprecation:
200
-
201
- - [ ] Replacement is production-proven and covers all critical use cases
202
- - [ ] Migration guide exists with concrete steps and examples
203
- - [ ] All active consumers have been migrated (verified by metrics/logs)
204
- - [ ] Old code, tests, documentation, and configuration are fully removed
205
- - [ ] No references to the deprecated system remain in the codebase
206
- - [ ] Deprecation notices are removed (they served their purpose)
@@ -1,93 +0,0 @@
1
- ---
2
- name: diagnosing-bugs
3
- description: "[Devflow] Diagnosis loop for hard bugs and performance regressions. Use inside Debug, 40-implement, or 50-verify when behavior is broken, throwing, failing, flaky, or slow."
4
- ---
5
-
6
- # Diagnosing Bugs
7
-
8
- Use this support skill when the active DevFlow owner needs a disciplined root-cause loop.
9
-
10
- Do not let this skill replace `Debug`, `40-implement`, or `50-verify`. It supplies the method; the owning workflow records the artifact.
11
-
12
- ## Phase 1: Build A Tight Feedback Loop
13
-
14
- Before hypothesizing, create a command or repeatable action that can catch the exact symptom.
15
-
16
- Preferred loops:
17
-
18
- 1. failing automated test
19
- 2. CLI command with fixture input
20
- 3. HTTP request or curl script
21
- 4. browser automation
22
- 5. captured trace replay
23
- 6. throwaway harness
24
- 7. property or stress loop
25
- 8. bisection loop
26
- 9. differential loop
27
- 10. structured human-in-the-loop notes when automation is impossible
28
-
29
- The loop must be:
30
-
31
- - red-capable for the user's exact symptom
32
- - deterministic, or high-reproduction-rate for flaky bugs
33
- - fast enough to run repeatedly
34
- - runnable by an agent or explicitly documented when human input is required
35
-
36
- If no loop can be built, stop and ask for missing artifacts such as logs, HAR files, screen recordings, production access, or permission for temporary instrumentation.
37
-
38
- ## Phase 2: Reproduce And Minimize
39
-
40
- Run the loop and confirm it reproduces the described symptom.
41
-
42
- Then minimize:
43
-
44
- - reduce inputs
45
- - reduce configuration
46
- - reduce steps
47
- - remove dependencies one at a time
48
-
49
- Stop minimizing only when every remaining element is load-bearing.
50
-
51
- ## Phase 3: Hypothesize
52
-
53
- Write 3-5 ranked, falsifiable hypotheses.
54
-
55
- Each hypothesis must say:
56
-
57
- ```text
58
- If <cause> is true, then <probe or change> should produce <observable result>.
59
- ```
60
-
61
- Proceed with the best hypothesis when user input is unavailable, but keep the ranked list in the artifact.
62
-
63
- ## Phase 4: Instrument
64
-
65
- Probe one variable at a time.
66
-
67
- - Prefer debugger or REPL inspection when available.
68
- - Use targeted logs only at boundaries that distinguish hypotheses.
69
- - Tag temporary logs with a unique prefix such as `[DEBUG-a4f2]`.
70
- - For performance bugs, establish a measurement baseline before changing code.
71
-
72
- ## Phase 5: Fix And Guard
73
-
74
- When a correct test seam exists:
75
-
76
- 1. Convert the minimized repro into a failing regression test.
77
- 2. Watch it fail.
78
- 3. Apply the fix.
79
- 4. Watch it pass.
80
- 5. Re-run the original feedback loop.
81
-
82
- If no correct seam exists, record that architecture finding and route to `codebase-design` or `30-plan` after the bug is fixed.
83
-
84
- ## Phase 6: Cleanup And Post-Mortem
85
-
86
- Before reporting done:
87
-
88
- - original repro no longer reproduces
89
- - regression test passes, or missing test seam is documented
90
- - temporary debug instrumentation is removed
91
- - throwaway harnesses are deleted or clearly marked
92
- - root cause is recorded in the owning stage artifact
93
- - prevention follow-up is captured when useful