devrites 7.2.7 → 7.3.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 +40 -0
- package/README.md +6 -1
- package/docs/candidate-integrity.md +10 -0
- package/docs/cli.md +7 -1
- package/docs/command-map.md +9 -2
- package/docs/engine/commands.md +50 -4
- package/docs/orchestration.md +35 -13
- package/docs/skills.md +5 -0
- package/engine/internal/acceptance/cli.go +35 -30
- package/engine/internal/acceptance/preconditions.go +1 -1
- package/engine/internal/acceptance/run.go +138 -53
- package/engine/internal/acceptance/transcript.go +236 -45
- package/engine/internal/devritespaths/paths.go +23 -5
- package/engine/internal/gate/gate.go +6 -0
- package/engine/internal/install/apply.go +5 -0
- package/engine/internal/install/merge.go +48 -6
- package/engine/internal/install/preflight.go +21 -3
- package/engine/internal/install/uninstall.go +9 -10
- package/engine/internal/lib/apply_bundle.go +7 -1
- package/engine/internal/lib/candidate.go +20 -7
- package/engine/internal/lib/candidate_coverage.go +2 -19
- package/engine/internal/lib/closeout.go +22 -10
- package/engine/internal/lib/context.go +67 -47
- package/engine/internal/lib/context_io.go +171 -0
- package/engine/internal/lib/detect.go +8 -8
- package/engine/internal/lib/dispatch.go +6 -0
- package/engine/internal/lib/packet.go +37 -7
- package/engine/internal/lib/packet_freeze.go +60 -12
- package/engine/internal/lib/packet_integrity.go +179 -0
- package/engine/internal/lib/perturb.go +3 -3
- package/engine/internal/lib/resolve.go +10 -5
- package/engine/internal/lib/slicecheck.go +7 -1
- package/engine/internal/lib/state_edit.go +9 -2
- package/engine/internal/lib/taskgraph.go +20 -36
- package/engine/internal/lib/triggers.go +30 -31
- package/engine/internal/lib/workspace_pool.go +330 -0
- package/engine/internal/parallel/cli.go +190 -49
- package/engine/internal/parallel/git.go +47 -14
- package/engine/internal/parallel/landing.go +232 -0
- package/engine/internal/parallel/lease.go +97 -18
- package/engine/internal/parallel/ops.go +312 -155
- package/engine/internal/parallel/pathdisjoint.go +48 -4
- package/engine/internal/parallel/prune.go +133 -0
- package/engine/internal/parallel/repository.go +239 -0
- package/engine/internal/parallel/select.go +64 -42
- package/engine/internal/state/cursor.go +5 -5
- package/engine/main.go +2 -1
- package/pack/.claude/agents/devrites-proof-runner.md +16 -9
- package/pack/.claude/skills/devrites-lib/SKILL.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/.claude/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/.claude/skills/rite-build/SKILL.md +13 -10
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/.claude/skills/rite-clarify/SKILL.md +2 -2
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -4
- package/pack/.claude/skills/rite-define/SKILL.md +7 -3
- package/pack/.claude/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/.claude/skills/rite-plan/SKILL.md +11 -8
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/.claude/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/.claude/skills/rite-polish/SKILL.md +3 -3
- package/pack/.claude/skills/rite-prove/SKILL.md +9 -5
- package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/.claude/skills/rite-review/SKILL.md +4 -3
- package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/.claude/skills/rite-seal/SKILL.md +1 -1
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/.claude/skills/rite-ship/SKILL.md +2 -2
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/.claude/skills/rite-spec/SKILL.md +8 -5
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/.claude/skills/rite-temper/SKILL.md +3 -3
- package/pack/.claude/skills/rite-vet/SKILL.md +9 -5
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/claude/agents/devrites-proof-runner.md +16 -9
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/claude/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/claude/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/claude/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/claude/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/claude/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/claude/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/claude/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/claude/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/codex/agents/devrites-proof-runner.toml +16 -9
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/codex/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/codex/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/codex/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/codex/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/codex/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/codex/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/codex/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/codex/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/devin/agents/devrites-proof-runner.md +16 -9
- package/pack/generated/devin/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/devin/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/devin/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/devin/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/devin/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/devin/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/devin/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/devin/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/devin/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/devin/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/devin/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/dsh/agents/devrites-proof-runner.md +16 -9
- package/pack/generated/dsh/runtime/cordis.patch.yml +1 -1
- package/pack/generated/dsh/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/dsh/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/dsh/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/dsh/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/dsh/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/dsh/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/dsh/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/dsh/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/dsh/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/dsh/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/dsh/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/dsh/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/dsh/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/dsh/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/dsh/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/dsh/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/dsh/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/dsh/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/dsh/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/dsh/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/dsh/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/dsh/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/dsh/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/dsh/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/dsh/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/dsh/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/dsh/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/omp/agents/devrites-proof-runner.md +16 -9
- package/pack/generated/omp/commands/rite-build.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/omp/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/omp/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/omp/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/omp/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/omp/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/omp/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/omp/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/omp/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/omp/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/omp/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/omp/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/omp/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/omp/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/omp/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +12 -5
- package/pack/generated/pi/agents/devrites-proof-runner.md +16 -9
- package/pack/generated/pi/prompts/rite-build.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/SKILL.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +7 -3
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +7 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +18 -9
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +13 -10
- package/pack/generated/pi/skills/rite-autocomplete/reference/lookahead.md +4 -4
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +13 -9
- package/pack/generated/pi/skills/rite-build/SKILL.md +13 -10
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +60 -39
- package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +8 -5
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +7 -7
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-define/SKILL.md +7 -3
- package/pack/generated/pi/skills/rite-define/reference/plan-template.md +4 -2
- package/pack/generated/pi/skills/rite-plan/SKILL.md +11 -8
- package/pack/generated/pi/skills/rite-plan/reference/dependency-graph.md +9 -2
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +2 -0
- package/pack/generated/pi/skills/rite-polish/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-prove/SKILL.md +9 -5
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +2 -0
- package/pack/generated/pi/skills/rite-review/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/pi/skills/rite-seal/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +1 -1
- package/pack/generated/pi/skills/rite-ship/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/pi/skills/rite-spec/SKILL.md +8 -5
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +5 -0
- package/pack/generated/pi/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +12 -5
- package/package.json +1 -1
- package/scripts/build-host-artifacts.sh +5 -6
- package/scripts/omp-generate.sh +24 -14
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
|
|
4
4
|
|
|
5
|
+
## [7.3.0](https://github.com/ViktorsBaikers/DevRites/compare/v7.2.8...v7.3.0) (2026-11-01)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* **devrites:** improve parallel throughput and proof integrity ([#203](https://github.com/ViktorsBaikers/DevRites/issues/203)) ([ac9c404](https://github.com/ViktorsBaikers/DevRites/commit/ac9c404908f3b709bfb76205aae0574e89bfcfe3))
|
|
10
|
+
|
|
11
|
+
## Unreleased
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Pool independent, currently vetted continuation slices under one repository-wide
|
|
16
|
+
parallel controller, with rolling landings and refills across workspace sources.
|
|
17
|
+
- Prune clean integrated worker checkouts without discarding transfer branches,
|
|
18
|
+
proof identities, retained lease rows, or running siblings.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Recover exact recorded parallel landings after interrupted lease persistence;
|
|
23
|
+
preserve late worker edits, ignored data, extra commits, and missing-checkout
|
|
24
|
+
Git metadata during cleanup.
|
|
25
|
+
- Exclude explicitly deferred slices from runnable work; stop inventing integration
|
|
26
|
+
suites from language manifests alone.
|
|
27
|
+
- Verify cached context bytes and frozen review diffs, publish complete artifacts
|
|
28
|
+
atomically, and isolate concurrent freeze/render attempts.
|
|
29
|
+
- Recover missing executed gate transcripts without rerunning valid scoped proof;
|
|
30
|
+
redact sensitive transcript metadata as well as command output.
|
|
31
|
+
- Keep timed-out tests failed even when graceful termination exits successfully.
|
|
32
|
+
- Support drive-qualified Windows paths in reviewer diff bindings.
|
|
33
|
+
- Audit underfilled parallel frontiers through acceptance-preserving Plan/Vet;
|
|
34
|
+
separate independently provable capabilities without dropping producer, proof
|
|
35
|
+
or authority gates.
|
|
36
|
+
|
|
37
|
+
## [7.2.8](https://github.com/ViktorsBaikers/DevRites/compare/v7.2.7...v7.2.8) (2026-10-31)
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
* **no-release:** close installer evidence and recovery integrity gaps ([#200](https://github.com/ViktorsBaikers/DevRites/issues/200)) ([edb8754](https://github.com/ViktorsBaikers/DevRites/commit/edb8754ecf80d4a0dd83590c5b346787c3647244))
|
|
42
|
+
* **no-release:** select exact OMP specialists and preserve reviewer roles ([#199](https://github.com/ViktorsBaikers/DevRites/issues/199)) ([b31814a](https://github.com/ViktorsBaikers/DevRites/commit/b31814a37d80c45a27d5470ab5464cd93c91f76a))
|
|
43
|
+
* **release:** publish pending installer fixes ([dfd2192](https://github.com/ViktorsBaikers/DevRites/commit/dfd2192d1b7d9da1b0111603760c5eb8f246b9a4))
|
|
44
|
+
|
|
5
45
|
## [7.2.7](https://github.com/ViktorsBaikers/DevRites/compare/v7.2.6...v7.2.7) (2026-10-31)
|
|
6
46
|
|
|
7
47
|
### Fixed
|
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ history can't lose it. After you clear the conversation, switch hosts, or hand
|
|
|
31
31
|
the feature to another engineer, the next session reads the same plan,
|
|
32
32
|
decisions, and evidence before it continues.
|
|
33
33
|
|
|
34
|
-
**Status:** [`v7.
|
|
34
|
+
**Status:** [`v7.3.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v7.3.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
35
35
|
|
|
36
36
|
This is the latest published release; `main` may contain unreleased work.
|
|
37
37
|
|
|
@@ -382,6 +382,11 @@ with `--force`; legacy manifests without hashes also require `--force`.
|
|
|
382
382
|
`--force --dry-run` lists the exact destructive actions. Every settings and
|
|
383
383
|
marker merge is checked before the first write, so a rejected merge (such as a
|
|
384
384
|
Codex config that already sets top-level `default_permissions`) leaves the project untouched.
|
|
385
|
+
Unmerges receive the same preflight: malformed settings or legacy hooks JSON
|
|
386
|
+
blocks uninstall and dropped-host pruning, including dry runs, before writes.
|
|
387
|
+
Existing files retain their permission bits. Claude permission ownership is
|
|
388
|
+
recorded before settings replacement, so interrupted merges retain the records
|
|
389
|
+
needed to remove installer-added grants on retry and uninstall.
|
|
385
390
|
Marker-merged files keep user content outside the DevRites block, and
|
|
386
391
|
`.devrites/` runtime state stays in place. `update` reuses the install flags
|
|
387
392
|
recorded in the manifest; flags you pass explicitly win and are recorded. The installer refuses symlinks, junctions, and paths that
|
|
@@ -116,6 +116,16 @@ Candidate and Seal. A mismatch stops; it is never reinterpreted as equivalent.
|
|
|
116
116
|
Fresh literal `GO` and native host approval remain required for each disclosed
|
|
117
117
|
Git attempt.
|
|
118
118
|
|
|
119
|
+
## Concurrent workspaces
|
|
120
|
+
|
|
121
|
+
Mixed-workspace execution shares a controller, not a candidate or proof ledger.
|
|
122
|
+
Every landing uses `WIP(<source>):` and updates only that source's manifest and
|
|
123
|
+
evidence. Interleaved child checkpoints do not authorize parent-only Ship to
|
|
124
|
+
absorb unfinished child work. The deferred release waits for participating
|
|
125
|
+
workspaces' final proof/Review/Seal, generates the recorded sequence's union
|
|
126
|
+
manifest, and checks exact staged bytes and scope under fresh literal `GO`.
|
|
127
|
+
Retained controller/source leases must be cleaned before archival.
|
|
128
|
+
|
|
119
129
|
## Older workspaces
|
|
120
130
|
|
|
121
131
|
Released v1/v2/v3 unfinished workspaces use read-only `/rite-upgrade`. A missing
|
package/docs/cli.md
CHANGED
|
@@ -304,7 +304,7 @@ selection exits `2`; a malformed/unsafe manifest or candidate mismatch prints
|
|
|
304
304
|
- Atomic state operations retain their documented operation-specific nonzero
|
|
305
305
|
results.
|
|
306
306
|
- `state close` exits `4` for usage or a missing workspace.
|
|
307
|
-
- `state close` exits `3` for a schema refusal.
|
|
307
|
+
- `state close` exits `3` for a schema refusal or a retained controller/source lease.
|
|
308
308
|
- `state close` exits `5` when an archive already exists.
|
|
309
309
|
- `state close` exits `1` for an invalid workspace, archive directory, or ACTIVE cursor.
|
|
310
310
|
|
|
@@ -313,6 +313,12 @@ selection exits `2`; a malformed/unsafe manifest or candidate mismatch prints
|
|
|
313
313
|
`DEVRITES_ROOT` selects a project root or `.devrites/` directory.
|
|
314
314
|
`DEVRITES_WORKSPACE` may select one explicit contained workspace. Mutating
|
|
315
315
|
commands refuse ambiguous, escaped, symlinked, or otherwise unsafe roots.
|
|
316
|
+
Explicit producer dependencies resolve safely within the selected `DEVRITES_ROOT`
|
|
317
|
+
without changing or redirecting the consumer's workspace override.
|
|
318
|
+
Global controller queries use explicit source slugs in a per-invocation environment
|
|
319
|
+
without a worker's `DEVRITES_WORKSPACE`; conflicting overrides fail closed rather
|
|
320
|
+
than redirecting another workspace's reads. Workspace parallelism keeps one
|
|
321
|
+
controller lease and global writer capacity; it does not broaden Ship approval.
|
|
316
322
|
|
|
317
323
|
Install, update application, and uninstall remain manifest-owned local
|
|
318
324
|
operations. Direct engine update, shell, and npm may acquire a release candidate;
|
package/docs/command-map.md
CHANGED
|
@@ -50,6 +50,10 @@ The Go surface is intentionally closed and deterministic:
|
|
|
50
50
|
| Install/operator | `install`, `update`, `uninstall`, `version` | Direct update acquires latest; npm/bootstrap may supply local candidates; the engine performs manifest-owned local changes. |
|
|
51
51
|
| Native policy | no engine command | Skills/root own spec grammar re-read, qid allocation, Clarify cursor edits, AFK/recovery accounting, and read-only `/rite-doctor`. |
|
|
52
52
|
|
|
53
|
+
`state apply-bundle` merges workspace-relative path aliases into one target:
|
|
54
|
+
`plan.md`, `./plan.md`, and `refs/../plan.md` share base pins and patch hunks.
|
|
55
|
+
Conflicting replacements or base hashes block the entire bundle without writes.
|
|
56
|
+
|
|
53
57
|
`devrites-engine help` exhaustively lists the operational engine commands.
|
|
54
58
|
Standard `help`, `-h`, `--help`, `version`, and `--version` forms remain
|
|
55
59
|
available; each operational command and subcommand also accepts `-h` / `--help`.
|
|
@@ -244,8 +248,11 @@ See [`flow.md`](flow.md) for the Mermaid diagrams. The text form is:
|
|
|
244
248
|
only the exact-plan Ship approval boundary and never authorizes Git.
|
|
245
249
|
```
|
|
246
250
|
|
|
247
|
-
- Every phase
|
|
248
|
-
the
|
|
251
|
+
- Every phase resolves its explicit source workspace before the ACTIVE default.
|
|
252
|
+
Autocomplete keeps ACTIVE on the ordered lifecycle owner while preparing or
|
|
253
|
+
building authorized independent future slices through one global controller.
|
|
254
|
+
Existing `--parallel N` spans those workspaces; no second feature flag is needed.
|
|
255
|
+
See [cross-workspace admission](../pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md).
|
|
249
256
|
- **Spec Drift Guard** lives in build/prove/polish/review/seal: on drift, stop,
|
|
250
257
|
record in `drift.md`, and classify. Objective implementation and tool defects
|
|
251
258
|
use bounded recovery; a wrong durable plan uses `/rite-plan repair`; only a
|
package/docs/engine/commands.md
CHANGED
|
@@ -17,8 +17,8 @@ workflow strategy.
|
|
|
17
17
|
| `check preconditions <slug> [--slice SLICE-###] [--timeout N]` | Run the `test-plan.md` Build-entry preflight rows whose optional `Run at` cell is `vet` (with `--slice`, `pre-dispatch <SLICE>`); `action` rows and rows without the cell never run. Writes one candidate-bound transcript per row under `references/gates/preflight-*/`; a row passes on exit 0. A `pre-dispatch` row whose newest transcript passed is kept, not re-run: it is a pre-edit baseline, so a re-dispatch never runs it against the slice's own edits; changing its command or cwd retires the pass. Exit `3` on any failure or an invalid `Run at` value. |
|
|
18
18
|
| `check seal <slug>` | Check files required by target Phase `seal`, open human gates, the `tasks.md` slice graph, canonical `AC-###` presence when `tasks.md`/`test-plan.md` are required, the stable Build-input binding, and exact candidate bindings. `check readiness` and `check seal` also block a `scripts/` test driver that a tasks.md Writer allowlist plans or touched-files.md lists when no gates.md `CHECK` runs it and no `Driver waiver: <path> — DEC-### <reason>` line cites a recorded decision; waived drivers print as `note: unexecuted driver (waived by DEC-###): <path>` lines, on pass or block. |
|
|
19
19
|
| `check path-disjoint [--root <dir>] [<json-file> | -]` | Verify slice path sets are pairwise disjoint. |
|
|
20
|
-
| `parallel select --cap <1-10> [--root <dir>] [--slug <
|
|
21
|
-
| `parallel <create\|add\|integrate\|cleanup\|status\|abort\|lease-read\|lease-write\|lease-clear\|record-green>` |
|
|
20
|
+
| `parallel select --cap <1-10> [--root <dir>] [--slug <controller>] [--from-plan [--workspaces <slug,...>] \| <json-file> \| -]` | Choose a plan-order path-disjoint ready subset, seeded by all retained repository-controller slots and paths. `--from-plan` uses canonical built checkpoints, local and declared workspace producer dependencies, exact write sets and required dependency manifests. The internal `--workspaces` data-source parameter pools recorded forward continuations with current readiness and explicit native-vetted per-slice declarations; blocked/stale/missing candidates print scoped notices without hiding other ready work. Foreign identities print `<workspace>/<slice>`. |
|
|
21
|
+
| `parallel <create\|add\|integrate\|prune\|cleanup\|status\|abort\|lease-read\|lease-write\|lease-clear\|record-green>` | One repository controller owns isolated workers across source workspaces. `create` accepts a single initial worker; `create`/`add --cap N` persist the global admission capacity. Explicit `add --cap N --json -` with stdin `[]` updates capacity only; lowering below active count refuses without canceling workers. A completed retained lease can refill at unchanged control tip. `record-green` and per-slice `integrate --slice <workspace/id> --apply-to-control` target source-qualified lanes (bare IDs mean controller lanes); integration keeps exact ancestry/path/dirty-work checks and lands `WIP(<source>):`. `prune` removes only verified clean integrated checkouts, retaining branches, proof identities, lease rows and controller. Status exposes the retained controller and pending landing; cleanup preserves salvage/unknown work. |
|
|
22
22
|
| `check task-graph <slug>` | Validate `tasks.md` slice dependency graph for cycles, unknown deps, malformed tokens, duplicate IDs, missing `Dependencies`, and `depends_on` mismatch. Prints a non-blocking `ADVISORY size:` line (and records a `size-advisory` metric) for each slice with 12+ Writer allowlist files and no `Size rationale:`. A `Dependencies` ID may carry a `(via <interface>)` suffix (empty or unclosed is a malformed token); prints a non-blocking `ADVISORY edge:` line (and records an `edge-advisory` metric) for each edge with no via, or whose via text is not a case-insensitive substring of the dependency's `Consumes / Produces:`. Prints `schedule: <n> slices in <r> build rounds at cap 10` (the `/rite-build` batch selection replayed over each slice's Writer allowlist, else Files likely touched, plus the manifest parallel select reserves; omitted when a slice has no path) and a non-blocking `ADVISORY hub:` line (top five; records a `hub-advisory` metric) for each path, compared case-folded, that three or more slices without `Serial rationale:` write. Advisories print only when the graph is valid. |
|
|
23
23
|
| `check regression <slug> [--update]` | Compare the workspace's structural progress facts (phase ordinal, checked ACs, met/abandoned gates, done slices, resolved questions, present artifacts) against the recorded `regression-baseline.json` high-water mark; `--update` ratchets the baseline forward under the feature lock and prints each blessed regression. |
|
|
24
24
|
| `check continuation [slug]` | Print whether an armed AFK run must invoke its cursor instead of replying. `continuation: required` plus `invoke: <next_action>` when `.devrites/AFK` is a regular file, `status` is `running`, `question_id` is empty, no blocking or escalating question is open, and `next_action` is an internal phase command (`/rite-spec` through `/rite-seal`, including `/rite-plan`, not `/rite-ship` or `/rite-autocomplete`). Otherwise `continuation: clear` with a one-line `reason`. Exit `0` either way. `handoff` prints the same lines. |
|
|
@@ -45,7 +45,7 @@ workflow strategy.
|
|
|
45
45
|
| `metrics summary [slug] [--by-slice]` | Reduce `metrics.jsonl` into a per-phase roll-up. `--by-slice` reads `dispatch.json` instead: per slice, build wright rounds, slice-bound Vet rechecks, and agent-minutes (role start to `returned_at`; abandoned waves excluded). When the ledger has `resume` events it adds `resumes count=N minutes_to_dispatch=...` (each resume timed to the next `dispatch` event; `none` when another resume came first, `open` when none followed). |
|
|
46
46
|
| `claim <add\|release\|list\|check>` | Advisory session-scoped file claims in `.devrites/claims.jsonl` (append-only). `add` records intent to write a path set with a TTL (1–240 min, default 30); a live claim by another session exits `3` and names the holder. `release` appends a release event owned by the claiming session. `list` shows every unreleased claim (live, expired, dead) plus one `N released (use --all)` count; `--all` includes released rows; a claim whose holding session has provably exited on this host shows `dead` and no longer conflicts. `check` is the read-only preflight for a path set. Coordination aid only — never a substitute for one-writer-per-worktree. |
|
|
47
47
|
| `note <add\|list\|check\|rm> <slug> ...` | Anchored workspace notes in `notes.md`: `add <slug> <subject> <quote> <title> [body]` binds a note to a verbatim quote in one repository file and assigns `NOTE-###`; `list` and `check` regrade each anchor `exact`/`moved`/`stale`/`ambiguous`/`lost` by searching the repo for the quote (dependency and workspace trees excluded); `check --repair` rewrites a `moved` subject to its new file; `rm` deletes by ID. `check seal` refuses a malformed `notes.md` and any non-`exact` anchor. |
|
|
48
|
-
| `gates <scaffold\|status\|run\|reverify\|lint\|precheck\|attest\|abandon> <slug>` | Operate the `gates.md` acceptance ledger: seed per-AC gates, execute runnable gates bound to `test-plan.md` preflight rows, attest manual gates, and reduce to `all-met`/`not-met`/`handoff`/`malformed`. A gate with `INPUTS:` records its files' content digest and is reused by `run` and `reverify` while they are unchanged. `run`/`reverify --transcripts`
|
|
48
|
+
| `gates <scaffold\|status\|run\|reverify\|lint\|precheck\|attest\|abandon> <slug>` | Operate the `gates.md` acceptance ledger: seed per-AC gates, execute runnable gates bound to `test-plan.md` preflight rows, attest manual gates, and reduce to `all-met`/`not-met`/`handoff`/`malformed`. A gate with `INPUTS:` records its files' content digest and is reused by `run` and `reverify` while they are unchanged. `run`/`reverify --transcripts` atomically publishes a private redacted v2 executed transcript, or returns its verified originating record unchanged, under `references/gates/<gate-id>/`; legacy v1/reuse-only logs cannot authorize reuse. `precheck <slug> --worktree <path> [--slice <SLICE-ID>]` runs every `RUN: writer` gate and `check windows` against the wright's worktree (with `--slice`, it prints `SKIP <gate-id>` for a gate whose id only other unbuilt slices name in `tasks.md`, since gate ids reuse `AC-###` ids; a gate no slice names still runs), prints PASS/FAIL per gate id, exits `3` on any FAIL or on a malformed ledger, and writes no ledger, EVIDENCE line or transcript (`check windows` still appends its metric event); its output is never evidence. |
|
|
49
49
|
| `state resolve <qid> "<answer>"` | Resolve an open question and update `questions.md` plus `state.md` atomically. |
|
|
50
50
|
| `state merge-manifest <slug> [pred...]` | Fold the recorded predecessor chain's manifests into the release candidate manifest. |
|
|
51
51
|
| `state set <slug> <key>=<value>... [--unset <key>]...` | Write `state.md` cursor fields all-or-nothing under the feature lock. Refuses an unknown `phase`, the engine-owned `schema` row, a pipe or line break in a value, and an overwrite of a saved `return_phase`/`return_next_action`. Setting `status=awaiting_human` under `.devrites/AFK` prints each open question the sentinel's `allow_gates` auto-picks. |
|
|
@@ -54,10 +54,17 @@ workflow strategy.
|
|
|
54
54
|
| `migrate <slug> [--dry-run] [--answer id=choice]` | Normalize a pre-v5 workspace to the current schema; fail-closed, one-shot. |
|
|
55
55
|
| `secret-scan [--staged] [--stdin] [slug]` | Scan exact staged blobs, stdin, or touched regular files for credential material. |
|
|
56
56
|
| `open-visual <path-or-name> [--slug <slug>] [--no-open]` | Resolve a local visual HTML file, optionally open it in the OS browser, warn if the sibling outline is missing or inventory ids are absent from HTML, and print agent path tips. No network. |
|
|
57
|
-
| `detect commands [--root <dir>] [--json]` | Resolve the repository's own test/lint/vet/build commands: explicit Makefile targets first, then `package.json` scripts, then language-manifest fallbacks, plus the lockfile-derived package manager. Read-only, no installs, no execution. |
|
|
57
|
+
| `detect commands [--root <dir>] [--json]` | Resolve the repository's own test/lint/vet/build commands: explicit Makefile targets first, then `package.json` scripts, then language-manifest fallbacks, plus the lockfile-derived package manager. Integration stays unresolved without an explicit repository target or script; a language manifest does not prove a separate integration suite. Read-only, no installs, no execution. |
|
|
58
58
|
| `overhaul <records\|admit\|snapshot\|score\|bench\|render> ...` | Deterministic tools behind the standalone `/overhaul` skill: run-record generations and cross-record validation, worker-receipt admission and quote anchoring, index-safe baseline snapshots and per-attempt deltas, exact-rational readiness scoring, benchmark ratio intervals, and escaped offline review/report views. Operates only on explicit run-area and repository paths. See [Overhaul tools](#overhaul-tools). |
|
|
59
59
|
| `version` | Print the engine version. |
|
|
60
60
|
|
|
61
|
+
For `context --role`, optional `devrites-` prefixes and `.lane` suffixes resolve
|
|
62
|
+
the base specialist's contract, workspace read-set, and role-specific rules.
|
|
63
|
+
The full label remains in bundle filenames and attribution. Reviewer
|
|
64
|
+
`dispatch return` requires `--result <file>` or an explicit
|
|
65
|
+
`--outcome findings|no-findings|gap`; omitting both refuses the return without
|
|
66
|
+
changing the wave or releasing its claim. Non-reviewer returns are unchanged.
|
|
67
|
+
|
|
61
68
|
`help`, `-h`, and `--help` print this operational inventory. Each operational
|
|
62
69
|
command and subcommand also accepts `-h` / `--help` and prints that command's
|
|
63
70
|
usage to stdout without requiring a workspace. `version` and `--version` print
|
|
@@ -66,6 +73,45 @@ engine has no compatibility aliases or tombstones. The `add`/`upgrade`/`remove`
|
|
|
66
73
|
conveniences belong only to the `npx devrites` adapter, not to the engine
|
|
67
74
|
command namespace.
|
|
68
75
|
|
|
76
|
+
## State and evidence safety
|
|
77
|
+
|
|
78
|
+
- `state set` resolves known cursor aliases before checking protected fields
|
|
79
|
+
and duplicate keys. Underscore variants cannot bypass phase, schema, or
|
|
80
|
+
saved-return-cursor protections; extension keys retain their spelling.
|
|
81
|
+
- `state resolve` ignores fenced examples when matching and removing an
|
|
82
|
+
Awaiting-human section. Resolving another question leaves the live wait intact.
|
|
83
|
+
- `state close` reads the physical `ACTIVE` pointer under the feature lock;
|
|
84
|
+
`DEVRITES_WORKSPACE` cannot make it clear another feature's pointer.
|
|
85
|
+
- `gates run` and `reverify` snapshot every declared `INPUTS` dependency around
|
|
86
|
+
the actual shared CHECK execution, recheck during locked writeback, and
|
|
87
|
+
invalidate earlier passes if later checks move their inputs.
|
|
88
|
+
Missing or changed inputs cannot certify a pass. Execution, discarded-result,
|
|
89
|
+
or evidence-write failures exit `3`, even if an older ledger still reads met.
|
|
90
|
+
- Parallel integration records exact landing intent before control FF. A matching
|
|
91
|
+
retry reconciles that landing once; external HEAD/ref movement still blocks.
|
|
92
|
+
Pending intent cannot be replaced or cleared through raw lease commands.
|
|
93
|
+
`prune` and normal/forced cleanup preserve late edits, ignored/untracked data,
|
|
94
|
+
unexpected worker tips and unknown checkouts rather than forcing their removal.
|
|
95
|
+
Missing registered checkouts retain their Git index and metadata; completed
|
|
96
|
+
cleanup releases the lease and reports recovery rather than discarding them.
|
|
97
|
+
- Context cache reuse verifies the actual regular bundle bytes and private mode,
|
|
98
|
+
not the digest sidecar alone. Workspace sources are bounded and acquired once
|
|
99
|
+
per invocation; unsafe reads fail instead of becoming omitted guidance.
|
|
100
|
+
Managed output stays confined; explicit external `--out` remains supported.
|
|
101
|
+
Windows cannot prove POSIX owner-only mode through Go's `FileMode`; repeat
|
|
102
|
+
context requests rebuild instead of falsely certifying a private cache hit.
|
|
103
|
+
- Frozen diff bytes must match their recorded SHA-256 at packet and dispatch
|
|
104
|
+
validation. Manually authored final reviewer packets may still name `.diff`
|
|
105
|
+
or `.patch` files, but must include `diff <64hex> <path>` binding rows.
|
|
106
|
+
Binding paths use `/` on every host, including drive-qualified Windows paths.
|
|
107
|
+
Same-wave freeze publication is serialized; each renderer owns its lint draft.
|
|
108
|
+
- `gates run`/`reverify --transcripts` reuse only a complete passing executed
|
|
109
|
+
origin matching the gate definition, recorded output identity and declared
|
|
110
|
+
inputs. Missing origin reruns only affected approved checks; missing approval
|
|
111
|
+
blocks instead of borrowing an old checkbox. Valid redacted/truncated origins
|
|
112
|
+
remain reusable, with their historical candidate identity. Transcript metadata
|
|
113
|
+
and output are redacted; publication is atomic and private.
|
|
114
|
+
|
|
69
115
|
## Check boundary
|
|
70
116
|
|
|
71
117
|
The candidate gate validates and hashes path/state/type/mode/content identity;
|
package/docs/orchestration.md
CHANGED
|
@@ -37,6 +37,15 @@ Skills name the exact role and bounded task in normal language. The host owns
|
|
|
37
37
|
internal spawn fields, scheduling, waiting, follow-ups, and result delivery.
|
|
38
38
|
DevRites does not parse rollout logs or maintain dispatch receipts.
|
|
39
39
|
|
|
40
|
+
On OMP, each `task` item selects its specialist through `agent`, including every
|
|
41
|
+
item in a `tasks[]` batch: `devrites-code-reviewer`, `devrites-test-analyst`, or
|
|
42
|
+
`devrites-slice-wright` for those roles. Writing “you are…” in a task or naming it
|
|
43
|
+
after a specialist does not select that profile. Lane suffixes stay on engine
|
|
44
|
+
role labels, not native profile names. Check the actual host selector before
|
|
45
|
+
admitting results: the engine records declared roles and host handles, not
|
|
46
|
+
authenticated native profile identity. A missing profile remains a gap, not
|
|
47
|
+
permission to select a generic/default child.
|
|
48
|
+
|
|
40
49
|
Quick, Standard, and Full select evidence/review depth only; they are not agent
|
|
41
50
|
API versions or execution tiers. The shared contract lives in
|
|
42
51
|
[`orchestration-profiles.md`](../pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md).
|
|
@@ -132,19 +141,32 @@ base before native transfer, then re-proves the reconciled candidate. Missing tr
|
|
|
132
141
|
conflict, extra paths, moved base, or cleanup failure stops with worktree evidence
|
|
133
142
|
preserved. No ad hoc copy/cherry-pick/merge occurs from the read-only root.
|
|
134
143
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
and
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
Parallel writers use the `/rite-build` worktree lifecycle: independently vetted
|
|
145
|
+
contracts, disjoint declared/hidden write surfaces, one retained controller lease,
|
|
146
|
+
and per-sibling review/proof before serialized integration. `--parallel N` on
|
|
147
|
+
Autocomplete is one global active-writer cap across authorized sequence workspaces;
|
|
148
|
+
without the flag it uses AFK `max_parallel`, retained lease capacity on resume,
|
|
149
|
+
else 10. No additional user flag is needed. Standalone Build remains scoped to
|
|
150
|
+
its requested workspace.
|
|
151
|
+
|
|
152
|
+
While a writer runs, Autocomplete prepares or re-Vets recorded continuations and
|
|
153
|
+
refills from the whole eligible pool. A future slice needs an explicit, current
|
|
154
|
+
Plan/Vet `Workspace dependencies` declaration; absent or stale declarations never
|
|
155
|
+
become independence merely because files differ. Only durable integrated producer
|
|
156
|
+
checkpoints release dependent work. Human/access/safety gates retain their scope.
|
|
157
|
+
|
|
158
|
+
Each worker keeps its source workspace identity, isolated cwd, candidate, proof,
|
|
159
|
+
state and `WIP(<source>):` checkpoint. Even a lone initial writer is isolated when
|
|
160
|
+
using a parallel-capable controller, so later work can refill without creating
|
|
161
|
+
same-tree co-writers. Explicit `--parallel 1` remains one writer total. Unsupported
|
|
162
|
+
host isolation falls back truthfully to serial execution.
|
|
163
|
+
|
|
164
|
+
The controller drains and cleans its lease before non-lease product corrections,
|
|
165
|
+
shared Polish writes or checkpoints; unrelated control commits are never blessed
|
|
166
|
+
as a new expected tip. Final per-workspace proof/Seal and exact release-union Ship
|
|
167
|
+
approval remain mandatory. See the
|
|
168
|
+
[controller workflow](../pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md)
|
|
169
|
+
and [worktree lifecycle](../pack/.claude/skills/rite-build/reference/parallel-batch.md).
|
|
148
170
|
|
|
149
171
|
## Engine boundary
|
|
150
172
|
|
package/docs/skills.md
CHANGED
|
@@ -194,6 +194,11 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
194
194
|
| [`devrites-api-interface`](../pack/.claude/skills/devrites-api-interface/SKILL.md) | Design stable API / interface contracts: REST/GraphQL, module boundaries, type contracts, FE/BE split. | A slice crosses a boundary or defines a public interface. |
|
|
195
195
|
| [`devrites-debug-recovery`](../pack/.claude/skills/devrites-debug-recovery/SKILL.md) | Reproduce → ranked hypotheses → instrument → fix in scope → regression-test. Caller and recovery count at most three failures per causal fingerprint from context and Dead ends/evidence. | Tests, builds, or runtime checks fail. |
|
|
196
196
|
|
|
197
|
+
Under Autocomplete, existing parallel capacity spans authorized sequence
|
|
198
|
+
workspaces. It overlaps future planning/re-Vet with isolated, independently
|
|
199
|
+
admitted writers; standalone Build stays scoped. See the
|
|
200
|
+
[global controller](../pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md).
|
|
201
|
+
|
|
197
202
|
### Prove: collect evidence, including browser evidence
|
|
198
203
|
|
|
199
204
|
| Skill | What It Does | Use When |
|
|
@@ -27,11 +27,13 @@ Subcommands:
|
|
|
27
27
|
scaffold <slug> Create gates.md from spec.md AC ids (only when absent)
|
|
28
28
|
status <slug> Reduce the ledger without executing; exit 3 unless ALL MET
|
|
29
29
|
run <slug> [--timeout N] [--transcripts]
|
|
30
|
-
Execute unmet
|
|
30
|
+
Execute unmet gates; reuse unchanged INPUTS evidence
|
|
31
31
|
reverify <slug> [--timeout N] [--transcripts]
|
|
32
|
-
Re-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
Re-run runnable gates except valid unchanged INPUTS proof
|
|
33
|
+
--transcripts requires current approval and complete
|
|
34
|
+
passing executed origins for reuse; recover missing
|
|
35
|
+
origins by executing only affected approved gates.
|
|
36
|
+
New private redacted records: references/gates/<gate-id>/
|
|
35
37
|
lint <slug> [--strict] Audit oracle quality without executing
|
|
36
38
|
precheck <slug> --worktree <path> [--slice <SLICE-ID>]
|
|
37
39
|
Run every RUN: writer gate, then check windows, in
|
|
@@ -160,12 +162,12 @@ func cmdStatus(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
160
162
|
fmt.Fprintf(stderr, "gates status: %v\n", err)
|
|
161
163
|
return ExitBlocked
|
|
162
164
|
}
|
|
163
|
-
return reportStatus(slug, ledgerPath, testPlanPath, stdout, stderr)
|
|
165
|
+
return reportStatus(slug, ledgerPath, testPlanPath, false, stdout, stderr)
|
|
164
166
|
}
|
|
165
167
|
|
|
166
168
|
// reportStatus prints the stable greppable reduction. It returns ExitOK only
|
|
167
|
-
// for a parse-clean ledger with every gate met and
|
|
168
|
-
func reportStatus(slug, ledgerPath, testPlanPath string, stdout, stderr io.Writer) int {
|
|
169
|
+
// for a parse-clean ledger with every gate met, none abandoned and no failed attempt.
|
|
170
|
+
func reportStatus(slug, ledgerPath, testPlanPath string, attemptFailed bool, stdout, stderr io.Writer) int {
|
|
169
171
|
text, err := ReadLedgerFile(ledgerPath)
|
|
170
172
|
if err != nil {
|
|
171
173
|
fmt.Fprintf(stderr, "gates status: %v\n", err)
|
|
@@ -191,7 +193,7 @@ func reportStatus(slug, ledgerPath, testPlanPath string, stdout, stderr io.Write
|
|
|
191
193
|
case reduction.HandoffRequired():
|
|
192
194
|
fmt.Fprintln(stdout, "result: handoff")
|
|
193
195
|
return ExitBlocked
|
|
194
|
-
case !reduction.AllMet():
|
|
196
|
+
case attemptFailed || !reduction.AllMet():
|
|
195
197
|
fmt.Fprintln(stdout, "result: not-met")
|
|
196
198
|
return ExitBlocked
|
|
197
199
|
default:
|
|
@@ -263,12 +265,7 @@ func cmdRun(root string, args []string, reverify bool, stdout, stderr io.Writer)
|
|
|
263
265
|
fmt.Fprintf(stderr, "gates %s: %v\n", verb, err)
|
|
264
266
|
return ExitBlocked
|
|
265
267
|
}
|
|
266
|
-
|
|
267
|
-
if transcripts {
|
|
268
|
-
before = candidateLabel(root, slug)
|
|
269
|
-
}
|
|
270
|
-
var ran []GateResult
|
|
271
|
-
var ranDoc *Document
|
|
268
|
+
attemptFailed := false
|
|
272
269
|
|
|
273
270
|
// The gates lock serializes check execution; the feature lock is held only
|
|
274
271
|
// to read inputs and per writeback, so dispatch and other workspace writers
|
|
@@ -292,15 +289,33 @@ func cmdRun(root string, args []string, reverify bool, stdout, stderr io.Writer)
|
|
|
292
289
|
}
|
|
293
290
|
return nil
|
|
294
291
|
}
|
|
295
|
-
|
|
296
|
-
|
|
292
|
+
options := &RunOptions{WriteLock: featureLock}
|
|
293
|
+
before := ""
|
|
294
|
+
if transcripts {
|
|
295
|
+
options.TranscriptWork = work
|
|
296
|
+
before = candidateLabel(root, slug)
|
|
297
|
+
}
|
|
298
|
+
ran := RunGates(context.Background(), project, ledgerPath, doc, approved, reverify, timeout, options)
|
|
299
|
+
for i, result := range ran {
|
|
300
|
+
if result.Ran && !result.Passed || result.Discarded || result.WriteErr != nil || transcripts && doc.Gates[i].Check != "" && !result.Passed {
|
|
301
|
+
attemptFailed = true
|
|
302
|
+
}
|
|
297
303
|
switch {
|
|
298
304
|
case !result.Ran:
|
|
299
|
-
fmt.Fprintf(stdout, "gate %s: skipped (%s)\n", result.ID, result.Detail)
|
|
305
|
+
fmt.Fprintf(stdout, "gate %s: skipped (%s)\n", transcriptMetadata(result.ID), transcriptMetadata(result.Detail))
|
|
300
306
|
case result.Passed && !result.Discarded && result.WriteErr == nil:
|
|
301
|
-
fmt.Fprintf(stdout, "gate %s: pass\n", result.ID)
|
|
307
|
+
fmt.Fprintf(stdout, "gate %s: pass\n", transcriptMetadata(result.ID))
|
|
302
308
|
default:
|
|
303
|
-
fmt.Fprintf(stdout, "gate %s: fail (%s)\n", result.ID, result.Detail)
|
|
309
|
+
fmt.Fprintf(stdout, "gate %s: fail (%s)\n", transcriptMetadata(result.ID), transcriptMetadata(result.Detail))
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if transcripts {
|
|
313
|
+
paths, err := writeTranscripts(work, doc, ran, before, candidateLabel(root, slug))
|
|
314
|
+
for _, path := range paths {
|
|
315
|
+
fmt.Fprintf(stdout, "transcript: %s\n", path)
|
|
316
|
+
}
|
|
317
|
+
if err != nil {
|
|
318
|
+
return fmt.Errorf("transcript: %w", err)
|
|
304
319
|
}
|
|
305
320
|
}
|
|
306
321
|
return nil
|
|
@@ -309,18 +324,8 @@ func cmdRun(root string, args []string, reverify bool, stdout, stderr io.Writer)
|
|
|
309
324
|
fmt.Fprintf(stderr, "gates %s: %v\n", verb, lockErr)
|
|
310
325
|
return ExitBlocked
|
|
311
326
|
}
|
|
312
|
-
if transcripts && ranDoc != nil {
|
|
313
|
-
paths, err := writeTranscripts(work, ranDoc, ran, before, candidateLabel(root, slug))
|
|
314
|
-
for _, path := range paths {
|
|
315
|
-
fmt.Fprintf(stdout, "transcript: %s\n", path)
|
|
316
|
-
}
|
|
317
|
-
if err != nil {
|
|
318
|
-
fmt.Fprintf(stderr, "gates %s: transcript: %v\n", verb, err)
|
|
319
|
-
return ExitBlocked
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
327
|
fmt.Fprintln(stdout, "---")
|
|
323
|
-
return reportStatus(slug, ledgerPath, testPlanPath, stdout, stderr)
|
|
328
|
+
return reportStatus(slug, ledgerPath, testPlanPath, attemptFailed, stdout, stderr)
|
|
324
329
|
}
|
|
325
330
|
|
|
326
331
|
func cmdLint(root string, args []string, stdout, stderr io.Writer) int {
|
|
@@ -49,7 +49,7 @@ func PreflightRowsPassed(root, slug string, rows []PreflightRow) (bool, error) {
|
|
|
49
49
|
// candidate but the lookup does not compare it: Vet writes workspace artifacts
|
|
50
50
|
// after the run, and only a change to the row's command or cwd retires a pass.
|
|
51
51
|
func PreflightPassed(work string, row PreflightRow) bool {
|
|
52
|
-
dir := filepath.Join(work, "references", "gates",
|
|
52
|
+
dir := filepath.Join(work, "references", "gates", transcriptGateName(PreflightGateID(row)))
|
|
53
53
|
entries, err := os.ReadDir(dir)
|
|
54
54
|
if err != nil {
|
|
55
55
|
return false
|