bigpowers 1.0.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/.gitmessage +5 -0
- package/.releaserc.json +17 -0
- package/CHANGELOG.md +61 -0
- package/CLAUDE.md +61 -0
- package/CONVENTIONS.md +140 -0
- package/GEMINI.md +53 -0
- package/LICENSE +21 -0
- package/README.md +116 -0
- package/RELEASE.md +108 -0
- package/SKILL-INDEX.md +146 -0
- package/assess-impact/SKILL.md +76 -0
- package/audit-code/HEURISTICS.md +43 -0
- package/audit-code/SKILL.md +81 -0
- package/bin/bigpowers.js +27 -0
- package/change-request/REFERENCE.md +60 -0
- package/change-request/SKILL.md +42 -0
- package/commit-message/REFERENCE.md +81 -0
- package/commit-message/SKILL.md +39 -0
- package/countable-story-format.md +293 -0
- package/craft-skill/REFERENCE.md +88 -0
- package/craft-skill/SKILL.md +55 -0
- package/deepen-architecture/DEEPENING.md +37 -0
- package/deepen-architecture/INTERFACE-DESIGN.md +44 -0
- package/deepen-architecture/LANGUAGE.md +53 -0
- package/deepen-architecture/SKILL.md +76 -0
- package/define-language/SKILL.md +75 -0
- package/define-success/SKILL.md +60 -0
- package/delegate-task/SKILL.md +70 -0
- package/design-interface/SKILL.md +94 -0
- package/develop-tdd/SKILL.md +160 -0
- package/develop-tdd/deep-modules.md +33 -0
- package/develop-tdd/interface-design.md +31 -0
- package/develop-tdd/mocking.md +59 -0
- package/develop-tdd/refactoring.md +10 -0
- package/develop-tdd/tests.md +71 -0
- package/dispatch-agents/SKILL.md +72 -0
- package/edit-document/SKILL.md +14 -0
- package/elaborate-spec/SKILL.md +79 -0
- package/enforce-first/SKILL.md +75 -0
- package/execute-plan/SKILL.md +84 -0
- package/grill-me/REFERENCE.md +63 -0
- package/grill-me/SKILL.md +25 -0
- package/guard-git/REFERENCE.md +136 -0
- package/guard-git/SKILL.md +39 -0
- package/guard-git/scripts/block-dangerous-git.sh +41 -0
- package/guard-git/scripts/lib/git-guardrails-core.sh +29 -0
- package/hook-commits/SKILL.md +91 -0
- package/hooks/pre-tool-use.sh +130 -0
- package/index.js +6 -0
- package/inspect-quality/SKILL.md +101 -0
- package/investigate-bug/SKILL.md +111 -0
- package/kickoff-branch/SKILL.md +87 -0
- package/map-codebase/SKILL.md +66 -0
- package/migrate-spec/REFERENCE-GSD.md +137 -0
- package/migrate-spec/REFERENCE.md +186 -0
- package/migrate-spec/SKILL.md +150 -0
- package/model-domain/ADR-FORMAT.md +47 -0
- package/model-domain/CONTEXT-FORMAT.md +77 -0
- package/model-domain/SKILL.md +82 -0
- package/opencode.json +4 -0
- package/orchestrate-project/REFERENCE.md +89 -0
- package/orchestrate-project/SKILL.md +59 -0
- package/organize-workspace/REFERENCE.md +80 -0
- package/organize-workspace/SKILL.md +74 -0
- package/package.json +45 -0
- package/plan-refactor/SKILL.md +75 -0
- package/plan-release/SKILL.md +75 -0
- package/plan-work/SKILL.md +124 -0
- package/playwright.config.ts +56 -0
- package/release-branch/SKILL.md +116 -0
- package/request-review/SKILL.md +70 -0
- package/respond-review/SKILL.md +68 -0
- package/scripts/audit-compliance.sh +256 -0
- package/scripts/cleanup-worktrees.sh +44 -0
- package/scripts/install-cursor-skills-local.sh +13 -0
- package/scripts/install-cursor-skills.sh +34 -0
- package/scripts/install.sh +240 -0
- package/scripts/project-survey.sh +54 -0
- package/scripts/sync-skills.sh +110 -0
- package/seed-conventions/SKILL.md +185 -0
- package/session-state/SKILL.md +69 -0
- package/skills-lock.json +157 -0
- package/spike-prototype/SKILL.md +92 -0
- package/survey-context/SKILL.md +93 -0
- package/terse-mode/SKILL.md +35 -0
- package/trace-requirement/SKILL.md +68 -0
- package/using-bigpowers/SKILL.md +65 -0
- package/validate-fix/SKILL.md +93 -0
- package/visual-dashboard/SKILL.md +49 -0
- package/visual-dashboard/scripts/frame-template.html +189 -0
- package/visual-dashboard/scripts/helper.js +83 -0
- package/visual-dashboard/scripts/server.cjs +345 -0
- package/visual-dashboard/scripts/start-server.sh +121 -0
- package/visual-dashboard/scripts/stop-server.sh +46 -0
- package/wire-observability/SKILL.md +90 -0
- package/write-document/SKILL.md +63 -0
package/skills-lock.json
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"skills": {
|
|
4
|
+
"audit-code": {
|
|
5
|
+
"source": "danielvm-git/skills",
|
|
6
|
+
"sourceType": "github"
|
|
7
|
+
},
|
|
8
|
+
"commit-message": {
|
|
9
|
+
"source": "danielvm-git/skills",
|
|
10
|
+
"sourceType": "github"
|
|
11
|
+
},
|
|
12
|
+
"craft-skill": {
|
|
13
|
+
"source": "danielvm-git/skills",
|
|
14
|
+
"sourceType": "github"
|
|
15
|
+
},
|
|
16
|
+
"deepen-architecture": {
|
|
17
|
+
"source": "danielvm-git/skills",
|
|
18
|
+
"sourceType": "github"
|
|
19
|
+
},
|
|
20
|
+
"define-language": {
|
|
21
|
+
"source": "danielvm-git/skills",
|
|
22
|
+
"sourceType": "github"
|
|
23
|
+
},
|
|
24
|
+
"define-success": {
|
|
25
|
+
"source": "danielvm-git/skills",
|
|
26
|
+
"sourceType": "github"
|
|
27
|
+
},
|
|
28
|
+
"delegate-task": {
|
|
29
|
+
"source": "danielvm-git/skills",
|
|
30
|
+
"sourceType": "github"
|
|
31
|
+
},
|
|
32
|
+
"design-interface": {
|
|
33
|
+
"source": "danielvm-git/skills",
|
|
34
|
+
"sourceType": "github"
|
|
35
|
+
},
|
|
36
|
+
"develop-tdd": {
|
|
37
|
+
"source": "danielvm-git/skills",
|
|
38
|
+
"sourceType": "github"
|
|
39
|
+
},
|
|
40
|
+
"diagnose-root": {
|
|
41
|
+
"source": "danielvm-git/skills",
|
|
42
|
+
"sourceType": "github"
|
|
43
|
+
},
|
|
44
|
+
"dispatch-agents": {
|
|
45
|
+
"source": "danielvm-git/skills",
|
|
46
|
+
"sourceType": "github"
|
|
47
|
+
},
|
|
48
|
+
"edit-document": {
|
|
49
|
+
"source": "danielvm-git/skills",
|
|
50
|
+
"sourceType": "github"
|
|
51
|
+
},
|
|
52
|
+
"elaborate-spec": {
|
|
53
|
+
"source": "danielvm-git/skills",
|
|
54
|
+
"sourceType": "github"
|
|
55
|
+
},
|
|
56
|
+
"enforce-first": {
|
|
57
|
+
"source": "danielvm-git/skills",
|
|
58
|
+
"sourceType": "github"
|
|
59
|
+
},
|
|
60
|
+
"execute-plan": {
|
|
61
|
+
"source": "danielvm-git/skills",
|
|
62
|
+
"sourceType": "github"
|
|
63
|
+
},
|
|
64
|
+
"grill-me": {
|
|
65
|
+
"source": "danielvm-git/skills",
|
|
66
|
+
"sourceType": "github"
|
|
67
|
+
},
|
|
68
|
+
"grill-with-docs": {
|
|
69
|
+
"source": "danielvm-git/skills",
|
|
70
|
+
"sourceType": "github"
|
|
71
|
+
},
|
|
72
|
+
"guard-git": {
|
|
73
|
+
"source": "danielvm-git/skills",
|
|
74
|
+
"sourceType": "github"
|
|
75
|
+
},
|
|
76
|
+
"hook-commits": {
|
|
77
|
+
"source": "danielvm-git/skills",
|
|
78
|
+
"sourceType": "github"
|
|
79
|
+
},
|
|
80
|
+
"inspect-quality": {
|
|
81
|
+
"source": "danielvm-git/skills",
|
|
82
|
+
"sourceType": "github"
|
|
83
|
+
},
|
|
84
|
+
"investigate-bug": {
|
|
85
|
+
"source": "danielvm-git/skills",
|
|
86
|
+
"sourceType": "github"
|
|
87
|
+
},
|
|
88
|
+
"kickoff-branch": {
|
|
89
|
+
"source": "danielvm-git/skills",
|
|
90
|
+
"sourceType": "github"
|
|
91
|
+
},
|
|
92
|
+
"model-domain": {
|
|
93
|
+
"source": "danielvm-git/skills",
|
|
94
|
+
"sourceType": "github"
|
|
95
|
+
},
|
|
96
|
+
"organize-workspace": {
|
|
97
|
+
"source": "danielvm-git/skills",
|
|
98
|
+
"sourceType": "github"
|
|
99
|
+
},
|
|
100
|
+
"plan-refactor": {
|
|
101
|
+
"source": "danielvm-git/skills",
|
|
102
|
+
"sourceType": "github"
|
|
103
|
+
},
|
|
104
|
+
"plan-work": {
|
|
105
|
+
"source": "danielvm-git/skills",
|
|
106
|
+
"sourceType": "github"
|
|
107
|
+
},
|
|
108
|
+
"release-branch": {
|
|
109
|
+
"source": "danielvm-git/skills",
|
|
110
|
+
"sourceType": "github"
|
|
111
|
+
},
|
|
112
|
+
"request-review": {
|
|
113
|
+
"source": "danielvm-git/skills",
|
|
114
|
+
"sourceType": "github"
|
|
115
|
+
},
|
|
116
|
+
"respond-review": {
|
|
117
|
+
"source": "danielvm-git/skills",
|
|
118
|
+
"sourceType": "github"
|
|
119
|
+
},
|
|
120
|
+
"scope-work": {
|
|
121
|
+
"source": "danielvm-git/skills",
|
|
122
|
+
"sourceType": "github"
|
|
123
|
+
},
|
|
124
|
+
"seed-conventions": {
|
|
125
|
+
"source": "danielvm-git/skills",
|
|
126
|
+
"sourceType": "github"
|
|
127
|
+
},
|
|
128
|
+
"slice-tasks": {
|
|
129
|
+
"source": "danielvm-git/skills",
|
|
130
|
+
"sourceType": "github"
|
|
131
|
+
},
|
|
132
|
+
"spike-prototype": {
|
|
133
|
+
"source": "danielvm-git/skills",
|
|
134
|
+
"sourceType": "github"
|
|
135
|
+
},
|
|
136
|
+
"survey-context": {
|
|
137
|
+
"source": "danielvm-git/skills",
|
|
138
|
+
"sourceType": "github"
|
|
139
|
+
},
|
|
140
|
+
"terse-mode": {
|
|
141
|
+
"source": "danielvm-git/skills",
|
|
142
|
+
"sourceType": "github"
|
|
143
|
+
},
|
|
144
|
+
"using-bigpowers": {
|
|
145
|
+
"source": "danielvm-git/skills",
|
|
146
|
+
"sourceType": "github"
|
|
147
|
+
},
|
|
148
|
+
"validate-fix": {
|
|
149
|
+
"source": "danielvm-git/skills",
|
|
150
|
+
"sourceType": "github"
|
|
151
|
+
},
|
|
152
|
+
"wire-observability": {
|
|
153
|
+
"source": "danielvm-git/skills",
|
|
154
|
+
"sourceType": "github"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spike-prototype
|
|
3
|
+
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
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spike Prototype
|
|
7
|
+
|
|
8
|
+
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
|
+
|
|
10
|
+
**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.
|
|
11
|
+
|
|
12
|
+
## When to spike
|
|
13
|
+
|
|
14
|
+
- The technology is unfamiliar (new library, API, infrastructure)
|
|
15
|
+
- The approach is uncertain (multiple solutions exist; none has been tried)
|
|
16
|
+
- Estimates are impossible without seeing how the thing actually behaves
|
|
17
|
+
- A key assumption needs to be validated before committing to a design
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
### 1. Define the question
|
|
22
|
+
|
|
23
|
+
Before writing a single line, state the question the spike must answer:
|
|
24
|
+
|
|
25
|
+
> "Can we [specific thing] using [specific approach] within [constraint]?"
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
- "Can we stream large files from S3 to the client without buffering in memory?"
|
|
29
|
+
- "Does the Stripe webhook SDK handle signature verification correctly in our edge runtime?"
|
|
30
|
+
- "Can we achieve < 100ms p99 response time for the search endpoint with a naive Postgres full-text search?"
|
|
31
|
+
|
|
32
|
+
A spike with no question is just unplanned coding. Refuse to start if the question isn't clear.
|
|
33
|
+
|
|
34
|
+
### 2. Set a timebox
|
|
35
|
+
|
|
36
|
+
Agree on a timebox with the user: 30 minutes, 1 hour, 2 hours. When time is up, stop — even if the question isn't fully answered. Partial learning is still learning.
|
|
37
|
+
|
|
38
|
+
### 3. Experiment
|
|
39
|
+
|
|
40
|
+
Write the simplest code that could answer the question. Ignore:
|
|
41
|
+
- Error handling
|
|
42
|
+
- Test coverage
|
|
43
|
+
- Code quality
|
|
44
|
+
- Production concerns
|
|
45
|
+
|
|
46
|
+
Focus entirely on answering the question.
|
|
47
|
+
|
|
48
|
+
### 4. Write specs/SPIKE-<name>.md
|
|
49
|
+
|
|
50
|
+
Save the learning to `specs/SPIKE-<name>.md`. Create the `specs/` directory if it doesn't exist.
|
|
51
|
+
|
|
52
|
+
<spike-template>
|
|
53
|
+
|
|
54
|
+
# Spike: [name]
|
|
55
|
+
|
|
56
|
+
## Question
|
|
57
|
+
|
|
58
|
+
[The specific question this spike was answering]
|
|
59
|
+
|
|
60
|
+
## Result
|
|
61
|
+
|
|
62
|
+
[Answered / Partially answered / Not answered]
|
|
63
|
+
|
|
64
|
+
## Findings
|
|
65
|
+
|
|
66
|
+
[What you learned — concrete observations, not opinions]
|
|
67
|
+
|
|
68
|
+
## Evidence
|
|
69
|
+
|
|
70
|
+
[Code snippet, benchmark result, API response, or screenshot that proves the finding]
|
|
71
|
+
|
|
72
|
+
## Implications for the plan
|
|
73
|
+
|
|
74
|
+
[How this changes the approach, the design, or the estimate]
|
|
75
|
+
|
|
76
|
+
## What was NOT explored
|
|
77
|
+
|
|
78
|
+
[Known gaps — things the spike didn't validate]
|
|
79
|
+
|
|
80
|
+
## Recommendation
|
|
81
|
+
|
|
82
|
+
[Should we proceed with this approach? If yes, what does plan-work need to account for?]
|
|
83
|
+
|
|
84
|
+
</spike-template>
|
|
85
|
+
|
|
86
|
+
### 5. Delete the spike code
|
|
87
|
+
|
|
88
|
+
After writing the findings, delete or discard the spike code. It is not meant to ship.
|
|
89
|
+
|
|
90
|
+
### 6. Feed back into plan-work
|
|
91
|
+
|
|
92
|
+
The spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs/SPIKE-<name>.md`.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: survey-context
|
|
3
|
+
description: Per-task context survey — reads specs/ and CONVENTIONS.md, maps the current lifecycle phase, and suggests the next skill to invoke. Use at the start of any new task, when returning to a project after a break, or when unsure what to do next.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Survey Context
|
|
7
|
+
|
|
8
|
+
Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill — run it at the start of every task.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
### 1. Read CONVENTIONS.md
|
|
13
|
+
|
|
14
|
+
If `CONVENTIONS.md` exists at the project root, read it first. It contains the rules all agents must follow in this project.
|
|
15
|
+
|
|
16
|
+
### 2. Read specs/
|
|
17
|
+
|
|
18
|
+
Scan the `specs/` directory if it exists:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
specs/
|
|
22
|
+
├── CONTEXT.md → domain model status
|
|
23
|
+
├── UBIQUITOUS_LANGUAGE.md → glossary status
|
|
24
|
+
├── SCOPE.md → scope definition status
|
|
25
|
+
├── TASKS.md → task breakdown status
|
|
26
|
+
├── PLAN.md → implementation plan status
|
|
27
|
+
├── REFACTOR.md → refactor plan status
|
|
28
|
+
├── DIAGNOSIS.md → active bug investigation
|
|
29
|
+
├── BUG-LOG.md → historical bug log
|
|
30
|
+
└── SPIKE-*.md → spike learning notes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For each file found, note: does it exist? Is it complete? Does it have open items?
|
|
34
|
+
|
|
35
|
+
### 3. Read CLAUDE.md
|
|
36
|
+
|
|
37
|
+
If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
|
|
38
|
+
|
|
39
|
+
### 4. Check git state
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git status --short
|
|
43
|
+
git log --oneline -5
|
|
44
|
+
git branch --show-current
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Note: is there a feature branch active? Are there uncommitted changes? Are there unpushed commits?
|
|
48
|
+
|
|
49
|
+
### 5. Map the lifecycle phase
|
|
50
|
+
|
|
51
|
+
Based on what you've found, identify which PMBOK phase this project is currently in:
|
|
52
|
+
|
|
53
|
+
| Phase | Signals |
|
|
54
|
+
|-------|---------|
|
|
55
|
+
| **Discover** | No specs/ yet, or only rough notes |
|
|
56
|
+
| **Design** | specs/SCOPE.md exists but no PLAN.md |
|
|
57
|
+
| **Plan** | specs/TASKS.md or PLAN.md exists; on `main`/`master` branch |
|
|
58
|
+
| **Initiate** | On a feature branch; no code changes yet |
|
|
59
|
+
| **Execute** | PLAN.md exists; on feature branch; steps in progress |
|
|
60
|
+
| **Verify** | All implementation steps for a story/epic are done; awaiting UAT |
|
|
61
|
+
| **Bug** | DIAGNOSIS.md exists; on `main`/`master` |
|
|
62
|
+
| **Review** | All code written; no PR yet |
|
|
63
|
+
| **Integrate** | PR open; tests passing |
|
|
64
|
+
| **Sustain** | Ongoing; no active task |
|
|
65
|
+
|
|
66
|
+
### 6. Suggest next skill
|
|
67
|
+
|
|
68
|
+
Based on the phase and state, recommend the most useful next step:
|
|
69
|
+
|
|
70
|
+
- **If in Plan/Bug phase and on `main`**: Suggest `kickoff-branch` next.
|
|
71
|
+
- **If in Initiate phase**: Suggest `develop-tdd` or `execute-plan`.
|
|
72
|
+
- **If in Execute phase**: Suggest `develop-tdd` (continue step X) or `execute-plan`.
|
|
73
|
+
|
|
74
|
+
Example:
|
|
75
|
+
```
|
|
76
|
+
Phase: Plan
|
|
77
|
+
Active branch: main
|
|
78
|
+
PLAN.md: exists
|
|
79
|
+
|
|
80
|
+
Suggested next: kickoff-branch (to create feature/auth branch)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Be specific — name the exact skill and why. If multiple options exist, list them in priority order.
|
|
84
|
+
|
|
85
|
+
### 7. Surface blockers
|
|
86
|
+
|
|
87
|
+
If something looks wrong:
|
|
88
|
+
- Broken tests in the baseline
|
|
89
|
+
- DIAGNOSIS.md open with no active fix branch
|
|
90
|
+
- PLAN.md with missing verify commands
|
|
91
|
+
- CONVENTIONS.md violations in recent commits
|
|
92
|
+
|
|
93
|
+
Report blockers first, before recommendations.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: terse-mode
|
|
3
|
+
description: Fallback ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use ONLY when context is critically long and compressing output is necessary to continue. Not a strategy — token discipline comes from code shape (small functions, unique names, headless tests), not terser prompts. Use when user says "caveman mode", "terse mode", "less tokens", "be brief", or invokes /terse-mode.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Respond terse like smart caveman. All technical substance stay. Only fluff die.
|
|
7
|
+
|
|
8
|
+
## Persistence
|
|
9
|
+
|
|
10
|
+
ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop" or "normal mode".
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
|
|
15
|
+
|
|
16
|
+
Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
|
|
17
|
+
|
|
18
|
+
Pattern: `[thing] [action] [reason]. [next step].`
|
|
19
|
+
|
|
20
|
+
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
|
|
21
|
+
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
|
|
22
|
+
|
|
23
|
+
## Auto-Clarity Exception
|
|
24
|
+
|
|
25
|
+
Drop terse temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume after clear part done.
|
|
26
|
+
|
|
27
|
+
Example — destructive op:
|
|
28
|
+
|
|
29
|
+
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
|
|
30
|
+
>
|
|
31
|
+
> ```sql
|
|
32
|
+
> DROP TABLE users;
|
|
33
|
+
> ```
|
|
34
|
+
>
|
|
35
|
+
> Terse resume. Verify backup exist first.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trace-requirement
|
|
3
|
+
description: Link story IDs from specs/RELEASE-PLAN.md to the implementing code and tests. Produces specs/TRACEABILITY.md. Use when you want to verify coverage of a release plan, audit which stories are implemented, or find "dark" stories with no code.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Trace Requirement
|
|
7
|
+
|
|
8
|
+
Build a traceability matrix from `specs/RELEASE-PLAN.md` to implementing code and tests. Surfaces gaps in both directions: stories with no code, and code with no story.
|
|
9
|
+
|
|
10
|
+
## Pre-flight
|
|
11
|
+
|
|
12
|
+
> **HARD GATE** — `specs/RELEASE-PLAN.md` must exist. If it doesn't, run `plan-release` first.
|
|
13
|
+
|
|
14
|
+
→ verify: `[ -f specs/RELEASE-PLAN.md ] && echo "ready" || echo "BLOCKED: run plan-release first"`
|
|
15
|
+
|
|
16
|
+
Read `specs/RELEASE-PLAN.md` fully before proceeding.
|
|
17
|
+
|
|
18
|
+
## Process
|
|
19
|
+
|
|
20
|
+
### 1. Extract story IDs
|
|
21
|
+
|
|
22
|
+
From RELEASE-PLAN.md, collect all story IDs (e.g. `1.1`, `1.2`, `2.1`).
|
|
23
|
+
|
|
24
|
+
→ verify: `grep -o "Story [0-9]\+\.[0-9]\+" specs/RELEASE-PLAN.md | sort -u`
|
|
25
|
+
|
|
26
|
+
### 2. Search for story tags in code
|
|
27
|
+
|
|
28
|
+
Look for `// story: X.Y` or `# story: X.Y` comments in source files and tests:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
grep -rn "story: " . --include="*.ts" --include="*.js" --include="*.py" --include="*.sh" | grep -v node_modules
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
→ verify: `grep -rn "story: " . --include="*.ts" --include="*.sh" | wc -l`
|
|
35
|
+
|
|
36
|
+
### 3. Build the matrix
|
|
37
|
+
|
|
38
|
+
For each story ID:
|
|
39
|
+
- **Implemented**: list files that contain `// story: X.Y`
|
|
40
|
+
- **Tested**: list test files that contain `// story: X.Y`
|
|
41
|
+
- **Dark**: story has no tag in any file — flag as unimplemented
|
|
42
|
+
|
|
43
|
+
For each tagged file with no matching story ID in RELEASE-PLAN.md:
|
|
44
|
+
- **Orphan**: code exists but story was removed or never planned — flag for cleanup
|
|
45
|
+
|
|
46
|
+
### 4. Write specs/TRACEABILITY.md
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
## Story Coverage
|
|
50
|
+
|
|
51
|
+
| Story | Title | Files | Tests | Status |
|
|
52
|
+
|-------|--------------------|-------|-------|-----------|
|
|
53
|
+
| 1.1 | [title] | 2 | 1 | Covered |
|
|
54
|
+
| 1.2 | [title] | 0 | 0 | Dark |
|
|
55
|
+
|
|
56
|
+
## Orphan Code (no story tag)
|
|
57
|
+
- [file]: contains untagged implementation
|
|
58
|
+
|
|
59
|
+
## Gaps (dark stories)
|
|
60
|
+
- Story 1.2: no implementation found → run plan-work
|
|
61
|
+
|
|
62
|
+
## Coverage summary
|
|
63
|
+
Stories: [X] covered / [Y] dark / [Z] total
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
→ verify: `grep -c "Covered\|Dark" specs/TRACEABILITY.md`
|
|
67
|
+
|
|
68
|
+
Suggest `plan-work` for each dark story found.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-bigpowers
|
|
3
|
+
description: One-time bootstrap that introduces the bigpowers skills system, the PMBOK lifecycle arc, and tells you which skill to call first for your situation. Use when starting with bigpowers for the first time, when user asks "where do I start?", or when the skills system needs to be explained.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using bigpowers
|
|
7
|
+
|
|
8
|
+
Welcome to **bigpowers** — a lifecycle of 37 agent skills for production-ready, TDD-driven software by solo developers.
|
|
9
|
+
|
|
10
|
+
## What bigpowers is
|
|
11
|
+
|
|
12
|
+
A curated set of skills organized around the PMBOK developer lifecycle. Each skill does one thing. Skills reference each other by name only — low coupling, high cohesion. All written output goes to `specs/` at your project root.
|
|
13
|
+
|
|
14
|
+
## The lifecycle at a glance
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
BOOTSTRAP using-bigpowers (this skill, first time only)
|
|
18
|
+
↓
|
|
19
|
+
DISCOVER survey-context → elaborate-spec
|
|
20
|
+
↓
|
|
21
|
+
DESIGN model-domain / define-language / grill-me / deepen-architecture / design-interface
|
|
22
|
+
↓
|
|
23
|
+
PLAN scope-work → slice-tasks → define-success → plan-work / plan-refactor
|
|
24
|
+
↓
|
|
25
|
+
INITIATE kickoff-branch → guard-git / hook-commits / seed-conventions
|
|
26
|
+
↓
|
|
27
|
+
SPIKE? spike-prototype → (feeds back to plan-work)
|
|
28
|
+
↓
|
|
29
|
+
EXECUTE develop-tdd + enforce-first ←→ delegate-task / dispatch-agents / execute-plan
|
|
30
|
+
↓
|
|
31
|
+
HARDEN wire-observability (any phase)
|
|
32
|
+
↓
|
|
33
|
+
BUG? investigate-bug → diagnose-root → validate-fix
|
|
34
|
+
↓
|
|
35
|
+
REVIEW audit-code → request-review → respond-review
|
|
36
|
+
↓
|
|
37
|
+
INTEGRATE commit-message → release-branch
|
|
38
|
+
↓
|
|
39
|
+
SUSTAIN inspect-quality / organize-workspace (ongoing)
|
|
40
|
+
|
|
41
|
+
UTILITY terse-mode / craft-skill / edit-document (any phase)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Where to start
|
|
45
|
+
|
|
46
|
+
| Your situation | First skill to call |
|
|
47
|
+
|---------------|---------------------|
|
|
48
|
+
| Greenfield project, nothing set up | `seed-conventions` |
|
|
49
|
+
| Existing project, new task | `survey-context` |
|
|
50
|
+
| Vague idea that needs shaping | `elaborate-spec` |
|
|
51
|
+
| Plan exists, ready to implement | `kickoff-branch` → `develop-tdd` |
|
|
52
|
+
| Bug to fix | `investigate-bug` |
|
|
53
|
+
| Code ready for review | `audit-code` |
|
|
54
|
+
| Shipping a feature | `commit-message` → `release-branch` |
|
|
55
|
+
|
|
56
|
+
## Key conventions
|
|
57
|
+
|
|
58
|
+
- **specs/ is your memory.** All domain docs, plans, and investigation outputs go in `specs/` at your project root.
|
|
59
|
+
- **`gh` for PRs only.** Never create GitHub issues from skills — use local Markdown files instead.
|
|
60
|
+
- **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.
|
|
61
|
+
- **verify: every step.** Every task in `specs/PLAN.md` must have a `verify: <runnable command>`. Evidence over claims.
|
|
62
|
+
|
|
63
|
+
## After this
|
|
64
|
+
|
|
65
|
+
Call `survey-context` to read your project's current state and get a personalized recommendation for where to go next.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validate-fix
|
|
3
|
+
description: Prove a fix works before declaring done — re-run the failing test, run the full suite, typecheck, lint, and harden against recurrence. Use after implementing a bug fix, when user says "is this fixed?", or before closing an investigation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Validate Fix
|
|
7
|
+
|
|
8
|
+
Prove the fix works. "I think it works" is not evidence. Run the suite, show the output, then harden against recurrence.
|
|
9
|
+
|
|
10
|
+
## Checklist
|
|
11
|
+
|
|
12
|
+
### 1. Re-run the originally failing test
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Run the specific test that captured the bug
|
|
16
|
+
<test command for the failing test>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- [ ] Previously failing test now passes
|
|
20
|
+
|
|
21
|
+
### 2. Run the full test suite
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Run all tests — no filtering
|
|
25
|
+
<full test command from CLAUDE.md>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- [ ] All tests pass (zero regressions)
|
|
29
|
+
|
|
30
|
+
### 3. Type check
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
<typecheck command>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- [ ] No type errors introduced
|
|
37
|
+
|
|
38
|
+
### 4. Lint
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
<lint command>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- [ ] No lint violations introduced
|
|
45
|
+
|
|
46
|
+
### 5. Harden against recurrence
|
|
47
|
+
|
|
48
|
+
For every bug fixed, add at least one prevention layer:
|
|
49
|
+
|
|
50
|
+
| Mechanism | When to use |
|
|
51
|
+
|-----------|-------------|
|
|
52
|
+
| Type guard | Input could be the wrong shape |
|
|
53
|
+
| Schema validation (Zod, Pydantic, etc.) | External data crossing a boundary |
|
|
54
|
+
| Invariant assertion | Internal state that must always hold |
|
|
55
|
+
| Lint rule | Pattern that's easy to repeat by mistake |
|
|
56
|
+
| Environment check at startup | Missing config causes silent failure |
|
|
57
|
+
|
|
58
|
+
- [ ] At least one hardening mechanism added
|
|
59
|
+
- [ ] Hardening mechanism is tested
|
|
60
|
+
|
|
61
|
+
### 6. Update specs/DIAGNOSIS.md
|
|
62
|
+
|
|
63
|
+
If a `specs/DIAGNOSIS.md` exists for this bug, append the resolution:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Resolution
|
|
67
|
+
|
|
68
|
+
**Fixed:** [date]
|
|
69
|
+
**Root cause confirmed:** [one sentence]
|
|
70
|
+
**Fix applied:** [what was changed]
|
|
71
|
+
**Hardening added:** [type guard / schema / assertion / lint rule]
|
|
72
|
+
**Evidence:** all tests pass (`<verify command>`)
|
|
73
|
+
**Commit:** `fix(<scope>): <description>`
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
- [ ] specs/DIAGNOSIS.md updated with resolution
|
|
77
|
+
|
|
78
|
+
### 7. Behavioral Proof (HARD GATE)
|
|
79
|
+
|
|
80
|
+
Mechanical verification (tests passing) is only half the fix. You must prove **behavioral correctness**.
|
|
81
|
+
|
|
82
|
+
- [ ] Manually demonstrate the fixed behavior (e.g., via `run_shell_command` or `web_fetch`)
|
|
83
|
+
- [ ] Compare the output/state against the "Expected Behavior" in `specs/DIAGNOSIS.md`
|
|
84
|
+
- [ ] Show the user evidence of the behavior, not just the test logs
|
|
85
|
+
|
|
86
|
+
## Rules
|
|
87
|
+
|
|
88
|
+
- **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.
|
|
89
|
+
- **Never use `@ts-ignore`, `as any`, or `// eslint-disable`** to "fix" a bug — these suppress the symptom without fixing the root cause
|
|
90
|
+
- **Never mark the task done if any test is still failing**
|
|
91
|
+
- **The verify command from specs/DIAGNOSIS.md or specs/PLAN.md must pass**
|
|
92
|
+
|
|
93
|
+
Suggest next skill: `audit-code` → `commit-message`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-dashboard
|
|
3
|
+
description: Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Use when showing complex diagrams, progress roadmaps, or UI mockups would be clearer than text. Persists artifacts in .bigpowers/dashboard/.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Visual Dashboard
|
|
7
|
+
|
|
8
|
+
Browser-based visual companion for bigpowers. Visualizes architecture, plans, and status.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
Use when the user would understand the project state better by seeing it than reading it.
|
|
13
|
+
|
|
14
|
+
- **Architecture maps** — visualizing module dependencies and "code rot."
|
|
15
|
+
- **Implementation progress** — seeing the vertical slices of a `PLAN.md` as a visual roadmap.
|
|
16
|
+
- **UI brainstorming** — wireframes and layout options.
|
|
17
|
+
- **Complexity audits** — visualizing "God classes" vs "Clean modules."
|
|
18
|
+
|
|
19
|
+
## How It Works
|
|
20
|
+
|
|
21
|
+
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.
|
|
22
|
+
|
|
23
|
+
## Starting a Session
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Start server with project persistence
|
|
27
|
+
visual-dashboard/scripts/start-server.sh --project-dir $(pwd)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Save the `url`, `screen_dir`, and `state_dir` from the response. Tell the user to open the dashboard.
|
|
31
|
+
|
|
32
|
+
## Dashboard Loops
|
|
33
|
+
|
|
34
|
+
### 1. The Architecture View
|
|
35
|
+
When using `deepen-architecture`, push a Mermaid diagram of the target modules to the dashboard.
|
|
36
|
+
Filename: `architecture.html`
|
|
37
|
+
|
|
38
|
+
### 2. The Plan View
|
|
39
|
+
When using `plan-work`, push a step-by-step progress map.
|
|
40
|
+
Filename: `plan.html`
|
|
41
|
+
|
|
42
|
+
### 3. User Interaction
|
|
43
|
+
Read `state_dir/events` to see which components or options the user clicked in the dashboard. Use this to refine your next design pass.
|
|
44
|
+
|
|
45
|
+
## Cleaning Up
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
visual-dashboard/scripts/stop-server.sh $SESSION_DIR
|
|
49
|
+
```
|