bigpowers 1.2.3 → 1.3.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CLAUDE.md +5 -4
  3. package/CONVENTIONS.md +54 -12
  4. package/README.md +5 -5
  5. package/SKILL-INDEX.md +14 -11
  6. package/assess-impact/SKILL.md +2 -2
  7. package/build-epic/SKILL.md +42 -0
  8. package/change-request/SKILL.md +16 -16
  9. package/compose-workflow/SKILL.md +1 -1
  10. package/deepen-architecture/SKILL.md +6 -6
  11. package/define-success/SKILL.md +1 -1
  12. package/delegate-task/SKILL.md +4 -4
  13. package/develop-tdd/SKILL.md +5 -5
  14. package/dispatch-agents/SKILL.md +2 -2
  15. package/evolve-skill/SKILL.md +2 -2
  16. package/execute-plan/SKILL.md +22 -59
  17. package/fix-bug/SKILL.md +37 -0
  18. package/grill-with-docs/SKILL.md +1 -1
  19. package/inspect-quality/SKILL.md +5 -5
  20. package/investigate-bug/SKILL.md +2 -2
  21. package/kickoff-branch/SKILL.md +1 -1
  22. package/map-codebase/SKILL.md +4 -4
  23. package/migrate-spec/SKILL.md +18 -18
  24. package/model-domain/SKILL.md +7 -7
  25. package/orchestrate-project/SKILL.md +5 -8
  26. package/package.json +4 -2
  27. package/plan-release/SKILL.md +63 -39
  28. package/plan-work/SKILL.md +6 -6
  29. package/research-first/SKILL.md +3 -3
  30. package/run-planning/SKILL.md +24 -0
  31. package/scope-work/SKILL.md +6 -6
  32. package/scripts/bp-yaml-set.sh +9 -0
  33. package/scripts/bp-yaml-snapshot.sh +23 -0
  34. package/scripts/convert-legado.sh +153 -0
  35. package/scripts/enrich-epics-from-archive.sh +101 -0
  36. package/scripts/land-branch.sh +5 -1
  37. package/scripts/project-survey.sh +18 -9
  38. package/scripts/sync-bugs-registry.sh +53 -0
  39. package/scripts/sync-status-from-epics.sh +51 -0
  40. package/scripts/validate-specs-yaml.sh +41 -0
  41. package/scripts/yaml-tools.py +144 -0
  42. package/session-state/SKILL.md +59 -50
  43. package/setup-environment/SKILL.md +1 -1
  44. package/slice-tasks/SKILL.md +6 -6
  45. package/survey-context/SKILL.md +38 -27
  46. package/trace-requirement/SKILL.md +8 -8
  47. package/using-bigpowers/SKILL.md +10 -9
  48. package/validate-fix/SKILL.md +3 -3
  49. package/verify-work/SKILL.md +12 -17
  50. package/visual-dashboard/SKILL.md +25 -74
  51. package/visual-dashboard/scripts/cockpit.html +66 -0
  52. package/visual-dashboard/scripts/read-specs-status.cjs +123 -0
  53. package/visual-dashboard/scripts/server.cjs +40 -0
  54. package/write-document/SKILL.md +1 -1
  55. package/maintain-wiki/SKILL.md +0 -130
  56. package/profiles/obsidian-wiki.md +0 -120
@@ -1,92 +1,55 @@
1
1
  ---
2
2
  name: execute-plan
3
3
  model: haiku
4
- description: Batch-execute tasks from specs/RELEASE-PLAN.md sequentially, with a human checkpoint after each step. Use when user has an approved plan and wants to execute it step-by-step with oversight, or mentions "execute the plan" or "run the plan".
4
+ description: Batch-execute tasks from the active epic shard sequentially, with a human checkpoint after each step. Use when user has an approved plan and wants step-by-step oversight.
5
5
  ---
6
6
 
7
7
  # Execute Plan
8
8
 
9
- Execute the tasks in `specs/RELEASE-PLAN.md` one at a time, showing evidence after each step before proceeding.
9
+ Execute tasks from the **active epic** (`specs/epics/eNN-*.yaml` story `tasks[]`) one at a time, showing evidence after each step before proceeding.
10
10
 
11
- > **HARD GATE** — Do NOT proceed if on `main` or `master`. Run `kickoff-branch` first to create a feature branch or worktree.
11
+ > **HARD GATE** — Do NOT proceed if on `main` or `master`. Run `kickoff-branch` first.
12
12
  >
13
- > **HARD GATE** — Do NOT execute a plan if `specs/RELEASE-PLAN.md` does not exist or if its tasks lack runnable `verify:` commands. If the plan is missing or weak, run `plan-release` then `plan-work` first.
13
+ > **HARD GATE** — Active epic must exist with runnable `verify` on each task. If missing, run `plan-release` then `plan-work` or `build-epic`.
14
14
 
15
15
  ## Process
16
16
 
17
17
  ### 1. Read the plan
18
18
 
19
- Read `specs/RELEASE-PLAN.md` in full. Parse `depends-on:` fields from `specs/TASKS.md` or story steps to build **execution waves** (steps with no unresolved deps run in parallel when user approves).
19
+ Read `specs/state.yaml` (`active_epic`, `active_story`) and the matching `specs/epics/*.yaml`. Parse `depends-on` in task descriptions for execution waves.
20
20
 
21
- > **CONTEXT ISOLATION** — Spawn each skill invocation (via `delegate-task` / subagent) with a **fresh context window**. Pass decisions only through `specs/STATE.md` — never rely on chat history from prior spawns.
21
+ > **CONTEXT ISOLATION** — Spawn each skill with a **fresh context window**. Pass decisions only through `specs/state.yaml` `handoff` — never rely on prior chat history.
22
22
 
23
- Confirm with the user:
24
- - How many steps are there?
25
- - Any steps to skip or reorder?
26
- - Should you stop after a specific step?
23
+ Confirm with the user: step count, skip/reorder, stop-after step.
27
24
 
28
25
  ### 2. Execute step by step
29
26
 
30
- For each step in the plan:
27
+ For each task in the active story:
31
28
 
32
- **a. Announce the step**
33
- ```
34
- ─── Step N of M ─────────────────────────
35
- Task: [step description]
36
- verify: [verify command]
37
- ```
29
+ **a. Announce** task `desc` and `verify` command.
38
30
 
39
- **b. Execute the work**
31
+ **b. Execute** code or `delegate-task` / `dispatch-agents` for waves.
40
32
 
41
- For **wave execution**: group steps that share no `depends-on:` edges; run wave members in parallel via `dispatch-agents`; wait for all verify commands green before next wave. Use atomic `STATE.md` updates (read-modify-write one block) to avoid race conditions.
33
+ **c. Run verify** must be green before advancing.
42
34
 
43
- Implement each step using:
44
- - Write/edit code directly for small focused changes
45
- - Spawn a subagent via `delegate-task` for complex isolated work (fresh context; read STATE.md first)
35
+ **d. Log** non-obvious decisions in `specs/state.yaml` under `decisions[]` or `handoff` block.
46
36
 
47
- > **STREAM CONTINUITY** — When writing file content, output in continuous chunks of ~200 lines. Do not pause. Continue immediately until complete. If you need time, emit a placeholder comment rather than going silent.
37
+ **e. Checkpoint** — ask to proceed unless autonomous mode requested.
48
38
 
49
- **c. Run the verify command**
50
- Every task in `specs/RELEASE-PLAN.md` must have a `verify: <cmd>`. Run it and show the output.
39
+ **f. Story UAT** — after last task, run manual verification script from story notes or `verify-work`.
51
40
 
52
- **d. Log the decision**
53
- After verify passes, append to `specs/STATE.md` under `## Active Decisions`:
54
- ```
55
- **Step N — [short name]**: [what approach was chosen and why — one sentence]
56
- ```
57
- Only log if a non-obvious decision was made (approach chosen, constraint discovered, blocker resolved). Skip if the step was mechanical.
41
+ On verify failure: fix and re-run; never advance on red.
58
42
 
59
- **e. Checkpoint**
60
- Report the result and ask: "Step N complete. Proceed to step N+1?" (or proceed automatically if the user asked for fully autonomous execution)
43
+ Update `specs/execution-status.yaml` when a story/epic completes (`bash scripts/sync-status-from-epics.sh` or direct edit).
61
44
 
62
- **f. Story Verification (UAT)**
63
- After the last step of a Story is completed:
64
- 1. Present the **Verification Script** from `specs/RELEASE-PLAN.md` for this story.
65
- 2. Ask the user to perform the manual verification steps.
66
- 3. Wait for the user to confirm "pass" or describe issues.
67
- 4. If issues are reported, log them and stop execution for diagnosis.
45
+ ### 3. Blockers
68
46
 
69
- If verify fails:
70
- - Do NOT move to the next step — never advance on a red verify
71
- - Diagnose the failure
72
- - Fix it and re-run verify
73
- - Loop on this step until the verify command is green
74
- - Only then proceed to the next step
47
+ Report blocker; ask skip/adapt/stop; update epic shard if plan changes.
75
48
 
76
- If verify passes but behavioral correctness is in doubt, do not advance — a mechanical green is not enough; confirm behavior is correct first.
77
-
78
- ### 3. Handle blockers
49
+ ### 4. Final report
79
50
 
80
- If a step cannot be completed as written:
81
- - Report the blocker clearly
82
- - Ask the user whether to skip, adapt, or stop
83
- - Update `specs/RELEASE-PLAN.md` if the plan needs revision
51
+ Suggest: `verify-work` `run-evals` `audit-code` `simulate-agents` → `commit-message` → `release-branch`
84
52
 
85
- ### 4. Final report
53
+ ## Rules
86
54
 
87
- After all steps complete:
88
- ```
89
- ✓ Plan complete: N/N steps executed
90
- All verify commands passed.
91
- Suggested next: verify-work → run-evals → audit-code → simulate-agents → commit-message → release-branch
92
- ```
55
+ - **Loop until behavioral correctness is verified**: if a verify command passes but the observed behavior is still wrong, return to step 1 and run the execution cycle again.
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: fix-bug
3
+ model: sonnet
4
+ description: Bug fix orchestrator — active_flow fix_bug; reads specs/bugs/BUG-*.md; chains investigate-bug, develop-tdd, validate-fix. Use when user reports a defect.
5
+ ---
6
+
7
+ # Fix Bug
8
+
9
+ Orchestrates **fix_bug** flow without mixing epic build state.
10
+
11
+ > **HARD GATE** — Set `specs/state.yaml` `active_flow: fix_bug`.
12
+
13
+ ## Process
14
+
15
+ 1. If no `specs/bugs/BUG-*.md`, run `investigate-bug` first (YAML frontmatter + fix plan in file).
16
+ 2. `develop-tdd` against the bug file's verify steps.
17
+ 3. `validate-fix` — re-run failing test, full suite, lint.
18
+ 4. `bash scripts/sync-bugs-registry.sh` — refresh `specs/bugs/registry.yaml`.
19
+ 5. Clear `active_flow` or return to `build_epic` when done.
20
+
21
+ ## Bug file SoT
22
+
23
+ One markdown file per bug with frontmatter:
24
+
25
+ ```yaml
26
+ ---
27
+ bug_id: BUG-001
28
+ status: open
29
+ severity: high
30
+ scope: api
31
+ title: Short title
32
+ ---
33
+ ```
34
+
35
+ ## Verify
36
+
37
+ → verify: `test -d specs/bugs && bash scripts/sync-bugs-registry.sh`
@@ -10,7 +10,7 @@ model: opus
10
10
 
11
11
  ## Process
12
12
 
13
- 1. Read the plan or design under test (`specs/RELEASE-PLAN.md`, INTERFACE-OPTIONS.md, etc.).
13
+ 1. Read the plan or design under test (`specs/release-plan.yaml + epic shards`, INTERFACE-OPTIONS.md, etc.).
14
14
  2. List assumptions that depend on external libraries or APIs.
15
15
  3. For each assumption: fetch or quote official docs; challenge with "docs say X, plan says Y."
16
16
  4. Resolve or update the plan inline; unresolved items block `plan-work`.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: inspect-quality
3
3
  model: sonnet
4
- description: Interactive QA session where user reports bugs or issues conversationally, and the agent logs them to specs/bugs/BUG-LOG.md with a structured audit schema. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, or mentions "QA session".
4
+ description: Interactive QA session where user reports bugs or issues conversationally, and the agent logs them to specs/bugs/registry.yaml with a structured audit schema. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, or mentions "QA session".
5
5
  ---
6
6
 
7
7
  # Inspect Quality
8
8
 
9
- Run an interactive QA session. The user describes problems they're encountering. You clarify, explore the codebase for context, and log each issue to `specs/bugs/BUG-LOG.md` with a structured, durable format.
9
+ Run an interactive QA session. The user describes problems they're encountering. You clarify, explore the codebase for context, and log each issue to `specs/bugs/registry.yaml` with a structured, durable format.
10
10
 
11
11
  ## For each issue the user raises
12
12
 
@@ -41,11 +41,11 @@ Keep as a single issue when:
41
41
  - It's one behavior that's wrong in one place
42
42
  - The symptoms are all caused by the same root behavior
43
43
 
44
- ### 4. Log to specs/bugs/BUG-LOG.md
44
+ ### 4. Log to specs/bugs/registry.yaml
45
45
 
46
- Append the issue to `specs/bugs/BUG-LOG.md`. Create the `specs/bugs/` directory if it doesn't exist.
46
+ Append the issue to `specs/bugs/registry.yaml`. Create the `specs/bugs/` directory if it doesn't exist.
47
47
 
48
- #### BUG-LOG.md format
48
+ #### registry.yaml format
49
49
 
50
50
  The file maintains a Markdown table with the following columns (derived from structured audit practice):
51
51
 
@@ -14,7 +14,7 @@ Investigate a reported problem, find its root cause, and write a TDD fix plan to
14
14
 
15
15
  Before starting diagnosis:
16
16
 
17
- 1. Read `specs/bugs/BUG-LOG.md` (if it exists) — check for prior bugs in the same `scope` or with similar symptoms.
17
+ 1. Read `specs/bugs/registry.yaml` (if it exists) — check for prior bugs in the same `scope` or with similar symptoms.
18
18
  2. If a relevant prior bug is found, read the corresponding `specs/bugs/BUG-*.md` file to understand previous root cause analysis and fix approach.
19
19
  3. Note in your investigation whether this is a recurrence, a related issue, or novel.
20
20
 
@@ -71,7 +71,7 @@ Rules:
71
71
 
72
72
  Save the investigation and fix plan to `specs/bugs/BUG-YYYY-MM-DDTHHMMSS.md`. Create the `specs/bugs/` directory if it doesn't exist.
73
73
 
74
- After writing, append a row to `specs/bugs/BUG-LOG.md` with: bug_id (same timestamp), date, severity, priority, scope, summary, and file path. Create `specs/bugs/BUG-LOG.md` if it doesn't exist.
74
+ After writing, append a row to `specs/bugs/registry.yaml` with: bug_id (same timestamp), date, severity, priority, scope, summary, and file path. Create `specs/bugs/registry.yaml` if it doesn't exist.
75
75
 
76
76
  <diagnosis-template>
77
77
 
@@ -92,4 +92,4 @@ Worktree: ../<task-slug>
92
92
  Ready to develop.
93
93
  ```
94
94
 
95
- Suggest next skill: `develop-tdd` to start the TDD loop, or `execute-plan` if `specs/RELEASE-PLAN.md` already exists.
95
+ Suggest next skill: `develop-tdd` to start the TDD loop, or `execute-plan` if `specs/release-plan.yaml + epic shards` already exists.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: map-codebase
3
3
  model: sonnet
4
- description: "High-fidelity codebase surveying — analyzes stack, architecture, and gray areas (error handling, API shapes) and persists them into specs/CONTEXT.md. Goes beyond survey-context by identifying 'signals' for planning."
4
+ description: "High-fidelity codebase surveying — analyzes stack, architecture, and gray areas (error handling, API shapes) and persists them into specs/plans/TECH_STACK_LATEST.md. Goes beyond survey-context by identifying 'signals' for planning."
5
5
  ---
6
6
 
7
7
  # Map Codebase
@@ -36,8 +36,8 @@ Look for signals that will influence upcoming plans:
36
36
  - **Integration Points:** "We need to talk to the Stripe API, but there's no wrapper yet."
37
37
  - **Conventions:** "The team always uses functional components over classes."
38
38
 
39
- ### 5. Persist to specs/CONTEXT.md
40
- Compile all findings into `specs/CONTEXT.md`. This file serves as the project's "Long-Term Memory".
39
+ ### 5. Persist to specs/plans/TECH_STACK_LATEST.md
40
+ Compile all findings into `specs/plans/TECH_STACK_LATEST.md`. This file serves as the project's "Long-Term Memory".
41
41
 
42
42
  ```markdown
43
43
  # Project Context
@@ -64,4 +64,4 @@ Compile all findings into `specs/CONTEXT.md`. This file serves as the project's
64
64
  - When first joining a project.
65
65
  - Before a major refactor or architectural change.
66
66
  - When `survey-context` reveals a lack of domain knowledge.
67
- - To refresh `specs/CONTEXT.md` after significant changes.
67
+ - To refresh `specs/plans/TECH_STACK_LATEST.md` after significant changes.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: migrate-spec
3
3
  model: sonnet
4
- description: Detect GSD, spec-kit, or BMAD spec artifacts in the current project and transform them into bigpowers format (specs/ directory, CONTEXT.md, SCOPE.md, TASKS.md, RELEASE-PLAN.md, ADRs). Use when user has an existing project with foreign spec docs and wants to adopt bigpowers conventions, or says "migrate", "import specs", "convert from GSD/BMAD/spec-kit".
4
+ 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.
5
5
  ---
6
6
 
7
7
  # Migrate Spec
@@ -23,7 +23,7 @@ Before proceeding, check for these rationalization traps:
23
23
  - **Partial artifact set** — only one fingerprint file found (e.g. just `spec.md` with no `plan.md`). Don't assume it's a complete project. Ask: "I found only X — is this the full set of your spec artifacts?"
24
24
  - **Wrong trigger** — user said "migrate my code" or "migrate the database", not "migrate my specs". Confirm before running.
25
25
  - **Stale source** — source artifacts have commit dates older than 6 months with no recent activity. Flag: "These specs appear inactive since <date>. Are they still the source of truth?"
26
- - **Active divergence** — source `STATE.md` or `sprint-status.yaml` shows in-progress work. Flag: "There is active work in flight. Migrating now may lose in-progress context. Proceed?"
26
+ - **Active divergence** — source `state.yaml` or `sprint-status.yaml` shows in-progress work. Flag: "There is active work in flight. Migrating now may lose in-progress context. Proceed?"
27
27
 
28
28
  If any red flag fires: surface it, wait for explicit user confirmation before continuing.
29
29
 
@@ -54,7 +54,7 @@ Detected: GSD
54
54
  Found:
55
55
  ✓ .planning/ROADMAP.md
56
56
  ✓ .planning/REQUIREMENTS.md (12 REQ-XX items)
57
- ✓ .planning/STATE.md
57
+ ✓ .planning/state.yaml
58
58
  ✓ .planning/phases/01-auth/01-CONTEXT.md
59
59
  ✗ .planning/METHODOLOGY.md (not present)
60
60
 
@@ -80,9 +80,9 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
80
80
 
81
81
  → verify: `ls specs/*.md 2>/dev/null | head -15`
82
82
 
83
- ### Step 4 — Generate STATE.md
83
+ ### Step 4 — Generate state.yaml
84
84
 
85
- Always regenerate `specs/STATE.md` from scratch in bigpowers format:
85
+ Always regenerate `specs/state.yaml` from scratch in bigpowers format:
86
86
 
87
87
  ```markdown
88
88
  # Session State: <project name>
@@ -107,7 +107,7 @@ Migrated from <framework> on <date>. Next: review generated specs and run plan-w
107
107
  - [ ] Run plan-work to produce first release plan
108
108
  ```
109
109
 
110
- → verify: `[ -f specs/STATE.md ] && echo "ok" || echo "MISSING: specs/STATE.md not created"`
110
+ → verify: `[ -f specs/state.yaml ] && echo "ok" || echo "MISSING: specs/state.yaml not created"`
111
111
 
112
112
  ### Step 5 — Surface learnings (optional)
113
113
 
@@ -115,7 +115,7 @@ After migration, offer the user a brief analysis of what the source framework di
115
115
 
116
116
  Use the learnings table from [REFERENCE.md](./REFERENCE.md#learnings-to-adopt). Present as checkboxes so the user can decide which to adopt.
117
117
 
118
- → verify: `grep -c "\- \[ \]" specs/STATE.md 2>/dev/null && echo "pending items recorded" || echo "no pending items in STATE.md"`
118
+ → verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`
119
119
 
120
120
  ---
121
121
 
@@ -125,18 +125,18 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
125
125
 
126
126
  | Source | Target |
127
127
  |--------|--------|
128
- | GSD `ROADMAP.md` | `specs/RELEASE-PLAN.md` |
129
- | GSD `REQUIREMENTS.md` | `specs/SCOPE.md` |
130
- | GSD `CONTEXT.md` (phases) | `specs/CONTEXT.md` + `specs/adr/` |
128
+ | GSD `ROADMAP.md` | `specs/release-plan.yaml + epic shards` |
129
+ | GSD `REQUIREMENTS.md` | `specs/requirements/SCOPE_LATEST.yaml` |
130
+ | GSD `CONTEXT.md` (phases) | `specs/plans/TECH_STACK_LATEST.md` + `specs/adr/` |
131
131
  | GSD `PLAN.md` | `specs/PLAN-vX.Y.Z.md` |
132
132
  | GSD `METHODOLOGY.md` | `specs/SPIKE-methodology.md` |
133
- | spec-kit `spec.md` | `specs/SCOPE.md` + `specs/CONTEXT.md` |
134
- | spec-kit `plan.md` | `specs/CONTEXT.md` + `specs/PLAN.md` |
135
- | spec-kit `tasks.md` | `specs/TASKS.md` |
136
- | BMAD `prd.md` | `specs/SCOPE.md` |
137
- | BMAD `architecture.md` | `specs/CONTEXT.md` + `specs/adr/` |
138
- | BMAD `epic-*.md` | `specs/RELEASE-PLAN.md` |
139
- | BMAD `story-*.md` | `specs/TASKS.md` |
133
+ | spec-kit `spec.md` | `specs/requirements/SCOPE_LATEST.yaml` + `specs/plans/TECH_STACK_LATEST.md` |
134
+ | spec-kit `plan.md` | `specs/plans/TECH_STACK_LATEST.md` + `specs/PLAN.md` |
135
+ | spec-kit `tasks.md` | `specs/epics/ (see slice-tasks)` |
136
+ | BMAD `prd.md` | `specs/requirements/SCOPE_LATEST.yaml` |
137
+ | BMAD `architecture.md` | `specs/plans/TECH_STACK_LATEST.md` + `specs/adr/` |
138
+ | BMAD `epic-*.md` | `specs/release-plan.yaml + epic shards` |
139
+ | BMAD `story-*.md` | `specs/epics/ (see slice-tasks)` |
140
140
  | BMAD `project-context.md` | `CLAUDE.md` (append project-specific section) |
141
141
  | BMAD `decision-log.md` | `specs/adr/` (one ADR per logged decision) |
142
142
 
@@ -147,5 +147,5 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
147
147
  - **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX become inline comments in bigpowers targets. Never silently renumber.
148
148
  - **Never merge contradictory docs** — if source has both `CONTEXT.md` and `architecture.md`, create sections in bigpowers `CONTEXT.md`; don't collapse them.
149
149
  - **ADRs are opt-in** — only create an ADR when: hard to reverse, surprising without context, result of a real trade-off. Lightweight decisions go to `specs/DECISION-LOG.md`.
150
- - **STATE.md is always regenerated** — never migrate source STATE verbatim; bigpowers STATE.md needs its own format.
150
+ - **state.yaml is always regenerated** — never migrate source STATE verbatim; bigpowers state.yaml needs its own format.
151
151
  - **specs/ is the only output location** — no files are created outside `specs/` and `CLAUDE.md`.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: model-domain
3
3
  model: sonnet
4
- description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates specs/CONTEXT.md and specs/adr/ inline as decisions crystallise. Use when user wants to stress-test a plan against their project's domain language and documented decisions.
4
+ description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates specs/plans/TECH_STACK_LATEST.md and specs/adr/ inline as decisions crystallise. Use when user wants to stress-test a plan against their project's domain language and documented decisions.
5
5
  ---
6
6
 
7
7
  Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
@@ -46,13 +46,13 @@ If a `specs/CONTEXT-MAP.md` exists, the repo has multiple contexts. The map poin
46
46
  └── adr/
47
47
  ```
48
48
 
49
- Create files lazily — only when you have something to write. If no `specs/CONTEXT.md` exists, create it when the first term is resolved. If no `specs/adr/` exists, create it when the first ADR is needed.
49
+ Create files lazily — only when you have something to write. If no `specs/plans/TECH_STACK_LATEST.md` exists, create it when the first term is resolved. If no `specs/adr/` exists, create it when the first ADR is needed.
50
50
 
51
51
  ## During the session
52
52
 
53
53
  ### Challenge against the glossary
54
54
 
55
- When the user uses a term that conflicts with the existing language in `specs/CONTEXT.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
55
+ When the user uses a term that conflicts with the existing language in `specs/plans/TECH_STACK_LATEST.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
56
56
 
57
57
  ### Sharpen fuzzy language
58
58
 
@@ -66,11 +66,11 @@ When domain relationships are being discussed, stress-test them with specific sc
66
66
 
67
67
  When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
68
68
 
69
- ### Update specs/CONTEXT.md inline
69
+ ### Update specs/plans/TECH_STACK_LATEST.md inline
70
70
 
71
- When a term is resolved, update `specs/CONTEXT.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md).
71
+ When a term is resolved, update `specs/plans/TECH_STACK_LATEST.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md).
72
72
 
73
- Don't couple `specs/CONTEXT.md` to implementation details. Only include terms that are meaningful to domain experts.
73
+ Don't couple `specs/plans/TECH_STACK_LATEST.md` to implementation details. Only include terms that are meaningful to domain experts.
74
74
 
75
75
  ### Offer ADRs sparingly
76
76
 
@@ -89,4 +89,4 @@ When the plan touches shared state, async, or multi-threaded code:
89
89
  - [ ] List every **shared mutable** location (globals, singletons, module-level caches).
90
90
  - [ ] For each: who reads, who writes, synchronization mechanism (lock, actor, immutable copy).
91
91
  - [ ] Flag **race risks** (check-then-act, non-atomic read-modify-write) with severity.
92
- - [ ] Record findings in `specs/CONTEXT.md` under `## Concurrency` or in an ADR if architectural.
92
+ - [ ] Record findings in `specs/plans/TECH_STACK_LATEST.md` under `## Concurrency` or in an ADR if architectural.
@@ -34,16 +34,13 @@ See [REFERENCE.md](REFERENCE.md) for detailed phase specifications and gate type
34
34
 
35
35
  ## How Orchestrate Works
36
36
 
37
- 1. **Maintains STATE.md** — Tracks current phase, artifacts, decisions, risks.
38
- 2. **Spawns appropriate skills** — Reads each skill's `model:` frontmatter and routes (haiku/sonnet/opus). Calls survey-context, research-first, elaborate-spec, plan-work, develop-tdd, verify-work, run-evals, etc. Decisions pass only via `specs/STATE.md` between spawns.
39
- 3. **Methodology lenses** — If `specs/METHODOLOGY.md` exists, apply active reasoning modes (STRIDE, Cost-of-Delay) at phase gates.
37
+ 1. **Maintains state.yaml** — Tracks current phase, `active_epic`, `active_flow`, decisions, risks.
38
+ 2. **Spawns appropriate skills** — Routes by `model:` frontmatter. Decisions pass only via `specs/state.yaml` `handoff` between spawns.
39
+ 3. **Methodology lenses** — If `specs/plans/TEST_PLAN_LATEST.md` or ADRs exist, apply at phase gates.
40
40
  4. **Enforces gates** — Hard stops if success criteria not met.
41
- 5. **The Gatekeeper** (v1.19.0) — Between every Story implementation in PHASE 4:
42
- - READ `specs/RELEASE-PLAN.md` to verify completion.
43
- - REQUIRE that the previous Story is marked `[x] Done`.
44
- - REFUSE to call `update_topic` for a new Story until the previous one is physically evidenced as complete.
41
+ 5. **The Gatekeeper** — Between stories in BUILD: read `specs/execution-status.yaml`; previous story must be `done` before starting the next; use `build-epic` for the 8-step epic cycle.
45
42
  6. **Pauses for confirmation** — After each phase, asks "Ready to proceed?".
46
- 7. **Archives history** — Saves RELEASE-PLAN snapshots as specs/RELEASE-PLAN-vX.Y.Z.md when needed.
43
+ 7. **Snapshots** — `bash scripts/bp-yaml-snapshot.sh` before major release cuts.
47
44
 
48
45
  ## Orchestration Modes
49
46
 
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "1.2.3",
4
- "description": "59 agent skills for spec-driven, test-first software development by solo developers",
3
+ "version": "1.3.0",
4
+ "description": "61 agent skills for spec-driven, test-first software development by solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "compliance": "bash scripts/audit-compliance.sh specs/audit/features",
8
8
  "sync": "bash scripts/sync-skills.sh",
9
+ "validate-specs": "bash scripts/validate-specs-yaml.sh",
10
+ "enrich-epics": "bash scripts/enrich-epics-from-archive.sh",
9
11
  "version": "bash scripts/sync-skills.sh && git add .gemini/extensions/bigpowers/gemini-extension.json specs/SKILL-SEARCH-INDEX.md",
10
12
  "install": "bash scripts/install.sh",
11
13
  "postinstall": "bash scripts/sync-skills.sh && bash scripts/install.sh",
@@ -1,76 +1,100 @@
1
1
  ---
2
2
  name: plan-release
3
3
  model: sonnet
4
- description: Convert elaborated specs into a structured release plan with Gherkin acceptance criteria and WSJF-sorted epics. Produces specs/RELEASE-PLAN.md. Use when a spec is clear and ready to plan, after elaborate-spec, or when the user wants a release plan broken into epics and stories.
4
+ description: Convert elaborated specs into a structured release plan with Gherkin acceptance criteria and WSJF-sorted epics. Produces specs/release-plan.yaml and specs/epics/eNN-*.yaml. Use when a spec is clear and ready to plan, after elaborate-spec, or when the user wants a release plan broken into epics and stories.
5
5
  ---
6
6
 
7
7
  # Plan Release
8
8
 
9
9
  > **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
10
10
 
11
- Synthesize the conversation context into `specs/RELEASE-PLAN.md`. No new interview only clarify if something is genuinely ambiguous.
11
+ > **HARD GATE** `specs/requirements/SCOPE_LATEST.yaml` (or legacy `specs/requirements/SCOPE_LATEST.yaml`) must exist. If missing, run `scope-work` first.
12
+
13
+ Synthesize the conversation context into `specs/release-plan.yaml` (index) and shard detail under `specs/epics/`. No new interview — only clarify if something is genuinely ambiguous.
14
+
15
+ ## Outputs
16
+
17
+ | File | Content |
18
+ |------|---------|
19
+ | `specs/release-plan.yaml` | `release.version`, semver bump hint, WSJF-ordered epic list (`id: e01`, `file:`, `mode:`) — **no story status** |
20
+ | `specs/epics/eNN-<slug>.yaml` | Epic metadata, `covers: [fr-x]`, stories with tasks and `verify:` |
21
+ | `specs/execution-status.yaml` | Regenerate keys via `bash scripts/sync-status-from-epics.sh` after epics exist |
12
22
 
13
23
  ## Process
14
24
 
15
25
  ### 1. Draft epics and stories
16
26
 
17
27
  From the conversation context, define:
18
- - **Epics** — major capability areas (Priority: P1/P2/P3 | Value: High/Med/Low | Effort: S/M/L)
19
- - **Stories** — "As a [actor], I want [feature] so that [benefit]"
28
+ - **Epics** — `e01`, `e02`, (stable IDs; WSJF order in `release-plan.yaml` only)
29
+ - **Stories** — `e01s01`, `e01s02`, with Gherkin acceptance criteria
20
30
 
21
31
  WSJF-sort epics: score = (Business Value + Time Criticality + Risk Reduction) / Job Size. Highest score first.
22
32
 
23
33
  ### 2. Write acceptance criteria (Gherkin)
24
34
 
25
- For each story, write at least one happy-path and one edge-case scenario:
26
-
27
- ```
28
- Acceptance Criteria:
29
- Feature: [name]
30
- Scenario: [happy path]
31
- Given [initial state]
32
- When [user action]
33
- Then [observable outcome]
34
- Scenario: [edge case]
35
- Given ...
36
- When ...
37
- Then ...
38
- ```
35
+ For each story, write at least one happy-path and one edge-case scenario (countable format §17 if maturity ≥ 3).
39
36
 
40
37
  ### 3. Write tasks with verify commands
41
38
 
42
- Under each story, list implementation tasks:
39
+ Every task must have a `verify:` command. No verify command = not a task.
43
40
 
44
- ```
45
- Tasks:
46
- - [ ] Write failing test for scenario 1 → verify: <cmd>
47
- - [ ] Implement [module/function] → verify: <cmd>
48
- - [ ] Integrate and smoke-test → verify: <cmd>
41
+ ### 4. Save specs/release-plan.yaml
42
+
43
+ ```yaml
44
+ release:
45
+ version: "3.0.0"
46
+ codename: "Feature Name"
47
+ status: planning # planning | in_progress | released
48
+ semantic_release: true
49
+ bump_hint: minor # patch | minor | major — CI decides at merge
50
+ epics:
51
+ - id: e01
52
+ title: Security
53
+ wsjf: 4.5
54
+ file: epics/e01-security.yaml
55
+ mode: flat # flat | folder (folder if >5 stories)
56
+ - id: e02
57
+ title: Verification
58
+ wsjf: 4.3
59
+ file: epics/e02-verification/epic.yaml
60
+ mode: folder
49
61
  ```
50
62
 
51
- Every task must have a `verify:` command. No verify command = not a task.
63
+ ### 5. Save epic shards
64
+
65
+ **Flat** (`mode: flat`, ≤ ~5 stories):
66
+
67
+ ```yaml
68
+ id: e01
69
+ title: Security
70
+ wsjf: 4.5
71
+ covers: [fr-08]
72
+ stories:
73
+ - id: e01s01
74
+ title: Guard git hooks
75
+ tasks:
76
+ - desc: Block push on main
77
+ verify: "grep -q guard-git .cursor/rules/guard-git.mdc"
78
+ ```
52
79
 
53
- ### 4. Save specs/RELEASE-PLAN.md
80
+ **Folder GSD** (`mode: folder`): `epics/e02-verification/epic.yaml` + `stories/e02s01-*.md` with YAML frontmatter for tasks.
54
81
 
55
- ```
56
- ## Epic 1: [Name]
57
- Priority: P1 | Value: High | Effort: M | WSJF: [score]
82
+ → verify: `bash scripts/validate-specs-yaml.sh`
58
83
 
59
- ### Story 1.1: As a [actor], I want [feature] so that [benefit]
60
- Status: [ ] Not started
84
+ verify: `grep -c 'id: e' specs/release-plan.yaml`
61
85
 
62
- Acceptance Criteria:
63
- Feature: ...
64
- Scenario: ...
86
+ ### 6. Sync execution status
65
87
 
66
- Tasks:
67
- - [ ] ... → verify: <cmd>
88
+ ```bash
89
+ bash scripts/sync-status-from-epics.sh
68
90
  ```
69
91
 
70
- verify: `grep -c "Scenario:" specs/RELEASE-PLAN.md`
92
+ ### 7. Snapshot on planning close (optional)
93
+
94
+ Copy to `specs/requirements/snapshots/release-<version>/` when the user approves the plan.
71
95
 
72
- ### 5. Suggest next steps
96
+ ### 8. Suggest next steps
73
97
 
74
98
  - Run `assess-impact` before `plan-work` for any story touching existing modules.
75
- - Run `plan-work` per story to produce the detailed step-by-step plan.
99
+ - Run `plan-work` per story for detailed steps inside the epic shard.
76
100
  - Run `change-request` if a new requirement arrives mid-flight.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: plan-work
3
3
  model: opus
4
- description: Write a detailed implementation plan to specs/RELEASE-PLAN.md. Every step must include a runnable verify command (Karpathy verification template). Use when user has a task to implement and needs a step-by-step plan with evidence checkpoints, or after plan-release produces specs/RELEASE-PLAN.md.
4
+ description: Write detailed implementation tasks into the active epic shard (specs/epics/eNN-*.yaml). Every task must include a runnable verify command. Use when user needs step-by-step plan with evidence, or after plan-release.
5
5
  ---
6
6
 
7
7
  # Plan Work
8
8
 
9
- Produce a detailed, verifiable implementation plan in `specs/RELEASE-PLAN.md`. Every step must be paired with a runnable verify command — "I think it works" is not a step.
9
+ Produce a detailed, verifiable implementation plan in the **active epic shard** (`specs/epics/eNN-*.yaml` under the target story's `tasks[]`). Every step must be paired with a runnable verify command — "I think it works" is not a step.
10
10
 
11
11
  > **HARD GATE** — Do NOT proceed with a plan until the task's success criteria are clear. If success is ambiguous, run `define-success` first to convert the task into "step → verify: <cmd>" pairs.
12
12
  >
@@ -16,7 +16,7 @@ Produce a detailed, verifiable implementation plan in `specs/RELEASE-PLAN.md`. E
16
16
 
17
17
  Before writing the plan, check if `define-success` has been run. If the task's success criteria are unclear, run `define-success` first to convert the task into "step → verify: <cmd>" pairs.
18
18
 
19
- Read any existing `specs/` files: RELEASE-PLAN.md, SCOPE.md, TASKS.md, CONTEXT.md, UBIQUITOUS_LANGUAGE.md.
19
+ Read any existing `specs/` files: `release-plan.yaml`, `requirements/SCOPE_LATEST.yaml`, active `epics/*.yaml`, `plans/TECH_STACK_LATEST.md`, `requirements/GLOSSARY_LATEST.yaml`.
20
20
 
21
21
  > **ZOOM-OUT MANDATE** (v1.17.0 Guardrails) — If this plan modifies an existing module, function, or behavior:
22
22
  > 1. State the module's **purpose** — what is it responsible for?
@@ -58,9 +58,9 @@ Break the implementation into the smallest possible steps where each step:
58
58
 
59
59
  **Red-flag check**: before moving to Step 3, name any rationalization you caught yourself making — skipping a gate, adding out-of-scope steps, omitting a verify command. Write them out; do not suppress them.
60
60
 
61
- ### 3. Write specs/RELEASE-PLAN.md
61
+ ### 3. Write epic shard tasks
62
62
 
63
- Append the detailed steps under the relevant story in `specs/RELEASE-PLAN.md`. Create the `specs/` directory if it doesn't exist.
63
+ Append tasks under the relevant story in `specs/epics/{epic-id}-*.yaml` (`tasks[]` with `desc` + `verify`). Update `specs/release-plan.yaml` if a new story is needed. Run `bash scripts/sync-status-from-epics.sh` after structural changes.
64
64
 
65
65
  <plan-template>
66
66
 
@@ -126,4 +126,4 @@ Before finalizing, confirm:
126
126
  - Is the granularity right (not too coarse, not too fine)?
127
127
  - Are the verify commands actually runnable in this project?
128
128
 
129
- After writing `specs/RELEASE-PLAN.md`, suggest `kickoff-branch` (if not already on a feature branch) then `execute-plan` or `develop-tdd`.
129
+ After writing epic tasks, suggest `kickoff-branch` (if not already on a feature branch) then `build-epic`, `execute-plan`, or `develop-tdd`.
@@ -10,10 +10,10 @@ model: sonnet
10
10
 
11
11
  ## Process
12
12
 
13
- 1. Read `specs/SCOPE.md`, `specs/RELEASE-PLAN.md`, and the current task statement.
13
+ 1. Read `specs/requirements/SCOPE_LATEST.yaml`, `specs/release-plan.yaml + epic shards`, and the current task statement.
14
14
  2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.
15
15
  3. For each candidate: note name, URL/path, fit (adopt | extend | compose | build).
16
- 4. Append `## Prior Art` to the active spec (SCOPE.md or story in RELEASE-PLAN.md).
16
+ 4. Append `## Prior Art` to `requirements/SCOPE_LATEST.yaml` notes or the active epic story.
17
17
 
18
18
  ## Outcome matrix
19
19
 
@@ -26,6 +26,6 @@ model: sonnet
26
26
 
27
27
  ## Verify
28
28
 
29
- → verify: `grep -c "Prior Art" specs/SCOPE.md specs/RELEASE-PLAN.md 2>/dev/null | awk '{s+=$1} END {if(s>0) print "OK"; else print "MISSING"}'`
29
+ → verify: `grep -c "Prior Art" specs/requirements/SCOPE_LATEST.yaml specs/release-plan.yaml + epic shards 2>/dev/null | awk '{s+=$1} END {if(s>0) print "OK"; else print "MISSING"}'`
30
30
 
31
31
  See [REFERENCE.md](REFERENCE.md) for search commands and registry checklist.