bigpowers 2.4.0 → 2.5.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.
Files changed (91) hide show
  1. package/.pi/package.json +2 -2
  2. package/.pi/prompts/align-grid.md +102 -0
  3. package/.pi/prompts/compose-workflow.md +1 -1
  4. package/.pi/prompts/diagnose-root.md +1 -1
  5. package/.pi/prompts/evolve-skill.md +1 -1
  6. package/.pi/prompts/grill-with-docs.md +1 -1
  7. package/.pi/prompts/research-first.md +1 -1
  8. package/.pi/prompts/reset-baseline.md +1 -1
  9. package/.pi/prompts/run-evals.md +1 -1
  10. package/.pi/prompts/scope-work.md +1 -1
  11. package/.pi/prompts/search-skills.md +1 -1
  12. package/.pi/prompts/setup-environment.md +1 -1
  13. package/.pi/prompts/simulate-agents.md +1 -1
  14. package/.pi/prompts/slice-tasks.md +1 -1
  15. package/.pi/prompts/stocktake-skills.md +1 -1
  16. package/.pi/prompts/verify-work.md +1 -1
  17. package/.pi/skills/align-grid/SKILL.md +104 -0
  18. package/.pi/skills/assess-impact/SKILL.md +2 -1
  19. package/.pi/skills/audit-code/SKILL.md +1 -0
  20. package/.pi/skills/build-epic/SKILL.md +1 -0
  21. package/.pi/skills/change-request/SKILL.md +1 -0
  22. package/.pi/skills/commit-message/SKILL.md +1 -0
  23. package/.pi/skills/compose-workflow/SKILL.md +2 -1
  24. package/.pi/skills/craft-skill/SKILL.md +1 -0
  25. package/.pi/skills/deepen-architecture/SKILL.md +1 -0
  26. package/.pi/skills/define-language/SKILL.md +2 -1
  27. package/.pi/skills/define-success/SKILL.md +2 -1
  28. package/.pi/skills/delegate-task/SKILL.md +1 -0
  29. package/.pi/skills/design-interface/SKILL.md +2 -1
  30. package/.pi/skills/develop-tdd/SKILL.md +1 -0
  31. package/.pi/skills/diagnose-root/SKILL.md +2 -1
  32. package/.pi/skills/dispatch-agents/SKILL.md +1 -0
  33. package/.pi/skills/edit-document/SKILL.md +1 -0
  34. package/.pi/skills/elaborate-spec/SKILL.md +2 -1
  35. package/.pi/skills/enforce-first/SKILL.md +2 -1
  36. package/.pi/skills/evolve-skill/SKILL.md +2 -1
  37. package/.pi/skills/execute-plan/SKILL.md +1 -0
  38. package/.pi/skills/fix-bug/SKILL.md +1 -0
  39. package/.pi/skills/grill-me/SKILL.md +2 -1
  40. package/.pi/skills/grill-with-docs/SKILL.md +2 -1
  41. package/.pi/skills/guard-git/SKILL.md +1 -0
  42. package/.pi/skills/hook-commits/SKILL.md +1 -0
  43. package/.pi/skills/inspect-quality/SKILL.md +2 -1
  44. package/.pi/skills/investigate-bug/SKILL.md +2 -1
  45. package/.pi/skills/kickoff-branch/SKILL.md +2 -1
  46. package/.pi/skills/map-codebase/SKILL.md +2 -1
  47. package/.pi/skills/migrate-spec/SKILL.md +1 -0
  48. package/.pi/skills/model-domain/SKILL.md +1 -0
  49. package/.pi/skills/orchestrate-project/SKILL.md +1 -0
  50. package/.pi/skills/organize-workspace/SKILL.md +2 -1
  51. package/.pi/skills/plan-refactor/SKILL.md +1 -0
  52. package/.pi/skills/plan-release/SKILL.md +2 -1
  53. package/.pi/skills/plan-work/SKILL.md +2 -1
  54. package/.pi/skills/release-branch/SKILL.md +2 -1
  55. package/.pi/skills/request-review/SKILL.md +1 -0
  56. package/.pi/skills/research-first/SKILL.md +2 -1
  57. package/.pi/skills/reset-baseline/SKILL.md +2 -1
  58. package/.pi/skills/respond-review/SKILL.md +1 -0
  59. package/.pi/skills/run-evals/SKILL.md +2 -1
  60. package/.pi/skills/run-planning/SKILL.md +2 -1
  61. package/.pi/skills/scope-work/SKILL.md +2 -1
  62. package/.pi/skills/search-skills/SKILL.md +2 -1
  63. package/.pi/skills/seed-conventions/SKILL.md +1 -0
  64. package/.pi/skills/session-state/SKILL.md +1 -0
  65. package/.pi/skills/setup-environment/SKILL.md +2 -1
  66. package/.pi/skills/simulate-agents/SKILL.md +2 -1
  67. package/.pi/skills/slice-tasks/SKILL.md +2 -1
  68. package/.pi/skills/spike-prototype/SKILL.md +2 -1
  69. package/.pi/skills/stocktake-skills/SKILL.md +2 -1
  70. package/.pi/skills/survey-context/SKILL.md +1 -0
  71. package/.pi/skills/terse-mode/SKILL.md +2 -1
  72. package/.pi/skills/trace-requirement/SKILL.md +2 -1
  73. package/.pi/skills/using-bigpowers/SKILL.md +2 -1
  74. package/.pi/skills/validate-fix/SKILL.md +2 -1
  75. package/.pi/skills/verify-work/SKILL.md +2 -1
  76. package/.pi/skills/visual-dashboard/SKILL.md +1 -0
  77. package/.pi/skills/wire-observability/SKILL.md +1 -0
  78. package/.pi/skills/write-document/SKILL.md +1 -0
  79. package/CHANGELOG.md +14 -0
  80. package/SKILL-INDEX.md +34 -33
  81. package/align-grid/SKILL.md +108 -0
  82. package/align-grid/scripts/grid_tokens.py +201 -0
  83. package/align-grid/scripts/verify_grid.js +140 -0
  84. package/dashboard/src/web/client.html +191 -249
  85. package/package.json +1 -1
  86. package/scripts/generate-reference-tables.sh +1 -1
  87. package/scripts/sync-skills.sh +22 -10
  88. package/scripts/validate-skill-yaml.py +73 -0
  89. package/visual-dashboard/scripts/cockpit.html +123 -16
  90. package/visual-dashboard/scripts/frame-template.html +181 -45
  91. package/countable-story-format.md +0 -293
@@ -1,293 +0,0 @@
1
- # Countable Story Format
2
-
3
- The canonical format for stories and bug-fix specs that need to be **countable** — i.e., readable by automated counters that score scope, sizing, and non-functional coverage. Every spec-producing skill in bigpowers writes output in this format.
4
-
5
- This is a structural contract. Counters key off the exact section names and order. Section omissions are not equivalent to "no content here" — they make the spec uncountable. Use `Not applicable` instead.
6
-
7
- ---
8
-
9
- ## Hard rules
10
-
11
- 1. **Every section must be present.** Empty sections are written as `Not applicable` with a one-line reason. Deleting a section caps maturity at 3.
12
- 2. **Section names and order are fixed.** Do not rename, merge, or reorder. Counters do not infer location.
13
- 3. **Sections 14, 15, 16 are tagged `*NFR*`** in their heading. The NFR ratio = (§14 + §15 + §16 content) / total content. The tag must be present even when the section is `Not applicable`.
14
- 4. **Sizing uses Fibonacci only.** XS=1, S=2, M=3, L=5, XL=8. Any other value is invalid.
15
- 5. **Acceptance criteria are Gherkin only** (`Scenario / Given / When / Then`) and live in §17.
16
- 6. **Acceptance criteria must cover the main flow (§5) plus every alternative/exception listed in §6.** One scenario per branch, minimum.
17
- 7. **Multiple occurrences of the same dimension are listed separately**, each with its own one-line rationale. Do not collapse.
18
-
19
- ## Maturity rubric (self-score in the header)
20
-
21
- | Score | Label | Definition |
22
- |------|-------|------------|
23
- | 1 | Napkin | Only §1, §2, §17 populated. |
24
- | 2 | Sketch | §1–§6 populated; data model implicit. |
25
- | **3** | **Countable** | **§1–§16 populated. Counter runs cleanly. Wording may still be loose.** |
26
- | 4 | Refined | §1–§20 populated. Gherkin covers every business rule. Open questions tracked but non-blocking. |
27
- | 5 | Implementation-ready | All sections final. Data model precise enough for codegen. No open questions. References complete. |
28
-
29
- **Sprint commitment gate:** maturity ≥ 4 recommended. Anything below 3 is blocked from sprint commit unless risk is explicitly accepted.
30
-
31
- ---
32
-
33
- ## Header block (mandatory)
34
-
35
- ```
36
- STORY KEY: <PROJECT-NNN>
37
- TITLE: <short imperative title>
38
- TYPE: Story | Spike | Bug | Enabler
39
- PARENT: <epic key or N/A>
40
- STATUS: Draft | Ready for refinement | Refined | Counted | In sprint
41
- AUTHOR: <name> DATE: <YYYY-MM-DD>
42
- MATURITY: <self-score 1-5>
43
- SIZE: XS | S | M | L | XL (Fibonacci 1/2/3/5/8)
44
- ```
45
-
46
- `SIZE` is optional at maturity 3; required at maturity 4+.
47
-
48
- ---
49
-
50
- ## The 20 sections
51
-
52
- Headings appear verbatim, including the numbers.
53
-
54
- ### 1. Business narrative
55
-
56
- Two to four paragraphs of plain business prose. No solution language. No `As a / I want` phrasing — that belongs in §2. Describe the situation, the friction, and the desired outcome from the business point of view.
57
-
58
- ### 2. Value statement
59
-
60
- A single line:
61
- ```
62
- As a <actor>, I want <capability>, so that <outcome>.
63
- ```
64
- Retained for portfolio-level skim. One line, no expansion.
65
-
66
- ### 3. Actors and permissions
67
-
68
- List of actors and what they are allowed to do. Mark each as `internal | external | system`.
69
-
70
- ### 4. Trigger and preconditions
71
-
72
- What event starts this flow. What must be true before it can run.
73
-
74
- ### 5. Main flow and business logic
75
-
76
- Numbered steps describing the happy path. Decision points are explicit. Include the line `Interruption point: <where the flow can be paused/resumed or N/A>`.
77
-
78
- ### 6. Alternative flows and exceptions
79
-
80
- Numbered list of every branch and every error path. Each entry must be referenced by a Gherkin scenario in §17.
81
-
82
- ### 7. Interface elements
83
-
84
- ```
85
- Context: new | existing
86
- Static elements: <list>
87
- Dynamic elements: <list>
88
- ```
89
- Max five elements per cluster. If more, split into clusters.
90
-
91
- ### 8. Domain model
92
-
93
- Entities touched, entities created, relationships changed. Reference `specs/CONTEXT.md` and `specs/UBIQUITOUS_LANGUAGE.md` where applicable.
94
-
95
- ### 9. Integrations and boundaries
96
-
97
- Each integration tagged `perennial | ethereal` and `direction: in | out | both`.
98
-
99
- ### 10. Background processes
100
-
101
- Each tagged `event | scheduled | manual+scheduled | external`.
102
-
103
- ### 11. Notifications
104
-
105
- One entry per notification: channel, recipient, trigger event.
106
-
107
- ### 12. Audit and logging
108
-
109
- Audited entities and the audit fields captured.
110
-
111
- ### 13. Solution variabilities
112
-
113
- For each parameter: source (`config | tenant | feature flag | role`) and behaviour per value.
114
-
115
- ### 14. Quality attributes *NFR*
116
-
117
- Concrete service-level targets: p95 latency, uptime, scale ceiling, reliability. Numbers only — no adjectives.
118
-
119
- ### 15. Security and compliance *NFR*
120
-
121
- AuthN method, AuthZ model, data classification, applicable regulations, controls in place.
122
-
123
- ### 16. UX and accessibility *NFR*
124
-
125
- WCAG level, i18n scope, supported modalities, branding constraints.
126
-
127
- ### 17. Acceptance criteria
128
-
129
- Gherkin scenarios:
130
- ```
131
- Scenario: <name>
132
- Given <precondition>
133
- When <action>
134
- Then <outcome>
135
- ```
136
- At least one scenario for the main flow (§5) and one per branch in §6.
137
-
138
- ### 18. Out of scope
139
-
140
- Explicit non-goals. Phrased as full sentences, not single words.
141
-
142
- ### 19. Open questions
143
-
144
- ```
145
- - <question> — owner: <name>, needed by: <YYYY-MM-DD>
146
- ```
147
- A non-empty §19 caps maturity at 3.
148
-
149
- ### 20. References
150
-
151
- Links to design docs, RFCs, ADRs, prior stories, datasets, prototypes.
152
-
153
- ---
154
-
155
- ## Bug-fix specs (bugs/BUG-*.md)
156
-
157
- Bug fixes use the same header block and the same 20 sections. The minimum required for "Countable" on a bug fix:
158
-
159
- - §1 — describe actual vs. expected behavior and reproduction.
160
- - §5 — the verified root-cause flow (output of the 4-phase RCA).
161
- - §6 — alternative hypotheses ruled out.
162
- - §17 — Gherkin: at least one regression scenario that fails before the fix and passes after.
163
- - §18 — what this fix deliberately does not change.
164
- - §19 — anything still unverified.
165
-
166
- Sections 2–4, 7–16, 20 are marked `Not applicable — <reason>` if the fix is purely behavioral.
167
-
168
- ---
169
-
170
- ## Refactors and spikes
171
-
172
- Refactors and spikes are not user stories and do **not** use this format. They keep their existing lightweight templates (`specs/REFACTOR.md`, `specs/SPIKE-<name>.md`). They are not counted.
173
-
174
- ---
175
-
176
- ## Worked example (minimal countable story)
177
-
178
- ```
179
- STORY KEY: ACME-101
180
- TITLE: Self-serve password reset
181
- TYPE: Story
182
- PARENT: ACME-EPIC-7
183
- STATUS: Draft
184
- AUTHOR: dvm DATE: 2026-05-23
185
- MATURITY: 3
186
- SIZE: M
187
-
188
- ### 1. Business narrative
189
- Customer-support handles ~120 password reset tickets per week. Each ticket
190
- costs an average of 8 minutes of agent time. Customers wait 4 hours on
191
- average for a reply. Both numbers are unacceptable for our SLA tier.
192
-
193
- ### 2. Value statement
194
- As a signed-out customer, I want to reset my own password, so that I can
195
- get back into my account without contacting support.
196
-
197
- ### 3. Actors and permissions
198
- - Customer (external) — initiate reset, set new password.
199
- - Auth service (system) — issue and verify reset tokens.
200
-
201
- ### 4. Trigger and preconditions
202
- Trigger: customer clicks "Forgot password" on the sign-in screen.
203
- Precondition: an account with the supplied email exists and is not locked.
204
-
205
- ### 5. Main flow and business logic
206
- 1. Customer submits email.
207
- 2. System creates single-use reset token (TTL 30 min).
208
- 3. System emails token link to the registered address.
209
- 4. Customer opens link and submits new password.
210
- 5. System verifies token, updates password hash, invalidates token.
211
- 6. System redirects to sign-in.
212
- Interruption point: between steps 3 and 4 (link sent, not yet clicked).
213
-
214
- ### 6. Alternative flows and exceptions
215
- 6a. Email not registered — respond identically to success path (do not leak).
216
- 6b. Token expired — display generic "request a new link" message.
217
- 6c. Account locked — redirect to support contact page; do not issue token.
218
-
219
- ### 7. Interface elements
220
- Context: existing.
221
- Static elements: page title, email input, submit button.
222
- Dynamic elements: validation message, throttle banner.
223
-
224
- ### 8. Domain model
225
- Entities touched: User, AuthCredential. New entity: PasswordResetToken
226
- (user_id, token_hash, expires_at, used_at).
227
-
228
- ### 9. Integrations and boundaries
229
- - Email provider (perennial, direction: out).
230
-
231
- ### 10. Background processes
232
- - Token sweeper (scheduled, hourly) — purges expired tokens.
233
-
234
- ### 11. Notifications
235
- - Email — recipient: registered user — trigger: token issued.
236
-
237
- ### 12. Audit and logging
238
- Audited entity: PasswordResetToken. Fields: issued_at, used_at, ip.
239
-
240
- ### 13. Solution variabilities
241
- - TTL (config) — default 30 min, override per tenant.
242
-
243
- ### 14. Quality attributes *NFR*
244
- - p95 reset-flow end-to-end < 60 s including email delivery.
245
- - 99.9% monthly uptime on the reset endpoint.
246
-
247
- ### 15. Security and compliance *NFR*
248
- - AuthN: anonymous on request, token-based on completion.
249
- - AuthZ: token bound to user_id; single use.
250
- - Data class: PII (email).
251
- - Controls: rate-limit 5/hour/IP; token-hash at rest.
252
-
253
- ### 16. UX and accessibility *NFR*
254
- - WCAG 2.1 AA.
255
- - i18n: en, pt-BR at launch.
256
-
257
- ### 17. Acceptance criteria
258
- Scenario: Happy path
259
- Given a registered customer at the sign-in screen
260
- When the customer requests a password reset for their email
261
- Then an email with a single-use link is sent within 60 seconds
262
-
263
- Scenario: Unknown email (6a)
264
- Given an email that is not registered
265
- When the customer requests a password reset
266
- Then the UI shows the same confirmation as the happy path
267
- And no email is sent
268
-
269
- Scenario: Expired token (6b)
270
- Given a reset token older than 30 minutes
271
- When the customer opens the link
272
- Then the UI shows "request a new link"
273
-
274
- Scenario: Locked account (6c)
275
- Given an account marked locked
276
- When the customer requests a password reset
277
- Then no token is issued
278
- And the UI redirects to the support contact page
279
-
280
- ### 18. Out of scope
281
- - Passwordless / magic-link sign-in.
282
- - Forced password rotation policy.
283
- - Admin-initiated resets.
284
-
285
- ### 19. Open questions
286
- - Confirm rate-limit threshold with SecOps — owner: dvm, needed by: 2026-05-30.
287
-
288
- ### 20. References
289
- - ADR-0014 (token strategy).
290
- - specs/CONTEXT.md (User aggregate).
291
- ```
292
-
293
- This example scores 3 (Countable). To reach 4, resolve §19 and add NFR coverage for §16 i18n test plan.