bigpowers 2.84.1 → 2.85.1
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/assess-impact/SKILL.md +3 -3
- package/.agents/skills/audit-code/SKILL.md +1 -1
- package/.agents/skills/audit-plan/SKILL.md +1 -1
- package/.agents/skills/build-epic/SKILL.md +1 -1
- package/.agents/skills/change-request/SKILL.md +1 -1
- package/.agents/skills/compose-workflow/SKILL.md +1 -1
- package/.agents/skills/context7-mcp/SKILL.md +1 -1
- package/.agents/skills/craft-skill/SKILL.md +22 -5
- package/.agents/skills/deepen-architecture/SKILL.md +1 -1
- package/.agents/skills/deploy/SKILL.md +1 -1
- package/.agents/skills/diagnose-root/SKILL.md +1 -1
- package/.agents/skills/diagnose-stall/SKILL.md +1 -1
- package/.agents/skills/dispatch-agents/SKILL.md +1 -1
- package/.agents/skills/evolve-skill/SKILL.md +1 -1
- package/.agents/skills/grill-with-docs/SKILL.md +1 -1
- package/.agents/skills/harden-vps/SKILL.md +1 -1
- package/.agents/skills/maintain-wiki/SKILL.md +1 -1
- package/.agents/skills/migrate-spec/SKILL.md +2 -2
- package/.agents/skills/plan-tests/SKILL.md +1 -1
- package/.agents/skills/publish-package/SKILL.md +2 -2
- package/.agents/skills/release-branch/SKILL.md +1 -1
- package/.agents/skills/request-review/SKILL.md +1 -1
- package/.agents/skills/research-first/SKILL.md +1 -1
- package/.agents/skills/reset-baseline/SKILL.md +1 -1
- package/.agents/skills/run-evals/SKILL.md +1 -1
- package/.agents/skills/run-planning/SKILL.md +1 -1
- package/.agents/skills/scope-work/SKILL.md +1 -1
- package/.agents/skills/search-skills/SKILL.md +1 -1
- package/.agents/skills/security-review/SKILL.md +2 -4
- package/.agents/skills/seed-conventions/SKILL.md +21 -4
- package/.agents/skills/setup-environment/SKILL.md +1 -1
- package/.agents/skills/simulate-agents/SKILL.md +1 -1
- package/.agents/skills/slice-tasks/SKILL.md +1 -1
- package/.agents/skills/stocktake-skills/SKILL.md +3 -1
- package/.agents/skills/survey-context/SKILL.md +1 -1
- package/.agents/skills/trace-requirement/SKILL.md +2 -2
- package/.agents/skills/verify-work/SKILL.md +1 -1
- package/.agents/skills/wire-ci/SKILL.md +2 -2
- package/.agents/skills/write-document/SKILL.md +1 -1
- package/.codebuddy/skills/assess-impact/SKILL.md +3 -3
- package/.codebuddy/skills/audit-code/SKILL.md +1 -1
- package/.codebuddy/skills/audit-plan/SKILL.md +1 -1
- package/.codebuddy/skills/build-epic/SKILL.md +1 -1
- package/.codebuddy/skills/change-request/SKILL.md +1 -1
- package/.codebuddy/skills/compose-workflow/SKILL.md +1 -1
- package/.codebuddy/skills/context7-mcp/SKILL.md +1 -1
- package/.codebuddy/skills/craft-skill/SKILL.md +22 -5
- package/.codebuddy/skills/deepen-architecture/SKILL.md +1 -1
- package/.codebuddy/skills/deploy/SKILL.md +1 -1
- package/.codebuddy/skills/diagnose-root/SKILL.md +1 -1
- package/.codebuddy/skills/diagnose-stall/SKILL.md +1 -1
- package/.codebuddy/skills/dispatch-agents/SKILL.md +1 -1
- package/.codebuddy/skills/evolve-skill/SKILL.md +1 -1
- package/.codebuddy/skills/grill-with-docs/SKILL.md +1 -1
- package/.codebuddy/skills/harden-vps/SKILL.md +1 -1
- package/.codebuddy/skills/maintain-wiki/SKILL.md +1 -1
- package/.codebuddy/skills/migrate-spec/SKILL.md +2 -2
- package/.codebuddy/skills/plan-tests/SKILL.md +1 -1
- package/.codebuddy/skills/publish-package/SKILL.md +2 -2
- package/.codebuddy/skills/release-branch/SKILL.md +1 -1
- package/.codebuddy/skills/request-review/SKILL.md +1 -1
- package/.codebuddy/skills/research-first/SKILL.md +1 -1
- package/.codebuddy/skills/reset-baseline/SKILL.md +1 -1
- package/.codebuddy/skills/run-evals/SKILL.md +1 -1
- package/.codebuddy/skills/run-planning/SKILL.md +1 -1
- package/.codebuddy/skills/scope-work/SKILL.md +1 -1
- package/.codebuddy/skills/search-skills/SKILL.md +1 -1
- package/.codebuddy/skills/security-review/SKILL.md +2 -4
- package/.codebuddy/skills/seed-conventions/SKILL.md +21 -4
- package/.codebuddy/skills/setup-environment/SKILL.md +1 -1
- package/.codebuddy/skills/simulate-agents/SKILL.md +1 -1
- package/.codebuddy/skills/slice-tasks/SKILL.md +1 -1
- package/.codebuddy/skills/stocktake-skills/SKILL.md +3 -1
- package/.codebuddy/skills/survey-context/SKILL.md +1 -1
- package/.codebuddy/skills/trace-requirement/SKILL.md +2 -2
- package/.codebuddy/skills/verify-work/SKILL.md +1 -1
- package/.codebuddy/skills/wire-ci/SKILL.md +2 -2
- package/.codebuddy/skills/write-document/SKILL.md +1 -1
- package/.codex/skills/assess-impact/SKILL.md +3 -3
- package/.codex/skills/audit-code/SKILL.md +1 -1
- package/.codex/skills/audit-plan/SKILL.md +1 -1
- package/.codex/skills/build-epic/SKILL.md +1 -1
- package/.codex/skills/change-request/SKILL.md +1 -1
- package/.codex/skills/compose-workflow/SKILL.md +1 -1
- package/.codex/skills/context7-mcp/SKILL.md +1 -1
- package/.codex/skills/craft-skill/SKILL.md +22 -5
- package/.codex/skills/deepen-architecture/SKILL.md +1 -1
- package/.codex/skills/deploy/SKILL.md +1 -1
- package/.codex/skills/diagnose-root/SKILL.md +1 -1
- package/.codex/skills/diagnose-stall/SKILL.md +1 -1
- package/.codex/skills/dispatch-agents/SKILL.md +1 -1
- package/.codex/skills/evolve-skill/SKILL.md +1 -1
- package/.codex/skills/grill-with-docs/SKILL.md +1 -1
- package/.codex/skills/harden-vps/SKILL.md +1 -1
- package/.codex/skills/maintain-wiki/SKILL.md +1 -1
- package/.codex/skills/migrate-spec/SKILL.md +2 -2
- package/.codex/skills/plan-tests/SKILL.md +1 -1
- package/.codex/skills/publish-package/SKILL.md +2 -2
- package/.codex/skills/release-branch/SKILL.md +1 -1
- package/.codex/skills/request-review/SKILL.md +1 -1
- package/.codex/skills/research-first/SKILL.md +1 -1
- package/.codex/skills/reset-baseline/SKILL.md +1 -1
- package/.codex/skills/run-evals/SKILL.md +1 -1
- package/.codex/skills/run-planning/SKILL.md +1 -1
- package/.codex/skills/scope-work/SKILL.md +1 -1
- package/.codex/skills/search-skills/SKILL.md +1 -1
- package/.codex/skills/security-review/SKILL.md +2 -4
- package/.codex/skills/seed-conventions/SKILL.md +21 -4
- package/.codex/skills/setup-environment/SKILL.md +1 -1
- package/.codex/skills/simulate-agents/SKILL.md +1 -1
- package/.codex/skills/slice-tasks/SKILL.md +1 -1
- package/.codex/skills/stocktake-skills/SKILL.md +3 -1
- package/.codex/skills/survey-context/SKILL.md +1 -1
- package/.codex/skills/trace-requirement/SKILL.md +2 -2
- package/.codex/skills/verify-work/SKILL.md +1 -1
- package/.codex/skills/wire-ci/SKILL.md +2 -2
- package/.codex/skills/write-document/SKILL.md +1 -1
- package/.hermes/skills/assess-impact/SKILL.md +3 -3
- package/.hermes/skills/audit-code/SKILL.md +1 -1
- package/.hermes/skills/audit-plan/SKILL.md +1 -1
- package/.hermes/skills/build-epic/SKILL.md +1 -1
- package/.hermes/skills/change-request/SKILL.md +1 -1
- package/.hermes/skills/compose-workflow/SKILL.md +1 -1
- package/.hermes/skills/context7-mcp/SKILL.md +1 -1
- package/.hermes/skills/craft-skill/SKILL.md +22 -5
- package/.hermes/skills/deepen-architecture/SKILL.md +1 -1
- package/.hermes/skills/deploy/SKILL.md +1 -1
- package/.hermes/skills/diagnose-root/SKILL.md +1 -1
- package/.hermes/skills/diagnose-stall/SKILL.md +1 -1
- package/.hermes/skills/dispatch-agents/SKILL.md +1 -1
- package/.hermes/skills/evolve-skill/SKILL.md +1 -1
- package/.hermes/skills/grill-with-docs/SKILL.md +1 -1
- package/.hermes/skills/harden-vps/SKILL.md +1 -1
- package/.hermes/skills/maintain-wiki/SKILL.md +1 -1
- package/.hermes/skills/migrate-spec/SKILL.md +2 -2
- package/.hermes/skills/plan-tests/SKILL.md +1 -1
- package/.hermes/skills/publish-package/SKILL.md +2 -2
- package/.hermes/skills/release-branch/SKILL.md +1 -1
- package/.hermes/skills/request-review/SKILL.md +1 -1
- package/.hermes/skills/research-first/SKILL.md +1 -1
- package/.hermes/skills/reset-baseline/SKILL.md +1 -1
- package/.hermes/skills/run-evals/SKILL.md +1 -1
- package/.hermes/skills/run-planning/SKILL.md +1 -1
- package/.hermes/skills/scope-work/SKILL.md +1 -1
- package/.hermes/skills/search-skills/SKILL.md +1 -1
- package/.hermes/skills/security-review/SKILL.md +2 -4
- package/.hermes/skills/seed-conventions/SKILL.md +21 -4
- package/.hermes/skills/setup-environment/SKILL.md +1 -1
- package/.hermes/skills/simulate-agents/SKILL.md +1 -1
- package/.hermes/skills/slice-tasks/SKILL.md +1 -1
- package/.hermes/skills/stocktake-skills/SKILL.md +3 -1
- package/.hermes/skills/survey-context/SKILL.md +1 -1
- package/.hermes/skills/trace-requirement/SKILL.md +2 -2
- package/.hermes/skills/verify-work/SKILL.md +1 -1
- package/.hermes/skills/wire-ci/SKILL.md +2 -2
- package/.hermes/skills/write-document/SKILL.md +1 -1
- package/.kilocode/rules/assess-impact.md +3 -3
- package/.kilocode/rules/audit-code.md +1 -1
- package/.kilocode/rules/audit-plan.md +1 -1
- package/.kilocode/rules/build-epic.md +1 -1
- package/.kilocode/rules/change-request.md +1 -1
- package/.kilocode/rules/compose-workflow.md +1 -1
- package/.kilocode/rules/context7-mcp.md +1 -1
- package/.kilocode/rules/craft-skill.md +22 -5
- package/.kilocode/rules/deepen-architecture.md +1 -1
- package/.kilocode/rules/deploy.md +1 -1
- package/.kilocode/rules/diagnose-root.md +1 -1
- package/.kilocode/rules/diagnose-stall.md +1 -1
- package/.kilocode/rules/dispatch-agents.md +1 -1
- package/.kilocode/rules/evolve-skill.md +1 -1
- package/.kilocode/rules/grill-with-docs.md +1 -1
- package/.kilocode/rules/harden-vps.md +1 -1
- package/.kilocode/rules/maintain-wiki.md +1 -1
- package/.kilocode/rules/migrate-spec.md +2 -2
- package/.kilocode/rules/plan-tests.md +1 -1
- package/.kilocode/rules/publish-package.md +2 -2
- package/.kilocode/rules/release-branch.md +1 -1
- package/.kilocode/rules/request-review.md +1 -1
- package/.kilocode/rules/research-first.md +1 -1
- package/.kilocode/rules/reset-baseline.md +1 -1
- package/.kilocode/rules/run-evals.md +1 -1
- package/.kilocode/rules/run-planning.md +1 -1
- package/.kilocode/rules/scope-work.md +1 -1
- package/.kilocode/rules/search-skills.md +1 -1
- package/.kilocode/rules/security-review.md +2 -4
- package/.kilocode/rules/seed-conventions.md +21 -4
- package/.kilocode/rules/setup-environment.md +1 -1
- package/.kilocode/rules/simulate-agents.md +1 -1
- package/.kilocode/rules/slice-tasks.md +1 -1
- package/.kilocode/rules/stocktake-skills.md +3 -1
- package/.kilocode/rules/survey-context.md +1 -1
- package/.kilocode/rules/trace-requirement.md +2 -2
- package/.kilocode/rules/verify-work.md +1 -1
- package/.kilocode/rules/wire-ci.md +2 -2
- package/.kilocode/rules/write-document.md +1 -1
- package/.mimocode/skills/assess-impact/SKILL.md +3 -3
- package/.mimocode/skills/audit-code/SKILL.md +1 -1
- package/.mimocode/skills/audit-plan/SKILL.md +1 -1
- package/.mimocode/skills/build-epic/SKILL.md +1 -1
- package/.mimocode/skills/change-request/SKILL.md +1 -1
- package/.mimocode/skills/compose-workflow/SKILL.md +1 -1
- package/.mimocode/skills/context7-mcp/SKILL.md +1 -1
- package/.mimocode/skills/craft-skill/SKILL.md +22 -5
- package/.mimocode/skills/deepen-architecture/SKILL.md +1 -1
- package/.mimocode/skills/deploy/SKILL.md +1 -1
- package/.mimocode/skills/diagnose-root/SKILL.md +1 -1
- package/.mimocode/skills/diagnose-stall/SKILL.md +1 -1
- package/.mimocode/skills/dispatch-agents/SKILL.md +1 -1
- package/.mimocode/skills/evolve-skill/SKILL.md +1 -1
- package/.mimocode/skills/grill-with-docs/SKILL.md +1 -1
- package/.mimocode/skills/harden-vps/SKILL.md +1 -1
- package/.mimocode/skills/maintain-wiki/SKILL.md +1 -1
- package/.mimocode/skills/migrate-spec/SKILL.md +2 -2
- package/.mimocode/skills/plan-tests/SKILL.md +1 -1
- package/.mimocode/skills/publish-package/SKILL.md +2 -2
- package/.mimocode/skills/release-branch/SKILL.md +1 -1
- package/.mimocode/skills/request-review/SKILL.md +1 -1
- package/.mimocode/skills/research-first/SKILL.md +1 -1
- package/.mimocode/skills/reset-baseline/SKILL.md +1 -1
- package/.mimocode/skills/run-evals/SKILL.md +1 -1
- package/.mimocode/skills/run-planning/SKILL.md +1 -1
- package/.mimocode/skills/scope-work/SKILL.md +1 -1
- package/.mimocode/skills/search-skills/SKILL.md +1 -1
- package/.mimocode/skills/security-review/SKILL.md +2 -4
- package/.mimocode/skills/seed-conventions/SKILL.md +21 -4
- package/.mimocode/skills/setup-environment/SKILL.md +1 -1
- package/.mimocode/skills/simulate-agents/SKILL.md +1 -1
- package/.mimocode/skills/slice-tasks/SKILL.md +1 -1
- package/.mimocode/skills/stocktake-skills/SKILL.md +3 -1
- package/.mimocode/skills/survey-context/SKILL.md +1 -1
- package/.mimocode/skills/trace-requirement/SKILL.md +2 -2
- package/.mimocode/skills/verify-work/SKILL.md +1 -1
- package/.mimocode/skills/wire-ci/SKILL.md +2 -2
- package/.mimocode/skills/write-document/SKILL.md +1 -1
- package/.pi/package.json +1 -1
- package/.pi/prompts/assess-impact.md +3 -3
- package/.pi/prompts/audit-code.md +1 -1
- package/.pi/prompts/audit-plan.md +1 -1
- package/.pi/prompts/build-epic.md +1 -1
- package/.pi/prompts/change-request.md +1 -1
- package/.pi/prompts/compose-workflow.md +1 -1
- package/.pi/prompts/context7-mcp.md +1 -1
- package/.pi/prompts/craft-skill.md +22 -5
- package/.pi/prompts/deepen-architecture.md +1 -1
- package/.pi/prompts/deploy.md +1 -1
- package/.pi/prompts/diagnose-root.md +1 -1
- package/.pi/prompts/diagnose-stall.md +1 -1
- package/.pi/prompts/dispatch-agents.md +1 -1
- package/.pi/prompts/evolve-skill.md +1 -1
- package/.pi/prompts/grill-with-docs.md +1 -1
- package/.pi/prompts/harden-vps.md +1 -1
- package/.pi/prompts/maintain-wiki.md +1 -1
- package/.pi/prompts/migrate-spec.md +2 -2
- package/.pi/prompts/plan-tests.md +1 -1
- package/.pi/prompts/publish-package.md +2 -2
- package/.pi/prompts/release-branch.md +1 -1
- package/.pi/prompts/request-review.md +1 -1
- package/.pi/prompts/research-first.md +1 -1
- package/.pi/prompts/reset-baseline.md +1 -1
- package/.pi/prompts/run-evals.md +1 -1
- package/.pi/prompts/run-planning.md +1 -1
- package/.pi/prompts/scope-work.md +1 -1
- package/.pi/prompts/search-skills.md +1 -1
- package/.pi/prompts/security-review.md +2 -4
- package/.pi/prompts/seed-conventions.md +21 -4
- package/.pi/prompts/setup-environment.md +1 -1
- package/.pi/prompts/simulate-agents.md +1 -1
- package/.pi/prompts/slice-tasks.md +1 -1
- package/.pi/prompts/stocktake-skills.md +3 -1
- package/.pi/prompts/survey-context.md +1 -1
- package/.pi/prompts/trace-requirement.md +2 -2
- package/.pi/prompts/verify-work.md +1 -1
- package/.pi/prompts/wire-ci.md +2 -2
- package/.pi/prompts/write-document.md +1 -1
- package/.pi/skills/assess-impact/SKILL.md +3 -3
- package/.pi/skills/audit-code/SKILL.md +1 -1
- package/.pi/skills/audit-plan/SKILL.md +1 -1
- package/.pi/skills/build-epic/SKILL.md +1 -1
- package/.pi/skills/change-request/SKILL.md +1 -1
- package/.pi/skills/compose-workflow/SKILL.md +1 -1
- package/.pi/skills/context7-mcp/SKILL.md +1 -1
- package/.pi/skills/craft-skill/SKILL.md +22 -5
- package/.pi/skills/deepen-architecture/SKILL.md +1 -1
- package/.pi/skills/deploy/SKILL.md +1 -1
- package/.pi/skills/diagnose-root/SKILL.md +1 -1
- package/.pi/skills/diagnose-stall/SKILL.md +1 -1
- package/.pi/skills/dispatch-agents/SKILL.md +1 -1
- package/.pi/skills/evolve-skill/SKILL.md +1 -1
- package/.pi/skills/grill-with-docs/SKILL.md +1 -1
- package/.pi/skills/harden-vps/SKILL.md +1 -1
- package/.pi/skills/maintain-wiki/SKILL.md +1 -1
- package/.pi/skills/migrate-spec/SKILL.md +2 -2
- package/.pi/skills/plan-tests/SKILL.md +1 -1
- package/.pi/skills/publish-package/SKILL.md +2 -2
- package/.pi/skills/release-branch/SKILL.md +1 -1
- package/.pi/skills/request-review/SKILL.md +1 -1
- package/.pi/skills/research-first/SKILL.md +1 -1
- package/.pi/skills/reset-baseline/SKILL.md +1 -1
- package/.pi/skills/run-evals/SKILL.md +1 -1
- package/.pi/skills/run-planning/SKILL.md +1 -1
- package/.pi/skills/scope-work/SKILL.md +1 -1
- package/.pi/skills/search-skills/SKILL.md +1 -1
- package/.pi/skills/security-review/SKILL.md +2 -4
- package/.pi/skills/seed-conventions/SKILL.md +21 -4
- package/.pi/skills/setup-environment/SKILL.md +1 -1
- package/.pi/skills/simulate-agents/SKILL.md +1 -1
- package/.pi/skills/slice-tasks/SKILL.md +1 -1
- package/.pi/skills/stocktake-skills/SKILL.md +3 -1
- package/.pi/skills/survey-context/SKILL.md +1 -1
- package/.pi/skills/trace-requirement/SKILL.md +2 -2
- package/.pi/skills/verify-work/SKILL.md +1 -1
- package/.pi/skills/wire-ci/SKILL.md +2 -2
- package/.pi/skills/write-document/SKILL.md +1 -1
- package/.trae/skills/assess-impact/SKILL.md +3 -3
- package/.trae/skills/audit-code/SKILL.md +1 -1
- package/.trae/skills/audit-plan/SKILL.md +1 -1
- package/.trae/skills/build-epic/SKILL.md +1 -1
- package/.trae/skills/change-request/SKILL.md +1 -1
- package/.trae/skills/compose-workflow/SKILL.md +1 -1
- package/.trae/skills/context7-mcp/SKILL.md +1 -1
- package/.trae/skills/craft-skill/SKILL.md +22 -5
- package/.trae/skills/deepen-architecture/SKILL.md +1 -1
- package/.trae/skills/deploy/SKILL.md +1 -1
- package/.trae/skills/diagnose-root/SKILL.md +1 -1
- package/.trae/skills/diagnose-stall/SKILL.md +1 -1
- package/.trae/skills/dispatch-agents/SKILL.md +1 -1
- package/.trae/skills/evolve-skill/SKILL.md +1 -1
- package/.trae/skills/grill-with-docs/SKILL.md +1 -1
- package/.trae/skills/harden-vps/SKILL.md +1 -1
- package/.trae/skills/maintain-wiki/SKILL.md +1 -1
- package/.trae/skills/migrate-spec/SKILL.md +2 -2
- package/.trae/skills/plan-tests/SKILL.md +1 -1
- package/.trae/skills/publish-package/SKILL.md +2 -2
- package/.trae/skills/release-branch/SKILL.md +1 -1
- package/.trae/skills/request-review/SKILL.md +1 -1
- package/.trae/skills/research-first/SKILL.md +1 -1
- package/.trae/skills/reset-baseline/SKILL.md +1 -1
- package/.trae/skills/run-evals/SKILL.md +1 -1
- package/.trae/skills/run-planning/SKILL.md +1 -1
- package/.trae/skills/scope-work/SKILL.md +1 -1
- package/.trae/skills/search-skills/SKILL.md +1 -1
- package/.trae/skills/security-review/SKILL.md +2 -4
- package/.trae/skills/seed-conventions/SKILL.md +21 -4
- package/.trae/skills/setup-environment/SKILL.md +1 -1
- package/.trae/skills/simulate-agents/SKILL.md +1 -1
- package/.trae/skills/slice-tasks/SKILL.md +1 -1
- package/.trae/skills/stocktake-skills/SKILL.md +3 -1
- package/.trae/skills/survey-context/SKILL.md +1 -1
- package/.trae/skills/trace-requirement/SKILL.md +2 -2
- package/.trae/skills/verify-work/SKILL.md +1 -1
- package/.trae/skills/wire-ci/SKILL.md +2 -2
- package/.trae/skills/write-document/SKILL.md +1 -1
- package/.windsurf/rules/assess-impact.md +3 -3
- package/.windsurf/rules/audit-code.md +1 -1
- package/.windsurf/rules/audit-plan.md +1 -1
- package/.windsurf/rules/build-epic.md +1 -1
- package/.windsurf/rules/change-request.md +1 -1
- package/.windsurf/rules/compose-workflow.md +1 -1
- package/.windsurf/rules/context7-mcp.md +1 -1
- package/.windsurf/rules/craft-skill.md +22 -5
- package/.windsurf/rules/deepen-architecture.md +1 -1
- package/.windsurf/rules/deploy.md +1 -1
- package/.windsurf/rules/diagnose-root.md +1 -1
- package/.windsurf/rules/diagnose-stall.md +1 -1
- package/.windsurf/rules/dispatch-agents.md +1 -1
- package/.windsurf/rules/evolve-skill.md +1 -1
- package/.windsurf/rules/grill-with-docs.md +1 -1
- package/.windsurf/rules/harden-vps.md +1 -1
- package/.windsurf/rules/maintain-wiki.md +1 -1
- package/.windsurf/rules/migrate-spec.md +2 -2
- package/.windsurf/rules/plan-tests.md +1 -1
- package/.windsurf/rules/publish-package.md +2 -2
- package/.windsurf/rules/release-branch.md +1 -1
- package/.windsurf/rules/request-review.md +1 -1
- package/.windsurf/rules/research-first.md +1 -1
- package/.windsurf/rules/reset-baseline.md +1 -1
- package/.windsurf/rules/run-evals.md +1 -1
- package/.windsurf/rules/run-planning.md +1 -1
- package/.windsurf/rules/scope-work.md +1 -1
- package/.windsurf/rules/search-skills.md +1 -1
- package/.windsurf/rules/security-review.md +2 -4
- package/.windsurf/rules/seed-conventions.md +21 -4
- package/.windsurf/rules/setup-environment.md +1 -1
- package/.windsurf/rules/simulate-agents.md +1 -1
- package/.windsurf/rules/slice-tasks.md +1 -1
- package/.windsurf/rules/stocktake-skills.md +3 -1
- package/.windsurf/rules/survey-context.md +1 -1
- package/.windsurf/rules/trace-requirement.md +2 -2
- package/.windsurf/rules/verify-work.md +1 -1
- package/.windsurf/rules/wire-ci.md +2 -2
- package/.windsurf/rules/write-document.md +1 -1
- package/.zcode/skills/assess-impact/SKILL.md +3 -3
- package/.zcode/skills/audit-code/SKILL.md +1 -1
- package/.zcode/skills/audit-plan/SKILL.md +1 -1
- package/.zcode/skills/build-epic/SKILL.md +1 -1
- package/.zcode/skills/change-request/SKILL.md +1 -1
- package/.zcode/skills/compose-workflow/SKILL.md +1 -1
- package/.zcode/skills/context7-mcp/SKILL.md +1 -1
- package/.zcode/skills/craft-skill/SKILL.md +22 -5
- package/.zcode/skills/deepen-architecture/SKILL.md +1 -1
- package/.zcode/skills/deploy/SKILL.md +1 -1
- package/.zcode/skills/diagnose-root/SKILL.md +1 -1
- package/.zcode/skills/diagnose-stall/SKILL.md +1 -1
- package/.zcode/skills/dispatch-agents/SKILL.md +1 -1
- package/.zcode/skills/evolve-skill/SKILL.md +1 -1
- package/.zcode/skills/grill-with-docs/SKILL.md +1 -1
- package/.zcode/skills/harden-vps/SKILL.md +1 -1
- package/.zcode/skills/maintain-wiki/SKILL.md +1 -1
- package/.zcode/skills/migrate-spec/SKILL.md +2 -2
- package/.zcode/skills/plan-tests/SKILL.md +1 -1
- package/.zcode/skills/publish-package/SKILL.md +2 -2
- package/.zcode/skills/release-branch/SKILL.md +1 -1
- package/.zcode/skills/request-review/SKILL.md +1 -1
- package/.zcode/skills/research-first/SKILL.md +1 -1
- package/.zcode/skills/reset-baseline/SKILL.md +1 -1
- package/.zcode/skills/run-evals/SKILL.md +1 -1
- package/.zcode/skills/run-planning/SKILL.md +1 -1
- package/.zcode/skills/scope-work/SKILL.md +1 -1
- package/.zcode/skills/search-skills/SKILL.md +1 -1
- package/.zcode/skills/security-review/SKILL.md +2 -4
- package/.zcode/skills/seed-conventions/SKILL.md +21 -4
- package/.zcode/skills/setup-environment/SKILL.md +1 -1
- package/.zcode/skills/simulate-agents/SKILL.md +1 -1
- package/.zcode/skills/slice-tasks/SKILL.md +1 -1
- package/.zcode/skills/stocktake-skills/SKILL.md +3 -1
- package/.zcode/skills/survey-context/SKILL.md +1 -1
- package/.zcode/skills/trace-requirement/SKILL.md +2 -2
- package/.zcode/skills/verify-work/SKILL.md +1 -1
- package/.zcode/skills/wire-ci/SKILL.md +2 -2
- package/.zcode/skills/write-document/SKILL.md +1 -1
- package/CHANGELOG.md +23 -0
- package/CLAUDE.md +3 -2
- package/package.json +1 -1
- package/scripts/land-branch.sh +22 -9
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/scripts/lib/land-branch-push.sh +106 -0
- package/scripts/run-skill-verify.sh +99 -24
- package/scripts/validate-agentic-ste.sh +229 -0
- package/skills/assess-impact/SKILL.md +3 -3
- package/skills/audit-code/SKILL.md +1 -1
- package/skills/audit-plan/SKILL.md +1 -1
- package/skills/build-epic/SKILL.md +1 -1
- package/skills/change-request/SKILL.md +1 -1
- package/skills/compose-workflow/SKILL.md +1 -1
- package/skills/context7-mcp/SKILL.md +1 -1
- package/skills/craft-skill/SKILL.md +23 -5
- package/skills/deepen-architecture/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +1 -1
- package/skills/diagnose-root/SKILL.md +1 -1
- package/skills/diagnose-stall/SKILL.md +1 -1
- package/skills/dispatch-agents/SKILL.md +1 -1
- package/skills/evolve-skill/SKILL.md +1 -1
- package/skills/grill-with-docs/SKILL.md +1 -1
- package/skills/harden-vps/SKILL.md +1 -1
- package/skills/maintain-wiki/SKILL.md +1 -1
- package/skills/migrate-spec/SKILL.md +2 -2
- package/skills/plan-tests/SKILL.md +1 -1
- package/skills/publish-package/SKILL.md +2 -2
- package/skills/release-branch/SKILL.md +1 -1
- package/skills/request-review/SKILL.md +1 -1
- package/skills/research-first/SKILL.md +1 -1
- package/skills/reset-baseline/SKILL.md +1 -1
- package/skills/run-evals/SKILL.md +1 -1
- package/skills/run-planning/SKILL.md +1 -1
- package/skills/scope-work/SKILL.md +1 -1
- package/skills/search-skills/SKILL.md +1 -1
- package/skills/security-review/SKILL.md +2 -4
- package/skills/seed-conventions/SKILL.md +21 -4
- package/skills/setup-environment/SKILL.md +1 -1
- package/skills/simulate-agents/SKILL.md +1 -1
- package/skills/slice-tasks/SKILL.md +1 -1
- package/skills/stocktake-skills/SKILL.md +3 -1
- package/skills/survey-context/SKILL.md +1 -1
- package/skills/trace-requirement/SKILL.md +2 -2
- package/skills/verify-work/SKILL.md +1 -1
- package/skills/wire-ci/SKILL.md +2 -2
- package/skills/write-document/SKILL.md +1 -1
- package/skills-lock.json +39 -39
- package/tests/test-land-branch-protected.sh +222 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# land-branch-push.sh — push + protected-branch fallback helpers for land-branch.sh
|
|
3
|
+
# story: BUG-2026-07-25-land-branch-protected
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
if [[ -n "${LAND_BRANCH_PUSH_LOADED:-}" ]]; then return 0; fi
|
|
7
|
+
LAND_BRANCH_PUSH_LOADED=1
|
|
8
|
+
|
|
9
|
+
LAND_PR_FALLBACK=0
|
|
10
|
+
|
|
11
|
+
is_protected_branch_rejection() {
|
|
12
|
+
local output="$1"
|
|
13
|
+
echo "$output" | grep -qE '(^|[[:space:]])GH006|Changes must be made through a pull request'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
land_recovery_branch_name() {
|
|
17
|
+
local feature_branch="$1"
|
|
18
|
+
echo "land-recovery/${feature_branch}"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
land_print_recovery_commands() {
|
|
22
|
+
local recovery_branch="$1"
|
|
23
|
+
local land_sha="$2"
|
|
24
|
+
local default_branch="$3"
|
|
25
|
+
local commit_msg="$4"
|
|
26
|
+
|
|
27
|
+
{
|
|
28
|
+
echo "ERROR: Protected-branch fallback failed. Run these commands to recover manually:"
|
|
29
|
+
echo ""
|
|
30
|
+
echo " git branch $recovery_branch $land_sha"
|
|
31
|
+
echo " git checkout $default_branch"
|
|
32
|
+
echo " git fetch origin $default_branch"
|
|
33
|
+
echo " git reset --hard origin/$default_branch"
|
|
34
|
+
echo " git push -u origin $recovery_branch"
|
|
35
|
+
echo " gh pr create --base $default_branch --head $recovery_branch --title \"$commit_msg\""
|
|
36
|
+
} >&2
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
land_fallback_to_pr() {
|
|
40
|
+
local default_branch="$1"
|
|
41
|
+
local land_sha="$2"
|
|
42
|
+
local feature_branch="$3"
|
|
43
|
+
local commit_msg="$4"
|
|
44
|
+
local recovery_branch
|
|
45
|
+
recovery_branch="$(land_recovery_branch_name "$feature_branch")"
|
|
46
|
+
local full_sha
|
|
47
|
+
full_sha="$(git rev-parse "$land_sha")"
|
|
48
|
+
|
|
49
|
+
echo "==> Protected branch push rejected; falling back to PR workflow"
|
|
50
|
+
echo " Recovery branch: $recovery_branch @ $land_sha"
|
|
51
|
+
|
|
52
|
+
if git show-ref --verify --quiet "refs/heads/$recovery_branch"; then
|
|
53
|
+
git branch -D "$recovery_branch"
|
|
54
|
+
fi
|
|
55
|
+
git branch "$recovery_branch" "$full_sha"
|
|
56
|
+
|
|
57
|
+
git fetch origin "$default_branch"
|
|
58
|
+
git reset --hard "origin/$default_branch"
|
|
59
|
+
|
|
60
|
+
if ! git push -u origin "$recovery_branch"; then
|
|
61
|
+
land_print_recovery_commands "$recovery_branch" "$full_sha" "$default_branch" "$commit_msg"
|
|
62
|
+
return 1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
local pr_body
|
|
66
|
+
pr_body="Automated recovery from \`land-branch.sh\` after protected-branch push rejection on \`$default_branch\`.
|
|
67
|
+
|
|
68
|
+
Squash commit: \`$land_sha\`
|
|
69
|
+
Source feature branch: \`$feature_branch\`"
|
|
70
|
+
|
|
71
|
+
if ! gh pr create \
|
|
72
|
+
--base "$default_branch" \
|
|
73
|
+
--head "$recovery_branch" \
|
|
74
|
+
--title "$commit_msg" \
|
|
75
|
+
--body "$pr_body"; then
|
|
76
|
+
land_print_recovery_commands "$recovery_branch" "$full_sha" "$default_branch" "$commit_msg"
|
|
77
|
+
return 1
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
LAND_PR_FALLBACK=1
|
|
81
|
+
echo "==> PR created via protected-branch fallback (local $default_branch reset to origin)"
|
|
82
|
+
return 0
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
land_push_default_branch() {
|
|
86
|
+
local default_branch="$1"
|
|
87
|
+
local land_sha="$2"
|
|
88
|
+
local feature_branch="$3"
|
|
89
|
+
local commit_msg="$4"
|
|
90
|
+
local push_output=""
|
|
91
|
+
local push_status=0
|
|
92
|
+
|
|
93
|
+
if push_output=$(git push origin "$default_branch" 2>&1); then
|
|
94
|
+
return 0
|
|
95
|
+
fi
|
|
96
|
+
push_status=$?
|
|
97
|
+
|
|
98
|
+
if is_protected_branch_rejection "$push_output"; then
|
|
99
|
+
echo "$push_output" >&2
|
|
100
|
+
land_fallback_to_pr "$default_branch" "$land_sha" "$feature_branch" "$commit_msg"
|
|
101
|
+
return $?
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
echo "$push_output" >&2
|
|
105
|
+
return "$push_status"
|
|
106
|
+
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
# Run all SKILL.md → verify: commands and report PASS/FAIL/SKIP.
|
|
4
4
|
# Exit 0 only when zero FAILs.
|
|
5
5
|
# Usage: bash scripts/run-skill-verify.sh [skill-name]
|
|
6
|
-
# No args: runs all skills
|
|
7
|
-
# With arg: runs only the named skill
|
|
6
|
+
# No args: runs all skills + negative-path self-test
|
|
7
|
+
# With arg: runs only the named skill (skips self-test)
|
|
8
8
|
|
|
9
9
|
set -uo pipefail
|
|
10
10
|
|
|
@@ -19,56 +19,131 @@ fi
|
|
|
19
19
|
|
|
20
20
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
21
21
|
cd "$REPO_ROOT"
|
|
22
|
-
# SKILLS_ROOT: use skills/ when it exists, fall back to repo root
|
|
23
22
|
SKILLS_ROOT="$REPO_ROOT"
|
|
24
23
|
[[ -d "$REPO_ROOT/skills" ]] && SKILLS_ROOT="$REPO_ROOT/skills"
|
|
25
24
|
|
|
26
25
|
PASS=0; FAIL=0; SKIP=0
|
|
27
26
|
TARGET="${1:-}"
|
|
28
27
|
|
|
28
|
+
is_fail_open_directive() {
|
|
29
|
+
local cmd="$1"
|
|
30
|
+
echo "$cmd" | grep -qE '\|\|[[:space:]]*echo|\|[[:space:]]*awk'
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
normalize_verify_cmd() {
|
|
34
|
+
local raw="$1"
|
|
35
|
+
raw=$(echo "$raw" | sed 's/^> // ; s/^→ verify: *//')
|
|
36
|
+
raw=$(echo "$raw" | sed 's/^`//; s/`$//')
|
|
37
|
+
echo "$raw"
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
is_executable_verify() {
|
|
41
|
+
local cmd="$1"
|
|
42
|
+
echo "$cmd" | grep -qE '^[a-zA-Z][a-zA-Z0-9_.-]*\b|^\['
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
run_verify_cmd() {
|
|
46
|
+
local skill="$1"
|
|
47
|
+
local cmd="$2"
|
|
48
|
+
local label="${3:-$skill}"
|
|
49
|
+
|
|
50
|
+
if is_fail_open_directive "$cmd"; then
|
|
51
|
+
echo "FAIL: $label — fail-open pattern (|| echo or | awk): $cmd"
|
|
52
|
+
FAIL=$((FAIL + 1))
|
|
53
|
+
return 1
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
local output
|
|
57
|
+
if output=$(run_with_timeout "$cmd"); then
|
|
58
|
+
echo "PASS: $label"
|
|
59
|
+
PASS=$((PASS + 1))
|
|
60
|
+
return 0
|
|
61
|
+
else
|
|
62
|
+
echo "FAIL: $label — $cmd"
|
|
63
|
+
echo " output: $(echo "$output" | head -1)"
|
|
64
|
+
FAIL=$((FAIL + 1))
|
|
65
|
+
return 1
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
|
|
29
69
|
run_skill() {
|
|
30
70
|
local skill_md="$1"
|
|
31
71
|
local skill
|
|
32
72
|
skill=$(dirname "$skill_md")
|
|
33
73
|
|
|
34
|
-
|
|
35
|
-
# This prevents false matches against description prose or template examples.
|
|
36
|
-
local cmd
|
|
37
|
-
cmd=$(grep -E '^(> )?→ verify:' "$skill_md" 2>/dev/null | head -1 | sed 's/^> // ; s/^→ verify: *//')
|
|
74
|
+
mapfile -t verify_lines < <(grep -E '^(> )?→ verify:' "$skill_md" 2>/dev/null || true)
|
|
38
75
|
|
|
39
|
-
if [
|
|
76
|
+
if [ "${#verify_lines[@]}" -eq 0 ]; then
|
|
40
77
|
echo "SKIP: $skill"
|
|
41
78
|
SKIP=$((SKIP + 1))
|
|
42
79
|
return
|
|
43
80
|
fi
|
|
44
81
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
82
|
+
local idx=0 ran=0
|
|
83
|
+
for line in "${verify_lines[@]}"; do
|
|
84
|
+
idx=$((idx + 1))
|
|
85
|
+
local cmd
|
|
86
|
+
cmd=$(normalize_verify_cmd "$line")
|
|
87
|
+
[ -z "$cmd" ] && continue
|
|
88
|
+
if ! is_executable_verify "$cmd"; then
|
|
89
|
+
if [ "$idx" -eq "${#verify_lines[@]}" ] && [ "$ran" -eq 0 ]; then
|
|
90
|
+
echo "SKIP: $skill (non-executable verify)"
|
|
91
|
+
SKIP=$((SKIP + 1))
|
|
92
|
+
fi
|
|
93
|
+
continue
|
|
94
|
+
fi
|
|
95
|
+
ran=1
|
|
96
|
+
local label="$skill"
|
|
97
|
+
[ "${#verify_lines[@]}" -gt 1 ] && label="$skill#$idx"
|
|
98
|
+
run_verify_cmd "$skill" "$cmd" "$label" || true
|
|
99
|
+
done
|
|
100
|
+
if [ "$ran" -eq 0 ] && [ "${#verify_lines[@]}" -gt 0 ]; then
|
|
53
101
|
echo "SKIP: $skill (non-executable verify)"
|
|
54
102
|
SKIP=$((SKIP + 1))
|
|
55
|
-
return
|
|
56
103
|
fi
|
|
104
|
+
}
|
|
57
105
|
|
|
106
|
+
run_negative_fixture_self_test() {
|
|
107
|
+
local fixture_md="$REPO_ROOT/specs/verifications/fixtures/skill-verify-fail-open/SKILL.md"
|
|
108
|
+
echo ""
|
|
109
|
+
echo "=== Skill-verify negative-path self-test ==="
|
|
110
|
+
if [[ ! -f "$fixture_md" ]]; then
|
|
111
|
+
echo "FAIL: negative fixture missing at $fixture_md"
|
|
112
|
+
FAIL=$((FAIL + 1))
|
|
113
|
+
return 1
|
|
114
|
+
fi
|
|
115
|
+
local fail_open_cmd='test -f /nonexistent/path/for/skill-verify-self-test && echo OK || echo FAIL'
|
|
116
|
+
if ! is_fail_open_directive "$fail_open_cmd"; then
|
|
117
|
+
echo "FAIL: self-test — fail-open detector did not match canonical || echo pattern"
|
|
118
|
+
FAIL=$((FAIL + 1))
|
|
119
|
+
return 1
|
|
120
|
+
fi
|
|
121
|
+
echo "PASS: self-test — fail-open detector rejects || echo pattern"
|
|
122
|
+
local real_fail_cmd='test -f /nonexistent/path/for/skill-verify-self-test'
|
|
58
123
|
local output
|
|
59
|
-
if output=$(run_with_timeout "$
|
|
60
|
-
echo "
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
124
|
+
if output=$(run_with_timeout "$real_fail_cmd"); then
|
|
125
|
+
echo "FAIL: self-test — real failing check exited 0 (fail-open risk)"
|
|
126
|
+
FAIL=$((FAIL + 1))
|
|
127
|
+
return 1
|
|
128
|
+
fi
|
|
129
|
+
echo "PASS: self-test — real failing check exits non-zero"
|
|
130
|
+
local saved_fail=$FAIL saved_pass=$PASS
|
|
131
|
+
run_skill "$fixture_md"
|
|
132
|
+
if [ "$FAIL" -le "$saved_fail" ]; then
|
|
133
|
+
echo "FAIL: self-test — fixture skill did not register a failure"
|
|
65
134
|
FAIL=$((FAIL + 1))
|
|
135
|
+
return 1
|
|
66
136
|
fi
|
|
137
|
+
FAIL=$((FAIL - 1))
|
|
138
|
+
PASS=$saved_pass
|
|
139
|
+
echo "PASS: self-test — fixture skill correctly fails verification"
|
|
67
140
|
}
|
|
68
141
|
|
|
69
142
|
if [ -n "$TARGET" ]; then
|
|
70
143
|
if [ -f "$TARGET/SKILL.md" ]; then
|
|
71
144
|
run_skill "$TARGET/SKILL.md"
|
|
145
|
+
elif [ -f "$SKILLS_ROOT/$TARGET/SKILL.md" ]; then
|
|
146
|
+
run_skill "$SKILLS_ROOT/$TARGET/SKILL.md"
|
|
72
147
|
else
|
|
73
148
|
echo "ERROR: $TARGET/SKILL.md not found"
|
|
74
149
|
exit 1
|
|
@@ -77,9 +152,9 @@ else
|
|
|
77
152
|
for skill_md in "$SKILLS_ROOT"/*/SKILL.md; do
|
|
78
153
|
run_skill "$skill_md"
|
|
79
154
|
done
|
|
155
|
+
run_negative_fixture_self_test
|
|
80
156
|
fi
|
|
81
157
|
|
|
82
158
|
echo ""
|
|
83
159
|
echo "Results: $PASS PASS, $FAIL FAIL, $SKIP SKIP"
|
|
84
|
-
|
|
85
160
|
[ "$FAIL" -eq 0 ]
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e79s02
|
|
3
|
+
# validate-agentic-ste.sh — mechanical Agentic STE checks for instructional prose.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
8
|
+
|
|
9
|
+
MAX_WORDS=20
|
|
10
|
+
BANNED_RE='\b(should|might|could|may|consider|try|generally|typically)\b'
|
|
11
|
+
|
|
12
|
+
STRICT=false
|
|
13
|
+
AUDIT=false
|
|
14
|
+
SELF_TEST=false
|
|
15
|
+
TARGETS=()
|
|
16
|
+
|
|
17
|
+
ste_usage() {
|
|
18
|
+
echo "Usage: bash scripts/validate-agentic-ste.sh [--self-test|--strict|--audit] [file|dir ...]"
|
|
19
|
+
echo " (no args) Run built-in fixture self-test"
|
|
20
|
+
echo " --strict Exit 1 on violations (craft-skill gate)"
|
|
21
|
+
echo " --audit WARN-only catalog scan (stocktake)"
|
|
22
|
+
exit 2
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
while [[ $# -gt 0 ]]; do
|
|
26
|
+
case "$1" in
|
|
27
|
+
--strict) STRICT=true; shift ;;
|
|
28
|
+
--audit) AUDIT=true; shift ;;
|
|
29
|
+
--self-test) SELF_TEST=true; shift ;;
|
|
30
|
+
-h|--help) ste_usage ;;
|
|
31
|
+
--) shift; TARGETS+=("$@"); break ;;
|
|
32
|
+
-*) echo "Unknown flag: $1" >&2; ste_usage ;;
|
|
33
|
+
*) TARGETS+=("$1"); shift ;;
|
|
34
|
+
esac
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
VIOLATIONS=0
|
|
38
|
+
WARNINGS=0
|
|
39
|
+
|
|
40
|
+
ste_report_fail() {
|
|
41
|
+
echo "FAIL: $1" >&2
|
|
42
|
+
VIOLATIONS=$((VIOLATIONS + 1))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
ste_report_warn() {
|
|
46
|
+
echo "WARN: $1" >&2
|
|
47
|
+
WARNINGS=$((WARNINGS + 1))
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
ste_strip_frontmatter() {
|
|
51
|
+
awk '
|
|
52
|
+
BEGIN { n=0; emit=0 }
|
|
53
|
+
/^---$/ { n++; if (n==1) next; if (n==2) { emit=1; next } }
|
|
54
|
+
emit { print }
|
|
55
|
+
' "$1"
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
ste_extract_prose() {
|
|
59
|
+
local file="$1"
|
|
60
|
+
local body
|
|
61
|
+
if [[ "$(basename "$file")" == "SKILL.md" ]]; then
|
|
62
|
+
body="$(ste_strip_frontmatter "$file")"
|
|
63
|
+
else
|
|
64
|
+
body="$(cat "$file")"
|
|
65
|
+
fi
|
|
66
|
+
printf '%s\n' "$body" | awk '
|
|
67
|
+
BEGIN { in_code=0 }
|
|
68
|
+
/^```/ { in_code = !in_code; next }
|
|
69
|
+
in_code { next }
|
|
70
|
+
/^[[:space:]]*#/ { next }
|
|
71
|
+
/^[[:space:]]*\|/ { next }
|
|
72
|
+
/^[[:space:]]*<!--/ { next }
|
|
73
|
+
/^[[:space:]]*$/ { next }
|
|
74
|
+
/^# story:/ { next }
|
|
75
|
+
/^<!-- story:/ { next }
|
|
76
|
+
{ print }
|
|
77
|
+
'
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ste_count_words() {
|
|
81
|
+
# shellcheck disable=SC2207
|
|
82
|
+
local words=($1)
|
|
83
|
+
echo "${#words[@]}"
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
ste_audit_line() {
|
|
87
|
+
local file="$1"
|
|
88
|
+
local line_no="$2"
|
|
89
|
+
local line="$3"
|
|
90
|
+
local label="${file}:${line_no}"
|
|
91
|
+
|
|
92
|
+
if echo "$line" | grep -qiE "$BANNED_RE"; then
|
|
93
|
+
local word
|
|
94
|
+
word="$(echo "$line" | grep -oiE "$BANNED_RE" | head -1)"
|
|
95
|
+
if $STRICT; then
|
|
96
|
+
ste_report_fail "$label — banned hedge modal '$word'"
|
|
97
|
+
else
|
|
98
|
+
ste_report_warn "$label — banned hedge modal '$word'"
|
|
99
|
+
fi
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
local sentence
|
|
103
|
+
while IFS= read -r sentence; do
|
|
104
|
+
[[ -z "$sentence" ]] && continue
|
|
105
|
+
local trimmed
|
|
106
|
+
trimmed="$(echo "$sentence" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
|
|
107
|
+
[[ -z "$trimmed" ]] && continue
|
|
108
|
+
local wc
|
|
109
|
+
wc="$(ste_count_words "$trimmed")"
|
|
110
|
+
if (( wc > MAX_WORDS )); then
|
|
111
|
+
if $STRICT; then
|
|
112
|
+
ste_report_fail "$label — sentence has ${wc} words (max ${MAX_WORDS}): ${trimmed:0:60}..."
|
|
113
|
+
else
|
|
114
|
+
ste_report_warn "$label — sentence has ${wc} words (max ${MAX_WORDS}): ${trimmed:0:60}..."
|
|
115
|
+
fi
|
|
116
|
+
fi
|
|
117
|
+
done < <(echo "$line" | sed 's/[.!?]/&\n/g')
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
ste_audit_file() {
|
|
121
|
+
local file="$1"
|
|
122
|
+
[[ -f "$file" ]] || { ste_report_fail "not found: $file"; return; }
|
|
123
|
+
|
|
124
|
+
local prose line_no=0
|
|
125
|
+
prose="$(ste_extract_prose "$file")"
|
|
126
|
+
while IFS= read -r line; do
|
|
127
|
+
line_no=$((line_no + 1))
|
|
128
|
+
ste_audit_line "$file" "$line_no" "$line"
|
|
129
|
+
done <<< "$prose"
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
ste_collect_files() {
|
|
133
|
+
local path="$1"
|
|
134
|
+
if [[ -f "$path" ]]; then
|
|
135
|
+
echo "$path"
|
|
136
|
+
elif [[ -d "$path" ]]; then
|
|
137
|
+
find "$path" -type f \( -name 'SKILL.md' -o -name 'CLAUDE.md' -o -name 'CONVENTIONS.md' -o -name 'AGENTS.md' \) | sort
|
|
138
|
+
fi
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
ste_run_self_test() {
|
|
142
|
+
local tmp
|
|
143
|
+
tmp="$(mktemp -d)"
|
|
144
|
+
trap 'rm -rf "$tmp"' RETURN
|
|
145
|
+
|
|
146
|
+
cat > "$tmp/good-skill.md" <<'EOF'
|
|
147
|
+
---
|
|
148
|
+
name: fixture-good
|
|
149
|
+
description: Test fixture for Agentic STE validator. Use when running self-test.
|
|
150
|
+
---
|
|
151
|
+
# Fixture Good
|
|
152
|
+
> **HARD GATE** — Run Preflight before forward work.
|
|
153
|
+
Run tests after every change.
|
|
154
|
+
Write specs to specs/ at project root.
|
|
155
|
+
EOF
|
|
156
|
+
|
|
157
|
+
cat > "$tmp/bad-hedge.md" <<'EOF'
|
|
158
|
+
---
|
|
159
|
+
name: fixture-bad
|
|
160
|
+
description: Bad fixture.
|
|
161
|
+
---
|
|
162
|
+
You should consider running tests generally.
|
|
163
|
+
EOF
|
|
164
|
+
|
|
165
|
+
cat > "$tmp/bad-long.md" <<'EOF'
|
|
166
|
+
---
|
|
167
|
+
name: fixture-long
|
|
168
|
+
description: Long sentence fixture.
|
|
169
|
+
---
|
|
170
|
+
Run the full local green stack including compliance verification gates sync skills trace stories and catalog drift check before any forward implementation work on this repository.
|
|
171
|
+
EOF
|
|
172
|
+
|
|
173
|
+
local saved_strict=$STRICT saved_audit=$AUDIT
|
|
174
|
+
STRICT=true
|
|
175
|
+
AUDIT=false
|
|
176
|
+
VIOLATIONS=0
|
|
177
|
+
|
|
178
|
+
ste_audit_file "$tmp/good-skill.md"
|
|
179
|
+
if (( VIOLATIONS > 0 )); then
|
|
180
|
+
echo "SELF-TEST FAIL: good fixture should pass" >&2
|
|
181
|
+
return 1
|
|
182
|
+
fi
|
|
183
|
+
|
|
184
|
+
VIOLATIONS=0
|
|
185
|
+
ste_audit_file "$tmp/bad-hedge.md"
|
|
186
|
+
if (( VIOLATIONS == 0 )); then
|
|
187
|
+
echo "SELF-TEST FAIL: hedge fixture should fail" >&2
|
|
188
|
+
return 1
|
|
189
|
+
fi
|
|
190
|
+
|
|
191
|
+
VIOLATIONS=0
|
|
192
|
+
ste_audit_file "$tmp/bad-long.md"
|
|
193
|
+
if (( VIOLATIONS == 0 )); then
|
|
194
|
+
echo "SELF-TEST FAIL: long-sentence fixture should fail" >&2
|
|
195
|
+
return 1
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
STRICT=$saved_strict
|
|
199
|
+
AUDIT=$saved_audit
|
|
200
|
+
VIOLATIONS=0
|
|
201
|
+
echo "validate-agentic-ste: self-test PASS"
|
|
202
|
+
return 0
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if $SELF_TEST || [[ ${#TARGETS[@]} -eq 0 ]]; then
|
|
206
|
+
ste_run_self_test
|
|
207
|
+
exit $?
|
|
208
|
+
fi
|
|
209
|
+
|
|
210
|
+
if $AUDIT; then
|
|
211
|
+
STRICT=false
|
|
212
|
+
fi
|
|
213
|
+
|
|
214
|
+
for target in "${TARGETS[@]}"; do
|
|
215
|
+
while IFS= read -r f; do
|
|
216
|
+
[[ -n "$f" ]] && ste_audit_file "$f"
|
|
217
|
+
done < <(ste_collect_files "$target")
|
|
218
|
+
done
|
|
219
|
+
|
|
220
|
+
if (( VIOLATIONS > 0 )); then
|
|
221
|
+
echo "validate-agentic-ste: $VIOLATIONS violation(s)" >&2
|
|
222
|
+
exit 1
|
|
223
|
+
fi
|
|
224
|
+
|
|
225
|
+
if $AUDIT; then
|
|
226
|
+
echo "validate-agentic-ste: audit complete ($WARNINGS warning(s))"
|
|
227
|
+
else
|
|
228
|
+
echo "validate-agentic-ste: PASS"
|
|
229
|
+
fi
|
|
@@ -29,13 +29,13 @@ grep -rn "[symbol-name]" . --include="*.ts" | grep -v node_modules
|
|
|
29
29
|
git log --oneline -10 -- [file-path]
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
→ verify: `
|
|
32
|
+
→ verify: `test -f specs/IMPACT_LATEST.md || test -d specs/bugs`
|
|
33
33
|
|
|
34
34
|
### 3. Map to release plan stories
|
|
35
35
|
|
|
36
36
|
Read `specs/release-plan.yaml + epic capsule directories` (if it exists). For each dependent found in Step 2, identify which story owns that module. List stories that will be affected by the change.
|
|
37
37
|
|
|
38
|
-
→ verify: `grep -c "Story" specs/release-plan.yaml
|
|
38
|
+
→ verify: `grep -c "Story" specs/release-plan.yaml 2>/dev/null || echo "no release plan"`
|
|
39
39
|
|
|
40
40
|
### 4. List test coverage
|
|
41
41
|
|
|
@@ -45,7 +45,7 @@ Find tests that exercise the target:
|
|
|
45
45
|
grep -rn "[symbol-name]" . --include="*.test.*" --include="*.spec.*"
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
→ verify: `
|
|
48
|
+
→ verify: `test -d specs/epics || test -d skills`
|
|
49
49
|
|
|
50
50
|
### 5. Classify risk
|
|
51
51
|
|
|
@@ -129,7 +129,7 @@ In `--gate` mode, print one summary line per checklist section (`PASS Supply Cha
|
|
|
129
129
|
|
|
130
130
|
## Verify
|
|
131
131
|
|
|
132
|
-
→ verify: `test -f CONVENTIONS.md && test -d skills/enforce-first && test -d skills/request-review
|
|
132
|
+
→ verify: `test -f CONVENTIONS.md && test -d skills/enforce-first && test -d skills/request-review`
|
|
133
133
|
|
|
134
134
|
## Handoff
|
|
135
135
|
|
|
@@ -87,4 +87,4 @@ NOT READY — N gaps remain; close before proceeding
|
|
|
87
87
|
|
|
88
88
|
## Verify
|
|
89
89
|
|
|
90
|
-
→ verify: `test -f specs/PLAN-AUDIT_LATEST.md && grep -q
|
|
90
|
+
→ verify: `test -f specs/PLAN-AUDIT_LATEST.md && grep -q Verdict specs/PLAN-AUDIT_LATEST.md`
|
|
@@ -101,7 +101,7 @@ Write `handoff.next_skill` and `handoff.context` in `state.yaml` when pausing mi
|
|
|
101
101
|
|
|
102
102
|
## Verify
|
|
103
103
|
|
|
104
|
-
→ verify: `test -f specs/state.yaml && test -f specs/execution-status.yaml && test -f specs/release-plan.yaml && test -d skills/assess-impact && test -d skills/audit-code && test -d skills/security-review
|
|
104
|
+
→ verify: `test -f specs/state.yaml && test -f specs/execution-status.yaml && test -f specs/release-plan.yaml && test -d skills/assess-impact && test -d skills/audit-code && test -d skills/security-review`
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
<!-- story: e38s02 -->
|
|
@@ -12,7 +12,7 @@ description: Add a new requirement or reorder epics by WSJF against specs/releas
|
|
|
12
12
|
|
|
13
13
|
> **HARD GATE** — `specs/release-plan.yaml` must exist before running either mode. If it doesn't, run `plan-release` first.
|
|
14
14
|
>
|
|
15
|
-
> → verify: `
|
|
15
|
+
> → verify: `test -f specs/release-plan.yaml`
|
|
16
16
|
|
|
17
17
|
Two modes. State which one you want or the skill will ask.
|
|
18
18
|
|
|
@@ -62,6 +62,6 @@ Add to `AGENTS.md`:
|
|
|
62
62
|
|
|
63
63
|
## Verify
|
|
64
64
|
|
|
65
|
-
→ verify: `ls specs/workflows/*.yaml 2>/dev/null | wc -l |
|
|
65
|
+
→ verify: `[ "$(ls specs/workflows/*.yaml 2>/dev/null | wc -l | tr -d ' ')" -ge 8 ]`
|
|
66
66
|
|
|
67
67
|
See [REFERENCE.md](REFERENCE.md) for template.
|
|
@@ -54,4 +54,4 @@ Do NOT substitute training-data answers without labeling them UNVERIFIED.
|
|
|
54
54
|
|
|
55
55
|
## Verify
|
|
56
56
|
|
|
57
|
-
→ verify: `test -f scripts/lib/doc-fetch-cache.sh
|
|
57
|
+
→ verify: `test -f scripts/lib/doc-fetch-cache.sh`
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# story: e45s02
|
|
2
2
|
<!-- story: e45s12 -->
|
|
3
|
+
<!-- story: e79s02 -->
|
|
3
4
|
---
|
|
4
5
|
name: craft-skill
|
|
5
6
|
model: sonnet
|
|
@@ -9,7 +10,7 @@ description: Create new bigpowers skills with proper structure, progressive disc
|
|
|
9
10
|
|
|
10
11
|
# Craft Skill
|
|
11
12
|
|
|
12
|
-
> **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh
|
|
13
|
+
> **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh`. Generated `.cursor/rules/` and `.gemini/` artifacts MUST match the source SKILL.md.
|
|
13
14
|
|
|
14
15
|
## CSO Description Discipline (e45s02)
|
|
15
16
|
|
|
@@ -24,11 +25,25 @@ The YAML `description` is the **Catalog Selection Object** — the only field ag
|
|
|
24
25
|
|
|
25
26
|
Move process detail into the SKILL.md body or REFERENCE.md — never into `description`.
|
|
26
27
|
|
|
28
|
+
## Agentic STE body discipline (e79s02)
|
|
29
|
+
|
|
30
|
+
Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md).
|
|
31
|
+
|
|
32
|
+
| Rule | Limit |
|
|
33
|
+
|------|-------|
|
|
34
|
+
| Sentence length | ≤20 words per instruction sentence |
|
|
35
|
+
| Voice | Imperative, active |
|
|
36
|
+
| Directive terms | MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT |
|
|
37
|
+
| Banned modals | should, might, could, may, consider, try, generally, typically |
|
|
38
|
+
| Scope | SKILL.md body only — not YAML `description`, not `terse-mode` output |
|
|
39
|
+
|
|
40
|
+
> **HARD GATE** — Do NOT merge a new or edited skill until `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` exits 0. Fix violations before `sync-skills.sh`.
|
|
41
|
+
|
|
27
42
|
## Process
|
|
28
43
|
|
|
29
44
|
1. **Gather requirements** — ask user about:
|
|
30
45
|
- What task/domain does the skill cover?
|
|
31
|
-
-
|
|
46
|
+
- Which use cases must the skill handle?
|
|
32
47
|
- Does it need executable scripts or just instructions?
|
|
33
48
|
- Any reference materials to include?
|
|
34
49
|
- What specs/ output does it produce (if any)?
|
|
@@ -44,7 +59,8 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
|
|
|
44
59
|
- Additional reference files if content exceeds 100 lines
|
|
45
60
|
- Utility scripts if deterministic operations needed
|
|
46
61
|
|
|
47
|
-
**Auto-skill from library README:** When user provides a library README or API docs URL, extract
|
|
62
|
+
**Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
|
|
63
|
+
Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
|
|
48
64
|
|
|
49
65
|
4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/model-profiles.md).
|
|
50
66
|
|
|
@@ -53,10 +69,11 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
|
|
|
53
69
|
5. **Review with user** — present draft and ask:
|
|
54
70
|
- Does this cover your use cases?
|
|
55
71
|
- Anything missing or unclear?
|
|
56
|
-
-
|
|
72
|
+
- Does any section need more or less detail?
|
|
57
73
|
|
|
58
74
|
6. **Completion-honesty gate (HARD GATE — e45s02)** — Before declaring done:
|
|
59
75
|
- Run `bash scripts/validate-skill-description.sh skills/<name>/SKILL.md` — must exit 0
|
|
76
|
+
- Run `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` — must exit 0 (e79s02)
|
|
60
77
|
- Run `bash scripts/sync-skills.sh` — must complete without error
|
|
61
78
|
- Run `bash scripts/run-skill-verify.sh <name>` if the skill defines a verify command
|
|
62
79
|
- Show terminal output for each — narration without evidence is rejected
|
|
@@ -81,6 +98,7 @@ After drafting, verify:
|
|
|
81
98
|
- [ ] Consistent terminology with CONVENTIONS.md
|
|
82
99
|
- [ ] specs/ output documented if applicable
|
|
83
100
|
- [ ] `validate-skill-description.sh` exits 0
|
|
101
|
+
- [ ] `validate-agentic-ste.sh --strict` exits 0 (e79s02)
|
|
84
102
|
- [ ] `sync-skills.sh` run to propagate to Cursor/Gemini
|
|
85
103
|
- [ ] `bash scripts/validate-skill-catalog.sh` passes for the new skill (HARD GATE — completion honesty)
|
|
86
104
|
|
|
@@ -88,4 +106,4 @@ After drafting, verify:
|
|
|
88
106
|
|
|
89
107
|
## Verify
|
|
90
108
|
|
|
91
|
-
→ verify: `bash scripts/validate-skill-catalog.sh --strict --skill craft-skill && bash scripts/validate-skill-description.sh skills/craft-skill/SKILL.md
|
|
109
|
+
→ verify: `bash scripts/validate-skill-catalog.sh --strict --skill craft-skill && bash scripts/validate-skill-description.sh skills/craft-skill/SKILL.md`
|
|
@@ -113,7 +113,7 @@ Run the check before proposing cross-module `source` edges. Convention docs alon
|
|
|
113
113
|
|
|
114
114
|
## Verify
|
|
115
115
|
|
|
116
|
-
→ verify: `test -f specs/import-boundaries.json && bash scripts/check-import-boundaries.sh
|
|
116
|
+
→ verify: `test -f specs/import-boundaries.json && bash scripts/check-import-boundaries.sh`
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
|