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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.29.0",
3
+ "version": "2.30.0",
4
4
  "description": "70 skills — 61 agent skills for spec-driven, test-first software development by solo developers",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -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
- - [ ] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability.
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
- - [ ] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability.
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:20:53Z
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
- - [ ] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability.
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:
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.29.0",
3
+ "version": "2.30.0",
4
4
  "description": "61 agent skills for spec-driven, test-first software development by solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
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": "3570ec13243de9b8",
166
+ "sha256": "72006537bb12ab1a",
167
167
  "path": "migrate-spec/SKILL.md"
168
168
  },
169
169
  "model-domain": {