@chris1807/claude-kit 2.3.3 → 2.3.4
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
|
@@ -692,7 +692,7 @@ Claude reviews for:
|
|
|
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 |
|
|
695
|
-
| `/create-work-item` | `/create-work-item [description]` | Interactively draft and create a Feature, Bug, User Story, or Hot Fix — proposes story points (user must agree), 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 |
|
|
695
|
+
| `/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 (user must agree), 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 |
|
|
696
696
|
| `/edit-work-item` | `/edit-work-item AB#1234 [what to change]` | Revise an existing work item field-by-field. On a Feature, cascades into its child stories — updates, adds, retires, and re-sequences `Custom.Order` waves — with a safety gate on anything already past Dev Ready |
|
|
697
697
|
| `/cleanup-branches` | `/cleanup-branches` | Delete merged feature/work branches |
|
|
698
698
|
| `/close-orphan-tasks` | `/close-orphan-tasks --dry-run` | Close open Tasks whose parent is Ready to Deploy / Deployed / Closed |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chris1807/claude-kit",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4",
|
|
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": {
|
|
@@ -77,7 +77,34 @@ If you find nothing, say so in one line rather than omitting the section — "no
|
|
|
77
77
|
|
|
78
78
|
## Step 3: Develop the Plan
|
|
79
79
|
|
|
80
|
-
Translate the user's free-form requirements into a structured work item draft. The shape depends on the type
|
|
80
|
+
Translate the user's free-form requirements into a structured work item draft. The shape depends on the type, but every type serves **two readers**:
|
|
81
|
+
|
|
82
|
+
- **The PM** reads the **Summary** at the top: plain English, no code.
|
|
83
|
+
- **The developer and Claude Code** read everything below it: **technical**, specific, and grounded in the actual codebase. It should be enough to plan and implement the change without rediscovering where it lives.
|
|
84
|
+
|
|
85
|
+
Neither part substitutes for the other. A plain-English item is unimplementable, and an item that is only technical leaves the PM guessing.
|
|
86
|
+
|
|
87
|
+
### The Summary — every type, always first
|
|
88
|
+
|
|
89
|
+
Every work item starts with a **plain-English Summary** written for someone who has never seen the code: a PM, a stakeholder, a support lead. It is the first section of the draft and the first thing on the work item form (Step 8 routes it).
|
|
90
|
+
|
|
91
|
+
- **2–4 sentences** covering what is changing (or what is broken), who notices, and why it matters. On a Bug or Hot Fix, say what people see go wrong, who is affected, and what "fixed" looks like to them.
|
|
92
|
+
- **No technical vocabulary.** That means no code identifiers, file, field, or endpoint names, framework or database names, status codes, or unexplained acronyms. Name things the way a user sees them: the screen, the button, the report, the email. Write "The **Export** button on the Payments page shows an error instead of downloading the file," not "`GET /api/payments/export` returns 500."
|
|
93
|
+
- **No code spans.** If a sentence seems to need one, rewrite the sentence. Bold the one key outcome if it helps; the rest is plain prose.
|
|
94
|
+
- **Not a copy of the Technical Details.** The Summary is what a PM could repeat in a meeting. The sections below it carry the detail the team needs.
|
|
95
|
+
|
|
96
|
+
Check it before showing the draft: could a PM understand every word without asking a developer? If not, rewrite it.
|
|
97
|
+
|
|
98
|
+
### Technical Details — everything below the Summary
|
|
99
|
+
|
|
100
|
+
The **Technical Details** section replaces a plain-language description. It and the sections after it (acceptance criteria, repro steps, prior art) are written for the developer and for Claude Code running `/implement`. Use the real vocabulary:
|
|
101
|
+
|
|
102
|
+
- **Ground it in the code.** Start from what Step 2's codebase search found, then read enough of the relevant code to name what changes. Use real file paths, components, classes, services, endpoints and routes, collections or tables, fields, enums, and config keys, all in code spans. Never invent a path or a name. If you couldn't confirm something, mark it **(unverified)**.
|
|
103
|
+
- **Say what changes and where, layer by layer.** Cover the UI (screens, components, routes), the API (endpoints, request and response shape, validation), services and business rules, data (new or changed fields, indexes, migrations or backfills), permissions and roles, and integrations or background jobs. Skip a layer the work doesn't touch.
|
|
104
|
+
- **Name the rules and constraints.** Include business rules, edge cases, error handling, backward compatibility, and performance or security concerns, plus anything the implementer must not break.
|
|
105
|
+
- **It is not the implementation plan.** Name what changes, where, and under which rules. Leave step-by-step code to `/implement`, which plans from this section.
|
|
106
|
+
- **No working codebase in the session?** Then say **"Not verified against the code"** at the top of the section and write only what the user told you. Never fill the gap with guessed paths.
|
|
107
|
+
- **Sensitive data policy applies.** Never put a PII value or a credential in a work item. Refer to a sensitive field by its purpose ("the tax ID field").
|
|
81
108
|
|
|
82
109
|
### For a Feature:
|
|
83
110
|
|
|
@@ -86,9 +113,14 @@ Translate the user's free-form requirements into a structured work item draft. T
|
|
|
86
113
|
|
|
87
114
|
**Type:** Feature
|
|
88
115
|
|
|
89
|
-
###
|
|
90
|
-
{2–4 sentences
|
|
91
|
-
|
|
116
|
+
### Summary
|
|
117
|
+
{2–4 plain-English sentences for a non-technical reader — see "The Summary" above.}
|
|
118
|
+
|
|
119
|
+
### Technical Details
|
|
120
|
+
{The feature-level technical shape. Cover the architecture or approach, the layers and
|
|
121
|
+
existing components it touches (real paths), data-model changes, integrations, and the
|
|
122
|
+
shared foundation the child stories build on. Note any sequencing constraint: what must
|
|
123
|
+
land first sets `Custom.Order` in Step 9. Leave per-story detail to the stories.}
|
|
92
124
|
|
|
93
125
|
### Business Value
|
|
94
126
|
{Why this is worth building — the problem it removes or the opportunity it opens.}
|
|
@@ -123,9 +155,15 @@ A Feature carries **no story points** and **never moves to `Dev Ready`** — siz
|
|
|
123
155
|
|
|
124
156
|
**Type:** User Story
|
|
125
157
|
|
|
126
|
-
###
|
|
127
|
-
{2–4 sentences
|
|
128
|
-
|
|
158
|
+
### Summary
|
|
159
|
+
{2–4 plain-English sentences for a non-technical reader — see "The Summary" above.}
|
|
160
|
+
|
|
161
|
+
### Technical Details
|
|
162
|
+
{What changes and where, layer by layer: the UI components and routes, API endpoints
|
|
163
|
+
(with request/response shape and validation), services and business rules, data fields
|
|
164
|
+
and migrations, and permissions. Use real paths and names from the code. Include the
|
|
165
|
+
rules, edge cases, and constraints the implementer must respect. This is what
|
|
166
|
+
`/implement` plans from, and it never moves to the Task.}
|
|
129
167
|
|
|
130
168
|
### Acceptance Criteria
|
|
131
169
|
1. {Given/When/Then or numbered behavior — must be testable}
|
|
@@ -153,8 +191,15 @@ business or user value. Avoid implementation detail — that lives in tasks.}
|
|
|
153
191
|
**Priority:** {1 | 2 | 3 | 4}
|
|
154
192
|
**Severity:** {1 - Critical | 2 - High | 3 - Medium | 4 - Low}
|
|
155
193
|
|
|
156
|
-
###
|
|
157
|
-
{
|
|
194
|
+
### Summary
|
|
195
|
+
{2–4 plain-English sentences for a non-technical reader — see "The Summary" above.}
|
|
196
|
+
|
|
197
|
+
### Technical Details
|
|
198
|
+
{The failing code path: the screen or component, the endpoint and the request that
|
|
199
|
+
fails, and the exact error message, status, log line, or stack trace if known. Name
|
|
200
|
+
the likely root cause and where it lives (real file and method), marked
|
|
201
|
+
**(suspected)** unless you confirmed it in the code. Include the data condition that
|
|
202
|
+
triggers it.}
|
|
158
203
|
|
|
159
204
|
### Steps to Reproduce
|
|
160
205
|
1. ...
|
|
@@ -187,7 +232,7 @@ business or user value. Avoid implementation detail — that lives in tasks.}
|
|
|
187
232
|
A Hot Fix uses the same draft shape as a Bug. Two differences:
|
|
188
233
|
|
|
189
234
|
- **Severity and Priority are constrained.** A Hot Fix is by definition urgent — propose Priority `1` (or `2` at the loosest) and Severity `1 - Critical` or `2 - High`. If the requirements don't support that, the item is probably a Bug; say so before drafting.
|
|
190
|
-
- **Add a `### Production Impact` section** naming what is broken right now, which environment, and roughly who is affected.
|
|
235
|
+
- **Add a `### Production Impact` section** naming what is broken right now, which environment, and roughly who is affected. On an out-of-band change, this is the section the reviewer reads right after the Summary.
|
|
191
236
|
|
|
192
237
|
**Inferring Priority and Severity for Bugs and Hot Fixes:**
|
|
193
238
|
|
|
@@ -307,6 +352,7 @@ Before creating anything in Azure DevOps, present a final summary and ask for on
|
|
|
307
352
|
**Title:** {Prefix} - {title}
|
|
308
353
|
**Type:** {Feature | Bug | User Story | Hot Fix}
|
|
309
354
|
**Project:** {project}
|
|
355
|
+
**Summary:** {the plain-English Summary, in full}
|
|
310
356
|
{for Bugs and Hot Fixes:}
|
|
311
357
|
**Priority:** {n}
|
|
312
358
|
**Severity:** {n - Label}
|
|
@@ -328,7 +374,7 @@ Create this work item now? (yes / edit / cancel)
|
|
|
328
374
|
|
|
329
375
|
**Wait for the user.**
|
|
330
376
|
- `yes` → proceed to Step 8
|
|
331
|
-
- `edit` → ask which field to revise (title,
|
|
377
|
+
- `edit` → ask which field to revise (title, summary, technical details, AC, priority, severity, story points, project, mockup), revise it, then re-show this summary
|
|
332
378
|
- `cancel` → abort with no work item created and confirm "Cancelled — no work item created."
|
|
333
379
|
|
|
334
380
|
## Step 8: Render to HTML and Create
|
|
@@ -360,7 +406,7 @@ A description that is one long paragraph of plain prose is not acceptable — ev
|
|
|
360
406
|
- **Lists** are used instead of comma-separated prose whenever the draft contains 2+ parallel items (steps, files, references, acceptance criteria).
|
|
361
407
|
- **Section headings** *inside a field's own content* are kept — they become `<h3>` and structure the rendered output. The draft's **top-level** section headings are different: they are routing labels, not content, and the heading is dropped when its section becomes its own field (see below).
|
|
362
408
|
|
|
363
|
-
Apply this pass to every section (
|
|
409
|
+
Apply this pass to every section (Technical Details, Acceptance Criteria, Steps to Reproduce, Expected/Actual Behavior, Environment/Scope, Open Questions). Apply it equally to Bugs, Hot Fixes, and User Stories. **The Summary is the exception:** it gets no code spans and no identifiers (Step 3), only an optional bolded outcome.
|
|
364
410
|
|
|
365
411
|
### Split the draft into fields — acceptance criteria never go in the description
|
|
366
412
|
|
|
@@ -374,14 +420,15 @@ Verify with `mcp__azure-devops__wit_work_item` (`action: get_type`) rather than
|
|
|
374
420
|
|
|
375
421
|
| Draft section | Goes to |
|
|
376
422
|
|---|---|
|
|
377
|
-
| `###
|
|
423
|
+
| `### Summary` | `System.Description` — the **first** block, under its own `<h3>Summary</h3>` |
|
|
424
|
+
| `### Technical Details` | `System.Description`, after the Summary, followed by the mockup `<img>`, user-supplied images, `Out of Scope`, `Prior Art`, and `Open Questions` |
|
|
378
425
|
| `### Acceptance Criteria` | `Microsoft.VSTS.Common.AcceptanceCriteria` — **never** also in the description |
|
|
379
426
|
|
|
380
427
|
**Bug** — its form renders only **Repro Steps** and **System Info**. It has **no Acceptance Criteria field**, and `System.Description` has **no control on the Bug form**, so anything routed there is invisible to a human reader:
|
|
381
428
|
|
|
382
429
|
| Draft section | Goes to |
|
|
383
430
|
|---|---|
|
|
384
|
-
| `###
|
|
431
|
+
| `### Summary`, `### Technical Details`, `### Steps to Reproduce`, `### Expected Behavior`, `### Actual Behavior`, `### Acceptance Criteria`, `### Prior Art`, `### Open Questions` | `Microsoft.VSTS.TCM.ReproSteps` — composed into one document, each under its own `<h3>`, in that order |
|
|
385
432
|
| `### Environment / Scope` | `Microsoft.VSTS.TCM.SystemInfo` |
|
|
386
433
|
| (the same composed body) | `System.Description` — a labelled **duplicate**, for tools that read it without checking the type. Never unique content. |
|
|
387
434
|
|
|
@@ -391,9 +438,13 @@ Do **not** send `Microsoft.VSTS.Common.AcceptanceCriteria` on a Bug. Still *writ
|
|
|
391
438
|
|
|
392
439
|
| Draft section | Goes to |
|
|
393
440
|
|---|---|
|
|
394
|
-
| `###
|
|
441
|
+
| `### Summary`, `### Production Impact`, `### Technical Details`, `### Prior Art`, `### Open Questions` | `System.Description`, in that order |
|
|
395
442
|
| `### Steps to Reproduce`, `### Expected Behavior`, `### Actual Behavior`, `### Environment / Scope` | `Microsoft.VSTS.TCM.ReproSteps` |
|
|
396
443
|
|
|
444
|
+
**Feature** — everything renders into `System.Description`, with `### Summary` first (see the Features bullet under *Call the create API*).
|
|
445
|
+
|
|
446
|
+
**The Summary always leads** the field the form displays and keeps its `<h3>Summary</h3>` heading, because it shares that field with other sections. It is never omitted.
|
|
447
|
+
|
|
397
448
|
**Omit an empty section entirely** — never emit a bare `<h3>` with nothing under it. A heading with no body reads as content that went missing.
|
|
398
449
|
|
|
399
450
|
**The rendered `System.Description` must not contain an "Acceptance Criteria" heading or its criteria** — not as `<h3>`, not as `<strong>`, not as a bolded line, not "for readability", not "so it reads as a complete document". Azure DevOps renders the AC field as its own section on the work item form, so a copy in the description gives the reader two lists that drift apart while leaving the real field empty. It also breaks estimation: an empty AC field is exactly what `/quote`, `/quote-backlog`, and `/plan-backlog` read to decide an item can't be sized, so criteria in the wrong field make a fully-specified story look unestimable and bounce it back to its creator.
|
|
@@ -416,17 +467,17 @@ Call `mcp__azure-devops__wit_work_item_write` (action `create`) with:
|
|
|
416
467
|
- `Microsoft.VSTS.Common.AcceptanceCriteria` — **User Story only.** The rendered criteria list and **only** the criteria (no `<h3>Acceptance Criteria</h3>` wrapper, and no copy of it in `System.Description`); writing it is what clears the process template's placeholder tip. **Do not send this field on a Bug or a Hot Fix** — neither type has it
|
|
417
468
|
- `Microsoft.VSTS.Scheduling.StoryPoints` — the points agreed in Step 4 (omit entirely if the user skipped, and **always** for a Feature)
|
|
418
469
|
- For Features:
|
|
419
|
-
- Render `Business Value`, `Scope`, `Out of Scope`, and `Success Criteria
|
|
470
|
+
- Render `Summary` first, then `Technical Details`, `Business Value`, `Scope`, `Out of Scope`, and `Success Criteria`, into the description. Put `Success Criteria` in `Microsoft.VSTS.Common.AcceptanceCriteria` **only if** the process template exposes that field on Feature — if the create call rejects it, fold the block into the description and retry rather than dropping it.
|
|
420
471
|
- `Microsoft.VSTS.Common.BusinessValue` — only if the user supplied a number. Never invent one.
|
|
421
472
|
- Omit `Microsoft.VSTS.Scheduling.StoryPoints` entirely.
|
|
422
473
|
- For Bugs:
|
|
423
|
-
- `Microsoft.VSTS.TCM.ReproSteps` — the **whole composed body**:
|
|
474
|
+
- `Microsoft.VSTS.TCM.ReproSteps` — the **whole composed body**: summary, technical details, steps, expected behavior, actual behavior, acceptance criteria and open questions, each under its own `<h3>`. This is the Bug's field of record; its form shows no Description control.
|
|
424
475
|
- `Microsoft.VSTS.TCM.SystemInfo` — the `Environment / Scope` section. Omit the field entirely when there is no environment to record, rather than writing an empty value that leaves a blank box on the form.
|
|
425
476
|
- `Microsoft.VSTS.Common.Priority` — the chosen Priority (1–4)
|
|
426
477
|
- `Microsoft.VSTS.Common.Severity` — the chosen Severity (`1 - Critical`, `2 - High`, `3 - Medium`, `4 - Low`)
|
|
427
478
|
- For Hot Fixes:
|
|
428
479
|
- `Microsoft.VSTS.TCM.ReproSteps` — steps, expected behavior, actual behavior and `Environment / Scope` (this type has no System Info field). If the `Hot Fix` type in this process template doesn't expose `ReproSteps`, fold them into `System.Description` rather than dropping them.
|
|
429
|
-
- Render the `Production Impact` section into `System.Description` as an `<h3>` block
|
|
480
|
+
- Render the `Production Impact` section into `System.Description` as an `<h3>` block between the Summary and the Technical Details.
|
|
430
481
|
- No Priority/Severity — a Hot Fix is urgent by definition.
|
|
431
482
|
|
|
432
483
|
If the `Open Questions` section is non-empty, append it as a clearly-labeled HTML block (`<h3>Open Questions</h3><ul>...</ul>`) **to the field that work item type displays** — the composed `ReproSteps` body on a **Bug**, `System.Description` on a **User Story**, **Hot Fix**, or **Feature**. Putting it in the description of a Bug hides it from every reader.
|
|
@@ -451,7 +502,7 @@ Draft child user stories for this feature now? (yes / no — I'll add them later
|
|
|
451
502
|
|
|
452
503
|
On `yes`:
|
|
453
504
|
|
|
454
|
-
1. Turn each bullet from the Feature's **Scope** section into a candidate User Story using the User Story draft shape from Step 3
|
|
505
|
+
1. Turn each bullet from the Feature's **Scope** section into a candidate User Story using the User Story draft shape from Step 3: its own plain-English Summary, Technical Details specific to that story (drawn from the Feature's Technical Details and the code), and testable acceptance criteria. Keep each one independently shippable; if a bullet is really two stories, split it.
|
|
455
506
|
2. Assign each story a **`Custom.Order`** value. Stories that can be built in parallel share the same number; a story that depends on an earlier one gets a higher number. Start at `1` and increment per wave. This field drives the wave ordering in `/implement` — a story with no value lands in a catch-all wave, so set it on every story.
|
|
456
507
|
3. Propose story points for each using the Step 4 rubric.
|
|
457
508
|
4. Present the whole set for approval at once:
|
|
@@ -459,13 +510,15 @@ On `yes`:
|
|
|
459
510
|
| # | Order | Proposed Title | Points | Summary |
|
|
460
511
|
|---|-------|----------------|--------|---------|
|
|
461
512
|
|
|
513
|
+
The Summary column is the story's plain-English Summary, the same text that will open its description.
|
|
514
|
+
|
|
462
515
|
```
|
|
463
516
|
Approve these child stories? (yes / change N / drop N / cancel)
|
|
464
517
|
```
|
|
465
518
|
|
|
466
519
|
**Wait for the user.** Revise and re-present until approved. Do not create anything before approval.
|
|
467
520
|
5. On approval, create each story with `mcp__azure-devops__wit_work_item_write` (action `create`) in the same project, setting:
|
|
468
|
-
- `System.Description` and `Microsoft.VSTS.Common.AcceptanceCriteria` — rendered to HTML per the Step 8 rules
|
|
521
|
+
- `System.Description` and `Microsoft.VSTS.Common.AcceptanceCriteria` — rendered to HTML per the Step 8 rules, Summary first
|
|
469
522
|
- `Custom.Order` — the wave number
|
|
470
523
|
- `Microsoft.VSTS.Scheduling.StoryPoints` — the agreed points
|
|
471
524
|
- `System.AssignedTo` — copied from the Feature if the Feature has an assignee; otherwise leave unset
|
|
@@ -491,6 +544,8 @@ For a **Bug**, fetch `Microsoft.VSTS.TCM.ReproSteps` and `Microsoft.VSTS.TCM.Sys
|
|
|
491
544
|
|
|
492
545
|
For a **Hot Fix**, fetch `System.Description` and `Microsoft.VSTS.TCM.ReproSteps`, and confirm the narrative is in the former and the reproduction detail in the latter.
|
|
493
546
|
|
|
547
|
+
On **every** type, the displayed field (`System.Description`, or `ReproSteps` on a Bug) opens with the `<h3>Summary</h3>` block, and that block contains no `<code>`. A `Technical Details` block follows it. Check each child story created in Step 9 too.
|
|
548
|
+
|
|
494
549
|
If a check fails the write didn't take — fix it with `wit_work_item_write` (action `update`) before reporting success. Don't report a created item you haven't read back.
|
|
495
550
|
|
|
496
551
|
After creation, report:
|
|
@@ -118,6 +118,7 @@ Produce a **field-level diff**, not a rewritten item. For every field you propos
|
|
|
118
118
|
Rules for the draft:
|
|
119
119
|
|
|
120
120
|
- **Preserve, don't regenerate.** Keep existing wording that the change request doesn't touch. Never drop existing `<img>` tags, attachment URLs, or reference links.
|
|
121
|
+
- **Keep both halves true.** Every item has two readers (rules in `/create-work-item` Step 3). The PM reads the plain-English **Summary** at the top. The developer and Claude Code read the **Technical Details** below it, grounded in real paths and names from the code. If the change moves what the item does, revise both in this change set: the Summary in plain English, and the Technical Details against the code. If the item lacks either one, propose it here. Either way it shows in the diff like any other field change.
|
|
121
122
|
- **Points follow the `/quote` rubric** — modified Fibonacci (`1, 2, 3, 5, 8, 13, 21`), calibrated for a senior developer working with Claude assistance. Only propose a change if the scope actually moved. If the revised item now looks bigger than 21 points, recommend splitting it into a Feature instead of writing the number.
|
|
122
123
|
- **Prior art moves the number too, and it can move it *down*.** Added scope normally raises points, but scope that turns out to be a second or third consumer of something already built often costs less than the first one did — sometimes less than the raise it would otherwise earn. If the Step 3 search found precedent, say so in the points rationale rather than pricing the addition as new work.
|
|
123
124
|
- **Never point a Feature** and never change a Feature's `System.State`.
|
|
@@ -211,7 +212,7 @@ Default the comment question to **yes** for any item past `New`, and **no** for
|
|
|
211
212
|
|
|
212
213
|
## Step 7: Apply
|
|
213
214
|
|
|
214
|
-
Render every Markdown section to HTML first — Azure DevOps description and acceptance criteria fields do not render Markdown. Use the conversion table and the **emphasis and code spans** rules from `/create-work-item` Step 8: bold the noun phrase carrying each claim, wrap identifiers in `<code
|
|
215
|
+
Render every Markdown section to HTML first — Azure DevOps description and acceptance criteria fields do not render Markdown. Use the conversion table and the **emphasis and code spans** rules from `/create-work-item` Step 8: bold the noun phrase carrying each claim, wrap identifiers in `<code>` (never in the Summary, which has none), use lists for 2+ parallel items, keep `### Headings` as `<h3>`. The Summary stays the first block of the field the form displays. Preserve existing `<img>` tags exactly.
|
|
215
216
|
|
|
216
217
|
**Route each section to its own field, per work item type** — use the routing tables in `/create-work-item` Step 8. Editing is the moment routing gets silently undone: it is easy to render the whole reviewed document into the description and leave the real fields as they were. And a wrong field does not announce itself — **Azure DevOps accepts a write to a field a type does not carry**, so the value persists, reads back over the API, and renders nowhere.
|
|
217
218
|
|
|
@@ -358,7 +358,7 @@ If the user provided hours (suggested or overridden):
|
|
|
358
358
|
|
|
359
359
|
```html
|
|
360
360
|
<h3>Summary</h3>
|
|
361
|
-
<p>{1–2 sentences
|
|
361
|
+
<p>{1–2 plain-English sentences a PM could follow: what the tester found and what will change, named the way a user sees it. No code identifiers (those go under Fix). Bold the key outcome with <strong>...</strong>.}</p>
|
|
362
362
|
<h3>Fix</h3>
|
|
363
363
|
<ul>
|
|
364
364
|
<li>{What changes. Wrap code identifiers, method names, fields, file paths, and literal values in <code>...</code>.}</li>
|
|
@@ -370,7 +370,7 @@ If the user provided hours (suggested or overridden):
|
|
|
370
370
|
</ul>
|
|
371
371
|
```
|
|
372
372
|
|
|
373
|
-
|
|
373
|
+
In Fix and Reference, render any code identifiers (method names, fields, file paths, hashes, literal values) inside `<code>` spans, and emphasize the key claim/value in each sentence with `<strong>`. Do not submit a wall of plain prose — every rework task must have at least the `Summary` and `Fix` sections in this shape.
|
|
374
374
|
- `Microsoft.VSTS.Scheduling.OriginalEstimate` — the agreed hours
|
|
375
375
|
- `Microsoft.VSTS.Scheduling.RemainingWork` — the agreed hours
|
|
376
376
|
- `System.AreaPath` — same as the parent
|
|
@@ -114,6 +114,13 @@ Claude maintains persistent memory across sessions in `~/.claude/projects/.../me
|
|
|
114
114
|
|
|
115
115
|
Every Feature, User Story, Bug, or Hot Fix Claude creates goes through `/create-work-item`, whether or not the user typed the command. "Log a bug that the export 500s", "make a story for bulk assign", "open a ticket for this" all mean: invoke `create-work-item` with the Skill tool, passing the request text as the arguments. Never create one with a direct `wit_work_item_write` call. That skips the prior-art and duplicate checks, the title prefix, the AC field, the proposed points, and the user's approval of the draft. The `work-item-intent.sh` hook adds a reminder to any prompt that reads like a creation request.
|
|
116
116
|
|
|
117
|
+
**Every work item serves two readers.**
|
|
118
|
+
|
|
119
|
+
- **The PM reads the Summary.** It is the first section: 2–4 plain-English sentences on what is changing or broken, who notices, and why it matters. It names screens and buttons the way users see them, with no code identifiers, endpoints, field names, or jargon.
|
|
120
|
+
- **The developer and Claude Code read everything below it.** That starts with **Technical Details**, grounded in the actual codebase: real file paths, components, endpoints, data fields, business rules, and constraints, layer by layer. It must be enough for `/implement` to plan from without rediscovering where the change lives. Nothing is guessed: an unconfirmed name is marked *(unverified)*, and a session without the code says so.
|
|
121
|
+
|
|
122
|
+
`/create-work-item` writes both on every type, including a Feature's child stories. `/edit-work-item` keeps both current and proposes either one when it's missing.
|
|
123
|
+
|
|
117
124
|
This includes items Claude decides to raise itself, such as a defect found mid-task or out-of-scope work. Propose it, and if the user agrees, run `/create-work-item` with what you found.
|
|
118
125
|
|
|
119
126
|
Work items a command creates as one of its own steps keep that command's flow: child Tasks from `/implement`, `/rework`, `/plan-backlog`, and `/plan-sprint`, and child stories from `/create-work-item` and `/edit-work-item`. A new Bug or Story requested in the middle of one of those commands still goes through `/create-work-item`.
|
|
@@ -374,7 +381,7 @@ All deployment and release operations are available as slash commands:
|
|
|
374
381
|
| `/plan-sprint` | `/plan-sprint [project]` | Sweep the current sprint for stories/bugs with no child tasks → propose one child task with hours per item |
|
|
375
382
|
| `/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). 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 |
|
|
376
383
|
| `/quote` | `/quote AB#1234` | Estimate story points for one work item; on approval, sets the points 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`** |
|
|
377
|
-
| `/create-work-item` | `/create-work-item [description]` | Interactively draft and create a Feature, Bug, User Story, or Hot Fix — proposes story points (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 |
|
|
384
|
+
| `/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 (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 |
|
|
378
385
|
| `/edit-work-item` | `/edit-work-item AB#1234 [what to change]` | Revise an existing work item field-by-field. On a Feature, cascades the change into its child stories — updates, adds, retires, and re-sequences `Custom.Order` waves — with a safety gate on anything already past Dev Ready |
|
|
379
386
|
| `/cleanup-branches` | `/cleanup-branches` | Delete merged branches |
|
|
380
387
|
| `/close-orphan-tasks` | `/close-orphan-tasks [scope] [--dry-run]` | Close open Tasks whose parent is Ready to Deploy / Deployed / Closed |
|