devrites 5.13.0 → 5.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +330 -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/README.md +3 -1
- package/docs/architecture.md +2 -1
- package/docs/command-map.md +1 -1
- package/docs/engine/commands.md +11 -1
- package/docs/orchestration.md +3 -1
- package/docs/skills.md +5 -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/binary.go +4 -0
- package/engine/internal/install/install_test.go +23 -0
- package/engine/internal/overhaul/admit/admit_test.go +25 -0
- package/engine/internal/overhaul/admit/run.go +13 -1
- package/engine/internal/overhaul/overhaul.go +1 -0
- package/engine/internal/overhaul/records/check.go +24 -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 +35 -1
- package/engine/internal/overhaul/records/run.go +8 -0
- package/engine/internal/overhaul/render/run.go +518 -60
- package/engine/internal/overhaul/render/run_test.go +176 -7
- package/engine/internal/overhaul/render/visual.go +617 -0
- package/engine/internal/overhaul/snapshot/run.go +52 -5
- package/engine/internal/overhaul/snapshot/run_test.go +24 -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/{generated/codex/skills/overhaul/roles/backend-engineer.md → .claude/agents/overhaul-backend-engineer.md} +13 -7
- package/pack/{generated/codex/skills/overhaul/roles/boundary.md → .claude/agents/overhaul-boundary.md} +12 -6
- package/pack/{generated/codex/skills/overhaul/roles/craft.md → .claude/agents/overhaul-craft.md} +12 -6
- package/pack/.claude/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +13 -7
- package/pack/{generated/claude/skills/overhaul/roles/implementer.md → .claude/agents/overhaul-implementer.md} +11 -5
- 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} +14 -8
- package/pack/{generated/claude/skills/overhaul/roles/verifier.md → .claude/agents/overhaul-verifier.md} +15 -4
- 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 +25 -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 +53 -34
- package/pack/.claude/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/.claude/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/.claude/skills/overhaul/references/orchestration.md +37 -25
- package/pack/.claude/skills/overhaul/references/records.md +16 -3
- package/pack/.claude/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/.claude/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -2
- 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 +2 -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/{.claude/skills/overhaul/roles/backend-engineer.md → generated/claude/agents/overhaul-backend-engineer.md} +13 -7
- package/pack/generated/claude/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +12 -6
- package/pack/generated/claude/{skills/overhaul/roles/craft.md → agents/overhaul-craft.md} +12 -6
- package/pack/generated/{codex/skills/overhaul/roles/frontend-engineer.md → claude/agents/overhaul-frontend-engineer.md} +13 -7
- package/pack/generated/{codex/skills/overhaul/roles/implementer.md → claude/agents/overhaul-implementer.md} +11 -5
- 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} +14 -8
- package/pack/generated/{codex/skills/overhaul/roles/verifier.md → claude/agents/overhaul-verifier.md} +15 -4
- 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 +25 -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 +53 -34
- package/pack/generated/claude/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/claude/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +37 -25
- package/pack/generated/claude/skills/overhaul/references/records.md +16 -3
- package/pack/generated/claude/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/claude/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -2
- 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 +2 -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 +1 -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/{devin/skills/overhaul/roles/backend-engineer.md → codex/agents/overhaul-backend-engineer.toml} +15 -7
- package/pack/{.claude/skills/overhaul/roles/boundary.md → generated/codex/agents/overhaul-boundary.toml} +14 -6
- package/pack/generated/{devin/skills/overhaul/roles/craft.md → codex/agents/overhaul-craft.toml} +14 -6
- package/pack/generated/{claude/skills/overhaul/roles/frontend-engineer.md → codex/agents/overhaul-frontend-engineer.toml} +15 -7
- package/pack/generated/{devin/skills/overhaul/roles/implementer.md → codex/agents/overhaul-implementer.toml} +13 -5
- 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} +16 -8
- package/pack/{.claude/skills/overhaul/roles/verifier.md → generated/codex/agents/overhaul-verifier.toml} +17 -4
- 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 +25 -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 +53 -34
- package/pack/generated/codex/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/codex/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +37 -25
- package/pack/generated/codex/skills/overhaul/references/records.md +16 -3
- package/pack/generated/codex/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/codex/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -2
- 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 +2 -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 +1 -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/{claude/skills/overhaul/roles/backend-engineer.md → devin/agents/overhaul-backend-engineer.md} +21 -7
- package/pack/generated/devin/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +20 -6
- package/pack/{.claude/skills/overhaul/roles/craft.md → generated/devin/agents/overhaul-craft.md} +20 -6
- package/pack/generated/devin/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +21 -7
- package/pack/{.claude/skills/overhaul/roles/implementer.md → generated/devin/agents/overhaul-implementer.md} +19 -5
- 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} +22 -8
- package/pack/generated/devin/{skills/overhaul/roles/verifier.md → agents/overhaul-verifier.md} +23 -4
- 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 +25 -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 +53 -34
- package/pack/generated/devin/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/devin/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +37 -25
- package/pack/generated/devin/skills/overhaul/references/records.md +16 -3
- package/pack/generated/devin/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/devin/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -2
- 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 +2 -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/overhaul-backend-engineer.md +68 -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 +70 -0
- package/pack/generated/omp/agents/overhaul-implementer.md +66 -0
- package/pack/generated/omp/agents/overhaul-recon.md +75 -0
- package/pack/generated/omp/agents/overhaul-specialist.md +63 -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-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 +25 -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 +53 -34
- package/pack/generated/omp/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/omp/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +37 -25
- package/pack/generated/omp/skills/overhaul/references/records.md +16 -3
- package/pack/generated/omp/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/omp/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -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-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 +2 -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 +1 -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/overhaul-backend-engineer.md +69 -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 +71 -0
- package/pack/generated/pi/agents/overhaul-implementer.md +67 -0
- package/pack/generated/pi/agents/overhaul-recon.md +76 -0
- package/pack/generated/pi/agents/overhaul-specialist.md +64 -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-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 +25 -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 +53 -34
- package/pack/generated/pi/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/pi/skills/overhaul/references/lifecycle.md +6 -2
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +37 -25
- package/pack/generated/pi/skills/overhaul/references/records.md +16 -3
- package/pack/generated/pi/skills/overhaul/references/review-and-report.md +3 -1
- package/pack/generated/pi/skills/overhaul/references/scope-and-safety.md +47 -20
- 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 +6 -2
- 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 +2 -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 +2 -1
- package/scripts/devin-generate.sh +4 -3
- package/scripts/omp-generate.sh +39 -6
- package/scripts/pi-generate.sh +9 -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
package/bin/devrites.mjs
CHANGED
|
@@ -62,7 +62,7 @@ Common flags:
|
|
|
62
62
|
--dry-run Show the plan, change nothing
|
|
63
63
|
--force Overwrite existing non-DevRites files
|
|
64
64
|
--no-codex Skip Codex support files (.agents, .codex, AGENTS.md)
|
|
65
|
-
--no-omp Skip OMP support files (.omp/skills, .omp/agents)
|
|
65
|
+
--no-omp Skip OMP support files (.omp/skills, .omp/agents, .omp/commands)
|
|
66
66
|
--no-pi Skip pi support files (.pi/skills, .pi/agents, .pi/prompts)
|
|
67
67
|
--no-devin Skip Devin CLI support files (.devin/skills, .devin/agents)
|
|
68
68
|
--short-aliases=all Also install /define /build /prove /seal
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# ADR-0031: `/overhaul` ships its own agents that keep every tool
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted
|
|
4
|
+
- **Date:** 2026-09-25
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
The explicit-only `/overhaul` skill dispatched its eight roles (recon, frontend
|
|
9
|
+
engineer, backend engineer, boundary, craft, specialist, implementer, verifier) as
|
|
10
|
+
generic subagents told to read `skills/overhaul/roles/<role>.md`. Registered agents
|
|
11
|
+
give each role a named dispatch target on every host, carry the role contract as the
|
|
12
|
+
agent's own instructions, and let a host pick a model per role.
|
|
13
|
+
|
|
14
|
+
The DevRites lifecycle keeps one writer: ADR-0010, ADR-0015, ADR-0017, ADR-0018 and
|
|
15
|
+
ADR-0019 make `devrites-slice-wright` the only writable specialist. Every `/overhaul`
|
|
16
|
+
role also writes, because each one records a receipt and evidence in the run area,
|
|
17
|
+
and the implementer edits approved target paths. `/overhaul` has its own approval
|
|
18
|
+
gate, path contracts, snapshot fingerprints and admission tool
|
|
19
|
+
(`devrites-engine overhaul`), independent of the lifecycle.
|
|
20
|
+
|
|
21
|
+
## Decision
|
|
22
|
+
|
|
23
|
+
- The pack ships `pack/.claude/agents/overhaul-{recon,frontend-engineer,
|
|
24
|
+
backend-engineer,boundary,craft,specialist,implementer,verifier}.md`. They are
|
|
25
|
+
dispatched only by `/overhaul`, and their composition line names `/overhaul` as the
|
|
26
|
+
caller.
|
|
27
|
+
- These agents keep every tool: no `tools:` allowlist and no `permissionMode:`
|
|
28
|
+
override, so Claude Code applies the user's own permission mode. Codex gives them
|
|
29
|
+
`default_permissions = ":workspace"`; omp, pi and Devin give them the full write
|
|
30
|
+
tool set. Host permission prompts stay authoritative and are never bypassed.
|
|
31
|
+
- Read-only behavior for reviewer roles stays an instruction in the agent body. The
|
|
32
|
+
coordinator detects writes by comparing snapshot fingerprints around every wave and
|
|
33
|
+
admits patches only when the observed changed paths equal the approved contract.
|
|
34
|
+
- The role files are removed; each agent file is the single source of its role.
|
|
35
|
+
- `validate-agent-composition.py` accepts `overhaul-*` agents as write-capable when
|
|
36
|
+
they state their mode. The lifecycle's one-writer rule is unchanged for every
|
|
37
|
+
`devrites-*` agent.
|
|
38
|
+
|
|
39
|
+
## Consequences
|
|
40
|
+
|
|
41
|
+
- The ADR-0010/0015/0017/0018/0019 writer clauses now read "one writer among
|
|
42
|
+
`devrites-*` specialists"; they do not govern `/overhaul`.
|
|
43
|
+
- Eight more agents are installed, updated and removed with the pack. The installer
|
|
44
|
+
keeps an existing unmanaged `.claude/agents/overhaul-*.md`, and `/overhaul` stops
|
|
45
|
+
with `BLOCKED_ENVIRONMENT` when a required agent is missing (for example with
|
|
46
|
+
`--no-agents`).
|
|
47
|
+
- Instruction-level read-only modes give weaker isolation than host allowlists. The
|
|
48
|
+
user chose full tool access; fingerprints and path-contract admission remain the
|
|
49
|
+
enforcement.
|
|
50
|
+
|
|
51
|
+
Verified by `scripts/validate-agent-composition.py`, `tests/codex-agent-generation-test.sh`
|
|
52
|
+
and the host generators' `overhaul-*` branches.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# ADR-0032: One engine lint gate, and PR tests that reuse main's results
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted
|
|
4
|
+
- **Date:** 2026-09-25
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
ADR-0006 wired `staticcheck` and `govulncheck` into CI. Since then `gosec` and
|
|
9
|
+
`golangci-lint` were added the same way, as separate `go install` builds and
|
|
10
|
+
separate passes. Each pass loaded and type-checked the engine again. After a
|
|
11
|
+
Go toolchain or analyzer bump, the engine job compiled all four tools from
|
|
12
|
+
source (85s) before it analyzed anything.
|
|
13
|
+
|
|
14
|
+
The Go cache setup also cost time without helping much:
|
|
15
|
+
|
|
16
|
+
- Every run saved a new ~600 MB snapshot, including PR runs.
|
|
17
|
+
- `setup-go`'s built-in cache froze its first snapshot until `go.mod` changed.
|
|
18
|
+
- The shell shards restored a linux/arm64 key that no job saved, so every
|
|
19
|
+
shard compiled the engine from nothing.
|
|
20
|
+
- `-count=1` on every platform ran every package on every PR, even when the
|
|
21
|
+
change touched none of them.
|
|
22
|
+
|
|
23
|
+
## Decision
|
|
24
|
+
|
|
25
|
+
- **One lint run.** `engine/.golangci.yml` enables gofmt, govet, staticcheck
|
|
26
|
+
(standalone default checks), gosec (same per-call `#nosec` policy, source
|
|
27
|
+
files only), errcheck, and ineffassign. CI runs it through
|
|
28
|
+
`golangci-lint-action` (a prebuilt binary). `make lint` runs the same config.
|
|
29
|
+
govulncheck stays a separate step because it is a database lookup, not a
|
|
30
|
+
linter.
|
|
31
|
+
- **One engine test matrix.** `engine-test` runs the suite on linux amd64,
|
|
32
|
+
linux arm64, macOS (all `-race`), and Windows. Linux amd64 also runs a
|
|
33
|
+
shuffled, uncached pass to catch order dependence on every PR.
|
|
34
|
+
- **Pushes to main run every test.** On main, `go clean -testcache` runs
|
|
35
|
+
first, so every test executes. The results are saved with the cache.
|
|
36
|
+
- **PRs reuse main's results.** A PR runs `go test` without `-count=1`. The go
|
|
37
|
+
command re-runs any package whose code, dependencies, testdata, or read env
|
|
38
|
+
vars changed.
|
|
39
|
+
- **Only main saves caches.** Each OS/arch/job gets its own key, suffixed with
|
|
40
|
+
the run ID. Before saving, entries the run did not touch are trimmed. PRs
|
|
41
|
+
restore the newest main snapshot.
|
|
42
|
+
|
|
43
|
+
## Alternatives considered
|
|
44
|
+
|
|
45
|
+
| Option | Why not |
|
|
46
|
+
|--------|---------|
|
|
47
|
+
| Keep four standalone analyzers | Four builds and four package loads for the same findings. |
|
|
48
|
+
| `-count=1` on PRs too | Re-runs packages the PR cannot affect. Windows alone spent ~70s. |
|
|
49
|
+
| Cache test results on PRs, skip them on main | Main would never run the full suite. |
|
|
50
|
+
| Save caches from PRs as well | Pays the upload on every push. Lets a PR seed the cache main builds from. |
|
|
51
|
+
|
|
52
|
+
## Consequences
|
|
53
|
+
|
|
54
|
+
- Warm engine jobs skip analyzer builds entirely. Unchanged engine packages
|
|
55
|
+
cost nothing on PRs.
|
|
56
|
+
- The go command does not track external programs a test runs (for example
|
|
57
|
+
`git`) as cache inputs. On PRs, a result that depends only on such a program
|
|
58
|
+
can come from the cache. Main still runs everything.
|
|
59
|
+
- `tests/validation-governance-test.sh` keeps `make quality` and CI pinned to
|
|
60
|
+
the same golangci-lint and govulncheck versions.
|
package/docs/adr/README.md
CHANGED
|
@@ -51,7 +51,7 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
|
|
|
51
51
|
| [0003](0003-gate-model-hitl-pause.md) | Gates block as HITL pause, never crash | Accepted | `engine/tests/adr_0003_gate_exit_code_test.go` |
|
|
52
52
|
| [0004](0004-state-schema-phases-sections.md) | Phase-relative section completeness | Accepted | `engine/tests/adr_0004_required_by_phase_test.go`, `engine/internal/state/state_test.go` |
|
|
53
53
|
| [0005](0005-hooks-as-engine-subcommands.md) | Hooks are engine subcommands, not shell scripts | Accepted; active hook clause superseded by 0018 | historical |
|
|
54
|
-
| [0006](0006-clock-seam-and-engine-ci-gates.md) | Clock seam + Go static-analysis CI gates | Accepted in part; next-qid seam/guard superseded by 0024, CI
|
|
54
|
+
| [0006](0006-clock-seam-and-engine-ci-gates.md) | Clock seam + Go static-analysis CI gates | Accepted in part; next-qid seam/guard superseded by 0024, CI analyzer wiring superseded by 0032 | historical |
|
|
55
55
|
| [0007](0007-canonical-live-workspace-filenames.md) | Canonical live workspace filenames | Accepted; unsupported alias/migration clauses superseded by 0022 | `engine/internal/state/state_test.go`, `engine/internal/lib/cursor_compat_test.go` |
|
|
56
56
|
| [0008](0008-sanctioned-engine-network-boundary.md) | Sanctioned engine network boundary | Accepted in part; engine network allowance superseded by 0024 | `engine/tests/meta_test.go` |
|
|
57
57
|
| [0009](0009-prebuild-decision-coverage-and-readiness.md) | Pre-build decision coverage and implementation readiness | Accepted; semantic engine-gate implementation superseded by 0022 | historical |
|
|
@@ -75,3 +75,5 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
|
|
|
75
75
|
| [0027](0027-content-bound-build-readiness.md) | Content-bound build readiness | Accepted; AC ID map amended 2026-09-04 | `engine/tests/adr_0027_readiness_binding_test.go`, `engine/internal/state/acceptance_test.go` |
|
|
76
76
|
| [0028](0028-self-contained-engine-update.md) | Self-contained engine update | Accepted | `engine/internal/install/install_test.go`, `engine/internal/release/release_test.go`, `engine/tests/meta_test.go` |
|
|
77
77
|
| [0029](0029-v5-workspace-schema-and-native-migration.md) | v5 workspace schema and native migration | Accepted | `engine/internal/state/workspaceschema_test.go`, `engine/tests/parity_resolve_test.go`, `engine/tests/parity_closeout_test.go` |
|
|
78
|
+
| [0031](0031-overhaul-agents-keep-every-tool.md) | `/overhaul` ships its own agents that keep every tool | Accepted; scopes the one-writer clauses of 0010/0015/0017/0018/0019 to `devrites-*` specialists | `scripts/validate-agent-composition.py`, `tests/codex-agent-generation-test.sh` |
|
|
79
|
+
| [0032](0032-single-lint-gate-and-cached-pr-tests.md) | One engine lint gate, and PR tests that reuse main's results | Accepted | `tests/validation-governance-test.sh` |
|
package/docs/architecture.md
CHANGED
|
@@ -412,7 +412,8 @@ contract.
|
|
|
412
412
|
- **Design**: `devrites-frontend-craft` + a four-phase `/rite-polish` orchestrator (code + backend always; UI normalize + polish when UI is in scope).
|
|
413
413
|
- **Agents**: 17 fresh-context roles at flat depth one: 16 read-only leaves and
|
|
414
414
|
one wright. Dispatch uses the exact named project role; if it cannot spawn,
|
|
415
|
-
the workflow stops for HITL.
|
|
415
|
+
the workflow stops for HITL. `/overhaul` adds eight `overhaul-*` agents
|
|
416
|
+
that only it dispatches and that keep every tool (ADR-0031).
|
|
416
417
|
- **Review**: **feature-scoped** multi-axis review with severity labels and
|
|
417
418
|
fresh-context agents at the seal.
|
|
418
419
|
- **Scope**: clarify → seal (decide) → ship (read-only preflight → type-GO →
|
package/docs/command-map.md
CHANGED
|
@@ -122,7 +122,7 @@ See [`cli.md`](cli.md).
|
|
|
122
122
|
| [`/rite-watch-pr`](../pack/.claude/skills/rite-watch-pr/SKILL.md) | utility | `[PR number\|PR URL\|blank for current branch]` | Observe one GitHub PR/CI/review snapshot, classify one next action, and stop. Safe for capability-admitted native schedules/events; never mutates code, Git, checks, threads, or PR state. | PR/check/review metadata + bounded failed-log excerpts | none |
|
|
123
123
|
| [`/rite-pressure-test`](../pack/.claude/skills/rite-pressure-test/SKILL.md) | utility | `[idea]` | Pressure-test a rough idea: 3 to 5 genuinely different options → converge on one with trade-off + hinge. | spec / surrounding code | `decisions.md` (optional) |
|
|
124
124
|
| [`/rite-doctor`](../pack/.claude/skills/rite-doctor/SKILL.md) | diagnostic | none | Diagnose the DevRites binary, pack, schema, and native host permission/profile configuration. | install + host config | none |
|
|
125
|
-
| [`/overhaul`](../pack/.claude/skills/overhaul/SKILL.md) | standalone | `[full \| pr <n\|url> \| branch <head> --base <base> \| audit <scope> \| apply <run-id> --plan <rev> \| status <run-id> \| resume <run-id>]` | Explicit-only, outside the lifecycle. Concurrent frontend and backend engineering review plus boundary, craft and specialist roles (
|
|
125
|
+
| [`/overhaul`](../pack/.claude/skills/overhaul/SKILL.md) | standalone | `[full \| pr <n\|url> \| branch <head> --base <base> \| audit <scope> \| apply <run-id> --plan <rev> \| status <run-id> \| resume <run-id>] [--isolate]` | Explicit-only, outside the lifecycle. Concurrent frontend and backend engineering review plus boundary, craft and specialist roles (its own `overhaul-*` agents, which keep every tool); one verified plan; stops for the user's approval of the exact plan revision; then test-first repairs, independent verification, measurement and evidence-backed scoring, cycling inside the approved envelope. `audit` never repairs. Never commits, pushes, stashes or touches the index. | target repository (read-only until approval) | git-ignored run area `.devrites/overhaul/<run-id>/` (JSON records, HTML/Markdown views opened in the browser at each stop, evidence); approved target paths only after approval |
|
|
126
126
|
|
|
127
127
|
`/rite use <slug>` and `/rite guide` are inline router operations owned by
|
|
128
128
|
`/rite`, not separate skills. There is no `/rite-use` or `/rite-guide` shortcut.
|
package/docs/engine/commands.md
CHANGED
|
@@ -145,7 +145,7 @@ network. The skill documents the record schemas and when to call each tool.
|
|
|
145
145
|
|
|
146
146
|
| Tool | Forms | Exit codes |
|
|
147
147
|
| --- | --- | --- |
|
|
148
|
-
| `records` | `digest <file>`, `stage <run>`, `publish <run>`, `validate <run>` | 0 ok; 1 violations (listed as `VIOLATION:` lines); 2 usage or I/O |
|
|
148
|
+
| `records` | `init <repo> <run-id>`, `digest <file>`, `stage <run>`, `publish <run>`, `validate <run>` | 0 ok; 1 violations (listed as `VIOLATION:` lines); 2 usage or I/O |
|
|
149
149
|
| `admit` | `receipt <run> <receipt.json> [--observed <file>]`, `anchor <tree> <proposals.json>` | 0 admissible; 1 rejected; 2 usage or I/O; 3 duplicate or late receipt |
|
|
150
150
|
| `snapshot` | `capture <repo> <out>`, `fingerprint <repo>`, `verify <repo> <out> [--agent-paths <file>]`, `state <repo> <out.json>`, `delta <before.json> <repo>` | 0 ok; 1 index changed or changes outside agent paths; 2 refusal, usage or I/O |
|
|
151
151
|
| `score` | `--rubric <r> --results <s> --gates <g> [--out <file>]`, `compare --rubric <r> --baseline <a> --candidate <b>` | 0 computed; 2 invalid input (nothing counts as scored) |
|
|
@@ -156,6 +156,16 @@ network. The skill documents the record schemas and when to call each tool.
|
|
|
156
156
|
`diff.autoRefreshIndex=false` and no external diff drivers, so `.git/index`
|
|
157
157
|
stays byte-identical. Secret-pattern files and files holding private key material
|
|
158
158
|
are hashed only: never copied into the snapshot tree and never included in its patches.
|
|
159
|
+
Clean tracked files are hashed but not copied, because git already holds them;
|
|
160
|
+
only dirty and untracked files are copied. A snapshot may live outside the
|
|
161
|
+
repository or inside its `.devrites/overhaul/` run area, which every snapshot
|
|
162
|
+
command leaves out of the repository state. `records init` creates
|
|
163
|
+
`<repo>/.devrites/overhaul/<run-id>/` (mode 0700) and, when git does not already
|
|
164
|
+
ignore it, adds `/.devrites/overhaul/` to the local `.git/info/exclude`, never to
|
|
165
|
+
the shared `.gitignore`.
|
|
166
|
+
`admit receipt` checks the attempt in the open staged generation (`g<N>.tmp` whose
|
|
167
|
+
`.base` is `CURRENT`) when one exists, otherwise in `CURRENT`, so a phase can record
|
|
168
|
+
many dispatches and admissions before one publish.
|
|
159
169
|
|
|
160
170
|
## Output and exit contracts
|
|
161
171
|
|
package/docs/orchestration.md
CHANGED
|
@@ -49,7 +49,9 @@ Claude project settings use `permissions.defaultMode: plan`; its slice-wright
|
|
|
49
49
|
profile uses `permissionMode: acceptEdits`. Codex uses a workspace-capable root
|
|
50
50
|
because children cannot elevate above the parent permission ceiling. Its exact
|
|
51
51
|
slice-wright uses `default_permissions = ":workspace"` and the other 16
|
|
52
|
-
specialists use `default_permissions = ":read-only"`.
|
|
52
|
+
specialists use `default_permissions = ":read-only"`. The eight `overhaul-*` agents of the
|
|
53
|
+
explicit `/overhaul` skill sit outside this split: Claude gives them every tool and
|
|
54
|
+
Codex gives them `:workspace` ([ADR-0031](adr/0031-overhaul-agents-keep-every-tool.md)).
|
|
53
55
|
|
|
54
56
|
If the exact role is unavailable, the root stops instead of substituting a
|
|
55
57
|
generic agent or doing specialist/writer work inline.
|
package/docs/skills.md
CHANGED
|
@@ -246,7 +246,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
246
246
|
|
|
247
247
|
| Skill | What It Does | Use When |
|
|
248
248
|
|---|---|---|
|
|
249
|
-
| [`overhaul`](../pack/.claude/skills/overhaul/SKILL.md) | Audits a whole project, a PR or a branch comparison with separate frontend and backend engineering reviewers running concurrently, plus boundary, craft and specialist roles; reconciles verified findings into one plan and stops for the user's explicit approval of that exact plan revision. After approval it repairs test-first, verifies independently, measures, and keeps cycling inside the approved plan until the evidence-backed scores (global and per-lane 9.7, domains 9.0) and every hard gate pass or an honest blocker remains. It lives outside the DevRites lifecycle: no `.devrites/` workspace and no `/rite-*` phase; its records, admission, snapshot, scoring, benchmark and view tools are `devrites-engine overhaul` commands. Completion evidence is a run area
|
|
249
|
+
| [`overhaul`](../pack/.claude/skills/overhaul/SKILL.md) | Audits a whole project, a PR or a branch comparison with separate frontend and backend engineering reviewers running concurrently, plus boundary, craft and specialist roles; reconciles verified findings into one plan and stops for the user's explicit approval of that exact plan revision. After approval it repairs test-first, verifies independently, measures, and keeps cycling inside the approved plan until the evidence-backed scores (global and per-lane 9.7, domains 9.0) and every hard gate pass or an honest blocker remains. It lives outside the DevRites lifecycle: no `.devrites/` workspace and no `/rite-*` phase; its records, admission, snapshot, scoring, benchmark and view tools are `devrites-engine overhaul` commands. Completion evidence is a git-ignored run area, `.devrites/overhaul/<run-id>/`, with canonical JSON records, a local HTML review and report that open in the browser at each stop, and a reviewable local patch; it never commits. Target code runs in place by default; `--isolate` runs it only in a sandboxed copy. | Explicit-only: `/overhaul`, `/overhaul full`, `/overhaul pr <n>`, `/overhaul branch <head> --base <base>`, `/overhaul audit …` (assessment only). |
|
|
250
250
|
|
|
251
251
|
### Foundation: engineering rules
|
|
252
252
|
|
|
@@ -259,7 +259,10 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
259
259
|
## Fresh-context agents
|
|
260
260
|
|
|
261
261
|
DevRites ships 17 role profiles at depth one. Both hosts have 16 read-only
|
|
262
|
-
leaves and one source/test writer role.
|
|
262
|
+
leaves and one source/test writer role. The explicit `/overhaul` skill ships eight
|
|
263
|
+
more agents, `overhaul-*`, that only it dispatches and that keep every tool
|
|
264
|
+
([ADR-0031](adr/0031-overhaul-agents-keep-every-tool.md)); the counts here cover the
|
|
265
|
+
lifecycle roles. Four read-only work roles handle
|
|
263
266
|
bounded evidence, planning, proof, and compatibility while the root keeps
|
|
264
267
|
authority:
|
|
265
268
|
|
package/engine/.golangci.yml
CHANGED
|
@@ -1,16 +1,54 @@
|
|
|
1
|
-
# golangci-lint v2
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# golangci-lint v2: the engine's single static-analysis gate. One run loads
|
|
2
|
+
# and type-checks the packages once and shares that work across every linter,
|
|
3
|
+
# instead of separate gofmt/go vet/staticcheck/gosec passes. CI (engine job) and
|
|
4
|
+
# `make lint` both run this file. govulncheck stays separate: it is a
|
|
5
|
+
# vulnerability database lookup, not a linter.
|
|
4
6
|
version: "2"
|
|
5
7
|
|
|
8
|
+
run:
|
|
9
|
+
# Never rewrite go.mod/go.sum during analysis.
|
|
10
|
+
modules-download-mode: readonly
|
|
11
|
+
|
|
6
12
|
linters:
|
|
7
13
|
default: none
|
|
8
14
|
enable:
|
|
15
|
+
# go vet analyzers (the default vet set).
|
|
16
|
+
- govet
|
|
17
|
+
# staticcheck (gosimple and stylecheck are merged into it in v2).
|
|
18
|
+
- staticcheck
|
|
19
|
+
# Security analysis. No rule-class exclusions: every G204/G304/G702/G703
|
|
20
|
+
# site carries a per-call `// #nosec GXXX -- <justification>` instead, so a
|
|
21
|
+
# genuinely new injection or traversal sink fails the gate.
|
|
22
|
+
- gosec
|
|
9
23
|
# Unchecked error returns: staticcheck does not flag ignored errors.
|
|
10
24
|
- errcheck
|
|
11
25
|
# Assignments never read: distinct from staticcheck's unused analysis.
|
|
12
26
|
- ineffassign
|
|
13
27
|
settings:
|
|
28
|
+
staticcheck:
|
|
29
|
+
# Standalone staticcheck's default set. Quickfix (QF) suggestions are
|
|
30
|
+
# editor refactors, not defects, so they stay out of the gate.
|
|
31
|
+
checks:
|
|
32
|
+
- all
|
|
33
|
+
- -ST1000
|
|
34
|
+
- -ST1003
|
|
35
|
+
- -ST1016
|
|
36
|
+
- -ST1020
|
|
37
|
+
- -ST1021
|
|
38
|
+
- -ST1022
|
|
39
|
+
- -ST1023
|
|
40
|
+
- -QF*
|
|
41
|
+
gosec:
|
|
42
|
+
# G602 (slice bounds) misfires on length-guarded indexes under
|
|
43
|
+
# golangci-lint's shared SSA build, and Go bounds-checks at runtime.
|
|
44
|
+
excludes:
|
|
45
|
+
- G602
|
|
46
|
+
# Permission expectations for what the engine writes: 0644 files,
|
|
47
|
+
# 0755 dirs and binaries.
|
|
48
|
+
config:
|
|
49
|
+
G301: "0755"
|
|
50
|
+
G302: "0755"
|
|
51
|
+
G306: "0644"
|
|
14
52
|
errcheck:
|
|
15
53
|
# The engine's CLI boundary reports via exit paths, not error returns;
|
|
16
54
|
# writes to the operator's stdout/stderr streams fail only on closed
|
|
@@ -22,6 +60,20 @@ linters:
|
|
|
22
60
|
- (*bytes.Buffer).WriteByte
|
|
23
61
|
- (*strings.Builder).WriteByte
|
|
24
62
|
- (*strings.Builder).WriteString
|
|
63
|
+
exclusions:
|
|
64
|
+
rules:
|
|
65
|
+
# Tests read fixtures and spawn the engine by design; gosec gates
|
|
66
|
+
# shipped code only (standalone gosec's default).
|
|
67
|
+
- path: _test\.go
|
|
68
|
+
linters: [gosec]
|
|
69
|
+
|
|
70
|
+
issues:
|
|
71
|
+
# Report every finding; the defaults (50 per linter, 3 identical) can hide
|
|
72
|
+
# real issues behind a truncated list.
|
|
73
|
+
max-issues-per-linter: 0
|
|
74
|
+
max-same-issues: 0
|
|
25
75
|
|
|
76
|
+
# Formatting is part of the same run: an unformatted file fails the gate.
|
|
26
77
|
formatters:
|
|
27
|
-
|
|
78
|
+
enable:
|
|
79
|
+
- gofmt
|
package/engine/AGENTS.md
CHANGED
|
@@ -17,8 +17,8 @@ completeness.
|
|
|
17
17
|
coverage quality. They may require that a canonical `AC-###` ID declared in
|
|
18
18
|
`spec.md` also appears as a literal substring in `tasks.md` and
|
|
19
19
|
`test-plan.md` when those artifacts are required.
|
|
20
|
-
- Local full gate: `make quality` (`gofmt
|
|
21
|
-
|
|
22
|
-
`go test -race -shuffle=on -count=1`).
|
|
20
|
+
- Local full gate: `make quality` (`golangci-lint` with gofmt, go vet,
|
|
21
|
+
staticcheck, gosec, errcheck, ineffassign; then `govulncheck`,
|
|
22
|
+
`osv-scanner`, `go test -race -shuffle=on -count=1`).
|
|
23
23
|
|
|
24
24
|
See [`../CONTEXT.md`](../CONTEXT.md) and [`../docs/adr/README.md`](../docs/adr/README.md).
|
package/engine/Makefile
CHANGED
|
@@ -1,28 +1,20 @@
|
|
|
1
1
|
BINARY := devrites
|
|
2
2
|
DIST := dist
|
|
3
|
-
GOFILES := $(shell find . -name '*.go' -not -path './$(DIST)/*')
|
|
4
3
|
# darwin/amd64 kept for Intel Macs; the five targets the release matrix ships.
|
|
5
4
|
PLATFORMS := darwin/arm64 darwin/amd64 linux/amd64 linux/arm64 windows/amd64
|
|
6
5
|
|
|
7
|
-
.PHONY: build
|
|
6
|
+
.PHONY: build test test-race vet quality govulncheck lint cover crosscompile clean
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
GOLANGCI_VERSION := v2.13.2
|
|
13
|
-
OSV_SCANNER_VERSION := v2.5.1
|
|
14
|
-
STATICCHECK := go run honnef.co/go/tools/cmd/staticcheck@$(STATICCHECK_VERSION)
|
|
8
|
+
GOVULNCHECK_VERSION := v1.8.0
|
|
9
|
+
GOLANGCI_VERSION := v2.14.0
|
|
10
|
+
OSV_SCANNER_VERSION := v2.6.0
|
|
15
11
|
GOVULNCHECK := go run golang.org/x/vuln/cmd/govulncheck@$(GOVULNCHECK_VERSION)
|
|
16
|
-
GOSEC := go run github.com/securego/gosec/v2/cmd/gosec@$(GOSEC_VERSION)
|
|
17
12
|
GOLANGCI := go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_VERSION)
|
|
18
13
|
OSV_SCANNER := go run github.com/google/osv-scanner/v2/cmd/osv-scanner@$(OSV_SCANNER_VERSION)
|
|
19
14
|
|
|
20
15
|
build:
|
|
21
16
|
CGO_ENABLED=0 go build -o $(BINARY) .
|
|
22
17
|
|
|
23
|
-
fmt-check:
|
|
24
|
-
@test -z "$$(gofmt -l $(GOFILES))" || (echo "gofmt required:"; gofmt -l $(GOFILES); exit 1)
|
|
25
|
-
|
|
26
18
|
test:
|
|
27
19
|
go test -shuffle=on ./...
|
|
28
20
|
|
|
@@ -35,21 +27,13 @@ vet:
|
|
|
35
27
|
|
|
36
28
|
# quality is the full local gate. Mirror it in CI so a green `make quality`
|
|
37
29
|
# means a green pipeline (the date-sensitive parity golden aside; see ADR-0006).
|
|
38
|
-
quality:
|
|
39
|
-
|
|
40
|
-
staticcheck:
|
|
41
|
-
$(STATICCHECK) ./...
|
|
30
|
+
quality: lint govulncheck osv test-race
|
|
42
31
|
|
|
43
32
|
govulncheck:
|
|
44
33
|
$(GOVULNCHECK) ./...
|
|
45
34
|
|
|
46
|
-
#
|
|
47
|
-
#
|
|
48
|
-
# new injection or traversal sink fails this target.
|
|
49
|
-
gosec:
|
|
50
|
-
$(GOSEC) -conf .gosec.json ./...
|
|
51
|
-
|
|
52
|
-
# Curated complement to staticcheck (errcheck + ineffassign; .golangci.yml).
|
|
35
|
+
# gofmt, go vet, staticcheck, gosec, errcheck and ineffassign in one run
|
|
36
|
+
# (.golangci.yml).
|
|
53
37
|
lint:
|
|
54
38
|
$(GOLANGCI) run ./...
|
|
55
39
|
|
package/engine/go.mod
CHANGED
|
@@ -21,6 +21,7 @@ const (
|
|
|
21
21
|
ClaudeAgentsTarget = ".claude/agents"
|
|
22
22
|
CodexAgentsTarget = ".codex/agents"
|
|
23
23
|
OmpAgentsTarget = ".omp/agents"
|
|
24
|
+
OmpCommandsTarget = ".omp/commands"
|
|
24
25
|
PiAgentsTarget = ".pi/agents"
|
|
25
26
|
DevinAgentsTarget = ".devin/agents"
|
|
26
27
|
PiPromptsTarget = ".pi/prompts"
|
|
@@ -64,6 +65,7 @@ func WorkspaceOverrideChecked(root, slug string) (string, error) {
|
|
|
64
65
|
return "", fmt.Errorf("DRV-WORKSPACE-INVALID: resolve DevRites root %q: %w", root, err)
|
|
65
66
|
}
|
|
66
67
|
sameRoot := path == resolvedRoot
|
|
68
|
+
// #nosec G703 -- read-only Stat of a path resolved and proven inside root above
|
|
67
69
|
if pathInfo, pathErr := os.Stat(path); pathErr == nil {
|
|
68
70
|
if rootInfo, rootErr := os.Stat(resolvedRoot); rootErr == nil {
|
|
69
71
|
sameRoot = os.SameFile(pathInfo, rootInfo)
|
|
@@ -22,6 +22,7 @@ const (
|
|
|
22
22
|
ClaudeAgentsTarget = devritespaths.ClaudeAgentsTarget
|
|
23
23
|
CodexAgentsTarget = devritespaths.CodexAgentsTarget
|
|
24
24
|
OmpAgentsTarget = devritespaths.OmpAgentsTarget
|
|
25
|
+
OmpCommandsTarget = devritespaths.OmpCommandsTarget
|
|
25
26
|
PiAgentsTarget = devritespaths.PiAgentsTarget
|
|
26
27
|
DevinAgentsTarget = devritespaths.DevinAgentsTarget
|
|
27
28
|
PiPromptsTarget = devritespaths.PiPromptsTarget
|
|
@@ -181,6 +182,7 @@ func RequiredPayload(withCodex, withOmp, withPi, withDevin bool) []string {
|
|
|
181
182
|
required = append(required,
|
|
182
183
|
"omp/skills",
|
|
183
184
|
"omp/agents",
|
|
185
|
+
"omp/commands",
|
|
184
186
|
"omp/.omp-plugin/plugin.json",
|
|
185
187
|
)
|
|
186
188
|
}
|
|
@@ -219,7 +221,10 @@ func InstallTrees(withSkills, withAgents, withCodex, withOmp, withPi, withDevin
|
|
|
219
221
|
trees = append(trees, Tree{PayloadPrefix: "codex/skills", TargetPrefix: CodexSkillsTarget})
|
|
220
222
|
}
|
|
221
223
|
if withOmp {
|
|
222
|
-
trees = append(trees,
|
|
224
|
+
trees = append(trees,
|
|
225
|
+
Tree{PayloadPrefix: "omp/skills", TargetPrefix: OmpSkillsTarget},
|
|
226
|
+
Tree{PayloadPrefix: "omp/commands", TargetPrefix: OmpCommandsTarget},
|
|
227
|
+
)
|
|
223
228
|
}
|
|
224
229
|
if withPi {
|
|
225
230
|
trees = append(trees,
|
|
@@ -20,6 +20,7 @@ func TestValidatePayloadRequiresClaudeAndCodexFiles(t *testing.T) {
|
|
|
20
20
|
"codex/config.toml": {},
|
|
21
21
|
"omp/skills/rite/SKILL.md": {},
|
|
22
22
|
"omp/agents/devrites-code-reviewer.md": {},
|
|
23
|
+
"omp/commands/rite.md": {},
|
|
23
24
|
"omp/.omp-plugin/plugin.json": {},
|
|
24
25
|
"pi/skills/rite/SKILL.md": {},
|
|
25
26
|
"pi/agents/devrites-code-reviewer.md": {},
|
|
@@ -66,6 +67,7 @@ func TestInstallTreesMapPayloadsToTargets(t *testing.T) {
|
|
|
66
67
|
{PayloadPrefix: "claude/skills", TargetPrefix: ".claude/skills"},
|
|
67
68
|
{PayloadPrefix: "codex/skills", TargetPrefix: ".agents/skills"},
|
|
68
69
|
{PayloadPrefix: "omp/skills", TargetPrefix: ".omp/skills"},
|
|
70
|
+
{PayloadPrefix: "omp/commands", TargetPrefix: ".omp/commands"},
|
|
69
71
|
{PayloadPrefix: "pi/skills", TargetPrefix: ".pi/skills"},
|
|
70
72
|
{PayloadPrefix: "pi/prompts", TargetPrefix: ".pi/prompts"},
|
|
71
73
|
{PayloadPrefix: "devin/skills", TargetPrefix: ".devin/skills"},
|
|
@@ -167,6 +167,10 @@ func (r *runner) removeBinary() error {
|
|
|
167
167
|
fmt.Fprintln(r.opts.Stdout, " kept the global devrites-engine binary (--keep-binary).")
|
|
168
168
|
return nil
|
|
169
169
|
}
|
|
170
|
+
if os.Getenv("DEVRITES_NO_BINARY") == "1" {
|
|
171
|
+
fmt.Fprintln(r.opts.Stdout, " kept the global devrites-engine binary (DEVRITES_NO_BINARY=1).")
|
|
172
|
+
return nil
|
|
173
|
+
}
|
|
170
174
|
for _, p := range binaryCandidates() {
|
|
171
175
|
if p == "" || !exists(p) {
|
|
172
176
|
continue
|
|
@@ -1231,6 +1231,28 @@ func runInstall(t *testing.T, target, payload string, mutate func(*Options)) {
|
|
|
1231
1231
|
}
|
|
1232
1232
|
}
|
|
1233
1233
|
|
|
1234
|
+
func TestUninstallNoBinaryEnvKeepsGlobalBinary(t *testing.T) {
|
|
1235
|
+
t.Setenv("DEVRITES_NO_BINARY", "1")
|
|
1236
|
+
home := t.TempDir()
|
|
1237
|
+
t.Setenv("HOME", home)
|
|
1238
|
+
t.Setenv("DEVRITES_BIN_DIR", t.TempDir())
|
|
1239
|
+
bin := filepath.Join(home, ".local", "bin", engineBinaryName())
|
|
1240
|
+
testutil.WriteFile(t, bin, "engine\n")
|
|
1241
|
+
target := t.TempDir()
|
|
1242
|
+
runInstall(t, target, testPayload(t), func(*Options) {})
|
|
1243
|
+
|
|
1244
|
+
opts := DefaultOptions(ModeUninstall)
|
|
1245
|
+
opts.Target = target
|
|
1246
|
+
opts.Stdout = &bytes.Buffer{}
|
|
1247
|
+
opts.Stderr = &bytes.Buffer{}
|
|
1248
|
+
if err := Apply(opts); err != nil {
|
|
1249
|
+
t.Fatal(err)
|
|
1250
|
+
}
|
|
1251
|
+
if _, err := os.Stat(bin); err != nil {
|
|
1252
|
+
t.Fatalf("uninstall with DEVRITES_NO_BINARY=1 removed global binary: %v", err)
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1234
1256
|
func runUninstall(t *testing.T, target string) {
|
|
1235
1257
|
t.Helper()
|
|
1236
1258
|
opts := DefaultOptions(ModeUninstall)
|
|
@@ -1272,6 +1294,7 @@ extends = ":workspace"
|
|
|
1272
1294
|
`)
|
|
1273
1295
|
testutil.WriteFile(t, filepath.Join(root, "omp", "skills", "rite", "SKILL.md"), "omp rite\n")
|
|
1274
1296
|
testutil.WriteFile(t, filepath.Join(root, "omp", "agents", "devrites-code-reviewer.md"), "omp agent\n")
|
|
1297
|
+
testutil.WriteFile(t, filepath.Join(root, "omp", "commands", "rite.md"), "omp command\n")
|
|
1275
1298
|
testutil.WriteFile(t, filepath.Join(root, "omp", ".omp-plugin", "plugin.json"), "{}\n")
|
|
1276
1299
|
testutil.WriteFile(t, filepath.Join(root, "pi", "skills", "rite", "SKILL.md"), "pi rite\n")
|
|
1277
1300
|
testutil.WriteFile(t, filepath.Join(root, "pi", "agents", "devrites-code-reviewer.md"), "pi agent\n")
|
|
@@ -101,6 +101,31 @@ func TestReceipt(t *testing.T) {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
// A receipt is admitted against the open working generation (g<N+1>.tmp based on
|
|
105
|
+
// CURRENT) when one exists, so dispatches need not be published one by one.
|
|
106
|
+
func TestReceiptAgainstOpenStage(t *testing.T) {
|
|
107
|
+
dir := newRun(t)
|
|
108
|
+
stage := filepath.Join(dir, "g0002.tmp")
|
|
109
|
+
write(t, filepath.Join(stage, ".base"), "g0001")
|
|
110
|
+
write(t, filepath.Join(stage, "run.json"), J{"run_id": "run-1",
|
|
111
|
+
"revisions": J{"plan": J{"rev": 1, "file": "revisions/plan-r1.json"}}})
|
|
112
|
+
write(t, filepath.Join(stage, "dispatch.json"), J{"attempts": L{
|
|
113
|
+
J{"task_id": "R-2", "attempt_id": "A1", "role": "reviewer", "lane": "security", "snapshot": "s1", "status": "running"},
|
|
114
|
+
}})
|
|
115
|
+
rc := writerReceipt()
|
|
116
|
+
rc["task_id"], rc["role"], rc["lane"], rc["outcome"], rc["inspected"] = "R-2", "reviewer", "security", "no-findings", L{"src/a.py:1-9"}
|
|
117
|
+
delete(rc, "changed_paths")
|
|
118
|
+
p := write(t, filepath.Join(dir, "receipts/r2.json"), rc)
|
|
119
|
+
if code, out, errs := run("receipt", dir, p); code != 0 || !strings.Contains(out, "ADMISSIBLE") {
|
|
120
|
+
t.Fatalf("open stage: %d %s%s", code, out, errs)
|
|
121
|
+
}
|
|
122
|
+
// A stage based on an older generation is stale and never consulted.
|
|
123
|
+
write(t, filepath.Join(stage, ".base"), "g0000")
|
|
124
|
+
if code, out, _ := run("receipt", dir, p); code != 1 || !strings.Contains(out, "no such dispatched attempt") {
|
|
125
|
+
t.Fatalf("stale stage consulted: %d %s", code, out)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
104
129
|
func TestReceiptIOError(t *testing.T) {
|
|
105
130
|
dir := newRun(t)
|
|
106
131
|
if code, _, errs := run("receipt", dir, filepath.Join(dir, "missing.json")); code != 2 || !strings.HasPrefix(errs, "ERROR: ") {
|
|
@@ -175,12 +175,24 @@ func sortedVals(s map[string]any) []any {
|
|
|
175
175
|
return out
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
// workingGeneration is the open staged generation when one exists and is based on
|
|
179
|
+
// CURRENT (the coordinator records dispatches there during a phase), else CURRENT.
|
|
180
|
+
func workingGeneration(run, cur string) string {
|
|
181
|
+
stages, _ := filepath.Glob(join(run, "g*.tmp"))
|
|
182
|
+
if len(stages) == 1 {
|
|
183
|
+
if base, err := os.ReadFile(join(stages[0], ".base")); err == nil && strings.TrimSpace(string(base)) == cur { // #nosec G304 -- stage marker inside the operator-selected run area
|
|
184
|
+
return stages[0]
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return join(run, cur)
|
|
188
|
+
}
|
|
189
|
+
|
|
178
190
|
func receipt(run, path, observed string, hasObserved bool, stdout io.Writer) (int, error) {
|
|
179
191
|
cur, err := os.ReadFile(join(run, "CURRENT"))
|
|
180
192
|
if err != nil {
|
|
181
193
|
return 0, err
|
|
182
194
|
}
|
|
183
|
-
gen :=
|
|
195
|
+
gen := workingGeneration(run, strings.TrimSpace(string(cur)))
|
|
184
196
|
rj, err := ovio.LoadObject(join(gen, "run.json"))
|
|
185
197
|
if err != nil {
|
|
186
198
|
return 0, err
|
|
@@ -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
|
}
|
|
@@ -820,6 +824,26 @@ func Check(run, genDir, prevDir string) ([]string, error) {
|
|
|
820
824
|
}
|
|
821
825
|
}
|
|
822
826
|
}
|
|
827
|
+
// Views are how the user reads a stop: every stop carries the report, and a
|
|
828
|
+
// pending approval carries the review page and the plan it approves.
|
|
829
|
+
if outcome := str(rj, "execution_outcome"); outcome != "" && outcome != "RUNNING" {
|
|
830
|
+
for _, v := range []string{"report.html", "report.md"} {
|
|
831
|
+
if !isFile(join(vdir, v)) {
|
|
832
|
+
add("views/%s is required once the run stops (execution_outcome %s)", v, outcome)
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
if str(rj, "phase") == "AWAITING_APPROVAL" {
|
|
837
|
+
need := []string{"review.html", "review.md"}
|
|
838
|
+
if hasPR {
|
|
839
|
+
need = append(need, "plan.md")
|
|
840
|
+
}
|
|
841
|
+
for _, v := range need {
|
|
842
|
+
if !isFile(join(vdir, v)) {
|
|
843
|
+
add("views/%s is required while awaiting approval", v)
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|
|
823
847
|
return errs, nil
|
|
824
848
|
}
|
|
825
849
|
|