bigpowers 2.50.0 → 2.51.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 (90) hide show
  1. package/.pi/package.json +1 -1
  2. package/.pi/prompts/plan-release.md +0 -1
  3. package/.pi/prompts/release-branch.md +74 -56
  4. package/.pi/prompts/session-state.md +2 -0
  5. package/.pi/prompts/survey-context.md +1 -1
  6. package/.pi/skills/plan-release/SKILL.md +0 -1
  7. package/.pi/skills/release-branch/SKILL.md +74 -56
  8. package/.pi/skills/session-state/SKILL.md +2 -0
  9. package/.pi/skills/survey-context/SKILL.md +1 -1
  10. package/CHANGELOG.md +16 -0
  11. package/CLAUDE.md +9 -0
  12. package/package.json +1 -1
  13. package/scripts/audit-compliance.sh +1 -4
  14. package/scripts/record-cycle-time.sh +340 -0
  15. package/scripts/validate-okf.sh +198 -0
  16. package/scripts/wait-for-ci.sh +130 -0
  17. package/skills/align-grid/SKILL.md +1 -0
  18. package/skills/assess-impact/SKILL.md +1 -0
  19. package/skills/audit-code/SKILL.md +1 -0
  20. package/skills/audit-plan/SKILL.md +1 -0
  21. package/skills/build-epic/SKILL.md +1 -0
  22. package/skills/change-request/SKILL.md +1 -0
  23. package/skills/commit-message/SKILL.md +1 -0
  24. package/skills/compose-workflow/SKILL.md +1 -0
  25. package/skills/craft-skill/SKILL.md +1 -0
  26. package/skills/deepen-architecture/SKILL.md +1 -0
  27. package/skills/define-language/SKILL.md +1 -0
  28. package/skills/define-success/SKILL.md +1 -0
  29. package/skills/delegate-task/SKILL.md +1 -0
  30. package/skills/deploy/SKILL.md +1 -0
  31. package/skills/design-interface/SKILL.md +1 -0
  32. package/skills/develop-tdd/SKILL.md +1 -0
  33. package/skills/diagnose-root/SKILL.md +1 -0
  34. package/skills/dispatch-agents/SKILL.md +1 -0
  35. package/skills/edit-document/SKILL.md +1 -0
  36. package/skills/elaborate-spec/SKILL.md +1 -0
  37. package/skills/enforce-first/SKILL.md +1 -0
  38. package/skills/evolve-skill/SKILL.md +1 -0
  39. package/skills/execute-plan/SKILL.md +1 -0
  40. package/skills/extract-design/SKILL.md +1 -0
  41. package/skills/fix-bug/SKILL.md +1 -0
  42. package/skills/grill-me/SKILL.md +1 -0
  43. package/skills/grill-with-docs/SKILL.md +1 -0
  44. package/skills/guard-git/SKILL.md +1 -0
  45. package/skills/hook-commits/SKILL.md +1 -0
  46. package/skills/inspect-quality/SKILL.md +1 -0
  47. package/skills/investigate-bug/SKILL.md +1 -0
  48. package/skills/kickoff-branch/SKILL.md +1 -0
  49. package/skills/map-codebase/SKILL.md +1 -0
  50. package/skills/migrate-spec/SKILL.md +1 -0
  51. package/skills/model-domain/SKILL.md +1 -0
  52. package/skills/orchestrate-project/SKILL.md +1 -0
  53. package/skills/organize-workspace/SKILL.md +1 -0
  54. package/skills/plan-refactor/SKILL.md +1 -0
  55. package/skills/plan-release/SKILL.md +1 -1
  56. package/skills/plan-work/SKILL.md +1 -0
  57. package/skills/publish-package/SKILL.md +1 -0
  58. package/skills/quick-fix/SKILL.md +1 -0
  59. package/skills/release-branch/REFERENCE.md +57 -54
  60. package/skills/release-branch/SKILL.md +20 -4
  61. package/skills/request-review/SKILL.md +1 -0
  62. package/skills/research-first/SKILL.md +1 -0
  63. package/skills/reset-baseline/SKILL.md +1 -0
  64. package/skills/respond-review/SKILL.md +1 -0
  65. package/skills/run-benchmark/SKILL.md +1 -0
  66. package/skills/run-evals/SKILL.md +1 -0
  67. package/skills/run-planning/SKILL.md +1 -0
  68. package/skills/scope-work/SKILL.md +1 -0
  69. package/skills/search-skills/SKILL.md +1 -0
  70. package/skills/security-review/SKILL.md +1 -0
  71. package/skills/seed-conventions/SKILL.md +1 -0
  72. package/skills/session-state/SKILL.md +3 -0
  73. package/skills/setup-environment/SKILL.md +1 -0
  74. package/skills/simulate-agents/SKILL.md +1 -0
  75. package/skills/slice-tasks/SKILL.md +1 -0
  76. package/skills/smoke-test/SKILL.md +1 -0
  77. package/skills/spike-prototype/SKILL.md +1 -0
  78. package/skills/stocktake-skills/SKILL.md +1 -0
  79. package/skills/survey-context/SKILL.md +2 -1
  80. package/skills/terse-mode/SKILL.md +1 -0
  81. package/skills/trace-requirement/SKILL.md +1 -0
  82. package/skills/using-bigpowers/SKILL.md +1 -0
  83. package/skills/validate-contracts/SKILL.md +1 -0
  84. package/skills/validate-fix/SKILL.md +1 -0
  85. package/skills/verify-work/SKILL.md +1 -0
  86. package/skills/visual-dashboard/SKILL.md +1 -0
  87. package/skills/wire-ci/SKILL.md +1 -0
  88. package/skills/wire-observability/SKILL.md +1 -0
  89. package/skills/write-document/SKILL.md +1 -0
  90. package/skills-lock.json +72 -72
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: assess-impact
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Analyze the blast radius of a proposed change before any code is written. Maps dependents, affected stories, and test coverage. Produces specs/IMPACT_LATEST.md. Use before plan-work on any non-trivial change, when touching a shared module, or when the user asks "what does this break?".
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: audit-code
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Self-review checklist for the coding agent to run before dispatching a reviewer. Checks CONVENTIONS.md compliance, Boy Scout Rule, test coverage, types, and SOLID. Produces a pass/fail checklist. Use before request-review, before committing, or when user asks for a code quality check.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: audit-plan
3
3
  model: sonnet
4
+ effort: standard
4
5
  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
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: build-epic
3
3
  model: sonnet
4
+ effort: standard
4
5
  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.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: change-request
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Add a new requirement or reorder epics by WSJF against specs/release-plan.yaml and epic capsule directories. Modes Add and Reorder. Use when a new requirement arrives mid-release or the plan needs prioritization.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: commit-message
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Reviews working-tree changes, then drafts a Conventional Commits title/body and states the semantic-release version bump a single such commit would imply. Also notes which defensive-code categories were touched. Use when the user wants to commit recent work, prepare a Conventional Commits message, or asks for semantic-release / semver-consistent messaging before git commit.
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: compose-workflow
3
3
  description: Chain multiple bigpowers skills into a custom workflow recipe saved in specs/. Use when a project repeats a non-standard skill sequence, or user wants a documented playbook beyond orchestrate-project modes.
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Compose Workflow
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: craft-skill
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Create new bigpowers skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill for the bigpowers lifecycle.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: deepen-architecture
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Find deepening opportunities in a codebase, informed by the domain language in specs/tech-architecture/tech-stack.md and the decisions in specs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: define-language
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to specs/UBIQUITOUS_LANGUAGE_LATEST.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
5
6
  ---
6
7
 
@@ -3,6 +3,7 @@ ARCHIVED: content absorbed into plan-work
3
3
  ---
4
4
  name: define-success
5
5
  model: sonnet
6
+ effort: standard
6
7
  description: Convert an imperative task statement into explicit "step → verify: <cmd>" pairs before implementation begins. Use before plan-work when success criteria are unclear, when a task lacks verifiable checkpoints, or when user says "how will we know this is done?".
7
8
  ---
8
9
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: delegate-task
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Delegate one complex task to a single subagent, review its work in two stages before merging back. Sequential — one agent at a time, with oversight. Use when a task is complex and requires careful review before the result is accepted. Distinct from dispatch-agents (no parallelism here; reviewer sees full diff before proceeding).
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: deploy
3
3
  description: "Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production."
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Deploy
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: design-interface
3
3
  model: opus
4
+ effort: standard
4
5
  description: Generate multiple radically different interface designs for a module using parallel sub-agents, then compare trade-offs. Based on "Design It Twice" from A Philosophy of Software Design. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: develop-tdd
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Test-driven development with red-green-refactor loop using vertical slices. Use for features (epic tasks) or bugs (specs/bugs/BUG-*.md).
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: diagnose-root
3
3
  description: Run 4-phase root cause analysis — reproduce, isolate, hypothesize, verify. Use when a bug is confirmed but root cause is unclear, after investigate-bug, or when user mentions root cause analysis.
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Diagnose Root
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: dispatch-agents
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Dispatch multiple subagents in parallel on independent tasks. No waiting between them — all run concurrently. Use when tasks are truly decoupled and speed matters. Distinct from delegate-task (concurrent here, no inter-task review gate).
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: edit-document
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Edit and improve documents by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, restructure, or improve any document — including specs/ files, articles, READMEs, or technical writing.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: elaborate-spec
3
3
  model: opus
4
+ effort: standard
4
5
  description: Refine a rough idea into a clear, detailed specification through dialogue. Does not produce code. Use when user has a vague idea, wants to think through a feature before planning, or needs to turn "I want X" into a concrete spec.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: enforce-first
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Apply the F.I.R.S.T test quality rubric (Fast, Independent, Repeatable, Self-Validating, Timely) to a test suite or individual tests. Use when develop-tdd is writing tests, when test quality needs to be checked, or when user mentions F.I.R.S.T or "test quality".
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: evolve-skill
3
3
  description: Benchmark-gated skill evolution — consume bigpowers-benchmark report, propose plan-work change, edit skill via craft-skill, re-run benchmark, record ADR. Use when a skill underperforms on benchmark or stocktake finds systemic gap.
4
4
  model: opus
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Evolve Skill
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: execute-plan
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Batch-execute tasks from the active epic capsule sequentially, with a human checkpoint after each step. Use when user has an approved plan and wants step-by-step oversight.
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: extract-design
3
3
  description: "Extract a Google DESIGN.md file from an HTML prototype (claude.ai/design or any styled page) using Puppeteer, producing machine-readable tokens and AI-generated prose. Use when the user has an HTML prototype and wants a DESIGN.md to anchor their project's visual identity, or when seed-conventions has just scaffolded a new project."
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Extract DESIGN.md from HTML
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: fix-bug
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Bug fix orchestrator — active_flow fix_bug; reads specs/bugs/BUG-*.md; chains investigate-bug, develop-tdd, validate-fix. Use when user reports a defect.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: grill-me
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Interactive assumption-surfacing Q&A that stress-tests a plan through relentless questioning until every decision is resolved. Use when user wants to challenge a plan, validate decisions from conversation/context, or mentions "grill me". For doc-grounded variant, use grill-with-docs.
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: grill-with-docs
3
3
  description: Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API.
4
4
  model: opus
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Grill With Docs
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: guard-git
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Block dangerous git commands (push, force push, reset --hard, clean, branch -D, checkout/restore .) and enforce Conventional Commits & Branch Protection before an AI agent runs them. Installs hook scripts for Claude Code, Cursor, Cursor CLI, and Gemini CLI; documents Google Antigravity Terminal deny lists. Use when the user wants git safety hooks, to block git push or destructive git in agents, or to mirror the same policy across AI coding tools.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: hook-commits
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Set up pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: inspect-quality
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Interactive QA session where user reports bugs or issues conversationally, and the agent logs them to specs/bugs/registry.yaml with a structured audit schema. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, or mentions "QA session".
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: investigate-bug
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Investigate a bug or issue by exploring the codebase to find root cause, then write a TDD-based fix plan to specs/bugs/BUG-*.md. Use when user reports a bug, wants to investigate a problem, mentions "triage", or wants to plan a fix.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: kickoff-branch
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Create a git worktree and feature branch, then verify a clean test baseline before any code is written. Use when starting a new feature or task, when user wants to work in isolation from main, or mentions "start a branch" or "new worktree".
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: map-codebase
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: "Derives the tech-stack doc from scratch by scanning the codebase — analyzes stack, architecture, and gray areas (error handling, API shapes) and persists findings into specs/tech-architecture/tech-stack.md. Run when the tech doc doesn't exist yet; use survey-context to consume it once it does."
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: migrate-spec
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers YAML layout (state.yaml, release-plan.yaml, epics/, requirements/, plans/, ADRs). Use when migrating foreign spec docs.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: model-domain
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates specs/tech-architecture/tech-stack.md and specs/adr/ inline as decisions crystallise. Use when user wants to stress-test a plan against their project's domain language and documented decisions.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: orchestrate-project
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Meta-skill that enforces the 6-phase core loop (discover → elaborate → plan → build → verify → release) with hard gates. Use to coordinate multi-phase projects with guaranteed quality checkpoints. One-time command for the entire project lifecycle.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: organize-workspace
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Scans the active workspace for disposable artifacts—logs, caches, stale build output, and stray draft markdown—and proposes consolidation of scattered assets. Produces a reviewable list, asks for explicit confirmation before any delete or move, and optionally revises .gitignore. Use when the user says "clean my room", "organize workspace", "workspace cleanup", "remove temp files", "organize assets", "gitignore", or wants a safe tidy pass.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: plan-refactor
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Create a detailed refactor plan with tiny commits via user interview, then save it as specs/REFACTOR_LATEST.md. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.
5
6
  ---
6
7
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: plan-release
3
3
  model: sonnet
4
+ effort: standard
4
5
  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."
5
6
  ---
6
-
7
7
  # Plan Release
8
8
 
9
9
  > **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: plan-work
3
3
  model: opus
4
+ effort: standard
4
5
  description: "PLANNING SPINE STEP 3 of 3 — Plan the work: write detailed implementation tasks into the active epic capsule (specs/epics/eNN-slug/). Produces countable-story-format .md specs and runnable -tasks.yaml files. Use after slice-tasks (step 2). Not a substitute for scope-work (step 1) or slice-tasks (step 2)."
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: publish-package
3
3
  description: "Package registry publishing for npm, crates.io, PyPI, and Homebrew. Verifies prerequisites, runs the publish command, confirms success, and surfaces actionable error hints on failure."
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Publish Package
@@ -2,6 +2,7 @@
2
2
  name: quick-fix
3
3
  description: "Streamlined fast-path for trivial data-only fixes — no TDD, no branching ceremony. Collapses 6 skills into 2 for changes that are purely data with no logic risk. Aborts with fallback to investigate-bug if guardrails trigger."
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
 
@@ -40,22 +40,65 @@ If `git worktree remove` fails due to uncommitted changes, ask: "There are uncom
40
40
 
41
41
  ## Cycle-time recording
42
42
 
43
- After landing the branch, record delivery metrics for this story:
44
-
45
- 1. Write `metrics.story_end` (ISO 8601) to `specs/state.yaml`
46
- 2. Compute `cycle_minutes`: `story_end` minus `story_start` in minutes
47
- 3. Compute `bcp_per_hour`: `epic_cycle.story_bcps / (cycle_minutes / 60)`
48
- 4. Append a row to `specs/metrics/cycle-times.yaml`:
49
-
50
- ```yaml
51
- - id: e01s01
52
- bcps: 3
53
- start: "2026-06-10T09:45:00Z"
54
- end: "2026-06-10T11:15:00Z"
55
- cycle_minutes: 90
56
- bcp_per_hour: 2.0
43
+ After landing the branch, record delivery metrics using the git-derived,
44
+ additive script (replaces hand-arithmetic):
45
+
46
+ ```bash
47
+ bash scripts/record-cycle-time.sh append \
48
+ --story <story_id> --bcps <bcps> \
49
+ --range "$(git merge-base main HEAD)..HEAD" \
50
+ --file specs/metrics/cycle-times.yaml
57
51
  ```
58
52
 
53
+ This appends a row to the cycle-times ledger with two separated metrics:
54
+
55
+ - **effort_hours** — ADDITIVE. Idle-stripped estimated effort from git commit
56
+ history (git-hours model: 120-min session threshold, 120-min first-commit pad).
57
+ Sums exactly to whole-repo effort. NO hand-arithmetic, NO wall-clock includes.
58
+ - **lead_time_minutes** — calendar latency from first commit to merge.
59
+ Median-aggregated across stories; NEVER summed.
60
+
61
+ The script also runs an additivity self-check: Σ(story effort) == whole-repo effort
62
+ within rounding tolerance.
63
+
64
+ ### Why not story_start minus story_end?
65
+
66
+ The previous hand-arithmetic approach (survey-context writes `story_start`,
67
+ release-branch writes `story_end`, agent hand-computes `cycle_minutes`) was
68
+ retired because:
69
+
70
+ 1. It was **agent-self-reported** — trivially fabricated or mis-subtracted.
71
+ 2. Wall-clock included **overnight/weekend/UAT gaps** — calendar latency,
72
+ not coding effort.
73
+ 3. The `bcp_per_hour` metric was **computationally meaningless** (velocity
74
+ derived from a latency measurement).
75
+
76
+ The new approach derives effort from commit history (objective, reproducible)
77
+ and lead time from first commit → merge (honest calendar latency). See
78
+ `docs/references/bcp.md` for BCP sizing context and
79
+ `scripts/record-cycle-time.sh` for the full algorithm.
80
+
81
+ ---
82
+
83
+ ## CI verification
84
+
85
+ The CI polling logic has been extracted to `scripts/wait-for-ci.sh`.
86
+ See the script's `--help` for usage. Step 7b of the main SKILL.md invokes it directly:
87
+
88
+ ```bash
89
+ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
90
+ ```
91
+
92
+ **Exit codes:**
93
+ - **0** — all workflows green. Set `release.ci_verified: true` in state.yaml.
94
+ - **1** — at least one workflow failed. Prints failure URLs. Set `handoff.next_skill = fix-bug`.
95
+ - **2** — timeout. CI did not complete. Retry or investigate.
96
+ - **0 with warning** — `gh` CLI not available, git-only fallback confirmed push landed but CI status unverified.
97
+
98
+ The script handles: auto-discovery of all workflows for the current
99
+ branch/commit, polling until completion, success/failure/timeout exit codes,
100
+ and git-only fallback when `gh` CLI is unavailable.
101
+
59
102
  ---
60
103
 
61
104
  ## Solo-local fallback detail
@@ -96,43 +139,3 @@ git push origin "$DEFAULT_BRANCH"
96
139
  # Clean up local feature branch
97
140
  git branch -d "$FEATURE_BRANCH"
98
141
  ```
99
-
100
- ---
101
-
102
- ## Reference block 2
103
-
104
- ```bash
105
- echo "==> Polling CI for main branch..."
106
- TIMEOUT=600 # 10 minutes
107
- INTERVAL=30 # poll every 30 seconds
108
- ELAPSED=0
109
-
110
- while [ $ELAPSED -lt $TIMEOUT ]; do
111
- CI_JSON=$(gh run list --limit 1 --branch main --workflow CI --json status,conclusion,headSha,databaseId 2>/dev/null)
112
- CI_STATUS=$(echo "$CI_JSON" | jq -r '.[0].status // "unknown"')
113
- CI_CONCLUSION=$(echo "$CI_JSON" | jq -r '.[0].conclusion // ""')
114
- CI_SHA=$(echo "$CI_JSON" | jq -r '.[0].headSha // ""')
115
- CI_ID=$(echo "$CI_JSON" | jq -r '.[0].databaseId // ""')
116
-
117
- if [ "$CI_STATUS" = "completed" ] && [ "$CI_CONCLUSION" = "success" ]; then
118
- echo "OK: CI passed for $(git rev-parse --short HEAD)"
119
- bp-yaml-set.sh specs/state.yaml release.ci_verified true 2>/dev/null || \
120
- echo " (bp-yaml-set not available — manually set release.ci_verified: true in state.yaml)"
121
- break
122
- fi
123
-
124
- if [ "$CI_STATUS" = "completed" ] && [ "$CI_CONCLUSION" = "failure" ]; then
125
- echo "FAIL: CI failed for $(git rev-parse --short HEAD)"
126
- echo " Run URL: https://github.com/$(gh repo view --json nameWithOwner -q .nameWithOwner)/actions/runs/$CI_ID"
127
- echo " Handoff to fix-bug with the failure URL above."
128
- return 1
129
- fi
130
-
131
- sleep $INTERVAL
132
- ELAPSED=$((ELAPSED + INTERVAL))
133
- echo " Waiting... (${ELAPSED}s / ${TIMEOUT}s)"
134
- done
135
-
136
- echo "FAIL: CI did not complete within ${TIMEOUT}s timeout"
137
- return 1
138
- ```
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: release-branch
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Make the merge/PR/keep/discard decision for a feature branch, verify coverage gates, create the PR with gh, and clean up the worktree. Use when a feature is done and ready to ship, or when user says "release", "merge", or "open a PR".
5
6
  ---
6
7
 
@@ -100,11 +101,16 @@ mv specs/epics/eNN-slug specs/epics/archive/
100
101
 
101
102
  > **HARD GATE** — Do NOT declare success until CI completes. A push that fails CI is a regression, not a release.
102
103
 
103
- After push (solo-local step 5 or team-pr step 7), verify the CI workflow completes successfully:
104
+ After push (solo-local step 5 or team-pr step 7), run the CI polling script:
104
105
 
105
- See [REFERENCE.md](REFERENCE.md)
106
+ ```bash
107
+ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
108
+ ```
109
+
110
+ The script auto-discovers workflow runs for the pushed commit and polls until completion.
111
+ See [REFERENCE.md](REFERENCE.md) for exit code semantics and git-only fallback.
106
112
 
107
- - [ ] CI workflow passes after push
113
+ - [ ] CI workflow passes after push (wait-for-ci.sh exit 0)
108
114
  - [ ] `release.ci_verified: true` documented in state.yaml
109
115
  - On failure: `handoff.next_skill = fix-bug` with the CI failure URL
110
116
 
@@ -118,7 +124,17 @@ git branch -d <branch-name>
118
124
 
119
125
  ### 8a. Cycle-time recording
120
126
 
121
- After landing, record delivery metrics. See [REFERENCE.md](REFERENCE.md) for fields and example row.
127
+ After landing, record delivery metrics with the git-derived, additive script:
128
+
129
+ ```bash
130
+ bash scripts/record-cycle-time.sh append \
131
+ --story <story_id> --bcps <bcps> \
132
+ --range "$(git merge-base main HEAD)..HEAD" \
133
+ --file specs/metrics/cycle-times.yaml
134
+ ```
135
+
136
+ This replaces the previous hand-arithmetic approach (story_end minus story_start).
137
+ See [REFERENCE.md](REFERENCE.md) for the git-hours model and field definitions.
122
138
 
123
139
  ### 9. Return to main
124
140
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: request-review
3
3
  model: opus
4
+ effort: standard
4
5
  description: Dispatch a fresh reviewer agent with a clean context to critique the code after audit-code passes. The reviewer has no shared state with the coding agent and gives a genuine second opinion. Use after audit-code passes, before committing, or when user wants an independent code review.
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: research-first
3
3
  description: Look-before-build — search registries, repo, existing skills, and web for prior art before implementing. Appends Prior Art to the spec. Use after survey-context and before elaborate-spec, when adding dependencies, or when the task may already be solved.
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Research First
@@ -2,6 +2,7 @@
2
2
  name: reset-baseline
3
3
  description: Restore the project to a known clean state between agent runs or experiments. Use between benchmark runs, after a failed spike, or when user wants a clean working tree.
4
4
  model: haiku
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Reset Baseline
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: respond-review
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: Act on a reviewer agent's feedback systematically — categorize findings, apply fixes, verify tests still pass. Use after request-review returns a report, or when user wants to work through code review findings.
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: run-benchmark
3
3
  model: haiku
4
+ effort: standard
4
5
  description: Run skill quality benchmarks from specs/benchmarks/ definitions and write pass@k reports. Use before and after evolve-skill to prove quality changes are improvements, not regressions.
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: run-evals
3
3
  description: Eval-Driven Development — define capability and regression evals before building; code graders use verify commands, model graders use explicit rubrics; log pass@k. Use before develop-tdd on new features, or when measuring agent capability over runs.
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Run Evals
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: run-planning
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: "DISCOVER-PHASE ADVANCER — Drive the discover-phase checklist (specs/planning-status.yaml) through survey-context → scope-work → research-first → elaborate-spec → plan-release → slice-tasks. NOT a duplicate of plan-work or the planning spine; it orchestrates the pre-coding discover phase only."
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: scope-work
3
3
  description: "PLANNING SPINE STEP 1 of 3 — Scope the work: define what is in and out of scope and save as specs/product/SCOPE_LATEST.yaml. Use before slice-tasks or plan-release on any new initiative. Not a substitute for slice-tasks (step 2) or plan-work (step 3)."
4
4
  model: sonnet
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Scope Work
@@ -2,6 +2,7 @@
2
2
  name: search-skills
3
3
  description: Find the right bigpowers skill from natural-language intent using a local lexical index over SKILL.md frontmatter. Use when unsure which skill to invoke, or at start of research-first.
4
4
  model: haiku
5
+ effort: standard
5
6
  ---
6
7
 
7
8
  # Search Skills
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: security-review
3
3
  model: sonnet
4
+ effort: standard
4
5
  description: >
5
6
  AI-powered security analysis of code changes — traces data flow, detects
6
7
  injection, auth bypass, secrets exposure, and unsafe deserialization across