@chris1807/claude-kit 2.1.33 → 2.1.34
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/package.json +1 -1
- package/templates/commands/deep-review.md +20 -0
- package/templates/commands/fix-review.md +21 -0
- package/templates/commands/implement.md +19 -1
- package/templates/commands/plan-backlog.md +26 -51
- package/templates/commands/review.md +19 -0
- package/templates/commands/rework.md +19 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chris1807/claude-kit",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.34",
|
|
4
4
|
"description": "Claude Code starter kit for Azure DevOps teams — agents, hooks, MCP servers, slash commands, and end-to-end work item → PR → release → deploy workflow automation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -40,6 +40,26 @@ Unlike `/review`, this command works against the real working tree so it can bui
|
|
|
40
40
|
|
|
41
41
|
If checkout fails (branch deleted after merge, etc.), tell the user and offer to fall back to a diff-only review (the `/review` behavior) instead.
|
|
42
42
|
|
|
43
|
+
### Effort gate — before the deep analysis (Steps 3–8)
|
|
44
|
+
|
|
45
|
+
Reasoning effort is a harness setting the user controls; this command cannot change it. `/deep-review` is the exhaustive, checkout-based review, so its analysis is heavy by nature — bias the recommendation upward. Rubric:
|
|
46
|
+
|
|
47
|
+
| Effort | When |
|
|
48
|
+
|--------|------|
|
|
49
|
+
| `high` | A focused PR — small diff, few subsystems, straightforward acceptance criteria. The floor for this command. |
|
|
50
|
+
| `xhigh` | The common case for a deep review — a real feature diff, several subsystems or acceptance criteria, regressions to reason about. Recommend this by default. |
|
|
51
|
+
| `max` | Large, security-critical, or architecturally risky PRs where you want maximum scrutiny. Session-only. |
|
|
52
|
+
|
|
53
|
+
Signals: files changed (from the confirmation above), acceptance-criteria count, number of subsystems touched, and whether the code is security- or data-integrity-sensitive. Present:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Suggested reasoning effort for this deep review: **{level}** — {one-line justification}.
|
|
57
|
+
Effort is set by you, not me. Run `/effort` to adjust if needed, then reply **ready** —
|
|
58
|
+
or reply **go** to proceed at your current level.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Wait for `ready` or `go` before launching the Step 3 workflow.** Never try to set the effort level yourself; only recommend it.
|
|
62
|
+
|
|
43
63
|
## Step 3: Detect Rework Context — do this BEFORE judging acceptance criteria
|
|
44
64
|
|
|
45
65
|
A small diff does not mean a small feature. The PR you are reviewing may be a rework that only addresses targeted feedback, while the bulk of the implementation already shipped in earlier PRs. Judging acceptance criteria against the current diff alone will produce false "not met" findings.
|
|
@@ -41,6 +41,27 @@ For each flagged item, capture:
|
|
|
41
41
|
|
|
42
42
|
If there are zero qualifying threads, tell the user `No open reviewer feedback on PR #{id}.` and stop.
|
|
43
43
|
|
|
44
|
+
### Effort gate — before planning and applying fixes (Steps 4–5)
|
|
45
|
+
|
|
46
|
+
Reasoning effort is a harness setting the user controls; this command cannot change it. Recommend a level based on the flagged items you just collected, then let the user set it. Rubric (the session default is usually `high`):
|
|
47
|
+
|
|
48
|
+
| Effort | When |
|
|
49
|
+
|--------|------|
|
|
50
|
+
| `medium` | A short list of low-severity, mechanical fixes (renames, nits, one or two obvious changes). |
|
|
51
|
+
| `high` | The common case — a mix of warnings and a few criticals across several files. Recommend this unless clearly lighter or heavier. |
|
|
52
|
+
| `xhigh` | Many findings, multiple critical issues, or fixes that touch subtle logic / span subsystems and risk regressions. |
|
|
53
|
+
| `max` | Exceptional: a critical finding that requires a genuine rethink or security-critical fix. Session-only. |
|
|
54
|
+
|
|
55
|
+
Signals: total flagged-item count and the severity mix (how many critical), plus whether the fixes concentrate in tricky code. Present:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Suggested reasoning effort for these fixes: **{level}** — {one-line justification citing the counts}.
|
|
59
|
+
Effort is set by you, not me. Run `/effort` to adjust if needed, then reply **ready** —
|
|
60
|
+
or reply **go** to proceed at your current level.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Wait for `ready` or `go` before switching branches and planning.** Never try to set the effort level yourself; only recommend it.
|
|
64
|
+
|
|
44
65
|
## Step 3: Switch to the PR Branch
|
|
45
66
|
|
|
46
67
|
Before reading code or proposing fixes, make sure local state matches the PR:
|
|
@@ -34,6 +34,19 @@ Read the work item comments via `wit_list_work_item_comments`. Comments often co
|
|
|
34
34
|
|
|
35
35
|
## Step 2: Summarize and Confirm
|
|
36
36
|
|
|
37
|
+
### Assess reasoning effort
|
|
38
|
+
|
|
39
|
+
Reasoning effort is a **harness setting the user controls** — this command cannot change it, and no prompt or hook can. Your job is to *recommend* a level; the user applies it (via `/effort`) before the heavy work in Steps 3–8 runs. Base the recommendation on the work item's scope using this rubric (the session default is usually `high`):
|
|
40
|
+
|
|
41
|
+
| Effort | When |
|
|
42
|
+
|--------|------|
|
|
43
|
+
| `medium` | Trivial / mechanical: single-file or config change, copy tweak, one obvious fix. |
|
|
44
|
+
| `high` | Standard work: cross-layer change, a handful of files, normal test + review load. Recommend this unless the work is clearly lighter or heavier. |
|
|
45
|
+
| `xhigh` | Heavy: multi-subsystem or full-stack change, many acceptance criteria, subtle logic, tricky regressions, or ambiguous requirements. |
|
|
46
|
+
| `max` | Exceptional: genuinely novel design, security-critical, or high-uncertainty work. Session-only. |
|
|
47
|
+
|
|
48
|
+
Concrete signals for this command: number of subsystems/layers touched, acceptance-criteria count, and how much is net-new logic vs. following an existing pattern.
|
|
49
|
+
|
|
37
50
|
Present a summary of the work item to the user:
|
|
38
51
|
|
|
39
52
|
```
|
|
@@ -51,10 +64,15 @@ Present a summary of the work item to the user:
|
|
|
51
64
|
|
|
52
65
|
Does this look correct? Do you have any additional context or requirements?
|
|
53
66
|
|
|
67
|
+
**Suggested reasoning effort: {level}** — {one-line justification citing the signals above}.
|
|
68
|
+
Effort is set by you, not me. If your current level differs, run `/effort` to adjust before replying.
|
|
69
|
+
|
|
54
70
|
Use **Ultracode effort** for this run? Ultracode fans out exploration, AC-coverage checks, and code review across parallel agents — more thorough, but slower and more token-hungry. (yes / no — suggested: {yes for multi-subsystem / multi-AC work, no for trivial changes})
|
|
71
|
+
|
|
72
|
+
Reply with your Ultracode choice (and any added context). Say **ready** once your effort level is set, or **go** to proceed at your current level.
|
|
55
73
|
```
|
|
56
74
|
|
|
57
|
-
**Wait for the user to respond.** Do NOT proceed until the user confirms or
|
|
75
|
+
**Wait for the user to respond.** Do NOT proceed until the user confirms or replies `ready`/`go`. If they add context, incorporate it into the plan. Record the Ultracode answer — it governs whether the `Workflow` fan-outs in Steps 3, 7, and 8 run at all. Never try to set the effort level yourself; only recommend it.
|
|
58
76
|
|
|
59
77
|
## Step 3: Explore & Plan
|
|
60
78
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Sweep an Azure DevOps backlog for Dev Ready user stories without child tasks and propose a
|
|
1
|
+
Sweep an Azure DevOps backlog for Dev Ready user stories without child tasks and propose a single implementation task per story with an hour estimate. Usage: `/plan-backlog [project]`
|
|
2
2
|
|
|
3
|
-
This command walks the **backlog** of a chosen Azure DevOps project (work items not assigned to any sprint), finds user stories that are **Dev Ready**, **have Story Points**, and **have no child tasks yet**, and — story by story — proposes
|
|
3
|
+
This command walks the **backlog** of a chosen Azure DevOps project (work items not assigned to any sprint), finds user stories that are **Dev Ready**, **have Story Points**, and **have no child tasks yet**, and — story by story — proposes **one child Task** with an hour estimate for the user to approve before any work items are created. Exactly one task per story — never a multi-task breakdown.
|
|
4
4
|
|
|
5
5
|
Treat `$ARGUMENTS` as an optional project name (e.g. `/plan-backlog CSI Development`). If provided, skip the project prompt in Step 1.
|
|
6
6
|
|
|
@@ -81,8 +81,8 @@ Found {n} Dev Ready stories with Story Points and no child tasks on the {project
|
|
|
81
81
|
| 3 | AB#4530 | COM - Dashboard trend graphs | 3 |
|
|
82
82
|
| .. | ... | ... | ... |
|
|
83
83
|
|
|
84
|
-
I'll walk through each one. For each story you'll see
|
|
85
|
-
with
|
|
84
|
+
I'll walk through each one. For each story you'll see one proposed task
|
|
85
|
+
with an hour estimate; you can approve, edit, or skip per story.
|
|
86
86
|
|
|
87
87
|
Continue? (yes / cancel)
|
|
88
88
|
```
|
|
@@ -93,18 +93,18 @@ Continue? (yes / cancel)
|
|
|
93
93
|
|
|
94
94
|
Only when **ultracode is on** (a system-reminder confirms it, or the user typed `ultracode`): the analysis in 5a–5c is independent per story, so pre-compute all proposals in parallel with the `Workflow` tool instead of analyzing one story at a time.
|
|
95
95
|
|
|
96
|
-
- Fan out **one agent per story** that does 5a–5c — re-read the story, map points → budget,
|
|
97
|
-
- Then run Step 5's loop **using the pre-computed proposals** — but keep 5d (approval) and 5e (creation) exactly as written: present each proposal, wait for `yes / edit / skip / cancel-all`, and create
|
|
96
|
+
- Fan out **one agent per story** that does 5a–5c — re-read the story, map points → budget, draft the single task — and returns a structured proposal (story id, points, budget, and one `{title, hours}` task). Use a `schema` so each agent returns validated JSON.
|
|
97
|
+
- Then run Step 5's loop **using the pre-computed proposals** — but keep 5d (approval) and 5e (creation) exactly as written: present each proposal, wait for `yes / edit / skip / cancel-all`, and create the task only after approval. **Never fan out the approval or the work-item creation** — those stay sequential and interactive.
|
|
98
98
|
|
|
99
99
|
If ultracode is off, ignore this and run Step 5 the normal sequential way. The output is identical either way; ultracode only makes the analysis faster for large backlogs.
|
|
100
100
|
|
|
101
|
-
## Step 5: Per-Story Task
|
|
101
|
+
## Step 5: Per-Story Task (loop)
|
|
102
102
|
|
|
103
103
|
For each remaining story, in order:
|
|
104
104
|
|
|
105
105
|
### 5a. Re-read the story in full
|
|
106
106
|
|
|
107
|
-
Fetch the work item again (Description and Acceptance Criteria fields) if not already cached. You need the AC text to
|
|
107
|
+
Fetch the work item again (Description and Acceptance Criteria fields) if not already cached. You need the AC text to write an accurate task title.
|
|
108
108
|
|
|
109
109
|
### 5b. Map Story Points → total hour budget
|
|
110
110
|
|
|
@@ -124,64 +124,39 @@ Use this mapping (calibrated for a senior developer at ~6 productive hours per d
|
|
|
124
124
|
|
|
125
125
|
If the points value isn't on the Fibonacci scale, round to the nearest entry above. If the story has tags like `spike`, `research`, or `unknown-stack`, add 20–30% on top — those are the cases where seniority doesn't help.
|
|
126
126
|
|
|
127
|
-
### 5c.
|
|
127
|
+
### 5c. Draft the single task
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
Create **exactly one task** covering all the work for the story — implementation, tests, code review revisions, and UAT support are all rolled into it. Do not split the story into design/backend/frontend/test tasks.
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| Design / Spike | AC has open questions or the implementation isn't obvious |
|
|
134
|
-
| Backend implementation | AC mentions API, service, job, persistence, or data flow |
|
|
135
|
-
| Frontend implementation| AC mentions UI, screen, form, button, or workflow |
|
|
136
|
-
| Database / migration | AC requires schema changes or data backfill |
|
|
137
|
-
| Automated tests | Always include unless the story is purely a config tweak |
|
|
138
|
-
| Code review revisions | Always include |
|
|
139
|
-
| UAT support | Always include unless explicitly out of scope |
|
|
140
|
-
|
|
141
|
-
Distribute the hour budget across the chosen tasks. Reasonable defaults:
|
|
142
|
-
|
|
143
|
-
- Code review revisions: ~10% of budget (min 1 hr)
|
|
144
|
-
- UAT support: ~10% of budget (min 1 hr)
|
|
145
|
-
- Automated tests: ~15–25% of budget
|
|
146
|
-
- Design / Spike (if present): ~10–20% of budget
|
|
147
|
-
- Remaining hours split across implementation tasks based on the AC
|
|
148
|
-
|
|
149
|
-
Round each task to a whole hour. Final total should equal the budget (give or take 1 hr from rounding).
|
|
131
|
+
- **Title**: `{Prefix} - Implement: {short summary of the story}` — use the same product prefix as the parent (e.g. `COM`, `PAY`, `CDA`), extracted from the parent's title.
|
|
132
|
+
- **Hours**: the full hour budget from 5b, rounded to a whole hour.
|
|
150
133
|
|
|
151
134
|
### 5d. Show the proposal
|
|
152
135
|
|
|
153
136
|
```
|
|
154
137
|
─────────────────────────────────────────────────────────────
|
|
155
|
-
AB#{id}: {title} ({points} pts → {budget} hrs
|
|
138
|
+
AB#{id}: {title} ({points} pts → {budget} hrs)
|
|
156
139
|
─────────────────────────────────────────────────────────────
|
|
157
140
|
|
|
158
|
-
Proposed child
|
|
141
|
+
Proposed child task:
|
|
159
142
|
|
|
160
|
-
|
|
|
161
|
-
|
|
162
|
-
|
|
|
163
|
-
| 2 | {Prefix} - Backend: CSV export endpoint | 8 |
|
|
164
|
-
| 3 | {Prefix} - Frontend: export button + download | 6 |
|
|
165
|
-
| 4 | {Prefix} - Tests: export endpoint + UI | 4 |
|
|
166
|
-
| 5 | {Prefix} - Code review revisions | 2 |
|
|
167
|
-
| 6 | {Prefix} - UAT support | 1 |
|
|
168
|
-
| | **Total** | **24**|
|
|
143
|
+
| Task title | Hours |
|
|
144
|
+
|------------------------------------------------|-------|
|
|
145
|
+
| {Prefix} - Implement: payments CSV export | 24 |
|
|
169
146
|
|
|
170
147
|
Approve? (yes / edit / skip / cancel-all)
|
|
171
148
|
```
|
|
172
149
|
|
|
173
|
-
Task titles use the same product prefix as the parent (e.g. `COM`, `PAY`, `CDA`) — extract it from the parent's title. Use the format `{Prefix} - {what the task does}`.
|
|
174
|
-
|
|
175
150
|
**Wait for the user.**
|
|
176
151
|
|
|
177
|
-
- `yes` → proceed to 5e (create the
|
|
178
|
-
- `edit` → ask
|
|
152
|
+
- `yes` → proceed to 5e (create the task)
|
|
153
|
+
- `edit` → ask what to change (title or hours), revise, re-show, ask again
|
|
179
154
|
- `skip` → skip this story, move to the next; record it as skipped
|
|
180
155
|
- `cancel-all` → stop the entire loop with no further changes. Report what was already created.
|
|
181
156
|
|
|
182
|
-
### 5e. Create the child
|
|
157
|
+
### 5e. Create the child task
|
|
183
158
|
|
|
184
|
-
|
|
159
|
+
Create the approved task with `mcp__azure-devops__wit_create_work_item`:
|
|
185
160
|
|
|
186
161
|
- **project**: the chosen project
|
|
187
162
|
- **workItemType**: `Task`
|
|
@@ -195,12 +170,12 @@ For each approved task, call `mcp__azure-devops__wit_create_work_item` with:
|
|
|
195
170
|
|
|
196
171
|
Then link the new task as a child of the parent with `mcp__azure-devops__wit_add_child_work_items` (or fall back to `wit_work_items_link` with link type `System.LinkTypes.Hierarchy-Forward` from parent → task).
|
|
197
172
|
|
|
198
|
-
If
|
|
173
|
+
If the create or link call fails, report the failure and ask the user whether to continue with the next story or abort the loop.
|
|
199
174
|
|
|
200
175
|
### 5f. Confirm per-story result
|
|
201
176
|
|
|
202
177
|
```
|
|
203
|
-
✓ AB#{id}: created
|
|
178
|
+
✓ AB#{id}: created 1 child task ({budget} hrs)
|
|
204
179
|
```
|
|
205
180
|
|
|
206
181
|
Then move to the next story.
|
|
@@ -213,14 +188,14 @@ Once the loop ends (all stories handled, or user said `cancel-all`):
|
|
|
213
188
|
## Backlog Planning Complete — {project}
|
|
214
189
|
|
|
215
190
|
Stories planned: {n_planned}
|
|
216
|
-
✓ Tasks created: {n_tasks_total} ({hours_total} hrs)
|
|
191
|
+
✓ Tasks created: {n_tasks_total} — one per story ({hours_total} hrs)
|
|
217
192
|
Stories skipped: {n_skipped}
|
|
218
193
|
- already had tasks: {n_existing}
|
|
219
194
|
- user skipped: {n_user_skipped}
|
|
220
195
|
|
|
221
196
|
Planned stories:
|
|
222
|
-
- AB#4521:
|
|
223
|
-
- AB#4530:
|
|
197
|
+
- AB#4521: 1 task, 24 hrs
|
|
198
|
+
- AB#4530: 1 task, 14 hrs
|
|
224
199
|
- ...
|
|
225
200
|
|
|
226
201
|
Next steps:
|
|
@@ -4,6 +4,25 @@ Review PR #$ARGUMENTS in the current project. Automatically:
|
|
|
4
4
|
|
|
5
5
|
2. **Read the linked work item** and gather the full acceptance criteria.
|
|
6
6
|
|
|
7
|
+
**Effort gate — do this before the review reasoning (steps 3+).** Reasoning effort is a harness setting the user controls; this command cannot change it. Recommend a level based on the diff you just read, then let the user set it. Rubric (the session default is usually `high`):
|
|
8
|
+
|
|
9
|
+
| Effort | When |
|
|
10
|
+
|--------|------|
|
|
11
|
+
| `medium` | Small diff — a few files, mechanical or well-scoped change, short AC list. |
|
|
12
|
+
| `high` | Standard PR — cross-layer diff, a handful of files, a normal AC set. Recommend this unless clearly lighter or heavier. |
|
|
13
|
+
| `xhigh` | Large or subtle diff — many files/subsystems, many acceptance criteria, security-sensitive or concurrency-heavy code. |
|
|
14
|
+
| `max` | Exceptional: security-critical or architecturally risky change where you want maximum scrutiny. Session-only. |
|
|
15
|
+
|
|
16
|
+
Signals: files changed, additions/deletions, acceptance-criteria count, and whether the diff touches security- or data-integrity-sensitive code. Present:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Suggested reasoning effort for this review: **{level}** — {one-line justification}.
|
|
20
|
+
Effort is set by you, not me. Run `/effort` to adjust if needed, then reply **ready** —
|
|
21
|
+
or reply **go** to review at your current level.
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Wait for `ready` or `go` before continuing.** Never try to set the effort level yourself; only recommend it.
|
|
25
|
+
|
|
7
26
|
3. **Detect rework context — do this BEFORE judging acceptance criteria.**
|
|
8
27
|
|
|
9
28
|
A small diff does not mean a small feature. The PR you are reviewing may be a rework that only addresses targeted feedback, while the bulk of the implementation already shipped in earlier PRs. Judging acceptance criteria against the current diff alone will produce false "not met" findings.
|
|
@@ -53,6 +53,19 @@ Regardless of whether description/acceptance criteria changed, **always read the
|
|
|
53
53
|
|
|
54
54
|
## Step 3: Summarize Rework and Confirm
|
|
55
55
|
|
|
56
|
+
### Assess reasoning effort
|
|
57
|
+
|
|
58
|
+
Reasoning effort is a **harness setting the user controls** — this command cannot change it, and no prompt or hook can. Recommend a level; the user applies it (via `/effort`) before the rework in Steps 4–10 runs. Base it on the rework's scope using this rubric (the session default is usually `high`):
|
|
59
|
+
|
|
60
|
+
| Effort | When |
|
|
61
|
+
|--------|------|
|
|
62
|
+
| `medium` | A small targeted fix: one or two files, a single low-risk feedback item. |
|
|
63
|
+
| `high` | Standard rework: a handful of files, a few feedback items across a layer or two. Recommend this unless clearly lighter or heavier. |
|
|
64
|
+
| `xhigh` | Heavy rework: multi-subsystem changes, many feedback items / ACs, subtle regressions, or ambiguous feedback. |
|
|
65
|
+
| `max` | Exceptional: the feedback exposes a design flaw needing a rethink, or security-critical work. Session-only. |
|
|
66
|
+
|
|
67
|
+
Concrete signals for this command: number of feedback items, how many ACs they map to, and how many subsystems the fixes touch.
|
|
68
|
+
|
|
56
69
|
Present a summary of the rework feedback to the user. **Every feedback item must be mapped to an Acceptance Criterion** — if a feedback item doesn't map to any AC, flag it explicitly as either (a) implied by an AC that's worded too loosely or (b) scope-creep that should be a separate work item.
|
|
57
70
|
|
|
58
71
|
```
|
|
@@ -78,10 +91,15 @@ Present a summary of the rework feedback to the user. **Every feedback item must
|
|
|
78
91
|
|
|
79
92
|
Does this capture the rework correctly? Any feedback items that should be flagged as scope-creep (separate work item) instead of being addressed here?
|
|
80
93
|
|
|
94
|
+
**Suggested reasoning effort: {level}** — {one-line justification citing the signals above}.
|
|
95
|
+
Effort is set by you, not me. If your current level differs, run `/effort` to adjust before replying.
|
|
96
|
+
|
|
81
97
|
Use **Ultracode effort** for this rework? Ultracode fans out exploration, AC-coverage checks, and code review across parallel agents — more thorough, but slower and more token-hungry. (yes / no — suggested: {yes for multi-file / multi-AC rework, no for a small targeted fix})
|
|
98
|
+
|
|
99
|
+
Reply with your Ultracode choice (and any reclassifications or context). Say **ready** once your effort level is set, or **go** to proceed at your current level.
|
|
82
100
|
```
|
|
83
101
|
|
|
84
|
-
**Wait for the user to respond.** Do NOT proceed until the user confirms the AC mapping
|
|
102
|
+
**Wait for the user to respond.** Do NOT proceed until the user confirms the AC mapping and replies `ready`/`go`. Record the Ultracode answer — it governs whether the `Workflow` fan-outs in Steps 4, 9, and 10 run at all. If they reclassify any item as scope-creep, drop it from the plan and note it in the final summary. If they add context, incorporate it. Never try to set the effort level yourself; only recommend it.
|
|
85
103
|
|
|
86
104
|
## Step 4: Explore & Plan
|
|
87
105
|
|