bigpowers 1.2.3 → 1.3.1

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 (65) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/CLAUDE.md +5 -4
  3. package/CONVENTIONS.md +55 -13
  4. package/README.md +10 -8
  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/REFERENCE.md +3 -3
  10. package/compose-workflow/SKILL.md +1 -1
  11. package/deepen-architecture/SKILL.md +6 -6
  12. package/define-success/SKILL.md +1 -1
  13. package/delegate-task/SKILL.md +4 -4
  14. package/develop-tdd/SKILL.md +5 -5
  15. package/dispatch-agents/SKILL.md +2 -2
  16. package/evolve-skill/SKILL.md +2 -2
  17. package/execute-plan/SKILL.md +22 -59
  18. package/fix-bug/SKILL.md +37 -0
  19. package/grill-with-docs/SKILL.md +1 -1
  20. package/inspect-quality/SKILL.md +5 -5
  21. package/investigate-bug/SKILL.md +2 -2
  22. package/kickoff-branch/SKILL.md +1 -1
  23. package/map-codebase/SKILL.md +4 -4
  24. package/migrate-spec/REFERENCE-GSD.md +35 -41
  25. package/migrate-spec/REFERENCE.md +43 -44
  26. package/migrate-spec/SKILL.md +20 -20
  27. package/model-domain/SKILL.md +7 -7
  28. package/orchestrate-project/REFERENCE.md +10 -10
  29. package/orchestrate-project/SKILL.md +13 -16
  30. package/package.json +7 -7
  31. package/plan-release/SKILL.md +63 -39
  32. package/plan-work/SKILL.md +6 -6
  33. package/request-review/SKILL.md +2 -2
  34. package/research-first/SKILL.md +3 -3
  35. package/run-evals/REFERENCE.md +1 -1
  36. package/run-planning/SKILL.md +24 -0
  37. package/scope-work/SKILL.md +6 -6
  38. package/scripts/bp-yaml-set.sh +9 -0
  39. package/scripts/bp-yaml-snapshot.sh +23 -0
  40. package/scripts/convert-legado.sh +153 -0
  41. package/scripts/enrich-epics-from-archive.sh +101 -0
  42. package/scripts/land-branch.sh +5 -1
  43. package/scripts/project-survey.sh +18 -9
  44. package/scripts/sync-bugs-registry.sh +53 -0
  45. package/scripts/sync-skills.sh +5 -5
  46. package/scripts/sync-status-from-epics.sh +51 -0
  47. package/scripts/validate-specs-yaml.sh +41 -0
  48. package/scripts/yaml-tools.py +144 -0
  49. package/seed-conventions/SKILL.md +3 -3
  50. package/session-state/SKILL.md +59 -50
  51. package/setup-environment/SKILL.md +1 -1
  52. package/slice-tasks/SKILL.md +6 -6
  53. package/spike-prototype/SKILL.md +5 -5
  54. package/survey-context/SKILL.md +38 -27
  55. package/trace-requirement/SKILL.md +8 -8
  56. package/using-bigpowers/SKILL.md +10 -9
  57. package/validate-fix/SKILL.md +4 -4
  58. package/verify-work/SKILL.md +12 -17
  59. package/visual-dashboard/SKILL.md +25 -74
  60. package/visual-dashboard/scripts/cockpit.html +66 -0
  61. package/visual-dashboard/scripts/read-specs-status.cjs +123 -0
  62. package/visual-dashboard/scripts/server.cjs +40 -0
  63. package/write-document/SKILL.md +1 -1
  64. package/maintain-wiki/SKILL.md +0 -130
  65. package/profiles/obsidian-wiki.md +0 -120
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: session-state
3
3
  model: haiku
4
- description: Track implementation decisions and progress in specs/STATE.md to prevent context rot. Use at the start of a session to load context, and whenever a significant decision is made or a milestone is reached.
4
+ description: Track implementation decisions and progress in specs/state.yaml to prevent context rot. Use at the start of a session to load context, and whenever a significant decision is made or a milestone is reached.
5
5
  ---
6
6
 
7
7
  # Session State
@@ -10,82 +10,91 @@ Track the current state of implementation, including decisions made, pending tas
10
10
 
11
11
  ## Goal
12
12
 
13
- Maintain a single source of truth for the *current* state of the work in `specs/STATE.md`. This file acts as the project's short-term memory, complementing the long-term memory of `specs/CONTEXT.md` and the task-specific instructions in `specs/RELEASE-PLAN.md`.
13
+ Maintain a single source of truth for the *current* session in `specs/state.yaml`. This complements long-term docs in `specs/plans/` and delivery detail in `specs/epics/` + `specs/release-plan.yaml`.
14
14
 
15
- ## Handoff block (cold start)
15
+ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT when YAML exists — use `specs/state.yaml` only.
16
16
 
17
- When ending a session or before a context-heavy spawn, write a **Handoff** section at the top of STATE.md:
17
+ ## Handoff block (cold start)
18
18
 
19
- ```markdown
20
- ## Handoff
21
- - **Last step completed:** ...
22
- - **Open decisions:** ...
23
- - **Required reading:** CONVENTIONS.md, RELEASE-PLAN.md story X.Y, ...
24
- - **Next skill:** verify-work | develop-tdd | ...
19
+ When ending a session or before a context-heavy spawn, update `handoff` in `state.yaml`:
20
+
21
+ ```yaml
22
+ handoff:
23
+ last_step_completed: "e02s01 verify-work passed"
24
+ open_decisions:
25
+ - "Use folder mode for e07 (>5 stories)"
26
+ required_reading:
27
+ - CONVENTIONS.md
28
+ - specs/epics/e02-verification/epic.yaml
29
+ next_skill: develop-tdd
25
30
  ```
26
31
 
27
32
  ## Strategic compaction
28
33
 
29
34
  | Trigger | Action |
30
35
  |---------|--------|
31
- | Phase transition (Plan → Build → Verify) | Compact Handoff; archive verbose decisions to ADR |
36
+ | Phase transition (Plan → Build → Verify) | Compact handoff; archive verbose decisions to ADR |
32
37
  | Context > 70% estimated | Run terse-mode for status only; move detail to specs/ |
33
- | Before `dispatch-agents` wave | STATE.md only channel between spawns |
38
+ | Before `dispatch-agents` wave | `state.yaml` only channel between spawns |
34
39
 
35
40
  ## Workflow
36
41
 
37
42
  ### 1. Initialize (Session Start)
38
43
 
39
- If `specs/STATE.md` does not exist, or if starting a new major phase:
44
+ If `specs/state.yaml` does not exist, or if starting a new major phase:
40
45
 
41
- - [ ] Read `specs/RELEASE-PLAN.md` and `specs/SCOPE.md`.
42
- - [ ] Get git metadata: `git branch --show-current` and `git rev-parse HEAD`.
43
- - [ ] Create `specs/STATE.md` with the current milestone, git metadata, pending tasks, and any active decisions.
46
+ - [ ] Read `specs/release-plan.yaml` and `specs/requirements/SCOPE_LATEST.yaml`.
47
+ - [ ] Get git metadata: `git branch --show-current` and `git rev-parse --short HEAD`.
48
+ - [ ] Create `specs/state.yaml` with active flow, git, handoff, and epic cycle if in build.
44
49
 
45
50
  ### 2. Load (Context Refresh)
46
51
 
47
52
  When starting a new session or after a significant context flush:
48
53
 
49
- - [ ] Read `specs/STATE.md` to understand where the previous agent left off.
50
- - [ ] Verify the current state matches the actual codebase (run `git branch` and `git diff`).
51
- - [ ] Surface any discrepancies between recorded git hash and current hash.
54
+ - [ ] Read `specs/state.yaml` to understand where the previous agent left off.
55
+ - [ ] Read `specs/execution-status.yaml` for story progress (do not infer from release-plan).
56
+ - [ ] Verify git matches `state.yaml` `git.branch` / `git.hash`.
52
57
 
53
58
  ### 3. Update (Decision Point/Milestone)
54
59
 
55
60
  Whenever a significant decision is made or a milestone is reached:
56
61
 
57
- - [ ] Update git metadata if the branch or hash has changed.
58
- - [ ] Update the `Active Decisions` section with the rationale for the choice.
59
- - [ ] Mark completed tasks as done.
60
- - [ ] Add new pending tasks discovered during implementation.
61
- - [ ] Record any "Open Questions" that need user clarification.
62
-
63
- ## File Format: specs/STATE.md
64
-
65
- ```markdown
66
- # Session State: [Feature Name]
67
-
68
- ## Current Milestone
69
- [What is being worked on right now]
70
-
71
- ## Git Metadata
72
- - **Branch**: [branch-name]
73
- - **Hash**: [commit-hash]
74
-
75
- ## Pending Tasks
76
- ...
77
- ```
78
- - [ ] Task 2
79
-
80
- ## Active Decisions
81
- - **Decision Name**: [Rationale and impact]
82
-
83
- ## Open Questions
84
- - [Question for the user]
62
+ - [ ] Patch via `bash scripts/bp-yaml-set.sh specs/state.yaml git.hash <hash>` (or edit directly).
63
+ - [ ] Update `handoff.open_decisions` with rationale.
64
+ - [ ] Update `epic_cycle` when advancing `ship-epic` steps.
65
+ - [ ] Record open questions under `handoff.open_decisions` or an ADR.
66
+
67
+ → verify: `bash scripts/validate-specs-yaml.sh`
68
+
69
+ ## File Format: specs/state.yaml
70
+
71
+ ```yaml
72
+ active_flow: build_epic # planning | build_epic | fix_bug
73
+ active_epic_id: e02
74
+ active_story_id: e02s01 # required when epic mode: folder
75
+ active_bug_id: null # BUG-2026-06-01T143022 when fix_bug
76
+ release:
77
+ target_version: "3.0.0"
78
+ last_tag: null
79
+ last_publish: null
80
+ epic_cycle:
81
+ current_step: develop-tdd
82
+ next_skill: develop-tdd
83
+ completed_steps: [kickoff-branch]
84
+ bug_cycle:
85
+ current_step: null
86
+ completed_steps: []
87
+ git:
88
+ branch: feat/e02-verify
89
+ hash: abc1234
90
+ handoff:
91
+ last_step_completed: null
92
+ open_decisions: []
93
+ next_skill: survey-context
85
94
  ```
86
95
 
87
96
  ## Anti-Patterns
88
97
 
89
- - **Duplicate Plan**: Don't just copy `specs/RELEASE-PLAN.md`. The plan is the *intended* path; the state is the *actual* progress and the deviations from that path.
90
- - **Stale State**: Forgetting to update `specs/STATE.md` after a major refactor or decision.
91
- - **Verbose History**: Keep it focused on the *current* state. Use git history for the past.
98
+ - **Duplicate Plan**: Don't copy `release-plan.yaml` or epic shards into `state.yaml`.
99
+ - **Stale State**: Forgetting to update `state.yaml` after a major refactor or decision.
100
+ - **Status in release-plan**: Story/epic status lives only in `execution-status.yaml`.
@@ -15,7 +15,7 @@ Idempotent prep so BUILD phase commands succeed on first run.
15
15
  3. Install dependencies (`npm ci`, `bundle install`, etc.) — prefer lockfile installs.
16
16
  4. Copy `.env.example` → `.env` if documented; never commit secrets.
17
17
  5. Run smoke: lint + one fast test or `--version` on key tools.
18
- 6. Record versions in `specs/STATE.md` under Environment.
18
+ 6. Record versions in `specs/state.yaml` under Environment.
19
19
 
20
20
  ## Verify
21
21
 
@@ -1,22 +1,22 @@
1
1
  ---
2
2
  name: slice-tasks
3
- description: Break a plan or PRD into independently-grabbable vertical-slice tasks in specs/TASKS.md. Use after scope-work or plan-release, before plan-work, when user wants implementation tickets or tracer-bullet slices.
3
+ description: Break a plan or PRD into vertical-slice stories in specs/epics/ (replaces legacy TASKS.md). Use after scope-work or plan-release, before plan-work.
4
4
  model: sonnet
5
5
  ---
6
6
 
7
7
  # Slice Tasks
8
8
 
9
- Produce `specs/TASKS.md` — vertical slices, each independently deliverable and testable.
9
+ Produce **epic shard stories** in `specs/epics/eNN-*.yaml` — vertical slices, each independently deliverable and testable. Legacy `specs/epics/ (see slice-tasks)` is deprecated; use epics + `execution-status.yaml`.
10
10
 
11
11
  ## Process
12
12
 
13
- 1. Read `specs/SCOPE.md` and/or `specs/RELEASE-PLAN.md`.
13
+ 1. Read `specs/requirements/SCOPE_LATEST.yaml` and/or `specs/release-plan.yaml`.
14
14
  2. Cut **tracer-bullet slices** (thin end-to-end paths first, then depth).
15
- 3. Each task entry: `id`, `title`, `depends-on:` (optional), `verify:` command, `story:` link.
16
- 4. Order by WSJF within the file.
15
+ 3. Each story: `id` (e.g. `e03s01`), `title`, optional `depends-on` in task desc, `tasks[]` with `desc` + `verify`.
16
+ 4. Order by WSJF in `release-plan.yaml` epic list.
17
17
 
18
18
  > **HARD GATE** — No horizontal-only slices ("add all models") without a vertical path that proves integration.
19
19
 
20
20
  ## Verify
21
21
 
22
- → verify: `test -f specs/TASKS.md && grep -c "verify:" specs/TASKS.md | awk '{if($1>0) print "OK"; else print "MISSING"}'`
22
+ → verify: `grep -c 'id: e' specs/epics/*.yaml | awk '{if($1>0) print "OK"; else print "MISSING"}'`
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: spike-prototype
3
3
  model: sonnet
4
- description: Throw-away prototype for unknown problem spaces. Output is learning notes in specs/SPIKE-<name>.md, not production code. Use when the domain or technology is unexplored, when estimates are impossible without experimentation, or when user says "spike", "prototype", or "proof of concept".
4
+ description: Throw-away prototype for unknown problem spaces. Output is learning notes in specs/archive/spikes/SPIKE-<name>.md, not production code. Use when the domain or technology is unexplored, when estimates are impossible without experimentation, or when user says "spike", "prototype", or "proof of concept".
5
5
  ---
6
6
 
7
7
  # Spike Prototype
8
8
 
9
- A spike is a time-boxed experiment to answer a specific question. The code is thrown away. The learning is kept in `specs/SPIKE-<name>.md`.
9
+ A spike is a time-boxed experiment to answer a specific question. The code is thrown away. The learning is kept in `specs/archive/spikes/SPIKE-<name>.md`.
10
10
 
11
11
  **The spike produces learning, not code to ship.** If you find yourself cleaning up spike code for production, stop — run `plan-work` and `develop-tdd` instead with the insights you gained.
12
12
 
@@ -46,9 +46,9 @@ Write the simplest code that could answer the question. Ignore:
46
46
 
47
47
  Focus entirely on answering the question.
48
48
 
49
- ### 4. Write specs/SPIKE-<name>.md
49
+ ### 4. Write specs/archive/spikes/SPIKE-<name>.md
50
50
 
51
- Save the learning to `specs/SPIKE-<name>.md`. Create the `specs/` directory if it doesn't exist.
51
+ Save the learning to `specs/archive/spikes/SPIKE-<name>.md`. Create the `specs/` directory if it doesn't exist.
52
52
 
53
53
  <spike-template>
54
54
 
@@ -90,4 +90,4 @@ After writing the findings, delete or discard the spike code. It is not meant to
90
90
 
91
91
  ### 6. Feed back into plan-work
92
92
 
93
- The spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs/SPIKE-<name>.md`.
93
+ The spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs/archive/spikes/SPIKE-<name>.md`.
@@ -14,23 +14,30 @@ Read the project's current state and give a phase map + next-skill recommendatio
14
14
 
15
15
  If `CONVENTIONS.md` exists at the project root, read it first. It contains the rules all agents must follow in this project.
16
16
 
17
- ### 2. Read specs/
17
+ ### 2. Read specs/ (YAML-first)
18
18
 
19
19
  Scan the `specs/` directory if it exists:
20
20
 
21
21
  ```
22
22
  specs/
23
- ├── CONTEXT.md domain model status
24
- ├── UBIQUITOUS_LANGUAGE.md glossary status
25
- ├── SCOPE.md scope definition status
26
- ├── TASKS.md task breakdown status
27
- ├── RELEASE-PLAN.md → implementation plan status
28
- ├── REFACTOR.md → refactor plan status
29
- ├── bugs/ → bug investigations (BUG-*.md) + BUG-LOG.md
30
- └── SPIKE-*.md → spike learning notes
23
+ ├── state.yaml session: active_flow, epic, git, handoff
24
+ ├── release-plan.yaml target version, WSJF epic index
25
+ ├── execution-status.yaml flat story/epic status
26
+ ├── planning-status.yaml discover-phase checklist (optional)
27
+ ├── requirements/
28
+ ├── VISION_LATEST.yaml
29
+ ├── SCOPE_LATEST.yaml
30
+ └── GLOSSARY_LATEST.yaml
31
+ ├── plans/ → TECH_STACK, TEST_PLAN, etc.
32
+ ├── epics/ → eNN shards (flat yaml or eNN/stories/)
33
+ └── bugs/ → BUG-*.md + registry.yaml
31
34
  ```
32
35
 
33
- For each file found, note: does it exist? Is it complete? Does it have open items?
36
+ For each YAML file found, note: exists? keys populated? `handoff.next_skill`?
37
+
38
+ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if YAML exists.
39
+
40
+ → verify: `bash scripts/validate-specs-yaml.sh 2>/dev/null || echo "YAML layout incomplete"`
34
41
 
35
42
  ### 3. Read CLAUDE.md
36
43
 
@@ -44,7 +51,7 @@ git log --oneline -5
44
51
  git branch --show-current
45
52
  ```
46
53
 
47
- Note: is there a feature branch active? Are there uncommitted changes? Are there unpushed commits?
54
+ Note: is there a feature branch active? Are there uncommitted changes? Do they match `specs/state.yaml` `git` block?
48
55
 
49
56
  ### 5. Map the lifecycle phase
50
57
 
@@ -52,33 +59,36 @@ Based on what you've found, identify which PMBOK phase this project is currently
52
59
 
53
60
  | Phase | Signals |
54
61
  |-------|---------|
55
- | **Discover** | No specs/ yet, or only rough notes |
56
- | **Design** | specs/SCOPE.md exists but no RELEASE-PLAN.md |
57
- | **Plan** | specs/TASKS.md or RELEASE-PLAN.md exists; on `main`/`master` branch |
62
+ | **Discover** | No `requirements/SCOPE_LATEST.yaml` yet, or only rough notes |
63
+ | **Design** | SCOPE exists but no `release-plan.yaml` |
64
+ | **Plan** | `release-plan.yaml` exists; on `main`/`master` branch |
58
65
  | **Initiate** | On a feature branch; no code changes yet |
59
- | **Execute** | RELEASE-PLAN.md exists; on feature branch; steps in progress |
60
- | **Verify** | Implementation done; run `verify-work` or `run-evals`; awaiting UAT |
61
- | **Bug** | `specs/bugs/BUG-*.md` exists; on `main`/`master` |
66
+ | **Execute** | `state.yaml` `active_flow: build_epic`; epic shard in progress |
67
+ | **Verify** | Implementation done; run `verify-work` or `run-evals` |
68
+ | **Bug** | `state.yaml` `active_flow: fix_bug` or open `specs/bugs/BUG-*.md` |
62
69
  | **Review** | All code written; no PR yet |
63
70
  | **Integrate** | PR open; tests passing |
64
71
  | **Sustain** | Ongoing; no active task |
65
72
 
73
+ Prefer `specs/state.yaml` `active_flow` and `handoff.next_skill` when present.
74
+
66
75
  ### 6. Suggest next skill
67
76
 
68
77
  Based on the phase and state, recommend the most useful next step:
69
78
 
70
79
  - **If in Plan/Bug phase and on `main`**: Suggest `kickoff-branch` next.
71
- - **If in Initiate phase**: Suggest `develop-tdd` or `execute-plan`.
72
- - **If in Execute phase**: Suggest `develop-tdd` (continue step X) or `execute-plan`.
73
- - **If in Verify phase**: Suggest `verify-work` (UAT) or `run-evals` (capability evals).
80
+ - **If in Initiate phase**: Suggest `develop-tdd` or `execute-plan` or `ship-epic`.
81
+ - **If in Execute phase**: Suggest `ship-epic` (resume) or `develop-tdd` for `active_story_id`.
82
+ - **If in Verify phase**: Suggest `verify-work` (UAT) or `run-evals`.
74
83
 
75
84
  Example:
76
85
  ```
77
- Phase: Plan
78
- Active branch: main
79
- RELEASE-PLAN.md: exists
86
+ Phase: Execute
87
+ Active branch: feat/e02-verify (state.yaml matches)
88
+ release-plan.yaml: v3.0.0, 10 epics
89
+ active_epic_id: e02
80
90
 
81
- Suggested next: kickoff-branch (to create feature/auth branch)
91
+ Suggested next: ship-epic (resume e02s01 at develop-tdd)
82
92
  ```
83
93
 
84
94
  Be specific — name the exact skill and why. If multiple options exist, list them in priority order.
@@ -87,8 +97,9 @@ Be specific — name the exact skill and why. If multiple options exist, list th
87
97
 
88
98
  If something looks wrong:
89
99
  - Broken tests in the baseline
90
- - `specs/bugs/BUG-*.md` open with no active fix branch
91
- - RELEASE-PLAN.md with missing verify commands or Verification Script sections
92
- - CONVENTIONS.md violations in recent commits
100
+ - Open `specs/bugs/BUG-*.md` with no active fix branch
101
+ - Epic shards missing `verify:` on tasks
102
+ - `validate-specs-yaml.sh` fails
103
+ - Git hash in `state.yaml` stale vs `git rev-parse`
93
104
 
94
105
  Report blockers first, before recommendations.
@@ -1,28 +1,28 @@
1
1
  ---
2
2
  name: trace-requirement
3
3
  model: haiku
4
- description: Link story IDs from specs/RELEASE-PLAN.md to the implementing code and tests. Produces specs/TRACEABILITY.md. Use when you want to verify coverage of a release plan, audit which stories are implemented, or find "dark" stories with no code.
4
+ description: Link story IDs from specs/release-plan.yaml + epic shards to the implementing code and tests. Produces specs/TRACEABILITY.md. Use when you want to verify coverage of a release plan, audit which stories are implemented, or find "dark" stories with no code.
5
5
  ---
6
6
 
7
7
  # Trace Requirement
8
8
 
9
- Build a traceability matrix from `specs/RELEASE-PLAN.md` to implementing code and tests. Surfaces gaps in both directions: stories with no code, and code with no story.
9
+ Build a traceability matrix from `specs/release-plan.yaml + epic shards` to implementing code and tests. Surfaces gaps in both directions: stories with no code, and code with no story.
10
10
 
11
11
  ## Pre-flight
12
12
 
13
- > **HARD GATE** — `specs/RELEASE-PLAN.md` must exist. If it doesn't, run `plan-release` first.
13
+ > **HARD GATE** — `specs/release-plan.yaml + epic shards` must exist. If it doesn't, run `plan-release` first.
14
14
 
15
- → verify: `[ -f specs/RELEASE-PLAN.md ] && echo "ready" || echo "BLOCKED: run plan-release first"`
15
+ → verify: `[ -f specs/release-plan.yaml + epic shards ] && echo "ready" || echo "BLOCKED: run plan-release first"`
16
16
 
17
- Read `specs/RELEASE-PLAN.md` fully before proceeding.
17
+ Read `specs/release-plan.yaml + epic shards` fully before proceeding.
18
18
 
19
19
  ## Process
20
20
 
21
21
  ### 1. Extract story IDs
22
22
 
23
- From RELEASE-PLAN.md, collect all story IDs (e.g. `1.1`, `1.2`, `2.1`).
23
+ From release-plan.yaml, collect all story IDs (e.g. `1.1`, `1.2`, `2.1`).
24
24
 
25
- → verify: `grep -o "Story [0-9]\+\.[0-9]\+" specs/RELEASE-PLAN.md | sort -u`
25
+ → verify: `grep -o "Story [0-9]\+\.[0-9]\+" specs/release-plan.yaml + epic shards | sort -u`
26
26
 
27
27
  ### 2. Search for story tags in code
28
28
 
@@ -41,7 +41,7 @@ For each story ID:
41
41
  - **Tested**: list test files that contain `// story: X.Y`
42
42
  - **Dark**: story has no tag in any file — flag as unimplemented
43
43
 
44
- For each tagged file with no matching story ID in RELEASE-PLAN.md:
44
+ For each tagged file with no matching story ID in release-plan.yaml:
45
45
  - **Orphan**: code exists but story was removed or never planned — flag for cleanup
46
46
 
47
47
  ### 4. Write specs/TRACEABILITY.md
@@ -6,7 +6,7 @@ description: One-time bootstrap that introduces the bigpowers skills system, the
6
6
 
7
7
  # Using bigpowers
8
8
 
9
- Welcome to **bigpowers** — a lifecycle of **59** agent skills for production-ready, TDD-driven software by solo developers.
9
+ Welcome to **bigpowers** — a lifecycle of **61** agent skills for production-ready, TDD-driven software by solo developers.
10
10
 
11
11
  ## Install
12
12
 
@@ -78,23 +78,24 @@ If you work alone and do not want PR ceremony every task:
78
78
 
79
79
  You still use worktrees, protected `main`, and verification gates — only the integrate step changes.
80
80
 
81
- ## Obsidian wiki cockpit (optional)
81
+ ## YAML cockpit and dashboard
82
82
 
83
- For accumulated project understanding and a read-only PM view:
83
+ Operational source of truth:
84
84
 
85
- 1. Read [profiles/obsidian-wiki.md](../profiles/obsidian-wiki.md).
86
- 2. Open `specs/` as an Obsidian vault; landing page `COCKPIT.md`.
87
- 3. Run `maintain-wiki` **sync** before merge (merge gate).
85
+ - `specs/state.yaml` session, active epic/story, handoff
86
+ - `specs/release-plan.yaml` release index and epic list
87
+ - `specs/epics/eNN-*.yaml` stories and tasks with `verify`
88
+ - `specs/execution-status.yaml` — done/pending per story
88
89
 
89
- Operational specs (STATE, RELEASE-PLAN) stay source of truth; `specs/wiki/` is LLM-synthesized navigation.
90
+ Start the HTTP dashboard with `visual-dashboard` `GET /api/status?projectDir=<abs>` and `GET /cockpit.html` for a read-only PM view.
90
91
 
91
92
  ## Key conventions
92
93
 
93
94
  - **specs/ is your memory.** All domain docs, plans, and investigation outputs go in `specs/` at your project root.
94
95
  - **Integrate:** team default is `gh pr` (team-pr); solo profile uses `land-branch.sh`. Never create GitHub issues from skills — use local Markdown files instead.
95
96
  - **One skill, one thing.** If you're unsure which skill to call, call `survey-context` — it reads your current state and recommends the next step.
96
- - **verify: every step.** Every task in `specs/RELEASE-PLAN.md` must have a `verify: <runnable command>`. Evidence over claims.
97
- - **59 skills.** See `SKILL-INDEX.md`; find skills with `search-skills`.
97
+ - **verify: every step.** Every epic task must have `verify: <runnable command>`. Evidence over claims.
98
+ - **61 skills.** See `SKILL-INDEX.md`; find skills with `search-skills`.
98
99
 
99
100
  ## After this
100
101
 
@@ -59,7 +59,7 @@ For every bug fixed, add at least one prevention layer:
59
59
  - [ ] At least one hardening mechanism added
60
60
  - [ ] Hardening mechanism is tested
61
61
 
62
- ### 6. Update the bug file and BUG-LOG.md
62
+ ### 6. Update the bug file and registry.yaml
63
63
 
64
64
  Find the most recent `specs/bugs/BUG-*.md` file and append the resolution:
65
65
 
@@ -74,10 +74,10 @@ Find the most recent `specs/bugs/BUG-*.md` file and append the resolution:
74
74
  **Commit:** `fix(<scope>): <description>`
75
75
  ```
76
76
 
77
- Also update the corresponding row in `specs/bugs/BUG-LOG.md`: set `status` to `fixed`, fill in `files_changed`, `approach`, `risk_level`, `commit_message`, and any other resolution fields.
77
+ Also update the corresponding row in `specs/bugs/registry.yaml`: set `status` to `fixed`, fill in `files_changed`, `approach`, `risk_level`, `commit_message`, and any other resolution fields.
78
78
 
79
79
  - [ ] specs/bugs/BUG-*.md updated with resolution
80
- - [ ] specs/bugs/BUG-LOG.md row updated with resolution fields
80
+ - [ ] specs/bugs/registry.yaml row updated with resolution fields
81
81
 
82
82
  ### 7. Behavioral Proof (HARD GATE)
83
83
 
@@ -92,6 +92,6 @@ Mechanical verification (tests passing) is only half the fix. You must prove **b
92
92
  - **Loop until behavioral correctness is verified**: if any checklist item fails, or if the behavior is still incorrect despite passing tests, return to step 1 and run all checks again from the top — do not declare done until every item is green and the behavior is proven correct in a single run.
93
93
  - **Never use `@ts-ignore`, `as any`, or `// eslint-disable`** to "fix" a bug — these suppress the symptom without fixing the root cause
94
94
  - **Never mark the task done if any test is still failing**
95
- - **The verify command from specs/bugs/BUG-*.md or specs/PLAN.md must pass**
95
+ - **The verify command from specs/bugs/BUG-*.md or the active epic task `verify` field must pass**
96
96
 
97
97
  Suggest next skill: `audit-code` → `commit-message`.
@@ -1,39 +1,34 @@
1
1
  ---
2
2
  name: verify-work
3
- description: Multi-phase UAT gate — cold-start smoke, build, typecheck, lint, tests, step-by-step manual verification, gaps-closure loop. Use after execute-plan or develop-tdd, before audit-code, when a story needs proof it works.
3
+ description: Multi-phase UAT gate — cold-start smoke, build, typecheck, lint, tests, step-by-step manual verification, gaps-closure loop. Use after execute-plan or develop-tdd, before audit-code.
4
4
  model: haiku
5
5
  ---
6
6
 
7
7
  # Verify Work
8
8
 
9
- > **HARD GATE** — No story is "done" until its `## Verification Script` from RELEASE-PLAN.md is confirmed by the user or agent with evidence.
10
-
11
- > **HARD GATE** — Do NOT run verify-work on `main` or `master`. Run from the feature branch or worktree created by `kickoff-branch`.
9
+ > **HARD GATE** — No story is "done" until manual UAT for the active story is confirmed with evidence.
10
+ >
11
+ > **HARD GATE** — Do NOT run on `main` or `master`. Use the feature branch from `kickoff-branch`.
12
12
 
13
13
  Review answers "is the code good?"; Verify answers "does the built thing do what was promised?"
14
14
 
15
15
  ## Process
16
16
 
17
- 0. **Branch check** (before any gates):
18
-
19
- ```bash
20
- BRANCH=$(git rev-parse --abbrev-ref HEAD)
21
- # Must not be main or master — run kickoff-branch first
22
- ```
17
+ 0. **Branch check** must not be `main`/`master`.
23
18
 
24
- 1. Read the story's `## Verification Script` from `specs/RELEASE-PLAN.md`.
19
+ 1. Read active story tasks and any **Verification Script** notes in `specs/epics/{active}.yaml` or story `.md` under `specs/epics/eNN/stories/`.
25
20
  2. **Cold-start smoke** (if app): stop server, clear caches, boot from scratch.
26
- 3. Run mechanical gates: build → typecheck → lint → full test suite (commands from CLAUDE.md).
27
- 4. **Step-by-step UAT**: one user-observable action at a time; record pass/fail.
28
- 5. **Gaps loop**: failed steps → log as Gaps feed back to `plan-work` → re-verify until pass.
21
+ 3. Mechanical gates: build → typecheck → lint → tests (from `CLAUDE.md`).
22
+ 4. **Step-by-step UAT** one user-observable action at a time.
23
+ 5. **Gaps loop** failures → log → `plan-work` → re-verify.
29
24
 
30
25
  ## UAT dialogue
31
26
 
32
- - Pass: user confirms `yes` / `next` / `ok` per step.
33
- - Fail: capture expected vs actual; do not mark story done.
27
+ - Pass: user confirms per step.
28
+ - Fail: capture expected vs actual; do not mark done in `execution-status.yaml`.
34
29
 
35
30
  ## Verify
36
31
 
37
- → verify: `grep -c "Verification Script" specs/RELEASE-PLAN.md | awk '{if($1>0) print "OK"; else print "MISSING"}'`
32
+ → verify: `grep -c 'verify:' specs/epics/*.yaml | awk '{if($1>0) print "OK"; else print "MISSING"}'`
38
33
 
39
34
  See [REFERENCE.md](REFERENCE.md) for cold-start and gaps template.
@@ -1,99 +1,50 @@
1
1
  ---
2
2
  name: visual-dashboard
3
3
  model: sonnet
4
- description: Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Use when showing complex diagrams, progress roadmaps, or UI mockups would be clearer than text. Persists artifacts in .bigpowers/dashboard/. Also maintains specs/STATE.md and specs/RELEASE-PLAN.md in the correct format for the opencode progress panel.
4
+ description: Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Persists artifacts in .bigpowers/dashboard/. Reads specs/state.yaml, release-plan.yaml, epics, and planning-status via HTTP API or opencode panel.
5
5
  ---
6
6
 
7
7
  # Visual Dashboard
8
8
 
9
9
  Browser-based visual companion for bigpowers. Visualizes architecture, plans, and status.
10
10
 
11
- ## Opencode Progress Panel
12
-
13
- Projects using bigpowers in opencode get a **live progress panel** (right sidebar) that reads `specs/STATE.md` and `specs/RELEASE-PLAN.md` directly. Toggle it with the document icon (⬚) in the opencode session header.
14
-
15
- ### Spec file format requirements
16
-
17
- **`specs/STATE.md`** — the parser extracts:
18
- - Project name from `# Session State: <name>`
19
- - Milestone from `## Current Milestone` → first `**bold**` = name, `(parens)` = status
20
- - Pending items from `## Pending` → `- [ ]` / `- [x]` lines
21
-
22
- ```markdown
23
- # Session State: my-project
24
-
25
- ## Current Milestone
26
-
27
- **v1.0.0 — Feature Name** (in progress)
28
-
29
- ## Pending
30
-
31
- - [ ] Remaining task
32
- - [x] Completed task
33
- ```
34
-
35
- **`specs/RELEASE-PLAN.md`** — the parser extracts:
36
- - Workstreams from `### WSN — Title · WSJF N.N` headings
37
- - Steps from `- [ ]` / `- [x]` lines inside each workstream block
38
-
39
- ```markdown
40
- ## Workstreams (WSJF order)
41
-
42
- ### WS1 — Feature Area · WSJF 4.5
11
+ ## HTTP cockpit (YAML SoT)
43
12
 
44
- - [x] Step already done
45
- - [ ] Step pending
13
+ Start the server:
46
14
 
47
- → verify: `<command>`
15
+ ```bash
16
+ bash visual-dashboard/scripts/start-server.sh
48
17
  ```
49
18
 
50
- **Parser rules:**
51
- - Only `[ ]` and `[x]`/`[X]` are recognised as step markers.
52
- - `→ verify:` lines are ignored.
53
- - Steps outside a `### WSN —` block are not picked up.
54
- - Missing `## Current Milestone` → panel shows "No specs found".
55
-
56
- After completing a step, update the checkbox in-place; the panel auto-refreshes every 30 s or on manual ↺.
57
-
58
- ---
59
-
60
- ## When to Use
61
-
62
- Use when the user would understand the project state better by seeing it than reading it.
19
+ Endpoints:
63
20
 
64
- - **Architecture maps** visualizing module dependencies and "code rot."
65
- - **Implementation progress** — seeing the vertical slices of a `PLAN.md` as a visual roadmap.
66
- - **UI brainstorming** wireframes and layout options.
67
- - **Complexity audits** visualizing "God classes" vs "Clean modules."
21
+ | Route | Purpose |
22
+ |-------|---------|
23
+ | `GET /api/status?projectDir=<abs>` | JSON: `state`, `release`, `epics[]`, `planning_status`, `active_epic` |
24
+ | `GET /cockpit.html?projectDir=<abs>` | Read-only PM view (planning left, epics right) |
25
+ | `GET /` | Agent-pushed HTML screens (legacy, unchanged) |
68
26
 
69
- ## How It Works
70
-
71
- The server watches for updates to your artifacts and serves a dashboard to the browser. You write visual representations (HTML fragments) to the dashboard's `screen_dir`, and the user interacts with them.
72
-
73
- ## Starting a Session
27
+ Example:
74
28
 
75
29
  ```bash
76
- # Start server with project persistence
77
- visual-dashboard/scripts/start-server.sh --project-dir $(pwd)
30
+ curl -s "http://127.0.0.1:PORT/api/status?projectDir=$PWD" | jq .release.version
78
31
  ```
79
32
 
80
- Save the `url`, `screen_dir`, and `state_dir` from the response. Tell the user to open the dashboard.
33
+ Implementation: `visual-dashboard/scripts/read-specs-status.cjs` + `server.cjs`.
34
+
35
+ ## Opencode Progress Panel
81
36
 
82
- ## Dashboard Loops
37
+ Projects using bigpowers in opencode can read `specs/state.yaml`, `specs/release-plan.yaml`, and active `specs/epics/*.yaml` directly (no checkbox `### WS1` markdown).
83
38
 
84
- ### 1. The Architecture View
85
- When using `deepen-architecture`, push a Mermaid diagram of the target modules to the dashboard.
86
- Filename: `architecture.html`
39
+ Required YAML keys:
87
40
 
88
- ### 2. The Plan View
89
- When using `plan-work`, push a step-by-step progress map.
90
- Filename: `plan.html`
41
+ - **state.yaml** `active_flow`, `active_epic_id`, `git`, `handoff`, `epic_cycle`
42
+ - **release-plan.yaml** `release.version`, `epics[]` with `id`, `title`, `wsjf`, `file`
43
+ - **execution-status.yaml** — `development_status` map (story/epic → `done` | `pending`)
44
+ - **planning-status.yaml** — discover workflows and `status: done|pending`
91
45
 
92
- ### 3. User Interaction
93
- Read `state_dir/events` to see which components or options the user clicked in the dashboard. Use this to refine your next design pass.
46
+ ## Agent screens (optional)
94
47
 
95
- ## Cleaning Up
48
+ Push HTML to the dashboard session dir for rich diagrams. See `start-server.sh` for `CONTENT_DIR`.
96
49
 
97
- ```bash
98
- visual-dashboard/scripts/stop-server.sh $SESSION_DIR
99
- ```
50
+ → verify: `test -f visual-dashboard/scripts/read-specs-status.cjs && test -f visual-dashboard/scripts/cockpit.html`