bigpowers 2.29.0 → 2.30.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 +61 -1
- package/.pi/skills/migrate-spec/SKILL.md +61 -1
- package/CHANGELOG.md +7 -0
- package/SKILL-INDEX.md +1 -1
- package/migrate-spec/REFERENCE.md +36 -1
- package/migrate-spec/SKILL.md +25 -0
- package/migrate-spec/templates/REQUIREMENTS_TRACE.yaml +28 -0
- package/package.json +1 -1
- package/skills-lock.json +1 -1
package/.pi/package.json
CHANGED
|
@@ -93,6 +93,31 @@ in_scope:
|
|
|
93
93
|
|
|
94
94
|
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
95
95
|
|
|
96
|
+
#### Traceability Output (FR-XX, UJ-XX)
|
|
97
|
+
|
|
98
|
+
When source has FR-XX or UJ-XX IDs, emit `specs/product/REQUIREMENTS_TRACE.yaml` for end-to-end requirement traceability:
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
trace:
|
|
102
|
+
- id: FR-001
|
|
103
|
+
type: functional_requirement
|
|
104
|
+
description: "User can register with email/password"
|
|
105
|
+
epic: e02-auth-ui
|
|
106
|
+
story: e02s01
|
|
107
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
108
|
+
- id: UJ-001
|
|
109
|
+
type: user_journey
|
|
110
|
+
description: "New user completes registration flow"
|
|
111
|
+
epic: e02-auth-ui
|
|
112
|
+
story: e02s01
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Existing trace file:** If `REQUIREMENTS_TRACE.yaml` already exists, prompt: "REQUIREMENTS_TRACE.yaml exists. [overwrite / merge / skip]"
|
|
116
|
+
|
|
117
|
+
**No FR-XX/UJ-XX found:** Skip trace file; add note to state.yaml handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
118
|
+
|
|
119
|
+
See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirements_traceyaml-format) for the complete schema.
|
|
120
|
+
|
|
96
121
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
97
122
|
>
|
|
98
123
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -436,7 +461,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
436
461
|
|
|
437
462
|
### From BMAD
|
|
438
463
|
|
|
439
|
-
- [
|
|
464
|
+
- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)
|
|
440
465
|
- [ ] **`specs/DECISION-LOG.md`** — Lightweight decisions below ADR threshold.
|
|
441
466
|
- [ ] **Adversarial review pass** — Critique epic shard before `develop-tdd`.
|
|
442
467
|
|
|
@@ -497,6 +522,41 @@ in_scope:
|
|
|
497
522
|
|
|
498
523
|
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
499
524
|
|
|
525
|
+
### REQUIREMENTS_TRACE.yaml format
|
|
526
|
+
|
|
527
|
+
Emitted when source has FR-XX (functional requirement) or UJ-XX (user journey) IDs. Maps source requirements to bigpowers epic/story structure and verification commands:
|
|
528
|
+
|
|
529
|
+
```yaml
|
|
530
|
+
trace:
|
|
531
|
+
# Functional Requirements
|
|
532
|
+
- id: FR-001
|
|
533
|
+
type: functional_requirement
|
|
534
|
+
description: "User can register with email/password"
|
|
535
|
+
source_artifact: "prd.md"
|
|
536
|
+
epic: "e02-auth-ui"
|
|
537
|
+
story: "e02s01"
|
|
538
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
539
|
+
|
|
540
|
+
# User Journeys
|
|
541
|
+
- id: UJ-001
|
|
542
|
+
type: user_journey
|
|
543
|
+
description: "New user completes registration flow"
|
|
544
|
+
source_artifact: "epic-auth-ui.md"
|
|
545
|
+
epic: "e02-auth-ui"
|
|
546
|
+
story: "e02s01"
|
|
547
|
+
verify: "grep -q 'UJ-001' specs/epics/e02-auth-ui/epic.yaml && echo OK"
|
|
548
|
+
|
|
549
|
+
metadata:
|
|
550
|
+
source_framework: "BMAD"
|
|
551
|
+
migrated_at: "2026-06-26T12:00:00Z"
|
|
552
|
+
total_requirements: 2
|
|
553
|
+
coverage: "All FR-XX and UJ-XX IDs from source mapped"
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
**When source has no FR-XX/UJ-XX:** Skip REQUIREMENTS_TRACE.yaml. Add note to `state.yaml` handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
557
|
+
|
|
558
|
+
**Existing trace file:** If REQUIREMENTS_TRACE.yaml exists, prompt user: "Overwrite? [yes / merge / skip]". Merge appends new entries; skip leaves existing file intact.
|
|
559
|
+
|
|
500
560
|
### `specs/state.yaml` template format
|
|
501
561
|
|
|
502
562
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
|
@@ -95,6 +95,31 @@ in_scope:
|
|
|
95
95
|
|
|
96
96
|
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
97
97
|
|
|
98
|
+
#### Traceability Output (FR-XX, UJ-XX)
|
|
99
|
+
|
|
100
|
+
When source has FR-XX or UJ-XX IDs, emit `specs/product/REQUIREMENTS_TRACE.yaml` for end-to-end requirement traceability:
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
trace:
|
|
104
|
+
- id: FR-001
|
|
105
|
+
type: functional_requirement
|
|
106
|
+
description: "User can register with email/password"
|
|
107
|
+
epic: e02-auth-ui
|
|
108
|
+
story: e02s01
|
|
109
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
110
|
+
- id: UJ-001
|
|
111
|
+
type: user_journey
|
|
112
|
+
description: "New user completes registration flow"
|
|
113
|
+
epic: e02-auth-ui
|
|
114
|
+
story: e02s01
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Existing trace file:** If `REQUIREMENTS_TRACE.yaml` already exists, prompt: "REQUIREMENTS_TRACE.yaml exists. [overwrite / merge / skip]"
|
|
118
|
+
|
|
119
|
+
**No FR-XX/UJ-XX found:** Skip trace file; add note to state.yaml handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
120
|
+
|
|
121
|
+
See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirements_traceyaml-format) for the complete schema.
|
|
122
|
+
|
|
98
123
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
99
124
|
>
|
|
100
125
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -438,7 +463,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
438
463
|
|
|
439
464
|
### From BMAD
|
|
440
465
|
|
|
441
|
-
- [
|
|
466
|
+
- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)
|
|
442
467
|
- [ ] **`specs/DECISION-LOG.md`** — Lightweight decisions below ADR threshold.
|
|
443
468
|
- [ ] **Adversarial review pass** — Critique epic shard before `develop-tdd`.
|
|
444
469
|
|
|
@@ -499,6 +524,41 @@ in_scope:
|
|
|
499
524
|
|
|
500
525
|
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
501
526
|
|
|
527
|
+
### REQUIREMENTS_TRACE.yaml format
|
|
528
|
+
|
|
529
|
+
Emitted when source has FR-XX (functional requirement) or UJ-XX (user journey) IDs. Maps source requirements to bigpowers epic/story structure and verification commands:
|
|
530
|
+
|
|
531
|
+
```yaml
|
|
532
|
+
trace:
|
|
533
|
+
# Functional Requirements
|
|
534
|
+
- id: FR-001
|
|
535
|
+
type: functional_requirement
|
|
536
|
+
description: "User can register with email/password"
|
|
537
|
+
source_artifact: "prd.md"
|
|
538
|
+
epic: "e02-auth-ui"
|
|
539
|
+
story: "e02s01"
|
|
540
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
541
|
+
|
|
542
|
+
# User Journeys
|
|
543
|
+
- id: UJ-001
|
|
544
|
+
type: user_journey
|
|
545
|
+
description: "New user completes registration flow"
|
|
546
|
+
source_artifact: "epic-auth-ui.md"
|
|
547
|
+
epic: "e02-auth-ui"
|
|
548
|
+
story: "e02s01"
|
|
549
|
+
verify: "grep -q 'UJ-001' specs/epics/e02-auth-ui/epic.yaml && echo OK"
|
|
550
|
+
|
|
551
|
+
metadata:
|
|
552
|
+
source_framework: "BMAD"
|
|
553
|
+
migrated_at: "2026-06-26T12:00:00Z"
|
|
554
|
+
total_requirements: 2
|
|
555
|
+
coverage: "All FR-XX and UJ-XX IDs from source mapped"
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**When source has no FR-XX/UJ-XX:** Skip REQUIREMENTS_TRACE.yaml. Add note to `state.yaml` handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
559
|
+
|
|
560
|
+
**Existing trace file:** If REQUIREMENTS_TRACE.yaml exists, prompt user: "Overwrite? [yes / merge / skip]". Merge appends new entries; skip leaves existing file intact.
|
|
561
|
+
|
|
502
562
|
### `specs/state.yaml` template format
|
|
503
563
|
|
|
504
564
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.30.0](https://github.com/danielvm-git/bigpowers/compare/v2.29.0...v2.30.0) (2026-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **migrate-spec:** emit REQUIREMENTS_TRACE.yaml for FR-XX/UJ-XX IDs ([955a1fd](https://github.com/danielvm-git/bigpowers/commit/955a1fd37b898ec70a86895d8772f0ec6fb8a0fa))
|
|
7
|
+
|
|
1
8
|
# [2.29.0](https://github.com/danielvm-git/bigpowers/compare/v2.28.0...v2.29.0) (2026-06-26)
|
|
2
9
|
|
|
3
10
|
|
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:23:41Z
|
|
7
7
|
**Skills:** 70
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -144,7 +144,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
144
144
|
|
|
145
145
|
### From BMAD
|
|
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
|
- [ ] **Adversarial review pass** — Critique epic shard before `develop-tdd`.
|
|
150
150
|
|
|
@@ -205,6 +205,41 @@ in_scope:
|
|
|
205
205
|
|
|
206
206
|
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
207
207
|
|
|
208
|
+
### REQUIREMENTS_TRACE.yaml format
|
|
209
|
+
|
|
210
|
+
Emitted when source has FR-XX (functional requirement) or UJ-XX (user journey) IDs. Maps source requirements to bigpowers epic/story structure and verification commands:
|
|
211
|
+
|
|
212
|
+
```yaml
|
|
213
|
+
trace:
|
|
214
|
+
# Functional Requirements
|
|
215
|
+
- id: FR-001
|
|
216
|
+
type: functional_requirement
|
|
217
|
+
description: "User can register with email/password"
|
|
218
|
+
source_artifact: "prd.md"
|
|
219
|
+
epic: "e02-auth-ui"
|
|
220
|
+
story: "e02s01"
|
|
221
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
222
|
+
|
|
223
|
+
# User Journeys
|
|
224
|
+
- id: UJ-001
|
|
225
|
+
type: user_journey
|
|
226
|
+
description: "New user completes registration flow"
|
|
227
|
+
source_artifact: "epic-auth-ui.md"
|
|
228
|
+
epic: "e02-auth-ui"
|
|
229
|
+
story: "e02s01"
|
|
230
|
+
verify: "grep -q 'UJ-001' specs/epics/e02-auth-ui/epic.yaml && echo OK"
|
|
231
|
+
|
|
232
|
+
metadata:
|
|
233
|
+
source_framework: "BMAD"
|
|
234
|
+
migrated_at: "2026-06-26T12:00:00Z"
|
|
235
|
+
total_requirements: 2
|
|
236
|
+
coverage: "All FR-XX and UJ-XX IDs from source mapped"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**When source has no FR-XX/UJ-XX:** Skip REQUIREMENTS_TRACE.yaml. Add note to `state.yaml` handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
240
|
+
|
|
241
|
+
**Existing trace file:** If REQUIREMENTS_TRACE.yaml exists, prompt user: "Overwrite? [yes / merge / skip]". Merge appends new entries; skip leaves existing file intact.
|
|
242
|
+
|
|
208
243
|
### `specs/state.yaml` template format
|
|
209
244
|
|
|
210
245
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
package/migrate-spec/SKILL.md
CHANGED
|
@@ -96,6 +96,31 @@ in_scope:
|
|
|
96
96
|
|
|
97
97
|
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
98
98
|
|
|
99
|
+
#### Traceability Output (FR-XX, UJ-XX)
|
|
100
|
+
|
|
101
|
+
When source has FR-XX or UJ-XX IDs, emit `specs/product/REQUIREMENTS_TRACE.yaml` for end-to-end requirement traceability:
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
trace:
|
|
105
|
+
- id: FR-001
|
|
106
|
+
type: functional_requirement
|
|
107
|
+
description: "User can register with email/password"
|
|
108
|
+
epic: e02-auth-ui
|
|
109
|
+
story: e02s01
|
|
110
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"
|
|
111
|
+
- id: UJ-001
|
|
112
|
+
type: user_journey
|
|
113
|
+
description: "New user completes registration flow"
|
|
114
|
+
epic: e02-auth-ui
|
|
115
|
+
story: e02s01
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Existing trace file:** If `REQUIREMENTS_TRACE.yaml` already exists, prompt: "REQUIREMENTS_TRACE.yaml exists. [overwrite / merge / skip]"
|
|
119
|
+
|
|
120
|
+
**No FR-XX/UJ-XX found:** Skip trace file; add note to state.yaml handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
121
|
+
|
|
122
|
+
See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirements_traceyaml-format) for the complete schema.
|
|
123
|
+
|
|
99
124
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
100
125
|
>
|
|
101
126
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Auto-generated from {{source_framework}} FR-XX / UJ-XX IDs during migration
|
|
2
|
+
# Maps source requirements to bigpowers epic/story structure and verification commands.
|
|
3
|
+
|
|
4
|
+
trace:
|
|
5
|
+
# Functional Requirements (FR-XX)
|
|
6
|
+
- id: FR-001
|
|
7
|
+
type: functional_requirement
|
|
8
|
+
description: "User can register with email/password"
|
|
9
|
+
source_artifact: "{{source_file}}"
|
|
10
|
+
epic: "e02-auth-ui"
|
|
11
|
+
story: "e02s01"
|
|
12
|
+
verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK || echo FAIL"
|
|
13
|
+
|
|
14
|
+
# User Journeys (UJ-XX)
|
|
15
|
+
- id: UJ-001
|
|
16
|
+
type: user_journey
|
|
17
|
+
description: "New user completes registration flow"
|
|
18
|
+
source_artifact: "{{source_file}}"
|
|
19
|
+
epic: "e02-auth-ui"
|
|
20
|
+
story: "e02s01"
|
|
21
|
+
verify: "grep -q 'UJ-001' specs/epics/e02-auth-ui/epic.yaml && echo OK || echo FAIL"
|
|
22
|
+
|
|
23
|
+
# Metadata
|
|
24
|
+
metadata:
|
|
25
|
+
source_framework: "{{source_framework}}" # e.g., BMAD, GSD, spec-kit
|
|
26
|
+
migrated_at: "{{timestamp}}"
|
|
27
|
+
total_requirements: "{{count}}"
|
|
28
|
+
coverage: "All FR-XX and UJ-XX IDs from source mapped to bigpowers artifacts"
|
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": "72006537bb12ab1a",
|
|
167
167
|
"path": "migrate-spec/SKILL.md"
|
|
168
168
|
},
|
|
169
169
|
"model-domain": {
|