@chris1807/claude-kit 2.3.5 → 2.3.6
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
|
@@ -688,7 +688,7 @@ Claude reviews for:
|
|
|
688
688
|
| `/track` | `/track release 24` | Check status of a release, pipeline, work item, or environment; flags work items whose state lags their environment |
|
|
689
689
|
| `/qa` | `/qa AB#1234 [env]` | Verify the item is fully deployed with a green pipeline → open the app in a real browser → sign in as a test account → full regression of the screens the story touched → pass/fail comment on the work item (never a state change). Environments: `local`, `dev`, `test`, `staging` |
|
|
690
690
|
| `/plan-backlog` | `/plan-backlog [project]` | Sweep backlog for Dev Ready stories with points and no tasks → propose one child task with hours per story |
|
|
691
|
-
| `/plan-sprint` | `/plan-sprint [project]` | Sweep the current sprint for stories/bugs with no child tasks → propose one child task with hours per item |
|
|
691
|
+
| `/plan-sprint` | `/plan-sprint [project] [--next]` | Sweep the current sprint (or the next one with `--next`) for stories/bugs with no child tasks → propose one child task with hours per item |
|
|
692
692
|
| `/quote-backlog` | `/quote-backlog [project]` | Sweep backlog for unpointed items ready to estimate — stories in `Design Approved`, bugs in `New` (bugs have no design states) → review completeness, check for duplicates, suggest rewrites, propose points + creator comments (10 at a time, approval-gated). Also audits the drop-out queue — tagged bugs and stories bounced to Design Review — for items whose creator answered but which nobody returned to the sweep |
|
|
693
693
|
| `/quote` | `/quote AB#1234` | Estimate a work item in story points (senior-calibrated Fibonacci rubric) |
|
|
694
694
|
| `/explain` | `/explain AB#1234` | Summarize and explain a work item in plain language |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chris1807/claude-kit",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.6",
|
|
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": {
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
Sweep the **current sprint** for user stories and bugs without child tasks and propose a single implementation task per item with an hour estimate. Usage: `/plan-sprint [project]`
|
|
1
|
+
Sweep the **current sprint** (or the **next sprint** with `--next`) for user stories and bugs without child tasks and propose a single implementation task per item with an hour estimate. Usage: `/plan-sprint [project] [--next]`
|
|
2
2
|
|
|
3
|
-
This command finds every **User Story** and **Bug** in the
|
|
3
|
+
This command finds every **User Story** and **Bug** in the target sprint of a chosen Azure DevOps project that **has no child tasks yet**, and — item by item — proposes **one child Task** with an hour estimate (points set the band, complexity sets where in the band it lands) for the user to approve before any work items are created. Exactly one task per work item — never a multi-task breakdown.
|
|
4
4
|
|
|
5
|
-
This is the sprint-planning counterpart of `/plan-backlog`. Use `/plan-backlog` to groom the unscheduled backlog; use `/plan-sprint` after items are pulled into the sprint to make sure each has its implementation task and hours.
|
|
5
|
+
This is the sprint-planning counterpart of `/plan-backlog`. Use `/plan-backlog` to groom the unscheduled backlog; use `/plan-sprint` after items are pulled into the sprint to make sure each has its implementation task and hours. Use `/plan-sprint --next` during sprint planning, once items have been pulled into the upcoming sprint but before it starts.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Parse `$ARGUMENTS`:
|
|
8
|
+
- If it contains `--next` or the standalone word `next`, the **target sprint** is the next sprint — the first iteration that starts after the current one. Otherwise the target sprint is the current sprint.
|
|
9
|
+
- Any remaining text is an optional project name (e.g. `/plan-sprint CSI Development --next`). If provided, skip the project prompt in Step 1.
|
|
10
|
+
|
|
11
|
+
Below, `{sprint}` means the target sprint's name.
|
|
8
12
|
|
|
9
13
|
## Step 1: Choose the Azure DevOps Project
|
|
10
14
|
|
|
@@ -27,21 +31,43 @@ Or specify a different project name, or "list" to see all projects.
|
|
|
27
31
|
|
|
28
32
|
If the user types `list`, call `mcp__azure-devops__core_list_projects` and present the names, then re-prompt. **Wait for the user's response.** Validate the chosen project name exists (call `core_list_projects` if uncertain).
|
|
29
33
|
|
|
30
|
-
## Step 2: Resolve the
|
|
34
|
+
## Step 2: Resolve the Target Sprint
|
|
31
35
|
|
|
32
|
-
Resolve the team's
|
|
36
|
+
Resolve the target sprint from the team's iterations — do not guess the iteration path:
|
|
33
37
|
|
|
34
38
|
1. Determine the team. Most projects have a default team named after the project; if `mcp__azure-devops__core_list_project_teams` shows multiple teams and it isn't obvious which one runs the sprint, ask the user which team to use.
|
|
35
|
-
2. Fetch the current iteration via `mcp__azure-
|
|
39
|
+
2. Fetch the current iteration via `mcp__azure-devops__work` (action `list_team_iterations`) with `timeframe: current` and capture its full **iteration path** and date range.
|
|
36
40
|
|
|
37
|
-
If no current iteration exists (no sprint with today's date in range), report:
|
|
41
|
+
**Current sprint (default):** the iteration from step 2 is the target. If no current iteration exists (no sprint with today's date in range), report:
|
|
38
42
|
|
|
39
43
|
```
|
|
40
44
|
{project} has no active sprint (no iteration covers today). Nothing to plan.
|
|
45
|
+
Run /plan-sprint --next to plan the upcoming sprint instead.
|
|
41
46
|
```
|
|
42
47
|
|
|
43
48
|
and stop.
|
|
44
49
|
|
|
50
|
+
**Next sprint (`--next`):** the API only filters on `current`, so find the next one yourself:
|
|
51
|
+
|
|
52
|
+
3. Fetch **all** the team's iterations via `mcp__azure-devops__work` (action `list_team_iterations`) with no `timeframe`.
|
|
53
|
+
4. Drop iterations with no start or finish date, and any named like `Release #N` — those are release groupings from `/create-release`, not sprints.
|
|
54
|
+
5. Of the rest, the target is the iteration with the **earliest start date after the current sprint's finish date**. If there is no current sprint, take the earliest start date after today.
|
|
55
|
+
|
|
56
|
+
If no such iteration exists, report:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
{project} has no next sprint scheduled (no iteration starts after {current sprint or today}).
|
|
60
|
+
Create the next iteration in Azure DevOps and assign it to the team, then re-run.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
and stop.
|
|
64
|
+
|
|
65
|
+
Capture the target sprint's full **iteration path** and date range, and state which sprint you resolved before querying:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Planning {sprint} ({start} – {finish}) — the {current | next} sprint for {team}.
|
|
69
|
+
```
|
|
70
|
+
|
|
45
71
|
## Step 3: Query the Sprint
|
|
46
72
|
|
|
47
73
|
Run a WIQL query via `mcp__azure-devops__wit_query` (action `wiql`) using the **literal iteration path** from Step 2:
|
|
@@ -53,7 +79,7 @@ SELECT [System.Id], [System.Title], [System.State],
|
|
|
53
79
|
FROM WorkItems
|
|
54
80
|
WHERE [System.TeamProject] = '{project}'
|
|
55
81
|
AND [System.WorkItemType] IN ('User Story', 'Bug')
|
|
56
|
-
AND [System.IterationPath] UNDER '{
|
|
82
|
+
AND [System.IterationPath] UNDER '{target sprint iteration path}'
|
|
57
83
|
AND [System.State] NOT IN ('Closed', 'Removed', 'Done', 'Resolved', 'Code Review', 'Ready for Testing', 'Testing', 'Ready for Staging', 'Staging', 'Ready to Deploy', 'Deployed')
|
|
58
84
|
ORDER BY [Microsoft.VSTS.Common.StackRank] ASC
|
|
59
85
|
```
|
|
@@ -65,7 +91,7 @@ Unlike `/plan-backlog`, **Story Points are not required** — an unpointed item
|
|
|
65
91
|
If the query returns zero items, report:
|
|
66
92
|
|
|
67
93
|
```
|
|
68
|
-
No open stories or bugs found in {
|
|
94
|
+
No open stories or bugs found in {sprint} of {project}.
|
|
69
95
|
Nothing to plan.
|
|
70
96
|
```
|
|
71
97
|
|
|
@@ -83,14 +109,14 @@ Skipped {n} items that already have child tasks:
|
|
|
83
109
|
- ...
|
|
84
110
|
```
|
|
85
111
|
|
|
86
|
-
If after filtering there are zero items left, report "Every open story and bug in {
|
|
112
|
+
If after filtering there are zero items left, report "Every open story and bug in {sprint} already has a task — nothing to plan." and stop.
|
|
87
113
|
|
|
88
114
|
## Step 5: Present the Working List
|
|
89
115
|
|
|
90
116
|
Show the remaining items the user is about to walk through:
|
|
91
117
|
|
|
92
118
|
```
|
|
93
|
-
Found {n} items in {
|
|
119
|
+
Found {n} items in {sprint} ({date range}) with no child tasks:
|
|
94
120
|
|
|
95
121
|
| # | ID | Type | Title | State | Points |
|
|
96
122
|
|----|----------|------------|------------------------------------------|-----------|--------|
|
|
@@ -204,7 +230,7 @@ Create the approved task with `mcp__azure-devops__wit_work_item_write` (action `
|
|
|
204
230
|
- **fields**:
|
|
205
231
|
- `Microsoft.VSTS.Scheduling.OriginalEstimate` — the hour estimate (as a number)
|
|
206
232
|
- `Microsoft.VSTS.Scheduling.RemainingWork` — the same hour estimate
|
|
207
|
-
- `System.IterationPath` — copy from the parent (the parent is in the
|
|
233
|
+
- `System.IterationPath` — copy from the parent (the parent is in the target sprint, so the task lands on that sprint's taskboard)
|
|
208
234
|
- `System.AreaPath` — copy from the parent
|
|
209
235
|
- `System.AssignedTo` — copy from the parent (pass the parent's `uniqueName` / email if its `System.AssignedTo` value is an identity object). If the parent is unassigned, leave this field unset rather than failing.
|
|
210
236
|
|
|
@@ -225,7 +251,7 @@ Then move to the next item.
|
|
|
225
251
|
Once the loop ends (all items handled, or user said `cancel-all`):
|
|
226
252
|
|
|
227
253
|
```
|
|
228
|
-
## Sprint Planning Complete — {project} / {
|
|
254
|
+
## Sprint Planning Complete — {project} / {sprint}
|
|
229
255
|
|
|
230
256
|
Items planned: {n_planned}
|
|
231
257
|
✓ Tasks created: {n_tasks_total} — one per item ({hours_total} hrs)
|
|
@@ -394,7 +394,7 @@ All deployment and release operations are available as slash commands:
|
|
|
394
394
|
| `/where` | `/where AB#1234` | Show which environment branches contain a work item's commits |
|
|
395
395
|
| `/qa` | `/qa AB#1234 [env]` | Verify the item is fully deployed with a green pipeline → open the app in a real browser → sign in as a test account → full regression of the screens the story touched → pass/fail comment (never a state change) |
|
|
396
396
|
| `/plan-backlog` | `/plan-backlog [project]` | Sweep backlog for Dev Ready stories with points and no tasks → propose child tasks with hours |
|
|
397
|
-
| `/plan-sprint` | `/plan-sprint [project]` | Sweep the current sprint for stories/bugs with no child tasks → propose one child task with hours per item |
|
|
397
|
+
| `/plan-sprint` | `/plan-sprint [project] [--next]` | Sweep the current sprint (or the next one with `--next`) for stories/bugs with no child tasks → propose one child task with hours per item |
|
|
398
398
|
| `/quote-backlog` | `/quote-backlog [project]` | Sweep backlog for unpointed items ready to estimate — stories in `Design Approved`, **bugs in `New`** (bugs have no design states) → review completeness, check for duplicates, suggest rewrites, propose points (+ Investment Category / Impact where unset) + creator comments (10 at a time, approval-gated). Pointed items move to Dev Ready; stories that can't be quoted move back to **Design Review**, bugs that can't be quoted get a **`needs-info`** tag, so the next sweep skips them. Every run also audits the drop-out queue (tagged bugs **and** stories bounced to Design Review) and reports any whose creator answered but which nobody returned to the sweep — neither mechanism expires, so those are otherwise invisible forever |
|
|
399
399
|
| `/quote` | `/quote AB#1234` | Estimate story points for one work item, and propose Investment Category / Impact if it has none; on approval, sets them and moves the item to Dev Ready. If it can't be estimated, offers to send a story back to **Design Review** or tag a bug **`needs-info`** |
|
|
400
400
|
| `/create-work-item` | `/create-work-item [description]` | Interactively draft and create a Feature, Bug, User Story, or Hot Fix — opens each with a plain-English Summary for the PM, then code-grounded Technical Details for the developer, proposes story points and Investment Category / Impact (user must agree) and creates pointed items in Dev Ready; on a Feature, also drafts its child stories with `Custom.Order` waves. Runs automatically for any plain-language request to create a work item |
|