bigpowers 2.27.0 → 2.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pi/package.json +2 -2
- package/.pi/prompts/audit-plan.md +88 -0
- package/.pi/prompts/migrate-spec.md +48 -5
- package/.pi/prompts/plan-release.md +5 -1
- package/.pi/prompts/session-state.md +2 -2
- package/.pi/skills/audit-plan/SKILL.md +90 -0
- package/.pi/skills/migrate-spec/SKILL.md +48 -5
- package/.pi/skills/plan-release/SKILL.md +5 -1
- package/.pi/skills/session-state/SKILL.md +2 -2
- package/CHANGELOG.md +14 -0
- package/CONVENTIONS.md +9 -4
- package/SKILL-INDEX.md +76 -74
- package/audit-plan/SKILL.md +89 -0
- package/migrate-spec/REFERENCE-GSD.md +3 -3
- package/migrate-spec/REFERENCE.md +22 -1
- package/migrate-spec/SKILL.md +23 -1
- package/package.json +1 -1
- package/plan-release/SKILL.md +5 -1
- package/scripts/generate-skill-index.sh +2 -0
- package/scripts/sync-status-from-epics.sh +3 -0
- package/session-state/SKILL.md +2 -2
- package/skills-lock.json +8 -3
package/.pi/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bigpowers",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.29.0",
|
|
4
|
+
"description": "70 skills — 61 agent skills for spec-driven, test-first software development by solo developers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package"
|
|
7
7
|
],
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Evaluate an incoming project plan against bigpowers principles and conventions, surface gaps, and produce a READY/NOT READY verdict before engagement begins. Use when a new project arrives, when adapting a foreign plan, or before running seed-conventions on an unfamiliar codebase.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Audit Plan
|
|
7
|
+
|
|
8
|
+
> **HARD GATE** — Do NOT start build skills (kickoff-branch, develop-tdd) until audit-plan returns a READY verdict. A plan missing test commands, scope boundaries, or success criteria will produce drift and rework downstream.
|
|
9
|
+
|
|
10
|
+
Assess an incoming project plan for alignment with bigpowers principles, identify what's missing, and produce a structured readiness report before any skill execution begins.
|
|
11
|
+
|
|
12
|
+
## Three lenses
|
|
13
|
+
|
|
14
|
+
### 1. Principles alignment
|
|
15
|
+
- Are stories vertical slices (not horizontal layers)?
|
|
16
|
+
- Is scope bounded — explicit in_scope + out_of_scope?
|
|
17
|
+
- Are success criteria defined (how do we know we're done)?
|
|
18
|
+
- Are HARD GATE candidates identifiable (critical decision points)?
|
|
19
|
+
- Is there a domain language / ubiquitous terminology?
|
|
20
|
+
|
|
21
|
+
### 2. Conventions completeness
|
|
22
|
+
- Does `CLAUDE.md` or `AGENTS.md` exist?
|
|
23
|
+
- Does `CONVENTIONS.md` exist?
|
|
24
|
+
- Is the `specs/` directory layout in place?
|
|
25
|
+
- Are commit conventions documented (Conventional Commits)?
|
|
26
|
+
- Is the git workflow mode identified (`solo-git` | `team-pr`)?
|
|
27
|
+
|
|
28
|
+
### 3. Bigpowers pre-flight (must all be answered before build)
|
|
29
|
+
| Question | Why |
|
|
30
|
+
|----------|-----|
|
|
31
|
+
| What is the **test command**? | `develop-tdd` verify steps require it |
|
|
32
|
+
| What is the **build command**? | `verify-work` mechanical gate |
|
|
33
|
+
| What is the **lint command**? | `audit-code` lint gate |
|
|
34
|
+
| What is the **typecheck command**? | `verify-work` typecheck gate |
|
|
35
|
+
| What **CI platform** is in use? | `wire-ci` configuration |
|
|
36
|
+
| **Solo or team**? | `release-branch` integration mode |
|
|
37
|
+
| Primary **language + framework**? | model routing + conventions |
|
|
38
|
+
| **Greenfield or existing** codebase? | determines whether to run `seed-conventions` or `migrate-spec` first |
|
|
39
|
+
|
|
40
|
+
## Process
|
|
41
|
+
|
|
42
|
+
1. **Ingest the plan** — accept a file path, pasted PRD text, or existing `specs/` artifacts. Read `CLAUDE.md` and `CONVENTIONS.md` if present.
|
|
43
|
+
|
|
44
|
+
2. **Score each lens** — for every item above, mark:
|
|
45
|
+
- ✅ Present and adequate
|
|
46
|
+
- ⚠️ Present but incomplete — note what's missing
|
|
47
|
+
- ❌ Absent
|
|
48
|
+
|
|
49
|
+
3. **Close gaps conversationally** — for each ❌ or ⚠️, ask one question at a time. Record each answer before moving to the next.
|
|
50
|
+
|
|
51
|
+
4. **Write `specs/PLAN-AUDIT.md`**:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
# Plan Audit — <project>
|
|
55
|
+
**Date:** YYYY-MM-DD · **Verdict:** READY | NOT READY
|
|
56
|
+
|
|
57
|
+
## Principles Alignment
|
|
58
|
+
| Check | Status | Note |
|
|
59
|
+
| Vertical slices | ✅ | 4 stories, each shippable |
|
|
60
|
+
| Scope bounded | ⚠️ | in_scope present; out_of_scope missing |
|
|
61
|
+
|
|
62
|
+
## Conventions Completeness
|
|
63
|
+
| Check | Status | Note |
|
|
64
|
+
|
|
65
|
+
## Pre-flight Answers
|
|
66
|
+
| Command | Value |
|
|
67
|
+
| test | `npm test` |
|
|
68
|
+
| build | `npm run build` |
|
|
69
|
+
|
|
70
|
+
## Open Gaps
|
|
71
|
+
- [ ] Add out_of_scope to scope definition (run scope-work)
|
|
72
|
+
- [ ] Create CLAUDE.md (run seed-conventions)
|
|
73
|
+
|
|
74
|
+
## Verdict
|
|
75
|
+
READY — proceed with survey-context
|
|
76
|
+
NOT READY — N gaps remain; close before proceeding
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
5. **Recommend next skill**:
|
|
80
|
+
- READY → `survey-context`
|
|
81
|
+
- Needs bootstrapping → `seed-conventions`
|
|
82
|
+
- Needs spec elaboration → `elaborate-spec`
|
|
83
|
+
- Has foreign spec format → `migrate-spec`
|
|
84
|
+
- Plan assumptions need challenging → `grill-me`
|
|
85
|
+
|
|
86
|
+
## Verify
|
|
87
|
+
|
|
88
|
+
→ verify: `test -f specs/PLAN-AUDIT.md && grep -q 'Verdict' specs/PLAN-AUDIT.md && echo OK || echo FAIL`
|
|
@@ -71,6 +71,28 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
|
|
|
71
71
|
2. Ask: "Create this? [yes / edit / skip]"
|
|
72
72
|
3. On yes: write to `specs/`.
|
|
73
73
|
|
|
74
|
+
#### ID Tracking (REQ-XX, FR-XX, UJ-XX)
|
|
75
|
+
|
|
76
|
+
When source artifacts contain IDs (REQ-XX, FR-XX, UJ-XX), emit them as **first-class YAML fields** in `in_scope` entries, not YAML comments:
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
# CORRECT — first-class id: field
|
|
80
|
+
in_scope:
|
|
81
|
+
- id: REQ-001
|
|
82
|
+
description: "User can register with email/password"
|
|
83
|
+
source: "REQUIREMENTS.md"
|
|
84
|
+
|
|
85
|
+
# DEPRECATED — comment-only
|
|
86
|
+
in_scope:
|
|
87
|
+
- "User can register with email/password" # REQ-001
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**When source has no IDs:** Prompt the user: "No IDs found. Assign auto-generated IDs? [yes / no]". If yes, emit `REQ-{NNN}` with `# auto-generated` annotation.
|
|
91
|
+
|
|
92
|
+
**When source has MIXED IDs:** Items with IDs get `id:` fields; items without IDs receive auto-generated `REQ-NNN` entries. Document which were auto-generated in a comment block at the top of `in_scope`.
|
|
93
|
+
|
|
94
|
+
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
95
|
+
|
|
74
96
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
75
97
|
>
|
|
76
98
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -126,7 +148,7 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
|
|
|
126
148
|
|
|
127
149
|
## Rules
|
|
128
150
|
|
|
129
|
-
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX
|
|
151
|
+
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX are emitted as first-class `id:` fields in bigpowers YAML targets (e.g., `in_scope` entries). Never silently renumber. See Step 3 ID Tracking subsection for details.
|
|
130
152
|
- **Never merge contradictory docs** — if source has both `CONTEXT.md` and `architecture.md`, create sections in bigpowers `CONTEXT.md`; don't collapse them.
|
|
131
153
|
- **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`.
|
|
132
154
|
- **state.yaml is always regenerated** — never migrate source STATE verbatim; bigpowers state.yaml needs its own format.
|
|
@@ -184,9 +206,9 @@ Transform:
|
|
|
184
206
|
GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.
|
|
185
207
|
|
|
186
208
|
Transform:
|
|
187
|
-
-
|
|
188
|
-
- Validated requirements → `in_scope` entries
|
|
189
|
-
- Out-of-Scope → `out_of_scope` entries
|
|
209
|
+
- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](./REFERENCE.md#in_scope-format-with-id-tracking))
|
|
210
|
+
- Validated requirements → `in_scope` entries with `id:`, `description:`, `source:` fields
|
|
211
|
+
- Out-of-Scope → `out_of_scope` entries (preserve IDs if present)
|
|
190
212
|
- Active (in-progress) → `in_scope` with status note
|
|
191
213
|
|
|
192
214
|
---
|
|
@@ -404,7 +426,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
404
426
|
|
|
405
427
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
406
428
|
- [ ] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session.
|
|
407
|
-
- [
|
|
429
|
+
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
408
430
|
|
|
409
431
|
### From spec-kit
|
|
410
432
|
|
|
@@ -454,6 +476,27 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
454
476
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
455
477
|
```
|
|
456
478
|
|
|
479
|
+
### in_scope format with ID tracking
|
|
480
|
+
|
|
481
|
+
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
482
|
+
|
|
483
|
+
```yaml
|
|
484
|
+
in_scope:
|
|
485
|
+
- id: REQ-001
|
|
486
|
+
description: "User can register with email and password"
|
|
487
|
+
source: "REQUIREMENTS.md"
|
|
488
|
+
- id: FR-015
|
|
489
|
+
description: "Auth service must support OAuth2 token flow"
|
|
490
|
+
source: "prd.md"
|
|
491
|
+
- id: REQ-AUTO-002 # auto-generated when source had no ID
|
|
492
|
+
description: "Dashboard displays user profile"
|
|
493
|
+
# auto-generated: true (optional comment for tracking)
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**When source has no IDs:** If the user opts in, auto-generated IDs follow the `REQ-{NNN}` format with an optional `# auto-generated` comment.
|
|
497
|
+
|
|
498
|
+
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
499
|
+
|
|
457
500
|
### `specs/state.yaml` template format
|
|
458
501
|
|
|
459
502
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
|
@@ -57,9 +57,13 @@ Every task must have a `verify:` command. No verify command = not a task.
|
|
|
57
57
|
|
|
58
58
|
### 4. Save specs/release-plan.yaml
|
|
59
59
|
|
|
60
|
+
> **Do NOT hand-track the real version.** semantic-release decides it at merge. `version` here is a
|
|
61
|
+
> non-authoritative mirror/label only — read the real number with `gh release view`. Set `bump_hint`
|
|
62
|
+
> (the expectation), not a number you intend to enforce.
|
|
63
|
+
|
|
60
64
|
```yaml
|
|
61
65
|
release:
|
|
62
|
-
version: "
|
|
66
|
+
version: "2.29.0" # mirror of next expected tag, NOT authoritative — gh release view wins
|
|
63
67
|
codename: "Feature Name"
|
|
64
68
|
status: planning # planning | in_progress | released
|
|
65
69
|
semantic_release: true
|
|
@@ -108,8 +108,8 @@ active_epic_id: e02
|
|
|
108
108
|
active_story_id: e02s01 # required when epic mode: folder
|
|
109
109
|
active_bug_id: null # BUG-2026-06-01T143022 when fix_bug
|
|
110
110
|
release:
|
|
111
|
-
target_version:
|
|
112
|
-
last_tag:
|
|
111
|
+
target_version: null # NOT tracked manually — semantic-release decides at merge
|
|
112
|
+
last_tag: v2.28.0 # mirror of `gh release view`, reference only
|
|
113
113
|
last_publish: null
|
|
114
114
|
epic_cycle:
|
|
115
115
|
current_step: develop-tdd
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-plan
|
|
3
|
+
description: "Evaluate an incoming project plan against bigpowers principles and conventions, surface gaps, and produce a READY/NOT READY verdict before engagement begins. Use when a new project arrives, when adapting a foreign plan, or before running seed-conventions on an unfamiliar codebase."
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Audit Plan
|
|
9
|
+
|
|
10
|
+
> **HARD GATE** — Do NOT start build skills (kickoff-branch, develop-tdd) until audit-plan returns a READY verdict. A plan missing test commands, scope boundaries, or success criteria will produce drift and rework downstream.
|
|
11
|
+
|
|
12
|
+
Assess an incoming project plan for alignment with bigpowers principles, identify what's missing, and produce a structured readiness report before any skill execution begins.
|
|
13
|
+
|
|
14
|
+
## Three lenses
|
|
15
|
+
|
|
16
|
+
### 1. Principles alignment
|
|
17
|
+
- Are stories vertical slices (not horizontal layers)?
|
|
18
|
+
- Is scope bounded — explicit in_scope + out_of_scope?
|
|
19
|
+
- Are success criteria defined (how do we know we're done)?
|
|
20
|
+
- Are HARD GATE candidates identifiable (critical decision points)?
|
|
21
|
+
- Is there a domain language / ubiquitous terminology?
|
|
22
|
+
|
|
23
|
+
### 2. Conventions completeness
|
|
24
|
+
- Does `CLAUDE.md` or `AGENTS.md` exist?
|
|
25
|
+
- Does `CONVENTIONS.md` exist?
|
|
26
|
+
- Is the `specs/` directory layout in place?
|
|
27
|
+
- Are commit conventions documented (Conventional Commits)?
|
|
28
|
+
- Is the git workflow mode identified (`solo-git` | `team-pr`)?
|
|
29
|
+
|
|
30
|
+
### 3. Bigpowers pre-flight (must all be answered before build)
|
|
31
|
+
| Question | Why |
|
|
32
|
+
|----------|-----|
|
|
33
|
+
| What is the **test command**? | `develop-tdd` verify steps require it |
|
|
34
|
+
| What is the **build command**? | `verify-work` mechanical gate |
|
|
35
|
+
| What is the **lint command**? | `audit-code` lint gate |
|
|
36
|
+
| What is the **typecheck command**? | `verify-work` typecheck gate |
|
|
37
|
+
| What **CI platform** is in use? | `wire-ci` configuration |
|
|
38
|
+
| **Solo or team**? | `release-branch` integration mode |
|
|
39
|
+
| Primary **language + framework**? | model routing + conventions |
|
|
40
|
+
| **Greenfield or existing** codebase? | determines whether to run `seed-conventions` or `migrate-spec` first |
|
|
41
|
+
|
|
42
|
+
## Process
|
|
43
|
+
|
|
44
|
+
1. **Ingest the plan** — accept a file path, pasted PRD text, or existing `specs/` artifacts. Read `CLAUDE.md` and `CONVENTIONS.md` if present.
|
|
45
|
+
|
|
46
|
+
2. **Score each lens** — for every item above, mark:
|
|
47
|
+
- ✅ Present and adequate
|
|
48
|
+
- ⚠️ Present but incomplete — note what's missing
|
|
49
|
+
- ❌ Absent
|
|
50
|
+
|
|
51
|
+
3. **Close gaps conversationally** — for each ❌ or ⚠️, ask one question at a time. Record each answer before moving to the next.
|
|
52
|
+
|
|
53
|
+
4. **Write `specs/PLAN-AUDIT.md`**:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
# Plan Audit — <project>
|
|
57
|
+
**Date:** YYYY-MM-DD · **Verdict:** READY | NOT READY
|
|
58
|
+
|
|
59
|
+
## Principles Alignment
|
|
60
|
+
| Check | Status | Note |
|
|
61
|
+
| Vertical slices | ✅ | 4 stories, each shippable |
|
|
62
|
+
| Scope bounded | ⚠️ | in_scope present; out_of_scope missing |
|
|
63
|
+
|
|
64
|
+
## Conventions Completeness
|
|
65
|
+
| Check | Status | Note |
|
|
66
|
+
|
|
67
|
+
## Pre-flight Answers
|
|
68
|
+
| Command | Value |
|
|
69
|
+
| test | `npm test` |
|
|
70
|
+
| build | `npm run build` |
|
|
71
|
+
|
|
72
|
+
## Open Gaps
|
|
73
|
+
- [ ] Add out_of_scope to scope definition (run scope-work)
|
|
74
|
+
- [ ] Create CLAUDE.md (run seed-conventions)
|
|
75
|
+
|
|
76
|
+
## Verdict
|
|
77
|
+
READY — proceed with survey-context
|
|
78
|
+
NOT READY — N gaps remain; close before proceeding
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
5. **Recommend next skill**:
|
|
82
|
+
- READY → `survey-context`
|
|
83
|
+
- Needs bootstrapping → `seed-conventions`
|
|
84
|
+
- Needs spec elaboration → `elaborate-spec`
|
|
85
|
+
- Has foreign spec format → `migrate-spec`
|
|
86
|
+
- Plan assumptions need challenging → `grill-me`
|
|
87
|
+
|
|
88
|
+
## Verify
|
|
89
|
+
|
|
90
|
+
→ verify: `test -f specs/PLAN-AUDIT.md && grep -q 'Verdict' specs/PLAN-AUDIT.md && echo OK || echo FAIL`
|
|
@@ -73,6 +73,28 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
|
|
|
73
73
|
2. Ask: "Create this? [yes / edit / skip]"
|
|
74
74
|
3. On yes: write to `specs/`.
|
|
75
75
|
|
|
76
|
+
#### ID Tracking (REQ-XX, FR-XX, UJ-XX)
|
|
77
|
+
|
|
78
|
+
When source artifacts contain IDs (REQ-XX, FR-XX, UJ-XX), emit them as **first-class YAML fields** in `in_scope` entries, not YAML comments:
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
# CORRECT — first-class id: field
|
|
82
|
+
in_scope:
|
|
83
|
+
- id: REQ-001
|
|
84
|
+
description: "User can register with email/password"
|
|
85
|
+
source: "REQUIREMENTS.md"
|
|
86
|
+
|
|
87
|
+
# DEPRECATED — comment-only
|
|
88
|
+
in_scope:
|
|
89
|
+
- "User can register with email/password" # REQ-001
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**When source has no IDs:** Prompt the user: "No IDs found. Assign auto-generated IDs? [yes / no]". If yes, emit `REQ-{NNN}` with `# auto-generated` annotation.
|
|
93
|
+
|
|
94
|
+
**When source has MIXED IDs:** Items with IDs get `id:` fields; items without IDs receive auto-generated `REQ-NNN` entries. Document which were auto-generated in a comment block at the top of `in_scope`.
|
|
95
|
+
|
|
96
|
+
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
97
|
+
|
|
76
98
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
77
99
|
>
|
|
78
100
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -128,7 +150,7 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
|
|
|
128
150
|
|
|
129
151
|
## Rules
|
|
130
152
|
|
|
131
|
-
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX
|
|
153
|
+
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX are emitted as first-class `id:` fields in bigpowers YAML targets (e.g., `in_scope` entries). Never silently renumber. See Step 3 ID Tracking subsection for details.
|
|
132
154
|
- **Never merge contradictory docs** — if source has both `CONTEXT.md` and `architecture.md`, create sections in bigpowers `CONTEXT.md`; don't collapse them.
|
|
133
155
|
- **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`.
|
|
134
156
|
- **state.yaml is always regenerated** — never migrate source STATE verbatim; bigpowers state.yaml needs its own format.
|
|
@@ -186,9 +208,9 @@ Transform:
|
|
|
186
208
|
GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.
|
|
187
209
|
|
|
188
210
|
Transform:
|
|
189
|
-
-
|
|
190
|
-
- Validated requirements → `in_scope` entries
|
|
191
|
-
- Out-of-Scope → `out_of_scope` entries
|
|
211
|
+
- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](./REFERENCE.md#in_scope-format-with-id-tracking))
|
|
212
|
+
- Validated requirements → `in_scope` entries with `id:`, `description:`, `source:` fields
|
|
213
|
+
- Out-of-Scope → `out_of_scope` entries (preserve IDs if present)
|
|
192
214
|
- Active (in-progress) → `in_scope` with status note
|
|
193
215
|
|
|
194
216
|
---
|
|
@@ -406,7 +428,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
406
428
|
|
|
407
429
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
408
430
|
- [ ] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session.
|
|
409
|
-
- [
|
|
431
|
+
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
410
432
|
|
|
411
433
|
### From spec-kit
|
|
412
434
|
|
|
@@ -456,6 +478,27 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
456
478
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
457
479
|
```
|
|
458
480
|
|
|
481
|
+
### in_scope format with ID tracking
|
|
482
|
+
|
|
483
|
+
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
484
|
+
|
|
485
|
+
```yaml
|
|
486
|
+
in_scope:
|
|
487
|
+
- id: REQ-001
|
|
488
|
+
description: "User can register with email and password"
|
|
489
|
+
source: "REQUIREMENTS.md"
|
|
490
|
+
- id: FR-015
|
|
491
|
+
description: "Auth service must support OAuth2 token flow"
|
|
492
|
+
source: "prd.md"
|
|
493
|
+
- id: REQ-AUTO-002 # auto-generated when source had no ID
|
|
494
|
+
description: "Dashboard displays user profile"
|
|
495
|
+
# auto-generated: true (optional comment for tracking)
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**When source has no IDs:** If the user opts in, auto-generated IDs follow the `REQ-{NNN}` format with an optional `# auto-generated` comment.
|
|
499
|
+
|
|
500
|
+
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
501
|
+
|
|
459
502
|
### `specs/state.yaml` template format
|
|
460
503
|
|
|
461
504
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
|
@@ -59,9 +59,13 @@ Every task must have a `verify:` command. No verify command = not a task.
|
|
|
59
59
|
|
|
60
60
|
### 4. Save specs/release-plan.yaml
|
|
61
61
|
|
|
62
|
+
> **Do NOT hand-track the real version.** semantic-release decides it at merge. `version` here is a
|
|
63
|
+
> non-authoritative mirror/label only — read the real number with `gh release view`. Set `bump_hint`
|
|
64
|
+
> (the expectation), not a number you intend to enforce.
|
|
65
|
+
|
|
62
66
|
```yaml
|
|
63
67
|
release:
|
|
64
|
-
version: "
|
|
68
|
+
version: "2.29.0" # mirror of next expected tag, NOT authoritative — gh release view wins
|
|
65
69
|
codename: "Feature Name"
|
|
66
70
|
status: planning # planning | in_progress | released
|
|
67
71
|
semantic_release: true
|
|
@@ -110,8 +110,8 @@ active_epic_id: e02
|
|
|
110
110
|
active_story_id: e02s01 # required when epic mode: folder
|
|
111
111
|
active_bug_id: null # BUG-2026-06-01T143022 when fix_bug
|
|
112
112
|
release:
|
|
113
|
-
target_version:
|
|
114
|
-
last_tag:
|
|
113
|
+
target_version: null # NOT tracked manually — semantic-release decides at merge
|
|
114
|
+
last_tag: v2.28.0 # mirror of `gh release view`, reference only
|
|
115
115
|
last_publish: null
|
|
116
116
|
epic_cycle:
|
|
117
117
|
current_step: develop-tdd
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [2.29.0](https://github.com/danielvm-git/bigpowers/compare/v2.28.0...v2.29.0) (2026-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **migrate-spec:** promote ID tracking from comments to first-class YAML fields ([f1c8d73](https://github.com/danielvm-git/bigpowers/commit/f1c8d73a5140175fc0067a191f119eea70395075)), closes [#22](https://github.com/danielvm-git/bigpowers/issues/22)
|
|
7
|
+
|
|
8
|
+
# [2.28.0](https://github.com/danielvm-git/bigpowers/compare/v2.27.0...v2.28.0) (2026-06-22)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **audit-plan:** new skill — evaluate project plan for bigpowers readiness ([509deba](https://github.com/danielvm-git/bigpowers/commit/509deba5a45b3f688d087b11091fc854449c7e46))
|
|
14
|
+
|
|
1
15
|
# [2.27.0](https://github.com/danielvm-git/bigpowers/compare/v2.26.0...v2.27.0) (2026-06-22)
|
|
2
16
|
|
|
3
17
|
|
package/CONVENTIONS.md
CHANGED
|
@@ -96,11 +96,16 @@ Epic IDs: `e01`, `e30`. Story IDs: `e01s01`. One FR in SCOPE may span multiple e
|
|
|
96
96
|
|
|
97
97
|
When planning closes, copy to `specs/product/snapshots/release-<version>/` (`release-plan.yaml`, `SCOPE_LATEST.yaml`, `VISION_LATEST.yaml`). No separate `baselines/` folder.
|
|
98
98
|
|
|
99
|
-
### Semantic-release —
|
|
99
|
+
### Semantic-release — the real version is never hand-tracked
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
> **The authority is `gh release view` / git tags.** semantic-release decides the version
|
|
102
|
+
> at merge from Conventional Commits. Never hand-maintain a `target_version` to "predict" it —
|
|
103
|
+
> that field drifts from reality every release. The specs only *mirror* the real tag for reference.
|
|
104
|
+
|
|
105
|
+
1. **Planning intent (codename only)** — `specs/release-plan.yaml` → `release.version`, `release.bump_hint`.
|
|
106
|
+
Treat `version` as a non-authoritative label; if you write a number, mark it "mirror, not the authority".
|
|
107
|
+
2. **Published version (authority)** — repo root `package.json`, git tag `vX.Y.Z`, `CHANGELOG.md` (CI semantic-release; not hand-edited in specs). Read with `gh release view`.
|
|
108
|
+
3. **Dashboard mirror** — `specs/state.yaml` → `release.last_tag`, `release.last_publish` (copied from `gh release view`; `target_version` is `null` — not tracked manually).
|
|
104
109
|
|
|
105
110
|
### Guardrails and other artifacts
|
|
106
111
|
|
package/SKILL-INDEX.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
> **DO NOT EDIT** — This file is auto-generated by `scripts/generate-skill-index.sh`.
|
|
4
4
|
> Edit `SKILL.md` source files or `skills-lock.json` instead. Run `bash scripts/sync-skills.sh` to regenerate.
|
|
5
5
|
|
|
6
|
-
**Generated:** 2026-06-
|
|
7
|
-
**Skills:**
|
|
6
|
+
**Generated:** 2026-06-26T22:20:53Z
|
|
7
|
+
**Skills:** 70
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
| Phase | Count | Skills |
|
|
14
14
|
|---|---|---|
|
|
15
|
-
| Discover |
|
|
15
|
+
| Discover | 7 | `audit-plan, elaborate-spec, map-codebase, research-first, search-skills, survey-context, using-bigpowers` |
|
|
16
16
|
| Design | 7 | `deepen-architecture, define-language, define-success, design-interface, grill-me, grill-with-docs, model-domain` |
|
|
17
17
|
| Plan | 9 | `assess-impact, change-request, plan-refactor, plan-release, plan-work, run-planning, scope-work, seed-conventions, slice-tasks` |
|
|
18
18
|
| Build | 18 | `align-grid, build-epic, craft-skill, deploy, develop-tdd, execute-plan, guard-git, hook-commits, kickoff-branch, orchestrate-project, publish-package, quick-fix, setup-environment, smoke-test, spike-prototype, validate-contracts, wire-ci, wire-observability` |
|
|
19
19
|
| Verify | 12 | `audit-code, diagnose-root, enforce-first, fix-bug, inspect-quality, investigate-bug, request-review, respond-review, run-evals, trace-requirement, validate-fix, verify-work` |
|
|
20
20
|
| Release | 2 | `commit-message, release-branch` |
|
|
21
|
-
| Sustain |
|
|
22
|
-
| **TOTAL** | **
|
|
21
|
+
| Sustain | 14 | `compose-workflow, delegate-task, dispatch-agents, edit-document, evolve-skill, migrate-spec, organize-workspace, reset-baseline, run-benchmark, session-state, simulate-agents, stocktake-skills, terse-mode, write-document` |
|
|
22
|
+
| **TOTAL** | **69** | |
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -27,75 +27,77 @@
|
|
|
27
27
|
|
|
28
28
|
| # | Phase | Skill | Description | Status |
|
|
29
29
|
|---|---|---|---|---|
|
|
30
|
-
| 1 | Discover | `
|
|
31
|
-
| 2 | Discover | `
|
|
32
|
-
| 3 | Discover | `
|
|
33
|
-
| 4 | Discover | `
|
|
34
|
-
| 5 | Discover | `
|
|
35
|
-
| 6 | Discover | `
|
|
36
|
-
| 7 |
|
|
37
|
-
| 8 | Design | `
|
|
38
|
-
| 9 | Design | `define-
|
|
39
|
-
| 10 | Design | `
|
|
40
|
-
| 11 | Design | `
|
|
41
|
-
| 12 | Design | `grill-
|
|
42
|
-
| 13 | Design | `
|
|
43
|
-
| 14 |
|
|
44
|
-
| 15 | Plan | `
|
|
45
|
-
| 16 | Plan | `
|
|
46
|
-
| 17 | Plan | `plan-
|
|
47
|
-
| 18 | Plan | `plan-
|
|
48
|
-
| 19 | Plan | `
|
|
49
|
-
| 20 | Plan | `
|
|
50
|
-
| 21 | Plan | `
|
|
51
|
-
| 22 | Plan | `
|
|
52
|
-
| 23 |
|
|
53
|
-
| 24 | Build | `
|
|
54
|
-
| 25 | Build | `
|
|
55
|
-
| 26 | Build | `
|
|
56
|
-
| 27 | Build | `
|
|
57
|
-
| 28 | Build | `
|
|
58
|
-
| 29 | Build | `
|
|
59
|
-
| 30 | Build | `
|
|
60
|
-
| 31 | Build | `
|
|
61
|
-
| 32 | Build | `
|
|
62
|
-
| 33 | Build | `
|
|
63
|
-
| 34 | Build | `
|
|
64
|
-
| 35 | Build | `
|
|
65
|
-
| 36 | Build | `
|
|
66
|
-
| 37 | Build | `
|
|
67
|
-
| 38 | Build | `
|
|
68
|
-
| 39 | Build | `
|
|
69
|
-
| 40 | Build | `wire-
|
|
70
|
-
| 41 |
|
|
71
|
-
| 42 | Verify | `
|
|
72
|
-
| 43 | Verify | `
|
|
73
|
-
| 44 | Verify | `
|
|
74
|
-
| 45 | Verify | `
|
|
75
|
-
| 46 | Verify | `
|
|
76
|
-
| 47 | Verify | `
|
|
77
|
-
| 48 | Verify | `
|
|
78
|
-
| 49 | Verify | `
|
|
79
|
-
| 50 | Verify | `
|
|
80
|
-
| 51 | Verify | `
|
|
81
|
-
| 52 | Verify | `
|
|
82
|
-
| 53 |
|
|
83
|
-
| 54 | Release | `
|
|
84
|
-
| 55 |
|
|
85
|
-
| 56 | Sustain | `
|
|
86
|
-
| 57 | Sustain | `
|
|
87
|
-
| 58 | Sustain | `
|
|
88
|
-
| 59 | Sustain | `
|
|
89
|
-
| 60 | Sustain | `
|
|
90
|
-
| 61 | Sustain | `
|
|
91
|
-
| 62 | Sustain | `
|
|
92
|
-
| 63 | Sustain | `
|
|
93
|
-
| 64 | Sustain | `
|
|
94
|
-
| 65 | Sustain | `
|
|
95
|
-
| 66 | Sustain | `
|
|
96
|
-
| 67 | Sustain | `
|
|
97
|
-
|
|
98
|
-
|
|
30
|
+
| 1 | Discover | `audit-plan` | Evaluate an incoming project plan against bigpowers principles and conventions, | ✅ Active |
|
|
31
|
+
| 2 | Discover | `elaborate-spec` | Refine a rough idea into a clear, detailed specification through dialogue. Does | ✅ Active |
|
|
32
|
+
| 3 | Discover | `map-codebase` | "Derives the tech-stack doc from scratch by scanning the codebase — analyzes s | ✅ Active |
|
|
33
|
+
| 4 | Discover | `research-first` | Look-before-build — search registries, repo, existing skills, and web for prio | ✅ Active |
|
|
34
|
+
| 5 | Discover | `search-skills` | Find the right bigpowers skill from natural-language intent using a local lexica | ✅ Active |
|
|
35
|
+
| 6 | Discover | `survey-context` | Per-task context bootstrap — reads existing specs/ and tech-architecture docs | ✅ Active |
|
|
36
|
+
| 7 | Discover | `using-bigpowers` | One-time bootstrap that introduces the bigpowers skills system, the PMBOK lifecy | ✅ Active |
|
|
37
|
+
| 8 | Design | `deepen-architecture` | Find deepening opportunities in a codebase, informed by the domain language in s | ✅ Active |
|
|
38
|
+
| 9 | Design | `define-language` | Extract a DDD-style ubiquitous language glossary from the current conversation, | ✅ Active |
|
|
39
|
+
| 10 | Design | `define-success` | Convert an imperative task statement into explicit "step → verify: <cmd>" pair | ✅ Active |
|
|
40
|
+
| 11 | Design | `design-interface` | Generate multiple radically different interface designs for a module using paral | ✅ Active |
|
|
41
|
+
| 12 | Design | `grill-me` | Interactive assumption-surfacing Q&A that stress-tests a plan through relentless | ✅ Active |
|
|
42
|
+
| 13 | Design | `grill-with-docs` | Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching a | ✅ Active |
|
|
43
|
+
| 14 | Design | `model-domain` | Grilling session that challenges your plan against the existing domain model, sh | ✅ Active |
|
|
44
|
+
| 15 | Plan | `assess-impact` | Analyze the blast radius of a proposed change before any code is written. Maps d | ✅ Active |
|
|
45
|
+
| 16 | Plan | `change-request` | Add a new requirement or reorder epics by WSJF against specs/release-plan.yaml a | ✅ Active |
|
|
46
|
+
| 17 | Plan | `plan-refactor` | Create a detailed refactor plan with tiny commits via user interview, then save | ✅ Active |
|
|
47
|
+
| 18 | Plan | `plan-release` | "RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/release-plan.yam | ✅ Active |
|
|
48
|
+
| 19 | Plan | `plan-work` | "PLANNING SPINE STEP 3 of 3 — Plan the work: write detailed implementation tas | ✅ Active |
|
|
49
|
+
| 20 | Plan | `run-planning` | "DISCOVER-PHASE ADVANCER — Drive the discover-phase checklist (specs/planning- | ✅ Active |
|
|
50
|
+
| 21 | Plan | `scope-work` | "PLANNING SPINE STEP 1 of 3 — Scope the work: define what is in and out of sco | ✅ Active |
|
|
51
|
+
| 22 | Plan | `seed-conventions` | Generate CLAUDE.md and CONVENTIONS.md for a brand-new project through a brief in | ✅ Active |
|
|
52
|
+
| 23 | Plan | `slice-tasks` | "PLANNING SPINE STEP 2 of 3 — Slice the work: break a scoped PRD into vertical | ✅ Active |
|
|
53
|
+
| 24 | Build | `align-grid` | "Build editorial/magazine/report webpages on a GENUINE Müller-Brockmann modular | ✅ Active |
|
|
54
|
+
| 25 | Build | `build-epic` | Eight-step epic build cycle — reads state.yaml, execution-status.yaml, and one | ✅ Active |
|
|
55
|
+
| 26 | Build | `craft-skill` | Create new bigpowers skills with proper structure, progressive disclosure, and b | ✅ Active |
|
|
56
|
+
| 27 | Build | `deploy` | "Build → verify artifact → deploy → wait → smoke deployment pipeline. Pl | ✅ Active |
|
|
57
|
+
| 28 | Build | `develop-tdd` | Test-driven development with red-green-refactor loop using vertical slices. Use | ✅ Active |
|
|
58
|
+
| 29 | Build | `execute-plan` | Batch-execute tasks from the active epic capsule sequentially, with a human chec | ✅ Active |
|
|
59
|
+
| 30 | Build | `guard-git` | Block dangerous git commands (push, force push, reset --hard, clean, branch -D, | ✅ Active |
|
|
60
|
+
| 31 | Build | `hook-commits` | Set up pre-commit hooks with lint-staged (Prettier), type checking, and tests in | ✅ Active |
|
|
61
|
+
| 32 | Build | `kickoff-branch` | Create a git worktree and feature branch, then verify a clean test baseline befo | ✅ Active |
|
|
62
|
+
| 33 | Build | `orchestrate-project` | Meta-skill that enforces the 6-phase core loop (discover → elaborate → plan | ✅ Active |
|
|
63
|
+
| 34 | Build | `publish-package` | "Package registry publishing for npm, crates.io, PyPI, and Homebrew. Verifies pr | ✅ Active |
|
|
64
|
+
| 35 | Build | `quick-fix` | "Streamlined fast-path for trivial data-only fixes — no TDD, no branching cere | ✅ Active |
|
|
65
|
+
| 36 | Build | `setup-environment` | Pre-install dependencies and configure tools before development work begins. Use | ✅ Active |
|
|
66
|
+
| 37 | Build | `smoke-test` | "Post-deploy health-check against a live URL. Validates HTTP status, response co | ✅ Active |
|
|
67
|
+
| 38 | Build | `spike-prototype` | Throw-away prototype for unknown problem spaces. Output is learning notes in spe | ✅ Active |
|
|
68
|
+
| 39 | Build | `validate-contracts` | "Assert data shape consistency across system boundaries — live API responses a | ✅ Active |
|
|
69
|
+
| 40 | Build | `wire-ci` | "CI pipeline setup with pre-built templates and local validation. Generates GitH | ✅ Active |
|
|
70
|
+
| 41 | Build | `wire-observability` | Add structured JSON logging, observability commands, and idempotent setup script | ✅ Active |
|
|
71
|
+
| 42 | Verify | `audit-code` | Self-review checklist for the coding agent to run before dispatching a reviewer. | ✅ Active |
|
|
72
|
+
| 43 | Verify | `diagnose-root` | Run 4-phase root cause analysis — reproduce, isolate, hypothesize, verify. Use | ✅ Active |
|
|
73
|
+
| 44 | Verify | `enforce-first` | Apply the F.I.R.S.T test quality rubric (Fast, Independent, Repeatable, Self-Val | ✅ Active |
|
|
74
|
+
| 45 | Verify | `fix-bug` | Bug fix orchestrator — active_flow fix_bug; reads specs/bugs/BUG-*.md; chains | ✅ Active |
|
|
75
|
+
| 46 | Verify | `inspect-quality` | Interactive QA session where user reports bugs or issues conversationally, and t | ✅ Active |
|
|
76
|
+
| 47 | Verify | `investigate-bug` | Investigate a bug or issue by exploring the codebase to find root cause, then wr | ✅ Active |
|
|
77
|
+
| 48 | Verify | `request-review` | Dispatch a fresh reviewer agent with a clean context to critique the code after | ✅ Active |
|
|
78
|
+
| 49 | Verify | `respond-review` | Act on a reviewer agent's feedback systematically — categorize findings, apply | ✅ Active |
|
|
79
|
+
| 50 | Verify | `run-evals` | Eval-Driven Development — define capability and regression evals before buildi | ✅ Active |
|
|
80
|
+
| 51 | Verify | `trace-requirement` | Link story IDs from specs/release-plan.yaml + epic capsule directories to the im | ✅ Active |
|
|
81
|
+
| 52 | Verify | `validate-fix` | Prove a fix works before declaring done — re-run the failing test, run the ful | ✅ Active |
|
|
82
|
+
| 53 | Verify | `verify-work` | Multi-phase UAT gate — cold-start smoke, build, typecheck, lint, tests, step-b | ✅ Active |
|
|
83
|
+
| 54 | Release | `commit-message` | Reviews working-tree changes, then drafts a Conventional Commits title/body and | ✅ Active |
|
|
84
|
+
| 55 | Release | `release-branch` | Make the merge/PR/keep/discard decision for a feature branch, verify coverage ga | ✅ Active |
|
|
85
|
+
| 56 | Sustain | `compose-workflow` | Chain multiple bigpowers skills into a custom workflow recipe saved in specs/. U | ✅ Active |
|
|
86
|
+
| 57 | Sustain | `delegate-task` | Delegate one complex task to a single subagent, review its work in two stages be | ✅ Active |
|
|
87
|
+
| 58 | Sustain | `dispatch-agents` | Dispatch multiple subagents in parallel on independent tasks. No waiting between | ✅ Active |
|
|
88
|
+
| 59 | Sustain | `edit-document` | Edit and improve documents by restructuring sections, improving clarity, and tig | ✅ Active |
|
|
89
|
+
| 60 | Sustain | `evolve-skill` | Benchmark-gated skill evolution — consume bigpowers-benchmark report, propose | ✅ Active |
|
|
90
|
+
| 61 | Sustain | `migrate-spec` | Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers Y | ✅ Active |
|
|
91
|
+
| 62 | Sustain | `organize-workspace` | Scans the active workspace for disposable artifacts—logs, caches, stale build | ✅ Active |
|
|
92
|
+
| 63 | Sustain | `reset-baseline` | Restore the project to a known clean state between agent runs or experiments. Us | ✅ Active |
|
|
93
|
+
| 64 | Sustain | `run-benchmark` | Run skill quality benchmarks from specs/benchmarks/ definitions and write pass@k | ✅ Active |
|
|
94
|
+
| 65 | Sustain | `session-state` | Track implementation decisions and progress in specs/state.yaml to prevent conte | ✅ Active |
|
|
95
|
+
| 66 | Sustain | `simulate-agents` | Run Mock User and Auditor agents against a feature in fresh contexts before huma | ✅ Active |
|
|
96
|
+
| 67 | Sustain | `stocktake-skills` | Sequential subagent batch audit of the bigpowers skill catalog — Quick Scan (c | ✅ Active |
|
|
97
|
+
| 68 | Sustain | `terse-mode` | Fallback ultra-compressed communication mode. Cuts token usage ~75% by dropping | ✅ Active |
|
|
98
|
+
| 69 | Sustain | `write-document` | Write, organize, and sync high-integrity technical documents using the BMAD meth | ✅ Active |
|
|
99
|
+
|
|
100
|
+
**Total: 69 active skills.**
|
|
99
101
|
|
|
100
102
|
---
|
|
101
103
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-plan
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: Evaluate an incoming project plan against bigpowers principles and conventions, surface gaps, and produce a READY/NOT READY verdict before engagement begins. Use when a new project arrives, when adapting a foreign plan, or before running seed-conventions on an unfamiliar codebase.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Audit Plan
|
|
8
|
+
|
|
9
|
+
> **HARD GATE** — Do NOT start build skills (kickoff-branch, develop-tdd) until audit-plan returns a READY verdict. A plan missing test commands, scope boundaries, or success criteria will produce drift and rework downstream.
|
|
10
|
+
|
|
11
|
+
Assess an incoming project plan for alignment with bigpowers principles, identify what's missing, and produce a structured readiness report before any skill execution begins.
|
|
12
|
+
|
|
13
|
+
## Three lenses
|
|
14
|
+
|
|
15
|
+
### 1. Principles alignment
|
|
16
|
+
- Are stories vertical slices (not horizontal layers)?
|
|
17
|
+
- Is scope bounded — explicit in_scope + out_of_scope?
|
|
18
|
+
- Are success criteria defined (how do we know we're done)?
|
|
19
|
+
- Are HARD GATE candidates identifiable (critical decision points)?
|
|
20
|
+
- Is there a domain language / ubiquitous terminology?
|
|
21
|
+
|
|
22
|
+
### 2. Conventions completeness
|
|
23
|
+
- Does `CLAUDE.md` or `AGENTS.md` exist?
|
|
24
|
+
- Does `CONVENTIONS.md` exist?
|
|
25
|
+
- Is the `specs/` directory layout in place?
|
|
26
|
+
- Are commit conventions documented (Conventional Commits)?
|
|
27
|
+
- Is the git workflow mode identified (`solo-git` | `team-pr`)?
|
|
28
|
+
|
|
29
|
+
### 3. Bigpowers pre-flight (must all be answered before build)
|
|
30
|
+
| Question | Why |
|
|
31
|
+
|----------|-----|
|
|
32
|
+
| What is the **test command**? | `develop-tdd` verify steps require it |
|
|
33
|
+
| What is the **build command**? | `verify-work` mechanical gate |
|
|
34
|
+
| What is the **lint command**? | `audit-code` lint gate |
|
|
35
|
+
| What is the **typecheck command**? | `verify-work` typecheck gate |
|
|
36
|
+
| What **CI platform** is in use? | `wire-ci` configuration |
|
|
37
|
+
| **Solo or team**? | `release-branch` integration mode |
|
|
38
|
+
| Primary **language + framework**? | model routing + conventions |
|
|
39
|
+
| **Greenfield or existing** codebase? | determines whether to run `seed-conventions` or `migrate-spec` first |
|
|
40
|
+
|
|
41
|
+
## Process
|
|
42
|
+
|
|
43
|
+
1. **Ingest the plan** — accept a file path, pasted PRD text, or existing `specs/` artifacts. Read `CLAUDE.md` and `CONVENTIONS.md` if present.
|
|
44
|
+
|
|
45
|
+
2. **Score each lens** — for every item above, mark:
|
|
46
|
+
- ✅ Present and adequate
|
|
47
|
+
- ⚠️ Present but incomplete — note what's missing
|
|
48
|
+
- ❌ Absent
|
|
49
|
+
|
|
50
|
+
3. **Close gaps conversationally** — for each ❌ or ⚠️, ask one question at a time. Record each answer before moving to the next.
|
|
51
|
+
|
|
52
|
+
4. **Write `specs/PLAN-AUDIT.md`**:
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
# Plan Audit — <project>
|
|
56
|
+
**Date:** YYYY-MM-DD · **Verdict:** READY | NOT READY
|
|
57
|
+
|
|
58
|
+
## Principles Alignment
|
|
59
|
+
| Check | Status | Note |
|
|
60
|
+
| Vertical slices | ✅ | 4 stories, each shippable |
|
|
61
|
+
| Scope bounded | ⚠️ | in_scope present; out_of_scope missing |
|
|
62
|
+
|
|
63
|
+
## Conventions Completeness
|
|
64
|
+
| Check | Status | Note |
|
|
65
|
+
|
|
66
|
+
## Pre-flight Answers
|
|
67
|
+
| Command | Value |
|
|
68
|
+
| test | `npm test` |
|
|
69
|
+
| build | `npm run build` |
|
|
70
|
+
|
|
71
|
+
## Open Gaps
|
|
72
|
+
- [ ] Add out_of_scope to scope definition (run scope-work)
|
|
73
|
+
- [ ] Create CLAUDE.md (run seed-conventions)
|
|
74
|
+
|
|
75
|
+
## Verdict
|
|
76
|
+
READY — proceed with survey-context
|
|
77
|
+
NOT READY — N gaps remain; close before proceeding
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
5. **Recommend next skill**:
|
|
81
|
+
- READY → `survey-context`
|
|
82
|
+
- Needs bootstrapping → `seed-conventions`
|
|
83
|
+
- Needs spec elaboration → `elaborate-spec`
|
|
84
|
+
- Has foreign spec format → `migrate-spec`
|
|
85
|
+
- Plan assumptions need challenging → `grill-me`
|
|
86
|
+
|
|
87
|
+
## Verify
|
|
88
|
+
|
|
89
|
+
→ verify: `test -f specs/PLAN-AUDIT.md && grep -q 'Verdict' specs/PLAN-AUDIT.md && echo OK || echo FAIL`
|
|
@@ -48,9 +48,9 @@ Transform:
|
|
|
48
48
|
GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.
|
|
49
49
|
|
|
50
50
|
Transform:
|
|
51
|
-
-
|
|
52
|
-
- Validated requirements → `in_scope` entries
|
|
53
|
-
- Out-of-Scope → `out_of_scope` entries
|
|
51
|
+
- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](./REFERENCE.md#in_scope-format-with-id-tracking))
|
|
52
|
+
- Validated requirements → `in_scope` entries with `id:`, `description:`, `source:` fields
|
|
53
|
+
- Out-of-Scope → `out_of_scope` entries (preserve IDs if present)
|
|
54
54
|
- Active (in-progress) → `in_scope` with status note
|
|
55
55
|
|
|
56
56
|
---
|
|
@@ -134,7 +134,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
|
|
|
134
134
|
|
|
135
135
|
- [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
|
|
136
136
|
- [ ] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session.
|
|
137
|
-
- [
|
|
137
|
+
- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)
|
|
138
138
|
|
|
139
139
|
### From spec-kit
|
|
140
140
|
|
|
@@ -184,6 +184,27 @@ For lightweight decisions that don't warrant a full ADR:
|
|
|
184
184
|
| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
|
|
185
185
|
```
|
|
186
186
|
|
|
187
|
+
### in_scope format with ID tracking
|
|
188
|
+
|
|
189
|
+
Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:
|
|
190
|
+
|
|
191
|
+
```yaml
|
|
192
|
+
in_scope:
|
|
193
|
+
- id: REQ-001
|
|
194
|
+
description: "User can register with email and password"
|
|
195
|
+
source: "REQUIREMENTS.md"
|
|
196
|
+
- id: FR-015
|
|
197
|
+
description: "Auth service must support OAuth2 token flow"
|
|
198
|
+
source: "prd.md"
|
|
199
|
+
- id: REQ-AUTO-002 # auto-generated when source had no ID
|
|
200
|
+
description: "Dashboard displays user profile"
|
|
201
|
+
# auto-generated: true (optional comment for tracking)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**When source has no IDs:** If the user opts in, auto-generated IDs follow the `REQ-{NNN}` format with an optional `# auto-generated` comment.
|
|
205
|
+
|
|
206
|
+
**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.
|
|
207
|
+
|
|
187
208
|
### `specs/state.yaml` template format
|
|
188
209
|
|
|
189
210
|
Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
|
package/migrate-spec/SKILL.md
CHANGED
|
@@ -74,6 +74,28 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
|
|
|
74
74
|
2. Ask: "Create this? [yes / edit / skip]"
|
|
75
75
|
3. On yes: write to `specs/`.
|
|
76
76
|
|
|
77
|
+
#### ID Tracking (REQ-XX, FR-XX, UJ-XX)
|
|
78
|
+
|
|
79
|
+
When source artifacts contain IDs (REQ-XX, FR-XX, UJ-XX), emit them as **first-class YAML fields** in `in_scope` entries, not YAML comments:
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
# CORRECT — first-class id: field
|
|
83
|
+
in_scope:
|
|
84
|
+
- id: REQ-001
|
|
85
|
+
description: "User can register with email/password"
|
|
86
|
+
source: "REQUIREMENTS.md"
|
|
87
|
+
|
|
88
|
+
# DEPRECATED — comment-only
|
|
89
|
+
in_scope:
|
|
90
|
+
- "User can register with email/password" # REQ-001
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**When source has no IDs:** Prompt the user: "No IDs found. Assign auto-generated IDs? [yes / no]". If yes, emit `REQ-{NNN}` with `# auto-generated` annotation.
|
|
94
|
+
|
|
95
|
+
**When source has MIXED IDs:** Items with IDs get `id:` fields; items without IDs receive auto-generated `REQ-NNN` entries. Document which were auto-generated in a comment block at the top of `in_scope`.
|
|
96
|
+
|
|
97
|
+
See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
98
|
+
|
|
77
99
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
78
100
|
>
|
|
79
101
|
> → verify: `git diff --name-only HEAD -- specs/ 2>/dev/null | head -20`
|
|
@@ -131,7 +153,7 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
|
|
|
131
153
|
|
|
132
154
|
## Rules
|
|
133
155
|
|
|
134
|
-
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX
|
|
156
|
+
- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX are emitted as first-class `id:` fields in bigpowers YAML targets (e.g., `in_scope` entries). Never silently renumber. See Step 3 ID Tracking subsection for details.
|
|
135
157
|
- **Never merge contradictory docs** — if source has both `CONTEXT.md` and `architecture.md`, create sections in bigpowers `CONTEXT.md`; don't collapse them.
|
|
136
158
|
- **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`.
|
|
137
159
|
- **state.yaml is always regenerated** — never migrate source STATE verbatim; bigpowers state.yaml needs its own format.
|
package/package.json
CHANGED
package/plan-release/SKILL.md
CHANGED
|
@@ -58,9 +58,13 @@ Every task must have a `verify:` command. No verify command = not a task.
|
|
|
58
58
|
|
|
59
59
|
### 4. Save specs/release-plan.yaml
|
|
60
60
|
|
|
61
|
+
> **Do NOT hand-track the real version.** semantic-release decides it at merge. `version` here is a
|
|
62
|
+
> non-authoritative mirror/label only — read the real number with `gh release view`. Set `bump_hint`
|
|
63
|
+
> (the expectation), not a number you intend to enforce.
|
|
64
|
+
|
|
61
65
|
```yaml
|
|
62
66
|
release:
|
|
63
|
-
version: "
|
|
67
|
+
version: "2.29.0" # mirror of next expected tag, NOT authoritative — gh release view wins
|
|
64
68
|
codename: "Feature Name"
|
|
65
69
|
status: planning # planning | in_progress | released
|
|
66
70
|
semantic_release: true
|
|
@@ -23,6 +23,7 @@ PHASE_MAP=(
|
|
|
23
23
|
[using-bigpowers]="Discover"
|
|
24
24
|
[map-codebase]="Discover"
|
|
25
25
|
[elaborate-spec]="Discover"
|
|
26
|
+
[audit-plan]="Discover"
|
|
26
27
|
# Elaborate / Design
|
|
27
28
|
[model-domain]="Design"
|
|
28
29
|
[define-language]="Design"
|
|
@@ -84,6 +85,7 @@ PHASE_MAP=(
|
|
|
84
85
|
[reset-baseline]="Sustain"
|
|
85
86
|
[stocktake-skills]="Sustain"
|
|
86
87
|
[evolve-skill]="Sustain"
|
|
88
|
+
[run-benchmark]="Sustain"
|
|
87
89
|
[terse-mode]="Sustain"
|
|
88
90
|
[delegate-task]="Sustain"
|
|
89
91
|
[dispatch-agents]="Sustain"
|
|
@@ -37,6 +37,9 @@ for folder in sorted(epics_dir.glob("e*/")):
|
|
|
37
37
|
em = re.search(r"^id:\s*(e\d+)", text, re.M)
|
|
38
38
|
if em:
|
|
39
39
|
keys.setdefault(em.group(1), "backlog")
|
|
40
|
+
# Parse inline story IDs from capsule epic.yaml (same pattern as flat files)
|
|
41
|
+
for sm in re.finditer(r"^\s+- id:\s*(e\d+s\d+)", text, re.M):
|
|
42
|
+
keys.setdefault(sm.group(1), "backlog")
|
|
40
43
|
for story in (folder / "stories").glob("e*s*.md"):
|
|
41
44
|
m = re.match(r"(e\d+s\d+)", story.name)
|
|
42
45
|
if m:
|
package/session-state/SKILL.md
CHANGED
|
@@ -109,8 +109,8 @@ active_epic_id: e02
|
|
|
109
109
|
active_story_id: e02s01 # required when epic mode: folder
|
|
110
110
|
active_bug_id: null # BUG-2026-06-01T143022 when fix_bug
|
|
111
111
|
release:
|
|
112
|
-
target_version:
|
|
113
|
-
last_tag:
|
|
112
|
+
target_version: null # NOT tracked manually — semantic-release decides at merge
|
|
113
|
+
last_tag: v2.28.0 # mirror of `gh release view`, reference only
|
|
114
114
|
last_publish: null
|
|
115
115
|
epic_cycle:
|
|
116
116
|
current_step: develop-tdd
|
package/skills-lock.json
CHANGED
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"sha256": "8192ebe6f66a9f91",
|
|
17
17
|
"path": "audit-code/SKILL.md"
|
|
18
18
|
},
|
|
19
|
+
"audit-plan": {
|
|
20
|
+
"description": "Evaluate an incoming project plan against bigpowers principles and conventions, surface gaps, and produce a READY/NOT READY verdict before engagement begins. Use when a new project arrives, when adapting a foreign plan, or before running seed-conventions on an unfamiliar codebase.",
|
|
21
|
+
"sha256": "3e88b606fc8e886c",
|
|
22
|
+
"path": "audit-plan/SKILL.md"
|
|
23
|
+
},
|
|
19
24
|
"build-epic": {
|
|
20
25
|
"description": "Eight-step epic build cycle — reads state.yaml, execution-status.yaml, and one epic capsule; updates status via bp-yaml-set or direct edit. Resume mode runs one step per invocation. Use instead of ad-hoc execute-plan for release work.",
|
|
21
26
|
"sha256": "7a376ef092fde9cc",
|
|
@@ -158,7 +163,7 @@
|
|
|
158
163
|
},
|
|
159
164
|
"migrate-spec": {
|
|
160
165
|
"description": "Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers YAML layout (state.yaml, release-plan.yaml, epics/, requirements/, plans/, ADRs). Use when migrating foreign spec docs.",
|
|
161
|
-
"sha256": "
|
|
166
|
+
"sha256": "3570ec13243de9b8",
|
|
162
167
|
"path": "migrate-spec/SKILL.md"
|
|
163
168
|
},
|
|
164
169
|
"model-domain": {
|
|
@@ -183,7 +188,7 @@
|
|
|
183
188
|
},
|
|
184
189
|
"plan-release": {
|
|
185
190
|
"description": "\"RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/release-plan.yaml with WSJF ordering and BCP baselines. NOT a planning-spine substitute: it does not scope work (scope-work) or write story tasks (plan-work). Use after elaborate-spec when the user wants a versioned release index of epics.\"",
|
|
186
|
-
"sha256": "
|
|
191
|
+
"sha256": "352d54fe911757ad",
|
|
187
192
|
"path": "plan-release/SKILL.md"
|
|
188
193
|
},
|
|
189
194
|
"plan-work": {
|
|
@@ -258,7 +263,7 @@
|
|
|
258
263
|
},
|
|
259
264
|
"session-state": {
|
|
260
265
|
"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.",
|
|
261
|
-
"sha256": "
|
|
266
|
+
"sha256": "0141daaed69b05dc",
|
|
262
267
|
"path": "session-state/SKILL.md"
|
|
263
268
|
},
|
|
264
269
|
"setup-environment": {
|