bigpowers 2.30.0 → 2.31.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.
- package/.pi/package.json +1 -1
- package/.pi/prompts/migrate-spec.md +73 -32
- package/.pi/skills/migrate-spec/SKILL.md +73 -32
- package/CHANGELOG.md +7 -0
- package/COMMIT-MESSAGE.md +34 -0
- package/SKILL-INDEX.md +1 -1
- package/migrate-spec/REFERENCE.md +45 -23
- package/migrate-spec/SKILL.md +30 -11
- package/package.json +1 -1
- package/skills-lock.json +1 -1
package/.pi/package.json
CHANGED
|
@@ -126,19 +126,38 @@ See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirement
|
|
|
126
126
|
|
|
127
127
|
### Step 4 — Generate state.yaml
|
|
128
128
|
|
|
129
|
-
Always regenerate `specs/state.yaml` from scratch in bigpowers format (see REFERENCE.md for template):
|
|
129
|
+
Always regenerate `specs/state.yaml` from scratch in bigpowers YAML format (see REFERENCE.md for template). The **handoff block is mandatory** and must include all four fields:
|
|
130
130
|
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
131
|
+
```yaml
|
|
132
|
+
active_flow: null
|
|
133
|
+
active_epic_id: null
|
|
134
|
+
active_story_id: null
|
|
135
|
+
|
|
136
|
+
# ... other state fields ...
|
|
137
|
+
|
|
138
|
+
handoff:
|
|
139
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
140
|
+
open_decisions:
|
|
141
|
+
- "decision text here"
|
|
142
|
+
required_reading:
|
|
143
|
+
- specs/product/VISION_LATEST.yaml
|
|
144
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
145
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
146
|
+
- specs/release-plan.yaml
|
|
147
|
+
next_skill: survey-context
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If no open decisions were found during migration, the `open_decisions` list may be empty with an explanatory comment:
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
handoff:
|
|
154
|
+
last_step_completed: "..."
|
|
155
|
+
open_decisions: [] # None — all decisions resolved during migration
|
|
156
|
+
required_reading: [...]
|
|
157
|
+
next_skill: survey-context
|
|
139
158
|
```
|
|
140
159
|
|
|
141
|
-
→ verify: `
|
|
160
|
+
→ verify: `grep -q 'handoff:' specs/state.yaml && grep -q 'last_step_completed' specs/state.yaml && echo "ok" || echo "MISSING or INCOMPLETE: handoff block"`
|
|
142
161
|
|
|
143
162
|
### Step 5 — Surface learnings (optional)
|
|
144
163
|
|
|
@@ -450,7 +469,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
450
469
|
### From GSD
|
|
451
470
|
|
|
452
471
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
453
|
-
- [
|
|
472
|
+
- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)
|
|
454
473
|
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
455
474
|
|
|
456
475
|
### From spec-kit
|
|
@@ -559,27 +578,49 @@ metadata:
|
|
|
559
578
|
|
|
560
579
|
### `specs/state.yaml` template format
|
|
561
580
|
|
|
562
|
-
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format
|
|
563
|
-
|
|
564
|
-
```markdown
|
|
565
|
-
# Session State: <project name>
|
|
566
|
-
|
|
567
|
-
## Current Milestone
|
|
568
|
-
|
|
569
|
-
Migrated from <framework> on <date>. Next: review generated specs and run plan-work.
|
|
570
|
-
|
|
571
|
-
## Git Metadata
|
|
572
|
-
|
|
573
|
-
- **Branch**: <current branch>
|
|
574
|
-
- **Hash**: <git rev-parse HEAD>
|
|
581
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
575
582
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
583
|
+
```yaml
|
|
584
|
+
active_flow: null
|
|
585
|
+
active_epic_id: null
|
|
586
|
+
active_story_id: null
|
|
587
|
+
completed_epic: false
|
|
588
|
+
|
|
589
|
+
epic_cycle:
|
|
590
|
+
current_step: null
|
|
591
|
+
next_skill: null
|
|
592
|
+
story_bcps: null
|
|
593
|
+
completed_steps: []
|
|
594
|
+
audit_result: null
|
|
595
|
+
|
|
596
|
+
bug_cycle:
|
|
597
|
+
current_step: null
|
|
598
|
+
completed_steps: []
|
|
599
|
+
|
|
600
|
+
release:
|
|
601
|
+
target_version: null
|
|
602
|
+
last_tag: null
|
|
603
|
+
last_publish: null
|
|
604
|
+
ci_verified: false
|
|
605
|
+
|
|
606
|
+
metrics:
|
|
607
|
+
story_start: null
|
|
608
|
+
story_end: null
|
|
609
|
+
cycle_minutes: null
|
|
610
|
+
bcp_per_hour: null
|
|
611
|
+
|
|
612
|
+
git:
|
|
613
|
+
branch: <current branch>
|
|
614
|
+
hash: <git rev-parse HEAD>
|
|
615
|
+
pushed: false
|
|
581
616
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
617
|
+
handoff:
|
|
618
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
619
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
620
|
+
required_reading:
|
|
621
|
+
- specs/product/VISION_LATEST.yaml
|
|
622
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
623
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
624
|
+
- specs/release-plan.yaml
|
|
625
|
+
next_skill: survey-context
|
|
585
626
|
```
|
|
@@ -128,19 +128,38 @@ See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirement
|
|
|
128
128
|
|
|
129
129
|
### Step 4 — Generate state.yaml
|
|
130
130
|
|
|
131
|
-
Always regenerate `specs/state.yaml` from scratch in bigpowers format (see REFERENCE.md for template):
|
|
131
|
+
Always regenerate `specs/state.yaml` from scratch in bigpowers YAML format (see REFERENCE.md for template). The **handoff block is mandatory** and must include all four fields:
|
|
132
132
|
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
133
|
+
```yaml
|
|
134
|
+
active_flow: null
|
|
135
|
+
active_epic_id: null
|
|
136
|
+
active_story_id: null
|
|
137
|
+
|
|
138
|
+
# ... other state fields ...
|
|
139
|
+
|
|
140
|
+
handoff:
|
|
141
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
142
|
+
open_decisions:
|
|
143
|
+
- "decision text here"
|
|
144
|
+
required_reading:
|
|
145
|
+
- specs/product/VISION_LATEST.yaml
|
|
146
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
147
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
148
|
+
- specs/release-plan.yaml
|
|
149
|
+
next_skill: survey-context
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
If no open decisions were found during migration, the `open_decisions` list may be empty with an explanatory comment:
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
handoff:
|
|
156
|
+
last_step_completed: "..."
|
|
157
|
+
open_decisions: [] # None — all decisions resolved during migration
|
|
158
|
+
required_reading: [...]
|
|
159
|
+
next_skill: survey-context
|
|
141
160
|
```
|
|
142
161
|
|
|
143
|
-
→ verify: `
|
|
162
|
+
→ verify: `grep -q 'handoff:' specs/state.yaml && grep -q 'last_step_completed' specs/state.yaml && echo "ok" || echo "MISSING or INCOMPLETE: handoff block"`
|
|
144
163
|
|
|
145
164
|
### Step 5 — Surface learnings (optional)
|
|
146
165
|
|
|
@@ -452,7 +471,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
452
471
|
### From GSD
|
|
453
472
|
|
|
454
473
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
455
|
-
- [
|
|
474
|
+
- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)
|
|
456
475
|
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
457
476
|
|
|
458
477
|
### From spec-kit
|
|
@@ -561,27 +580,49 @@ metadata:
|
|
|
561
580
|
|
|
562
581
|
### `specs/state.yaml` template format
|
|
563
582
|
|
|
564
|
-
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format
|
|
565
|
-
|
|
566
|
-
```markdown
|
|
567
|
-
# Session State: <project name>
|
|
568
|
-
|
|
569
|
-
## Current Milestone
|
|
570
|
-
|
|
571
|
-
Migrated from <framework> on <date>. Next: review generated specs and run plan-work.
|
|
572
|
-
|
|
573
|
-
## Git Metadata
|
|
574
|
-
|
|
575
|
-
- **Branch**: <current branch>
|
|
576
|
-
- **Hash**: <git rev-parse HEAD>
|
|
583
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
577
584
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
585
|
+
```yaml
|
|
586
|
+
active_flow: null
|
|
587
|
+
active_epic_id: null
|
|
588
|
+
active_story_id: null
|
|
589
|
+
completed_epic: false
|
|
590
|
+
|
|
591
|
+
epic_cycle:
|
|
592
|
+
current_step: null
|
|
593
|
+
next_skill: null
|
|
594
|
+
story_bcps: null
|
|
595
|
+
completed_steps: []
|
|
596
|
+
audit_result: null
|
|
597
|
+
|
|
598
|
+
bug_cycle:
|
|
599
|
+
current_step: null
|
|
600
|
+
completed_steps: []
|
|
601
|
+
|
|
602
|
+
release:
|
|
603
|
+
target_version: null
|
|
604
|
+
last_tag: null
|
|
605
|
+
last_publish: null
|
|
606
|
+
ci_verified: false
|
|
607
|
+
|
|
608
|
+
metrics:
|
|
609
|
+
story_start: null
|
|
610
|
+
story_end: null
|
|
611
|
+
cycle_minutes: null
|
|
612
|
+
bcp_per_hour: null
|
|
613
|
+
|
|
614
|
+
git:
|
|
615
|
+
branch: <current branch>
|
|
616
|
+
hash: <git rev-parse HEAD>
|
|
617
|
+
pushed: false
|
|
583
618
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
619
|
+
handoff:
|
|
620
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
621
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
622
|
+
required_reading:
|
|
623
|
+
- specs/product/VISION_LATEST.yaml
|
|
624
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
625
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
626
|
+
- specs/release-plan.yaml
|
|
627
|
+
next_skill: survey-context
|
|
587
628
|
```
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.31.0](https://github.com/danielvm-git/bigpowers/compare/v2.30.0...v2.31.0) (2026-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **migrate-spec:** make handoff block mandatory in Step 4 output ([1f05663](https://github.com/danielvm-git/bigpowers/commit/1f0566320356d8de4d3c2775ddebc3b17cf27fe6))
|
|
7
|
+
|
|
1
8
|
# [2.30.0](https://github.com/danielvm-git/bigpowers/compare/v2.29.0...v2.30.0) (2026-06-26)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Proposed Commit Message
|
|
2
|
+
|
|
3
|
+
## Type and Scope
|
|
4
|
+
`feat(migrate-spec)` — Minor version bump
|
|
5
|
+
|
|
6
|
+
## Title
|
|
7
|
+
```
|
|
8
|
+
feat(migrate-spec): make handoff block mandatory in Step 4 output
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Body
|
|
12
|
+
```
|
|
13
|
+
The handoff block (last_step_completed, open_decisions, required_reading,
|
|
14
|
+
next_skill) is now a mandatory part of state.yaml generation, not optional.
|
|
15
|
+
|
|
16
|
+
During real migrations, the handoff block proved immediately useful — the next
|
|
17
|
+
agent reads it first to understand context, decisions, and required reading.
|
|
18
|
+
Promoting it from optional to mandatory ensures every migration output includes
|
|
19
|
+
this metadata.
|
|
20
|
+
|
|
21
|
+
Changes:
|
|
22
|
+
- SKILL.md Step 4: updated to mandate handoff block with YAML format example
|
|
23
|
+
- REFERENCE.md: added complete state.yaml YAML template with handoff structure
|
|
24
|
+
- Learnings table: marked handoff as adopted (from GSD learning set)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Release Impact
|
|
28
|
+
- **Bump Type:** `minor` (X.Y.z)
|
|
29
|
+
- **Rationale:** New mandatory output structure in migrate-spec skill
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
- Documentation-only change (no code changes)
|
|
33
|
+
- All verify commands pass
|
|
34
|
+
- Audit gate: PASS (10/10 items)
|
package/SKILL-INDEX.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> **DO NOT EDIT** — This file is auto-generated by `scripts/generate-skill-index.sh`.
|
|
4
4
|
> Edit `SKILL.md` source files or `skills-lock.json` instead. Run `bash scripts/sync-skills.sh` to regenerate.
|
|
5
5
|
|
|
6
|
-
**Generated:** 2026-06-26T22:
|
|
6
|
+
**Generated:** 2026-06-26T22:57:50Z
|
|
7
7
|
**Skills:** 70
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -133,7 +133,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
133
133
|
### From GSD
|
|
134
134
|
|
|
135
135
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
136
|
-
- [
|
|
136
|
+
- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)
|
|
137
137
|
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
138
138
|
|
|
139
139
|
### From spec-kit
|
|
@@ -242,27 +242,49 @@ metadata:
|
|
|
242
242
|
|
|
243
243
|
### `specs/state.yaml` template format
|
|
244
244
|
|
|
245
|
-
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format
|
|
245
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
246
246
|
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
247
|
+
```yaml
|
|
248
|
+
active_flow: null
|
|
249
|
+
active_epic_id: null
|
|
250
|
+
active_story_id: null
|
|
251
|
+
completed_epic: false
|
|
252
|
+
|
|
253
|
+
epic_cycle:
|
|
254
|
+
current_step: null
|
|
255
|
+
next_skill: null
|
|
256
|
+
story_bcps: null
|
|
257
|
+
completed_steps: []
|
|
258
|
+
audit_result: null
|
|
259
|
+
|
|
260
|
+
bug_cycle:
|
|
261
|
+
current_step: null
|
|
262
|
+
completed_steps: []
|
|
263
|
+
|
|
264
|
+
release:
|
|
265
|
+
target_version: null
|
|
266
|
+
last_tag: null
|
|
267
|
+
last_publish: null
|
|
268
|
+
ci_verified: false
|
|
269
|
+
|
|
270
|
+
metrics:
|
|
271
|
+
story_start: null
|
|
272
|
+
story_end: null
|
|
273
|
+
cycle_minutes: null
|
|
274
|
+
bcp_per_hour: null
|
|
275
|
+
|
|
276
|
+
git:
|
|
277
|
+
branch: <current branch>
|
|
278
|
+
hash: <git rev-parse HEAD>
|
|
279
|
+
pushed: false
|
|
280
|
+
|
|
281
|
+
handoff:
|
|
282
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
283
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
284
|
+
required_reading:
|
|
285
|
+
- specs/product/VISION_LATEST.yaml
|
|
286
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
287
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
288
|
+
- specs/release-plan.yaml
|
|
289
|
+
next_skill: survey-context
|
|
268
290
|
```
|
package/migrate-spec/SKILL.md
CHANGED
|
@@ -129,19 +129,38 @@ See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirement
|
|
|
129
129
|
|
|
130
130
|
### Step 4 — Generate state.yaml
|
|
131
131
|
|
|
132
|
-
Always regenerate `specs/state.yaml` from scratch in bigpowers format (see REFERENCE.md for template):
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
132
|
+
Always regenerate `specs/state.yaml` from scratch in bigpowers YAML format (see REFERENCE.md for template). The **handoff block is mandatory** and must include all four fields:
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
active_flow: null
|
|
136
|
+
active_epic_id: null
|
|
137
|
+
active_story_id: null
|
|
138
|
+
|
|
139
|
+
# ... other state fields ...
|
|
140
|
+
|
|
141
|
+
handoff:
|
|
142
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
143
|
+
open_decisions:
|
|
144
|
+
- "decision text here"
|
|
145
|
+
required_reading:
|
|
146
|
+
- specs/product/VISION_LATEST.yaml
|
|
147
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
148
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
149
|
+
- specs/release-plan.yaml
|
|
150
|
+
next_skill: survey-context
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
If no open decisions were found during migration, the `open_decisions` list may be empty with an explanatory comment:
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
handoff:
|
|
157
|
+
last_step_completed: "..."
|
|
158
|
+
open_decisions: [] # None — all decisions resolved during migration
|
|
159
|
+
required_reading: [...]
|
|
160
|
+
next_skill: survey-context
|
|
142
161
|
```
|
|
143
162
|
|
|
144
|
-
→ verify: `
|
|
163
|
+
→ verify: `grep -q 'handoff:' specs/state.yaml && grep -q 'last_step_completed' specs/state.yaml && echo "ok" || echo "MISSING or INCOMPLETE: handoff block"`
|
|
145
164
|
|
|
146
165
|
### Step 5 — Surface learnings (optional)
|
|
147
166
|
|
package/package.json
CHANGED
package/skills-lock.json
CHANGED
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
},
|
|
164
164
|
"migrate-spec": {
|
|
165
165
|
"description": "Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers YAML layout (state.yaml, release-plan.yaml, epics/, requirements/, plans/, ADRs). Use when migrating foreign spec docs.",
|
|
166
|
-
"sha256": "
|
|
166
|
+
"sha256": "897baa6f0f37ea68",
|
|
167
167
|
"path": "migrate-spec/SKILL.md"
|
|
168
168
|
},
|
|
169
169
|
"model-domain": {
|