bigpowers 1.2.2 → 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.
- package/CHANGELOG.md +14 -0
- package/CLAUDE.md +5 -4
- package/CONVENTIONS.md +54 -12
- package/README.md +5 -5
- 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/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/SKILL.md +18 -18
- package/model-domain/SKILL.md +7 -7
- package/orchestrate-project/SKILL.md +5 -8
- package/package.json +4 -2
- package/plan-release/SKILL.md +63 -39
- package/plan-work/SKILL.md +6 -6
- package/research-first/SKILL.md +3 -3
- 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/build-skill-index.sh +2 -2
- 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-status-from-epics.sh +51 -0
- package/scripts/validate-specs-yaml.sh +41 -0
- package/scripts/yaml-tools.py +144 -0
- package/session-state/SKILL.md +59 -50
- package/setup-environment/SKILL.md +1 -1
- package/slice-tasks/SKILL.md +6 -6
- 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 +3 -3
- 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/execute-plan/SKILL.md
CHANGED
|
@@ -1,92 +1,55 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: execute-plan
|
|
3
3
|
model: haiku
|
|
4
|
-
description: Batch-execute tasks from
|
|
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
|
|
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
|
|
11
|
+
> **HARD GATE** — Do NOT proceed if on `main` or `master`. Run `kickoff-branch` first.
|
|
12
12
|
>
|
|
13
|
-
> **HARD GATE** —
|
|
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/
|
|
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
|
|
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
|
|
27
|
+
For each task in the active story:
|
|
31
28
|
|
|
32
|
-
**a. Announce
|
|
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
|
|
31
|
+
**b. Execute** — code or `delegate-task` / `dispatch-agents` for waves.
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
**c. Run verify** — must be green before advancing.
|
|
42
34
|
|
|
43
|
-
|
|
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
|
-
|
|
37
|
+
**e. Checkpoint** — ask to proceed unless autonomous mode requested.
|
|
48
38
|
|
|
49
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
### 3. Handle blockers
|
|
49
|
+
### 4. Final report
|
|
79
50
|
|
|
80
|
-
|
|
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
|
-
|
|
53
|
+
## Rules
|
|
86
54
|
|
|
87
|
-
|
|
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.
|
package/fix-bug/SKILL.md
ADDED
|
@@ -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`
|
package/grill-with-docs/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ model: opus
|
|
|
10
10
|
|
|
11
11
|
## Process
|
|
12
12
|
|
|
13
|
-
1. Read the plan or design under test (`specs/
|
|
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`.
|
package/inspect-quality/SKILL.md
CHANGED
|
@@ -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/
|
|
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/
|
|
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/
|
|
44
|
+
### 4. Log to specs/bugs/registry.yaml
|
|
45
45
|
|
|
46
|
-
Append the issue to `specs/bugs/
|
|
46
|
+
Append the issue to `specs/bugs/registry.yaml`. Create the `specs/bugs/` directory if it doesn't exist.
|
|
47
47
|
|
|
48
|
-
####
|
|
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
|
|
package/investigate-bug/SKILL.md
CHANGED
|
@@ -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/
|
|
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/
|
|
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
|
|
package/kickoff-branch/SKILL.md
CHANGED
|
@@ -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/
|
|
95
|
+
Suggest next skill: `develop-tdd` to start the TDD loop, or `execute-plan` if `specs/release-plan.yaml + epic shards` already exists.
|
package/map-codebase/SKILL.md
CHANGED
|
@@ -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/
|
|
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/
|
|
40
|
-
Compile all findings into `specs/
|
|
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/
|
|
67
|
+
- To refresh `specs/plans/TECH_STACK_LATEST.md` after significant changes.
|
package/migrate-spec/SKILL.md
CHANGED
|
@@ -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
|
|
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 `
|
|
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/
|
|
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
|
|
83
|
+
### Step 4 — Generate state.yaml
|
|
84
84
|
|
|
85
|
-
Always regenerate `specs/
|
|
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/
|
|
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/
|
|
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/
|
|
129
|
-
| GSD `REQUIREMENTS.md` | `specs/
|
|
130
|
-
| GSD `CONTEXT.md` (phases) | `specs/
|
|
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/
|
|
134
|
-
| spec-kit `plan.md` | `specs/
|
|
135
|
-
| spec-kit `tasks.md` | `specs/
|
|
136
|
-
| BMAD `prd.md` | `specs/
|
|
137
|
-
| BMAD `architecture.md` | `specs/
|
|
138
|
-
| BMAD `epic-*.md` | `specs/
|
|
139
|
-
| BMAD `story-*.md` | `specs/
|
|
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
|
-
- **
|
|
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`.
|
package/model-domain/SKILL.md
CHANGED
|
@@ -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/
|
|
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/
|
|
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/
|
|
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/
|
|
69
|
+
### Update specs/plans/TECH_STACK_LATEST.md inline
|
|
70
70
|
|
|
71
|
-
When a term is resolved, update `specs/
|
|
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/
|
|
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/
|
|
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
|
|
38
|
-
2. **Spawns appropriate skills** —
|
|
39
|
-
3. **Methodology lenses** — If `specs/
|
|
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**
|
|
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. **
|
|
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.
|
|
4
|
-
"description": "
|
|
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",
|
package/plan-release/SKILL.md
CHANGED
|
@@ -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/
|
|
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
|
-
|
|
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** —
|
|
19
|
-
- **Stories** —
|
|
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
|
-
|
|
39
|
+
Every task must have a `verify:` command. No verify command = not a task.
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
-
Status: [ ] Not started
|
|
84
|
+
→ verify: `grep -c 'id: e' specs/release-plan.yaml`
|
|
61
85
|
|
|
62
|
-
|
|
63
|
-
Feature: ...
|
|
64
|
-
Scenario: ...
|
|
86
|
+
### 6. Sync execution status
|
|
65
87
|
|
|
66
|
-
|
|
67
|
-
|
|
88
|
+
```bash
|
|
89
|
+
bash scripts/sync-status-from-epics.sh
|
|
68
90
|
```
|
|
69
91
|
|
|
70
|
-
|
|
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
|
-
###
|
|
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
|
|
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.
|
package/plan-work/SKILL.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-work
|
|
3
3
|
model: opus
|
|
4
|
-
description: Write
|
|
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/
|
|
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:
|
|
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
|
|
61
|
+
### 3. Write epic shard tasks
|
|
62
62
|
|
|
63
|
-
Append
|
|
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
|
|
129
|
+
After writing epic tasks, suggest `kickoff-branch` (if not already on a feature branch) then `build-epic`, `execute-plan`, or `develop-tdd`.
|
package/research-first/SKILL.md
CHANGED
|
@@ -10,10 +10,10 @@ model: sonnet
|
|
|
10
10
|
|
|
11
11
|
## Process
|
|
12
12
|
|
|
13
|
-
1. Read `specs/
|
|
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
|
|
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/
|
|
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.
|