@houseofwolvesllc/claude-scrum-skill 1.5.0 → 1.5.1
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/README.md
CHANGED
|
@@ -236,7 +236,7 @@ Human/cowork stories are skipped (they roll over). Merges to `development` happe
|
|
|
236
236
|
/project-cleanup --report-only
|
|
237
237
|
```
|
|
238
238
|
|
|
239
|
-
Verify codebase hygiene across five dimensions: zero build errors/warnings, zero lint errors/warnings,
|
|
239
|
+
Verify codebase hygiene across five dimensions: zero build errors/warnings, zero lint errors/warnings, project principles compliance (driven by your `CLAUDE.md`), no dead or duplicated code, and all tests passing with at least 50% coverage. The skill detects your toolchain (TypeScript, Go, Rust, Python, etc.) automatically.
|
|
240
240
|
|
|
241
241
|
In `--fix` mode, it resolves issues in dependency order — dead code removal first, then build errors, lint violations, architecture fixes, and finally test fixes and coverage improvement. All changes are documented in a `FIXES.md` report. Without `--fix`, it produces a full report to `.claude/reports/cleanup-report/` without modifying code.
|
|
242
242
|
|
|
@@ -305,7 +305,7 @@ Located at: `project-scaffold/references/CONVENTIONS.md`
|
|
|
305
305
|
| `sprint-release` | `/sprint-release [owner/repo]` | Close sprint, open release PR to development |
|
|
306
306
|
| `project-emulate` | `/project-emulate` | Integration seams, layer contracts, cross-service payloads, and full lifecycle walkthrough |
|
|
307
307
|
| `project-orchestrate` | `/project-orchestrate [prd-path] [owner/repo]` | Autonomous lifecycle driver — sprint loop + emulation hardening until done |
|
|
308
|
-
| `project-cleanup` | `/project-cleanup [path] [--fix] [--report-only]` | Build, lint,
|
|
308
|
+
| `project-cleanup` | `/project-cleanup [path] [--fix] [--report-only]` | Build, lint, project principles, dead code, and test coverage verification/enforcement |
|
|
309
309
|
|
|
310
310
|
## Customization
|
|
311
311
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@houseofwolvesllc/claude-scrum-skill",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Claude Code skills for scrum project management — PRD to production release pipeline with project scaffolding, sprint planning, status tracking, sprint releases, full-project emulation testing, autonomous orchestration, and project cleanup.",
|
|
5
5
|
"bin": {},
|
|
6
6
|
"scripts": {
|
|
@@ -116,75 +116,48 @@ For each issue found, record:
|
|
|
116
116
|
|
|
117
117
|
---
|
|
118
118
|
|
|
119
|
-
## Phase 3:
|
|
119
|
+
## Phase 3: Project Principles Compliance
|
|
120
120
|
|
|
121
|
-
Verify the codebase adheres to
|
|
121
|
+
Verify the codebase adheres to the architectural and design principles defined in the project's `CLAUDE.md`. This phase is entirely driven by what the project specifies — there are no default architectural checks.
|
|
122
122
|
|
|
123
|
-
**
|
|
123
|
+
**If `CLAUDE.md` does not exist or contains no architectural principles, skip this phase entirely.**
|
|
124
124
|
|
|
125
|
-
### Step 1:
|
|
125
|
+
### Step 1: Extract Principles from CLAUDE.md
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
Read the project's `CLAUDE.md` and identify every architectural or design principle it specifies. These may include (but are not limited to):
|
|
128
128
|
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
129
|
+
- **API design patterns** — HATEOAS, REST conventions, GraphQL schema standards, response envelope formats
|
|
130
|
+
- **Layered architecture rules** — e.g., "controllers must not call repositories directly"
|
|
131
|
+
- **Dependency direction** — e.g., "inner layers must not depend on outer layers"
|
|
132
|
+
- **Naming conventions** — file names, function names, variable naming patterns
|
|
133
|
+
- **Error handling patterns** — e.g., "all errors must extend AppError"
|
|
134
|
+
- **Response formats** — e.g., "all responses must include `_links`" or "use HAL format"
|
|
135
|
+
- **Testing requirements** — e.g., "every service must have integration tests"
|
|
136
|
+
- **Any other explicit rule** — whatever the project declares, enforce it
|
|
133
137
|
|
|
134
|
-
|
|
138
|
+
Record each principle found so violations can reference the specific rule.
|
|
135
139
|
|
|
136
|
-
|
|
140
|
+
### Step 2: Audit Compliance
|
|
137
141
|
|
|
138
|
-
|
|
139
|
-
```json
|
|
140
|
-
{
|
|
141
|
-
"id": "123",
|
|
142
|
-
"name": "Example",
|
|
143
|
-
"_links": {
|
|
144
|
-
"self": { "href": "/resources/123" }
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**Relational links** — Resources with relationships SHOULD include navigational links:
|
|
150
|
-
- Parent resource link (e.g., `collection` → `/resources`)
|
|
151
|
-
- Related resource links (e.g., `author` → `/users/456`)
|
|
152
|
-
- Action links where applicable (e.g., `approve` → `/resources/123/approve`)
|
|
153
|
-
|
|
154
|
-
**Collection links** — Collection endpoints SHOULD include:
|
|
155
|
-
- `self` link with current query parameters
|
|
156
|
-
- Pagination links (`next`, `prev`, `first`, `last`) when paginated
|
|
157
|
-
- Item links or embedded items with their own `self` links
|
|
158
|
-
|
|
159
|
-
**Consistency checks:**
|
|
160
|
-
- All link `href` values MUST correspond to actual routes that exist in the codebase
|
|
161
|
-
- Link relations MUST be consistent across all endpoints (don't use `_links` in some responses and `links` in others)
|
|
162
|
-
- Media type SHOULD be consistent (if using HAL, use HAL everywhere; if using JSON:API, use JSON:API everywhere)
|
|
163
|
-
|
|
164
|
-
### Step 3: Project-Specific Principles
|
|
165
|
-
|
|
166
|
-
Read `CLAUDE.md` and any architecture documentation (ADRs, `docs/architecture.md`, etc.) for project-specific principles. Common things to check:
|
|
142
|
+
For each principle extracted in Step 1, scan the codebase for violations:
|
|
167
143
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
- **Error handling patterns** — does the project use a specific error handling strategy consistently?
|
|
172
|
-
- **Response envelope** — does the project wrap responses in a specific envelope format?
|
|
144
|
+
1. Identify all files and code paths where the principle applies
|
|
145
|
+
2. Check each instance for compliance
|
|
146
|
+
3. Flag every violation with the specific principle it breaks
|
|
173
147
|
|
|
174
|
-
### Step
|
|
148
|
+
### Step 3: Catalog Violations
|
|
175
149
|
|
|
176
150
|
For each violation found, record:
|
|
177
151
|
|
|
178
|
-
| File | Line |
|
|
179
|
-
|
|
180
|
-
| `src/
|
|
181
|
-
| `src/
|
|
152
|
+
| File | Line | Principle | Issue | Recommendation |
|
|
153
|
+
|------|------|-----------|-------|----------------|
|
|
154
|
+
| `src/routes/orders.ts` | 45 | Layered architecture | Controller directly queries DB | Route through OrderService |
|
|
155
|
+
| `src/controllers/users.ts` | 78 | HATEOAS (per CLAUDE.md) | Response missing `_links.self` | Add self link to user response |
|
|
182
156
|
|
|
183
157
|
If `--fix` is active:
|
|
184
|
-
-
|
|
185
|
-
- Add missing pagination links to collection responses
|
|
186
|
-
- Refactor architectural violations (move logic to correct layer)
|
|
158
|
+
- Fix violations in order of severity (principles the project marks as critical first)
|
|
187
159
|
- Verify fixes don't break existing tests
|
|
160
|
+
- Re-scan to confirm compliance
|
|
188
161
|
|
|
189
162
|
---
|
|
190
163
|
|
|
@@ -364,7 +337,7 @@ cleanup-report/
|
|
|
364
337
|
├── SUMMARY.md # High-level findings, pass/fail status for each phase
|
|
365
338
|
├── BUILD.md # Build errors and warnings
|
|
366
339
|
├── LINT.md # Lint violations by rule and file
|
|
367
|
-
├──
|
|
340
|
+
├── PRINCIPLES.md # Project principles compliance findings (from CLAUDE.md)
|
|
368
341
|
├── DEAD-CODE.md # Dead and duplicated code inventory
|
|
369
342
|
├── TESTS.md # Test results and coverage analysis
|
|
370
343
|
└── FIXES.md # (if --fix was used) Summary of all changes made
|
|
@@ -386,7 +359,7 @@ cleanup-report/
|
|
|
386
359
|
|-------|--------|--------------|--------------|
|
|
387
360
|
| Build | PASS/FAIL | <count> errors, <count> warnings | <count> (if --fix) |
|
|
388
361
|
| Lint | PASS/FAIL | <count> errors, <count> warnings | <count> (if --fix) |
|
|
389
|
-
|
|
|
362
|
+
| Project Principles | PASS/FAIL/SKIP | <count> violations | <count> (if --fix) |
|
|
390
363
|
| Dead/Duplicated Code | PASS/FAIL | <count> dead, <count> duplicated | <count> (if --fix) |
|
|
391
364
|
| Tests | PASS/FAIL | <count> failing, coverage: <pct>% | <count> (if --fix) |
|
|
392
365
|
| **Overall** | **PASS/FAIL** | **<total>** | **<total>** |
|
|
@@ -413,9 +386,9 @@ cleanup-report/
|
|
|
413
386
|
|
|
414
387
|
## Execution Notes
|
|
415
388
|
|
|
416
|
-
**CLAUDE.md is king.** If the project says "we use `eslint-disable` for generated files" or "
|
|
389
|
+
**CLAUDE.md is king.** If the project says "we use `eslint-disable` for generated files" or "we intentionally keep the old API types for backwards compat" — follow those rules. Best practices are defaults, not mandates. Phase 3 (Project Principles) only enforces what `CLAUDE.md` explicitly declares — no assumptions about HATEOAS, REST conventions, or any other architectural pattern unless the project specifies them.
|
|
417
390
|
|
|
418
|
-
**Fix in dependency order.** Build errors can cause false-positive lint failures. Dead code removal can cause build errors. Fix in this order: dead code removal, build errors, lint issues,
|
|
391
|
+
**Fix in dependency order.** Build errors can cause false-positive lint failures. Dead code removal can cause build errors. Fix in this order: dead code removal, build errors, lint issues, project principles compliance, test fixes, coverage improvement.
|
|
419
392
|
|
|
420
393
|
**Don't over-abstract.** When removing duplicated code, only extract when it genuinely simplifies the codebase. Three similar 5-line blocks are not necessarily worth a shared utility with 3 parameters.
|
|
421
394
|
|
|
@@ -457,7 +457,7 @@ Print a phase transition summary:
|
|
|
457
457
|
|
|
458
458
|
**Build:** ✅ zero errors, zero warnings
|
|
459
459
|
**Lint:** ✅ zero violations
|
|
460
|
-
**
|
|
460
|
+
**Project Principles:** ✅ compliant (or SKIP if no principles in CLAUDE.md)
|
|
461
461
|
**Dead code:** ✅ none detected
|
|
462
462
|
**Tests:** ✅ all passing, <pct>% coverage
|
|
463
463
|
|
|
@@ -486,7 +486,7 @@ Print a comprehensive summary of the entire orchestration run:
|
|
|
486
486
|
### Phase 3 — Project Cleanup
|
|
487
487
|
- **Build:** ✅ clean / ⚠️ <N> remaining issues
|
|
488
488
|
- **Lint:** ✅ clean / ⚠️ <N> remaining issues
|
|
489
|
-
- **
|
|
489
|
+
- **Project Principles:** ✅ compliant / ⚠️ <N> violations / ⏭️ skipped (no principles in CLAUDE.md)
|
|
490
490
|
- **Dead code:** ✅ none / ⚠️ <N> items remaining
|
|
491
491
|
- **Tests:** ✅ passing (<pct>% coverage) / ⚠️ <N> failing, <pct>% coverage
|
|
492
492
|
- **Full report:** .claude/reports/cleanup-report/SUMMARY.md
|