devrites 5.14.4 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/NOTICE.md +6 -4
- package/README.md +77 -16
- package/SECURITY.md +25 -11
- package/bin/devrites.mjs +49 -15
- package/docs/adr/0001-go-engine-as-control-plane.md +6 -3
- package/docs/adr/0029-v5-workspace-schema-and-native-migration.md +9 -0
- package/docs/adr/README.md +3 -2
- package/docs/agents/issue-tracker.md +1 -1
- package/docs/architecture.md +6 -3
- package/docs/cli.md +32 -9
- package/docs/command-map.md +5 -3
- package/docs/engine/state-schema.md +1 -1
- package/docs/flow.md +1 -1
- package/docs/harness-compliance.md +2 -2
- package/docs/release.md +15 -11
- package/docs/usage.md +1 -1
- package/engine/commands.go +1 -1
- package/engine/go.mod +1 -1
- package/engine/help.go +41 -15
- package/engine/help_test.go +134 -0
- package/engine/internal/acceptance/acceptance_test.go +298 -7
- package/engine/internal/acceptance/approve.go +7 -2
- package/engine/internal/acceptance/cli.go +3 -0
- package/engine/internal/acceptance/evidence.go +69 -5
- package/engine/internal/acceptance/lint.go +1 -1
- package/engine/internal/acceptance/run.go +5 -3
- package/engine/internal/acceptance/scaffold.go +5 -16
- package/engine/internal/devritespaths/paths.go +7 -6
- package/engine/internal/devritespaths/paths_test.go +18 -0
- package/engine/internal/fsutil/copy.go +83 -49
- package/engine/internal/fsutil/copy_test.go +70 -109
- package/engine/internal/gate/gate.go +89 -16
- package/engine/internal/gate/gate_test.go +101 -0
- package/engine/internal/hostpack/hostpack.go +52 -2
- package/engine/internal/hostpack/hostpack_test.go +83 -2
- package/engine/internal/install/apply.go +59 -16
- package/engine/internal/install/binary.go +10 -1
- package/engine/internal/install/install_test.go +428 -0
- package/engine/internal/install/merge.go +69 -38
- package/engine/internal/install/preflight.go +7 -0
- package/engine/internal/install/uninstall.go +43 -4
- package/engine/internal/lib/claims.go +25 -4
- package/engine/internal/lib/claims_test.go +57 -0
- package/engine/internal/lib/closeout.go +41 -3
- package/engine/internal/lib/closeout_test.go +144 -0
- package/engine/internal/lib/context.go +8 -4
- package/engine/internal/lib/context_next_test.go +100 -0
- package/engine/internal/lib/detect.go +1 -1
- package/engine/internal/lib/detect_test.go +13 -0
- package/engine/internal/lib/diffscope.go +19 -9
- package/engine/internal/lib/dispatch.go +7 -0
- package/engine/internal/lib/dup.go +40 -37
- package/engine/internal/lib/dup_test.go +178 -0
- package/engine/internal/lib/manifest_union.go +4 -1
- package/engine/internal/lib/manifest_union_test.go +37 -0
- package/engine/internal/lib/metrics.go +4 -0
- package/engine/internal/lib/metrics_test.go +28 -0
- package/engine/internal/lib/migrate_test.go +59 -0
- package/engine/internal/lib/observe_budgets.go +25 -9
- package/engine/internal/lib/observe_budgets_test.go +254 -0
- package/engine/internal/lib/observe_summary.go +23 -2
- package/engine/internal/lib/open_visual.go +4 -2
- package/engine/internal/lib/open_visual_test.go +11 -0
- package/engine/internal/lib/regression.go +62 -23
- package/engine/internal/lib/regression_test.go +103 -0
- package/engine/internal/lib/resolve.go +36 -17
- package/engine/internal/lib/resolve_remediation_test.go +132 -0
- package/engine/internal/lib/skilltrust.go +0 -11
- package/engine/internal/lib/slicecheck.go +7 -5
- package/engine/internal/lib/slicecheck_test.go +18 -0
- package/engine/internal/lib/triggers.go +9 -3
- package/engine/internal/lib/triggers_test.go +23 -0
- package/engine/internal/lib/util.go +17 -3
- package/engine/internal/lib/util_test.go +104 -0
- package/engine/internal/lib/visual_outline.go +7 -3
- package/engine/internal/lib/visual_outline_test.go +28 -0
- package/engine/internal/lib/windows.go +13 -9
- package/engine/internal/lib/windows_test.go +98 -0
- package/engine/internal/lib/workspace_read.go +2 -11
- package/engine/internal/lib/workspace_read_test.go +102 -0
- package/engine/internal/markdowntext/markdowntext.go +194 -11
- package/engine/internal/markdowntext/testdata/structural.json +250 -0
- package/engine/internal/notes/cli.go +30 -12
- package/engine/internal/notes/notes.go +242 -39
- package/engine/internal/notes/notes_test.go +372 -0
- package/engine/internal/overhaul/admit/packet.go +89 -0
- package/engine/internal/overhaul/admit/packet_test.go +223 -0
- package/engine/internal/overhaul/admit/run.go +4 -0
- package/engine/internal/overhaul/bench/run.go +6 -0
- package/engine/internal/overhaul/bench/run_test.go +46 -0
- package/engine/internal/overhaul/overhaul.go +6 -1
- package/engine/internal/overhaul/ovio/ovio.go +10 -3
- package/engine/internal/overhaul/ovio/ovio_test.go +75 -0
- package/engine/internal/overhaul/packet/packet.go +208 -0
- package/engine/internal/overhaul/packet/packet_test.go +263 -0
- package/engine/internal/overhaul/records/check.go +6 -0
- package/engine/internal/overhaul/records/init.go +16 -5
- package/engine/internal/overhaul/records/records_test.go +4 -0
- package/engine/internal/overhaul/records/run.go +66 -0
- package/engine/internal/overhaul/records/run_test.go +77 -0
- package/engine/internal/overhaul/render/run.go +15 -11
- package/engine/internal/overhaul/render/run_test.go +463 -1
- package/engine/internal/overhaul/render/visual.go +95 -33
- package/engine/internal/overhaul/score/run.go +20 -0
- package/engine/internal/overhaul/score/run_test.go +156 -1
- package/engine/internal/overhaul/snapshot/run.go +78 -21
- package/engine/internal/overhaul/snapshot/run_test.go +344 -8
- package/engine/internal/parallel/cli.go +33 -20
- package/engine/internal/parallel/cli_test.go +59 -0
- package/engine/internal/parallel/git.go +39 -1
- package/engine/internal/parallel/ops.go +101 -11
- package/engine/internal/parallel/ops_test.go +552 -69
- package/engine/internal/parallel/parallel_test.go +31 -1
- package/engine/internal/parallel/pathdisjoint.go +19 -1
- package/engine/internal/parallel/pathdisjoint_test.go +72 -0
- package/engine/internal/parallel/select.go +6 -2
- package/engine/internal/release/release.go +13 -3
- package/engine/internal/release/release_test.go +208 -3
- package/engine/internal/rootfacts/facts.go +9 -0
- package/engine/internal/rootfacts/facts_test.go +38 -0
- package/engine/internal/state/acceptance.go +7 -1
- package/engine/internal/state/budgets.go +11 -10
- package/engine/internal/state/budgets_test.go +93 -0
- package/engine/internal/state/cursor.go +19 -8
- package/engine/internal/state/cursor_test.go +120 -0
- package/engine/internal/state/lock_unix.go +7 -1
- package/engine/internal/state/lock_windows.go +7 -1
- package/engine/internal/state/state_test.go +49 -18
- package/engine/internal/state/taskgraph.go +18 -4
- package/engine/internal/state/taskgraph_test.go +43 -0
- package/engine/internal/state/workspaceschema.go +16 -2
- package/engine/internal/state/workspaceschema_test.go +34 -0
- package/engine/internal/state/write.go +67 -6
- package/engine/internal/state/write_test.go +136 -0
- package/engine/internal/version/version_test.go +2 -0
- package/engine/main.go +8 -1
- package/engine/observation_contract_test.go +1 -1
- package/engine/root_routing_test.go +23 -1
- package/install.sh +132 -12
- package/pack/.claude/agents/devrites-spec-reviewer.md +2 -2
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/.claude/skills/devrites-interview/SKILL.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/.claude/skills/overhaul/SKILL.md +1 -1
- package/pack/.claude/skills/overhaul/references/orchestration.md +5 -3
- package/pack/.claude/skills/overhaul/references/records.md +39 -0
- package/pack/.claude/skills/overhaul/references/scoring.md +14 -4
- package/pack/.claude/skills/rite/reference/menu.md +1 -1
- package/pack/.claude/skills/rite-adopt/SKILL.md +8 -2
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/.claude/skills/rite-build/SKILL.md +2 -1
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/.claude/skills/rite-clarify/SKILL.md +5 -4
- package/pack/.claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/.claude/skills/rite-converge/SKILL.md +2 -0
- package/pack/.claude/skills/rite-customize/SKILL.md +6 -4
- package/pack/.claude/skills/rite-define/SKILL.md +2 -0
- package/pack/.claude/skills/rite-define/reference/gates.md +8 -7
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/.claude/skills/rite-explain/reference/intake.md +1 -1
- package/pack/.claude/skills/rite-fast/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +4 -3
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/.claude/skills/rite-seal/SKILL.md +4 -3
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/.claude/skills/rite-ship/SKILL.md +4 -2
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/.claude/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +2 -2
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/.claude/skills/rite-temper/SKILL.md +12 -9
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/significance.md +10 -3
- package/pack/.claude/skills/rite-temper/reference/strategy-template.md +13 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +4 -3
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/.claude/workflows/devrites-readonly-review.js +5 -4
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +2 -2
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +4 -4
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/generated/claude/skills/overhaul/SKILL.md +1 -1
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +5 -3
- package/pack/generated/claude/skills/overhaul/references/records.md +39 -0
- package/pack/generated/claude/skills/overhaul/references/scoring.md +14 -4
- package/pack/generated/claude/skills/rite/reference/menu.md +1 -1
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +8 -2
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/generated/claude/skills/rite-build/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/generated/claude/skills/rite-converge/SKILL.md +2 -0
- package/pack/generated/claude/skills/rite-customize/SKILL.md +6 -4
- package/pack/generated/claude/skills/rite-define/SKILL.md +2 -0
- package/pack/generated/claude/skills/rite-define/reference/gates.md +8 -7
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/claude/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-seal/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/generated/claude/skills/rite-ship/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/generated/claude/skills/rite-temper/SKILL.md +12 -9
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -3
- package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +13 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/claude/workflows/devrites-readonly-review.js +5 -4
- package/pack/generated/codex/AGENTS.md +1 -1
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +2 -2
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +4 -4
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/generated/codex/skills/overhaul/SKILL.md +1 -1
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +5 -3
- package/pack/generated/codex/skills/overhaul/references/records.md +39 -0
- package/pack/generated/codex/skills/overhaul/references/scoring.md +14 -4
- package/pack/generated/codex/skills/rite/reference/menu.md +1 -1
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +8 -2
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/generated/codex/skills/rite-build/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/generated/codex/skills/rite-converge/SKILL.md +2 -0
- package/pack/generated/codex/skills/rite-customize/SKILL.md +6 -4
- package/pack/generated/codex/skills/rite-define/SKILL.md +2 -0
- package/pack/generated/codex/skills/rite-define/reference/gates.md +8 -7
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/codex/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/generated/codex/skills/rite-ship/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/generated/codex/skills/rite-temper/SKILL.md +12 -9
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -3
- package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +13 -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/devin/AGENTS.md +1 -1
- package/pack/generated/devin/agents/devrites-spec-reviewer.md +2 -2
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +4 -4
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/generated/devin/skills/overhaul/SKILL.md +1 -1
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +5 -3
- package/pack/generated/devin/skills/overhaul/references/records.md +39 -0
- package/pack/generated/devin/skills/overhaul/references/scoring.md +14 -4
- package/pack/generated/devin/skills/rite/reference/menu.md +1 -1
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +8 -2
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/generated/devin/skills/rite-build/SKILL.md +2 -1
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/generated/devin/skills/rite-converge/SKILL.md +2 -0
- package/pack/generated/devin/skills/rite-customize/SKILL.md +6 -4
- package/pack/generated/devin/skills/rite-define/SKILL.md +2 -0
- package/pack/generated/devin/skills/rite-define/reference/gates.md +8 -7
- package/pack/generated/devin/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/devin/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/generated/devin/skills/rite-ship/SKILL.md +4 -2
- package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/generated/devin/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/generated/devin/skills/rite-temper/SKILL.md +12 -9
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +10 -3
- package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +13 -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/omp/agents/devrites-spec-reviewer.md +2 -2
- package/pack/generated/omp/commands/rite-define.md +1 -1
- package/pack/generated/omp/commands/rite-handoff.md +1 -1
- package/pack/generated/omp/commands/rite-plan.md +1 -1
- package/pack/generated/omp/commands/rite-pressure-test.md +1 -1
- package/pack/generated/omp/commands/rite-quick.md +1 -1
- package/pack/generated/omp/commands/rite-status.md +1 -1
- package/pack/generated/omp/commands/rite-temper.md +1 -1
- package/pack/generated/omp/commands/rite-zoom-out.md +1 -1
- package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/generated/omp/skills/devrites-interview/SKILL.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/generated/omp/skills/overhaul/SKILL.md +1 -1
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +5 -3
- package/pack/generated/omp/skills/overhaul/references/records.md +39 -0
- package/pack/generated/omp/skills/overhaul/references/scoring.md +14 -4
- package/pack/generated/omp/skills/rite/reference/menu.md +1 -1
- package/pack/generated/omp/skills/rite-adopt/SKILL.md +8 -2
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/generated/omp/skills/rite-build/SKILL.md +2 -1
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +5 -4
- package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/generated/omp/skills/rite-converge/SKILL.md +2 -0
- package/pack/generated/omp/skills/rite-customize/SKILL.md +6 -4
- package/pack/generated/omp/skills/rite-define/SKILL.md +2 -0
- package/pack/generated/omp/skills/rite-define/reference/gates.md +8 -7
- package/pack/generated/omp/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/omp/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -3
- package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/omp/skills/rite-seal/SKILL.md +4 -3
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/generated/omp/skills/rite-ship/SKILL.md +4 -2
- package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/generated/omp/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/generated/omp/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/generated/omp/skills/rite-temper/SKILL.md +12 -9
- package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/omp/skills/rite-temper/reference/significance.md +10 -3
- package/pack/generated/omp/skills/rite-temper/reference/strategy-template.md +13 -2
- package/pack/generated/omp/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/pi/AGENTS.md +1 -1
- package/pack/generated/pi/agents/devrites-spec-reviewer.md +2 -2
- package/pack/generated/pi/prompts/rite-define.md +1 -1
- package/pack/generated/pi/prompts/rite-handoff.md +1 -1
- package/pack/generated/pi/prompts/rite-plan.md +1 -1
- package/pack/generated/pi/prompts/rite-pressure-test.md +1 -1
- package/pack/generated/pi/prompts/rite-quick.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-zoom-out.md +1 -1
- package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +2 -2
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +18 -18
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
- package/pack/generated/pi/skills/devrites-interview/SKILL.md +4 -4
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +5 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +6 -5
- package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +3 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
- package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +11 -12
- package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
- package/pack/generated/pi/skills/overhaul/SKILL.md +1 -1
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +5 -3
- package/pack/generated/pi/skills/overhaul/references/records.md +39 -0
- package/pack/generated/pi/skills/overhaul/references/scoring.md +14 -4
- package/pack/generated/pi/skills/rite/reference/menu.md +1 -1
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +8 -2
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +11 -6
- package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +3 -2
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +1 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
- package/pack/generated/pi/skills/rite-build/SKILL.md +2 -1
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +5 -0
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +2 -2
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +6 -3
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +2 -2
- package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +3 -2
- package/pack/generated/pi/skills/rite-converge/SKILL.md +2 -0
- package/pack/generated/pi/skills/rite-customize/SKILL.md +6 -4
- package/pack/generated/pi/skills/rite-define/SKILL.md +2 -0
- package/pack/generated/pi/skills/rite-define/reference/gates.md +8 -7
- package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/pi/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +4 -4
- package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +1 -1
- package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +5 -5
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +3 -2
- package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +2 -0
- package/pack/generated/pi/skills/rite-ship/SKILL.md +4 -2
- package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +8 -2
- package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +2 -1
- package/pack/generated/pi/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +1 -1
- package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +7 -3
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -0
- package/pack/generated/pi/skills/rite-temper/SKILL.md +12 -9
- package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/pi/skills/rite-temper/reference/significance.md +10 -3
- package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +13 -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/package.json +5 -4
- package/scripts/build-host-artifacts.sh +15 -0
- package/scripts/codex-generate.sh +1 -1
- package/scripts/devin-generate.sh +1 -1
- package/scripts/expand-includes.py +46 -0
- package/scripts/install-lib.sh +42 -7
- package/scripts/omp-generate.sh +11 -0
- package/scripts/pi-generate.sh +12 -1
- package/update.sh +1 -2
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/README.md +0 -7
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decisions.md +0 -4
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/gates.md +0 -4
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/plan.md +0 -5
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/spec.md +0 -6
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +0 -8
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/tasks.md +0 -1
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/README.md +0 -7
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +0 -3
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/spec.md +0 -6
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +0 -3
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +0 -2
- package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +0 -2
- package/engine/testdata/golden/TestParityCloseOut/archive_clobber.golden +0 -1
- package/engine/testdata/golden/TestParityCloseOut/missing_slug.golden +0 -1
- package/engine/testdata/golden/TestParityCloseOut/missing_workspace.golden +0 -1
- package/engine/testdata/golden/TestParityLearnings/add.golden +0 -2
- package/engine/testdata/golden/TestParityLearnings/list.golden +0 -5
- package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +0 -2
- package/engine/testdata/golden/TestParityLearnings/mine.golden +0 -5
- package/engine/testdata/golden/TestParityLearnings/nudge.golden +0 -2
- package/engine/testdata/golden/TestParityLearnings/unknown.golden +0 -1
- package/engine/testdata/golden/TestParityPackageExistence/ghost-workspace.golden +0 -1
- package/engine/testdata/golden/TestParityPackageExistence/no-manifest.golden +0 -1
- package/engine/testdata/golden/TestParityPackageExistence/not-git.golden +0 -1
- package/engine/testdata/golden/TestParityPackageExistence/undeclared.golden +0 -1
- package/engine/testdata/golden/TestParityPreamble/afk/a.golden +0 -14
- package/engine/testdata/golden/TestParityPreamble/hitl/active.golden +0 -18
- package/engine/testdata/golden/TestParityPreamble/hitl/bare.golden +0 -10
- package/engine/testdata/golden/TestParityPreamble/hitl/full.golden +0 -18
- package/engine/testdata/golden/TestParityPreamble/hitl/ghost.golden +0 -2
- package/engine/testdata/golden/TestParityPreamble/hitl/nonl.golden +0 -11
- package/engine/testdata/golden/TestParityPreamble/hitl/openend.golden +0 -13
- package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +0 -4
- package/engine/testdata/golden/TestParityProgress/arg=done.golden +0 -3
- package/engine/testdata/golden/TestParityProgress/arg=ghost.golden +0 -1
- package/engine/testdata/golden/TestParityProgress/arg=mid.golden +0 -4
- package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +0 -3
- package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +0 -3
- package/engine/testdata/golden/TestParityProgress/arg=plan.golden +0 -4
- package/engine/testdata/golden/TestParityProgress/arg=seal.golden +0 -3
- package/engine/testdata/golden/TestParityResolve/answer/questions.md.golden +0 -9
- package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +0 -7
- package/engine/testdata/golden/TestParityResolve/answer.golden +0 -4
- package/engine/testdata/golden/TestParityResolve/batch/questions.md.golden +0 -9
- package/engine/testdata/golden/TestParityResolve/batch-unterminated/questions.md.golden +0 -9
- package/engine/testdata/golden/TestParityResolve/batch-unterminated.golden +0 -2
- package/engine/testdata/golden/TestParityResolve/batch.golden +0 -3
- package/engine/testdata/golden/TestParityResolve/drop/questions.md.golden +0 -9
- package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +0 -9
- package/engine/testdata/golden/TestParityResolve/drop.golden +0 -4
- package/engine/testdata/golden/TestParityResolve/missing-answer.golden +0 -1
- package/engine/testdata/golden/TestParityResolve/no-workspace.golden +0 -1
- package/engine/testdata/golden/TestParityResolve/not-found.golden +0 -1
- package/engine/testdata/golden/TestParityResolve/not-open.golden +0 -1
- package/engine/testdata/golden/TestStatusLiveWorkspace.golden +0 -10
- package/engine/testdata/golden/status/auth-tokens.txt +0 -9
- package/engine/testdata/golden/status/search-ranking.txt +0 -9
- package/engine/testdata/visual/open-visual-smoke.html +0 -675
- package/engine/testdata/visual/open-visual-smoke.outline.md +0 -54
- package/engine/tests/adr_0003_gate_exit_code_test.go +0 -32
- package/engine/tests/adr_0004_required_by_phase_test.go +0 -54
- package/engine/tests/adr_0011_define_plan_test.go +0 -32
- package/engine/tests/adr_0027_readiness_binding_test.go +0 -107
- package/engine/tests/cli_test.go +0 -126
- package/engine/tests/gate_test.go +0 -669
- package/engine/tests/meta_test.go +0 -37
- package/engine/tests/parity_closeout_test.go +0 -105
- package/engine/tests/parity_githelpers_test.go +0 -41
- package/engine/tests/parity_resolve_test.go +0 -136
- package/engine/tests/parity_test.go +0 -86
- package/engine/tests/workspace_observation_migration_test.go +0 -1069
|
@@ -10,7 +10,7 @@ source for classification; the SKILL improvises none of it.
|
|
|
10
10
|
| --- | --- | --- | --- | --- |
|
|
11
11
|
| **concept** | a named idea / pattern / technology ("explain optimistic locking", "how does our gate engine work") | this repo's footprint of the concept (codegraph first) + external sources only if they sharpen it | build the mental model from a known part of *this* codebase outward | **checked exercise** |
|
|
12
12
|
| **diff** | a specific change: a ref, a slice, a PR, "this diff" | `git diff` / the hunks + `decisions.md` + `seal.md` for the *why* + `touched-files.md` `Review trail` when present | explainer, or **walkthrough** when the user asks to review/approve/checkpoint the change | **predict-then-reveal** |
|
|
13
|
-
| **idea** | a hypothesis or "what if" with no code yet | the user's framing + prior art (external, date-weighted
|
|
13
|
+
| **idea** | a hypothesis or "what if" with no code yet | the user's framing + prior art (external, date-weighted) | steelman the idea, name its hinge and its failure mode | **checked exercise** |
|
|
14
14
|
| **recap** | a time window of the user's own work ("what did I ship this week") | the shipped archive + `git log`/`git diff` over the window + `evidence.md` | narrate what changed and what was learned, ranked by leverage | **predict-then-reveal** |
|
|
15
15
|
|
|
16
16
|
## Token overrides: explicit beats inferred
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-fast
|
|
3
|
-
description: Fast lane for mid-size work: one spec-and-plan step with clarifying questions, up to ten slices built without per-slice gates, one completeness check with gap fixes, review, polish, proof.
|
|
3
|
+
description: "Fast lane for mid-size work: one spec-and-plan step with clarifying questions, up to ten slices built without per-slice gates, one completeness check with gap fixes, review, polish, proof."
|
|
4
4
|
argument-hint: "<task | slug>"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -73,8 +73,9 @@ Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standard
|
|
|
73
73
|
- **course-correct:** mid-build user pivot; apply the marked action, choose
|
|
74
74
|
rollback/forward-fix, and update permitted artifacts atomically (`MVP cut` is the named retreat).
|
|
75
75
|
- **revise:** reconcile a requested artifact revision; propose/confirm its file set and
|
|
76
|
-
**never edit source**.
|
|
77
|
-
rule, evidence, gate, paths, and delta
|
|
76
|
+
**never edit source**. A neutral workspace edit is authorized by explicit `/rite-upgrade` with a
|
|
77
|
+
`repairable` assessment naming rule, evidence, gate, paths, and delta, or, for budget relocation
|
|
78
|
+
only, by the phase owner when `orient` reports `over: true`—never source or history rewording.
|
|
78
79
|
**Revise or new?** Same intent? >50% scope survives? Original not completable without it?
|
|
79
80
|
Two “no” answers mean new work: seal/ship current scope (`MVP cut` if named), then
|
|
80
81
|
`/rite-spec`, and stop.
|
|
@@ -160,7 +161,7 @@ Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standard
|
|
|
160
161
|
mark the `drift.md` entry resolved. Never remove or overwrite a valid caller
|
|
161
162
|
return cursor while writing the Plan checkpoint.
|
|
162
163
|
6. After editing `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or `questions.md`,
|
|
163
|
-
re-scan affected coverage, assumptions, uncertainty, and gates.
|
|
164
|
+
re-scan affected coverage, assumptions, uncertainty, and gates. `open` rows, unowned
|
|
164
165
|
material assumption, or open blocking/escalating question routes `/rite-clarify`/HITL.
|
|
165
166
|
Restore `CLEAR` only from current evidence.
|
|
166
167
|
7. **Done when:** every slice is sized (builds + proves in one cycle; no slice scoring >3
|
|
@@ -84,15 +84,15 @@ Record the sequence once in `decisions.md`.
|
|
|
84
84
|
## revise
|
|
85
85
|
|
|
86
86
|
Artifact-only reconciliation of `spec.md`, `architecture.md`, `plan.md`, `tasks.md`,
|
|
87
|
-
or `traceability.md` — never source. Propose/confirm the file set first.
|
|
88
|
-
`/rite-upgrade` with a `repairable` assessment
|
|
87
|
+
or `traceability.md` — never source. Propose/confirm the file set first. A neutral workspace
|
|
88
|
+
edit is authorized by explicit `/rite-upgrade` with a `repairable` assessment, or, for budget
|
|
89
|
+
relocation only, by the phase owner when `orient` reports `over: true`.
|
|
89
90
|
|
|
90
91
|
Unchanged acceptance/behavior with non-equivalent `proposed_coverage` is a
|
|
91
92
|
contradictory input: the canonical classifier blocks it — there is no fourth
|
|
92
93
|
route (see [`acceptance-preserving-reslice.md`](../../devrites-lib/reference/standards/acceptance-preserving-reslice.md)).
|
|
93
94
|
|
|
94
|
-
**Budget relocation** (
|
|
95
|
-
`orient` reports `over: true`): move checkpoint narrative, historical fold text and
|
|
95
|
+
**Budget relocation** (authorized as above): move checkpoint narrative, historical fold text and
|
|
96
96
|
closed-round accounts verbatim from `state.md`/`tasks.md`/`plan.md`/`architecture.md`/
|
|
97
97
|
`eng-review.md` into `history/<file>-<YYYYMMDD>.md`, packets/accounts from the root
|
|
98
98
|
into `packets/`, leaving a one-line pointer. Cursor, live slices, open findings, IDs,
|
|
@@ -18,7 +18,7 @@ Build avoids every UI entry; review and polish admit a hit only by this rule. Cl
|
|
|
18
18
|
a declared token, brief line or nearest neighbour (cite both locations), or it has a
|
|
19
19
|
measured user consequence (contrast ratio, overflow, CLS, lost or hidden focus). Otherwise
|
|
20
20
|
it is an AES proposal under "Proposals (non-blocking)": never a Visual Verdict FAIL, never
|
|
21
|
-
scored, capped at Suggestion
|
|
21
|
+
scored, capped at Suggestion, never blocking unless `design-brief.md` adopts it (then
|
|
22
22
|
DS). Act on clusters per [`prose-style.md`](../../devrites-lib/reference/standards/prose-style.md).
|
|
23
23
|
A broken task, data loss or misleading state is reported and fixed before any AES item.
|
|
24
24
|
**Failing case:** `tokens.css` declares Inter and a 20 px card radius, yet review files
|
|
@@ -12,11 +12,9 @@ What `browser-evidence.md` must capture for a UI slice. Delegates to
|
|
|
12
12
|
| EVID-003 | <route> | empty/keyboard | 375 | brief Proof targets + target reference 1 | playwright-mcp | <observed result> | AC-002, SLICE-002 | <none / exact gap> |
|
|
13
13
|
|
|
14
14
|
## Visual Verdict
|
|
15
|
-
|
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
| loading | PASS / FAIL | <what is visible> |
|
|
19
|
-
| error | PASS / FAIL | <what is visible> |
|
|
15
|
+
| Criterion (source, class) | Expected | Observed (screenshot) | Verdict | Severity |
|
|
16
|
+
|---|---|---|---|---|
|
|
17
|
+
| <state / delta / anti-slop criterion> (<brief / reference / anti-slop / acceptance>, <ENG / A11Y / DS / AES>) | <expected> | <what is visible> | PASS / PARTIAL / FAIL / n/a | <Critical / Important / Suggestion> |
|
|
20
18
|
|
|
21
19
|
## Comparison deltas
|
|
22
20
|
| State / viewport | Target | Material delta observed | Disposition | Result |
|
|
@@ -33,6 +31,8 @@ What `browser-evidence.md` must capture for a UI slice. Delegates to
|
|
|
33
31
|
```
|
|
34
32
|
|
|
35
33
|
## Rules
|
|
34
|
+
- The `## Visual Verdict` table follows [visual-verdict.md](../../devrites-browser-proof/reference/visual-verdict.md),
|
|
35
|
+
which owns its rows, verdict values and severity mapping.
|
|
36
36
|
- Open every screenshot path and describe it: never assert from the filename.
|
|
37
37
|
- Read `design-brief.md` + `references.md` first. Compare fidelity only with references
|
|
38
38
|
classified **target**; check constraints as rules and never pixel-match inspiration.
|
|
@@ -74,8 +74,8 @@ Pull these via `Read` when shaping the resolve:
|
|
|
74
74
|
user's explicit consent for this local workspace mutation. Echo the qid, answer/drop,
|
|
75
75
|
and slice being unblocked, then continue immediately; do not ask the user to confirm the
|
|
76
76
|
command they just typed.
|
|
77
|
-
4. **Mutate.** Run `devrites-engine state resolve` with those arguments. It:
|
|
78
|
-
- flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer`;
|
|
77
|
+
4. **Mutate.** Run `devrites-engine state resolve --human` with those arguments (a human is resolving). It:
|
|
78
|
+
- flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer` + `answered_by: human`;
|
|
79
79
|
- if the qid is in `state.md`'s `Awaiting human` block (single-question pause), clears
|
|
80
80
|
that block and sets `Status: running`;
|
|
81
81
|
- appends a `Log` line to `state.md`.
|
|
@@ -96,7 +96,7 @@ Pull these via `Read` when shaping the resolve:
|
|
|
96
96
|
**Completion:** the resolved state contains exactly one next command.
|
|
97
97
|
6. **STOP.** User-invoked `/rite-resolve` does not run `/rite-build` itself: the
|
|
98
98
|
user re-enters the workflow explicitly. A controlling `/rite-autocomplete`
|
|
99
|
-
caller invokes the same `devrites-engine state resolve` writer internally and
|
|
99
|
+
caller invokes the same `devrites-engine state resolve` writer internally (never with `--human`) and
|
|
100
100
|
continues; it must not emit this skill as a user handoff for a question that
|
|
101
101
|
already names a ranked recommended option.
|
|
102
102
|
|
|
@@ -65,7 +65,7 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
|
65
65
|
`../devrites-lib/reference/parallel-dispatch.md` on the same frozen candidate,
|
|
66
66
|
code review through its § Engineering lanes;
|
|
67
67
|
4. reconcile their read-only verdicts against source and immutable evidence;
|
|
68
|
-
5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven accounts
|
|
68
|
+
5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven roster accounts plus proof-runner and doubt-reviewer
|
|
69
69
|
(each engineering lane its own account);
|
|
70
70
|
6. write exactly one candidate binding, then run
|
|
71
71
|
`devrites-engine check seal <slug>` for structure and identity, never semantics,
|
|
@@ -74,8 +74,9 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
|
74
74
|
starts at the named changed, missing, or added input,
|
|
75
75
|
and `devrites-engine check regression <slug>` to confirm no recorded progress
|
|
76
76
|
fact was lost since the last checkpoint — `BLOCKED` is NO-GO; `unproven`
|
|
77
|
-
(no baseline) does not block — plus `devrites-engine check windows <slug
|
|
78
|
-
|
|
77
|
+
(no baseline) does not block — plus two separate runs of `devrites-engine check windows <slug>`,
|
|
78
|
+
one with `--base <release-base>` and one with `--worktree` (the only mode that scans
|
|
79
|
+
untracked files; never pass both flags in one command, the last one wins) so each deferral marker the feature diff introduced
|
|
79
80
|
carries a `windows.md` waiver row ([`windows.md`](../devrites-lib/reference/standards/windows.md));
|
|
80
81
|
unwaived hits are NO-GO. The engine already refuses a `gates.md` ledger
|
|
81
82
|
that is malformed, unmet,
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
and the [`review roster`](../../devrites-lib/reference/parallel-dispatch.md) on
|
|
29
29
|
the candidate. Admit each result through
|
|
30
30
|
[`result admission`](../../devrites-lib/reference/standards/agents.md#result-admission).
|
|
31
|
-
`## Reviewer Accounts` preserves
|
|
31
|
+
`## Reviewer Accounts` preserves the seven roster roles, each engineering lane as its own account, plus
|
|
32
|
+
`devrites-proof-runner` and, when any decision stood, `devrites-doubt-reviewer`; gap/missing/malformed blocks;
|
|
32
33
|
conditional `Not-applicable` names why.
|
|
33
34
|
7. **Route corrections.** Reconcile cited findings/disagreements, but do not
|
|
34
35
|
edit the candidate or manifest in Seal. Route an accepted correction through
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
Review under evidence validity, then restart Seal on the new digest.
|
|
37
38
|
8. **Draft/check.** Write `seal.md` from
|
|
38
39
|
[`seal-template.md`](seal-template.md) with the GO/NO-GO rationale, acceptance map,
|
|
39
|
-
test-analysis account, stood-decision verdicts, all seven reviewer accounts,
|
|
40
|
+
test-analysis account, stood-decision verdicts, all seven roster reviewer accounts plus proof-runner and doubt-reviewer,
|
|
40
41
|
and exactly one `Candidate SHA-256: <64 lowercase hex>` line. Then run:
|
|
41
42
|
```bash
|
|
42
43
|
devrites-engine check seal "<slug>"
|
|
@@ -16,6 +16,8 @@ Candidate SHA-256: <64 lowercase hex>
|
|
|
16
16
|
- devrites-security-auditor: <outcome>
|
|
17
17
|
- devrites-performance-reviewer: <outcome>
|
|
18
18
|
- devrites-devex-reviewer: <outcome>
|
|
19
|
+
- devrites-proof-runner: <outcome>
|
|
20
|
+
- devrites-doubt-reviewer: <outcome, or Not-applicable: no decision stood>
|
|
19
21
|
## Risks / Rollback
|
|
20
22
|
<risks/recovery>
|
|
21
23
|
## Stood Decisions
|
|
@@ -72,8 +72,10 @@ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `se
|
|
|
72
72
|
stops. Any command/scope/branch/message/tag/PR change or retry needs a fresh prompt;
|
|
73
73
|
native approval is still required.
|
|
74
74
|
4. On GO, commit; verify committed state/path set and exact candidate digest; then push →
|
|
75
|
-
tag/PR as applicable via `git-ship.md`.
|
|
76
|
-
|
|
75
|
+
tag/PR as applicable via `git-ship.md`. Record SHA and push state in `ship.md` before
|
|
76
|
+
push (git-ship 7a); a push/tag/PR failure stops, and a rerun resumes at push under
|
|
77
|
+
fresh type-GO. Capture branch, tag/PR URL. Mismatch stops before push/tag; retry
|
|
78
|
+
needs fresh approval.
|
|
77
79
|
4a. **PR only:** render [`git-ship.md`](reference/git-ship.md#pull-request-body)'s
|
|
78
80
|
structured body; omit empty sections.
|
|
79
81
|
5. Re-scan the four residual sources; any new/missing/changed item blocks archive.
|
|
@@ -52,7 +52,8 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
52
52
|
sequence whose workspace is sealed in this run
|
|
53
53
|
([afk-hitl.md § Sequence continuation](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces));
|
|
54
54
|
disclose the exact slug set. A different slug, missing colon, broad `WIP(` match,
|
|
55
|
-
ordinary commit, or mixed history blocks; never reinterpret the range.
|
|
55
|
+
ordinary commit, or mixed history blocks; never reinterpret the range. The recorded
|
|
56
|
+
ship commit of a resumed ship (step 7a) is not an ordinary commit for that rerun.
|
|
56
57
|
2. **Verify the candidate.** Rerun `devrites-engine check candidate <slug>` and
|
|
57
58
|
`devrites-engine check seal <slug>`, compare every binding, require the
|
|
58
59
|
candidate worktree paths to be unchanged, and inspect the existing staged
|
|
@@ -98,6 +99,11 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
98
99
|
paths still match `HEAD`, then rerun `devrites-engine check candidate <slug>`
|
|
99
100
|
and `devrites-engine check seal <slug>` and compare the exact digest again.
|
|
100
101
|
Any mismatch stops; do not reinterpret it.
|
|
102
|
+
7a. **Record before push.** Write `ship.md` `Commit(s)` and `Push: pending`. A failed
|
|
103
|
+
push/tag/PR records `failed`, an unanswered or timed-out one `unknown`; stop. Check
|
|
104
|
+
the remote ref (`git ls-remote`) before any retry. A rerun whose HEAD equals the
|
|
105
|
+
recorded commit and whose candidate digest is unchanged skips steps 1-7 and
|
|
106
|
+
prompts a fresh type-GO for only the remaining push/tag/PR commands.
|
|
101
107
|
8. **Push** to the project-conventional target branch.
|
|
102
108
|
9. **Tag / PR** only when project convention requires it; otherwise skip.
|
|
103
109
|
10. **Close sealed predecessors** only when the prompt disclosed them: run the
|
|
@@ -105,7 +111,7 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
105
111
|
because `ACTIVE` names the release workspace; a nonzero exit stops the rest and
|
|
106
112
|
is reported, never retried against an unverified destination.
|
|
107
113
|
|
|
108
|
-
|
|
114
|
+
Update `Push:` to `pushed` and record branch and tag/PR URL in `ship.md`.
|
|
109
115
|
|
|
110
116
|
## Pull request body
|
|
111
117
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `ship.md` template
|
|
2
2
|
|
|
3
|
-
Write before close-out; it moves to `.devrites/archive/<slug>/ship.md`.
|
|
3
|
+
Write Commit(s)/Push at git-ship step 7a; complete before close-out; it moves to `.devrites/archive/<slug>/ship.md`.
|
|
4
4
|
|
|
5
5
|
```markdown
|
|
6
6
|
# Ship: <slug>
|
|
@@ -10,6 +10,7 @@ Write before close-out; it moves to `.devrites/archive/<slug>/ship.md`.
|
|
|
10
10
|
- Branch: <branch>
|
|
11
11
|
- Commit(s): <sha> [<sha> …]
|
|
12
12
|
- Tag/PR: <value|none>
|
|
13
|
+
- Push: <pushed|pending|failed|unknown>
|
|
13
14
|
|
|
14
15
|
## What shipped
|
|
15
16
|
<project-vocabulary paragraph>
|
|
@@ -143,8 +143,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
143
143
|
complete-block preservation rule.
|
|
144
144
|
`tasks.md` deliberately does not exist yet; cross-artifact traceability starts in
|
|
145
145
|
`/rite-define`. Any grammar or delta failure blocks. The interruption forecast must be resolved, owned, or a justified
|
|
146
|
-
action-time gate. Run the [`spec-grammar.md`](../devrites-lib/reference/standards/spec-grammar.md) marker sweep; a kept hit blocks. Then
|
|
147
|
-
`
|
|
146
|
+
action-time gate. Run the [`spec-grammar.md`](../devrites-lib/reference/standards/spec-grammar.md) marker sweep; a kept hit blocks. Then record
|
|
147
|
+
`passed <iso>; marker sweep: …` in the `state.md` `spec_gate` row, never in `spec.md`.
|
|
148
148
|
6a. **Existing-spec delta.** For a pre-existing slug/workspace, compare old/new
|
|
149
149
|
spec and questions, then show `Acceptance delta` (added/removed/reworded IDs)
|
|
150
150
|
and `Open-question delta` (opened/resolved/reworded IDs), using `none` for
|
|
@@ -77,7 +77,7 @@ Each question checks one requirement-prose failure mode:
|
|
|
77
77
|
The spec **Readiness gate** at the bottom of
|
|
78
78
|
[`spec-template.md`](spec-template.md) requires every
|
|
79
79
|
emitted `checklists/<domain>.md` to reach `Verdict: pass` (zero CRITICAL fails) before the gate
|
|
80
|
-
passes. Minor fails are logged, not blocking. A single open CRITICAL
|
|
80
|
+
passes. Minor fails are logged, not blocking. A single open CRITICAL blocks `spec_gate: passed`.
|
|
81
81
|
`/rite-define` reads the checklists at step 0 and **hard-blocks while any CRITICAL is
|
|
82
82
|
unchecked**. A spec without checklists is not yet checked, so define stops and routes
|
|
83
83
|
back here.
|
|
@@ -6,12 +6,13 @@ topology in `architecture.md`/`flows.md`, coverage in `traceability.md`.
|
|
|
6
6
|
Use `[NEEDS CLARIFICATION: <question>]` (blocking stops `/rite-clarify`); before readiness
|
|
7
7
|
every surviving marker converts to a gated `q-YYYY-MM-DD-NNN` open question (released `Q-###` kept) ([`spec-grammar.md`](../../devrites-lib/reference/standards/spec-grammar.md) §
|
|
8
8
|
Unresolved-question markers — fail closed). Stable `REQ-001`/`AC-001` IDs; link, never
|
|
9
|
-
duplicate, source artifacts; over-budget requires `Budget override: <reason>`.
|
|
9
|
+
duplicate, source artifacts; over-budget requires `Budget override: <reason>`. `spec.md`
|
|
10
|
+
is the product contract only: the phase verdict goes in the `state.md` `spec_gate` row,
|
|
11
|
+
never in this file (every reviewer read-set includes `spec.md`).
|
|
10
12
|
|
|
11
13
|
```markdown
|
|
12
14
|
# Spec: <Feature>
|
|
13
15
|
Slug: <kebab-case>
|
|
14
|
-
Status: Draft | Ready
|
|
15
16
|
Created: <date>
|
|
16
17
|
|
|
17
18
|
## Problem
|
|
@@ -136,8 +137,11 @@ status routes Define/Vet/Build/Prove to the named standard without copying it he
|
|
|
136
137
|
| Question ID | Gate | Question | Impact |
|
|
137
138
|
| --- | --- | --- | --- |
|
|
138
139
|
| q-YYYY-MM-DD-NNN | blocking | <question text, no marker> | AC-001 |
|
|
140
|
+
```
|
|
139
141
|
|
|
140
142
|
## Readiness gate
|
|
143
|
+
Run before stamping `spec_gate`; it is an authoring check, never written into `spec.md`.
|
|
144
|
+
|
|
141
145
|
- [ ] No blocking clarification or open `blocking`/`escalating` question; REQ/AC IDs are valid and ACs independently provable.
|
|
142
146
|
- [ ] `marker sweep:` recorded with zero kept hits (spec-grammar § Unresolved-question markers).
|
|
143
147
|
- [ ] Every verbatim ask in `brief.md` `## Asks` maps to REQ/AC, a reasoned Non-goal, or a blocking question.
|
|
@@ -151,6 +155,6 @@ status routes Define/Vet/Build/Prove to the named standard without copying it he
|
|
|
151
155
|
- [ ] Every applicability row is `applies` with affected IDs or has a specific
|
|
152
156
|
evidence-backed `not applicable` reason.
|
|
153
157
|
- [ ] AI has `ai-spec.md` and UI has `design-brief.md`; out-of-scope work states not applicable.
|
|
158
|
+
- [ ] Every emitted `checklists/<domain>.md` has `Verdict: pass` (zero CRITICAL fails); minor fails are logged.
|
|
154
159
|
- [ ] Non-goals/scope are explicit; capability impact is singular/specific and matches ledger deltas.
|
|
155
160
|
- [ ] Architecture/flows/decisions are linked, not duplicated; Coverage seed names Clarify surfaces.
|
|
156
|
-
```
|
|
@@ -130,6 +130,7 @@ None.
|
|
|
130
130
|
| active_slice | none |
|
|
131
131
|
| slice_mode | none |
|
|
132
132
|
| risk | none |
|
|
133
|
+
| spec_gate | <passed <iso>; marker sweep: <n> files, <k> hits, <d> discarded — absent until /rite-spec passes> |
|
|
133
134
|
| next_action | <single command + reason, or terminal: none — technical recovery exhausted for an unchanged causal fingerprint> |
|
|
134
135
|
| return_phase | <originating later phase; clarification or agent-owned technical backtracking only> |
|
|
135
136
|
| return_next_action | <saved originating command> |
|
|
@@ -195,6 +196,7 @@ proposed: <best current answer>
|
|
|
195
196
|
raised_at: <iso>
|
|
196
197
|
answered_at:
|
|
197
198
|
answer:
|
|
199
|
+
answered_by: # human, only when resolved with `state resolve --human`
|
|
198
200
|
impact: <affected AC/REQ/slice IDs>
|
|
199
201
|
```
|
|
200
202
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-temper
|
|
3
3
|
description: Temper a readied spec before planning. Use when the user says "temper this", "strategy review", "pre-mortem the spec", or asks if we are over/under-building. Not for code review or final seal.
|
|
4
|
-
argument-hint: "[feature-slug] [--mode expand|selective|hold|reduce]"
|
|
4
|
+
argument-hint: "[feature-slug] [--mode expand|selective|hold-rigor|reduce-to-MVP]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -31,8 +31,9 @@ the spec applicability map triggers that risk family.
|
|
|
31
31
|
- **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
|
|
32
32
|
underlying problem without adding speculative capability or abstraction.
|
|
33
33
|
- **Route every scope change through the Spec Drift Guard.** A scope change takes effect
|
|
34
|
-
only when `spec.md` records the confirmed decision.
|
|
35
|
-
|
|
34
|
+
only when `spec.md` records the confirmed decision. Growth (`expand`, extra
|
|
35
|
+
acceptance) needs a resolved human `questions.md` qid, so an unattended run holds it
|
|
36
|
+
open. Irreversible-risk still pauses.
|
|
36
37
|
- **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
|
|
37
38
|
data-model changes always pause under the irreversible-risk list.
|
|
38
39
|
- **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
|
|
@@ -50,7 +51,7 @@ the spec applicability map triggers that risk family.
|
|
|
50
51
|
0. **Read `.pi/skills/devrites-lib/reference/standards/core.md`**, then
|
|
51
52
|
resolve the active slug, require its `state.md`, and read the cursor directly.
|
|
52
53
|
Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
|
|
53
|
-
`assumptions.md`, `design-brief.md` if UI), `state.md`. Require `Spec gate:
|
|
54
|
+
`assumptions.md`, `design-brief.md` if UI), `state.md`. Require `state.md` `spec_gate: passed` (legacy `Spec gate:` accepted): else
|
|
54
55
|
STOP → `/rite-spec`. Require `Decision coverage: CLEAR`: else STOP →
|
|
55
56
|
`/rite-clarify`. If a plan already exists, scope changes route through `/rite-plan
|
|
56
57
|
repair` (record in `drift.md`), not a blind spec edit.
|
|
@@ -91,10 +92,12 @@ the spec applicability map triggers that risk family.
|
|
|
91
92
|
5. **Review human-owned findings with the human; do not batch them.** `strategy.md`
|
|
92
93
|
records the interactive review but does not replace it. Present each material scope decision through
|
|
93
94
|
`AskUserQuestion`, one at a time, best-guess + **why**. Each material scope call ends as a
|
|
94
|
-
**recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK
|
|
95
|
+
**recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK;
|
|
96
|
+
never for `expand` or extra acceptance, which need a human-resolved qid):
|
|
95
97
|
so the review leaves an auditable record outside chat. (AFK gate policy —
|
|
96
98
|
[`reference/significance.md`](reference/significance.md) — autocomplete applies
|
|
97
|
-
|
|
99
|
+
`hold-rigor`, `reduce-to-MVP` and a skip, but holds `expand` and extra acceptance for a human
|
|
100
|
+
qid; irreversible-risk always pauses.)
|
|
98
101
|
Apply objective clarity, mitigation, and assumption fixes directly.
|
|
99
102
|
6. **Write `strategy.md` + fold back:** [`reference/strategy-template.md`](reference/strategy-template.md).
|
|
100
103
|
**Choose the drift path based on whether a plan exists:** *no `plan.md` yet* (the normal pre-define
|
|
@@ -110,12 +113,12 @@ the spec applicability map triggers that risk family.
|
|
|
110
113
|
any folded scope delta lacks its decision or leaves a foreseeable human build choice).
|
|
111
114
|
After any edit to `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or
|
|
112
115
|
`questions.md`, re-scan the affected coverage rows, assumption audit, residual uncertainty,
|
|
113
|
-
and closed gates.
|
|
116
|
+
and closed gates. `open` rows, an unowned material assumption, or an open
|
|
114
117
|
blocking/escalating question routes `/rite-clarify`/HITL. Only after the
|
|
115
118
|
matrix is re-closed may the phase advance.
|
|
116
119
|
Set `Phase: temper`; `Next step: /rite-define` only after verification.
|
|
117
|
-
Unapproved irreversible choices set `Awaiting human`.
|
|
118
|
-
|
|
120
|
+
Unapproved irreversible choices and unresolved growth qids set `Awaiting human`.
|
|
121
|
+
Objective below-bar findings continue correction.
|
|
119
122
|
7. **Adversarial verification loop:** ask the exact
|
|
120
123
|
[`devrites-strategy-reviewer`](.pi/agents/devrites-strategy-reviewer.md)
|
|
121
124
|
through the native fresh-context contract in
|
|
@@ -35,7 +35,7 @@ Mode selection is the first convergence move. Record the chosen mode + rationale
|
|
|
35
35
|
|
|
36
36
|
| Mode | When | What it does | YAGNI / Drift Guard |
|
|
37
37
|
|---|---|---|---|
|
|
38
|
-
| **EXPAND** *(opt-in, default OFF)* | Under-reaching on the outcome is the real risk | Raise the success bar / reframe to the deeper problem; thinner-but-more-complete path to a bigger target | Expands the *problem + acceptance*, not machinery. Each added criterion is a Drift-Guard-recorded, human-confirmed (HITL) decision: never auto-grown |
|
|
38
|
+
| **EXPAND** *(opt-in, default OFF)* | Under-reaching on the outcome is the real risk | Raise the success bar / reframe to the deeper problem; thinner-but-more-complete path to a bigger target | Expands the *problem + acceptance*, not machinery. Each added criterion is a Drift-Guard-recorded, human-confirmed (HITL) decision: never auto-grown. Under AFK it escalates via `AskUserQuestion` and the fold **holds** until the human answers; an unattended run never auto-applies it |
|
|
39
39
|
| **SELECTIVE** | One or two high-leverage dimensions deserve more; the rest is right | Expand only the high-upside dimension; hold the rest at spec scope | Each selected expansion routes through the Guard; everything not selected is parked in Non-goals so it's neither dropped nor re-injected mid-build |
|
|
40
40
|
| **HOLD-RIGOR** | The spec is right-sized (default for irreversible-risk-heavy or already-tight specs) | No scope change: pure hardening: pre-mortem, risk mitigations, acceptance sharpening, cross-cutting coverage | Adds zero surface; trivially Drift-Guard-clean (no acceptance change) |
|
|
41
41
|
| **REDUCE-TO-MVP** | Over-scoped: second-system bloat, ~all must-haves, gold-plating | Hammer scope to the Minimum Usable Subset; move the rest to Non-goals with one-line reasons + revisit notes | Strongest YAGNI alignment. Cutting acceptance is **still a spec change**: record it via the Guard, never a silent trim |
|
|
@@ -41,6 +41,13 @@ seal can see the call was made deliberately.
|
|
|
41
41
|
|
|
42
42
|
## In `/rite-autocomplete`
|
|
43
43
|
Autocomplete runs the significance test every feature. On skip → straight to `/rite-define`
|
|
44
|
-
(no pause). On fire → run the full review
|
|
45
|
-
`
|
|
46
|
-
|
|
44
|
+
(no pause). On fire → run the full review, then apply the mode under the AFK rule in
|
|
45
|
+
[`scope-modes.md`](scope-modes.md): `hold-rigor`, `reduce-to-MVP`, and a skip apply unattended.
|
|
46
|
+
`expand` and any extra acceptance **do not** apply unattended — acceptance is never auto-grown.
|
|
47
|
+
When the review lands on `expand` or any acceptance growth, the agent presents the scope call as a
|
|
48
|
+
ranked `AskUserQuestion` option set per the HITL rule, records the open `questions.md` qid, and
|
|
49
|
+
**holds the fold**: do not write *Success metrics* or *Acceptance criteria* rows, do not fold via
|
|
50
|
+
Spec Drift Guard, and do not recommend `/rite-define` until a human answers the qid. A self-written
|
|
51
|
+
`decisions.md` ADR is not that human answer (see [`strategy-template.md`](strategy-template.md)
|
|
52
|
+
§ Write discipline); the growth stays blocked until the qid resolves. Irreversible-risk findings
|
|
53
|
+
always pause.
|
|
@@ -74,8 +74,15 @@ already exists, record in `drift.md` and route via `/rite-plan repair` instead o
|
|
|
74
74
|
mitigations go to *Failure and recovery behavior* rows.
|
|
75
75
|
- *Open questions* table: one row per scope call (options offered → decision → owner).
|
|
76
76
|
- **Re-run the Readiness gate** at the bottom of the spec after edits; it must still pass, and
|
|
77
|
-
**every folded scope delta must trace to a recorded decision
|
|
78
|
-
`
|
|
77
|
+
**every folded scope delta must trace to a recorded decision**: a reduction or non-growth
|
|
78
|
+
delta traces to a `questions.md` qid **or** a `decisions.md` ADR, but an **acceptance-growth**
|
|
79
|
+
delta (`expand` or any added *Success metrics* / *Acceptance criteria* row) traces **only** to a
|
|
80
|
+
**resolved human `questions.md` qid** (`status: answered` plus an unindented, lowercase `answered_by: human` line; a qid without exactly
|
|
81
|
+
that line, including every qid written before the field existed, does not satisfy growth traceability).
|
|
82
|
+
A `decisions.md` ADR written by the same run is **not**
|
|
83
|
+
the human approval that growth requires, so an ADR-only growth fold is untraceable and the
|
|
84
|
+
Readiness gate fails closed — `/rite-define` step 0 hard-blocks while it is unresolved. An
|
|
85
|
+
untraceable change is the batch-dump failure.
|
|
79
86
|
- **`decisions.md`:** one ADR-style entry per scope call and accepted trade-off:
|
|
80
87
|
`context · decision · why-not-the-alternative · what-would-change-it`.
|
|
81
88
|
- **`assumptions.md`:** every "we'll probably need X" demoted to an explicit
|
|
@@ -86,5 +93,9 @@ already exists, record in `drift.md` and route via `/rite-plan repair` instead o
|
|
|
86
93
|
`devrites-strategy-reviewer` agent is **read-only** and only returns findings + bands.
|
|
87
94
|
- **No silent scope.** An expansion that the human didn't opt into, or a reduction that drops an
|
|
88
95
|
acceptance criterion without a recorded decision, is a defect, not a convenience.
|
|
96
|
+
- **An ADR is not its own approval.** A `decisions.md` ADR the run writes about its own scope call
|
|
97
|
+
records *why* it chose that mode; it never stands in for the human's answer. Acceptance growth
|
|
98
|
+
stays blocked until a resolved human `questions.md` qid lands, so an unattended run cannot fold
|
|
99
|
+
an expansion by citing its own record.
|
|
89
100
|
- Add `strategy.md` to the workspace between `spec.md` and `plan.md`; `/rite-define` and
|
|
90
101
|
`/rite-ship` read it.
|
|
@@ -20,11 +20,11 @@ Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth trigger
|
|
|
20
20
|
## Rules
|
|
21
21
|
|
|
22
22
|
Read the active standard from: [`principles.md`](../devrites-lib/reference/standards/principles.md), [`patterns.md`](../devrites-lib/reference/standards/patterns.md) + [`coding-style.md`](../devrites-lib/reference/standards/coding-style.md) (over-engineering / YAGNI rubric, trigger `yagni`),
|
|
23
|
-
[`testing.md`](../devrites-lib/reference/standards/testing.md), [`spec-grammar.md`](../devrites-lib/reference/standards/spec-grammar.md), [`performance.md`](../devrites-lib/reference/standards/performance.md), [`error-handling.md`](../devrites-lib/reference/standards/error-handling.md),
|
|
23
|
+
[`testing.md`](../devrites-lib/reference/standards/testing.md), [`spec-grammar.md`](../devrites-lib/reference/standards/spec-grammar.md), [`performance.md`](../devrites-lib/reference/standards/performance.md), [`error-handling.md`](../devrites-lib/reference/standards/error-handling.md) (trigger `errors`),
|
|
24
24
|
[`development-workflow.md`](../devrites-lib/reference/standards/development-workflow.md), [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md), [`one-shot-actions.md`](../devrites-lib/reference/standards/one-shot-actions.md),
|
|
25
|
-
[`developer-experience.md`](../devrites-lib/reference/standards/developer-experience.md), [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md), and [`definition-of-done.md`](../devrites-lib/reference/standards/definition-of-done.md). Load
|
|
25
|
+
[`developer-experience.md`](../devrites-lib/reference/standards/developer-experience.md), [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md), and [`definition-of-done.md`](../devrites-lib/reference/standards/definition-of-done.md) (trigger `dod`). Load
|
|
26
26
|
repository topology, data integrity, and integration reliability only when
|
|
27
|
-
triggered. When the plan's scope generalizes an existing boundary — a second
|
|
27
|
+
triggered (trigger `applicability`). When the plan's scope generalizes an existing boundary — a second
|
|
28
28
|
platform/tenant/source of truth, a newly optional field, a constant turned parameter —
|
|
29
29
|
confirm the [`assumption-checkpoints.md`](../devrites-lib/reference/standards/assumption-checkpoints.md) question (trigger `assumption-delta`)
|
|
30
30
|
was answered and recorded, not skipped-as-negative.
|
|
@@ -67,6 +67,7 @@ plan declares a root-authored executable workflow file, read
|
|
|
67
67
|
repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
|
|
68
68
|
of the fold — each checked individually — with a mandatory correction-created
|
|
69
69
|
regression audit.
|
|
70
|
+
- Refuse the rationalizations in [`anti-patterns`](reference/anti-patterns.md).
|
|
70
71
|
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"plan declares root-authored executable workflow file","action":"emit exact admission; stale/missing authority uses PLAN_VET_REPAIR","return":"Vet READY cursor or exact technical replan"} -->
|
|
71
72
|
## Workflow
|
|
72
73
|
|
|
@@ -211,7 +211,7 @@ Vet hardens the plan. Use the marked action before fold-back.
|
|
|
211
211
|
- Finish `test-plan.md`, fold-back, and rechecks first. Changes to `brief.md`, `spec.md`,
|
|
212
212
|
`decisions.md`, `assumptions.md`, or `questions.md` require revalidating the
|
|
213
213
|
affected decision-coverage rows, assumption audit, residual uncertainty, and closed gates.
|
|
214
|
-
|
|
214
|
+
`open` rows, an unowned material assumption, or an open blocking/escalating question routes
|
|
215
215
|
`/rite-clarify`/HITL. Re-read affected rows with current evidence; repeat the exact
|
|
216
216
|
plan-reviewer and applicable strategy/DevEx after edits. Root writes READY only after
|
|
217
217
|
the checklist. Normal readiness rejects missing/stale bindings; empty tables,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|
|
@@ -31,14 +31,15 @@
|
|
|
31
31
|
"files": [
|
|
32
32
|
"bin/",
|
|
33
33
|
"engine/",
|
|
34
|
-
"!engine/
|
|
35
|
-
"!engine/
|
|
34
|
+
"!engine/tests/",
|
|
35
|
+
"!engine/testdata/",
|
|
36
36
|
"pack/",
|
|
37
37
|
"scripts/build-host-artifacts.sh",
|
|
38
38
|
"scripts/codex-generate.sh",
|
|
39
39
|
"scripts/omp-generate.sh",
|
|
40
40
|
"scripts/pi-generate.sh",
|
|
41
41
|
"scripts/devin-generate.sh",
|
|
42
|
+
"scripts/expand-includes.py",
|
|
42
43
|
"scripts/install-lib.sh",
|
|
43
44
|
"install.sh",
|
|
44
45
|
"uninstall.sh",
|
|
@@ -60,7 +61,6 @@
|
|
|
60
61
|
},
|
|
61
62
|
"scripts": {
|
|
62
63
|
"prepare": "husky || true",
|
|
63
|
-
"prepack": "bash scripts/build-host-artifacts.sh",
|
|
64
64
|
"commitlint": "commitlint --edit",
|
|
65
65
|
"validate": "bash scripts/validate.sh",
|
|
66
66
|
"test": "node scripts/run-tests.mjs",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"semantic-release": "^25.0.9"
|
|
87
87
|
},
|
|
88
88
|
"overrides": {
|
|
89
|
+
"@semantic-release/commit-analyzer": "14.0.0-beta.4",
|
|
89
90
|
"@semantic-release/release-notes-generator": "15.0.0-beta.3",
|
|
90
91
|
"@semantic-release/npm": {
|
|
91
92
|
"npm": "11.20.0"
|
|
@@ -23,6 +23,21 @@ OUT_ROOT="${DEVRITES_HOST_ARTIFACT_DIR:-$ROOT/pack/generated}"
|
|
|
23
23
|
exit 1
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
command -v python3 >/dev/null 2>&1 || {
|
|
27
|
+
echo "build-host-artifacts: python3 is required" >&2
|
|
28
|
+
exit 1
|
|
29
|
+
}
|
|
30
|
+
[ -f "$ROOT/scripts/expand-includes.py" ] || {
|
|
31
|
+
echo "build-host-artifacts: missing $ROOT/scripts/expand-includes.py" >&2
|
|
32
|
+
exit 1
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_out_parent="$(dirname "$OUT_ROOT")"
|
|
36
|
+
[ "$OUT_ROOT" = . ] || { mkdir -p "$_out_parent" 2>/dev/null && [ -d "$_out_parent" ] && [ -w "$_out_parent" ]; } || {
|
|
37
|
+
echo "build-host-artifacts: output parent of $OUT_ROOT is not a writable directory (DEVRITES_HOST_ARTIFACT_DIR)" >&2
|
|
38
|
+
exit 1
|
|
39
|
+
}
|
|
40
|
+
|
|
26
41
|
TMP_GEN_DIR="$(mktemp -d)"
|
|
27
42
|
cleanup() { rm -rf "$TMP_GEN_DIR"; }
|
|
28
43
|
trap cleanup EXIT
|
|
@@ -104,7 +104,7 @@ This project has DevRites installed for both Claude Code and Codex.
|
|
|
104
104
|
- In DevRites guidance, **invoke** means run a skill inline in the current context; **dispatch** means start a fresh agent with `spawn_agent`, wait for it, and reconcile its result.
|
|
105
105
|
- Dispatch every exact named `devrites-<role>` required by the active workflow in a fresh subagent thread, wait for it, and reconcile its result. If that role is unavailable, stop for HITL; never skip it, never substitute a generic/default child, and never execute the specialist role in the root context.
|
|
106
106
|
- The root uses the workspace-capable `devrites-orchestrator` profile because Codex children cannot elevate above the parent permission ceiling. This permission is for native writer dispatch and exact path-bounded executable workflow artifacts under the active `.devrites/work/<slug>/`; the root must never edit product source or tests itself.
|
|
107
|
-
- Every generated specialist is hook-free. `devrites-slice-wright` alone uses `default_permissions = ":workspace"
|
|
107
|
+
- Every generated specialist is hook-free. Among the lifecycle `devrites-*` specialists, `devrites-slice-wright` alone uses `default_permissions = ":workspace"` and every other specialist in that family uses `default_permissions = ":read-only"`. The shipped profiles are the full role-to-permission map; `/rite-doctor` step 3 checks them. Exact paths are instruction-enforced: put the project-relative paths in the task, wait for the wright, compare its file list and `git diff --name-only` with that contract, and reject any extra path. Never bypass the wright, widen its contract, or edit source in the root; the root must never recreate an engine dispatch bridge.
|
|
108
108
|
- The explicit `/overhaul` skill ships its own `overhaul-*` agents outside the DevRites lifecycle. They use `default_permissions = ":workspace"`, are dispatched only by that skill, and follow its own approval gate and path contracts instead of the lifecycle writer rules above.
|
|
109
109
|
- The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` uses `default_permissions = ":workspace"`; `fast-planner`, `fast-checker`, and `fast-critic` stay `:read-only`. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
|
|
110
110
|
- A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact commit/push/tag/PR plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Native host permission and sandbox prompts remain authoritative and cannot be inferred or bypassed.
|
|
@@ -206,7 +206,7 @@ This project has DevRites installed for Devin CLI.
|
|
|
206
206
|
- Before using any DevRites workflow skill, read `.devin/skills/devrites-lib/reference/standards/core.md`. Load other `.devin/skills/devrites-lib/reference/standards/*.md` files when the skill or rule index asks for them.
|
|
207
207
|
- DevRites specialist agents live in `.devin/agents` as custom subagent profiles offered to `run_subagent`. If a required `devrites-<role>` profile is not among the offered profiles, stop for HITL - never skip the role, never substitute `subagent_general`, `subagent_explore`, or another generic profile, never inline the specialist prompt, and never execute the specialist role in the root context.
|
|
208
208
|
- In DevRites guidance, **invoke** means run a skill inline in the current context; **dispatch** means start a fresh agent with `run_subagent` using the exact `profile` name, wait for it with `read_subagent`, and reconcile its result.
|
|
209
|
-
-
|
|
209
|
+
- Among the lifecycle `devrites-*` specialists, only `devrites-slice-wright` may edit source or tests; every other specialist in that family is read-only by `allowed-tools`. The shipped profiles are the full role-to-permission map; `/rite-doctor` step 3 checks them. Exact paths are instruction-enforced: put the project-relative paths in the task, wait for the wright, compare its file list and `git diff --name-only` with that contract, and reject any extra path.
|
|
210
210
|
- The explicit `/overhaul` skill ships its own `overhaul-*` agents outside the DevRites lifecycle. They carry the full write tool set, are dispatched only by that skill, and follow its own approval gate and path contracts instead of the lifecycle writer rules above.
|
|
211
211
|
- The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` carries write tools; `fast-planner`, `fast-checker`, and `fast-critic` stay read-only. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
|
|
212
212
|
- Custom profiles do not inherit interactive tool grants, and background subagents auto-deny unapproved tools. Dispatch the write-capable wright in the foreground, or make sure its `edit`, `write`, and `exec` tools are approved first. Specialists cannot use `ask_user_question`; the root relays user questions and answers through the task text and returned result.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Expand <!-- include:REL/PATH.md --> markers in-place under a directory.
|
|
3
|
+
|
|
4
|
+
Paths resolve relative to the file containing the marker. Used by
|
|
5
|
+
build-host-artifacts.sh on a scratch copy of pack/.claude so every host
|
|
6
|
+
receives identical expanded text while canonical sources deduplicate
|
|
7
|
+
shared blocks into pack/.claude/**/_shared/.
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import re
|
|
12
|
+
import sys
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
MARKER = re.compile(r"<!--\s*include:([^\s>]+)\s*-->")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def expand_file(path: Path, errors: list[str]) -> str:
|
|
19
|
+
text = path.read_text(encoding="utf-8")
|
|
20
|
+
|
|
21
|
+
def repl(m: re.Match) -> str:
|
|
22
|
+
target = (path.parent / m.group(1)).resolve()
|
|
23
|
+
if not target.is_file():
|
|
24
|
+
errors.append(f"{path}: include not found: {m.group(1)}")
|
|
25
|
+
return m.group(0)
|
|
26
|
+
return target.read_text(encoding="utf-8").rstrip("\n")
|
|
27
|
+
|
|
28
|
+
return MARKER.sub(repl, text)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def main() -> int:
|
|
32
|
+
root = Path(sys.argv[1])
|
|
33
|
+
errors: list[str] = []
|
|
34
|
+
for f in sorted(root.rglob("*.md")):
|
|
35
|
+
if "include:" not in f.read_text(encoding="utf-8"):
|
|
36
|
+
continue
|
|
37
|
+
new = expand_file(f, errors)
|
|
38
|
+
if new != f.read_text(encoding="utf-8"):
|
|
39
|
+
f.write_text(new, encoding="utf-8")
|
|
40
|
+
for e in errors:
|
|
41
|
+
print(e, file=sys.stderr)
|
|
42
|
+
return 1 if errors else 0
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
if __name__ == "__main__":
|
|
46
|
+
sys.exit(main())
|