devrites 7.2.8 → 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 +32 -0
- package/README.md +1 -1
- package/docs/candidate-integrity.md +10 -0
- package/docs/cli.md +7 -1
- package/docs/command-map.md +5 -2
- package/docs/engine/commands.md +28 -4
- package/docs/orchestration.md +26 -13
- package/docs/skills.md +5 -0
- package/engine/internal/acceptance/cli.go +27 -26
- package/engine/internal/acceptance/preconditions.go +1 -1
- package/engine/internal/acceptance/run.go +42 -16
- package/engine/internal/acceptance/transcript.go +236 -45
- package/engine/internal/devritespaths/paths.go +16 -3
- package/engine/internal/gate/gate.go +6 -0
- package/engine/internal/lib/candidate.go +20 -7
- package/engine/internal/lib/candidate_coverage.go +2 -19
- package/engine/internal/lib/closeout.go +16 -4
- package/engine/internal/lib/context.go +64 -45
- package/engine/internal/lib/context_io.go +171 -0
- package/engine/internal/lib/detect.go +8 -8
- package/engine/internal/lib/dispatch.go +2 -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/slicecheck.go +7 -1
- package/engine/internal/lib/taskgraph.go +20 -36
- package/engine/internal/lib/triggers.go +28 -29
- 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/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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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 +1 -1
- 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 +57 -36
- 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
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# One controller, multiple workspace sources
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles. Every phase uses target binding below;
|
|
4
|
+
> Autocomplete owns the global workflow. Standalone Build stays source-local.
|
|
5
|
+
|
|
6
|
+
## Phase target binding
|
|
7
|
+
|
|
8
|
+
For every lifecycle phase and cold handoff, resolve the existing explicit target
|
|
9
|
+
or caller-supplied SOURCE slug first; use `.devrites/ACTIVE` only when neither is
|
|
10
|
+
supplied. All workspace context, cursor, questions, artifact reads/writes, approval,
|
|
11
|
+
candidate bindings and proof belong to that source. A missing source artifact
|
|
12
|
+
routes its prerequisite; it never falls back to another workspace's artifacts.
|
|
13
|
+
An explicit valid workspace does not require ACTIVE to name it or to exist.
|
|
14
|
+
|
|
15
|
+
Carry that source through Spec → Clarify → Temper → Define/Plan → Vet and later
|
|
16
|
+
Build/Converge/Prove/Polish/Review/Seal/Ship entrypoints. Use existing slug arguments
|
|
17
|
+
where supported, including `context <source>` and `handoff <source> --resume`.
|
|
18
|
+
For qid-only `state resolve` (including `--drop`/`--batch`), keep its existing argv
|
|
19
|
+
and bind the call with `DEVRITES_ROOT=<absolute-control>/.devrites` and
|
|
20
|
+
`DEVRITES_WORKSPACE=<absolute-control>/.devrites/work/<source>`. The override is a
|
|
21
|
+
workspace path, not a slug. Apply this environment only to that invocation;
|
|
22
|
+
neither a fabricated resolver slug argument nor process-global environment
|
|
23
|
+
mutation is routing. Use the same source binding for nested recommended answers.
|
|
24
|
+
|
|
25
|
+
Preparing or running an admitted future source preserves the ordered owner's
|
|
26
|
+
ACTIVE and retained writer/controller. Ordinary standalone Spec still sets ACTIVE;
|
|
27
|
+
explicit `--lookahead` still stops at planning/Vet and never becomes a Build root.
|
|
28
|
+
Target binding changes neither phase approval nor Ship authority.
|
|
29
|
+
|
|
30
|
+
## Authority and admission
|
|
31
|
+
|
|
32
|
+
Resolve one controlling root and ordered lifecycle owner. `.devrites/ACTIVE` stays
|
|
33
|
+
on that owner until normal sequence handoff; scheduling a future slice does not
|
|
34
|
+
advance ACTIVE or create a second Build root. One repository-global lease owns
|
|
35
|
+
control-tip mutations. Resume its controller, source identities and retained
|
|
36
|
+
handles before admitting more work; status queried via ACTIVE/source reports the
|
|
37
|
+
actual retained controller even after ordered handoff. Another retained
|
|
38
|
+
controller is not bypassable; no extra cursor pointer is needed.
|
|
39
|
+
|
|
40
|
+
The existing `--parallel N` is one global active-writer cap across all sources:
|
|
41
|
+
explicit invocation value, else AFK `max_parallel`, else retained lease capacity
|
|
42
|
+
on resume, else 10. Explicit 1 means one writer, not one writer per workspace.
|
|
43
|
+
Review queues obey host capacity and existing reviewer caps separately; they never
|
|
44
|
+
erase required specialist accounts.
|
|
45
|
+
|
|
46
|
+
Discover only recorded forward sequence continuations through `sequence_parent`
|
|
47
|
+
and the parent's recorded objectives. Honor `continue_sequence: false`, opening
|
|
48
|
+
budget and human bounded requests. Charge each opening once; reuse prepared
|
|
49
|
+
children and their cursor rather than re-specifying or charging them again.
|
|
50
|
+
An unrelated directory or user-mentioned slug is not automatic enrollment.
|
|
51
|
+
Respect workspace claims: a live lookahead owner retains its artifacts until
|
|
52
|
+
release/terminal reconciliation. Root alone writes workspace artifacts; leaves
|
|
53
|
+
never write `.devrites/**`.
|
|
54
|
+
|
|
55
|
+
For each future slice, native Plan/Vet must have CURRENT approved readiness,
|
|
56
|
+
a complete bound contract and explicit `Workspace dependencies` under
|
|
57
|
+
[canonical slice grammar](workspace-artifact-schema.md#canonical-slice-grammar).
|
|
58
|
+
Plan/Vet checks assumptions, consumed interfaces, shared runtime resources and
|
|
59
|
+
independent slice proof. `none` is a native declaration, never an inference from
|
|
60
|
+
path disjointness, local `Dependencies: none`, planning digests or a green branch.
|
|
61
|
+
Only durably BUILT/integrated producer checkpoints satisfy qualified dependencies;
|
|
62
|
+
validate each producer reference and graph, including safely archived predecessors.
|
|
63
|
+
Cycles, unknown/malformed references and shared unisolated runtime withhold unsafe
|
|
64
|
+
candidates. A waiting producer withholds only its consumers, not unrelated work.
|
|
65
|
+
|
|
66
|
+
Missing declarations in legacy future plans need narrow Plan repair + affected
|
|
67
|
+
Vet before early admission; existing local/standalone plans remain valid. Absent,
|
|
68
|
+
incomplete, stale or human-blocked future work is a planning/repair/blocked
|
|
69
|
+
opportunity, not a fatal pool failure. Retain every readiness reason: fixing stale
|
|
70
|
+
bindings does not waive a coexisting human/access/safety gate. Re-Vet affected
|
|
71
|
+
predecessor assumptions, then record current bindings; never auto-refresh a digest.
|
|
72
|
+
|
|
73
|
+
## Recover avoidable serialization
|
|
74
|
+
|
|
75
|
+
At native Plan/Vet, and when a full global scan leaves writer capacity unused,
|
|
76
|
+
audit the remaining frontier before treating serialization as irreducible:
|
|
77
|
+
|
|
78
|
+
1. Name what each edge consumes: product/interface, integration evidence, shared
|
|
79
|
+
writable path, runtime resource or explicit authority. Sequence/release order
|
|
80
|
+
alone is not a product dependency; current recorded prohibitions still bind.
|
|
81
|
+
2. Recut unstarted work only where an accepted vertical capability is functional,
|
|
82
|
+
independently provable and rollbackable against an already real contract.
|
|
83
|
+
Keep producer edges on actual consumers and dependent integration/proof.
|
|
84
|
+
Consolidate hub edits in their real producer; worktrees alone do not isolate
|
|
85
|
+
shared files, databases, ports, credentials or measurement windows.
|
|
86
|
+
3. Root routes a concrete opportunity through native Plan and the canonical
|
|
87
|
+
[Reslice classifier](standards/acceptance-preserving-reslice.md), preserving
|
|
88
|
+
every acceptance meaning, prohibition, semantic link and proof obligation.
|
|
89
|
+
Carry the blocked edge/resource and proposed independent cut into the drafter
|
|
90
|
+
packet. Invalidate readiness, obtain affected Vet, then reselect; a proposed
|
|
91
|
+
split or green branch is not admission authority.
|
|
92
|
+
4. Freeze admissions to affected sources during repair. Preserve built and leased
|
|
93
|
+
slice identities/contracts; drain/reconcile affected workers before publishing
|
|
94
|
+
a repair that changes their inputs. Unrelated source planning/writers continue.
|
|
95
|
+
5. Preserve human/safety/access/resource gates and explicit planning-only bounds.
|
|
96
|
+
Classify any authority change through its owning decision; never replace an
|
|
97
|
+
explicit prohibition with inferred permission or create placeholder slices.
|
|
98
|
+
|
|
99
|
+
Completion: either admit a currently approved independent cut, or retain
|
|
100
|
+
`Serial rationale: <consumed contract/resource/authority; next unblock event>`
|
|
101
|
+
in affected `tasks.md` slice blocks only when normal Plan write authority permits; otherwise
|
|
102
|
+
report the existing blocker without planning writes. Revisit after relevant
|
|
103
|
+
inputs change, not merely because capacity remains unused. Target width never
|
|
104
|
+
justifies extra architecture, acceptance loss, premature proof or repeatedly
|
|
105
|
+
reslicing unchanged work.
|
|
106
|
+
|
|
107
|
+
## Continuous global frontier
|
|
108
|
+
|
|
109
|
+
At entry, each landing, planning/review return and before any wait or final reply:
|
|
110
|
+
|
|
111
|
+
1. Re-read controller lease, per-source state/questions/readiness and authorized
|
|
112
|
+
sequence. Scan all stages, not only the owner's next local slice. While writers
|
|
113
|
+
run, root advances authorized Spec → Clarify → Temper → Define/Plan → Vet,
|
|
114
|
+
including narrow repair/re-Vet of prepared targets, under unchanged approval
|
|
115
|
+
and safety rules. Missing human authority blocks that target, not safe siblings.
|
|
116
|
+
If an explicit/AFK capacity change differs from retained capacity, reconcile it
|
|
117
|
+
before selection using `parallel add --root <repo> --slug <controller> --cap N --json -`
|
|
118
|
+
with stdin `[]`. This changes capacity only, not workers or a complete lease's
|
|
119
|
+
status. A decrease below active count refuses: pause admissions and drain to
|
|
120
|
+
the requested count, then retry; never cancel workers to meet a lower cap.
|
|
121
|
+
A pending landing is recovery, not free capacity: retry the exact recorded
|
|
122
|
+
integrate before admission; unrelated HEAD/ref movement remains blocked.
|
|
123
|
+
2. Query the mixed pool in stable sequence order, controller first (the ordered
|
|
124
|
+
ACTIVE owner may now differ):
|
|
125
|
+
`devrites-engine parallel select --root <repo> --slug <controller> --from-plan --workspaces <controller,authorized-source,...> --cap N`.
|
|
126
|
+
`--workspaces` is an internal data-source parameter, not a user feature flag.
|
|
127
|
+
Read all notices and route repair/waits to their source. Existing running slots
|
|
128
|
+
and paths seed selection globally. Zero new picks with live writers means keep
|
|
129
|
+
planning/reviewing or wait, not Prove for those unfinished sources.
|
|
130
|
+
3. Preflight selected slices against their SOURCE workspace with Build's normal
|
|
131
|
+
slice/readiness/precondition, exact-path and runtime-isolation gates. Early
|
|
132
|
+
foreign Build always uses isolated workers. For cap>1 on a capable host,
|
|
133
|
+
isolate even the first lone local writer, so later sources can refill. Persist
|
|
134
|
+
`--cap N` on create/add. With a retained lease, add even one pick; a complete
|
|
135
|
+
retained lease can reopen only at unchanged control tip. After cleanup,
|
|
136
|
+
create a new batch from current control. Never start another controller.
|
|
137
|
+
Unsupported isolation uses truthful serial owner dispatch and ordinary ordered
|
|
138
|
+
handoff, never early same-tree foreign Build or concurrent same-worktree writers.
|
|
139
|
+
4. Launch every selected native writer before waiting on any; keep scheduling
|
|
140
|
+
planning and independent review while they run. Land each individually green
|
|
141
|
+
sibling through Build review/proof and `parallel integrate --slice <key>`;
|
|
142
|
+
refill immediately from the whole authorized pool. A red sibling repairs in
|
|
143
|
+
place and holds its slot/paths; it does not delay independent green landings.
|
|
144
|
+
Never satisfy a producer edge on writer return or green-but-unlanded work.
|
|
145
|
+
After worker-bound review/proof and source bookkeeping finish, prune only
|
|
146
|
+
verified clean integrated checkouts with `parallel prune --root <repo>
|
|
147
|
+
--slug <controller>`. Retain transfer refs/lease identities; dirty or ignored
|
|
148
|
+
data stays with its reported recovery path and does not justify forced deletion.
|
|
149
|
+
|
|
150
|
+
## Identity, dispatch and proof
|
|
151
|
+
|
|
152
|
+
Mixed JSON uses `{"slices":[{"id":"SLICE-001","paths":["src/child.go"],"workspace":"child"}]}`.
|
|
153
|
+
Omitted workspace means controller; explicit controller normalizes to that lane.
|
|
154
|
+
Lease targeting uses bare `SLICE-001` only for controller, `child/SLICE-001` for
|
|
155
|
+
foreign sources. Duplicate local IDs across sources remain distinct typed keys.
|
|
156
|
+
Use the lease's worktree/branch paths, not hand-built namespaces.
|
|
157
|
+
|
|
158
|
+
Controller slug owns `parallel create/add/status/record-green/integrate/prune/cleanup`.
|
|
159
|
+
SOURCE slug owns `context`, `packet`, `dispatch open/start/return`, slice checks,
|
|
160
|
+
candidate freeze, proof, repair, evidence and bookkeeping. Open source-local waves
|
|
161
|
+
with local roles `slice-wright.<SLICE-ID>` and local `--slice <SLICE-ID>`; no slash
|
|
162
|
+
in a dispatch role. Start every source wave before first wait. Root explicitly
|
|
163
|
+
supplies source slug, absolute worktree cwd, base and exact native profile to every
|
|
164
|
+
writer/reviewer. Writer profile is `devrites-slice-wright`, never a suffixed or
|
|
165
|
+
generic profile; reviewers use exact workflow-named `devrites-*` profiles in fresh
|
|
166
|
+
read-only context. Labels/handles are not proof of native profile selection.
|
|
167
|
+
Linked worktrees use `DEVRITES_ROOT=<control>/.devrites` for metadata, not source cwd.
|
|
168
|
+
|
|
169
|
+
Run controller/global commands in a per-invocation environment without inherited
|
|
170
|
+
worker `DEVRITES_WORKSPACE`; source calls use explicit source slug and control
|
|
171
|
+
`DEVRITES_ROOT` in a source-bound environment, never another source's override.
|
|
172
|
+
Never mutate process-global environment or ACTIVE to route a call.
|
|
173
|
+
|
|
174
|
+
Freeze/review/prove each source slice in its own worktree/candidate window under
|
|
175
|
+
Build's full required inventory, affected rechecks and repair rules. After landing,
|
|
176
|
+
write `WIP(<source>):` with human summary, union only that source's paths into its
|
|
177
|
+
manifest, persist checked BUILT/evidence and charge once there. Run source-local
|
|
178
|
+
regression checks on resume and ratchet only after durable green advance. Neither
|
|
179
|
+
controller bookkeeping nor sibling proof closes a child's acceptance.
|
|
180
|
+
|
|
181
|
+
## Lifecycle closeout and Ship
|
|
182
|
+
|
|
183
|
+
Prove/Polish/Review/Seal remain per workspace with fresh candidate bindings. Shared
|
|
184
|
+
durable Polish outputs serialize; source changes invalidate affected evidence.
|
|
185
|
+
Before any non-lease product correction, shared durable Polish write or control
|
|
186
|
+
checkpoint, freeze new writer admissions, drain/reconcile retained writers, land
|
|
187
|
+
safe green work and cleanup the lease. Preserve blocked work; never force-clean
|
|
188
|
+
it merely to advance a phase. Perform phase-owned correction/proof/checkpoint,
|
|
189
|
+
then resume the pool from new HEAD. Never accept unrelated commits as expected
|
|
190
|
+
ControlTip or invent phase slices. Read-only frozen proof/review and planning-only
|
|
191
|
+
`.devrites` repair may overlap writers; none may mutate the leased product/control tip.
|
|
192
|
+
Normal ordered handoff reuses the same controller and prepared child cursor.
|
|
193
|
+
Never archive controller/source while retained lease owns it; clean up owned
|
|
194
|
+
workers first, preserving salvage and unknown outcomes.
|
|
195
|
+
|
|
196
|
+
Early child WIPs can interleave with parent WIPs. Parent-only Ship must not absorb
|
|
197
|
+
those commits as if parent alone were sealed. Deferred release waits for every
|
|
198
|
+
participating sequence member's final proof/Review/Seal, uses engine-generated
|
|
199
|
+
release union manifest and re-proves affected cross-workspace acceptance. Disclose
|
|
200
|
+
all participating checkpoints in the exact Git plan, verify unchanged candidate
|
|
201
|
+
and staged bytes, then require fresh literal `GO` plus native approval. Parallelism
|
|
202
|
+
grants no push/tag/deploy authority and never broadens an earlier Ship approval.
|
|
@@ -118,18 +118,15 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
118
118
|
`/rite-autocomplete` recovers agent-owned Seal `NO-GO` per
|
|
119
119
|
[stop-conditions.md](../../../rite-autocomplete/reference/stop-conditions.md), not a handoff.
|
|
120
120
|
|
|
121
|
-
`max_parallel` is the unattended default
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
leftover `max_parallel: 1
|
|
130
|
-
Unattended runs take the largest eligible set ≤ that cap and recompute after
|
|
131
|
-
every completed round (serial slice or parallel integrate)
|
|
132
|
-
([parallel-batch.md § Dynamic selection and re-batching](../../../rite-build/reference/parallel-batch.md#dynamic-selection-and-re-batching)).
|
|
121
|
+
`max_parallel` is the unattended default writer cap when this invocation omits
|
|
122
|
+
`--parallel N`; explicit N wins and Autocomplete writes/replaces only that field.
|
|
123
|
+
Build's explicit flag wins without rewriting the sentinel. Never write
|
|
124
|
+
`max_slices` from `--max-slices`. Autocomplete uses one cap across all authorized
|
|
125
|
+
sources, including explicit 1, under the shared root-only
|
|
126
|
+
[`workspace controller`](../parallel-workspaces.md); standalone Build stays local.
|
|
127
|
+
Unattended runs recompute after each landing and planning/review return, not only
|
|
128
|
+
after a batch completes. **Failing case:** `/rite-autocomplete --parallel 5`
|
|
129
|
+
honors leftover `max_parallel: 1`, or grants five writers per workspace.
|
|
133
130
|
|
|
134
131
|
## Unattended resource envelope
|
|
135
132
|
|
|
@@ -72,7 +72,7 @@ Only that bounded writer may edit its exact project-relative source/test paths;
|
|
|
72
72
|
workspace writes, scope widening, or second writer. Root remains source/test nonwriter.
|
|
73
73
|
This exception grants no additional tools, permissions, phase, agent-launch, or Git authority.
|
|
74
74
|
|
|
75
|
-
Isolated-worktree pilot
|
|
75
|
+
Isolated-worktree pilot follows [`wright-dispatch.md`](../../../rite-build/reference/wright-dispatch.md#isolated-writer-worktree-pilot); sanctioned parallel work follows [`parallel-batch.md`](../../../rite-build/reference/parallel-batch.md) and Autocomplete's shared [`workspace controller`](../parallel-workspaces.md), never same-tree co-writers or weaker exact-path admission. Root may materialize only exact Vet-ready workflow-artifact paths per [`workflow-artifacts.md`](workflow-artifacts.md) — not a writer dispatch or candidate mutation.
|
|
76
76
|
|
|
77
77
|
Each job gets objective/exclusions, exact paths/immutable candidate, rubric/result shape, a **stop condition** (when to return), and the exact result shape; a dispatch missing them is malformed and re-issued. Briefs MUST NOT seed verdict/severity cap/conclusion/suppression. Results state status/scope, outcome, commands/escalation; wright adds paths, changed files, gates, stood decisions; results never widen scope.
|
|
78
78
|
|
|
@@ -47,7 +47,7 @@ Required review rosters and final proof remain. Preserve protected history uncha
|
|
|
47
47
|
a compact current view references originals without omitting active requirements.
|
|
48
48
|
|
|
49
49
|
**Compaction fallback:** after compaction or a resumed session, always run
|
|
50
|
-
`devrites-engine handoff
|
|
50
|
+
`devrites-engine handoff <source> --resume` first for the selected source per [phase target binding](../parallel-workspaces.md#phase-target-binding) — one
|
|
51
51
|
deterministic resume record reduced from durable artifacts (cursor, `awaiting_human`,
|
|
52
52
|
open `questions.md` gates, the `gates.md` reduction with unmet/stale ids,
|
|
53
53
|
`decisions.md` dead ends, in-flight dispatch waves, and the read-next order over
|
|
@@ -65,11 +65,18 @@ their optional `Run at` cell, writing the same transcripts.
|
|
|
65
65
|
Execution contract: the command runs through the platform shell in the named
|
|
66
66
|
directory with a bounded timeout; pass requires exit 0 **and** output matching
|
|
67
67
|
EXPECT. Without `--transcripts`, output is captured but never persisted, only its
|
|
68
|
-
digest. `--transcripts` writes
|
|
69
|
-
`references/gates/<gate-id
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
`OUTPUT_SHA256`
|
|
68
|
+
digest. `--transcripts` atomically writes a private v2 executed record under
|
|
69
|
+
`references/gates/<gate-id>/`, or returns a verified original record for reuse
|
|
70
|
+
without rewriting its historical candidate labels. Metadata and output mask
|
|
71
|
+
known credential shapes; output is capped at 1 MiB. `DEFINITION_SHA256` binds the
|
|
72
|
+
oracle, `OUTPUT_SHA256`/`OUTPUT_BYTES` describe original output, and the final
|
|
73
|
+
`TRANSCRIPT_SHA256` hashes all preceding record bytes for drift detection.
|
|
74
|
+
Do not rehash redacted/truncated output as though it were original output.
|
|
75
|
+
Reuse requires a complete passing executed origin matching current definition,
|
|
76
|
+
output identity and declared inputs, plus current command approval. Missing,
|
|
77
|
+
corrupt, legacy v1 or reuse-only records rerun only affected approved checks;
|
|
78
|
+
missing approval blocks even when an old checkbox remains met. A record checksum
|
|
79
|
+
detects drift; it is not a signature or proof of honest execution.
|
|
73
80
|
|
|
74
81
|
After Vet READY the runnable set is fixed: converting a runnable gate to manual,
|
|
75
82
|
loosening EXPECT, changing CHECK or CWD, adding or narrowing INPUTS, or removing
|
|
@@ -115,10 +122,12 @@ devrites-engine gates attest <slug> <id> <note> record human evidence on a man
|
|
|
115
122
|
devrites-engine gates abandon <slug> <id> <why> record a terminal ABANDON handoff
|
|
116
123
|
```
|
|
117
124
|
|
|
118
|
-
Run/reverify
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
Run/reverify serialize execution, origin lookup and transcript publication under
|
|
126
|
+
the gates lock; the feature lock is held only for input acquisition and ledger
|
|
127
|
+
writeback. Results whose gate definition moved are discarded. Unchanged declared
|
|
128
|
+
inputs may reuse proof even under reverify; a reused result is never execution.
|
|
129
|
+
If non-file prerequisites changed or proof is doubtful, invalidate affected
|
|
130
|
+
automatic evidence through the single-writer protocol before approved rerun.
|
|
122
131
|
|
|
123
132
|
## Oracle quality (`gates lint`)
|
|
124
133
|
|
|
@@ -223,6 +223,7 @@ SLA: <15m | 4h | 24h | none>
|
|
|
223
223
|
Checkpoint: <question + why it needs unavailable pre-code evidence or action-time approval | none>
|
|
224
224
|
Dependencies: <SLICE-### (via <interface it consumes>) list | none>
|
|
225
225
|
depends_on: [<SLICE-### IDs>]
|
|
226
|
+
Workspace dependencies: <none | comma-separated <workspace-slug>/SLICE-### producer refs>
|
|
226
227
|
Consumes / Produces: <interfaces read and exposed>
|
|
227
228
|
Known-Gotchas: <ordering hazards and framework footguns | none>
|
|
228
229
|
Prior-slice learnings: <constraints learned earlier | none>
|
|
@@ -245,6 +246,15 @@ Done condition: <checkable, exhaustive completion criterion>
|
|
|
245
246
|
|
|
246
247
|
`depends_on` is the machine-readable mirror of `Dependencies`; keep the sets
|
|
247
248
|
identical and cycle-free. Each dependency names what crosses it (`check task-graph` advises).
|
|
249
|
+
`Workspace dependencies` records cross-workspace producer prerequisites, separate
|
|
250
|
+
from local `Dependencies`/`depends_on`. Define/Plan writes it after native interface,
|
|
251
|
+
assumption, runtime-resource and proof-independence review; Vet approves the current
|
|
252
|
+
bound declaration. `none` is explicit, not inferred from paths or local edges.
|
|
253
|
+
Only durably BUILT/integrated producer checkpoints satisfy refs, including valid
|
|
254
|
+
archived predecessors; unknown/malformed refs or cycles withhold unsafe work.
|
|
255
|
+
Missing field on a legacy future plan requires narrow Plan/Vet repair before
|
|
256
|
+
early admission, not rejection of existing local/standalone execution. The global
|
|
257
|
+
controller procedure lives only in [`parallel-workspaces.md`](parallel-workspaces.md).
|
|
248
258
|
Define and `/rite-plan` repair write `Prior-slice learnings`, folding Build's
|
|
249
259
|
`decisions.md` carry-forward constraints; Build never edits `tasks.md`. `Gate`, `SLA`, and `Checkpoint` are required for HITL
|
|
250
260
|
slices; use `none` when they do not apply. Complexity above 3 triggers reslicing
|
|
@@ -5,7 +5,7 @@ argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full]
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase autocomplete` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -86,7 +86,7 @@ With `--lookahead` (trigger `lookahead`), follow
|
|
|
86
86
|
[`lookahead.md`](reference/lookahead.md) instead of the steps below: plan the
|
|
87
87
|
next sequence continuation through Vet in a second session, then stop.
|
|
88
88
|
|
|
89
|
-
1. **Orient and parse.** Resolve
|
|
89
|
+
1. **Orient and parse.** Resolve source per [phase target binding](../devrites-lib/reference/parallel-workspaces.md#phase-target-binding); when a workspace exists,
|
|
90
90
|
require its `state.md` and read its cursor; a fresh idea starts empty at step 2.
|
|
91
91
|
Before honoring `blocked` with terminal `next_action`,
|
|
92
92
|
reconcile retained consumptive evidence and fingerprint attempts from
|
|
@@ -96,7 +96,7 @@ next sequence continuation through Vet in a second session, then stop.
|
|
|
96
96
|
Reconstruct a missing return cursor only from
|
|
97
97
|
the current phase and exact approved action in `test-plan.md`/evidence, never
|
|
98
98
|
from chat. After compaction or a resumed session, always run `devrites-engine
|
|
99
|
-
handoff <
|
|
99
|
+
handoff <source> --resume` first for that selected source and open only the
|
|
100
100
|
`read_next` artifacts it names, per [`context-hygiene.md`](../devrites-lib/reference/standards/context-hygiene.md) § Compaction fallback.
|
|
101
101
|
Normalize current arguments to idea, `ship_preflight: yes|no`,
|
|
102
102
|
`max_slices: unlimited`, `parallel: N|default`, `profile: standard|full`,
|
|
@@ -118,13 +118,16 @@ next sequence continuation through Vet in a second session, then stop.
|
|
|
118
118
|
`/rite-build` batch loop → `/rite-prove` → `/rite-polish` →
|
|
119
119
|
`/rite-review` → `/rite-seal`. Read and execute each skill; durable files, not
|
|
120
120
|
chat, carry state. Apply the mutable post-vet budget before first Build.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
`--parallel N
|
|
121
|
+
Execute [`parallel-workspaces.md`](../devrites-lib/reference/parallel-workspaces.md):
|
|
122
|
+
continuously scan the authorized recorded sequence across stages, preparing
|
|
123
|
+
and re-Vetting future targets while writers run. Build queries the global
|
|
124
|
+
pool with `parallel select --from-plan --slug <controller> --workspaces
|
|
125
|
+
<controller,authorized-source,...> --cap N`; N is explicit `--parallel N`, else
|
|
126
|
+
sentinel `max_parallel`, else 10 — one global writer cap, including explicit 1.
|
|
127
|
+
Always pass resolved `--parallel N` to Build. Cap>1 uses an isolated first
|
|
128
|
+
writer even when initially alone; refill globally per landing and planning/
|
|
129
|
+
review return. Unsupported host stays serial. No local ready slice is not
|
|
130
|
+
completion while authorized planning, repair/re-Vet or independent work remains.
|
|
128
131
|
**Completion:** loop reaches Seal GO or persists a valid stop before any later phase.
|
|
129
132
|
5. **Apply stops.** At every gate use
|
|
130
133
|
[stop-conditions.md](reference/stop-conditions.md). A `blocked` label alone is not a stop condition:
|
|
@@ -19,15 +19,15 @@ Exit 3: held, stop. Re-add the same session each phase. Release with `devrites-e
|
|
|
19
19
|
|
|
20
20
|
## Rules
|
|
21
21
|
|
|
22
|
-
-
|
|
22
|
+
- Preserve the ordered owner's `.devrites/ACTIVE`; bind every phase and handoff to the target per shared [phase target binding](../../devrites-lib/reference/parallel-workspaces.md#phase-target-binding).
|
|
23
23
|
- After the workspace exists, run `devrites-engine state set <target> sequence_lookahead=yes`.
|
|
24
24
|
- Run Spec → Clarify → Temper → Define → Plan → Vet. Define and Plan read the predecessor tree and plan. Record one assumption per predecessor interface used.
|
|
25
25
|
- At Vet record `Predecessor readiness: <active-slug> <digest>` in `eng-review.md` (the `--emit-binding` hex). A later planning change blocks `DRV-GATE-READINESS-STALE`; re-vet before Build.
|
|
26
|
-
-
|
|
26
|
+
- This explicit second session stays planning-only: no Build, product source/tests, commits or `.devrites/AFK` writes, even after predecessor Seal. Main controller may later consume the prepared target under [`parallel-workspaces.md`](../../devrites-lib/reference/parallel-workspaces.md); its sanctioned isolated Build is not a second same-tree writer. Acceptance, scope and irreversible risk still stop.
|
|
27
27
|
- No spawn tool is not gate `access` or `awaiting_human`. Root writes Define and Plan. No Vet `READY` until those roles are admitted; else stop `running`, `next_action: /rite-vet`.
|
|
28
28
|
- On every entry, re-read `state.md` and `questions.md`. Do not report a stop from chat. `continuation: clear` with `awaiting_human` is not done: fold resolved decisions into the spec, then continue. An except-principle or change-the-spec question complies: change the spec and resolve it. Ask only when the approved objective cannot comply.
|
|
29
|
-
- Stop at Vet `READY` with `next_action: build
|
|
29
|
+
- Stop at Vet `READY` with `next_action: /rite-build <target>` as a cursor for the main controller (not permission for this lookahead session to Build), at a real human gate, or when the lease is lost. Release the planning claim so the main controller can recheck/admit it.
|
|
30
30
|
|
|
31
|
-
**Failing case:**
|
|
31
|
+
**Failing case:** lookahead session starts Build; main controller is blanket-blocked until predecessor Seal despite current native independent admission; or Define/Plan/Vet are skipped because predecessor is still Build. Missing strategy-reviewer spawn is not gate `access`.
|
|
32
32
|
|
|
33
33
|
**Failing case:** stops to except a principle the spec can avoid.
|
|
@@ -16,7 +16,7 @@ allow_gates: [advisory, validating]
|
|
|
16
16
|
# max_slices / max_agents / max_minutes / max_review_queue omitted: unlimited
|
|
17
17
|
# continue_sequence: false # opt out; default chains after Seal GO
|
|
18
18
|
# max_workspaces: 5 # sequence budget when chaining
|
|
19
|
-
# max_parallel: 10 # default
|
|
19
|
+
# max_parallel: 10 # fresh-run default; preserve retained lease capacity on cold resume; explicit `--parallel N` rewrites only this field
|
|
20
20
|
# max_tokens: <N>
|
|
21
21
|
# max_cost_usd: <amount>
|
|
22
22
|
# notify: "<cmd>"
|
|
@@ -28,7 +28,10 @@ when this invocation contains `--parallel N`: then write or replace only
|
|
|
28
28
|
malformed. Do not stop because it names `max_slices` / `max_agents` /
|
|
29
29
|
`max_minutes` / `max_review_queue` or only `[advisory]`. If absent, write it
|
|
30
30
|
once after clarity, and include `max_parallel: N` when that flag is present.
|
|
31
|
-
|
|
31
|
+
Without the flag, seed a newly created sentinel from retained global lease capacity
|
|
32
|
+
when present; otherwise use fresh-run default 10. Never replace a valid existing
|
|
33
|
+
sentinel's capacity from lease/default. Never write `max_slices` from `--max-slices`.
|
|
34
|
+
It is otherwise read-only: never rewrite it after Vet or reset it on resume. Leftover `expires_at` is ignored
|
|
32
35
|
and never rewritten. **Failing case:** leftover `max_parallel: 1` keeps the run
|
|
33
36
|
serial after `--parallel 5`.
|
|
34
37
|
|
|
@@ -64,7 +67,7 @@ Workspace files, not chat, carry state. Read/execute each phase skill:
|
|
|
64
67
|
| 3 | `/rite-temper` | harden or reduce; `expand` and extra acceptance stop for a human; irreversible risk still pauses |
|
|
65
68
|
| 4 | `/rite-define` | approved plan/tasks/traceability |
|
|
66
69
|
| 5 | `/rite-vet` | every plan; derive mutable budget after READY |
|
|
67
|
-
| 6 | `/rite-build`
|
|
70
|
+
| 6 | `/rite-build` global frontier | execute [shared controller workflow](../../devrites-lib/reference/parallel-workspaces.md); scan authorized stages and repair/re-Vet while writers run, refill per landing under one global cap; charge each source once per landed slice |
|
|
68
71
|
| 7 | `/rite-prove` | all slices built except deferred (`Satisfies: none`); approved proof; recovery on red |
|
|
69
72
|
| 8 | `/rite-polish` | re-prove after code edits |
|
|
70
73
|
| 9 | `/rite-review` | in-scope correction then fresh proof |
|
|
@@ -72,7 +75,7 @@ Workspace files, not chat, carry state. Read/execute each phase skill:
|
|
|
72
75
|
| 11 | `/rite-ship` | only after GO; `--ship` never authorizes Git; stop at literal-GO/native approval |
|
|
73
76
|
|
|
74
77
|
Check [stop-conditions.md](stop-conditions.md) before advancing. Discard stale
|
|
75
|
-
pass evidence after source edits. Re-read
|
|
78
|
+
pass evidence after source edits. Re-read the selected source before each phase per [phase target binding](../../devrites-lib/reference/parallel-workspaces.md#phase-target-binding). On a cold resume or
|
|
76
79
|
new activation, run `devrites-engine check regression <slug>`: `BLOCKED` names a
|
|
77
80
|
durable fact lost since the last checkpoint — restore or route it through its
|
|
78
81
|
owning phase before continuing; `unproven` does not block. After each phase's
|
|
@@ -89,11 +92,12 @@ step 10 does not end the run: leave the sealed workspace unshipped with its
|
|
|
89
92
|
(`/rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
|
|
90
93
|
and re-enter step 1. Spend one workspace per opened continuation.
|
|
91
94
|
|
|
92
|
-
For
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
For an already prepared child, do not re-specify. Follow
|
|
96
|
+
[`parallel-workspaces.md`](../../devrites-lib/reference/parallel-workspaces.md)
|
|
97
|
+
while the owner is still running: honor claims, repair/re-Vet stale readiness,
|
|
98
|
+
and admit only explicitly independent/dependency-satisfied isolated work.
|
|
99
|
+
ACTIVE changes to the child only at normal ordered handoff after the owner Seal;
|
|
100
|
+
resume its durable cursor without a second controller or another opening charge.
|
|
97
101
|
|
|
98
102
|
Before invoking a continuation, require durable `state.md`
|
|
99
103
|
`sequence_workspaces_remaining > 0`; if absent, first write
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-build
|
|
3
|
-
description: Build the next approved vertical slice with evidence. HITL one-slice default; AFK/autocomplete
|
|
3
|
+
description: Build the next approved vertical slice with evidence. HITL one-slice default; AFK/autocomplete refill eligible isolated work under --parallel N, one global writer cap under Autocomplete.
|
|
4
4
|
argument-hint: "[--parallel N] [slice number or name]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/agents.md","rite-build/reference/phase-contract.md","rite-build/reference/one-slice-cycle.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/spec-drift-guard.md","rite-build/reference/output.md","rite-build/reference/anti-patterns.md"],"rootOnly":["devrites-lib/reference/standards/code-index.md","rite-build/reference/phase-contract.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/output.md","rite-build/reference/afk-discipline.md","rite-build/reference/checkpoint-protocol.md","rite-build/reference/parallel-batch.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/workflow-artifacts.md"],"triggers":{"afk":["rite-build/reference/afk-discipline.md","devrites-lib/reference/standards/afk-hitl.md","rite-build/reference/checkpoint-protocol.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"coding":["devrites-lib/reference/standards/coding-style.md"],"debug-recovery":["devrites-lib/reference/standards/debug-recovery.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"parallel":["rite-build/reference/parallel-batch.md"],"patterns":["devrites-lib/reference/standards/patterns.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"tdd":["rite-build/reference/tdd.md","devrites-lib/reference/standards/testing.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","strategy.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"slice-wright":["brief.md","spec.md","architecture.md","plan.md","tasks.md","test-plan.md","state.md","decisions.md","assumptions.md","questions.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md"]}} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/agents.md","rite-build/reference/phase-contract.md","rite-build/reference/one-slice-cycle.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/spec-drift-guard.md","rite-build/reference/output.md","rite-build/reference/anti-patterns.md"],"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/parallel-workspaces.md","rite-build/reference/phase-contract.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/output.md","rite-build/reference/afk-discipline.md","rite-build/reference/checkpoint-protocol.md","rite-build/reference/parallel-batch.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/workflow-artifacts.md"],"triggers":{"afk":["rite-build/reference/afk-discipline.md","devrites-lib/reference/standards/afk-hitl.md","rite-build/reference/checkpoint-protocol.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"coding":["devrites-lib/reference/standards/coding-style.md"],"debug-recovery":["devrites-lib/reference/standards/debug-recovery.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"parallel":["rite-build/reference/parallel-batch.md","devrites-lib/reference/parallel-workspaces.md"],"patterns":["devrites-lib/reference/standards/patterns.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"tdd":["rite-build/reference/tdd.md","devrites-lib/reference/standards/testing.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","strategy.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"slice-wright":["brief.md","spec.md","architecture.md","plan.md","tasks.md","test-plan.md","state.md","decisions.md","assumptions.md","questions.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md"]}} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase build` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -80,12 +80,14 @@ Wright applies anti-slop; root verifies returns and never patches source. Refuse
|
|
|
80
80
|
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Vet-ready admitted bytes require root authorship outside product wright","action":"ROOT_TRANSACTION; root writes only admitted .devrites/** targets","return":"saved Build slice cursor; wright product allowlist unchanged"} -->
|
|
81
81
|
## `--parallel N` (opt-in)
|
|
82
82
|
|
|
83
|
-
HITL default/explicit `1` ≡ serial; AFK inherits cap.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
Standalone HITL default/explicit `1` ≡ serial; AFK inherits cap. Under
|
|
84
|
+
Autocomplete, read and execute shared root-only
|
|
85
|
+
[`parallel-workspaces.md`](../devrites-lib/reference/parallel-workspaces.md)
|
|
86
|
+
(trigger `parallel`, including global cap 1): controller/source routing,
|
|
87
|
+
authorized pool, isolated first writer and continuous repair/re-Vet/refill.
|
|
88
|
+
Standalone Build remains local. `2`–`10` is a cap, not a quota; eligible
|
|
89
|
+
path-disjoint work refills after each landing
|
|
90
|
+
([`parallel-batch.md`](reference/parallel-batch.md#dynamic-selection-and-re-batching)).
|
|
89
91
|
Unattended runs (`/rite-autocomplete`, `.devrites/AFK` `max_parallel`) refill
|
|
90
92
|
inside the same run; HITL stops after each landing. This invocation's `--parallel N`
|
|
91
93
|
is the cap: leftover sentinel `max_parallel` is not consulted. Autocomplete with
|
|
@@ -102,8 +104,9 @@ a human `Fix`. Exhausted repair blocks and preserves everything;
|
|
|
102
104
|
`cleanup --force` salvages slice branches before removing worktrees —
|
|
103
105
|
human-gated to abandon a batch, orchestrator-emitted only as the salvage
|
|
104
106
|
step of an automatic frozen-lease re-batch.
|
|
105
|
-
AFK charges per landed sibling only.
|
|
106
|
-
|
|
107
|
+
AFK charges per landed sibling only. A retained lease resumes through its
|
|
108
|
+
controller; it blocks a competing Build root, not controller-owned source dispatch.
|
|
109
|
+
Details: `parallel-batch.md`.
|
|
107
110
|
|
|
108
111
|
## Execute and reply
|
|
109
112
|
|
|
@@ -110,7 +110,7 @@ the hook receives:
|
|
|
110
110
|
| `DEVRITES_QID` | the new qid (e.g. `q-2026-05-28-001`) |
|
|
111
111
|
| `DEVRITES_GATE` | `advisory` / `validating` / `blocking` / `escalating` |
|
|
112
112
|
| `DEVRITES_SLICE` | `<N — name>` |
|
|
113
|
-
| `DEVRITES_SLUG` |
|
|
113
|
+
| `DEVRITES_SLUG` | source feature slug |
|
|
114
114
|
| `DEVRITES_QUESTION` | the checkpoint text |
|
|
115
115
|
| `DEVRITES_PROPOSED` | the proposed answer |
|
|
116
116
|
|
|
@@ -70,7 +70,7 @@ After a crash, a fresh session may read the last `WIP(<slug>)` body as crash con
|
|
|
70
70
|
Authoritative state remains in `.devrites/`: validate the body against that workspace;
|
|
71
71
|
never reconstruct or advance state from the commit body. Reload per
|
|
72
72
|
[`context-hygiene.md`](../../devrites-lib/reference/standards/context-hygiene.md)
|
|
73
|
-
(
|
|
73
|
+
(source-local `state.md`, `questions.md`, `decisions.md`, `test-plan.md`/`evidence.md`).
|
|
74
74
|
|
|
75
75
|
## Collapse at ship
|
|
76
76
|
WIP commits are scratch and never reach shared history. `/rite-ship` folds them into the
|