devrites 6.0.3 → 6.1.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 +12 -0
- package/README.md +24 -9
- package/SECURITY.md +9 -6
- package/bin/devrites.mjs +28 -12
- package/docs/adr/0035-claude-root-leaves-plan-mode.md +33 -0
- package/docs/adr/0036-archive-recall-is-a-read-time-query.md +32 -0
- package/docs/adr/README.md +4 -2
- package/docs/cli.md +25 -2
- package/docs/command-map.md +10 -8
- package/docs/engine/commands.md +10 -7
- package/docs/harness-compliance.md +2 -2
- package/docs/orchestration.md +5 -4
- package/docs/release.md +4 -4
- package/docs/skills.md +2 -2
- package/engine/commands.go +1 -1
- package/engine/help.go +10 -6
- package/engine/internal/acceptance/cli.go +4 -1
- package/engine/internal/acceptance/exec.go +11 -11
- package/engine/internal/devritespaths/paths.go +5 -0
- package/engine/internal/hostpack/hostpack.go +48 -3
- package/engine/internal/install/apply.go +68 -1
- package/engine/internal/install/binary.go +4 -0
- package/engine/internal/install/install.go +25 -15
- package/engine/internal/install/merge.go +287 -123
- package/engine/internal/install/preflight.go +71 -1
- package/engine/internal/install/uninstall.go +7 -1
- package/engine/internal/install/update.go +7 -3
- package/engine/internal/lib/claims.go +30 -14
- package/engine/internal/lib/cli_observe.go +6 -0
- package/engine/internal/lib/context.go +35 -12
- package/engine/internal/lib/diffscope.go +79 -3
- package/engine/internal/lib/dispatch.go +78 -12
- package/engine/internal/lib/drift.go +9 -2
- package/engine/internal/lib/handoff.go +14 -5
- package/engine/internal/lib/metrics.go +103 -10
- package/engine/internal/lib/migrate.go +30 -12
- package/engine/internal/lib/next.go +22 -2
- package/engine/internal/lib/observe_summary.go +8 -0
- package/engine/internal/lib/open_visual.go +3 -1
- package/engine/internal/lib/recall.go +355 -0
- package/engine/internal/lib/regression.go +20 -0
- package/engine/internal/lib/resolve.go +96 -53
- package/engine/internal/lib/secretscan.go +24 -1
- package/engine/internal/lib/taskgraph.go +31 -1
- package/engine/internal/lib/util.go +18 -7
- package/engine/internal/lib/windows.go +68 -15
- package/engine/internal/markdowntext/markdowntext.go +45 -6
- package/engine/internal/notes/cli.go +5 -3
- package/engine/internal/notes/notes.go +8 -3
- package/engine/internal/overhaul/admit/run.go +16 -12
- package/engine/internal/overhaul/overhaul.go +1 -0
- package/engine/internal/overhaul/records/check.go +52 -9
- package/engine/internal/overhaul/render/run.go +3 -2
- package/engine/internal/overhaul/snapshot/run.go +2 -2
- package/engine/internal/parallel/git.go +5 -6
- package/engine/internal/parallel/ops.go +3 -0
- package/engine/internal/parallel/pathdisjoint.go +9 -4
- package/engine/internal/release/release.go +11 -9
- package/engine/internal/safepath/safepath.go +17 -1
- package/engine/internal/state/budgets.go +8 -4
- package/engine/internal/state/feature.go +3 -1
- package/engine/internal/state/observation.go +12 -7
- package/engine/internal/state/taskgraph.go +67 -12
- package/engine/internal/state/write.go +7 -1
- package/engine/main.go +6 -2
- package/pack/.claude/agents/_shared/composition-overhaul.md +2 -0
- package/pack/.claude/agents/devrites-devex-reviewer.md +5 -0
- package/pack/.claude/agents/devrites-evidence-scout.md +4 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +4 -1
- package/pack/.claude/agents/devrites-slice-wright.md +4 -1
- package/pack/.claude/agents/overhaul-implementer.md +1 -0
- package/pack/.claude/settings.json +4 -4
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +3 -2
- package/pack/.claude/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/.claude/skills/overhaul/references/orchestration.md +6 -2
- package/pack/.claude/skills/overhaul/references/records.md +8 -3
- package/pack/.claude/skills/rite/SKILL.md +4 -3
- package/pack/.claude/skills/rite/reference/menu.md +6 -5
- package/pack/.claude/skills/rite-adopt/SKILL.md +4 -3
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +6 -5
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +2 -1
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +3 -1
- package/pack/.claude/skills/rite-build/reference/output.md +1 -1
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +2 -0
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +19 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -3
- package/pack/.claude/skills/rite-customize/SKILL.md +1 -1
- package/pack/.claude/skills/rite-define/SKILL.md +3 -2
- package/pack/.claude/skills/rite-doctor/SKILL.md +12 -6
- package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/.claude/skills/rite-fast/SKILL.md +3 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +4 -3
- package/pack/.claude/skills/rite-learn/SKILL.md +2 -2
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/.claude/skills/rite-pov/SKILL.md +1 -1
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/.claude/skills/rite-prototype/SKILL.md +1 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +10 -5
- package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/.claude/skills/rite-review/SKILL.md +2 -1
- package/pack/.claude/skills/rite-seal/SKILL.md +3 -3
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/.claude/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/.claude/skills/rite-spec/SKILL.md +4 -1
- package/pack/.claude/skills/rite-status/SKILL.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/significance.md +2 -0
- package/pack/.claude/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +3 -2
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/.claude/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/claude/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/claude/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/claude/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/claude/agents/overhaul-boundary.md +2 -0
- package/pack/generated/claude/agents/overhaul-craft.md +2 -0
- package/pack/generated/claude/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/claude/agents/overhaul-implementer.md +3 -0
- package/pack/generated/claude/agents/overhaul-recon.md +2 -0
- package/pack/generated/claude/agents/overhaul-specialist.md +2 -0
- package/pack/generated/claude/agents/overhaul-verifier.md +2 -0
- package/pack/generated/claude/settings.json +4 -4
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +3 -2
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +6 -2
- package/pack/generated/claude/skills/overhaul/references/records.md +8 -3
- package/pack/generated/claude/skills/rite/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite/reference/menu.md +6 -5
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +6 -5
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +2 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +3 -1
- package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +2 -0
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +19 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-define/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-fast/SKILL.md +3 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/claude/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-quick/SKILL.md +10 -5
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/claude/skills/rite-review/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-seal/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/claude/skills/rite-spec/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +7 -7
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +6 -1
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +4 -0
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +1 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +3 -3
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +5 -2
- package/pack/generated/codex/agents/devrites-proof-runner.toml +2 -2
- package/pack/generated/codex/agents/devrites-security-auditor.toml +1 -1
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +1 -1
- package/pack/generated/codex/agents/devrites-slice-wright.toml +8 -5
- package/pack/generated/codex/agents/devrites-test-analyst.toml +5 -5
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +1 -1
- package/pack/generated/codex/agents/fast-builder.toml +3 -3
- package/pack/generated/codex/agents/fast-critic.toml +3 -3
- package/pack/generated/codex/agents/overhaul-backend-engineer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-boundary.toml +2 -0
- package/pack/generated/codex/agents/overhaul-craft.toml +2 -0
- package/pack/generated/codex/agents/overhaul-frontend-engineer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-implementer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-recon.toml +2 -0
- package/pack/generated/codex/agents/overhaul-specialist.toml +2 -0
- package/pack/generated/codex/agents/overhaul-verifier.toml +2 -0
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +3 -2
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/codex/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/codex/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/codex/skills/overhaul/references/records.md +8 -3
- package/pack/generated/codex/skills/rite/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite/reference/menu.md +6 -5
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +7 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +2 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
- package/pack/generated/codex/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +3 -1
- package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +2 -0
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/codex/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/codex/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/codex/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-temper/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/devin/AGENTS.md +1 -1
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/devin/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/devin/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/devin/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/devin/agents/overhaul-boundary.md +2 -0
- package/pack/generated/devin/agents/overhaul-craft.md +2 -0
- package/pack/generated/devin/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/devin/agents/overhaul-implementer.md +2 -0
- package/pack/generated/devin/agents/overhaul-recon.md +2 -0
- package/pack/generated/devin/agents/overhaul-specialist.md +2 -0
- package/pack/generated/devin/agents/overhaul-verifier.md +2 -0
- package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +3 -2
- package/pack/generated/devin/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +2 -2
- package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +8 -7
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/devin/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/devin/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/devin/skills/overhaul/references/records.md +8 -3
- package/pack/generated/devin/skills/rite/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite/reference/menu.md +6 -5
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +8 -7
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +2 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +3 -2
- package/pack/generated/devin/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +3 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +2 -0
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/devin/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-explain/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/devin/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/devin/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/devin/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/devin/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/devin/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/devin/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/devin/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/devin/skills/rite-spec/reference/investigation.md +1 -1
- package/pack/generated/devin/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +3 -1
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/omp/agents/devrites-code-reviewer.md +7 -7
- package/pack/generated/omp/agents/devrites-devex-reviewer.md +6 -1
- package/pack/generated/omp/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/omp/agents/devrites-frontend-reviewer.md +1 -1
- package/pack/generated/omp/agents/devrites-plan-drafter.md +3 -3
- package/pack/generated/omp/agents/devrites-plan-reviewer.md +5 -2
- package/pack/generated/omp/agents/devrites-proof-runner.md +2 -2
- package/pack/generated/omp/agents/devrites-security-auditor.md +1 -1
- package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +1 -1
- package/pack/generated/omp/agents/devrites-slice-wright.md +8 -5
- package/pack/generated/omp/agents/devrites-test-analyst.md +5 -5
- package/pack/generated/omp/agents/devrites-upgrade-planner.md +1 -1
- package/pack/generated/omp/agents/fast-builder.md +3 -3
- package/pack/generated/omp/agents/fast-critic.md +3 -3
- package/pack/generated/omp/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/omp/agents/overhaul-boundary.md +2 -0
- package/pack/generated/omp/agents/overhaul-craft.md +2 -0
- package/pack/generated/omp/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/omp/agents/overhaul-implementer.md +2 -0
- package/pack/generated/omp/agents/overhaul-recon.md +2 -0
- package/pack/generated/omp/agents/overhaul-specialist.md +2 -0
- package/pack/generated/omp/agents/overhaul-verifier.md +2 -0
- package/pack/generated/omp/commands/rite-resolve.md +1 -1
- package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +4 -4
- package/pack/generated/omp/skills/devrites-audit/SKILL.md +5 -5
- package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +5 -5
- package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +1 -1
- package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +1 -1
- package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +7 -6
- package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +1 -1
- package/pack/generated/omp/skills/devrites-doubt/SKILL.md +6 -6
- package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/craft.md +1 -1
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +4 -4
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/fullstack.md +1 -1
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +8 -8
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +2 -2
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +2 -2
- package/pack/generated/omp/skills/devrites-interview/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +8 -7
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +13 -12
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +6 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +1 -1
- 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 +8 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/glossary.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +3 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ci-workflows.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/react.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/stack-profile.md +5 -5
- package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +15 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +14 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/index.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +12 -8
- package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +4 -4
- package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +1 -1
- package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +10 -10
- package/pack/generated/omp/skills/devrites-ux-shape/reference/brief-template.md +3 -3
- package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +1 -1
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +6 -2
- package/pack/generated/omp/skills/overhaul/references/records.md +8 -3
- package/pack/generated/omp/skills/rite/SKILL.md +8 -7
- package/pack/generated/omp/skills/rite/reference/menu.md +6 -5
- package/pack/generated/omp/skills/rite-adopt/SKILL.md +6 -5
- package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +11 -10
- package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +4 -3
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
- package/pack/generated/omp/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +4 -2
- package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/frontend-trigger.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +4 -4
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -6
- package/pack/generated/omp/skills/rite-build/reference/tdd.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +27 -8
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-converge/SKILL.md +16 -15
- package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +4 -4
- package/pack/generated/omp/skills/rite-customize/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-define/SKILL.md +25 -24
- package/pack/generated/omp/skills/rite-define/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-define/reference/gates.md +2 -2
- package/pack/generated/omp/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/omp/skills/rite-dogfood/SKILL.md +5 -5
- package/pack/generated/omp/skills/rite-explain/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/omp/skills/rite-fast/SKILL.md +12 -10
- package/pack/generated/omp/skills/rite-fast/reference/artifacts.md +1 -1
- package/pack/generated/omp/skills/rite-frame/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-frame/reference/failure-modes.md +4 -4
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +7 -6
- package/pack/generated/omp/skills/rite-learn/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-plan/SKILL.md +8 -8
- package/pack/generated/omp/skills/rite-plan/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +3 -1
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +6 -4
- package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +1 -1
- package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +9 -9
- package/pack/generated/omp/skills/rite-polish/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/backend-polish.md +2 -2
- package/pack/generated/omp/skills/rite-polish/reference/browser-polish-evidence.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/code.md +8 -8
- package/pack/generated/omp/skills/rite-polish/reference/design-memory.md +3 -3
- package/pack/generated/omp/skills/rite-polish/reference/design-system-discovery.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/ledger.md +3 -3
- package/pack/generated/omp/skills/rite-polish/reference/ui.md +1 -1
- package/pack/generated/omp/skills/rite-pov/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +6 -5
- package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +9 -7
- package/pack/generated/omp/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-prove/SKILL.md +13 -13
- package/pack/generated/omp/skills/rite-prove/reference/acceptance-proof.md +7 -7
- package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +3 -3
- package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +2 -2
- package/pack/generated/omp/skills/rite-quick/SKILL.md +19 -14
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/omp/skills/rite-review/SKILL.md +23 -22
- package/pack/generated/omp/skills/rite-review/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/cognitive-load.md +2 -2
- package/pack/generated/omp/skills/rite-review/reference/nielsen-heuristics.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/performance-review.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/security-review.md +2 -2
- package/pack/generated/omp/skills/rite-seal/SKILL.md +11 -11
- package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +3 -3
- package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +3 -1
- package/pack/generated/omp/skills/rite-seal/reference/output.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +4 -4
- package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/omp/skills/rite-ship/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-ship/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-ship/reference/close-out.md +5 -4
- package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/omp/skills/rite-ship/reference/rollout.md +3 -3
- package/pack/generated/omp/skills/rite-spec/SKILL.md +17 -14
- package/pack/generated/omp/skills/rite-spec/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/investigation.md +3 -3
- package/pack/generated/omp/skills/rite-spec/reference/question-protocol.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +2 -2
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +8 -8
- package/pack/generated/omp/skills/rite-status/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-temper/SKILL.md +13 -13
- package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -3
- package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +3 -3
- package/pack/generated/omp/skills/rite-temper/reference/significance.md +4 -2
- package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -5
- package/pack/generated/omp/skills/rite-vet/SKILL.md +14 -13
- package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +3 -3
- package/pack/generated/omp/skills/rite-vet/reference/depth.md +3 -3
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +5 -5
- package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/pi/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/pi/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/pi/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/pi/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/pi/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/pi/agents/overhaul-boundary.md +2 -0
- package/pack/generated/pi/agents/overhaul-craft.md +2 -0
- package/pack/generated/pi/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/pi/agents/overhaul-implementer.md +2 -0
- package/pack/generated/pi/agents/overhaul-recon.md +2 -0
- package/pack/generated/pi/agents/overhaul-specialist.md +2 -0
- package/pack/generated/pi/agents/overhaul-verifier.md +2 -0
- package/pack/generated/pi/prompts/rite-resolve.md +1 -1
- package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +3 -2
- package/pack/generated/pi/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/pi/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/pi/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/pi/skills/overhaul/references/records.md +8 -3
- package/pack/generated/pi/skills/rite/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite/reference/menu.md +6 -5
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +7 -6
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +2 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
- package/pack/generated/pi/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +3 -1
- package/pack/generated/pi/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +2 -0
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/pi/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/pi/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/pi/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/pi/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/pi/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/pi/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/pi/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/pi/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-temper/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/pi/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +1 -1
- package/package.json +3 -2
- package/scripts/build-host-artifacts.sh +13 -0
- package/scripts/codex-generate.sh +5 -1
- package/scripts/devin-generate.sh +4 -3
- package/scripts/install-lib.sh +5 -0
- package/scripts/omp-generate.sh +23 -1
- package/scripts/pi-generate.sh +2 -2
- package/engine/cmd/releasepack/main_test.go +0 -239
- package/engine/harnessmatrix_test.go +0 -46
- package/engine/help_test.go +0 -241
- package/engine/internal/acceptance/acceptance_test.go +0 -946
- package/engine/internal/devritespaths/paths_test.go +0 -128
- package/engine/internal/fsutil/copy_test.go +0 -154
- package/engine/internal/gate/gate_test.go +0 -865
- package/engine/internal/gate/readiness_binding_test.go +0 -443
- package/engine/internal/gitenv/env_test.go +0 -48
- package/engine/internal/hostpack/hostpack_test.go +0 -269
- package/engine/internal/install/install_test.go +0 -1741
- package/engine/internal/install/workspace_advisory_test.go +0 -54
- package/engine/internal/lib/candidate_test.go +0 -506
- package/engine/internal/lib/claims_test.go +0 -267
- package/engine/internal/lib/closeout_test.go +0 -266
- package/engine/internal/lib/context_next_test.go +0 -860
- package/engine/internal/lib/cursor_compat_test.go +0 -65
- package/engine/internal/lib/detect_test.go +0 -118
- package/engine/internal/lib/drift_test.go +0 -135
- package/engine/internal/lib/dup_test.go +0 -666
- package/engine/internal/lib/environment_report_test.go +0 -54
- package/engine/internal/lib/evidencefresh_test.go +0 -120
- package/engine/internal/lib/handoff_test.go +0 -83
- package/engine/internal/lib/manifest_union_test.go +0 -251
- package/engine/internal/lib/metrics_test.go +0 -28
- package/engine/internal/lib/migrate_test.go +0 -213
- package/engine/internal/lib/observe_budgets_test.go +0 -396
- package/engine/internal/lib/open_visual_test.go +0 -291
- package/engine/internal/lib/regression_test.go +0 -282
- package/engine/internal/lib/resolve_remediation_test.go +0 -192
- package/engine/internal/lib/secretscan_test.go +0 -556
- package/engine/internal/lib/slicecheck_test.go +0 -170
- package/engine/internal/lib/taskgraph_test.go +0 -353
- package/engine/internal/lib/triggers_test.go +0 -23
- package/engine/internal/lib/util_test.go +0 -148
- package/engine/internal/lib/visual_outline_test.go +0 -189
- package/engine/internal/lib/windows_test.go +0 -420
- package/engine/internal/lib/workspace_read_test.go +0 -102
- package/engine/internal/markdowntext/markdowntext_fuzz_test.go +0 -36
- package/engine/internal/markdowntext/markdowntext_test.go +0 -58
- package/engine/internal/markdowntext/testdata/structural.json +0 -277
- package/engine/internal/notes/notes_test.go +0 -545
- package/engine/internal/overhaul/admit/admit_test.go +0 -204
- package/engine/internal/overhaul/admit/packet_test.go +0 -223
- package/engine/internal/overhaul/bench/run_test.go +0 -316
- package/engine/internal/overhaul/ovio/ovio_test.go +0 -75
- package/engine/internal/overhaul/packet/packet_test.go +0 -263
- package/engine/internal/overhaul/records/init_test.go +0 -96
- package/engine/internal/overhaul/records/records_test.go +0 -696
- package/engine/internal/overhaul/records/run_test.go +0 -77
- package/engine/internal/overhaul/render/run_test.go +0 -928
- package/engine/internal/overhaul/score/run_test.go +0 -636
- package/engine/internal/overhaul/snapshot/run_test.go +0 -718
- package/engine/internal/parallel/cli_test.go +0 -91
- package/engine/internal/parallel/ops_test.go +0 -939
- package/engine/internal/parallel/parallel_test.go +0 -645
- package/engine/internal/parallel/pathdisjoint_fuzz_test.go +0 -43
- package/engine/internal/parallel/pathdisjoint_test.go +0 -193
- package/engine/internal/parallel/select_test.go +0 -95
- package/engine/internal/parallel/testdata/fuzz/FuzzPathDisjoint/a449b81b4711b7b4 +0 -3
- package/engine/internal/reason/reason_test.go +0 -37
- package/engine/internal/release/release_test.go +0 -181
- package/engine/internal/rootfacts/facts_test.go +0 -364
- package/engine/internal/safepath/safepath_fuzz_test.go +0 -21
- package/engine/internal/safepath/safepath_test.go +0 -69
- package/engine/internal/safepath/safepath_windows_test.go +0 -26
- package/engine/internal/state/acceptance_test.go +0 -57
- package/engine/internal/state/budgets_test.go +0 -135
- package/engine/internal/state/cmd/workflowmanifest/main_test.go +0 -96
- package/engine/internal/state/concurrency_test.go +0 -184
- package/engine/internal/state/cursor_fuzz_test.go +0 -80
- package/engine/internal/state/cursor_test.go +0 -276
- package/engine/internal/state/observation_test.go +0 -961
- package/engine/internal/state/observation_unix_test.go +0 -68
- package/engine/internal/state/state_test.go +0 -986
- package/engine/internal/state/taskgraph_fuzz_test.go +0 -38
- package/engine/internal/state/taskgraph_test.go +0 -43
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/114b28f68c1fa4db +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/378a0f2218e812ea +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/39eaa26fcb481e3c +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/776ca1dc0143acf0 +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/9295930c1ebb81df +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/a60de309dc33be0d +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f04dc7b06ef7c99f +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f3000ac510878bd6 +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzWorkspaceSchemaRow/a75aabb9f2a847d5 +0 -2
- package/engine/internal/state/workspaceschema_fuzz_test.go +0 -27
- package/engine/internal/state/workspaceschema_test.go +0 -101
- package/engine/internal/state/write_test.go +0 -136
- package/engine/internal/version/version_test.go +0 -29
- package/engine/internal/workflow/commands_test.go +0 -18
- package/engine/note_routing_test.go +0 -95
- package/engine/observation_contract_test.go +0 -175
- package/engine/root_routing_test.go +0 -340
|
@@ -67,21 +67,25 @@ func validateSlicePaths(paths []string, label, root string) ([]string, error) {
|
|
|
67
67
|
if err != nil {
|
|
68
68
|
return nil, fmt.Errorf("%s: %w", label, err)
|
|
69
69
|
}
|
|
70
|
+
// Comparisons fold case always: on a case-insensitive filesystem
|
|
71
|
+
// (macOS, Windows) .DEVRITES is the control tree and A.go is a.go; on a
|
|
72
|
+
// case-sensitive one a false overlap only serializes the slices.
|
|
73
|
+
folded := strings.ToLower(path)
|
|
70
74
|
// Parallel eligibility must reject workspace control metadata so slices
|
|
71
75
|
// cannot claim control-tree / SSOT files (docs: ".devrites/**").
|
|
72
|
-
if
|
|
76
|
+
if folded == ".devrites" || strings.HasPrefix(folded, ".devrites/") {
|
|
73
77
|
return nil, fmt.Errorf("%s: path must not include .devrites: %q", label, path)
|
|
74
78
|
}
|
|
75
79
|
// Same for git internals: a transfer commit can never carry .git/**
|
|
76
80
|
// anyway, and inside a worktree .git is a file, so claiming it is
|
|
77
81
|
// pure footgun.
|
|
78
|
-
if
|
|
82
|
+
if folded == ".git" || strings.HasPrefix(folded, ".git/") {
|
|
79
83
|
return nil, fmt.Errorf("%s: path must not include .git: %q", label, path)
|
|
80
84
|
}
|
|
81
|
-
if _, ok := seen[
|
|
85
|
+
if _, ok := seen[folded]; ok {
|
|
82
86
|
return nil, fmt.Errorf("%s: duplicate path %q", label, path)
|
|
83
87
|
}
|
|
84
|
-
seen[
|
|
88
|
+
seen[folded] = struct{}{}
|
|
85
89
|
normalized = append(normalized, path)
|
|
86
90
|
if root != "" {
|
|
87
91
|
// Check every component, not just the leaf: a symlinked directory
|
|
@@ -122,6 +126,7 @@ func CheckPathDisjoint(slices []SlicePaths, root string) ([]string, error) {
|
|
|
122
126
|
return nil, err
|
|
123
127
|
}
|
|
124
128
|
for _, path := range paths {
|
|
129
|
+
path = strings.ToLower(path) // see validateSlicePaths: overlap folds case
|
|
125
130
|
owners[path] = append(owners[path], label)
|
|
126
131
|
}
|
|
127
132
|
}
|
|
@@ -145,15 +145,17 @@ func validTag(tag string) bool {
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
func platformBinaryName() (string, error) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
148
|
+
return binaryNameFor(runtime.GOOS, runtime.GOARCH)
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// binaryNameFor names the release asset; CI publishes darwin, linux and
|
|
152
|
+
// windows for both amd64 and arm64.
|
|
153
|
+
func binaryNameFor(goos, goarch string) (string, error) {
|
|
154
|
+
if (goos != "darwin" && goos != "linux" && goos != "windows") || (goarch != "amd64" && goarch != "arm64") {
|
|
155
|
+
return "", fmt.Errorf("no DevRites engine release for %s/%s", goos, goarch)
|
|
156
|
+
}
|
|
157
|
+
name := "devrites-" + goos + "-" + goarch
|
|
158
|
+
if goos == "windows" {
|
|
157
159
|
name += ".exe"
|
|
158
160
|
}
|
|
159
161
|
return name, nil
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package safepath
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"errors"
|
|
4
5
|
"os"
|
|
5
6
|
"path/filepath"
|
|
6
7
|
)
|
|
@@ -28,9 +29,10 @@ func WithinResolved(candidate, parent string) bool {
|
|
|
28
29
|
|
|
29
30
|
// ResolveExisting resolves symlinks in the longest existing path prefix, then
|
|
30
31
|
// appends any missing tail without allowing it to change the resolved parent.
|
|
32
|
+
// A dangling symlink is followed to its target: creating through it writes there.
|
|
31
33
|
func ResolveExisting(filename string) (string, error) {
|
|
32
34
|
var tail []string
|
|
33
|
-
for {
|
|
35
|
+
for hops := 0; ; {
|
|
34
36
|
resolved, err := filepath.EvalSymlinks(filename)
|
|
35
37
|
if err == nil {
|
|
36
38
|
for i := len(tail) - 1; i >= 0; i-- {
|
|
@@ -41,6 +43,20 @@ func ResolveExisting(filename string) (string, error) {
|
|
|
41
43
|
if !os.IsNotExist(err) {
|
|
42
44
|
return "", err
|
|
43
45
|
}
|
|
46
|
+
if info, lerr := os.Lstat(filename); lerr == nil && info.Mode()&os.ModeSymlink != 0 {
|
|
47
|
+
target, rerr := os.Readlink(filename)
|
|
48
|
+
if rerr != nil {
|
|
49
|
+
return "", rerr
|
|
50
|
+
}
|
|
51
|
+
if hops++; hops > 255 {
|
|
52
|
+
return "", &os.PathError{Op: "resolve", Path: filename, Err: errors.New("too many symlinks")}
|
|
53
|
+
}
|
|
54
|
+
if !filepath.IsAbs(target) {
|
|
55
|
+
target = filepath.Join(filepath.Dir(filename), target)
|
|
56
|
+
}
|
|
57
|
+
filename = target
|
|
58
|
+
continue
|
|
59
|
+
}
|
|
44
60
|
parent := filepath.Dir(filename)
|
|
45
61
|
if parent == filename {
|
|
46
62
|
return "", err
|
|
@@ -78,17 +78,21 @@ func ArtifactLineBudget(name string) (int, bool) {
|
|
|
78
78
|
|
|
79
79
|
// sanctionedRootFiles are workspace-root files the schema places there without a
|
|
80
80
|
// line budget: conditional artifacts (`references.md`, `investigation-map.md`,
|
|
81
|
-
// `dogfood.md`) and engine-owned machine files (the parallel lease,
|
|
82
|
-
// ledger, the regression baseline
|
|
83
|
-
//
|
|
84
|
-
//
|
|
81
|
+
// `dogfood.md`, `devex.md`) and engine-owned machine files (the parallel lease,
|
|
82
|
+
// the metrics ledger, the regression baseline, the dispatch ledger, the drift
|
|
83
|
+
// baseline). Anything else in the root is unsanctioned placement — `packets/`
|
|
84
|
+
// and `history/` own by-reference packets and relocated narrative
|
|
85
|
+
// (workspace-artifact-schema.md "Required by phase").
|
|
85
86
|
var sanctionedRootFiles = map[string]bool{
|
|
86
87
|
"references.md": true,
|
|
87
88
|
"investigation-map.md": true,
|
|
88
89
|
"dogfood.md": true,
|
|
90
|
+
"devex.md": true,
|
|
89
91
|
"parallel-lease.md": true,
|
|
90
92
|
"metrics.jsonl": true,
|
|
91
93
|
"regression-baseline.json": true,
|
|
94
|
+
"dispatch.json": true,
|
|
95
|
+
"readiness-inputs.json": true,
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
// SanctionedRootFile reports whether name is a legitimate workspace-root file:
|
|
@@ -15,12 +15,14 @@ import (
|
|
|
15
15
|
// ResolveRoot returns the .devrites directory to operate on. A non-empty
|
|
16
16
|
// override (e.g. from DEVRITES_ROOT) may name either the project root or its
|
|
17
17
|
// .devrites directory; otherwise the nearest ancestor .devrites is used.
|
|
18
|
+
// Callers take Dir(root) as the project, so a symlinked .devrites (which
|
|
19
|
+
// rootfacts proves resolves inside the project) keeps its project-side name.
|
|
18
20
|
func ResolveRoot(override string) (string, error) {
|
|
19
21
|
facts, err := rootfacts.Resolve(override)
|
|
20
22
|
if err != nil {
|
|
21
23
|
return "", err
|
|
22
24
|
}
|
|
23
|
-
return facts.
|
|
25
|
+
return filepath.Join(facts.PhysicalProject, devritespaths.DevritesRootName), nil
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
// featureDir is the canonical per-feature state directory under root.
|
|
@@ -8,6 +8,7 @@ import (
|
|
|
8
8
|
"os"
|
|
9
9
|
"path"
|
|
10
10
|
"path/filepath"
|
|
11
|
+
"slices"
|
|
11
12
|
"sort"
|
|
12
13
|
"strings"
|
|
13
14
|
|
|
@@ -350,10 +351,12 @@ func observationWorkspaceOverrideValid(root, slug string) bool {
|
|
|
350
351
|
if raw == "" {
|
|
351
352
|
return true
|
|
352
353
|
}
|
|
353
|
-
if strings.TrimSpace(raw) != raw
|
|
354
|
+
if strings.TrimSpace(raw) != raw {
|
|
354
355
|
return false
|
|
355
356
|
}
|
|
356
|
-
|
|
357
|
+
// A ".." hop could route through a symlinked alias, so it is never
|
|
358
|
+
// cleaned away; "./" and trailing separators are harmless spellings.
|
|
359
|
+
if slices.Contains(strings.FieldsFunc(raw, func(r rune) bool { return r == '/' || r == filepath.Separator }), "..") {
|
|
357
360
|
return false
|
|
358
361
|
}
|
|
359
362
|
physicalRoot, err := filepath.EvalSymlinks(root)
|
|
@@ -364,16 +367,18 @@ func observationWorkspaceOverrideValid(root, slug string) bool {
|
|
|
364
367
|
if err != nil {
|
|
365
368
|
return false
|
|
366
369
|
}
|
|
367
|
-
override := raw
|
|
370
|
+
override := filepath.Clean(raw)
|
|
368
371
|
if !filepath.IsAbs(override) {
|
|
369
372
|
override = filepath.Join(filepath.Dir(physicalRoot), override)
|
|
370
373
|
}
|
|
371
|
-
|
|
372
|
-
|
|
374
|
+
// Only the selected root may be spelled through a symlink (/tmp versus
|
|
375
|
+
// /private/tmp); work/<slug> must match literally so an alias of the
|
|
376
|
+
// workspace itself never does.
|
|
377
|
+
if filepath.Base(override) != slug || filepath.Base(filepath.Dir(override)) != "work" {
|
|
373
378
|
return false
|
|
374
379
|
}
|
|
375
|
-
|
|
376
|
-
return
|
|
380
|
+
overrideRoot, err := filepath.EvalSymlinks(filepath.Dir(filepath.Dir(override)))
|
|
381
|
+
return err == nil && overrideRoot == physicalRoot
|
|
377
382
|
}
|
|
378
383
|
|
|
379
384
|
func observationInventory() []ArtifactPath {
|
|
@@ -3,16 +3,20 @@ package state
|
|
|
3
3
|
import (
|
|
4
4
|
"fmt"
|
|
5
5
|
"regexp"
|
|
6
|
+
"slices"
|
|
6
7
|
"strings"
|
|
7
8
|
"unicode"
|
|
8
9
|
|
|
9
10
|
"github.com/devrites/devrites/internal/markdowntext"
|
|
10
11
|
)
|
|
11
12
|
|
|
12
|
-
// TaskSlice is one SLICE-### block parsed from tasks.md.
|
|
13
|
+
// TaskSlice is one SLICE-### block parsed from tasks.md. Via maps a dependency
|
|
14
|
+
// ID to the interface its `(via <text>)` suffix names; bare edges are absent.
|
|
13
15
|
type TaskSlice struct {
|
|
14
|
-
ID
|
|
15
|
-
Dependencies
|
|
16
|
+
ID string
|
|
17
|
+
Dependencies []string
|
|
18
|
+
Via map[string]string
|
|
19
|
+
ConsumesProduces string
|
|
16
20
|
}
|
|
17
21
|
|
|
18
22
|
// TaskGraphResult is the deterministic outcome of parsing a tasks.md slice graph.
|
|
@@ -26,8 +30,12 @@ type TaskGraphResult struct {
|
|
|
26
30
|
var (
|
|
27
31
|
sliceHeaderRE = regexp.MustCompile(`(?m)^##\s+(SLICE-\d+)\b`)
|
|
28
32
|
anyH2HeaderRE = regexp.MustCompile(`(?m)^##\s`)
|
|
29
|
-
dependenciesRE = regexp.MustCompile(`(?m)^Dependencies
|
|
30
|
-
dependsOnRE = regexp.MustCompile(`(?m)^depends_on
|
|
33
|
+
dependenciesRE = regexp.MustCompile(`(?m)^Dependencies:[ \t]*(.+)[ \t]*$`)
|
|
34
|
+
dependsOnRE = regexp.MustCompile(`(?m)^depends_on:[ \t]*(.+)[ \t]*$`)
|
|
35
|
+
consumesRE = regexp.MustCompile(`(?m)^Consumes / Produces:[ \t]*(.+)[ \t]*$`)
|
|
36
|
+
// viaSuffixRE matches a Dependencies `(via <text>)` suffix; group 2 is
|
|
37
|
+
// empty when the parenthetical is unclosed. Nested parentheses are unsupported.
|
|
38
|
+
viaSuffixRE = regexp.MustCompile(`\([ \t]*via\b([^()]*)(\))?`)
|
|
31
39
|
sliceIDValidRE = regexp.MustCompile(`^SLICE-\d+$`)
|
|
32
40
|
)
|
|
33
41
|
|
|
@@ -92,10 +100,10 @@ func ParseTaskGraph(tasksMarkdown []byte) TaskGraphResult {
|
|
|
92
100
|
end = headers[i+1][0]
|
|
93
101
|
}
|
|
94
102
|
block := text[start:end]
|
|
95
|
-
|
|
103
|
+
slice, problems := parseSliceGraph(id, block)
|
|
96
104
|
result.Problems = append(result.Problems, problems...)
|
|
97
|
-
result.Slices = append(result.Slices,
|
|
98
|
-
for _, dep := range
|
|
105
|
+
result.Slices = append(result.Slices, slice)
|
|
106
|
+
for _, dep := range slice.Dependencies {
|
|
99
107
|
if !known[dep] {
|
|
100
108
|
result.Unknown = append(result.Unknown, dep)
|
|
101
109
|
result.Problems = append(result.Problems, fmt.Sprintf("%s depends on unknown slice %s", id, dep))
|
|
@@ -121,14 +129,20 @@ func structuralTaskText(tasksMarkdown []byte) string {
|
|
|
121
129
|
return string(masked)
|
|
122
130
|
}
|
|
123
131
|
|
|
124
|
-
func parseSliceGraph(id, block string) (
|
|
132
|
+
func parseSliceGraph(id, block string) (TaskSlice, []string) {
|
|
125
133
|
var problems []string
|
|
126
134
|
depsLine := firstLineValue(dependenciesRE, block)
|
|
127
135
|
mirrorLine := firstLineValue(dependsOnRE, block)
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
bare, via, malformed := splitDependencyVia(depsLine)
|
|
137
|
+
deps, malformedIDs := parseIDList(bare)
|
|
138
|
+
for _, token := range append(malformed, malformedIDs...) {
|
|
130
139
|
problems = append(problems, fmt.Sprintf("%s has malformed dependency %q", id, token))
|
|
131
140
|
}
|
|
141
|
+
for dep := range via {
|
|
142
|
+
if !slices.Contains(deps, dep) {
|
|
143
|
+
delete(via, dep) // its ID token is already reported malformed
|
|
144
|
+
}
|
|
145
|
+
}
|
|
132
146
|
mirror, mirrorMalformed := parseIDList(mirrorLine)
|
|
133
147
|
for _, token := range mirrorMalformed {
|
|
134
148
|
problems = append(problems, fmt.Sprintf("%s has malformed depends_on %q", id, token))
|
|
@@ -142,7 +156,48 @@ func parseSliceGraph(id, block string) ([]string, []string) {
|
|
|
142
156
|
if depsLine == "" {
|
|
143
157
|
deps = mirror
|
|
144
158
|
}
|
|
145
|
-
return deps, problems
|
|
159
|
+
return TaskSlice{ID: id, Dependencies: deps, Via: via, ConsumesProduces: firstLineValue(consumesRE, block)}, problems
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// splitDependencyVia strips each `(via <text>)` suffix from a Dependencies
|
|
163
|
+
// value, returning the bare ID list, the via text keyed by the ID it follows,
|
|
164
|
+
// and any suffix that is empty, unclosed, or not directly after an ID.
|
|
165
|
+
func splitDependencyVia(raw string) (string, map[string]string, []string) {
|
|
166
|
+
var bare strings.Builder
|
|
167
|
+
var via map[string]string
|
|
168
|
+
var malformed []string
|
|
169
|
+
last := 0
|
|
170
|
+
for _, m := range viaSuffixRE.FindAllStringSubmatchIndex(raw, -1) {
|
|
171
|
+
before := raw[last:m[0]]
|
|
172
|
+
bare.WriteString(before)
|
|
173
|
+
last = m[1]
|
|
174
|
+
text := strings.TrimSpace(raw[m[2]:m[3]])
|
|
175
|
+
dep := precedingSliceID(before)
|
|
176
|
+
if m[4] < 0 || text == "" || dep == "" {
|
|
177
|
+
malformed = append(malformed, strings.TrimSpace(raw[m[0]:m[1]]))
|
|
178
|
+
continue
|
|
179
|
+
}
|
|
180
|
+
if via == nil {
|
|
181
|
+
via = make(map[string]string)
|
|
182
|
+
}
|
|
183
|
+
if _, seen := via[dep]; !seen {
|
|
184
|
+
via[dep] = text
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
bare.WriteString(raw[last:])
|
|
188
|
+
return bare.String(), via, malformed
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// precedingSliceID returns the SLICE-### token that ends s, separated from what
|
|
192
|
+
// follows only by blanks, or "" when s ends in a separator or a non-ID token.
|
|
193
|
+
func precedingSliceID(s string) string {
|
|
194
|
+
s = strings.TrimRight(s, " \t")
|
|
195
|
+
start := strings.LastIndexAny(s, ",; \t") + 1
|
|
196
|
+
id := strings.Trim(s[start:], "`'\"(){}[]")
|
|
197
|
+
if !sliceIDValidRE.MatchString(id) {
|
|
198
|
+
return ""
|
|
199
|
+
}
|
|
200
|
+
return id
|
|
146
201
|
}
|
|
147
202
|
|
|
148
203
|
func firstLineValue(re *regexp.Regexp, block string) string {
|
|
@@ -103,12 +103,18 @@ func WithFeatureLockRelease(root, slug string, fn func(release func()) error) er
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// featureLockPath validates slug and creates the feature directory, returning
|
|
106
|
-
// the lock file path inside it.
|
|
106
|
+
// the lock file path inside it. A closed workspace (work/<slug> gone, archive/<slug>
|
|
107
|
+
// present) is refused rather than resurrected by a late lock.
|
|
107
108
|
func featureLockPath(root, slug string) (string, error) {
|
|
108
109
|
if !devritespaths.ValidSlug(slug) {
|
|
109
110
|
return "", fmt.Errorf("lock feature %q: not a feature slug", slug)
|
|
110
111
|
}
|
|
111
112
|
dir := featureDir(root, slug)
|
|
113
|
+
if _, err := os.Lstat(dir); errors.Is(err, fs.ErrNotExist) {
|
|
114
|
+
if _, archErr := os.Lstat(filepath.Join(root, "archive", slug)); archErr == nil {
|
|
115
|
+
return "", fmt.Errorf("lock feature %q: workspace is closed (archived)", slug)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
112
118
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
|
113
119
|
return "", fmt.Errorf("lock feature %q: %w", slug, err)
|
|
114
120
|
}
|
package/engine/main.go
CHANGED
|
@@ -48,10 +48,12 @@ Usage:
|
|
|
48
48
|
devrites-engine orient <slug> Alias for observe summary
|
|
49
49
|
devrites-engine next [slug] Print the minimal remaining lifecycle path with advisory skips
|
|
50
50
|
devrites-engine handoff [slug] Emit the deterministic resume record (cursor, blocking gates, ledger, dead ends)
|
|
51
|
+
devrites-engine recall --paths <csv> [--limit n]
|
|
52
|
+
Point at archived features that touched these paths: decisions, constraints, findings (read-only)
|
|
51
53
|
devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <id>] [--trigger a,b]
|
|
52
54
|
Emit one deduplicated read-set bundle for a phase, skill, or dispatch role
|
|
53
55
|
devrites-engine metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]
|
|
54
|
-
devrites-engine metrics summary [slug]
|
|
56
|
+
devrites-engine metrics summary [slug] [--by-slice] Summarize the metrics ledger, or per-slice rounds and agent-minutes
|
|
55
57
|
devrites-engine dispatch <slug> <sub> Launch-wave barrier for parallel dispatch: open/start/seal/return/status/abandon (build wright waves: --slice, round cap)
|
|
56
58
|
devrites-engine claim <add|release|list|check> Advisory session-scoped file claims for same-tree concurrent sessions (.devrites/claims.jsonl)
|
|
57
59
|
devrites-engine note <subcommand> <slug> Anchored workspace notes bound to verbatim code quotes; drift regrades them (notes.md)
|
|
@@ -64,7 +66,7 @@ Usage:
|
|
|
64
66
|
devrites-engine state resolve <qid> "<ans>" Resolve an open question and update state atomically
|
|
65
67
|
devrites-engine state merge-manifest <slug> [pred...] Fold the recorded predecessor chain's manifests into the release candidate manifest
|
|
66
68
|
devrites-engine state close <slug> Archive a shipped feature and clear ACTIVE
|
|
67
|
-
devrites-engine migrate <slug> [--dry-run] Normalize
|
|
69
|
+
devrites-engine migrate <slug> [--dry-run] [--answer id=choice] Normalize an older-schema workspace to the current schema
|
|
68
70
|
devrites-engine secret-scan [--staged] [--stdin] [slug] Scan exact staged blobs, stdin, or touched files; HIGH blocks
|
|
69
71
|
devrites-engine open-visual <path-or-name> [--slug <slug>] [--no-open]
|
|
70
72
|
Resolve a visual HTML file, optionally open it locally, print agent paths
|
|
@@ -134,6 +136,8 @@ func run(args []string, stdin io.Reader, stdout, stderr io.Writer) int {
|
|
|
134
136
|
return lib.RunNext(root, args[1:], stdout, stderr)
|
|
135
137
|
case "handoff":
|
|
136
138
|
return lib.RunHandoff(root, args[1:], stdout, stderr)
|
|
139
|
+
case "recall":
|
|
140
|
+
return lib.RunRecall(root, args[1:], stdout, stderr)
|
|
137
141
|
case "context":
|
|
138
142
|
return lib.RunContext(root, args[1:], stdout, stderr)
|
|
139
143
|
case "metrics":
|
|
@@ -1 +1,3 @@
|
|
|
1
1
|
Do not invoke another agent. You are called by `/overhaul` and return your result to that orchestrator.
|
|
2
|
+
|
|
3
|
+
Write your receipt (`schema` `overhaul.receipt/1`) to the packet's `receipt_path`, copying `run_id`, `task_id`, `attempt_id`, `lane` and `snapshot` verbatim from the packet and setting `role` to the unprefixed role name (`verifier`, not `overhaul-verifier`); follow `.claude/skills/overhaul/references/orchestration.md` § Receipts, since admission rejects any mismatch.
|
|
@@ -76,6 +76,10 @@ consistently:
|
|
|
76
76
|
- **Docs accuracy:** examples must be correct and ready to copy. The documented
|
|
77
77
|
signature must match the code, and changed behavior must update its docs in the
|
|
78
78
|
same change.
|
|
79
|
+
- **Agent use:** can a coding agent complete the flow with no human step?
|
|
80
|
+
Check non-interactive flags or env for every prompt, machine-readable output and
|
|
81
|
+
distinct exit codes where scripts consume results, headless setup and auth, and
|
|
82
|
+
commands instead of "click here" UI steps. Name each human-only step.
|
|
79
83
|
|
|
80
84
|
## Rules
|
|
81
85
|
|
|
@@ -112,6 +116,7 @@ Scorecard:
|
|
|
112
116
|
error-messages <actionable? | the unactionable ones, quoted>
|
|
113
117
|
ergonomics <consistent with project conventions? | the breaks>
|
|
114
118
|
docs <copy-pasteable + accurate? | the wrong examples>
|
|
119
|
+
agent-use <completes headless? | the human-only steps | n/a>
|
|
115
120
|
Boomerang (measure mode): predicted <…> vs measured <…> — gap: <none | the delta + why it matters>
|
|
116
121
|
Overall: blockers? <yes/no — list>
|
|
117
122
|
```
|
|
@@ -30,6 +30,10 @@ Read only the paths and bounded question supplied by the orchestrator.
|
|
|
30
30
|
For structural questions, use the repository's code-intelligence index. Use exact
|
|
31
31
|
sources, not recollection, and do not broaden the question.
|
|
32
32
|
|
|
33
|
+
Report how things are today, not how the intended change should go. When the brief
|
|
34
|
+
names a planned solution, still answer only with current-state facts; a recommendation
|
|
35
|
+
bends the evidence toward the plan.
|
|
36
|
+
|
|
33
37
|
## Rules
|
|
34
38
|
|
|
35
39
|
- Read-only. Do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
@@ -114,7 +114,9 @@ criterion, slice, or proof.
|
|
|
114
114
|
planned tests) or `kind: mechanism` (a named test can discriminate the wrong
|
|
115
115
|
implementation; propose that case as the fix, not new plan prose).
|
|
116
116
|
- In a recheck, your verdict covers the listed fingerprints, the correction diff, and
|
|
117
|
-
the dependents of each changed clause.
|
|
117
|
+
the dependents of each changed clause. Return an explicit correction-created
|
|
118
|
+
regression verdict over the touched invariants and those dependents as
|
|
119
|
+
`Regression: <none | invariant → finding>`. Anything else you notice on unchanged text
|
|
118
120
|
goes under `Late:` with severity and site; it is recorded, not verdict-bearing.
|
|
119
121
|
- When a dimension has no issue, say "strong: <why>" instead of inventing a
|
|
120
122
|
finding.
|
|
@@ -134,6 +136,7 @@ Dimension bands (evidence → band):
|
|
|
134
136
|
- … (all 7)
|
|
135
137
|
Suppressed (confidence ≤4, unverified): <count + one-line each, appendix>
|
|
136
138
|
Critical failure-mode gaps: <list | none>
|
|
139
|
+
Regression (recheck only): <none | invariant → finding>
|
|
137
140
|
Floor verdict: <weakest band> on <dimension> → PASS | BLOCKED
|
|
138
141
|
```
|
|
139
142
|
|
|
@@ -120,7 +120,10 @@ unclear boundary is underspecified: return `Escalation` without proceeding.
|
|
|
120
120
|
new fingerprint. At the limit return the gate and repro. `Escalation` is only for product/irreversible choices
|
|
121
121
|
or human-only access; technical failure is a blocker.
|
|
122
122
|
Before handoff, inspect your cumulative slice diff against the contract and
|
|
123
|
-
scenario matrix, including correction-affected adjacent variants
|
|
123
|
+
scenario matrix, including correction-affected adjacent variants, then against
|
|
124
|
+
the reviewers' own checks: [code review § What to check](../skills/devrites-lib/reference/standards/code-review.md#what-to-check-tests-first)
|
|
125
|
+
and test analysis (each acceptance criterion has a test that fails without the
|
|
126
|
+
change; no assertion-free, tautological, or mock-asserting test). Fix supported
|
|
124
127
|
in-scope gaps together, rerun affected proof, and report remaining gaps. Self-check
|
|
125
128
|
never replaces independent review; green tests do not prove all possible cases.
|
|
126
129
|
5. **TRANSFER when isolated.** After green writer-safe proof, verify the diff again,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: overhaul-implementer
|
|
3
3
|
description: Implements one approved /overhaul repair task test-first inside its exact allowed paths. Dispatched only by the /overhaul skill after the user approves the plan; returns a patch receipt.
|
|
4
|
+
permissionMode: acceptEdits
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
<!-- include:_shared/untrusted-input.md -->
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "DevRites keeps the root orchestration context source-read-only. Native subagents own specialist execution; only devrites-slice-wright may edit source in the lifecycle (fast-builder writes for /rite-fast; overhaul-* agents keep every tool). Its task lists exact project-relative paths, and the root rejects any returned diff outside that contract.",
|
|
2
|
+
"$comment": "DevRites keeps the root orchestration context source-read-only by instruction; no permission mode enforces it. These allow rules cover the engine, read-only git, code-graph tools and .devrites/ workspace edits. Native subagents own specialist execution; only devrites-slice-wright may edit source in the lifecycle (fast-builder writes for /rite-fast; overhaul-* agents keep every tool). Its task lists exact project-relative paths, and the root rejects any returned diff outside that contract.",
|
|
3
3
|
"permissions": {
|
|
4
|
-
"defaultMode": "plan",
|
|
5
4
|
"allow": [
|
|
6
5
|
"Bash(devrites-engine check candidate *)",
|
|
7
6
|
"Bash(devrites-engine check readiness *)",
|
|
@@ -19,6 +18,7 @@
|
|
|
19
18
|
"Bash(devrites-engine orient *)",
|
|
20
19
|
"Bash(devrites-engine next *)",
|
|
21
20
|
"Bash(devrites-engine handoff *)",
|
|
21
|
+
"Bash(devrites-engine recall *)",
|
|
22
22
|
"Bash(devrites-engine context *)",
|
|
23
23
|
"Bash(devrites-engine metrics *)",
|
|
24
24
|
"Bash(devrites-engine dispatch *)",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"Bash(devrites-engine gates lint *)",
|
|
48
48
|
"Bash(devrites-engine gates attest *)",
|
|
49
49
|
"Bash(devrites-engine gates abandon *)",
|
|
50
|
+
"Bash(devrites-engine overhaul *)",
|
|
50
51
|
"mcp__codegraph__*",
|
|
51
52
|
"mcp__codebase-memory-mcp__*",
|
|
52
53
|
"mcp__codebase-memory__*",
|
|
@@ -60,8 +61,7 @@
|
|
|
60
61
|
"Bash(git show *)",
|
|
61
62
|
"Bash(git rev-parse *)",
|
|
62
63
|
"Bash(git merge-base *)",
|
|
63
|
-
"Edit(
|
|
64
|
-
"Write(.devrites/**)",
|
|
64
|
+
"Edit(/.devrites/**)",
|
|
65
65
|
"Bash(devrites-engine secret-scan)",
|
|
66
66
|
"Bash(devrites-engine secret-scan *)",
|
|
67
67
|
"Bash(devrites-engine open-visual *)",
|
|
@@ -4,7 +4,7 @@ description: Shape stable API, type, module, or frontend/backend contracts befor
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"security":["devrites-lib/reference/standards/security.md","rite-review/reference/security-review.md"]},"workspace":["spec.md","plan.md","tasks.md","state.md","decisions.md"]} -->
|
|
7
|
-
> Read-set manifest: `devrites-engine context
|
|
7
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-api-interface` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
8
8
|
|
|
9
9
|
# devrites-api-interface: contract before implementation
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@ argument-hint: "<security | perf | simplify>"
|
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/agents.md"],"triggers":{"audit-coverage":["devrites-lib/reference/standards/audit-coverage.md"],"architecture-health":["devrites-lib/reference/standards/architecture-health.md"]},"workspace":["spec.md","plan.md","tasks.md","touched-files.md","evidence.md","state.md","decisions.md"],"workspaceByRole":{"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md"]}} -->
|
|
8
|
-
> Read-set manifest: `devrites-engine context
|
|
8
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-audit` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
9
9
|
|
|
10
10
|
# devrites-audit: read-only audit dispatch
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ description: Observe and prove working UI behavior in a real browser with screen
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- loads: {"always":["devrites-browser-proof/reference/browser-performance.md","devrites-browser-proof/reference/visual-verdict.md","devrites-frontend-craft/reference/quality-standards.md"],"triggers":{"security":["devrites-lib/reference/standards/security.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"]}} -->
|
|
7
|
-
> Read-set manifest: `devrites-engine context
|
|
7
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-browser-proof` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
8
8
|
|
|
9
9
|
# devrites-browser-proof: runtime evidence for UI
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@ argument-hint: "[<slug>]"
|
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
<!-- loads: {"always":["devrites-lib/reference/standards/code-navigation.md","devrites-debug-recovery/reference/build-the-loop.md","devrites-debug-recovery/reference/cleanup-and-classify.md","devrites-debug-recovery/reference/hypotheses.md","devrites-debug-recovery/reference/instrumentation.md","devrites-debug-recovery/reference/regression-test.md","devrites-debug-recovery/reference/trace.md","devrites-lib/reference/standards/debug-recovery.md"],"triggers":{"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"security":["devrites-lib/reference/standards/security.md"],"workspace":["devrites-lib/reference/standards/workflow-artifacts.md"]}} -->
|
|
8
|
-
> Read-set manifest: `devrites-engine context
|
|
8
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-debug-recovery` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
9
9
|
|
|
10
10
|
# devrites-debug-recovery: fix the root cause, not the symptom
|
|
11
11
|
|
|
@@ -32,7 +32,8 @@ has no clear next move. Optional slug selects the active workspace; defaults to
|
|
|
32
32
|
Do not proceed without a reproduction input: the captured error text for
|
|
33
33
|
repeatable actions, or the retained bounded artifact for consumptive ones.
|
|
34
34
|
3. **Ranked hypotheses (3-5, falsifiable):** generate the list before testing
|
|
35
|
-
any of them. Each must state a prediction.
|
|
35
|
+
any of them. Each must state a prediction. With a `.devrites/archive/`, first run
|
|
36
|
+
`devrites-engine recall --paths <failing files>` for prior dead ends and causes.
|
|
36
37
|
**Completion:** 3-5 distinct hypotheses each state an observable prediction.
|
|
37
38
|
See [hypotheses.md](reference/hypotheses.md).
|
|
38
39
|
4. **Trace when ambiguous:** if the cause is unclear, flaky, causal, or one fix
|
|
@@ -4,7 +4,7 @@ description: Stress-test one consequential decision independently. Use for uncer
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/agents.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"security":["devrites-lib/reference/standards/security.md"],"tooling":["devrites-lib/reference/standards/tooling.md"]},"workspace":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"]}} -->
|
|
7
|
-
> Read-set manifest: `devrites-engine context
|
|
7
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-doubt` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
8
8
|
|
|
9
9
|
# devrites-doubt: CLAIM → EXTRACT → DOUBT → RECONCILE → STOP
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ description: Build accessible production UI and all states during /rite-build. U
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- loads: {"always":["devrites-frontend-craft/reference/craft.md","devrites-frontend-craft/reference/design-references.md","devrites-frontend-craft/reference/quality-standards.md","devrites-frontend-craft/reference/reuse-first.md","devrites-frontend-craft/reference/shape.md","rite-polish/reference/anti-ai-slop.md"],"triggers":{"fullstack":["devrites-frontend-craft/reference/fullstack.md"],"testing":["devrites-lib/reference/standards/testing.md"]}} -->
|
|
7
|
-
> Read-set manifest: `devrites-engine context
|
|
7
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-frontend-craft` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
8
8
|
|
|
9
9
|
# devrites-frontend-craft: UI like a senior designer-engineer
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ description: Interview the user one question at a time to extract intent. Use wh
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","rite-spec/reference/interview-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"]},"workspace":["spec.md","questions.md","decisions.md","assumptions.md","decision-coverage.md","state.md"]} -->
|
|
7
|
-
> Read-set manifest: `devrites-engine context
|
|
7
|
+
> Read-set manifest: `devrites-engine context <slug> --skill devrites-interview` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
8
8
|
|
|
9
9
|
# devrites-interview: extract intent
|
|
10
10
|
|
|
@@ -69,15 +69,15 @@ Wrong-skill fire: stop, admit it, switch rites.
|
|
|
69
69
|
| Spec has unknowns/coverage gaps | `/rite-clarify` | Required topology scan; zero-question pass when clear. |
|
|
70
70
|
| Derive intent from existing code without an active feature contract | `/rite-adopt` | Establish the brownfield contract. |
|
|
71
71
|
| Reconcile implementation with an active feature contract | `/rite-converge` | Identify gaps and add missing slices. |
|
|
72
|
-
| Older workspace cannot resume | `/rite-upgrade` | Audit cited current-contract defects; age alone is no defect. Route semantic repairs to normal owners; preserve history without synthetic proof. |
|
|
72
|
+
| Older workspace cannot resume (explicit only) | `/rite-upgrade` | Audit cited current-contract defects; age alone is no defect. Route semantic repairs to normal owners; preserve history without synthetic proof. |
|
|
73
73
|
| Turn an approved spec into its first plan | `/rite-define` | No `tasks.md` slices yet; writes architecture, slices, traceability. |
|
|
74
74
|
| Reslice, reorder, or repair an existing plan | `/rite-plan` | Slices exist and evidence invalidates them. |
|
|
75
75
|
| Review plan before code | `/rite-vet` | Every plan; depth scales to risk. |
|
|
76
76
|
| Small safe fix | `/rite-quick` | Escalates auth, migration, public API, destructive, ambiguous, or multi-slice work. |
|
|
77
77
|
| Mid-size work, fast lane (explicit only) | `/rite-fast` | Spec + plan + questions once, ≤10 slices, one completeness check, review, polish, proof; risk deepens questions. |
|
|
78
78
|
| Prove UI/runtime | `/rite-prove` + `devrites-browser-proof` | Capture real evidence. |
|
|
79
|
-
| Stuck/unfamiliar | `/rite-zoom-out` | Map before editing. |
|
|
80
|
-
| Teach me | `/rite-explain` | Human learning loop. |
|
|
79
|
+
| Stuck/unfamiliar (explicit only) | `/rite-zoom-out` | Map before editing. |
|
|
80
|
+
| Teach me (explicit only) | `/rite-explain` | Human learning loop. |
|
|
81
81
|
| Decide ship readiness | `/rite-seal` | Decides; never mutates Git. |
|
|
82
82
|
| Execute ship after GO | `/rite-ship` | Requires GO/type-GO. |
|
|
83
83
|
| Unattended lifecycle | `/rite-autocomplete` | Clean baseline/checkpoints; hard gates stop. |
|
|
@@ -4,7 +4,7 @@ Host dispatch; DevRites governs.
|
|
|
4
4
|
|
|
5
5
|
## Roster
|
|
6
6
|
|
|
7
|
-
Review: Spec/Code; Seal: all applicable roles.
|
|
7
|
+
Review: Spec/Code plus triggered frontend/security/performance; Seal: all applicable roles.
|
|
8
8
|
|
|
9
9
|
| Reviewer | Fires | Trigger |
|
|
10
10
|
|---|---|---|
|
|
@@ -38,8 +38,9 @@ If the candidate diff has no matching surfaces, record
|
|
|
38
38
|
hand the bundle path as the packet's source list instead of a file roster.
|
|
39
39
|
Build roles add `--slice <SLICE-ID>` (slice-scoped, slice-named bundle).
|
|
40
40
|
Evaluate the skill's trigger conditions and pass each that fires — a role's
|
|
41
|
-
Trigger column maps to manifest names: `security-auditor` →
|
|
42
|
-
`frontend-reviewer` → `ui
|
|
41
|
+
Trigger column maps to the phase manifest's names: `security-auditor` →
|
|
42
|
+
`security`; at Review, `frontend-reviewer` → `ui` and `performance-reviewer` →
|
|
43
|
+
`performance`. Seal declares neither; those roles load their own standards.
|
|
43
44
|
The `agents` dispatch contract needs no flag: `--role` auto-fires it
|
|
44
45
|
(`auto=[agents]` in the output). The command prints `unselected=[...]`; an
|
|
45
46
|
omitted applicable trigger is a gap, not a shortcut.
|