devrites 5.13.1 → 5.14.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/CHANGELOG.md +27 -0
- package/README.md +333 -335
- package/bin/devrites.mjs +1 -1
- package/docs/adr/0031-overhaul-agents-keep-every-tool.md +52 -0
- package/docs/adr/0032-single-lint-gate-and-cached-pr-tests.md +60 -0
- package/docs/adr/0033-rite-fast-own-agents.md +45 -0
- package/docs/adr/README.md +5 -2
- package/docs/architecture.md +7 -4
- package/docs/command-map.md +3 -2
- package/docs/engine/commands.md +11 -1
- package/docs/flow.md +3 -2
- package/docs/orchestration.md +6 -1
- package/docs/quick-reference.md +2 -1
- package/docs/skills.md +16 -8
- package/docs/usage.md +2 -2
- package/engine/.golangci.yml +56 -4
- package/engine/AGENTS.md +3 -3
- package/engine/Makefile +7 -23
- package/engine/go.mod +1 -1
- package/engine/internal/devritespaths/paths.go +2 -0
- package/engine/internal/hostpack/hostpack.go +6 -1
- package/engine/internal/hostpack/hostpack_test.go +2 -0
- package/engine/internal/install/apply.go +5 -3
- package/engine/internal/install/binary.go +3 -1
- package/engine/internal/install/install.go +0 -25
- package/engine/internal/install/install_test.go +1 -0
- package/engine/internal/lib/claims.go +15 -0
- package/engine/internal/lib/claims_test.go +28 -0
- package/engine/internal/lib/context_next_test.go +53 -0
- package/engine/internal/lib/dispatch.go +28 -7
- package/engine/internal/lib/manifest_union.go +14 -0
- package/engine/internal/overhaul/admit/admit_test.go +34 -0
- package/engine/internal/overhaul/admit/run.go +22 -1
- package/engine/internal/overhaul/bench/run.go +327 -38
- package/engine/internal/overhaul/bench/run_test.go +131 -0
- package/engine/internal/overhaul/bench/stats.go +154 -0
- package/engine/internal/overhaul/overhaul.go +1 -0
- package/engine/internal/overhaul/ovio/ovio.go +4 -0
- package/engine/internal/overhaul/records/check.go +27 -0
- package/engine/internal/overhaul/records/consistency.go +217 -0
- package/engine/internal/overhaul/records/init.go +132 -0
- package/engine/internal/overhaul/records/init_test.go +96 -0
- package/engine/internal/overhaul/records/records_test.go +116 -1
- package/engine/internal/overhaul/records/run.go +9 -1
- package/engine/internal/overhaul/render/run.go +520 -60
- package/engine/internal/overhaul/render/run_test.go +181 -8
- package/engine/internal/overhaul/render/visual.go +617 -0
- package/engine/internal/overhaul/score/run.go +58 -9
- package/engine/internal/overhaul/score/run_test.go +84 -8
- package/engine/internal/overhaul/snapshot/run.go +52 -5
- package/engine/internal/overhaul/snapshot/run_test.go +24 -2
- package/engine/internal/parallel/ops.go +5 -0
- package/engine/internal/state/write.go +8 -2
- package/engine/internal/version/version_test.go +27 -0
- package/engine/main.go +2 -2
- package/pack/.claude/agents/_shared/composition-overhaul.md +1 -0
- package/pack/.claude/agents/_shared/result-admission.md +3 -1
- package/pack/.claude/agents/devrites-code-reviewer.md +17 -7
- package/pack/.claude/agents/devrites-devex-reviewer.md +5 -5
- package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -3
- package/pack/.claude/agents/devrites-evidence-scout.md +10 -0
- package/pack/.claude/agents/devrites-frontend-reviewer.md +34 -20
- package/pack/.claude/agents/devrites-performance-reviewer.md +29 -11
- package/pack/.claude/agents/devrites-plan-reviewer.md +8 -5
- package/pack/.claude/agents/devrites-proof-runner.md +20 -4
- package/pack/.claude/agents/devrites-retrospector.md +18 -3
- package/pack/.claude/agents/devrites-security-auditor.md +32 -26
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +4 -4
- package/pack/.claude/agents/devrites-spec-reviewer.md +4 -2
- package/pack/.claude/agents/devrites-strategy-reviewer.md +11 -8
- package/pack/.claude/agents/devrites-test-analyst.md +8 -5
- package/pack/.claude/agents/devrites-upgrade-planner.md +3 -0
- package/pack/.claude/agents/fast-builder.md +90 -0
- package/pack/.claude/agents/fast-checker.md +60 -0
- package/pack/.claude/agents/fast-critic.md +70 -0
- package/pack/.claude/agents/fast-planner.md +95 -0
- package/pack/{generated/codex/skills/overhaul/roles/backend-engineer.md → .claude/agents/overhaul-backend-engineer.md} +18 -11
- package/pack/{generated/codex/skills/overhaul/roles/boundary.md → .claude/agents/overhaul-boundary.md} +13 -7
- package/pack/{generated/codex/skills/overhaul/roles/craft.md → .claude/agents/overhaul-craft.md} +13 -7
- package/pack/.claude/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +18 -10
- package/pack/{generated/codex/skills/overhaul/roles/implementer.md → .claude/agents/overhaul-implementer.md} +20 -10
- package/pack/{generated/codex/skills/overhaul/roles/recon.md → .claude/agents/overhaul-recon.md} +26 -12
- package/pack/{generated/codex/skills/overhaul/roles/specialist.md → .claude/agents/overhaul-specialist.md} +20 -11
- package/pack/{generated/claude/skills/overhaul/roles/verifier.md → .claude/agents/overhaul-verifier.md} +18 -7
- package/pack/.claude/settings.json +1 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +2 -1
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/.claude/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/.claude/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +34 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/.claude/skills/overhaul/SKILL.md +55 -35
- package/pack/.claude/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/.claude/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/.claude/skills/overhaul/references/orchestration.md +49 -29
- package/pack/.claude/skills/overhaul/references/records.md +28 -6
- package/pack/.claude/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/.claude/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/.claude/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/.claude/skills/overhaul/references/scoring.md +36 -7
- package/pack/.claude/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/.claude/skills/rite/SKILL.md +4 -1
- package/pack/.claude/skills/rite-adopt/SKILL.md +5 -2
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +8 -16
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +9 -0
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +5 -1
- package/pack/.claude/skills/rite-clarify/SKILL.md +1 -1
- package/pack/.claude/skills/rite-converge/SKILL.md +9 -2
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/.claude/skills/rite-define/SKILL.md +6 -1
- package/pack/.claude/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/.claude/skills/rite-doctor/SKILL.md +8 -2
- package/pack/.claude/skills/rite-fast/SKILL.md +183 -0
- package/pack/.claude/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/.claude/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/.claude/skills/rite-handoff/SKILL.md +14 -2
- package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/.claude/skills/rite-learn/SKILL.md +34 -4
- package/pack/.claude/skills/rite-plan/SKILL.md +2 -1
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/.claude/skills/rite-polish/SKILL.md +10 -4
- package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/.claude/skills/rite-polish/reference/ui.md +12 -3
- package/pack/.claude/skills/rite-pov/SKILL.md +14 -3
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/.claude/skills/rite-prove/SKILL.md +12 -4
- package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/.claude/skills/rite-quick/SKILL.md +4 -0
- package/pack/.claude/skills/rite-resolve/SKILL.md +7 -1
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/.claude/skills/rite-review/SKILL.md +4 -1
- package/pack/.claude/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/.claude/skills/rite-seal/SKILL.md +5 -3
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +12 -4
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/.claude/skills/rite-status/SKILL.md +11 -3
- package/pack/.claude/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +4 -2
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +5 -0
- package/pack/generated/README.md +2 -2
- package/pack/generated/claude/agents/devrites-code-reviewer.md +19 -5
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +7 -3
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +8 -1
- package/pack/generated/claude/agents/devrites-evidence-scout.md +14 -0
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +36 -18
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +31 -9
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +10 -3
- package/pack/generated/claude/agents/devrites-proof-runner.md +24 -4
- package/pack/generated/claude/agents/devrites-retrospector.md +22 -3
- package/pack/generated/claude/agents/devrites-security-auditor.md +34 -24
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +6 -2
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +8 -2
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +13 -6
- package/pack/generated/claude/agents/devrites-test-analyst.md +10 -3
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +7 -0
- package/pack/generated/claude/agents/fast-builder.md +90 -0
- package/pack/generated/claude/agents/fast-checker.md +60 -0
- package/pack/generated/claude/agents/fast-critic.md +70 -0
- package/pack/generated/claude/agents/fast-planner.md +95 -0
- package/pack/{.claude/skills/overhaul/roles/backend-engineer.md → generated/claude/agents/overhaul-backend-engineer.md} +18 -11
- package/pack/generated/claude/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +13 -7
- package/pack/generated/claude/{skills/overhaul/roles/craft.md → agents/overhaul-craft.md} +13 -7
- package/pack/generated/{codex/skills/overhaul/roles/frontend-engineer.md → claude/agents/overhaul-frontend-engineer.md} +18 -10
- package/pack/generated/claude/{skills/overhaul/roles/implementer.md → agents/overhaul-implementer.md} +20 -10
- package/pack/generated/claude/{skills/overhaul/roles/recon.md → agents/overhaul-recon.md} +26 -12
- package/pack/generated/claude/{skills/overhaul/roles/specialist.md → agents/overhaul-specialist.md} +20 -11
- package/pack/generated/{codex/skills/overhaul/roles/verifier.md → claude/agents/overhaul-verifier.md} +18 -7
- package/pack/generated/claude/settings.json +1 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +2 -1
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/generated/claude/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/generated/claude/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +34 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/generated/claude/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/generated/claude/skills/overhaul/SKILL.md +55 -35
- package/pack/generated/claude/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/generated/claude/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +49 -29
- package/pack/generated/claude/skills/overhaul/references/records.md +28 -6
- package/pack/generated/claude/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/generated/claude/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/claude/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/generated/claude/skills/overhaul/references/scoring.md +36 -7
- package/pack/generated/claude/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/generated/claude/skills/rite/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +5 -2
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +8 -16
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +9 -0
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +5 -1
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-converge/SKILL.md +9 -2
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/generated/claude/skills/rite-define/SKILL.md +6 -1
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +8 -2
- package/pack/generated/claude/skills/rite-fast/SKILL.md +183 -0
- package/pack/generated/claude/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/claude/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +14 -2
- package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/generated/claude/skills/rite-learn/SKILL.md +34 -4
- package/pack/generated/claude/skills/rite-plan/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +10 -4
- package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/generated/claude/skills/rite-polish/reference/ui.md +12 -3
- package/pack/generated/claude/skills/rite-pov/SKILL.md +14 -3
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/generated/claude/skills/rite-prove/SKILL.md +12 -4
- package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/generated/claude/skills/rite-quick/SKILL.md +4 -0
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +7 -1
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/generated/claude/skills/rite-review/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/generated/claude/skills/rite-seal/SKILL.md +5 -3
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/claude/skills/rite-spec/SKILL.md +12 -4
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/generated/claude/skills/rite-status/SKILL.md +11 -3
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +5 -0
- package/pack/generated/codex/AGENTS.md +2 -0
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +19 -5
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +7 -3
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +8 -1
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +14 -0
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +36 -18
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +31 -9
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +10 -3
- package/pack/generated/codex/agents/devrites-proof-runner.toml +24 -4
- package/pack/generated/codex/agents/devrites-retrospector.toml +22 -3
- package/pack/generated/codex/agents/devrites-security-auditor.toml +34 -24
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +6 -2
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +8 -2
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +13 -6
- package/pack/generated/codex/agents/devrites-test-analyst.toml +10 -3
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +7 -0
- package/pack/generated/codex/agents/fast-builder.toml +90 -0
- package/pack/generated/codex/agents/fast-checker.toml +60 -0
- package/pack/generated/codex/agents/fast-critic.toml +70 -0
- package/pack/generated/codex/agents/fast-planner.toml +95 -0
- package/pack/generated/{devin/skills/overhaul/roles/backend-engineer.md → codex/agents/overhaul-backend-engineer.toml} +20 -11
- package/pack/{.claude/skills/overhaul/roles/boundary.md → generated/codex/agents/overhaul-boundary.toml} +15 -7
- package/pack/generated/{devin/skills/overhaul/roles/craft.md → codex/agents/overhaul-craft.toml} +15 -7
- package/pack/generated/{claude/skills/overhaul/roles/frontend-engineer.md → codex/agents/overhaul-frontend-engineer.toml} +20 -10
- package/pack/generated/{devin/skills/overhaul/roles/implementer.md → codex/agents/overhaul-implementer.toml} +22 -10
- package/pack/generated/{devin/skills/overhaul/roles/recon.md → codex/agents/overhaul-recon.toml} +28 -12
- package/pack/generated/{devin/skills/overhaul/roles/specialist.md → codex/agents/overhaul-specialist.toml} +22 -11
- package/pack/{.claude/skills/overhaul/roles/verifier.md → generated/codex/agents/overhaul-verifier.toml} +20 -7
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +2 -1
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/generated/codex/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/generated/codex/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +34 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/generated/codex/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/generated/codex/skills/overhaul/SKILL.md +55 -35
- package/pack/generated/codex/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/generated/codex/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +49 -29
- package/pack/generated/codex/skills/overhaul/references/records.md +28 -6
- package/pack/generated/codex/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/generated/codex/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/codex/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/generated/codex/skills/overhaul/references/scoring.md +36 -7
- package/pack/generated/codex/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/generated/codex/skills/rite/SKILL.md +4 -1
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +5 -2
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +8 -16
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +9 -0
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +5 -1
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-converge/SKILL.md +9 -2
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/generated/codex/skills/rite-define/SKILL.md +6 -1
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +8 -2
- package/pack/generated/codex/skills/rite-fast/SKILL.md +183 -0
- package/pack/generated/codex/skills/rite-fast/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/codex/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +14 -2
- package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/generated/codex/skills/rite-learn/SKILL.md +34 -4
- package/pack/generated/codex/skills/rite-plan/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/generated/codex/skills/rite-polish/SKILL.md +10 -4
- package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/generated/codex/skills/rite-polish/reference/ui.md +12 -3
- package/pack/generated/codex/skills/rite-pov/SKILL.md +14 -3
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/generated/codex/skills/rite-prove/SKILL.md +12 -4
- package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/generated/codex/skills/rite-quick/SKILL.md +4 -0
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +7 -1
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/generated/codex/skills/rite-review/SKILL.md +4 -1
- package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/generated/codex/skills/rite-seal/SKILL.md +5 -3
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/codex/skills/rite-spec/SKILL.md +12 -4
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/generated/codex/skills/rite-status/SKILL.md +11 -3
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +5 -0
- package/pack/generated/devin/AGENTS.md +2 -0
- package/pack/generated/devin/agents/devrites-code-reviewer.md +19 -4
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +7 -2
- package/pack/generated/devin/agents/devrites-doubt-reviewer.md +8 -0
- package/pack/generated/devin/agents/devrites-evidence-scout.md +14 -0
- package/pack/generated/devin/agents/devrites-frontend-reviewer.md +36 -17
- package/pack/generated/devin/agents/devrites-performance-reviewer.md +31 -8
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +10 -2
- package/pack/generated/devin/agents/devrites-proof-runner.md +24 -4
- package/pack/generated/devin/agents/devrites-retrospector.md +22 -3
- package/pack/generated/devin/agents/devrites-security-auditor.md +34 -23
- package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +6 -1
- package/pack/generated/devin/agents/devrites-spec-reviewer.md +8 -2
- package/pack/generated/devin/agents/devrites-strategy-reviewer.md +13 -5
- package/pack/generated/devin/agents/devrites-test-analyst.md +10 -2
- package/pack/generated/devin/agents/devrites-upgrade-planner.md +7 -0
- package/pack/generated/devin/agents/fast-builder.md +96 -0
- package/pack/generated/devin/agents/fast-checker.md +63 -0
- package/pack/generated/devin/agents/fast-critic.md +73 -0
- package/pack/generated/devin/agents/fast-planner.md +98 -0
- package/pack/generated/{claude/skills/overhaul/roles/backend-engineer.md → devin/agents/overhaul-backend-engineer.md} +26 -11
- package/pack/generated/devin/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +21 -7
- package/pack/{.claude/skills/overhaul/roles/craft.md → generated/devin/agents/overhaul-craft.md} +21 -7
- package/pack/generated/devin/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +26 -10
- package/pack/{.claude/skills/overhaul/roles/implementer.md → generated/devin/agents/overhaul-implementer.md} +28 -10
- package/pack/{.claude/skills/overhaul/roles/recon.md → generated/devin/agents/overhaul-recon.md} +34 -12
- package/pack/{.claude/skills/overhaul/roles/specialist.md → generated/devin/agents/overhaul-specialist.md} +28 -11
- package/pack/generated/devin/{skills/overhaul/roles/verifier.md → agents/overhaul-verifier.md} +26 -7
- package/pack/generated/devin/skills/devrites-audit/SKILL.md +2 -1
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +34 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/generated/devin/skills/overhaul/SKILL.md +55 -35
- package/pack/generated/devin/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/generated/devin/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +49 -29
- package/pack/generated/devin/skills/overhaul/references/records.md +28 -6
- package/pack/generated/devin/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/generated/devin/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/devin/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/generated/devin/skills/overhaul/references/scoring.md +36 -7
- package/pack/generated/devin/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/generated/devin/skills/rite/SKILL.md +4 -1
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +5 -2
- package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +8 -16
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +9 -0
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +5 -1
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-converge/SKILL.md +9 -2
- package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/generated/devin/skills/rite-define/SKILL.md +6 -1
- package/pack/generated/devin/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +8 -2
- package/pack/generated/devin/skills/rite-fast/SKILL.md +183 -0
- package/pack/generated/devin/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/devin/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +14 -2
- package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/generated/devin/skills/rite-learn/SKILL.md +34 -4
- package/pack/generated/devin/skills/rite-plan/SKILL.md +2 -1
- package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/generated/devin/skills/rite-polish/SKILL.md +10 -4
- package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/generated/devin/skills/rite-polish/reference/ui.md +12 -3
- package/pack/generated/devin/skills/rite-pov/SKILL.md +14 -3
- package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/generated/devin/skills/rite-prove/SKILL.md +12 -4
- package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/generated/devin/skills/rite-quick/SKILL.md +4 -0
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +7 -1
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/generated/devin/skills/rite-review/SKILL.md +4 -1
- package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/generated/devin/skills/rite-seal/SKILL.md +5 -3
- package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/devin/skills/rite-spec/SKILL.md +12 -4
- package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/generated/devin/skills/rite-status/SKILL.md +11 -3
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -2
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +5 -0
- package/pack/generated/omp/agents/devrites-code-reviewer.md +19 -4
- package/pack/generated/omp/agents/devrites-devex-reviewer.md +7 -2
- package/pack/generated/omp/agents/devrites-doubt-reviewer.md +8 -0
- package/pack/generated/omp/agents/devrites-evidence-scout.md +15 -1
- package/pack/generated/omp/agents/devrites-frontend-reviewer.md +37 -17
- package/pack/generated/omp/agents/devrites-performance-reviewer.md +31 -8
- package/pack/generated/omp/agents/devrites-plan-reviewer.md +10 -2
- package/pack/generated/omp/agents/devrites-proof-runner.md +24 -4
- package/pack/generated/omp/agents/devrites-retrospector.md +22 -3
- package/pack/generated/omp/agents/devrites-security-auditor.md +34 -23
- package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +6 -1
- package/pack/generated/omp/agents/devrites-slice-wright.md +6 -6
- package/pack/generated/omp/agents/devrites-spec-reviewer.md +8 -2
- package/pack/generated/omp/agents/devrites-strategy-reviewer.md +13 -5
- package/pack/generated/omp/agents/devrites-test-analyst.md +10 -2
- package/pack/generated/omp/agents/devrites-upgrade-planner.md +7 -0
- package/pack/generated/omp/agents/fast-builder.md +89 -0
- package/pack/generated/omp/agents/fast-checker.md +59 -0
- package/pack/generated/omp/agents/fast-critic.md +69 -0
- package/pack/generated/omp/agents/fast-planner.md +94 -0
- package/pack/generated/omp/agents/overhaul-backend-engineer.md +69 -0
- package/pack/generated/omp/agents/overhaul-boundary.md +63 -0
- package/pack/generated/omp/agents/overhaul-craft.md +84 -0
- package/pack/generated/omp/agents/overhaul-frontend-engineer.md +72 -0
- package/pack/generated/omp/agents/overhaul-implementer.md +70 -0
- package/pack/generated/omp/agents/overhaul-recon.md +75 -0
- package/pack/generated/omp/agents/overhaul-specialist.md +66 -0
- package/pack/generated/omp/agents/overhaul-verifier.md +72 -0
- package/pack/generated/omp/commands/rite-adopt.md +5 -0
- package/pack/generated/omp/commands/rite-autocomplete.md +5 -0
- package/pack/generated/omp/commands/rite-build.md +5 -0
- package/pack/generated/omp/commands/rite-clarify.md +5 -0
- package/pack/generated/omp/commands/rite-converge.md +5 -0
- package/pack/generated/omp/commands/rite-customize.md +5 -0
- package/pack/generated/omp/commands/rite-define.md +5 -0
- package/pack/generated/omp/commands/rite-doctor.md +5 -0
- package/pack/generated/omp/commands/rite-dogfood.md +5 -0
- package/pack/generated/omp/commands/rite-explain.md +5 -0
- package/pack/generated/omp/commands/rite-fast.md +5 -0
- package/pack/generated/omp/commands/rite-frame.md +5 -0
- package/pack/generated/omp/commands/rite-handoff.md +5 -0
- package/pack/generated/omp/commands/rite-learn.md +5 -0
- package/pack/generated/omp/commands/rite-plan.md +5 -0
- package/pack/generated/omp/commands/rite-polish.md +5 -0
- package/pack/generated/omp/commands/rite-pov.md +5 -0
- package/pack/generated/omp/commands/rite-pr-feedback.md +5 -0
- package/pack/generated/omp/commands/rite-pressure-test.md +5 -0
- package/pack/generated/omp/commands/rite-prototype.md +5 -0
- package/pack/generated/omp/commands/rite-prove.md +5 -0
- package/pack/generated/omp/commands/rite-quick.md +5 -0
- package/pack/generated/omp/commands/rite-resolve.md +5 -0
- package/pack/generated/omp/commands/rite-review.md +5 -0
- package/pack/generated/omp/commands/rite-seal.md +5 -0
- package/pack/generated/omp/commands/rite-ship.md +5 -0
- package/pack/generated/omp/commands/rite-spec.md +5 -0
- package/pack/generated/omp/commands/rite-status.md +5 -0
- package/pack/generated/omp/commands/rite-temper.md +5 -0
- package/pack/generated/omp/commands/rite-upgrade.md +5 -0
- package/pack/generated/omp/commands/rite-vet.md +5 -0
- package/pack/generated/omp/commands/rite-watch-pr.md +5 -0
- package/pack/generated/omp/commands/rite-zoom-out.md +5 -0
- package/pack/generated/omp/commands/rite.md +5 -0
- package/pack/generated/omp/skills/devrites-audit/SKILL.md +2 -1
- package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/generated/omp/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +11 -18
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +35 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/generated/omp/skills/overhaul/SKILL.md +55 -35
- package/pack/generated/omp/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/generated/omp/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +49 -29
- package/pack/generated/omp/skills/overhaul/references/records.md +28 -6
- package/pack/generated/omp/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/generated/omp/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/omp/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/generated/omp/skills/overhaul/references/scoring.md +36 -7
- package/pack/generated/omp/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/generated/omp/skills/rite/SKILL.md +4 -1
- package/pack/generated/omp/skills/rite-adopt/SKILL.md +5 -2
- package/pack/generated/omp/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +10 -18
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +10 -1
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +6 -2
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-converge/SKILL.md +9 -2
- package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/generated/omp/skills/rite-define/SKILL.md +6 -1
- package/pack/generated/omp/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/generated/omp/skills/rite-doctor/SKILL.md +8 -2
- package/pack/generated/omp/skills/rite-explain/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/omp/skills/rite-fast/SKILL.md +183 -0
- package/pack/generated/omp/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/omp/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +14 -2
- package/pack/generated/omp/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/generated/omp/skills/rite-learn/SKILL.md +34 -4
- package/pack/generated/omp/skills/rite-plan/SKILL.md +2 -1
- package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/generated/omp/skills/rite-polish/SKILL.md +10 -4
- package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/generated/omp/skills/rite-polish/reference/ui.md +12 -3
- package/pack/generated/omp/skills/rite-pov/SKILL.md +14 -3
- package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/generated/omp/skills/rite-prove/SKILL.md +12 -4
- package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/generated/omp/skills/rite-quick/SKILL.md +4 -0
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +8 -2
- package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/generated/omp/skills/rite-review/SKILL.md +4 -1
- package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/generated/omp/skills/rite-seal/SKILL.md +5 -3
- package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/omp/skills/rite-spec/SKILL.md +12 -4
- package/pack/generated/omp/skills/rite-spec/reference/investigation.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/generated/omp/skills/rite-status/SKILL.md +11 -3
- package/pack/generated/omp/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/generated/omp/skills/rite-vet/SKILL.md +4 -2
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +5 -0
- package/pack/generated/pi/AGENTS.md +2 -0
- package/pack/generated/pi/agents/devrites-code-reviewer.md +19 -4
- package/pack/generated/pi/agents/devrites-devex-reviewer.md +7 -2
- package/pack/generated/pi/agents/devrites-doubt-reviewer.md +8 -0
- package/pack/generated/pi/agents/devrites-evidence-scout.md +14 -0
- package/pack/generated/pi/agents/devrites-frontend-reviewer.md +36 -17
- package/pack/generated/pi/agents/devrites-performance-reviewer.md +31 -8
- package/pack/generated/pi/agents/devrites-plan-reviewer.md +10 -2
- package/pack/generated/pi/agents/devrites-proof-runner.md +24 -4
- package/pack/generated/pi/agents/devrites-retrospector.md +22 -3
- package/pack/generated/pi/agents/devrites-security-auditor.md +34 -23
- package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +6 -1
- package/pack/generated/pi/agents/devrites-spec-reviewer.md +8 -2
- package/pack/generated/pi/agents/devrites-strategy-reviewer.md +13 -5
- package/pack/generated/pi/agents/devrites-test-analyst.md +10 -2
- package/pack/generated/pi/agents/devrites-upgrade-planner.md +7 -0
- package/pack/generated/pi/agents/fast-builder.md +90 -0
- package/pack/generated/pi/agents/fast-checker.md +60 -0
- package/pack/generated/pi/agents/fast-critic.md +70 -0
- package/pack/generated/pi/agents/fast-planner.md +95 -0
- package/pack/generated/pi/agents/overhaul-backend-engineer.md +70 -0
- package/pack/generated/pi/agents/overhaul-boundary.md +64 -0
- package/pack/generated/pi/agents/overhaul-craft.md +85 -0
- package/pack/generated/pi/agents/overhaul-frontend-engineer.md +73 -0
- package/pack/generated/pi/agents/overhaul-implementer.md +71 -0
- package/pack/generated/pi/agents/overhaul-recon.md +76 -0
- package/pack/generated/pi/agents/overhaul-specialist.md +67 -0
- package/pack/generated/pi/agents/overhaul-verifier.md +73 -0
- package/pack/generated/pi/prompts/rite-adopt.md +1 -1
- package/pack/generated/pi/prompts/rite-autocomplete.md +1 -1
- package/pack/generated/pi/prompts/rite-build.md +1 -1
- package/pack/generated/pi/prompts/rite-clarify.md +1 -1
- package/pack/generated/pi/prompts/rite-converge.md +2 -2
- package/pack/generated/pi/prompts/rite-customize.md +1 -1
- package/pack/generated/pi/prompts/rite-define.md +1 -1
- package/pack/generated/pi/prompts/rite-doctor.md +1 -1
- package/pack/generated/pi/prompts/rite-dogfood.md +1 -1
- package/pack/generated/pi/prompts/rite-explain.md +1 -1
- package/pack/generated/pi/prompts/rite-fast.md +5 -0
- package/pack/generated/pi/prompts/rite-frame.md +1 -1
- package/pack/generated/pi/prompts/rite-handoff.md +1 -1
- package/pack/generated/pi/prompts/rite-learn.md +1 -1
- package/pack/generated/pi/prompts/rite-plan.md +1 -1
- package/pack/generated/pi/prompts/rite-polish.md +1 -1
- package/pack/generated/pi/prompts/rite-pov.md +1 -1
- package/pack/generated/pi/prompts/rite-pr-feedback.md +1 -1
- package/pack/generated/pi/prompts/rite-pressure-test.md +1 -1
- package/pack/generated/pi/prompts/rite-prototype.md +1 -1
- package/pack/generated/pi/prompts/rite-prove.md +1 -1
- package/pack/generated/pi/prompts/rite-quick.md +1 -1
- package/pack/generated/pi/prompts/rite-resolve.md +1 -1
- package/pack/generated/pi/prompts/rite-review.md +1 -1
- package/pack/generated/pi/prompts/rite-seal.md +1 -1
- package/pack/generated/pi/prompts/rite-ship.md +1 -1
- package/pack/generated/pi/prompts/rite-spec.md +1 -1
- package/pack/generated/pi/prompts/rite-status.md +1 -1
- package/pack/generated/pi/prompts/rite-temper.md +1 -1
- package/pack/generated/pi/prompts/rite-upgrade.md +1 -1
- package/pack/generated/pi/prompts/rite-vet.md +1 -1
- package/pack/generated/pi/prompts/rite-watch-pr.md +1 -1
- package/pack/generated/pi/prompts/rite-zoom-out.md +1 -1
- package/pack/generated/pi/prompts/rite.md +1 -1
- package/pack/generated/pi/skills/devrites-audit/SKILL.md +2 -1
- package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +13 -2
- package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
- package/pack/generated/pi/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
- package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +4 -3
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
- package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +27 -5
- package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
- package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +21 -6
- package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +0 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +34 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +11 -4
- package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +16 -7
- package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +16 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +11 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +4 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/review/README.md +6 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +35 -17
- package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
- package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +36 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +22 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +9 -3
- package/pack/generated/pi/skills/devrites-prose-craft/reference/examples.md +11 -6
- package/pack/generated/pi/skills/overhaul/SKILL.md +55 -35
- package/pack/generated/pi/skills/overhaul/references/audit-domains.md +141 -14
- package/pack/generated/pi/skills/overhaul/references/lifecycle.md +8 -2
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +49 -29
- package/pack/generated/pi/skills/overhaul/references/records.md +28 -6
- package/pack/generated/pi/skills/overhaul/references/repair-and-measurement.md +108 -5
- package/pack/generated/pi/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/pi/skills/overhaul/references/scope-and-safety.md +62 -20
- package/pack/generated/pi/skills/overhaul/references/scoring.md +36 -7
- package/pack/generated/pi/skills/overhaul/references/stack-profiles.md +52 -0
- package/pack/generated/pi/skills/rite/SKILL.md +4 -1
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +5 -2
- package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +6 -0
- package/pack/generated/pi/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +2 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +3 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
- package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +8 -16
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +9 -0
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +5 -1
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-converge/SKILL.md +9 -2
- package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +5 -0
- package/pack/generated/pi/skills/rite-define/SKILL.md +6 -1
- package/pack/generated/pi/skills/rite-define/reference/plan-template.md +4 -0
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +8 -2
- package/pack/generated/pi/skills/rite-fast/SKILL.md +183 -0
- package/pack/generated/pi/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/pi/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +14 -2
- package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +16 -4
- package/pack/generated/pi/skills/rite-learn/SKILL.md +34 -4
- package/pack/generated/pi/skills/rite-plan/SKILL.md +2 -1
- package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +6 -0
- package/pack/generated/pi/skills/rite-polish/SKILL.md +10 -4
- package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +59 -36
- package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +2 -1
- package/pack/generated/pi/skills/rite-polish/reference/ui.md +12 -3
- package/pack/generated/pi/skills/rite-pov/SKILL.md +14 -3
- package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +5 -1
- package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +5 -3
- package/pack/generated/pi/skills/rite-prove/SKILL.md +12 -4
- package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +12 -3
- package/pack/generated/pi/skills/rite-quick/SKILL.md +4 -0
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +7 -1
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +1 -1
- package/pack/generated/pi/skills/rite-review/SKILL.md +4 -1
- package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +9 -1
- package/pack/generated/pi/skills/rite-seal/SKILL.md +5 -3
- package/pack/generated/pi/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/pi/skills/rite-spec/SKILL.md +12 -4
- package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +4 -2
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +3 -0
- package/pack/generated/pi/skills/rite-status/SKILL.md +11 -3
- package/pack/generated/pi/skills/rite-upgrade/SKILL.md +7 -1
- package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -2
- package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +5 -0
- package/package.json +13 -10
- package/scripts/build-host-artifacts.sh +8 -3
- package/scripts/codex-generate.sh +3 -1
- package/scripts/devin-generate.sh +5 -3
- package/scripts/omp-generate.sh +39 -6
- package/scripts/pi-generate.sh +10 -4
- package/engine/.gosec.json +0 -5
- package/pack/generated/omp/skills/overhaul/roles/backend-engineer.md +0 -61
- package/pack/generated/omp/skills/overhaul/roles/boundary.md +0 -56
- package/pack/generated/omp/skills/overhaul/roles/craft.md +0 -77
- package/pack/generated/omp/skills/overhaul/roles/frontend-engineer.md +0 -63
- package/pack/generated/omp/skills/overhaul/roles/implementer.md +0 -59
- package/pack/generated/omp/skills/overhaul/roles/recon.md +0 -60
- package/pack/generated/omp/skills/overhaul/roles/specialist.md +0 -56
- package/pack/generated/omp/skills/overhaul/roles/verifier.md +0 -60
- package/pack/generated/pi/skills/overhaul/roles/backend-engineer.md +0 -61
- package/pack/generated/pi/skills/overhaul/roles/boundary.md +0 -56
- package/pack/generated/pi/skills/overhaul/roles/craft.md +0 -77
- package/pack/generated/pi/skills/overhaul/roles/frontend-engineer.md +0 -63
- package/pack/generated/pi/skills/overhaul/roles/implementer.md +0 -59
- package/pack/generated/pi/skills/overhaul/roles/recon.md +0 -60
- package/pack/generated/pi/skills/overhaul/roles/specialist.md +0 -56
- package/pack/generated/pi/skills/overhaul/roles/verifier.md +0 -60
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
package bench
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"math"
|
|
5
|
+
"sort"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
// uNull returns P(U = u) for u = 0..n*m under the Mann-Whitney null with arm
|
|
9
|
+
// sizes n and m, from the generating function prod_i (1-q^(m+i))/(1-q^i).
|
|
10
|
+
// Cancellation leaves the upper half inaccurate; only the lower tail is read.
|
|
11
|
+
func uNull(n, m int) []float64 {
|
|
12
|
+
c := make([]float64, n*m+1)
|
|
13
|
+
c[0] = 1
|
|
14
|
+
for i := 1; i <= n; i++ {
|
|
15
|
+
for u := len(c) - 1; u >= m+i; u-- {
|
|
16
|
+
c[u] -= c[u-m-i]
|
|
17
|
+
}
|
|
18
|
+
for u := i; u < len(c); u++ {
|
|
19
|
+
c[u] += c[u-i]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
total := 0.0
|
|
23
|
+
for _, v := range c {
|
|
24
|
+
total += v
|
|
25
|
+
}
|
|
26
|
+
for i := range c {
|
|
27
|
+
c[i] /= total
|
|
28
|
+
}
|
|
29
|
+
return c
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// exactLimit bounds the arm sizes for the exact null distribution, well inside
|
|
33
|
+
// float64 range and cheap to compute; beyond it the (slightly conservative)
|
|
34
|
+
// normal approximation takes over.
|
|
35
|
+
const exactLimit = 400
|
|
36
|
+
|
|
37
|
+
// maxPairs caps n*m for the pairwise differences, which are held in memory.
|
|
38
|
+
const maxPairs = 4_000_000
|
|
39
|
+
|
|
40
|
+
// tailCount returns the largest k with P(U <= k-1) <= alpha/2: the pairwise
|
|
41
|
+
// differences D_(1..k-1) and D_(nm-k+2..nm) fall outside a (1-alpha) interval,
|
|
42
|
+
// whose endpoints are D_(k) and D_(nm+1-k). Zero means no finite interval.
|
|
43
|
+
func tailCount(n, m int, alpha float64) int {
|
|
44
|
+
if n+m <= exactLimit {
|
|
45
|
+
p, cum, k := uNull(n, m), 0.0, 0
|
|
46
|
+
for u := range p {
|
|
47
|
+
if cum += p[u]; cum > alpha/2 {
|
|
48
|
+
break
|
|
49
|
+
}
|
|
50
|
+
k = u + 1
|
|
51
|
+
}
|
|
52
|
+
return k
|
|
53
|
+
}
|
|
54
|
+
mean := float64(n*m) / 2
|
|
55
|
+
sd := math.Sqrt(float64(n*m*(n+m+1)) / 12)
|
|
56
|
+
return max(0, int(math.Floor(mean-normalQuantile(1-alpha/2)*sd-0.5))+1)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// hlRatio is the Hodges-Lehmann ratio estimate exp(median(ln x_i - ln y_j))
|
|
60
|
+
// with its distribution-free (1-alpha) bounds. ok is false when a sample is
|
|
61
|
+
// not positive or the arms are too small for a finite interval.
|
|
62
|
+
func hlRatio(x, y []float64, alpha float64) (est, lo, hi float64, ok bool) {
|
|
63
|
+
if len(x)*len(y) > maxPairs {
|
|
64
|
+
return 0, 0, 0, false
|
|
65
|
+
}
|
|
66
|
+
z := make([]float64, 0, len(x)*len(y))
|
|
67
|
+
for _, a := range x {
|
|
68
|
+
for _, b := range y {
|
|
69
|
+
if a <= 0 || b <= 0 {
|
|
70
|
+
return 0, 0, 0, false
|
|
71
|
+
}
|
|
72
|
+
z = append(z, math.Log(a)-math.Log(b))
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
k := tailCount(len(x), len(y), alpha)
|
|
76
|
+
if k == 0 {
|
|
77
|
+
return 0, 0, 0, false
|
|
78
|
+
}
|
|
79
|
+
sort.Float64s(z)
|
|
80
|
+
return math.Exp(median(z)), math.Exp(z[k-1]), math.Exp(z[len(z)-k]), true
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// quantileBounds returns one-sided (1-alpha) distribution-free bounds for the
|
|
84
|
+
// p-quantile of xs from its order statistics; a missing bound is ±Inf. With
|
|
85
|
+
// F(j) = P(Bin(n, p) <= j), the upper bound is x_(k) for the smallest k with
|
|
86
|
+
// F(k-1) >= 1-alpha and the lower bound x_(j) for the largest j with
|
|
87
|
+
// F(j-1) <= alpha.
|
|
88
|
+
func quantileBounds(xs []float64, p, alpha float64) (lcb, ucb float64) {
|
|
89
|
+
s := append([]float64(nil), xs...)
|
|
90
|
+
sort.Float64s(s)
|
|
91
|
+
n := len(s)
|
|
92
|
+
lcb, ucb = math.Inf(-1), math.Inf(1)
|
|
93
|
+
lg := func(k int) float64 { v, _ := math.Lgamma(float64(k) + 1); return v }
|
|
94
|
+
cdf := 0.0
|
|
95
|
+
for i := 0; i < n; i++ { // cdf = F(i) after this step
|
|
96
|
+
cdf += math.Exp(lg(n) - lg(i) - lg(n-i) + float64(i)*math.Log(p) + float64(n-i)*math.Log1p(-p))
|
|
97
|
+
if cdf <= alpha {
|
|
98
|
+
lcb = s[i] // j = i+1
|
|
99
|
+
}
|
|
100
|
+
if cdf >= 1-alpha {
|
|
101
|
+
ucb = s[i] // k = i+1
|
|
102
|
+
break
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return lcb, ucb
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// quantile7 is the linearly interpolated sample quantile (Hyndman-Fan type 7).
|
|
109
|
+
func quantile7(xs []float64, p float64) float64 {
|
|
110
|
+
s := append([]float64(nil), xs...)
|
|
111
|
+
sort.Float64s(s)
|
|
112
|
+
h := p * float64(len(s)-1)
|
|
113
|
+
i := int(math.Floor(h))
|
|
114
|
+
if i+1 >= len(s) {
|
|
115
|
+
return s[len(s)-1]
|
|
116
|
+
}
|
|
117
|
+
return s[i] + (h-float64(i))*(s[i+1]-s[i])
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// wilson returns the Wilson score interval for e events in n trials.
|
|
121
|
+
func wilson(p float64, n, z float64) (lo, hi float64) {
|
|
122
|
+
d := 1 + z*z/n
|
|
123
|
+
c := (p + z*z/(2*n)) / d
|
|
124
|
+
h := z * math.Sqrt(p*(1-p)/n+z*z/(4*n*n)) / d
|
|
125
|
+
return max(0, c-h), min(1, c+h)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// newcombe returns the hybrid score interval (Newcombe 1998, method 10) for
|
|
129
|
+
// p1 - p2 from proportions over n1 and n2 trials.
|
|
130
|
+
func newcombe(p1, n1, p2, n2, z float64) (lo, hi float64) {
|
|
131
|
+
l1, u1 := wilson(p1, n1, z)
|
|
132
|
+
l2, u2 := wilson(p2, n2, z)
|
|
133
|
+
d := p1 - p2
|
|
134
|
+
return d - math.Sqrt((p1-l1)*(p1-l1)+(u2-p2)*(u2-p2)), d + math.Sqrt((u1-p1)*(u1-p1)+(p2-l2)*(p2-l2))
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// normalQuantile is the standard normal inverse CDF (Acklam's rational
|
|
138
|
+
// approximation, relative error below 1.2e-9).
|
|
139
|
+
func normalQuantile(p float64) float64 {
|
|
140
|
+
a := []float64{-3.969683028665376e+01, 2.209460984245205e+02, -2.759285104469687e+02, 1.383577518672690e+02, -3.066479806614716e+01, 2.506628277459239e+00}
|
|
141
|
+
b := []float64{-5.447609879822406e+01, 1.615858368580409e+02, -1.556989798598866e+02, 6.680131188771972e+01, -1.328068155288572e+01}
|
|
142
|
+
c := []float64{-7.784894002430293e-03, -3.223964580411365e-01, -2.400758277161838e+00, -2.549732539343734e+00, 4.374664141464968e+00, 2.938163982698783e+00}
|
|
143
|
+
d := []float64{7.784695709041462e-03, 3.224671290700398e-01, 2.445134137142996e+00, 3.754408661907416e+00}
|
|
144
|
+
switch {
|
|
145
|
+
case p < 0.02425:
|
|
146
|
+
q := math.Sqrt(-2 * math.Log(p))
|
|
147
|
+
return (((((c[0]*q+c[1])*q+c[2])*q+c[3])*q+c[4])*q + c[5]) / ((((d[0]*q+d[1])*q+d[2])*q+d[3])*q + 1)
|
|
148
|
+
case p > 1-0.02425:
|
|
149
|
+
return -normalQuantile(1 - p)
|
|
150
|
+
}
|
|
151
|
+
q := p - 0.5
|
|
152
|
+
r := q * q
|
|
153
|
+
return (((((a[0]*r+a[1])*r+a[2])*r+a[3])*r+a[4])*r + a[5]) * q / (((((b[0]*r+b[1])*r+b[2])*r+b[3])*r+b[4])*r + 1)
|
|
154
|
+
}
|
|
@@ -156,3 +156,7 @@ func Truthy(v any) bool {
|
|
|
156
156
|
}
|
|
157
157
|
return true
|
|
158
158
|
}
|
|
159
|
+
|
|
160
|
+
// Domains is the fixed set of score domains in their documented order. Findings,
|
|
161
|
+
// receipts, the applicability matrix and the rubric all use these keys.
|
|
162
|
+
var Domains = []string{"correctness", "security", "reliability", "performance", "tests", "architecture", "ux", "operations"}
|
|
@@ -12,6 +12,7 @@ import (
|
|
|
12
12
|
"strings"
|
|
13
13
|
|
|
14
14
|
"github.com/devrites/devrites/internal/overhaul/ovio"
|
|
15
|
+
"github.com/devrites/devrites/internal/overhaul/snapshot"
|
|
15
16
|
)
|
|
16
17
|
|
|
17
18
|
func set(vals ...string) map[string]bool {
|
|
@@ -199,6 +200,9 @@ func BadPath(p any, repo string) string {
|
|
|
199
200
|
return "names a directory or git metadata"
|
|
200
201
|
}
|
|
201
202
|
}
|
|
203
|
+
if strings.HasPrefix(s, snapshot.RunAreaDir) {
|
|
204
|
+
return "names the overhaul run area"
|
|
205
|
+
}
|
|
202
206
|
if isDir(join(repo, s)) {
|
|
203
207
|
return "names a directory or git metadata"
|
|
204
208
|
}
|
|
@@ -576,6 +580,9 @@ func Check(run, genDir, prevDir string) ([]string, error) {
|
|
|
576
580
|
add("run.json: readiness_verdict differs from scorecard.json")
|
|
577
581
|
}
|
|
578
582
|
}
|
|
583
|
+
if err := consistency(run, genDir, R, add); err != nil {
|
|
584
|
+
return nil, err
|
|
585
|
+
}
|
|
579
586
|
ap := ovio.List(R["approval.json"]["events"])
|
|
580
587
|
uniq(ap, idKey, "approval", add)
|
|
581
588
|
stopAt := -1
|
|
@@ -820,6 +827,26 @@ func Check(run, genDir, prevDir string) ([]string, error) {
|
|
|
820
827
|
}
|
|
821
828
|
}
|
|
822
829
|
}
|
|
830
|
+
// Views are how the user reads a stop: every stop carries the report, and a
|
|
831
|
+
// pending approval carries the review page and the plan it approves.
|
|
832
|
+
if outcome := str(rj, "execution_outcome"); outcome != "" && outcome != "RUNNING" {
|
|
833
|
+
for _, v := range []string{"report.html", "report.md"} {
|
|
834
|
+
if !isFile(join(vdir, v)) {
|
|
835
|
+
add("views/%s is required once the run stops (execution_outcome %s)", v, outcome)
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
if str(rj, "phase") == "AWAITING_APPROVAL" {
|
|
840
|
+
need := []string{"review.html", "review.md"}
|
|
841
|
+
if hasPR {
|
|
842
|
+
need = append(need, "plan.md")
|
|
843
|
+
}
|
|
844
|
+
for _, v := range need {
|
|
845
|
+
if !isFile(join(vdir, v)) {
|
|
846
|
+
add("views/%s is required while awaiting approval", v)
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
}
|
|
823
850
|
return errs, nil
|
|
824
851
|
}
|
|
825
852
|
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
package records
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"encoding/json"
|
|
5
|
+
"slices"
|
|
6
|
+
|
|
7
|
+
"github.com/devrites/devrites/internal/overhaul/ovio"
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
var (
|
|
11
|
+
jsonZero = any(json.Number("0"))
|
|
12
|
+
domains = set(ovio.Domains...)
|
|
13
|
+
cellStates = set("applicable", "not-applicable", "blocked")
|
|
14
|
+
rangeStates = set("inventoried", "tool-scanned", "semantically-reviewed", "cross-boundary-reviewed", "verified", "excluded", "blocked")
|
|
15
|
+
reviewedRange = set("semantically-reviewed", "cross-boundary-reviewed", "verified", "excluded")
|
|
16
|
+
openFinding = set("confirmed", "approved-for-fix", "in-progress", "fixed-unverified", "deferred", "accepted-risk")
|
|
17
|
+
serious = set("critical", "high")
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
// consistency checks that findings, the coverage ledger, the applicability
|
|
21
|
+
// matrix, the control results and the recorded gates agree with each other, so
|
|
22
|
+
// a gate or control cannot claim PASS against the run's own records.
|
|
23
|
+
func consistency(run, genDir string, R map[string]map[string]any, add func(string, ...any)) error {
|
|
24
|
+
controls, err := rubricControls(run, R["run.json"])
|
|
25
|
+
if err != nil {
|
|
26
|
+
return err
|
|
27
|
+
}
|
|
28
|
+
fs := ovio.List(R["findings.json"]["findings"])
|
|
29
|
+
for _, it := range fs {
|
|
30
|
+
f := ovio.Obj(it)
|
|
31
|
+
fid := PyStr(f["id"])
|
|
32
|
+
if !domains[str(f, "domain")] {
|
|
33
|
+
add("finding %s: domain must be one of %s", fid, Repr(ovio.Domains))
|
|
34
|
+
}
|
|
35
|
+
if controls == nil {
|
|
36
|
+
continue
|
|
37
|
+
}
|
|
38
|
+
cs := ovio.List(f["controls"])
|
|
39
|
+
if len(cs) == 0 && severityOK[str(f, "status")] {
|
|
40
|
+
add("finding %s: a confirmed finding names the rubric controls it fails", fid)
|
|
41
|
+
}
|
|
42
|
+
for _, c := range cs {
|
|
43
|
+
if !controls.has(c) {
|
|
44
|
+
add("finding %s: unknown control %s", fid, PyStr(c))
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
cov := R["coverage.json"]
|
|
50
|
+
cells := ovio.List(cov["applicability"])
|
|
51
|
+
seen := vset{}
|
|
52
|
+
for _, it := range cells {
|
|
53
|
+
c := ovio.Obj(it)
|
|
54
|
+
key := Repr([]any{c["domain"], c["component"], c["lane"]})
|
|
55
|
+
if seen.has(key) {
|
|
56
|
+
add("applicability %s: duplicate cell", key)
|
|
57
|
+
}
|
|
58
|
+
seen.add(key)
|
|
59
|
+
if !domains[str(c, "domain")] || str(c, "component") == "" || str(c, "lane") == "" {
|
|
60
|
+
add("applicability %s: needs a known domain, a component and a lane", key)
|
|
61
|
+
}
|
|
62
|
+
st := str(c, "state")
|
|
63
|
+
if !cellStates[st] {
|
|
64
|
+
add("applicability %s: state must be applicable, not-applicable or blocked", key)
|
|
65
|
+
}
|
|
66
|
+
if st != "applicable" && !ovio.Truthy(c["reason"]) {
|
|
67
|
+
add("applicability %s: %s needs a reason", key, st)
|
|
68
|
+
}
|
|
69
|
+
for _, r := range ovio.List(c["receipts"]) {
|
|
70
|
+
if p := ovio.Str(r); p == "" || !inside(run, p) || !isFile(join(run, p)) {
|
|
71
|
+
add("applicability %s: receipt %s missing or outside the run dir", key, PyStr(r))
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for _, it := range ovio.List(cov["files"]) {
|
|
76
|
+
for _, r := range ovio.List(ovio.Obj(it)["ranges"]) {
|
|
77
|
+
if st := str(ovio.Obj(r), "state"); !rangeStates[st] {
|
|
78
|
+
add("coverage %s: range state %s is not a coverage state", PyStr(ovio.Obj(it)["path"]), Repr(st))
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
results := ""
|
|
84
|
+
for _, name := range []string{"results-candidate.json", "results-baseline.json"} {
|
|
85
|
+
if isFile(join(genDir, name)) {
|
|
86
|
+
results = name
|
|
87
|
+
break
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if results != "" {
|
|
91
|
+
doc, err := ovio.LoadObject(join(genDir, results))
|
|
92
|
+
if err != nil {
|
|
93
|
+
return err
|
|
94
|
+
}
|
|
95
|
+
res := ovio.Obj(doc["results"])
|
|
96
|
+
for _, it := range fs {
|
|
97
|
+
f := ovio.Obj(it)
|
|
98
|
+
if !openFinding[str(f, "status")] {
|
|
99
|
+
continue
|
|
100
|
+
}
|
|
101
|
+
for _, c := range ovio.List(f["controls"]) {
|
|
102
|
+
if str(ovio.Obj(res[ovio.Str(c)]), "status") == "PASS" {
|
|
103
|
+
add("finding %s: control %s is PASS in %s while the finding is %s",
|
|
104
|
+
PyStr(f["id"]), PyStr(c), results, str(f, "status"))
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
scp := join(genDir, "scorecard.json")
|
|
111
|
+
if !isFile(scp) {
|
|
112
|
+
return nil
|
|
113
|
+
}
|
|
114
|
+
sc, err := ovio.LoadObject(scp)
|
|
115
|
+
if err != nil {
|
|
116
|
+
return err
|
|
117
|
+
}
|
|
118
|
+
gates := ovio.Obj(sc["gates"])
|
|
119
|
+
claims := func(g string) bool { return str(gates, g) == "PASS" }
|
|
120
|
+
for _, it := range fs {
|
|
121
|
+
f := ovio.Obj(it)
|
|
122
|
+
fid, status := PyStr(f["id"]), str(f, "status")
|
|
123
|
+
if claims("G-NO-CRITICAL-HIGH") && openFinding[status] && serious[str(f, "severity")] {
|
|
124
|
+
add("scorecard: G-NO-CRITICAL-HIGH is PASS but finding %s is %s %s", fid, status, str(f, "severity"))
|
|
125
|
+
}
|
|
126
|
+
if claims("G-NO-OPEN-SERIOUS-LEAD") && (status == "candidate" || status == "needs-validation") &&
|
|
127
|
+
serious[str(f, "potential_impact")] {
|
|
128
|
+
add("scorecard: G-NO-OPEN-SERIOUS-LEAD is PASS but lead %s is open with potential impact %s", fid, str(f, "potential_impact"))
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if !claims("G-COVERAGE") {
|
|
132
|
+
return nil
|
|
133
|
+
}
|
|
134
|
+
admitted := map[string]bool{}
|
|
135
|
+
for _, it := range ovio.List(R["dispatch.json"]["attempts"]) {
|
|
136
|
+
if x := ovio.Obj(it); str(x, "status") == "admitted" {
|
|
137
|
+
admitted[str(x, "receipt")] = true
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if len(cells) == 0 {
|
|
141
|
+
add("scorecard: G-COVERAGE is PASS without an applicability matrix in coverage.json")
|
|
142
|
+
}
|
|
143
|
+
for _, it := range cells {
|
|
144
|
+
c := ovio.Obj(it)
|
|
145
|
+
key := Repr([]any{c["domain"], c["component"], c["lane"]})
|
|
146
|
+
switch str(c, "state") {
|
|
147
|
+
case "blocked":
|
|
148
|
+
add("scorecard: G-COVERAGE is PASS but applicability %s is blocked", key)
|
|
149
|
+
case "applicable":
|
|
150
|
+
if !checkedBy(run, str(c, "domain"), ovio.List(c["receipts"]), admitted) {
|
|
151
|
+
add("scorecard: G-COVERAGE is PASS but no admitted, non-gap receipt of applicability %s lists %s in domains_checked", key, str(c, "domain"))
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
for _, it := range ovio.List(cov["files"]) {
|
|
156
|
+
f := ovio.Obj(it)
|
|
157
|
+
if !ovio.Truthy(f["eligible"]) {
|
|
158
|
+
continue
|
|
159
|
+
}
|
|
160
|
+
rs := ovio.List(f["ranges"])
|
|
161
|
+
done := len(rs) > 0 || eq(f["lines"], jsonZero)
|
|
162
|
+
for _, r := range rs {
|
|
163
|
+
done = done && reviewedRange[str(ovio.Obj(r), "state")]
|
|
164
|
+
}
|
|
165
|
+
if !done {
|
|
166
|
+
add("scorecard: G-COVERAGE is PASS but eligible file %s has unreviewed ranges", PyStr(f["path"]))
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return nil
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// checkedBy reports whether any admitted, non-gap receipt records domain in
|
|
173
|
+
// domains_checked.
|
|
174
|
+
func checkedBy(run, domain string, receipts []any, admitted map[string]bool) bool {
|
|
175
|
+
for _, r := range receipts {
|
|
176
|
+
p := ovio.Str(r)
|
|
177
|
+
if !admitted[p] || !inside(run, p) || !isFile(join(run, p)) {
|
|
178
|
+
continue
|
|
179
|
+
}
|
|
180
|
+
rc, err := ovio.LoadObject(join(run, p))
|
|
181
|
+
if err != nil || str(rc, "outcome") == "gap" {
|
|
182
|
+
continue
|
|
183
|
+
}
|
|
184
|
+
if slices.ContainsFunc(ovio.List(rc["domains_checked"]), func(d any) bool { return d == any(domain) }) {
|
|
185
|
+
return true
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return false
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// rubricControls returns the control IDs of the run's rubric (revisions.rubric,
|
|
192
|
+
// else the plan's pinned rubric), or nil when no rubric is frozen yet.
|
|
193
|
+
func rubricControls(run string, rj map[string]any) (vset, error) {
|
|
194
|
+
revs := ovio.Obj(rj["revisions"])
|
|
195
|
+
rf := str(ovio.Obj(revs["rubric"]), "file")
|
|
196
|
+
if rf == "" {
|
|
197
|
+
if pf := str(ovio.Obj(revs["plan"]), "file"); pf != "" && inside(run, pf) && isFile(join(run, pf)) {
|
|
198
|
+
plan, err := ovio.LoadObject(join(run, pf))
|
|
199
|
+
if err != nil {
|
|
200
|
+
return nil, err
|
|
201
|
+
}
|
|
202
|
+
rf = str(ovio.Obj(plan["rubric"]), "file")
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if rf == "" || !inside(run, rf) || !isFile(join(run, rf)) {
|
|
206
|
+
return nil, nil
|
|
207
|
+
}
|
|
208
|
+
doc, err := ovio.LoadObject(join(run, rf))
|
|
209
|
+
if err != nil {
|
|
210
|
+
return nil, err
|
|
211
|
+
}
|
|
212
|
+
ids := vset{}
|
|
213
|
+
for _, c := range ovio.List(doc["controls"]) {
|
|
214
|
+
ids.add(ovio.Obj(c)["id"])
|
|
215
|
+
}
|
|
216
|
+
return ids, nil
|
|
217
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
package records
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"encoding/json"
|
|
5
|
+
"errors"
|
|
6
|
+
"fmt"
|
|
7
|
+
"io"
|
|
8
|
+
"os"
|
|
9
|
+
"os/exec"
|
|
10
|
+
"path/filepath"
|
|
11
|
+
"regexp"
|
|
12
|
+
"strings"
|
|
13
|
+
|
|
14
|
+
"github.com/devrites/devrites/internal/gitenv"
|
|
15
|
+
"github.com/devrites/devrites/internal/overhaul/snapshot"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
var runIDPattern = regexp.MustCompile(`^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$`)
|
|
19
|
+
|
|
20
|
+
// excludeLine is what init adds to the local .git/info/exclude when git does
|
|
21
|
+
// not already ignore the run area. It never edits the shared .gitignore.
|
|
22
|
+
const excludeLine = "/" + snapshot.RunAreaDir
|
|
23
|
+
|
|
24
|
+
// initRun creates <repo>/.devrites/overhaul/<run-id>/ owner-only and makes
|
|
25
|
+
// sure git ignores it, so run records never show up as repository changes.
|
|
26
|
+
func initRun(repo, runID string, stdout io.Writer) error {
|
|
27
|
+
if !runIDPattern.MatchString(runID) {
|
|
28
|
+
return fmt.Errorf("run id %q: use 1-64 letters, digits, '.', '_' or '-', starting with a letter or digit", runID)
|
|
29
|
+
}
|
|
30
|
+
top, err := gitText(repo, "rev-parse", "--show-toplevel")
|
|
31
|
+
if err != nil {
|
|
32
|
+
return fmt.Errorf("%s is not a git repository: %v", repo, err)
|
|
33
|
+
}
|
|
34
|
+
runDir := filepath.Join(filepath.FromSlash(top), filepath.FromSlash(snapshot.RunAreaDir), runID)
|
|
35
|
+
if _, err := os.Lstat(runDir); err == nil {
|
|
36
|
+
return fmt.Errorf("run area %s already exists; resume it or pick a new run id", runDir)
|
|
37
|
+
}
|
|
38
|
+
probe := snapshot.RunAreaDir + runID + "/probe"
|
|
39
|
+
how := "already-ignored"
|
|
40
|
+
ignored, err := gitIgnores(top, probe)
|
|
41
|
+
if err != nil {
|
|
42
|
+
return err
|
|
43
|
+
}
|
|
44
|
+
if !ignored {
|
|
45
|
+
if err := addExclude(top); err != nil {
|
|
46
|
+
return err
|
|
47
|
+
}
|
|
48
|
+
if ignored, err = gitIgnores(top, probe); err != nil {
|
|
49
|
+
return err
|
|
50
|
+
}
|
|
51
|
+
if !ignored {
|
|
52
|
+
return fmt.Errorf("git still does not ignore %s after adding %s to info/exclude; a negated rule may re-include it", snapshot.RunAreaDir, excludeLine)
|
|
53
|
+
}
|
|
54
|
+
how = "added-to-info-exclude"
|
|
55
|
+
}
|
|
56
|
+
if err := os.MkdirAll(filepath.Dir(runDir), 0o700); err != nil {
|
|
57
|
+
return err
|
|
58
|
+
}
|
|
59
|
+
if err := os.Mkdir(runDir, 0o700); err != nil {
|
|
60
|
+
return err
|
|
61
|
+
}
|
|
62
|
+
b, err := json.Marshal(struct {
|
|
63
|
+
Run string `json:"run"`
|
|
64
|
+
Ignore string `json:"ignore"`
|
|
65
|
+
}{runDir, how})
|
|
66
|
+
if err != nil {
|
|
67
|
+
return err
|
|
68
|
+
}
|
|
69
|
+
_, err = fmt.Fprintln(stdout, string(b))
|
|
70
|
+
return err
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
func addExclude(top string) error {
|
|
74
|
+
p, err := gitText(top, "rev-parse", "--git-path", "info/exclude")
|
|
75
|
+
if err != nil {
|
|
76
|
+
return err
|
|
77
|
+
}
|
|
78
|
+
path := filepath.FromSlash(p)
|
|
79
|
+
if !filepath.IsAbs(path) {
|
|
80
|
+
path = filepath.Join(top, path)
|
|
81
|
+
}
|
|
82
|
+
// #nosec G304 -- exclude file inside the repo's own resolved git dir
|
|
83
|
+
if data, err := os.ReadFile(path); err == nil {
|
|
84
|
+
for _, l := range strings.Split(string(data), "\n") {
|
|
85
|
+
if strings.TrimSpace(l) == excludeLine {
|
|
86
|
+
return nil
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
|
|
91
|
+
return err
|
|
92
|
+
}
|
|
93
|
+
// #nosec G304 -- exclude file inside the repo's own resolved git dir
|
|
94
|
+
f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
|
|
95
|
+
if err != nil {
|
|
96
|
+
return err
|
|
97
|
+
}
|
|
98
|
+
_, werr := fmt.Fprintf(f, "\n# /overhaul run records (local only)\n%s\n", excludeLine)
|
|
99
|
+
if cerr := f.Close(); werr == nil {
|
|
100
|
+
werr = cerr
|
|
101
|
+
}
|
|
102
|
+
return werr
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// gitIgnores reports whether git's ignore rules match rel (tracked or not).
|
|
106
|
+
func gitIgnores(top, rel string) (bool, error) {
|
|
107
|
+
cmd := gitCmd(top, "check-ignore", "-q", "--no-index", rel)
|
|
108
|
+
err := cmd.Run()
|
|
109
|
+
var ee *exec.ExitError
|
|
110
|
+
switch {
|
|
111
|
+
case err == nil:
|
|
112
|
+
return true, nil
|
|
113
|
+
case errors.As(err, &ee) && ee.ExitCode() == 1:
|
|
114
|
+
return false, nil
|
|
115
|
+
default:
|
|
116
|
+
return false, fmt.Errorf("git check-ignore: %v", err)
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
func gitText(dir string, args ...string) (string, error) {
|
|
121
|
+
out, err := gitCmd(dir, args...).Output()
|
|
122
|
+
if err != nil {
|
|
123
|
+
return "", err
|
|
124
|
+
}
|
|
125
|
+
return strings.TrimSpace(string(out)), nil
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func gitCmd(dir string, args ...string) *exec.Cmd {
|
|
129
|
+
cmd := exec.Command("git", append([]string{"-C", dir}, args...)...) // #nosec G204 -- fixed git binary; arguments passed as argv, no shell
|
|
130
|
+
cmd.Env = append(gitenv.Sanitize(os.Environ()), "GIT_OPTIONAL_LOCKS=0", "GIT_TERMINAL_PROMPT=0")
|
|
131
|
+
return cmd
|
|
132
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
package records
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"bytes"
|
|
5
|
+
"encoding/json"
|
|
6
|
+
"os"
|
|
7
|
+
"os/exec"
|
|
8
|
+
"path/filepath"
|
|
9
|
+
"runtime"
|
|
10
|
+
"strings"
|
|
11
|
+
"testing"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
func gitRepo(t *testing.T) string {
|
|
15
|
+
t.Helper()
|
|
16
|
+
root := t.TempDir()
|
|
17
|
+
cmd := exec.Command("git", "init", "-q", root)
|
|
18
|
+
cmd.Env = append(os.Environ(), "GIT_CONFIG_GLOBAL="+os.DevNull, "GIT_CONFIG_NOSYSTEM=1")
|
|
19
|
+
if out, err := cmd.CombinedOutput(); err != nil {
|
|
20
|
+
t.Fatalf("git init: %v %s", err, out)
|
|
21
|
+
}
|
|
22
|
+
return root
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
func initRunCmd(args ...string) (int, string, string) {
|
|
26
|
+
var o, e bytes.Buffer
|
|
27
|
+
code := Run(append([]string{"init"}, args...), &o, &e)
|
|
28
|
+
return code, o.String(), e.String()
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
func TestInitCreatesIgnoredRunArea(t *testing.T) {
|
|
32
|
+
repo := gitRepo(t)
|
|
33
|
+
code, out, errs := initRunCmd(repo, "ov-1")
|
|
34
|
+
if code != 0 {
|
|
35
|
+
t.Fatalf("init: %d %s", code, errs)
|
|
36
|
+
}
|
|
37
|
+
var got struct{ Run, Ignore string }
|
|
38
|
+
if err := json.Unmarshal([]byte(out), &got); err != nil {
|
|
39
|
+
t.Fatalf("output %q: %v", out, err)
|
|
40
|
+
}
|
|
41
|
+
want := filepath.Join(repo, ".devrites", "overhaul", "ov-1")
|
|
42
|
+
if r1, _ := filepath.EvalSymlinks(got.Run); r1 != mustEval(t, want) || got.Ignore != "added-to-info-exclude" {
|
|
43
|
+
t.Fatalf("got %+v, want run %s added-to-info-exclude", got, want)
|
|
44
|
+
}
|
|
45
|
+
if fi, err := os.Stat(want); err != nil || !fi.IsDir() || (runtime.GOOS != "windows" && fi.Mode().Perm() != 0o700) {
|
|
46
|
+
t.Fatalf("run dir: %v %v", fi, err)
|
|
47
|
+
}
|
|
48
|
+
b, _ := os.ReadFile(filepath.Join(repo, ".git", "info", "exclude"))
|
|
49
|
+
if !strings.Contains(string(b), "/.devrites/overhaul/\n") {
|
|
50
|
+
t.Fatalf("exclude file: %q", b)
|
|
51
|
+
}
|
|
52
|
+
// Idempotent exclude, refused reuse of an existing run id.
|
|
53
|
+
if code, _, _ := initRunCmd(repo, "ov-2"); code != 0 {
|
|
54
|
+
t.Fatal("second run id refused")
|
|
55
|
+
}
|
|
56
|
+
b2, _ := os.ReadFile(filepath.Join(repo, ".git", "info", "exclude"))
|
|
57
|
+
if strings.Count(string(b2), "/.devrites/overhaul/") != 1 {
|
|
58
|
+
t.Fatalf("exclude line duplicated: %q", b2)
|
|
59
|
+
}
|
|
60
|
+
if code, _, errs := initRunCmd(repo, "ov-1"); code != 2 || !strings.Contains(errs, "already exists") {
|
|
61
|
+
t.Fatalf("reuse: %d %s", code, errs)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func TestInitRespectsExistingIgnore(t *testing.T) {
|
|
66
|
+
repo := gitRepo(t)
|
|
67
|
+
write(t, filepath.Join(repo, ".gitignore"), ".devrites/\n")
|
|
68
|
+
code, out, errs := initRunCmd(repo, "ov-1")
|
|
69
|
+
if code != 0 || !strings.Contains(out, `"already-ignored"`) {
|
|
70
|
+
t.Fatalf("init: %d %s %s", code, out, errs)
|
|
71
|
+
}
|
|
72
|
+
if b, err := os.ReadFile(filepath.Join(repo, ".git", "info", "exclude")); err == nil && strings.Contains(string(b), "overhaul") {
|
|
73
|
+
t.Fatalf("exclude touched although already ignored: %q", b)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
func TestInitRejectsBadInput(t *testing.T) {
|
|
78
|
+
repo := gitRepo(t)
|
|
79
|
+
for _, id := range []string{"", "../x", "a/b", ".hidden", "x y"} {
|
|
80
|
+
if code, _, _ := initRunCmd(repo, id); code != 2 {
|
|
81
|
+
t.Errorf("run id %q accepted", id)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if code, _, _ := initRunCmd(t.TempDir(), "ov-1"); code != 2 {
|
|
85
|
+
t.Error("non-repository accepted")
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
func mustEval(t *testing.T, p string) string {
|
|
90
|
+
t.Helper()
|
|
91
|
+
r, err := filepath.EvalSymlinks(p)
|
|
92
|
+
if err != nil {
|
|
93
|
+
t.Fatal(err)
|
|
94
|
+
}
|
|
95
|
+
return r
|
|
96
|
+
}
|