bigpowers 2.88.11 → 2.88.13
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/.agents/skills/audit-code/SKILL.md +11 -3
- package/.agents/skills/build-epic/SKILL.md +1 -1
- package/.agents/skills/change-request/SKILL.md +2 -2
- package/.agents/skills/commit-message/SKILL.md +1 -1
- package/.agents/skills/compose-workflow/SKILL.md +3 -3
- package/.agents/skills/delegate-task/SKILL.md +1 -1
- package/.agents/skills/dispatch-agents/SKILL.md +3 -3
- package/.agents/skills/evolve-skill/SKILL.md +3 -3
- package/.agents/skills/kickoff-branch/SKILL.md +3 -3
- package/.agents/skills/migrate-spec/SKILL.md +6 -6
- package/.agents/skills/plan-work/SKILL.md +1 -1
- package/.agents/skills/request-review/SKILL.md +12 -1
- package/.agents/skills/research-first/SKILL.md +2 -2
- package/.agents/skills/run-planning/SKILL.md +1 -1
- package/.agents/skills/scope-work/SKILL.md +2 -2
- package/.agents/skills/search-skills/SKILL.md +2 -2
- package/.agents/skills/security-review/SKILL.md +9 -9
- package/.agents/skills/seed-conventions/SKILL.md +6 -6
- package/.agents/skills/session-state/SKILL.md +1 -1
- package/.agents/skills/slice-tasks/SKILL.md +1 -1
- package/.agents/skills/stocktake-skills/SKILL.md +1 -1
- package/.agents/skills/survey-context/SKILL.md +1 -1
- package/.cline/skills/audit-code/SKILL.md +11 -3
- package/.cline/skills/build-epic/SKILL.md +1 -1
- package/.cline/skills/change-request/SKILL.md +2 -2
- package/.cline/skills/commit-message/SKILL.md +1 -1
- package/.cline/skills/compose-workflow/SKILL.md +3 -3
- package/.cline/skills/delegate-task/SKILL.md +1 -1
- package/.cline/skills/dispatch-agents/SKILL.md +3 -3
- package/.cline/skills/evolve-skill/SKILL.md +3 -3
- package/.cline/skills/kickoff-branch/SKILL.md +3 -3
- package/.cline/skills/migrate-spec/SKILL.md +6 -6
- package/.cline/skills/plan-work/SKILL.md +1 -1
- package/.cline/skills/request-review/SKILL.md +12 -1
- package/.cline/skills/research-first/SKILL.md +2 -2
- package/.cline/skills/run-planning/SKILL.md +1 -1
- package/.cline/skills/scope-work/SKILL.md +2 -2
- package/.cline/skills/search-skills/SKILL.md +2 -2
- package/.cline/skills/security-review/SKILL.md +9 -9
- package/.cline/skills/seed-conventions/SKILL.md +6 -6
- package/.cline/skills/session-state/SKILL.md +1 -1
- package/.cline/skills/slice-tasks/SKILL.md +1 -1
- package/.cline/skills/stocktake-skills/SKILL.md +1 -1
- package/.cline/skills/survey-context/SKILL.md +1 -1
- package/.codebuddy/skills/audit-code/SKILL.md +11 -3
- package/.codebuddy/skills/build-epic/SKILL.md +1 -1
- package/.codebuddy/skills/change-request/SKILL.md +2 -2
- package/.codebuddy/skills/commit-message/SKILL.md +1 -1
- package/.codebuddy/skills/compose-workflow/SKILL.md +3 -3
- package/.codebuddy/skills/delegate-task/SKILL.md +1 -1
- package/.codebuddy/skills/dispatch-agents/SKILL.md +3 -3
- package/.codebuddy/skills/evolve-skill/SKILL.md +3 -3
- package/.codebuddy/skills/kickoff-branch/SKILL.md +3 -3
- package/.codebuddy/skills/migrate-spec/SKILL.md +6 -6
- package/.codebuddy/skills/plan-work/SKILL.md +1 -1
- package/.codebuddy/skills/request-review/SKILL.md +12 -1
- package/.codebuddy/skills/research-first/SKILL.md +2 -2
- package/.codebuddy/skills/run-planning/SKILL.md +1 -1
- package/.codebuddy/skills/scope-work/SKILL.md +2 -2
- package/.codebuddy/skills/search-skills/SKILL.md +2 -2
- package/.codebuddy/skills/security-review/SKILL.md +9 -9
- package/.codebuddy/skills/seed-conventions/SKILL.md +6 -6
- package/.codebuddy/skills/session-state/SKILL.md +1 -1
- package/.codebuddy/skills/slice-tasks/SKILL.md +1 -1
- package/.codebuddy/skills/stocktake-skills/SKILL.md +1 -1
- package/.codebuddy/skills/survey-context/SKILL.md +1 -1
- package/.codex/skills/audit-code/SKILL.md +11 -3
- package/.codex/skills/build-epic/SKILL.md +1 -1
- package/.codex/skills/change-request/SKILL.md +2 -2
- package/.codex/skills/commit-message/SKILL.md +1 -1
- package/.codex/skills/compose-workflow/SKILL.md +3 -3
- package/.codex/skills/delegate-task/SKILL.md +1 -1
- package/.codex/skills/dispatch-agents/SKILL.md +3 -3
- package/.codex/skills/evolve-skill/SKILL.md +3 -3
- package/.codex/skills/kickoff-branch/SKILL.md +3 -3
- package/.codex/skills/migrate-spec/SKILL.md +6 -6
- package/.codex/skills/plan-work/SKILL.md +1 -1
- package/.codex/skills/request-review/SKILL.md +12 -1
- package/.codex/skills/research-first/SKILL.md +2 -2
- package/.codex/skills/run-planning/SKILL.md +1 -1
- package/.codex/skills/scope-work/SKILL.md +2 -2
- package/.codex/skills/search-skills/SKILL.md +2 -2
- package/.codex/skills/security-review/SKILL.md +9 -9
- package/.codex/skills/seed-conventions/SKILL.md +6 -6
- package/.codex/skills/session-state/SKILL.md +1 -1
- package/.codex/skills/slice-tasks/SKILL.md +1 -1
- package/.codex/skills/stocktake-skills/SKILL.md +1 -1
- package/.codex/skills/survey-context/SKILL.md +1 -1
- package/.copilot/skills/audit-code/SKILL.md +11 -3
- package/.copilot/skills/build-epic/SKILL.md +1 -1
- package/.copilot/skills/change-request/SKILL.md +2 -2
- package/.copilot/skills/commit-message/SKILL.md +1 -1
- package/.copilot/skills/compose-workflow/SKILL.md +3 -3
- package/.copilot/skills/delegate-task/SKILL.md +1 -1
- package/.copilot/skills/dispatch-agents/SKILL.md +3 -3
- package/.copilot/skills/evolve-skill/SKILL.md +3 -3
- package/.copilot/skills/kickoff-branch/SKILL.md +3 -3
- package/.copilot/skills/migrate-spec/SKILL.md +6 -6
- package/.copilot/skills/plan-work/SKILL.md +1 -1
- package/.copilot/skills/request-review/SKILL.md +12 -1
- package/.copilot/skills/research-first/SKILL.md +2 -2
- package/.copilot/skills/run-planning/SKILL.md +1 -1
- package/.copilot/skills/scope-work/SKILL.md +2 -2
- package/.copilot/skills/search-skills/SKILL.md +2 -2
- package/.copilot/skills/security-review/SKILL.md +9 -9
- package/.copilot/skills/seed-conventions/SKILL.md +6 -6
- package/.copilot/skills/session-state/SKILL.md +1 -1
- package/.copilot/skills/slice-tasks/SKILL.md +1 -1
- package/.copilot/skills/stocktake-skills/SKILL.md +1 -1
- package/.copilot/skills/survey-context/SKILL.md +1 -1
- package/.cursor/rules/audit-code.mdc +11 -3
- package/.cursor/rules/build-epic.mdc +1 -1
- package/.cursor/rules/change-request.mdc +2 -2
- package/.cursor/rules/commit-message.mdc +1 -1
- package/.cursor/rules/compose-workflow.mdc +3 -3
- package/.cursor/rules/delegate-task.mdc +1 -1
- package/.cursor/rules/dispatch-agents.mdc +3 -3
- package/.cursor/rules/evolve-skill.mdc +3 -3
- package/.cursor/rules/kickoff-branch.mdc +3 -3
- package/.cursor/rules/migrate-spec.mdc +6 -6
- package/.cursor/rules/plan-work.mdc +1 -1
- package/.cursor/rules/request-review.mdc +12 -1
- package/.cursor/rules/research-first.mdc +2 -2
- package/.cursor/rules/run-planning.mdc +1 -1
- package/.cursor/rules/scope-work.mdc +2 -2
- package/.cursor/rules/search-skills.mdc +2 -2
- package/.cursor/rules/security-review.mdc +9 -9
- package/.cursor/rules/seed-conventions.mdc +6 -6
- package/.cursor/rules/session-state.mdc +1 -1
- package/.cursor/rules/slice-tasks.mdc +1 -1
- package/.cursor/rules/stocktake-skills.mdc +1 -1
- package/.cursor/rules/survey-context.mdc +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/audit-code.md +11 -3
- package/.gemini/extensions/bigpowers/commands/prompts/build-epic.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/change-request.md +2 -2
- package/.gemini/extensions/bigpowers/commands/prompts/commit-message.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/compose-workflow.md +3 -3
- package/.gemini/extensions/bigpowers/commands/prompts/delegate-task.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/dispatch-agents.md +3 -3
- package/.gemini/extensions/bigpowers/commands/prompts/evolve-skill.md +3 -3
- package/.gemini/extensions/bigpowers/commands/prompts/kickoff-branch.md +3 -3
- package/.gemini/extensions/bigpowers/commands/prompts/migrate-spec.md +6 -6
- package/.gemini/extensions/bigpowers/commands/prompts/plan-work.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/request-review.md +12 -1
- package/.gemini/extensions/bigpowers/commands/prompts/research-first.md +2 -2
- package/.gemini/extensions/bigpowers/commands/prompts/run-planning.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/scope-work.md +2 -2
- package/.gemini/extensions/bigpowers/commands/prompts/search-skills.md +2 -2
- package/.gemini/extensions/bigpowers/commands/prompts/security-review.md +9 -9
- package/.gemini/extensions/bigpowers/commands/prompts/seed-conventions.md +6 -6
- package/.gemini/extensions/bigpowers/commands/prompts/session-state.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/slice-tasks.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/stocktake-skills.md +1 -1
- package/.gemini/extensions/bigpowers/commands/prompts/survey-context.md +1 -1
- package/.gemini/extensions/bigpowers/gemini-extension.json +1 -1
- package/.gemini/extensions/bigpowers/skills/audit-code/SKILL.md +11 -3
- package/.gemini/extensions/bigpowers/skills/build-epic/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/change-request/SKILL.md +2 -2
- package/.gemini/extensions/bigpowers/skills/commit-message/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/compose-workflow/SKILL.md +3 -3
- package/.gemini/extensions/bigpowers/skills/delegate-task/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/dispatch-agents/SKILL.md +3 -3
- package/.gemini/extensions/bigpowers/skills/evolve-skill/SKILL.md +3 -3
- package/.gemini/extensions/bigpowers/skills/kickoff-branch/SKILL.md +3 -3
- package/.gemini/extensions/bigpowers/skills/migrate-spec/SKILL.md +6 -6
- package/.gemini/extensions/bigpowers/skills/plan-work/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/request-review/SKILL.md +12 -1
- package/.gemini/extensions/bigpowers/skills/research-first/SKILL.md +2 -2
- package/.gemini/extensions/bigpowers/skills/run-planning/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/scope-work/SKILL.md +2 -2
- package/.gemini/extensions/bigpowers/skills/search-skills/SKILL.md +2 -2
- package/.gemini/extensions/bigpowers/skills/security-review/SKILL.md +9 -9
- package/.gemini/extensions/bigpowers/skills/seed-conventions/SKILL.md +6 -6
- package/.gemini/extensions/bigpowers/skills/session-state/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/slice-tasks/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/stocktake-skills/SKILL.md +1 -1
- package/.gemini/extensions/bigpowers/skills/survey-context/SKILL.md +1 -1
- package/.hermes/skills/audit-code/SKILL.md +11 -3
- package/.hermes/skills/build-epic/SKILL.md +1 -1
- package/.hermes/skills/change-request/SKILL.md +2 -2
- package/.hermes/skills/commit-message/SKILL.md +1 -1
- package/.hermes/skills/compose-workflow/SKILL.md +3 -3
- package/.hermes/skills/delegate-task/SKILL.md +1 -1
- package/.hermes/skills/dispatch-agents/SKILL.md +3 -3
- package/.hermes/skills/evolve-skill/SKILL.md +3 -3
- package/.hermes/skills/kickoff-branch/SKILL.md +3 -3
- package/.hermes/skills/migrate-spec/SKILL.md +6 -6
- package/.hermes/skills/plan-work/SKILL.md +1 -1
- package/.hermes/skills/request-review/SKILL.md +12 -1
- package/.hermes/skills/research-first/SKILL.md +2 -2
- package/.hermes/skills/run-planning/SKILL.md +1 -1
- package/.hermes/skills/scope-work/SKILL.md +2 -2
- package/.hermes/skills/search-skills/SKILL.md +2 -2
- package/.hermes/skills/security-review/SKILL.md +9 -9
- package/.hermes/skills/seed-conventions/SKILL.md +6 -6
- package/.hermes/skills/session-state/SKILL.md +1 -1
- package/.hermes/skills/slice-tasks/SKILL.md +1 -1
- package/.hermes/skills/stocktake-skills/SKILL.md +1 -1
- package/.hermes/skills/survey-context/SKILL.md +1 -1
- package/.kilocode/rules/audit-code.md +11 -3
- package/.kilocode/rules/build-epic.md +1 -1
- package/.kilocode/rules/change-request.md +2 -2
- package/.kilocode/rules/commit-message.md +1 -1
- package/.kilocode/rules/compose-workflow.md +3 -3
- package/.kilocode/rules/delegate-task.md +1 -1
- package/.kilocode/rules/dispatch-agents.md +3 -3
- package/.kilocode/rules/evolve-skill.md +3 -3
- package/.kilocode/rules/kickoff-branch.md +3 -3
- package/.kilocode/rules/migrate-spec.md +6 -6
- package/.kilocode/rules/plan-work.md +1 -1
- package/.kilocode/rules/request-review.md +12 -1
- package/.kilocode/rules/research-first.md +2 -2
- package/.kilocode/rules/run-planning.md +1 -1
- package/.kilocode/rules/scope-work.md +2 -2
- package/.kilocode/rules/search-skills.md +2 -2
- package/.kilocode/rules/security-review.md +9 -9
- package/.kilocode/rules/seed-conventions.md +6 -6
- package/.kilocode/rules/session-state.md +1 -1
- package/.kilocode/rules/slice-tasks.md +1 -1
- package/.kilocode/rules/stocktake-skills.md +1 -1
- package/.kilocode/rules/survey-context.md +1 -1
- package/.mimocode/skills/audit-code/SKILL.md +11 -3
- package/.mimocode/skills/build-epic/SKILL.md +1 -1
- package/.mimocode/skills/change-request/SKILL.md +2 -2
- package/.mimocode/skills/commit-message/SKILL.md +1 -1
- package/.mimocode/skills/compose-workflow/SKILL.md +3 -3
- package/.mimocode/skills/delegate-task/SKILL.md +1 -1
- package/.mimocode/skills/dispatch-agents/SKILL.md +3 -3
- package/.mimocode/skills/evolve-skill/SKILL.md +3 -3
- package/.mimocode/skills/kickoff-branch/SKILL.md +3 -3
- package/.mimocode/skills/migrate-spec/SKILL.md +6 -6
- package/.mimocode/skills/plan-work/SKILL.md +1 -1
- package/.mimocode/skills/request-review/SKILL.md +12 -1
- package/.mimocode/skills/research-first/SKILL.md +2 -2
- package/.mimocode/skills/run-planning/SKILL.md +1 -1
- package/.mimocode/skills/scope-work/SKILL.md +2 -2
- package/.mimocode/skills/search-skills/SKILL.md +2 -2
- package/.mimocode/skills/security-review/SKILL.md +9 -9
- package/.mimocode/skills/seed-conventions/SKILL.md +6 -6
- package/.mimocode/skills/session-state/SKILL.md +1 -1
- package/.mimocode/skills/slice-tasks/SKILL.md +1 -1
- package/.mimocode/skills/stocktake-skills/SKILL.md +1 -1
- package/.mimocode/skills/survey-context/SKILL.md +1 -1
- package/.opencode/skills/audit-code/SKILL.md +11 -3
- package/.opencode/skills/build-epic/SKILL.md +1 -1
- package/.opencode/skills/change-request/SKILL.md +2 -2
- package/.opencode/skills/commit-message/SKILL.md +1 -1
- package/.opencode/skills/compose-workflow/SKILL.md +3 -3
- package/.opencode/skills/delegate-task/SKILL.md +1 -1
- package/.opencode/skills/dispatch-agents/SKILL.md +3 -3
- package/.opencode/skills/evolve-skill/SKILL.md +3 -3
- package/.opencode/skills/kickoff-branch/SKILL.md +3 -3
- package/.opencode/skills/migrate-spec/SKILL.md +6 -6
- package/.opencode/skills/plan-work/SKILL.md +1 -1
- package/.opencode/skills/request-review/SKILL.md +12 -1
- package/.opencode/skills/research-first/SKILL.md +2 -2
- package/.opencode/skills/run-planning/SKILL.md +1 -1
- package/.opencode/skills/scope-work/SKILL.md +2 -2
- package/.opencode/skills/search-skills/SKILL.md +2 -2
- package/.opencode/skills/security-review/SKILL.md +9 -9
- package/.opencode/skills/seed-conventions/SKILL.md +6 -6
- package/.opencode/skills/session-state/SKILL.md +1 -1
- package/.opencode/skills/slice-tasks/SKILL.md +1 -1
- package/.opencode/skills/stocktake-skills/SKILL.md +1 -1
- package/.opencode/skills/survey-context/SKILL.md +1 -1
- package/.pi/package.json +1 -1
- package/.pi/prompts/audit-code.md +11 -3
- package/.pi/prompts/build-epic.md +1 -1
- package/.pi/prompts/change-request.md +2 -2
- package/.pi/prompts/commit-message.md +1 -1
- package/.pi/prompts/compose-workflow.md +3 -3
- package/.pi/prompts/delegate-task.md +1 -1
- package/.pi/prompts/dispatch-agents.md +3 -3
- package/.pi/prompts/evolve-skill.md +3 -3
- package/.pi/prompts/kickoff-branch.md +3 -3
- package/.pi/prompts/migrate-spec.md +6 -6
- package/.pi/prompts/plan-work.md +1 -1
- package/.pi/prompts/request-review.md +12 -1
- package/.pi/prompts/research-first.md +2 -2
- package/.pi/prompts/run-planning.md +1 -1
- package/.pi/prompts/scope-work.md +2 -2
- package/.pi/prompts/search-skills.md +2 -2
- package/.pi/prompts/security-review.md +9 -9
- package/.pi/prompts/seed-conventions.md +6 -6
- package/.pi/prompts/session-state.md +1 -1
- package/.pi/prompts/slice-tasks.md +1 -1
- package/.pi/prompts/stocktake-skills.md +1 -1
- package/.pi/prompts/survey-context.md +1 -1
- package/.pi/skills/audit-code/SKILL.md +11 -3
- package/.pi/skills/build-epic/SKILL.md +1 -1
- package/.pi/skills/change-request/SKILL.md +2 -2
- package/.pi/skills/commit-message/SKILL.md +1 -1
- package/.pi/skills/compose-workflow/SKILL.md +3 -3
- package/.pi/skills/delegate-task/SKILL.md +1 -1
- package/.pi/skills/dispatch-agents/SKILL.md +3 -3
- package/.pi/skills/evolve-skill/SKILL.md +3 -3
- package/.pi/skills/kickoff-branch/SKILL.md +3 -3
- package/.pi/skills/migrate-spec/SKILL.md +6 -6
- package/.pi/skills/plan-work/SKILL.md +1 -1
- package/.pi/skills/request-review/SKILL.md +12 -1
- package/.pi/skills/research-first/SKILL.md +2 -2
- package/.pi/skills/run-planning/SKILL.md +1 -1
- package/.pi/skills/scope-work/SKILL.md +2 -2
- package/.pi/skills/search-skills/SKILL.md +2 -2
- package/.pi/skills/security-review/SKILL.md +9 -9
- package/.pi/skills/seed-conventions/SKILL.md +6 -6
- package/.pi/skills/session-state/SKILL.md +1 -1
- package/.pi/skills/slice-tasks/SKILL.md +1 -1
- package/.pi/skills/stocktake-skills/SKILL.md +1 -1
- package/.pi/skills/survey-context/SKILL.md +1 -1
- package/.qwen/skills/audit-code/SKILL.md +11 -3
- package/.qwen/skills/build-epic/SKILL.md +1 -1
- package/.qwen/skills/change-request/SKILL.md +2 -2
- package/.qwen/skills/commit-message/SKILL.md +1 -1
- package/.qwen/skills/compose-workflow/SKILL.md +3 -3
- package/.qwen/skills/delegate-task/SKILL.md +1 -1
- package/.qwen/skills/dispatch-agents/SKILL.md +3 -3
- package/.qwen/skills/evolve-skill/SKILL.md +3 -3
- package/.qwen/skills/kickoff-branch/SKILL.md +3 -3
- package/.qwen/skills/migrate-spec/SKILL.md +6 -6
- package/.qwen/skills/plan-work/SKILL.md +1 -1
- package/.qwen/skills/request-review/SKILL.md +12 -1
- package/.qwen/skills/research-first/SKILL.md +2 -2
- package/.qwen/skills/run-planning/SKILL.md +1 -1
- package/.qwen/skills/scope-work/SKILL.md +2 -2
- package/.qwen/skills/search-skills/SKILL.md +2 -2
- package/.qwen/skills/security-review/SKILL.md +9 -9
- package/.qwen/skills/seed-conventions/SKILL.md +6 -6
- package/.qwen/skills/session-state/SKILL.md +1 -1
- package/.qwen/skills/slice-tasks/SKILL.md +1 -1
- package/.qwen/skills/stocktake-skills/SKILL.md +1 -1
- package/.qwen/skills/survey-context/SKILL.md +1 -1
- package/.trae/skills/audit-code/SKILL.md +11 -3
- package/.trae/skills/build-epic/SKILL.md +1 -1
- package/.trae/skills/change-request/SKILL.md +2 -2
- package/.trae/skills/commit-message/SKILL.md +1 -1
- package/.trae/skills/compose-workflow/SKILL.md +3 -3
- package/.trae/skills/delegate-task/SKILL.md +1 -1
- package/.trae/skills/dispatch-agents/SKILL.md +3 -3
- package/.trae/skills/evolve-skill/SKILL.md +3 -3
- package/.trae/skills/kickoff-branch/SKILL.md +3 -3
- package/.trae/skills/migrate-spec/SKILL.md +6 -6
- package/.trae/skills/plan-work/SKILL.md +1 -1
- package/.trae/skills/request-review/SKILL.md +12 -1
- package/.trae/skills/research-first/SKILL.md +2 -2
- package/.trae/skills/run-planning/SKILL.md +1 -1
- package/.trae/skills/scope-work/SKILL.md +2 -2
- package/.trae/skills/search-skills/SKILL.md +2 -2
- package/.trae/skills/security-review/SKILL.md +9 -9
- package/.trae/skills/seed-conventions/SKILL.md +6 -6
- package/.trae/skills/session-state/SKILL.md +1 -1
- package/.trae/skills/slice-tasks/SKILL.md +1 -1
- package/.trae/skills/stocktake-skills/SKILL.md +1 -1
- package/.trae/skills/survey-context/SKILL.md +1 -1
- package/.windsurf/rules/audit-code.md +11 -3
- package/.windsurf/rules/build-epic.md +1 -1
- package/.windsurf/rules/change-request.md +2 -2
- package/.windsurf/rules/commit-message.md +1 -1
- package/.windsurf/rules/compose-workflow.md +3 -3
- package/.windsurf/rules/delegate-task.md +1 -1
- package/.windsurf/rules/dispatch-agents.md +3 -3
- package/.windsurf/rules/evolve-skill.md +3 -3
- package/.windsurf/rules/kickoff-branch.md +3 -3
- package/.windsurf/rules/migrate-spec.md +6 -6
- package/.windsurf/rules/plan-work.md +1 -1
- package/.windsurf/rules/request-review.md +12 -1
- package/.windsurf/rules/research-first.md +2 -2
- package/.windsurf/rules/run-planning.md +1 -1
- package/.windsurf/rules/scope-work.md +2 -2
- package/.windsurf/rules/search-skills.md +2 -2
- package/.windsurf/rules/security-review.md +9 -9
- package/.windsurf/rules/seed-conventions.md +6 -6
- package/.windsurf/rules/session-state.md +1 -1
- package/.windsurf/rules/slice-tasks.md +1 -1
- package/.windsurf/rules/stocktake-skills.md +1 -1
- package/.windsurf/rules/survey-context.md +1 -1
- package/.zcode/skills/audit-code/SKILL.md +11 -3
- package/.zcode/skills/build-epic/SKILL.md +1 -1
- package/.zcode/skills/change-request/SKILL.md +2 -2
- package/.zcode/skills/commit-message/SKILL.md +1 -1
- package/.zcode/skills/compose-workflow/SKILL.md +3 -3
- package/.zcode/skills/delegate-task/SKILL.md +1 -1
- package/.zcode/skills/dispatch-agents/SKILL.md +3 -3
- package/.zcode/skills/evolve-skill/SKILL.md +3 -3
- package/.zcode/skills/kickoff-branch/SKILL.md +3 -3
- package/.zcode/skills/migrate-spec/SKILL.md +6 -6
- package/.zcode/skills/plan-work/SKILL.md +1 -1
- package/.zcode/skills/request-review/SKILL.md +12 -1
- package/.zcode/skills/research-first/SKILL.md +2 -2
- package/.zcode/skills/run-planning/SKILL.md +1 -1
- package/.zcode/skills/scope-work/SKILL.md +2 -2
- package/.zcode/skills/search-skills/SKILL.md +2 -2
- package/.zcode/skills/security-review/SKILL.md +9 -9
- package/.zcode/skills/seed-conventions/SKILL.md +6 -6
- package/.zcode/skills/session-state/SKILL.md +1 -1
- package/.zcode/skills/slice-tasks/SKILL.md +1 -1
- package/.zcode/skills/stocktake-skills/SKILL.md +1 -1
- package/.zcode/skills/survey-context/SKILL.md +1 -1
- package/CHANGELOG.md +15 -0
- package/package.json +1 -1
- package/scripts/golden-g13-script-orphans.sh +7 -5
- package/scripts/lib/__pycache__/link_utils.cpython-314.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-314.pyc +0 -0
- package/scripts/lib/context-wire.sh +7 -1
- package/scripts/lib/golden-suite-gates.sh +39 -2
- package/scripts/lib/install-helpers.js +4 -0
- package/scripts/run-story-verify.sh +112 -6
- package/scripts/test-golden-gate-runner.sh +59 -0
- package/scripts/verify-tdd-red-commit.sh +3 -1
- package/skills/audit-code/SKILL.md +14 -6
- package/skills/build-epic/SKILL.md +2 -2
- package/skills/change-request/SKILL.md +2 -2
- package/skills/commit-message/SKILL.md +1 -1
- package/skills/compose-workflow/SKILL.md +3 -3
- package/skills/context7-mcp/SKILL.md +1 -1
- package/skills/craft-skill/SKILL.md +3 -3
- package/skills/deepen-architecture/SKILL.md +2 -2
- package/skills/delegate-task/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +1 -1
- package/skills/develop-tdd/SKILL.md +6 -6
- package/skills/diagnose-stall/SKILL.md +1 -1
- package/skills/dispatch-agents/SKILL.md +3 -3
- package/skills/elaborate-spec/SKILL.md +1 -1
- package/skills/enforce-first/SKILL.md +1 -1
- package/skills/evolve-skill/SKILL.md +3 -3
- package/skills/fix-bug/SKILL.md +1 -1
- package/skills/gate-trace/SKILL.md +4 -4
- package/skills/kickoff-branch/SKILL.md +3 -3
- package/skills/maintain-wiki/SKILL.md +1 -1
- package/skills/migrate-spec/SKILL.md +6 -6
- package/skills/plan-work/SKILL.md +6 -6
- package/skills/quick-fix/SKILL.md +1 -1
- package/skills/release-branch/SKILL.md +1 -1
- package/skills/request-review/SKILL.md +15 -4
- package/skills/research-first/SKILL.md +2 -2
- package/skills/run-benchmark/SKILL.md +2 -2
- package/skills/run-evals/SKILL.md +1 -1
- package/skills/run-planning/SKILL.md +1 -1
- package/skills/scope-work/SKILL.md +2 -2
- package/skills/search-skills/SKILL.md +2 -2
- package/skills/security-review/SKILL.md +9 -9
- package/skills/seed-conventions/SKILL.md +6 -6
- package/skills/session-state/SKILL.md +1 -1
- package/skills/slice-tasks/SKILL.md +1 -1
- package/skills/smoke-test/SKILL.md +1 -1
- package/skills/stocktake-skills/SKILL.md +3 -3
- package/skills/survey-context/SKILL.md +1 -1
- package/skills/validate-contracts/SKILL.md +1 -1
- package/skills/validate-fix/SKILL.md +3 -3
- package/skills-lock.json +40 -40
|
@@ -4,8 +4,8 @@ model: sonnet
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<!-- story: e45s29 -->
|
|
8
|
+
<!-- story: e20s01 -->
|
|
9
9
|
|
|
10
10
|
# Change Request
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ model: haiku
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e82s02 -->
|
|
8
8
|
|
|
9
9
|
# Commit Message
|
|
10
10
|
> **HARD GATE** — **HARD GATE** — Commits must follow Conventional Commits spec (type(scope): description). Do NOT use vague messages like 'fix' or 'updates.' The message must explain the 'why,' not the 'what.'
|
|
@@ -4,9 +4,9 @@ model: sonnet
|
|
|
4
4
|
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."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
<!-- story: e09s01 -->
|
|
8
|
+
<!-- story: e45s27 -->
|
|
9
|
+
<!-- story: e21s04 -->
|
|
10
10
|
|
|
11
11
|
# Compose Workflow
|
|
12
12
|
> **HARD GATE** — **HARD GATE** — Workflows are orchestration, not automation. Do NOT create workflows for tasks that should be single skills. Workflow complexity must be justified.
|
|
@@ -4,7 +4,7 @@ model: sonnet
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s30 -->
|
|
8
8
|
|
|
9
9
|
# Delegate Task
|
|
10
10
|
> **HARD GATE** — **HARD GATE** — Delegated work must have clear success criteria and verification commands. The delegate must be able to verify completion independently.
|
|
@@ -4,12 +4,12 @@ model: sonnet
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<!-- story: e09s04 -->
|
|
8
|
+
<!-- story: e45s38 -->
|
|
9
9
|
<!-- story: e45s11 -->
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
<!-- story: e45s30 -->
|
|
13
13
|
|
|
14
14
|
# Dispatch Agents
|
|
15
15
|
> **HARD GATE** — **HARD GATE** — Agent work must be parallelizable and have explicit synchronization points. Do NOT dispatch work that has hidden dependencies between agents.
|
|
@@ -4,10 +4,10 @@ model: opus
|
|
|
4
4
|
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."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e23s03 -->
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
<!-- story: e09s01 -->
|
|
10
|
+
<!-- story: e09s05 -->
|
|
11
11
|
|
|
12
12
|
# Evolve Skill
|
|
13
13
|
|
|
@@ -4,9 +4,9 @@ model: haiku
|
|
|
4
4
|
description: "Create an isolated Git worktree/branch or Jujutsu workspace, then verify a clean test baseline before code. Use when starting a feature or task."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
<!-- story: e51s03 -->
|
|
8
|
+
<!-- story: e20s03 -->
|
|
9
|
+
<!-- story: e82s02 -->
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
# Kickoff Branch
|
|
@@ -4,12 +4,12 @@ model: sonnet
|
|
|
4
4
|
description: "Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers YAML layout (state.yaml, release-plan.yaml, epics/, requirements/, plans/, ADRs). Use when migrating foreign spec docs."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
<!-- story: e25s01 -->
|
|
8
|
+
<!-- story: e25s02 -->
|
|
9
|
+
<!-- story: e25s03 -->
|
|
10
|
+
<!-- story: e25s04 -->
|
|
11
|
+
<!-- story: e25s05 -->
|
|
12
|
+
<!-- story: e25s06 -->
|
|
13
13
|
|
|
14
14
|
# Migrate Spec
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@ model: opus
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s29 -->
|
|
8
8
|
|
|
9
9
|
# Plan Work
|
|
10
10
|
|
|
@@ -4,12 +4,23 @@ model: opus
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s28 -->
|
|
8
8
|
|
|
9
9
|
# Request Review
|
|
10
10
|
|
|
11
11
|
Dispatch fresh reviewer agents with clean contexts. Reviewers have no shared state — they find what the coding agent missed.
|
|
12
12
|
|
|
13
|
+
## Target (argument)
|
|
14
|
+
|
|
15
|
+
If an argument was passed after `/request-review` (e.g. `/request-review abc1234` or `/request-review HEAD~3..HEAD`), use it as the diff target when building the reviewer brief:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git diff <arg> # range: abc..def, HEAD~3..HEAD
|
|
19
|
+
git show <arg> # single commit: abc1234
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If no argument was given, review uncommitted working-tree changes.
|
|
23
|
+
|
|
13
24
|
**Distinct from `audit-code`:** `audit-code` is self-review (internal). This skill dispatches external agents.
|
|
14
25
|
|
|
15
26
|
**Solo developer note:** Reviewer agents replace the human reviewer.
|
|
@@ -4,8 +4,8 @@ model: sonnet
|
|
|
4
4
|
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."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<!-- story: e03s01 -->
|
|
8
|
+
<!-- story: e21s02 -->
|
|
9
9
|
|
|
10
10
|
# Research First
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ model: sonnet
|
|
|
4
4
|
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
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e24s03 -->
|
|
8
8
|
|
|
9
9
|
# Run Planning
|
|
10
10
|
|
|
@@ -4,8 +4,8 @@ model: sonnet
|
|
|
4
4
|
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)."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<!-- story: e03s01 -->
|
|
8
|
+
<!-- story: e24s02 -->
|
|
9
9
|
|
|
10
10
|
# Scope Work
|
|
11
11
|
|
|
@@ -4,8 +4,8 @@ model: haiku
|
|
|
4
4
|
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."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<!-- story: e09s01 -->
|
|
8
|
+
<!-- story: e21s01 -->
|
|
9
9
|
|
|
10
10
|
# Search Skills
|
|
11
11
|
|
|
@@ -4,16 +4,16 @@ model: sonnet
|
|
|
4
4
|
description: "AI-powered security analysis of code changes — traces data flow, detects injection, auth bypass, secrets exposure, and unsafe deserialization across files. Use when reviewing pending changes, before release-branch, during verify-work Phase 5, during build-epic Step 0 threat modeling, or when the user says \"security review\" or \"scan for vulns\"."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s41 -->
|
|
8
8
|
<!-- story: e45s18 -->
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
<!-- story: e26s01 -->
|
|
10
|
+
<!-- story: e26s02 -->
|
|
11
|
+
<!-- story: e26s03 -->
|
|
12
|
+
<!-- story: e26s04 -->
|
|
13
|
+
<!-- story: e26s05 -->
|
|
14
|
+
<!-- story: e26s06 -->
|
|
15
|
+
<!-- story: e26s07 -->
|
|
16
|
+
<!-- story: e45s26 -->
|
|
17
17
|
|
|
18
18
|
# Security Review
|
|
19
19
|
|
|
@@ -4,12 +4,12 @@ model: sonnet
|
|
|
4
4
|
description: "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project through a brief interview, and create the specs/ directory with evolved bigpowers structure (product/, tech-architecture/, verifications/, epics/archive/). Entry point for greenfield projects. Use when starting a new project from scratch, when user asks to set up AI agent conventions, or when there is no CLAUDE.md yet."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
<!-- story: e10s01 -->
|
|
8
|
+
<!-- story: e47s02 -->
|
|
9
|
+
<!-- story: e10s02 -->
|
|
10
|
+
<!-- story: e51s02 -->
|
|
11
|
+
<!-- story: e45s21 -->
|
|
12
|
+
<!-- story: e79s03 -->
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
# Seed Conventions
|
|
@@ -4,7 +4,7 @@ model: haiku
|
|
|
4
4
|
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."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s23 -->
|
|
8
8
|
|
|
9
9
|
# Session State
|
|
10
10
|
> **HARD GATE** — **HARD GATE** — Session state must be synchronized with git state. If state.yaml conflicts with the working tree, halt and ask for clarification. Do NOT assume state is correct.
|
|
@@ -4,7 +4,7 @@ model: sonnet
|
|
|
4
4
|
description: "PLANNING SPINE STEP 2 of 3 — Slice the work: break a scoped PRD into vertical-slice stories in specs/epics/. Use after scope-work (step 1), before plan-work (step 3). Not a substitute for scope-work or plan-work."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e45s29 -->
|
|
8
8
|
|
|
9
9
|
# Slice Tasks
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ model: sonnet
|
|
|
4
4
|
description: "Sequential subagent batch audit of the bigpowers skill catalog — Quick Scan (changed only) or Full (all skills). Use during sustain phase, before a major release, or when catalog drift is suspected."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e09s01 -->
|
|
8
8
|
<!-- story: e45s12 -->
|
|
9
9
|
<!-- story: e79s04 -->
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ model: haiku
|
|
|
4
4
|
description: "Per-task context bootstrap — reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!-- story: e82s02 -->
|
|
8
8
|
|
|
9
9
|
# Survey Context
|
|
10
10
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## [2.88.13](https://github.com/danielvm-git/bigpowers/compare/v2.88.12...v2.88.13) (2026-10-25)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **ci:** cut golden suite critical path by removing duplicate gate work ([#161](https://github.com/danielvm-git/bigpowers/issues/161)) ([2db0bb9](https://github.com/danielvm-git/bigpowers/commit/2db0bb98663ae7f44e1990f06e9f90b6db60a773))
|
|
7
|
+
|
|
8
|
+
## [2.88.12](https://github.com/danielvm-git/bigpowers/compare/v2.88.11...v2.88.12) (2026-10-25)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **install,skills:** config bridge append, worktree TDD gate, story tags, audit args ([#158](https://github.com/danielvm-git/bigpowers/issues/158)) ([120a0d9](https://github.com/danielvm-git/bigpowers/commit/120a0d993df3af671c1e3acdeb78934830ee7ddd)), closes [#149](https://github.com/danielvm-git/bigpowers/issues/149) [#142](https://github.com/danielvm-git/bigpowers/issues/142) [#140](https://github.com/danielvm-git/bigpowers/issues/140) [#141](https://github.com/danielvm-git/bigpowers/issues/141)
|
|
14
|
+
* live receipts page data + restore green CI on main ([#159](https://github.com/danielvm-git/bigpowers/issues/159)) ([6136322](https://github.com/danielvm-git/bigpowers/commit/6136322a0f436be22c96f4a7a005d4744de29c29)), closes [#158](https://github.com/danielvm-git/bigpowers/issues/158)
|
|
15
|
+
|
|
1
16
|
## [2.88.11](https://github.com/danielvm-git/bigpowers/compare/v2.88.10...v2.88.11) (2026-10-25)
|
|
2
17
|
|
|
3
18
|
|
package/package.json
CHANGED
|
@@ -53,12 +53,14 @@ is_manual_utility() { # $1 = script path
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
is_referenced() { # $1 = script basename, $2... = candidate file globs already expanded
|
|
56
|
+
# One grep over all candidate files per script, not one per (script, file)
|
|
57
|
+
# pair — the per-file loop forked ~100×N greps and took ~1 min in CI.
|
|
56
58
|
local name="$1"; shift
|
|
57
59
|
local f
|
|
58
|
-
|
|
59
|
-
[[ "$f" == *"/$name" || "$
|
|
60
|
-
|
|
61
|
-
done
|
|
60
|
+
while IFS= read -r f; do
|
|
61
|
+
[[ "$f" == *"/$name" || "${f##*/}" == "$name" ]] && continue # self
|
|
62
|
+
return 0
|
|
63
|
+
done < <(grep -lF -- "$name" "$@" 2>/dev/null)
|
|
62
64
|
return 1
|
|
63
65
|
}
|
|
64
66
|
|
|
@@ -161,7 +163,7 @@ if [[ -z "$ORPHANS" ]]; then
|
|
|
161
163
|
fi
|
|
162
164
|
|
|
163
165
|
echo " orphaned scripts (present but reachable from no gate, doc, or workflow):"
|
|
164
|
-
printf '%s' "$ORPHANS"
|
|
166
|
+
printf '%s\n' "$ORPHANS"
|
|
165
167
|
echo -e "${RED}FAIL${NC} wire them into a gate, reference them from a skill/doc, tag them '# bp-manual-utility: <reason>', or delete them"
|
|
166
168
|
echo "G-13: FAIL"
|
|
167
169
|
exit 1
|
|
Binary file
|
|
Binary file
|
|
@@ -34,7 +34,13 @@ wire_config_bridge() {
|
|
|
34
34
|
if [[ -f "$bridge_file" ]] && grep -q "^${bridge_key}:" "$bridge_file" 2>/dev/null; then
|
|
35
35
|
return 0
|
|
36
36
|
fi
|
|
37
|
-
|
|
37
|
+
if [[ -f "$bridge_file" ]]; then
|
|
38
|
+
cp "$bridge_file" "${bridge_file}.bak"
|
|
39
|
+
printf '%s: %s\n' "$bridge_key" "$agents_path" >> "$bridge_file"
|
|
40
|
+
echo "install: appended ${bridge_key} to ${bridge_file} (existing content preserved; backup at ${bridge_file}.bak)"
|
|
41
|
+
else
|
|
42
|
+
printf '%s: %s\n' "$bridge_key" "$agents_path" > "$bridge_file"
|
|
43
|
+
fi
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
wire_context_mode() {
|
|
@@ -72,6 +72,8 @@ GOLDEN_GATES=(
|
|
|
72
72
|
"import-boundaries:bash scripts/check-import-boundaries.sh:false"
|
|
73
73
|
"skill-catalog:bash scripts/validate-skill-catalog.sh:false"
|
|
74
74
|
"specs-parse:bash scripts/validate-specs-yaml.sh:false"
|
|
75
|
+
# The runner itself: failing output is shown, skips are named and reasoned.
|
|
76
|
+
"golden-gate-runner:bash scripts/test-golden-gate-runner.sh:false"
|
|
75
77
|
# Tier 2 of the verify arc (#106): executes the verify: of every story marked
|
|
76
78
|
# done. Tier 1 (SKILL.md) is run-skill-verify.sh in golden-suite.yml.
|
|
77
79
|
"story-verify-selftest:bash scripts/run-story-verify.sh --self-test:false"
|
|
@@ -120,15 +122,48 @@ golden_agent_dry_run() {
|
|
|
120
122
|
return 0
|
|
121
123
|
}
|
|
122
124
|
|
|
125
|
+
# GOLDEN_SKIP_GATES (comma list) skips gates another CI job already runs —
|
|
126
|
+
# golden-suite.yml skips story-verify because its story-verify job runs the
|
|
127
|
+
# same command. Local Preflight leaves it unset, so every gate runs there. A
|
|
128
|
+
# name that matches no gate is a FAIL: a typo must not look like a skip.
|
|
129
|
+
golden_is_skipped() { # $1 = gate name
|
|
130
|
+
case ",${GOLDEN_SKIP_GATES:-}," in *",$1,"*) return 0 ;; esac
|
|
131
|
+
return 1
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
golden_check_skip_names() {
|
|
135
|
+
local skip gate known
|
|
136
|
+
for skip in $(printf '%s' "${GOLDEN_SKIP_GATES:-}" | tr ',' ' '); do
|
|
137
|
+
[[ -z "$skip" ]] && continue
|
|
138
|
+
known=false
|
|
139
|
+
for gate in "${GOLDEN_GATES[@]}"; do
|
|
140
|
+
[[ "${gate%%:*}" == "$skip" ]] && known=true
|
|
141
|
+
done
|
|
142
|
+
$known && continue
|
|
143
|
+
echo -e "[$skip] ${GOLDEN_RED}FAIL${GOLDEN_NC} (GOLDEN_SKIP_GATES names no such gate)"
|
|
144
|
+
GATE_RESULTS+=(" - name: $skip" " exit_code: 2" " duration_seconds: 0" " status: fail" " error: unknown gate in GOLDEN_SKIP_GATES")
|
|
145
|
+
(( FAIL_COUNT += 1 ))
|
|
146
|
+
done
|
|
147
|
+
}
|
|
148
|
+
|
|
123
149
|
golden_run_deterministic_gates() {
|
|
124
|
-
local gate name cmd is_optional main_cmd script_path
|
|
150
|
+
local gate name cmd is_optional main_cmd script_path gate_out
|
|
125
151
|
PASS_COUNT=0 FAIL_COUNT=0 SKIP_COUNT=0
|
|
126
152
|
GATE_RESULTS=()
|
|
153
|
+
golden_check_skip_names
|
|
127
154
|
|
|
128
155
|
for gate in "${GOLDEN_GATES[@]}"; do
|
|
129
156
|
IFS=':' read -r name cmd is_optional <<< "$gate"
|
|
130
157
|
echo -n "[$name] "
|
|
131
158
|
|
|
159
|
+
if golden_is_skipped "$name"; then
|
|
160
|
+
local reason="${GOLDEN_SKIP_REASON:-listed in GOLDEN_SKIP_GATES}"
|
|
161
|
+
echo -e "${GOLDEN_YELLOW}SKIP${GOLDEN_NC} ($reason)"
|
|
162
|
+
GATE_RESULTS+=(" - name: $name" " exit_code: skipped" " duration_seconds: 0" " status: skipped" " note: $reason")
|
|
163
|
+
(( SKIP_COUNT += 1 ))
|
|
164
|
+
continue
|
|
165
|
+
fi
|
|
166
|
+
|
|
132
167
|
main_cmd=$(echo "$cmd" | awk '{print $1}')
|
|
133
168
|
if [[ "$main_cmd" == "bash" ]]; then
|
|
134
169
|
script_path=$(echo "$cmd" | awk '{print $2}')
|
|
@@ -148,7 +183,7 @@ golden_run_deterministic_gates() {
|
|
|
148
183
|
|
|
149
184
|
local START_TIME END_TIME DURATION_MS DURATION_SEC GATE_EXIT
|
|
150
185
|
START_TIME=$(date +%s%N)
|
|
151
|
-
eval "$cmd"
|
|
186
|
+
gate_out=$(eval "$cmd" 2>&1) && GATE_EXIT=$? || GATE_EXIT=$?
|
|
152
187
|
END_TIME=$(date +%s%N)
|
|
153
188
|
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
|
154
189
|
DURATION_SEC=$(echo "scale=2; $DURATION_MS / 1000" | bc 2>/dev/null || echo "0")
|
|
@@ -159,6 +194,8 @@ golden_run_deterministic_gates() {
|
|
|
159
194
|
(( PASS_COUNT += 1 ))
|
|
160
195
|
else
|
|
161
196
|
echo -e "${GOLDEN_RED}FAIL${GOLDEN_NC} (${DURATION_SEC}s, exit $GATE_EXIT)"
|
|
197
|
+
# Without the tail, CI shows FAIL with no reason (#158: compliance).
|
|
198
|
+
printf '%s\n' "$gate_out" | tail -20 | sed 's/^/ | /'
|
|
162
199
|
GATE_RESULTS+=(" - name: $name" " exit_code: $GATE_EXIT" " duration_seconds: $DURATION_SEC" " status: fail")
|
|
163
200
|
(( FAIL_COUNT += 1 ))
|
|
164
201
|
fi
|
|
@@ -142,6 +142,10 @@ function bridgeHermesConfig(configPath) {
|
|
|
142
142
|
if (fs.existsSync(configPath)) {
|
|
143
143
|
const existing = fs.readFileSync(configPath, 'utf8');
|
|
144
144
|
if (/^instructions:/m.test(existing)) return;
|
|
145
|
+
fs.copyFileSync(configPath, configPath + '.bak');
|
|
146
|
+
fs.appendFileSync(configPath, 'instructions: AGENTS.md\n');
|
|
147
|
+
console.log(`install: appended instructions to ${configPath} (existing content preserved; backup at ${configPath}.bak)`);
|
|
148
|
+
return;
|
|
145
149
|
}
|
|
146
150
|
fs.writeFileSync(configPath, 'instructions: AGENTS.md\n');
|
|
147
151
|
}
|
|
@@ -41,7 +41,7 @@ PASS=0; FAIL=0; SKIP=0
|
|
|
41
41
|
TARGET="${1:-}"
|
|
42
42
|
|
|
43
43
|
extract_records() {
|
|
44
|
-
"$PYTHON" "$REPO_ROOT/scripts/lib/extract-story-verify.py" "$REPO_ROOT"
|
|
44
|
+
"$PYTHON" "$REPO_ROOT/scripts/lib/extract-story-verify.py" "${EXTRACT_ROOT:-$REPO_ROOT}"
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
# Report a story whose directive can never fail. Kept separate from execution so
|
|
@@ -58,6 +58,55 @@ reject_non_executable() {
|
|
|
58
58
|
FAIL=$((FAIL + 1))
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
# Many stories share one verify (e61s02…e76s02 all run the same installer
|
|
62
|
+
# test); same command at the same commit gives the same result, so run it once
|
|
63
|
+
# per gate_all and reuse the verdict for every story that declares it.
|
|
64
|
+
# Sets RUN_RC, RUN_OUT, and RUN_REUSED (1 when nothing new ran).
|
|
65
|
+
run_memoized() {
|
|
66
|
+
local cmd="$1" key
|
|
67
|
+
key=$(printf '%s' "$cmd" | cksum | tr -d ' ')
|
|
68
|
+
if [ -n "${MEMO_DIR:-}" ] && [ -f "$MEMO_DIR/$key.rc" ]; then
|
|
69
|
+
RUN_RC=$(cat "$MEMO_DIR/$key.rc")
|
|
70
|
+
RUN_OUT=$(cat "$MEMO_DIR/$key.out")
|
|
71
|
+
return 0
|
|
72
|
+
fi
|
|
73
|
+
RUN_REUSED=0
|
|
74
|
+
RUN_OUT=$(run_with_timeout "$cmd") && RUN_RC=0 || RUN_RC=$?
|
|
75
|
+
if [ -n "${MEMO_DIR:-}" ]; then
|
|
76
|
+
printf '%s' "$RUN_RC" > "$MEMO_DIR/$key.rc"
|
|
77
|
+
printf '%s' "$RUN_OUT" > "$MEMO_DIR/$key.out"
|
|
78
|
+
fi
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# A plain `a && b && c` chain shares no shell state between segments when it
|
|
82
|
+
# has no quoting, expansion, grouping, pipes, `;`, cd, export or assignment —
|
|
83
|
+
# so each segment can be cached on its own (test-adapter-render.sh prefixes ten
|
|
84
|
+
# different story verifies). Anything else is cached as one whole command.
|
|
85
|
+
is_plain_and_chain() {
|
|
86
|
+
case "$1" in
|
|
87
|
+
*\'*|*\"*|*\$*|*\`*|*\(*|*\)*|*\{*|*\}*|*\|*|*\;*|*=*|*\<*) return 1 ;;
|
|
88
|
+
esac
|
|
89
|
+
printf '%s' "$1" | grep -qE '(^|&&)[[:space:]]*(cd|export|source|\.)[[:space:]]' && return 1
|
|
90
|
+
return 0
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
run_verify_cmd() {
|
|
94
|
+
local cmd="$1" seg
|
|
95
|
+
RUN_REUSED=1
|
|
96
|
+
if ! is_plain_and_chain "$cmd"; then
|
|
97
|
+
run_memoized "$cmd"
|
|
98
|
+
return
|
|
99
|
+
fi
|
|
100
|
+
local rest="$cmd"
|
|
101
|
+
while :; do
|
|
102
|
+
seg=${rest%%&&*}
|
|
103
|
+
run_memoized "$(printf '%s' "$seg" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
|
|
104
|
+
[ "$RUN_RC" -eq 0 ] || return
|
|
105
|
+
[ "$seg" = "$rest" ] && return
|
|
106
|
+
rest=${rest#*&&}
|
|
107
|
+
done
|
|
108
|
+
}
|
|
109
|
+
|
|
61
110
|
run_story_verify() {
|
|
62
111
|
local sid="$1" src="$2" cmd="$3"
|
|
63
112
|
|
|
@@ -70,20 +119,23 @@ run_story_verify() {
|
|
|
70
119
|
return 1
|
|
71
120
|
fi
|
|
72
121
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
122
|
+
run_verify_cmd "$cmd"
|
|
123
|
+
local note=""
|
|
124
|
+
[ "$RUN_REUSED" -eq 1 ] && note=" (shared result)"
|
|
125
|
+
if [ "$RUN_RC" -eq 0 ]; then
|
|
126
|
+
echo "PASS: $sid$note"
|
|
76
127
|
PASS=$((PASS + 1))
|
|
77
128
|
return 0
|
|
78
129
|
fi
|
|
79
|
-
echo "FAIL: $sid [$src] — $cmd"
|
|
80
|
-
echo " output: $(echo "$
|
|
130
|
+
echo "FAIL: $sid [$src]$note — $cmd"
|
|
131
|
+
echo " output: $(echo "$RUN_OUT" | tail -3 | tr '\n' ' ')"
|
|
81
132
|
FAIL=$((FAIL + 1))
|
|
82
133
|
return 1
|
|
83
134
|
}
|
|
84
135
|
|
|
85
136
|
gate_all() {
|
|
86
137
|
local sid src status cmd
|
|
138
|
+
MEMO_DIR=$(mktemp -d)
|
|
87
139
|
while IFS=$'\t' read -r sid src status cmd; do
|
|
88
140
|
[ -z "${sid:-}" ] && continue
|
|
89
141
|
if [ -n "$TARGET" ] && [ "$sid" != "$TARGET" ]; then
|
|
@@ -96,6 +148,58 @@ gate_all() {
|
|
|
96
148
|
fi
|
|
97
149
|
run_story_verify "$sid" "$src" "$cmd" || true
|
|
98
150
|
done < <(extract_records)
|
|
151
|
+
rm -rf "$MEMO_DIR"
|
|
152
|
+
MEMO_DIR=""
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# Shared-command proof: stories that declare the same verify run it once, yet
|
|
156
|
+
# each story still gets its own verdict — a failing shared command fails every
|
|
157
|
+
# story that declares it, never just the first.
|
|
158
|
+
self_test_shared_commands() {
|
|
159
|
+
local root="$1/shared" out runs
|
|
160
|
+
mkdir -p "$root/specs/epics/e98-shared"
|
|
161
|
+
cat > "$root/specs/epics/e98-shared/epic.yaml" <<YAML
|
|
162
|
+
id: e98
|
|
163
|
+
title: shared-command capsule
|
|
164
|
+
stories:
|
|
165
|
+
- id: e98s01
|
|
166
|
+
status: done
|
|
167
|
+
verify: printf x >> $root/ok-runs && test -d $root/specs
|
|
168
|
+
- id: e98s02
|
|
169
|
+
status: done
|
|
170
|
+
verify: printf x >> $root/ok-runs && test -d $root/specs
|
|
171
|
+
- id: e98s03
|
|
172
|
+
status: done
|
|
173
|
+
verify: printf x >> $root/bad-runs && test -f $root/missing
|
|
174
|
+
- id: e98s04
|
|
175
|
+
status: done
|
|
176
|
+
verify: printf x >> $root/bad-runs && test -f $root/missing
|
|
177
|
+
- id: e98s05
|
|
178
|
+
status: done
|
|
179
|
+
verify: printf x >> $root/seg-runs && test -d $root/specs
|
|
180
|
+
- id: e98s06
|
|
181
|
+
status: done
|
|
182
|
+
verify: printf x >> $root/seg-runs && test -d $root/specs/epics
|
|
183
|
+
- id: e98s07
|
|
184
|
+
status: done
|
|
185
|
+
verify: printf x >> $root/seg-runs && test -f $root/missing
|
|
186
|
+
YAML
|
|
187
|
+
out=$(EXTRACT_ROOT="$root" TARGET="" PASS=0 FAIL=0 SKIP=0 gate_all)
|
|
188
|
+
local problems=0
|
|
189
|
+
runs=$(wc -c < "$root/ok-runs" | tr -d ' ')
|
|
190
|
+
[ "$runs" = "1" ] || { echo "FAIL: self-test — shared passing command ran $runs times, want 1"; problems=$((problems + 1)); }
|
|
191
|
+
runs=$(wc -c < "$root/bad-runs" | tr -d ' ')
|
|
192
|
+
[ "$runs" = "1" ] || { echo "FAIL: self-test — shared failing command ran $runs times, want 1"; problems=$((problems + 1)); }
|
|
193
|
+
runs=$(wc -c < "$root/seg-runs" | tr -d ' ')
|
|
194
|
+
[ "$runs" = "1" ] || { echo "FAIL: self-test — shared && segment ran $runs times, want 1"; problems=$((problems + 1)); }
|
|
195
|
+
local sid
|
|
196
|
+
for sid in e98s01 e98s02 e98s05 e98s06; do
|
|
197
|
+
echo "$out" | grep -q "^PASS: $sid" || { echo "FAIL: self-test — $sid not reported PASS"; problems=$((problems + 1)); }
|
|
198
|
+
done
|
|
199
|
+
for sid in e98s03 e98s04 e98s07; do
|
|
200
|
+
echo "$out" | grep -q "^FAIL: $sid" || { echo "FAIL: self-test — $sid not reported FAIL"; problems=$((problems + 1)); }
|
|
201
|
+
done
|
|
202
|
+
[ "$problems" -eq 0 ]
|
|
99
203
|
}
|
|
100
204
|
|
|
101
205
|
# Anti-vacuity proof: seed a capsule whose done story must fail, and one that
|
|
@@ -178,6 +282,8 @@ EOF
|
|
|
178
282
|
rm -rf "$tmp_root"
|
|
179
283
|
trap - EXIT
|
|
180
284
|
|
|
285
|
+
self_test_shared_commands "$tmp_root" || problems=$((problems + 1))
|
|
286
|
+
|
|
181
287
|
if [ "$checked" -lt 5 ]; then
|
|
182
288
|
echo "FAIL: self-test — extractor found $checked/5 fixture stories"
|
|
183
289
|
return 1
|