@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chris1807/claude-kit",
3
- "version": "2.1.33",
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 provides additional context. 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.
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 per-story task breakdown with hour estimates. Usage: `/plan-backlog [project]`
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 a tailored Task breakdown with hour estimates for the user to approve before any work items are created.
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 a proposed task list
85
- with hours; you can approve, edit, or skip per story.
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, tailor the task list — and returns a structured proposal (story id, points, budget, and the list of `{title, hours}` tasks). 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 tasks only after approval. **Never fan out the approval or the work-item creation** — those stay sequential and interactive.
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 Breakdown (loop)
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 tailor the task list.
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. Tailor the task list (hybrid template)
127
+ ### 5c. Draft the single task
128
128
 
129
- Start from this template, then **add, remove, or rename** tasks based on what the AC actually describes:
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
- | Default task | When to include |
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 total)
138
+ AB#{id}: {title} ({points} pts → {budget} hrs)
156
139
  ─────────────────────────────────────────────────────────────
157
140
 
158
- Proposed child tasks:
141
+ Proposed child task:
159
142
 
160
- | # | Task title | Hours |
161
- |---|-----------------------------------------------|-------|
162
- | 1 | {Prefix} - Design: clarify export field set | 3 |
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 tasks)
178
- - `edit` → ask which row to change (title or hours), revise, re-show the table, ask again
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 tasks
157
+ ### 5e. Create the child task
183
158
 
184
- For each approved task, call `mcp__azure-devops__wit_create_work_item` with:
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 any create or link call fails, report the failure for that task, stop creating tasks for this story, and ask the user whether to continue with the next story or abort the loop.
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 {k} child tasks ({budget} hrs total)
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: 6 tasks, 24 hrs
223
- - AB#4530: 4 tasks, 14 hrs
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. 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.
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