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.
- package/CHANGELOG.md +15 -0
- package/CLAUDE.md +5 -4
- package/CONVENTIONS.md +55 -13
- package/README.md +10 -8
- package/SKILL-INDEX.md +14 -11
- package/assess-impact/SKILL.md +2 -2
- package/build-epic/SKILL.md +42 -0
- package/change-request/SKILL.md +16 -16
- package/compose-workflow/REFERENCE.md +3 -3
- package/compose-workflow/SKILL.md +1 -1
- package/deepen-architecture/SKILL.md +6 -6
- package/define-success/SKILL.md +1 -1
- package/delegate-task/SKILL.md +4 -4
- package/develop-tdd/SKILL.md +5 -5
- package/dispatch-agents/SKILL.md +2 -2
- package/evolve-skill/SKILL.md +2 -2
- package/execute-plan/SKILL.md +22 -59
- package/fix-bug/SKILL.md +37 -0
- package/grill-with-docs/SKILL.md +1 -1
- package/inspect-quality/SKILL.md +5 -5
- package/investigate-bug/SKILL.md +2 -2
- package/kickoff-branch/SKILL.md +1 -1
- package/map-codebase/SKILL.md +4 -4
- package/migrate-spec/REFERENCE-GSD.md +35 -41
- package/migrate-spec/REFERENCE.md +43 -44
- package/migrate-spec/SKILL.md +20 -20
- package/model-domain/SKILL.md +7 -7
- package/orchestrate-project/REFERENCE.md +10 -10
- package/orchestrate-project/SKILL.md +13 -16
- package/package.json +7 -7
- package/plan-release/SKILL.md +63 -39
- package/plan-work/SKILL.md +6 -6
- package/request-review/SKILL.md +2 -2
- package/research-first/SKILL.md +3 -3
- package/run-evals/REFERENCE.md +1 -1
- package/run-planning/SKILL.md +24 -0
- package/scope-work/SKILL.md +6 -6
- package/scripts/bp-yaml-set.sh +9 -0
- package/scripts/bp-yaml-snapshot.sh +23 -0
- package/scripts/convert-legado.sh +153 -0
- package/scripts/enrich-epics-from-archive.sh +101 -0
- package/scripts/land-branch.sh +5 -1
- package/scripts/project-survey.sh +18 -9
- package/scripts/sync-bugs-registry.sh +53 -0
- package/scripts/sync-skills.sh +5 -5
- package/scripts/sync-status-from-epics.sh +51 -0
- package/scripts/validate-specs-yaml.sh +41 -0
- package/scripts/yaml-tools.py +144 -0
- package/seed-conventions/SKILL.md +3 -3
- package/session-state/SKILL.md +59 -50
- package/setup-environment/SKILL.md +1 -1
- package/slice-tasks/SKILL.md +6 -6
- package/spike-prototype/SKILL.md +5 -5
- package/survey-context/SKILL.md +38 -27
- package/trace-requirement/SKILL.md +8 -8
- package/using-bigpowers/SKILL.md +10 -9
- package/validate-fix/SKILL.md +4 -4
- package/verify-work/SKILL.md +12 -17
- package/visual-dashboard/SKILL.md +25 -74
- package/visual-dashboard/scripts/cockpit.html +66 -0
- package/visual-dashboard/scripts/read-specs-status.cjs +123 -0
- package/visual-dashboard/scripts/server.cjs +40 -0
- package/write-document/SKILL.md +1 -1
- package/maintain-wiki/SKILL.md +0 -130
- package/profiles/obsidian-wiki.md +0 -120
package/session-state/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: session-state
|
|
3
3
|
model: haiku
|
|
4
|
-
description: Track implementation decisions and progress in specs/
|
|
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*
|
|
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
|
-
|
|
15
|
+
Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT when YAML exists — use `specs/state.yaml` only.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
## Handoff block (cold start)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
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 |
|
|
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/
|
|
44
|
+
If `specs/state.yaml` does not exist, or if starting a new major phase:
|
|
40
45
|
|
|
41
|
-
- [ ] Read `specs/
|
|
42
|
-
- [ ] Get git metadata: `git branch --show-current` and `git rev-parse HEAD`.
|
|
43
|
-
- [ ] Create `specs/
|
|
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/
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
58
|
-
- [ ] Update
|
|
59
|
-
- [ ]
|
|
60
|
-
- [ ]
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
90
|
-
- **Stale State**: Forgetting to update `
|
|
91
|
-
- **
|
|
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/
|
|
18
|
+
6. Record versions in `specs/state.yaml` under Environment.
|
|
19
19
|
|
|
20
20
|
## Verify
|
|
21
21
|
|
package/slice-tasks/SKILL.md
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slice-tasks
|
|
3
|
-
description: Break a plan or PRD into
|
|
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/
|
|
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/
|
|
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
|
|
16
|
-
4. Order by WSJF
|
|
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: `
|
|
22
|
+
→ verify: `grep -c 'id: e' specs/epics/*.yaml | awk '{if($1>0) print "OK"; else print "MISSING"}'`
|
package/spike-prototype/SKILL.md
CHANGED
|
@@ -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`.
|
package/survey-context/SKILL.md
CHANGED
|
@@ -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
|
-
├──
|
|
24
|
-
├──
|
|
25
|
-
├──
|
|
26
|
-
├──
|
|
27
|
-
├──
|
|
28
|
-
├──
|
|
29
|
-
├──
|
|
30
|
-
└──
|
|
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:
|
|
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?
|
|
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
|
|
56
|
-
| **Design** |
|
|
57
|
-
| **Plan** |
|
|
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** |
|
|
60
|
-
| **Verify** | Implementation done; run `verify-work` or `run-evals
|
|
61
|
-
| **Bug** | `specs/bugs/BUG-*.md`
|
|
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 `
|
|
73
|
-
- **If in Verify phase**: Suggest `verify-work` (UAT) or `run-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:
|
|
78
|
-
Active branch:
|
|
79
|
-
|
|
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:
|
|
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`
|
|
91
|
-
-
|
|
92
|
-
-
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
15
|
+
→ verify: `[ -f specs/release-plan.yaml + epic shards ] && echo "ready" || echo "BLOCKED: run plan-release first"`
|
|
16
16
|
|
|
17
|
-
Read `specs/
|
|
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
|
|
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/
|
|
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
|
|
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
|
package/using-bigpowers/SKILL.md
CHANGED
|
@@ -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 **
|
|
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
|
-
##
|
|
81
|
+
## YAML cockpit and dashboard
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
Operational source of truth:
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
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
|
|
97
|
-
- **
|
|
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
|
|
package/validate-fix/SKILL.md
CHANGED
|
@@ -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
|
|
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/
|
|
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/
|
|
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
|
|
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`.
|
package/verify-work/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
10
|
-
|
|
11
|
-
> **HARD GATE** — Do NOT run
|
|
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**
|
|
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
|
|
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.
|
|
27
|
-
4. **Step-by-step UAT
|
|
28
|
-
5. **Gaps loop
|
|
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
|
|
33
|
-
- Fail: capture expected vs actual; do not mark
|
|
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
|
|
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.
|
|
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
|
-
##
|
|
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
|
-
|
|
45
|
-
- [ ] Step pending
|
|
13
|
+
Start the server:
|
|
46
14
|
|
|
47
|
-
|
|
15
|
+
```bash
|
|
16
|
+
bash visual-dashboard/scripts/start-server.sh
|
|
48
17
|
```
|
|
49
18
|
|
|
50
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
Implementation: `visual-dashboard/scripts/read-specs-status.cjs` + `server.cjs`.
|
|
34
|
+
|
|
35
|
+
## Opencode Progress Panel
|
|
81
36
|
|
|
82
|
-
|
|
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
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
48
|
+
Push HTML to the dashboard session dir for rich diagrams. See `start-server.sh` for `CONTENT_DIR`.
|
|
96
49
|
|
|
97
|
-
|
|
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`
|