@chris1807/claude-kit 2.1.4 → 2.1.5

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.4",
3
+ "version": "2.1.5",
4
4
  "description": "Claude Code starter kit — agents, hooks, MCP servers, slash commands, and workflow automation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- Fetch a work item and display it as a formatted quote block. Usage: `/quote <work-item-id>`
1
+ Fetch a work item and estimate the effort in story points. Usage: `/quote <work-item-id>`
2
2
 
3
3
  Parse `$ARGUMENTS` to extract the work item ID. Accept formats like `AB#1234`, `#1234`, or just `1234`.
4
4
 
@@ -8,32 +8,62 @@ Read the work item from Azure DevOps using the project from the current repo's C
8
8
 
9
9
  If the work item is not found, report the error and stop.
10
10
 
11
- ## Step 2: Display the Quote
11
+ Capture: title, type, description, acceptance criteria, attached child items, any existing `Story Points` / `Effort` field value, and any tags that hint at scope (e.g. `spike`, `research`, `infra`).
12
12
 
13
- Format the work item as a quote block:
13
+ ## Step 2: Size the Work
14
+
15
+ Use the **modified Fibonacci scale** for story points: `1, 2, 3, 5, 8, 13, 21`. Anything that feels larger than 21 should be flagged as "needs to be split" rather than given a number.
16
+
17
+ Rough sizing rubric (calibrate against what you can see in the repo, not abstract complexity):
18
+
19
+ | Points | Looks like |
20
+ |--------|-----------|
21
+ | **1** | Trivial change — copy tweak, single config value, one-line fix. No new tests needed. |
22
+ | **2** | Small, well-understood change in one file or one layer. Existing patterns cover it. |
23
+ | **3** | Touches a couple of files / one feature slice. Some new tests. No architectural questions. |
24
+ | **5** | Crosses layers (e.g. API + UI), or introduces a new component/endpoint following existing patterns. Real test coverage needed. |
25
+ | **8** | Multi-area change with meaningful new logic, migrations, or non-trivial edge cases. Some unknowns the implementer will need to resolve. |
26
+ | **13** | Large feature, several moving parts, or significant unknowns. Likely benefits from being split. |
27
+ | **21** | Very large / high uncertainty. Should almost certainly be split into multiple stories. |
28
+
29
+ Adjust upward for: unclear acceptance criteria, missing UX, data migrations, cross-team coordination, security/compliance review, or anything tagged `spike`/`research`.
30
+
31
+ Adjust downward for: pure config changes, mechanical refactors with good test coverage, or work that mirrors an existing implementation.
32
+
33
+ If the item has child items, size each child as well and present the parent's total as the sum (rounded to the nearest Fibonacci number).
34
+
35
+ ## Step 3: Display the Estimate
36
+
37
+ Output a compact estimate — not a quote block. Format:
14
38
 
15
39
  ```
16
- > **AB#{id}: {title}**
17
- > **Type:** {type} | **State:** {state} | **Assigned To:** {assignedTo}
18
- >
19
- > {description text, stripped of HTML tags, truncated to ~500 chars if long}
20
- >
21
- > **Acceptance Criteria:**
22
- > {acceptance criteria, stripped of HTML tags, truncated to ~500 chars if long}
40
+ **AB#{id}: {title}**
41
+ **Estimate:** {points} story points{ confidence: low/medium/high}
42
+
43
+ **Reasoning:**
44
+ - {bullet on scope / files / layers touched}
45
+ - {bullet on unknowns or risk}
46
+ - {bullet on test/doc burden}
47
+
48
+ **Comparable to:** {one-line analogy to a similar past story, or "no obvious comparable in recent work"}
23
49
  ```
24
50
 
25
- - Strip all HTML tags from description and acceptance criteria fields, preserving line breaks as `> ` prefixed lines
26
- - If description or acceptance criteria is empty, omit that section
27
- - If the work item has child items, append:
51
+ If child items were sized, append:
28
52
 
29
53
  ```
30
- >
31
- > **Child Items:** {count}
32
- > | ID | Title | State |
33
- > |----|-------|-------|
34
- > | AB#{id} | {title} | {state} |
54
+ **Child breakdown:**
55
+ | AB# | Title | Points |
56
+ |-----|-------|--------|
57
+ | ... | ... | ... |
58
+ | **Total** | | **{sum}** |
35
59
  ```
36
60
 
37
- - If the work item has tags, include them: `> **Tags:** {comma-separated tags}`
61
+ If an existing `Story Points` value is already set on the work item and your estimate differs, call that out explicitly: `**Existing estimate:** {n} (yours differs — {why})`.
62
+
63
+ If the work looks larger than 21 points, do not assign a number — instead report `**Estimate:** needs to be split` and suggest 2–4 candidate split points based on the acceptance criteria.
64
+
65
+ ## Step 4: Offer to Persist
66
+
67
+ After displaying the estimate, ask the user: *"Want me to set Story Points = {n} on AB#{id}?"*
38
68
 
39
- That's it just display the quote. Do not modify anything.
69
+ Only update the work item if the user explicitly says yes. Do not modify anything otherwise.