@chris1807/claude-kit 2.1.50 → 2.1.51
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.
|
|
3
|
+
"version": "2.1.51",
|
|
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": {
|
|
@@ -330,19 +330,43 @@ Apply this pass to every section (Description, Acceptance Criteria, Steps to Rep
|
|
|
330
330
|
|
|
331
331
|
The Step 3 draft is **one document for the user to read**, not the shape of one field. Before rendering, split it section by section and route each section to its own Azure DevOps field:
|
|
332
332
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
|
333
|
+
**Routing depends on the work item type, and the types do not carry the same fields.** This matters more than it looks: **Azure DevOps accepts a write to a field a type does not have.** The value persists and reads back over the API while no form ever renders it — nothing raises, nothing logs. So a wrong field here is invisible in exactly the way a bug report should never be.
|
|
334
|
+
|
|
335
|
+
Verify with `mcp__azure-devops__wit_work_item` (`action: get_type`) rather than assuming. In the CSI Development process:
|
|
336
|
+
|
|
337
|
+
**User Story** — Description and Acceptance Criteria, as you would expect:
|
|
338
|
+
|
|
339
|
+
| Draft section | Goes to |
|
|
340
|
+
|---|---|
|
|
341
|
+
| `### Description` | `System.Description` — plus the mockup `<img>`, user-supplied images, `Out of Scope`, `Open Questions` |
|
|
342
|
+
| `### Acceptance Criteria` | `Microsoft.VSTS.Common.AcceptanceCriteria` — **never** also in the description |
|
|
343
|
+
|
|
344
|
+
**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:
|
|
345
|
+
|
|
346
|
+
| Draft section | Goes to |
|
|
347
|
+
|---|---|
|
|
348
|
+
| `### Description`, `### Steps to Reproduce`, `### Expected Behavior`, `### Actual Behavior`, `### Acceptance Criteria`, `### Open Questions` | `Microsoft.VSTS.TCM.ReproSteps` — composed into one document, each under its own `<h3>`, in that order |
|
|
349
|
+
| `### Environment / Scope` | `Microsoft.VSTS.TCM.SystemInfo` |
|
|
350
|
+
| (the same composed body) | `System.Description` — a labelled **duplicate**, for tools that read it without checking the type. Never unique content. |
|
|
351
|
+
|
|
352
|
+
Do **not** send `Microsoft.VSTS.Common.AcceptanceCriteria` on a Bug. Still *write* acceptance criteria — they go into the composed body, so the item is still estimable — just not into a field the type does not have.
|
|
353
|
+
|
|
354
|
+
**Hot Fix** — its form renders **Description** and **Repro Steps**. It has neither an Acceptance Criteria field nor a System Info field:
|
|
355
|
+
|
|
356
|
+
| Draft section | Goes to |
|
|
357
|
+
|---|---|
|
|
358
|
+
| `### Description`, `### Production Impact`, `### Open Questions` | `System.Description` |
|
|
359
|
+
| `### Steps to Reproduce`, `### Expected Behavior`, `### Actual Behavior`, `### Environment / Scope` | `Microsoft.VSTS.TCM.ReproSteps` |
|
|
360
|
+
|
|
361
|
+
**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.
|
|
340
362
|
|
|
341
363
|
**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.
|
|
342
364
|
|
|
343
365
|
**Drop the section's own heading when it becomes a field.** `Microsoft.VSTS.Common.AcceptanceCriteria` holds the criteria list alone — an `<ol>` or `<ul>`, not `<h3>Acceptance Criteria</h3>` followed by the list. Same for `ReproSteps`. The field label is already on the form.
|
|
344
366
|
|
|
345
|
-
**
|
|
367
|
+
**On a type that HAS the AC field, always write it explicitly — never leave the placeholder.** Some process templates seed a new item's `Microsoft.VSTS.Common.AcceptanceCriteria` with tip text like `💡 Tip: Add "@serena rewrite" to Description for AI suggestions Define acceptance criteria: - [ ] - [ ] - [ ]`. That is a **placeholder, not content**, and it reads as non-empty to every downstream sweep — an item carrying it looks like it has acceptance criteria when it has none. Writing the field is what clears the placeholder.
|
|
368
|
+
|
|
369
|
+
This applies to **User Story**. It does **not** apply to Bug or Hot Fix: neither type carries the field, so there is no placeholder to clear and the write would go into a hole. For those two, the criteria live in `ReproSteps` per the routing above — which is also what `/quote` and `/quote-backlog` read to decide a bug is estimable.
|
|
346
370
|
|
|
347
371
|
### Call the create API
|
|
348
372
|
|
|
@@ -352,20 +376,24 @@ Call `mcp__azure-devops__wit_create_work_item` with:
|
|
|
352
376
|
- **workItemType**: `Feature`, `Bug`, `User Story`, or `Hot Fix` (two words, exact casing)
|
|
353
377
|
- **title**: the approved title (with prefix)
|
|
354
378
|
- **fields**: a JSON Patch document setting:
|
|
355
|
-
- `System.Description` — the rendered HTML description (with embedded mockup `<img>` and any user-supplied images)
|
|
356
|
-
- `Microsoft.VSTS.Common.AcceptanceCriteria` —
|
|
379
|
+
- `System.Description` — the rendered HTML description (with embedded mockup `<img>` and any user-supplied images). On a **Bug** this is the labelled duplicate of the composed body, not the description alone
|
|
380
|
+
- `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
|
|
357
381
|
- `Microsoft.VSTS.Scheduling.StoryPoints` — the points agreed in Step 4 (omit entirely if the user skipped, and **always** for a Feature)
|
|
358
382
|
- For Features:
|
|
359
383
|
- Render `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.
|
|
360
384
|
- `Microsoft.VSTS.Common.BusinessValue` — only if the user supplied a number. Never invent one.
|
|
361
385
|
- Omit `Microsoft.VSTS.Scheduling.StoryPoints` entirely.
|
|
362
|
-
- For Bugs
|
|
363
|
-
- `Microsoft.VSTS.TCM.ReproSteps` — the
|
|
364
|
-
-
|
|
386
|
+
- For Bugs:
|
|
387
|
+
- `Microsoft.VSTS.TCM.ReproSteps` — the **whole composed body**: description, 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.
|
|
388
|
+
- `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.
|
|
365
389
|
- `Microsoft.VSTS.Common.Priority` — the chosen Priority (1–4)
|
|
366
390
|
- `Microsoft.VSTS.Common.Severity` — the chosen Severity (`1 - Critical`, `2 - High`, `3 - Medium`, `4 - Low`)
|
|
391
|
+
- For Hot Fixes:
|
|
392
|
+
- `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.
|
|
393
|
+
- Render the `Production Impact` section into `System.Description` as an `<h3>` block above the description body.
|
|
394
|
+
- No Priority/Severity — a Hot Fix is urgent by definition.
|
|
367
395
|
|
|
368
|
-
If the `Open Questions` section is non-empty, append it
|
|
396
|
+
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.
|
|
369
397
|
|
|
370
398
|
### Move to Dev Ready (pointed items only)
|
|
371
399
|
|
|
@@ -412,12 +440,22 @@ If a story fails to create or link, report which ones succeeded and which didn't
|
|
|
412
440
|
|
|
413
441
|
## Step 10: Confirm
|
|
414
442
|
|
|
415
|
-
**Read the item back first
|
|
443
|
+
**Read the item back first**, and check the fields that type actually renders — a write to a field the type lacks *succeeds*, so reading back the wrong field proves nothing.
|
|
444
|
+
|
|
445
|
+
For a **User Story**, fetch `System.Description` and `Microsoft.VSTS.Common.AcceptanceCriteria`:
|
|
416
446
|
|
|
417
447
|
1. The criteria are in `Microsoft.VSTS.Common.AcceptanceCriteria` — not the placeholder tip, not empty.
|
|
418
448
|
2. `System.Description` contains no "Acceptance Criteria" heading and none of the criteria.
|
|
419
449
|
|
|
420
|
-
|
|
450
|
+
For a **Bug**, fetch `Microsoft.VSTS.TCM.ReproSteps` and `Microsoft.VSTS.TCM.SystemInfo`:
|
|
451
|
+
|
|
452
|
+
1. `ReproSteps` carries every section — description, steps, expected, actual, acceptance criteria — each under its own heading.
|
|
453
|
+
2. The environment is in `SystemInfo`.
|
|
454
|
+
3. No section appears **only** in `System.Description`, which the Bug form does not display.
|
|
455
|
+
|
|
456
|
+
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.
|
|
457
|
+
|
|
458
|
+
If a check fails the write didn't take — fix it with `wit_update_work_item` before reporting success. Don't report a created item you haven't read back.
|
|
421
459
|
|
|
422
460
|
After creation, report:
|
|
423
461
|
|
|
@@ -15,6 +15,7 @@ Read the work item with `expand: Relations` so links and children come back. Col
|
|
|
15
15
|
- `System.Description`, `Microsoft.VSTS.Common.AcceptanceCriteria`
|
|
16
16
|
- `Microsoft.VSTS.Scheduling.StoryPoints`, `Custom.Order`
|
|
17
17
|
- For Bugs / Hot Fixes: `Microsoft.VSTS.TCM.ReproSteps`, `Microsoft.VSTS.Common.Priority`, `Microsoft.VSTS.Common.Severity`
|
|
18
|
+
- For Bugs: `Microsoft.VSTS.TCM.SystemInfo` — the Bug form's second rendered field, where the environment belongs
|
|
18
19
|
- Parent, children, and **linked pull requests** (`ArtifactLink` relations)
|
|
19
20
|
- Comments — recent discussion often explains why a field says what it says
|
|
20
21
|
|
|
@@ -200,14 +201,20 @@ Default the comment question to **yes** for any item past `New`, and **no** for
|
|
|
200
201
|
|
|
201
202
|
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>`, use lists for 2+ parallel items, keep `### Headings` as `<h3>`. Preserve existing `<img>` tags exactly.
|
|
202
203
|
|
|
203
|
-
**Route each section to its own field
|
|
204
|
+
**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.
|
|
204
205
|
|
|
205
|
-
**
|
|
206
|
+
**On a User Story:** acceptance criteria go in `Microsoft.VSTS.Common.AcceptanceCriteria`, never in `System.Description`. Write the criteria list alone into that field — no `<h3>Acceptance Criteria</h3>` wrapper — and make sure the description carries no copy of them.
|
|
206
207
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
**On a Bug:** there is no Acceptance Criteria field and no Description control on the form. The whole write-up — description, steps, expected, actual, criteria — belongs in `Microsoft.VSTS.TCM.ReproSteps`, the environment in `Microsoft.VSTS.TCM.SystemInfo`, and `System.Description` holds only a labelled duplicate of the body.
|
|
209
|
+
|
|
210
|
+
**On a Hot Fix:** the narrative stays in `System.Description`; steps, expected, actual and environment go to `Microsoft.VSTS.TCM.ReproSteps`. There is no System Info field on this type.
|
|
211
|
+
|
|
212
|
+
**Repair misfiled content when you find it.** If Step 2 found content in a field its type does not render, fix it as part of this edit even when the user didn't ask — it is the same content, moved to where a reader will actually see it:
|
|
213
|
+
|
|
214
|
+
- **User Story** — criteria living in the description (or an AC field holding only placeholder tip text): write them into `Microsoft.VSTS.Common.AcceptanceCriteria` and strip the heading and list out of `System.Description` in the same call.
|
|
215
|
+
- **Bug** — criteria sitting in `Microsoft.VSTS.Common.AcceptanceCriteria` (a field the type does not have, so nothing displays them) or a description that never appears on the form: fold both into the composed `ReproSteps` body. Leave the phantom AC value where it is rather than patching it — clearing a field the type lacks is one more write into a hole.
|
|
216
|
+
- Say so in the change set and in the Step 8 confirmation: `Acceptance criteria: moved from the AC field → Repro Steps (3 criteria)`. Never move content silently; the user needs to see which field shrank.
|
|
217
|
+
- This is a **move, not a rewrite** — the text is unchanged unless the user separately approved a reword.
|
|
211
218
|
|
|
212
219
|
Apply writes in this order, so a failure partway through leaves the most useful state behind:
|
|
213
220
|
|