@houseofwolvesllc/claude-scrum-skill 1.5.0 → 1.6.0

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.
@@ -9,16 +9,128 @@ Close out a sprint: summarize work, handle incomplete stories, open the release
9
9
 
10
10
  ## Before You Start
11
11
 
12
- 1. Read `../project-scaffold/references/CONVENTIONS.md` for project management standards.
13
- 2. **Terminology:** Always refer to milestones as **"epics"** in all user-facing text, summaries, and conversational output. The word "milestone" should only appear in GitHub API commands and code — never in communication with the user.
14
- 3. Confirm the `gh` CLI is authenticated.
12
+ 1. Read `../shared/references/CONVENTIONS.md` for project management standards.
13
+ 2. Read `../shared/config.json` to determine the scaffolding mode (`scaffolding` key: `"local"`, `"github"`, `"jira"`, or `"trello"`, default: `"local"`). If `"local"`, also read the `paths.backlog` value (default: `.claude-scrum-skill/backlog`).
14
+ 3. Read `../shared/references/PROVIDERS.md` for provider-specific API commands when operating in remote mode.
15
+ 4. **Terminology:** Always refer to milestones as **"epics"** in all user-facing text, summaries, and conversational output. The word "milestone" should only appear in API commands and code — never in communication with the user.
16
+ 5. **If `scaffolding: "github"`:** Confirm the `gh` CLI is authenticated.
17
+ 6. **If `scaffolding: "jira"`:** Verify `JIRA_SITE`, `JIRA_EMAIL`, and `JIRA_API_TOKEN` env vars are set.
18
+ 7. **If `scaffolding: "trello"`:** Verify `TRELLO_API_KEY` and `TRELLO_TOKEN` env vars are set.
19
+ 8. **If `scaffolding: "local"`:** Skip authentication. Sprint data is in local files.
15
20
 
16
21
  ## Input
17
22
 
18
- `$ARGUMENTS` should be the repo identifier and optionally the project number.
19
- If not provided, detect from the current git remote or ask the user.
23
+ **GitHub mode:** `$ARGUMENTS` should be the repo identifier and optionally the project number. If not provided, detect from the current git remote or ask the user.
20
24
 
21
- ## Release Procedure
25
+ **Jira/Trello mode:** `$ARGUMENTS` is ignored. Project key or board ID is read from config.json. Use the provider-specific API commands from PROVIDERS.md to update story status and close sprints — following the same release logic as GitHub mode. PRs are still created via `gh` if the git host is GitHub, otherwise direct git merges (see PROVIDERS.md, PR / Code Review Operations).
26
+
27
+ **Local mode:** `$ARGUMENTS` is ignored. Sprint data is read from the configured backlog path.
28
+
29
+ ---
30
+
31
+ ## Local Release Procedure
32
+
33
+ When `scaffolding: "local"`, release sprints by updating local backlog files
34
+ and performing git operations directly (no PRs, no GitHub issues).
35
+
36
+ ### Local Step 1: Sprint Inventory
37
+
38
+ Find the active sprint and read all its stories:
39
+
40
+ ```bash
41
+ # Find active sprint
42
+ grep -l 'status: active' <backlog-path>/sprints/sprint-*.md
43
+ ```
44
+
45
+ Read each story file referenced in the sprint. Categorize as done,
46
+ in-progress, ready, or blocked based on frontmatter `status`.
47
+
48
+ Also check git branch state:
49
+ ```bash
50
+ git fetch origin
51
+ # Story branches merged into release branch
52
+ git branch -r --merged origin/release/<epic-slug> | grep 'origin/story/'
53
+ # Unmerged story branches
54
+ git branch -r --no-merged origin/release/<epic-slug> | grep 'origin/story/'
55
+ ```
56
+
57
+ ### Local Step 2: Handle Incomplete Stories
58
+
59
+ For stories still open:
60
+
61
+ 1. **In Progress:** Ask the user — merge the story branch now, or roll over?
62
+ 2. **Ready (never started):** Update frontmatter: add `rolled-over` to labels,
63
+ set `sprint: null` (will be picked up by next sprint plan).
64
+ 3. **Blocked:** Update frontmatter: set `sprint: null`, keep `blocked` status.
65
+
66
+ ### Local Step 3: Merge Release Branch to Development
67
+
68
+ In local mode, merge directly instead of opening a PR:
69
+
70
+ ```bash
71
+ # Ensure release branch is up to date
72
+ git checkout release/<epic-slug> && git pull
73
+
74
+ # Merge to development
75
+ git checkout development && git pull
76
+ git merge release/<epic-slug> --no-ff -m "Release: Sprint <N> — <Epic Name>"
77
+ git push origin development
78
+ ```
79
+
80
+ If merge conflicts exist:
81
+ - Attempt automatic resolution
82
+ - If auto-resolution fails, pause and escalate to the user
83
+
84
+ ### Local Step 4: Clean Up Merged Branches
85
+
86
+ Same git operations as GitHub mode — delete merged story and release branches.
87
+
88
+ ### Local Step 5: Update Local State
89
+
90
+ Update the sprint file frontmatter:
91
+ ```yaml
92
+ status: completed
93
+ velocity_actual: <points completed>
94
+ ```
95
+
96
+ Update completed story files:
97
+ ```yaml
98
+ status: done
99
+ ```
100
+
101
+ If all stories in an epic are done, update `_epic.md`:
102
+ ```yaml
103
+ status: closed
104
+ ```
105
+
106
+ ### Local Step 6: Generate Release Report
107
+
108
+ Same format as GitHub mode, but without PR links. Instead report:
109
+
110
+ ```
111
+ ## Sprint <N> Release Complete (Local Mode)
112
+
113
+ **Merge:** release/<epic-slug> → development (direct merge)
114
+ **Commit:** <merge commit SHA>
115
+
116
+ ### Sprint Scorecard
117
+ <same as GitHub mode>
118
+
119
+ ### Epic Progress
120
+ <same as GitHub mode>
121
+
122
+ ### Cleanup
123
+ <same as GitHub mode>
124
+
125
+ ### Next Steps
126
+ 1. Review changes on development branch
127
+ 2. Run `/sprint-plan` to plan Sprint <N+1>
128
+ 3. When ready for production, merge development → main manually
129
+ ```
130
+
131
+ ---
132
+
133
+ ## GitHub Release Procedure
22
134
 
23
135
  ### Step 1: Sprint Inventory
24
136
 
@@ -9,16 +9,70 @@ Generate a comprehensive status report for the active sprint.
9
9
 
10
10
  ## Before You Start
11
11
 
12
- 1. Read `../project-scaffold/references/CONVENTIONS.md` for project management standards.
13
- 2. **Terminology:** Always refer to milestones as **"epics"** in all user-facing text, summaries, and conversational output. The word "milestone" should only appear in GitHub API commands and code — never in communication with the user.
14
- 3. Confirm the `gh` CLI is authenticated.
12
+ 1. Read `../shared/references/CONVENTIONS.md` for project management standards.
13
+ 2. Read `../shared/config.json` to determine the scaffolding mode (`scaffolding` key: `"local"`, `"github"`, `"jira"`, or `"trello"`, default: `"local"`). If `"local"`, also read the `paths.backlog` value (default: `.claude-scrum-skill/backlog`).
14
+ 3. Read `../shared/references/PROVIDERS.md` for provider-specific API commands when operating in remote mode.
15
+ 4. **Terminology:** Always refer to milestones as **"epics"** in all user-facing text, summaries, and conversational output. The word "milestone" should only appear in API commands and code — never in communication with the user.
16
+ 5. **If `scaffolding: "github"`:** Confirm the `gh` CLI is authenticated.
17
+ 6. **If `scaffolding: "jira"`:** Verify `JIRA_SITE`, `JIRA_EMAIL`, and `JIRA_API_TOKEN` env vars are set.
18
+ 7. **If `scaffolding: "trello"`:** Verify `TRELLO_API_KEY` and `TRELLO_TOKEN` env vars are set.
19
+ 8. **If `scaffolding: "local"`:** Skip authentication. Status is read from local files.
15
20
 
16
21
  ## Input
17
22
 
18
- `$ARGUMENTS` should be the repo identifier and optionally the project number.
19
- If not provided, detect from the current git remote or ask the user.
23
+ **GitHub mode:** `$ARGUMENTS` should be the repo identifier and optionally the project number. If not provided, detect from the current git remote or ask the user.
20
24
 
21
- ## Status Report Procedure
25
+ **Jira/Trello mode:** `$ARGUMENTS` is ignored. Project key or board ID is read from config.json. Use the provider-specific API commands from PROVIDERS.md to query story status — following the same reporting logic as GitHub mode.
26
+
27
+ **Local mode:** `$ARGUMENTS` is ignored. Status is read from the configured backlog path.
28
+
29
+ ---
30
+
31
+ ## Local Status Report Procedure
32
+
33
+ When `scaffolding: "local"`, generate the status report from local backlog
34
+ files.
35
+
36
+ ### Local Step 1: Gather Data
37
+
38
+ Find the active sprint:
39
+
40
+ ```bash
41
+ # Find the active sprint file
42
+ grep -l 'status: active' <backlog-path>/sprints/sprint-*.md
43
+ ```
44
+
45
+ Read the active sprint file to get the story list. Then read each referenced
46
+ story file's frontmatter for current status, executor, points, persona,
47
+ and labels.
48
+
49
+ Also check git state for additional signals:
50
+ ```bash
51
+ # Recent commits on release branches
52
+ git log --oneline --since="1 week ago" --all --grep="story/"
53
+
54
+ # Open local branches (proxy for in-progress work)
55
+ git branch --list 'story/*'
56
+ ```
57
+
58
+ ### Local Step 2: Categorize Stories
59
+
60
+ Same categories as GitHub mode — group stories by their frontmatter
61
+ `status` field: `done`, `in-progress`, `ready`, `blocked`, `needs-context`.
62
+
63
+ ### Local Step 3: Generate Report
64
+
65
+ Same report format as GitHub mode. Use story file paths instead of issue
66
+ numbers. For "Release Branch Health", check git branch state directly
67
+ instead of via `gh`.
68
+
69
+ ### Local Step 4: Actionable Recommendations
70
+
71
+ Same as GitHub mode.
72
+
73
+ ---
74
+
75
+ ## GitHub Status Report Procedure
22
76
 
23
77
  ### Step 1: Gather Data
24
78