bigpowers 2.30.0 → 2.32.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 +150 -33
- package/.pi/skills/migrate-spec/SKILL.md +150 -33
- package/CHANGELOG.md +14 -0
- package/COMMIT-MESSAGE.md +34 -0
- package/SKILL-INDEX.md +1 -1
- package/migrate-spec/REFERENCE.md +85 -24
- package/migrate-spec/SKILL.md +66 -10
- 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
|
|
139
148
|
```
|
|
140
149
|
|
|
141
|
-
|
|
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
|
|
158
|
+
```
|
|
159
|
+
|
|
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
|
|
|
@@ -148,6 +167,43 @@ Use the learnings table from [REFERENCE.md](./REFERENCE.md#learnings-to-adopt).
|
|
|
148
167
|
|
|
149
168
|
→ verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`
|
|
150
169
|
|
|
170
|
+
### Step 6 — Adversarial review (optional)
|
|
171
|
+
|
|
172
|
+
Before the user runs `plan-work`, offer an optional lightweight audit of the migrated artifacts. This catches common migration errors early — incomplete specs, missing verification commands, unresolved decisions.
|
|
173
|
+
|
|
174
|
+
Prompt: "Run adversarial review of migrated artifacts? [yes / skip]"
|
|
175
|
+
|
|
176
|
+
If yes, perform these checks:
|
|
177
|
+
|
|
178
|
+
1. **Scan for incomplete markers** — Find TODO, FIXME, MISSING in specs/
|
|
179
|
+
2. **Verify every epic has `verify:` commands** — Parse all `eNN-*/epic.yaml` files
|
|
180
|
+
3. **Check state.yaml handoff** — Ensure `open_decisions` is documented (even if empty)
|
|
181
|
+
|
|
182
|
+
Collect findings and write to `specs/archive/MIGRATION-AUDIT.md`:
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
# Migration Audit — <project-name> from <framework>
|
|
186
|
+
|
|
187
|
+
**Date:** <ISO 8601 timestamp>
|
|
188
|
+
**Status:** Pass / Fail with findings
|
|
189
|
+
|
|
190
|
+
## Findings
|
|
191
|
+
|
|
192
|
+
### High Priority
|
|
193
|
+
- Artifact: specs/epics/e02-auth-ui/epic.yaml
|
|
194
|
+
Finding: No verify: commands in story tasks
|
|
195
|
+
Recommendation: Add `verify:` to each task before develop-tdd
|
|
196
|
+
|
|
197
|
+
### Information
|
|
198
|
+
- Count of TODO markers: 3 (normal for fresh migration)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
If findings exist, the handoff block should note: "Adversarial review: N findings — see `specs/archive/MIGRATION-AUDIT.md`"
|
|
202
|
+
|
|
203
|
+
If skip is chosen, add to handoff: "Adversarial review: skipped — review manually before plan-work"
|
|
204
|
+
|
|
205
|
+
→ verify: `test -f specs/archive/MIGRATION-AUDIT.md && echo "audit completed" || echo "audit skipped or not performed"`
|
|
206
|
+
|
|
151
207
|
|
|
152
208
|
## Artifact Mapping Summary
|
|
153
209
|
|
|
@@ -450,7 +506,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
450
506
|
### From GSD
|
|
451
507
|
|
|
452
508
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
453
|
-
- [
|
|
509
|
+
- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)
|
|
454
510
|
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
455
511
|
|
|
456
512
|
### From spec-kit
|
|
@@ -463,7 +519,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
463
519
|
|
|
464
520
|
- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)
|
|
465
521
|
- [ ] **`specs/DECISION-LOG.md`** — Lightweight decisions below ADR threshold.
|
|
466
|
-
- [
|
|
522
|
+
- [x] **Adversarial review pass** — Critique epic shard before `develop-tdd`. (adopted: optional Step 6 in migration)
|
|
467
523
|
|
|
468
524
|
---
|
|
469
525
|
|
|
@@ -501,6 +557,45 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
501
557
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
502
558
|
```
|
|
503
559
|
|
|
560
|
+
### MIGRATION-AUDIT.md format
|
|
561
|
+
|
|
562
|
+
Post-migration adversarial review report. Written to `specs/archive/MIGRATION-AUDIT.md` when Step 6 runs:
|
|
563
|
+
|
|
564
|
+
```markdown
|
|
565
|
+
# Migration Audit — <project-name>
|
|
566
|
+
|
|
567
|
+
**Source Framework:** <GSD|spec-kit|BMAD>
|
|
568
|
+
**Date:** <ISO 8601>
|
|
569
|
+
**Status:** <Pass|Findings|Critical>
|
|
570
|
+
|
|
571
|
+
## Summary
|
|
572
|
+
|
|
573
|
+
- TODO markers: N
|
|
574
|
+
- FIXME markers: N
|
|
575
|
+
- MISSING markers: N
|
|
576
|
+
- Epics without verify: N
|
|
577
|
+
|
|
578
|
+
## High Priority Findings
|
|
579
|
+
|
|
580
|
+
- **Artifact:** specs/epics/e02-auth-ui/epic.yaml
|
|
581
|
+
**Issue:** Story e02s01 has no verify: commands in tasks
|
|
582
|
+
**Recommendation:** Add runnable verify command before develop-tdd
|
|
583
|
+
|
|
584
|
+
- **Artifact:** specs/state.yaml
|
|
585
|
+
**Issue:** open_decisions list empty without comment explanation
|
|
586
|
+
**Recommendation:** Add # comment if all decisions were resolved during migration
|
|
587
|
+
|
|
588
|
+
## Information
|
|
589
|
+
|
|
590
|
+
- Artifact specs/epics/e01-auth/epic.yaml contains TODO: "Define Neon Auth client URL injection" (normal for fresh migration)
|
|
591
|
+
|
|
592
|
+
## Next Steps
|
|
593
|
+
|
|
594
|
+
1. Address high-priority findings before plan-work
|
|
595
|
+
2. Run bash scripts/audit-compliance.sh to enforce code quality gates
|
|
596
|
+
3. Begin develop-tdd on highest-WSJF epic
|
|
597
|
+
```
|
|
598
|
+
|
|
504
599
|
### in_scope format with ID tracking
|
|
505
600
|
|
|
506
601
|
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
@@ -559,27 +654,49 @@ metadata:
|
|
|
559
654
|
|
|
560
655
|
### `specs/state.yaml` template format
|
|
561
656
|
|
|
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
|
|
657
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
572
658
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
659
|
+
```yaml
|
|
660
|
+
active_flow: null
|
|
661
|
+
active_epic_id: null
|
|
662
|
+
active_story_id: null
|
|
663
|
+
completed_epic: false
|
|
664
|
+
|
|
665
|
+
epic_cycle:
|
|
666
|
+
current_step: null
|
|
667
|
+
next_skill: null
|
|
668
|
+
story_bcps: null
|
|
669
|
+
completed_steps: []
|
|
670
|
+
audit_result: null
|
|
671
|
+
|
|
672
|
+
bug_cycle:
|
|
673
|
+
current_step: null
|
|
674
|
+
completed_steps: []
|
|
675
|
+
|
|
676
|
+
release:
|
|
677
|
+
target_version: null
|
|
678
|
+
last_tag: null
|
|
679
|
+
last_publish: null
|
|
680
|
+
ci_verified: false
|
|
681
|
+
|
|
682
|
+
metrics:
|
|
683
|
+
story_start: null
|
|
684
|
+
story_end: null
|
|
685
|
+
cycle_minutes: null
|
|
686
|
+
bcp_per_hour: null
|
|
687
|
+
|
|
688
|
+
git:
|
|
689
|
+
branch: <current branch>
|
|
690
|
+
hash: <git rev-parse HEAD>
|
|
691
|
+
pushed: false
|
|
581
692
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
693
|
+
handoff:
|
|
694
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
695
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
696
|
+
required_reading:
|
|
697
|
+
- specs/product/VISION_LATEST.yaml
|
|
698
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
699
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
700
|
+
- specs/release-plan.yaml
|
|
701
|
+
next_skill: survey-context
|
|
585
702
|
```
|
|
@@ -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
|
|
141
150
|
```
|
|
142
151
|
|
|
143
|
-
|
|
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
|
|
160
|
+
```
|
|
161
|
+
|
|
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
|
|
|
@@ -150,6 +169,43 @@ Use the learnings table from [REFERENCE.md](./REFERENCE.md#learnings-to-adopt).
|
|
|
150
169
|
|
|
151
170
|
→ verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`
|
|
152
171
|
|
|
172
|
+
### Step 6 — Adversarial review (optional)
|
|
173
|
+
|
|
174
|
+
Before the user runs `plan-work`, offer an optional lightweight audit of the migrated artifacts. This catches common migration errors early — incomplete specs, missing verification commands, unresolved decisions.
|
|
175
|
+
|
|
176
|
+
Prompt: "Run adversarial review of migrated artifacts? [yes / skip]"
|
|
177
|
+
|
|
178
|
+
If yes, perform these checks:
|
|
179
|
+
|
|
180
|
+
1. **Scan for incomplete markers** — Find TODO, FIXME, MISSING in specs/
|
|
181
|
+
2. **Verify every epic has `verify:` commands** — Parse all `eNN-*/epic.yaml` files
|
|
182
|
+
3. **Check state.yaml handoff** — Ensure `open_decisions` is documented (even if empty)
|
|
183
|
+
|
|
184
|
+
Collect findings and write to `specs/archive/MIGRATION-AUDIT.md`:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
# Migration Audit — <project-name> from <framework>
|
|
188
|
+
|
|
189
|
+
**Date:** <ISO 8601 timestamp>
|
|
190
|
+
**Status:** Pass / Fail with findings
|
|
191
|
+
|
|
192
|
+
## Findings
|
|
193
|
+
|
|
194
|
+
### High Priority
|
|
195
|
+
- Artifact: specs/epics/e02-auth-ui/epic.yaml
|
|
196
|
+
Finding: No verify: commands in story tasks
|
|
197
|
+
Recommendation: Add `verify:` to each task before develop-tdd
|
|
198
|
+
|
|
199
|
+
### Information
|
|
200
|
+
- Count of TODO markers: 3 (normal for fresh migration)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
If findings exist, the handoff block should note: "Adversarial review: N findings — see `specs/archive/MIGRATION-AUDIT.md`"
|
|
204
|
+
|
|
205
|
+
If skip is chosen, add to handoff: "Adversarial review: skipped — review manually before plan-work"
|
|
206
|
+
|
|
207
|
+
→ verify: `test -f specs/archive/MIGRATION-AUDIT.md && echo "audit completed" || echo "audit skipped or not performed"`
|
|
208
|
+
|
|
153
209
|
|
|
154
210
|
## Artifact Mapping Summary
|
|
155
211
|
|
|
@@ -452,7 +508,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
452
508
|
### From GSD
|
|
453
509
|
|
|
454
510
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
455
|
-
- [
|
|
511
|
+
- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)
|
|
456
512
|
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
457
513
|
|
|
458
514
|
### From spec-kit
|
|
@@ -465,7 +521,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
465
521
|
|
|
466
522
|
- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)
|
|
467
523
|
- [ ] **`specs/DECISION-LOG.md`** — Lightweight decisions below ADR threshold.
|
|
468
|
-
- [
|
|
524
|
+
- [x] **Adversarial review pass** — Critique epic shard before `develop-tdd`. (adopted: optional Step 6 in migration)
|
|
469
525
|
|
|
470
526
|
---
|
|
471
527
|
|
|
@@ -503,6 +559,45 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
503
559
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
504
560
|
```
|
|
505
561
|
|
|
562
|
+
### MIGRATION-AUDIT.md format
|
|
563
|
+
|
|
564
|
+
Post-migration adversarial review report. Written to `specs/archive/MIGRATION-AUDIT.md` when Step 6 runs:
|
|
565
|
+
|
|
566
|
+
```markdown
|
|
567
|
+
# Migration Audit — <project-name>
|
|
568
|
+
|
|
569
|
+
**Source Framework:** <GSD|spec-kit|BMAD>
|
|
570
|
+
**Date:** <ISO 8601>
|
|
571
|
+
**Status:** <Pass|Findings|Critical>
|
|
572
|
+
|
|
573
|
+
## Summary
|
|
574
|
+
|
|
575
|
+
- TODO markers: N
|
|
576
|
+
- FIXME markers: N
|
|
577
|
+
- MISSING markers: N
|
|
578
|
+
- Epics without verify: N
|
|
579
|
+
|
|
580
|
+
## High Priority Findings
|
|
581
|
+
|
|
582
|
+
- **Artifact:** specs/epics/e02-auth-ui/epic.yaml
|
|
583
|
+
**Issue:** Story e02s01 has no verify: commands in tasks
|
|
584
|
+
**Recommendation:** Add runnable verify command before develop-tdd
|
|
585
|
+
|
|
586
|
+
- **Artifact:** specs/state.yaml
|
|
587
|
+
**Issue:** open_decisions list empty without comment explanation
|
|
588
|
+
**Recommendation:** Add # comment if all decisions were resolved during migration
|
|
589
|
+
|
|
590
|
+
## Information
|
|
591
|
+
|
|
592
|
+
- Artifact specs/epics/e01-auth/epic.yaml contains TODO: "Define Neon Auth client URL injection" (normal for fresh migration)
|
|
593
|
+
|
|
594
|
+
## Next Steps
|
|
595
|
+
|
|
596
|
+
1. Address high-priority findings before plan-work
|
|
597
|
+
2. Run bash scripts/audit-compliance.sh to enforce code quality gates
|
|
598
|
+
3. Begin develop-tdd on highest-WSJF epic
|
|
599
|
+
```
|
|
600
|
+
|
|
506
601
|
### in_scope format with ID tracking
|
|
507
602
|
|
|
508
603
|
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
@@ -561,27 +656,49 @@ metadata:
|
|
|
561
656
|
|
|
562
657
|
### `specs/state.yaml` template format
|
|
563
658
|
|
|
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
|
|
659
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
574
660
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
661
|
+
```yaml
|
|
662
|
+
active_flow: null
|
|
663
|
+
active_epic_id: null
|
|
664
|
+
active_story_id: null
|
|
665
|
+
completed_epic: false
|
|
666
|
+
|
|
667
|
+
epic_cycle:
|
|
668
|
+
current_step: null
|
|
669
|
+
next_skill: null
|
|
670
|
+
story_bcps: null
|
|
671
|
+
completed_steps: []
|
|
672
|
+
audit_result: null
|
|
673
|
+
|
|
674
|
+
bug_cycle:
|
|
675
|
+
current_step: null
|
|
676
|
+
completed_steps: []
|
|
677
|
+
|
|
678
|
+
release:
|
|
679
|
+
target_version: null
|
|
680
|
+
last_tag: null
|
|
681
|
+
last_publish: null
|
|
682
|
+
ci_verified: false
|
|
683
|
+
|
|
684
|
+
metrics:
|
|
685
|
+
story_start: null
|
|
686
|
+
story_end: null
|
|
687
|
+
cycle_minutes: null
|
|
688
|
+
bcp_per_hour: null
|
|
689
|
+
|
|
690
|
+
git:
|
|
691
|
+
branch: <current branch>
|
|
692
|
+
hash: <git rev-parse HEAD>
|
|
693
|
+
pushed: false
|
|
583
694
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
695
|
+
handoff:
|
|
696
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
697
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
698
|
+
required_reading:
|
|
699
|
+
- specs/product/VISION_LATEST.yaml
|
|
700
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
701
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
702
|
+
- specs/release-plan.yaml
|
|
703
|
+
next_skill: survey-context
|
|
587
704
|
```
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [2.32.0](https://github.com/danielvm-git/bigpowers/compare/v2.31.0...v2.32.0) (2026-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **migrate-spec:** add optional Step 6 adversarial review pass ([64ae774](https://github.com/danielvm-git/bigpowers/commit/64ae774070068727f7dbb91e9cbb8e722bd0feb0))
|
|
7
|
+
|
|
8
|
+
# [2.31.0](https://github.com/danielvm-git/bigpowers/compare/v2.30.0...v2.31.0) (2026-06-26)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **migrate-spec:** make handoff block mandatory in Step 4 output ([1f05663](https://github.com/danielvm-git/bigpowers/commit/1f0566320356d8de4d3c2775ddebc3b17cf27fe6))
|
|
14
|
+
|
|
1
15
|
# [2.30.0](https://github.com/danielvm-git/bigpowers/compare/v2.29.0...v2.30.0) (2026-06-26)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -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:59:59Z
|
|
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
|
|
@@ -146,7 +146,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
146
146
|
|
|
147
147
|
- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)
|
|
148
148
|
- [ ] **`specs/DECISION-LOG.md`** — Lightweight decisions below ADR threshold.
|
|
149
|
-
- [
|
|
149
|
+
- [x] **Adversarial review pass** — Critique epic shard before `develop-tdd`. (adopted: optional Step 6 in migration)
|
|
150
150
|
|
|
151
151
|
---
|
|
152
152
|
|
|
@@ -184,6 +184,45 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
184
184
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
185
185
|
```
|
|
186
186
|
|
|
187
|
+
### MIGRATION-AUDIT.md format
|
|
188
|
+
|
|
189
|
+
Post-migration adversarial review report. Written to `specs/archive/MIGRATION-AUDIT.md` when Step 6 runs:
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
# Migration Audit — <project-name>
|
|
193
|
+
|
|
194
|
+
**Source Framework:** <GSD|spec-kit|BMAD>
|
|
195
|
+
**Date:** <ISO 8601>
|
|
196
|
+
**Status:** <Pass|Findings|Critical>
|
|
197
|
+
|
|
198
|
+
## Summary
|
|
199
|
+
|
|
200
|
+
- TODO markers: N
|
|
201
|
+
- FIXME markers: N
|
|
202
|
+
- MISSING markers: N
|
|
203
|
+
- Epics without verify: N
|
|
204
|
+
|
|
205
|
+
## High Priority Findings
|
|
206
|
+
|
|
207
|
+
- **Artifact:** specs/epics/e02-auth-ui/epic.yaml
|
|
208
|
+
**Issue:** Story e02s01 has no verify: commands in tasks
|
|
209
|
+
**Recommendation:** Add runnable verify command before develop-tdd
|
|
210
|
+
|
|
211
|
+
- **Artifact:** specs/state.yaml
|
|
212
|
+
**Issue:** open_decisions list empty without comment explanation
|
|
213
|
+
**Recommendation:** Add # comment if all decisions were resolved during migration
|
|
214
|
+
|
|
215
|
+
## Information
|
|
216
|
+
|
|
217
|
+
- Artifact specs/epics/e01-auth/epic.yaml contains TODO: "Define Neon Auth client URL injection" (normal for fresh migration)
|
|
218
|
+
|
|
219
|
+
## Next Steps
|
|
220
|
+
|
|
221
|
+
1. Address high-priority findings before plan-work
|
|
222
|
+
2. Run bash scripts/audit-compliance.sh to enforce code quality gates
|
|
223
|
+
3. Begin develop-tdd on highest-WSJF epic
|
|
224
|
+
```
|
|
225
|
+
|
|
187
226
|
### in_scope format with ID tracking
|
|
188
227
|
|
|
189
228
|
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
@@ -242,27 +281,49 @@ metadata:
|
|
|
242
281
|
|
|
243
282
|
### `specs/state.yaml` template format
|
|
244
283
|
|
|
245
|
-
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format
|
|
246
|
-
|
|
247
|
-
```markdown
|
|
248
|
-
# Session State: <project name>
|
|
249
|
-
|
|
250
|
-
## Current Milestone
|
|
251
|
-
|
|
252
|
-
Migrated from <framework> on <date>. Next: review generated specs and run plan-work.
|
|
284
|
+
Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:
|
|
253
285
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
286
|
+
```yaml
|
|
287
|
+
active_flow: null
|
|
288
|
+
active_epic_id: null
|
|
289
|
+
active_story_id: null
|
|
290
|
+
completed_epic: false
|
|
291
|
+
|
|
292
|
+
epic_cycle:
|
|
293
|
+
current_step: null
|
|
294
|
+
next_skill: null
|
|
295
|
+
story_bcps: null
|
|
296
|
+
completed_steps: []
|
|
297
|
+
audit_result: null
|
|
298
|
+
|
|
299
|
+
bug_cycle:
|
|
300
|
+
current_step: null
|
|
301
|
+
completed_steps: []
|
|
302
|
+
|
|
303
|
+
release:
|
|
304
|
+
target_version: null
|
|
305
|
+
last_tag: null
|
|
306
|
+
last_publish: null
|
|
307
|
+
ci_verified: false
|
|
308
|
+
|
|
309
|
+
metrics:
|
|
310
|
+
story_start: null
|
|
311
|
+
story_end: null
|
|
312
|
+
cycle_minutes: null
|
|
313
|
+
bcp_per_hour: null
|
|
314
|
+
|
|
315
|
+
git:
|
|
316
|
+
branch: <current branch>
|
|
317
|
+
hash: <git rev-parse HEAD>
|
|
318
|
+
pushed: false
|
|
319
|
+
|
|
320
|
+
handoff:
|
|
321
|
+
last_step_completed: "Migrated from <framework> on <date>"
|
|
322
|
+
open_decisions: [] # Empty if all decisions resolved during migration
|
|
323
|
+
required_reading:
|
|
324
|
+
- specs/product/VISION_LATEST.yaml
|
|
325
|
+
- specs/product/SCOPE_LATEST.yaml
|
|
326
|
+
- specs/tech-architecture/TECH_STACK_LATEST.md
|
|
327
|
+
- specs/release-plan.yaml
|
|
328
|
+
next_skill: survey-context
|
|
268
329
|
```
|
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):
|
|
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
133
|
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
|
@@ -151,6 +170,43 @@ Use the learnings table from [REFERENCE.md](./REFERENCE.md#learnings-to-adopt).
|
|
|
151
170
|
|
|
152
171
|
→ verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`
|
|
153
172
|
|
|
173
|
+
### Step 6 — Adversarial review (optional)
|
|
174
|
+
|
|
175
|
+
Before the user runs `plan-work`, offer an optional lightweight audit of the migrated artifacts. This catches common migration errors early — incomplete specs, missing verification commands, unresolved decisions.
|
|
176
|
+
|
|
177
|
+
Prompt: "Run adversarial review of migrated artifacts? [yes / skip]"
|
|
178
|
+
|
|
179
|
+
If yes, perform these checks:
|
|
180
|
+
|
|
181
|
+
1. **Scan for incomplete markers** — Find TODO, FIXME, MISSING in specs/
|
|
182
|
+
2. **Verify every epic has `verify:` commands** — Parse all `eNN-*/epic.yaml` files
|
|
183
|
+
3. **Check state.yaml handoff** — Ensure `open_decisions` is documented (even if empty)
|
|
184
|
+
|
|
185
|
+
Collect findings and write to `specs/archive/MIGRATION-AUDIT.md`:
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
# Migration Audit — <project-name> from <framework>
|
|
189
|
+
|
|
190
|
+
**Date:** <ISO 8601 timestamp>
|
|
191
|
+
**Status:** Pass / Fail with findings
|
|
192
|
+
|
|
193
|
+
## Findings
|
|
194
|
+
|
|
195
|
+
### High Priority
|
|
196
|
+
- Artifact: specs/epics/e02-auth-ui/epic.yaml
|
|
197
|
+
Finding: No verify: commands in story tasks
|
|
198
|
+
Recommendation: Add `verify:` to each task before develop-tdd
|
|
199
|
+
|
|
200
|
+
### Information
|
|
201
|
+
- Count of TODO markers: 3 (normal for fresh migration)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
If findings exist, the handoff block should note: "Adversarial review: N findings — see `specs/archive/MIGRATION-AUDIT.md`"
|
|
205
|
+
|
|
206
|
+
If skip is chosen, add to handoff: "Adversarial review: skipped — review manually before plan-work"
|
|
207
|
+
|
|
208
|
+
→ verify: `test -f specs/archive/MIGRATION-AUDIT.md && echo "audit completed" || echo "audit skipped or not performed"`
|
|
209
|
+
|
|
154
210
|
---
|
|
155
211
|
|
|
156
212
|
## Artifact Mapping Summary
|
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": "353a127597cead4d",
|
|
167
167
|
"path": "migrate-spec/SKILL.md"
|
|
168
168
|
},
|
|
169
169
|
"model-domain": {
|