devrites 6.9.6 → 7.0.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 +25 -0
- package/README.md +10 -5
- package/SECURITY.md +3 -3
- package/docs/adr/0038-engine-flags-unattributed-root-edits.md +67 -0
- package/docs/adr/README.md +2 -1
- package/docs/cli.md +19 -6
- package/docs/command-map.md +21 -19
- package/docs/engine/commands.md +22 -15
- package/docs/skills.md +1 -1
- package/docs/usage.md +3 -3
- package/engine/commands.go +8 -3
- package/engine/help.go +43 -16
- package/engine/internal/acceptance/approve.go +46 -7
- package/engine/internal/acceptance/cli.go +102 -0
- package/engine/internal/acceptance/exec.go +8 -6
- package/engine/internal/acceptance/ledger.go +16 -1
- package/engine/internal/acceptance/lint.go +9 -1
- package/engine/internal/acceptance/preconditions.go +201 -0
- package/engine/internal/anchor/anchor.go +76 -0
- package/engine/internal/gate/drivers.go +144 -0
- package/engine/internal/gate/gate.go +49 -13
- package/engine/internal/gate/preconditions.go +121 -0
- package/engine/internal/lib/anchors.go +270 -0
- package/engine/internal/lib/apply_bundle.go +2 -1
- package/engine/internal/lib/candidate.go +17 -8
- package/engine/internal/lib/claims.go +48 -33
- package/engine/internal/lib/context.go +337 -22
- package/engine/internal/lib/diffscope.go +201 -12
- package/engine/internal/lib/dispatch.go +393 -21
- package/engine/internal/lib/dispatch_contract.go +82 -2
- package/engine/internal/lib/dispatch_packet.go +224 -8
- package/engine/internal/lib/environment_report.go +2 -3
- package/engine/internal/lib/handoff.go +33 -3
- package/engine/internal/lib/metrics.go +119 -11
- package/engine/internal/lib/next.go +45 -5
- package/engine/internal/lib/observe_summary.go +2 -4
- package/engine/internal/lib/packet.go +319 -0
- package/engine/internal/lib/packet_freeze.go +227 -0
- package/engine/internal/lib/perturb.go +403 -0
- package/engine/internal/lib/questions_lint.go +99 -0
- package/engine/internal/lib/state_edit.go +396 -0
- package/engine/internal/lib/taskgraph.go +166 -0
- package/engine/internal/lib/treebaseline.go +331 -0
- package/engine/internal/lib/triggers.go +19 -0
- package/engine/internal/lib/windows.go +110 -5
- package/engine/internal/overhaul/admit/run.go +7 -30
- package/engine/internal/parallel/cli.go +27 -33
- package/engine/internal/parallel/git.go +10 -0
- package/engine/internal/parallel/select.go +36 -0
- package/engine/internal/state/budgets.go +60 -13
- package/engine/internal/state/observation.go +1 -1
- package/engine/main.go +61 -14
- package/pack/.claude/agents/devrites-code-reviewer.md +9 -5
- package/pack/.claude/agents/devrites-devex-reviewer.md +5 -4
- package/pack/.claude/agents/devrites-doubt-reviewer.md +4 -4
- package/pack/.claude/agents/devrites-evidence-scout.md +3 -2
- package/pack/.claude/agents/devrites-frontend-reviewer.md +5 -4
- package/pack/.claude/agents/devrites-performance-reviewer.md +5 -5
- package/pack/.claude/agents/devrites-plan-drafter.md +4 -2
- package/pack/.claude/agents/devrites-plan-reviewer.md +5 -5
- package/pack/.claude/agents/devrites-proof-runner.md +1 -1
- package/pack/.claude/agents/devrites-retrospector.md +1 -1
- package/pack/.claude/agents/devrites-security-auditor.md +4 -4
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +5 -4
- package/pack/.claude/agents/devrites-slice-wright.md +18 -9
- package/pack/.claude/agents/devrites-spec-reviewer.md +4 -4
- package/pack/.claude/agents/devrites-strategy-reviewer.md +5 -6
- package/pack/.claude/agents/devrites-test-analyst.md +7 -4
- package/pack/.claude/agents/devrites-upgrade-planner.md +1 -1
- package/pack/.claude/agents/fast-builder.md +4 -2
- package/pack/.claude/agents/fast-checker.md +3 -2
- package/pack/.claude/agents/fast-critic.md +3 -2
- package/pack/.claude/agents/fast-planner.md +3 -3
- package/pack/.claude/agents/overhaul-recon.md +5 -4
- package/pack/.claude/settings.json +19 -7
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/.claude/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-lib/SKILL.md +11 -6
- package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/.claude/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/.claude/skills/overhaul/references/orchestration.md +3 -2
- package/pack/.claude/skills/rite/SKILL.md +1 -1
- package/pack/.claude/skills/rite-adopt/SKILL.md +1 -1
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/.claude/skills/rite-build/SKILL.md +4 -3
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/.claude/skills/rite-build/reference/output.md +2 -0
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/.claude/skills/rite-clarify/SKILL.md +1 -1
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -4
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/.claude/skills/rite-define/SKILL.md +10 -5
- package/pack/.claude/skills/rite-doctor/SKILL.md +17 -2
- package/pack/.claude/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/.claude/skills/rite-explain/reference/intake.md +1 -1
- package/pack/.claude/skills/rite-fast/SKILL.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +3 -3
- package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/.claude/skills/rite-harness/SKILL.md +2 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +4 -4
- package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/.claude/skills/rite-polish/SKILL.md +6 -3
- package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/.claude/skills/rite-prove/SKILL.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/.claude/skills/rite-quick/SKILL.md +1 -1
- package/pack/.claude/skills/rite-resolve/SKILL.md +1 -1
- package/pack/.claude/skills/rite-review/SKILL.md +4 -4
- package/pack/.claude/skills/rite-seal/SKILL.md +2 -2
- package/pack/.claude/skills/rite-ship/SKILL.md +1 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +1 -1
- package/pack/.claude/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/.claude/skills/rite-status/SKILL.md +1 -1
- package/pack/.claude/skills/rite-temper/SKILL.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/.claude/skills/rite-temper/reference/significance.md +2 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +8 -4
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/.claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +6 -6
- package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -5
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +5 -4
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +4 -4
- package/pack/generated/claude/agents/devrites-evidence-scout.md +3 -2
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +5 -4
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +5 -5
- package/pack/generated/claude/agents/devrites-plan-drafter.md +4 -2
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +5 -5
- package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/claude/agents/devrites-retrospector.md +1 -1
- package/pack/generated/claude/agents/devrites-security-auditor.md +4 -4
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +5 -4
- package/pack/generated/claude/agents/devrites-slice-wright.md +18 -9
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +4 -4
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +5 -6
- package/pack/generated/claude/agents/devrites-test-analyst.md +7 -4
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +1 -1
- package/pack/generated/claude/agents/fast-builder.md +4 -2
- package/pack/generated/claude/agents/fast-checker.md +3 -2
- package/pack/generated/claude/agents/fast-critic.md +3 -2
- package/pack/generated/claude/agents/fast-planner.md +3 -3
- package/pack/generated/claude/agents/overhaul-recon.md +5 -4
- package/pack/generated/claude/settings.json +19 -7
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/generated/claude/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +11 -6
- package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/generated/claude/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +3 -2
- package/pack/generated/claude/skills/rite/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-build/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/output.md +2 -0
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/generated/claude/skills/rite-define/SKILL.md +10 -5
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +17 -2
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/claude/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/claude/skills/rite-harness/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -4
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/generated/claude/skills/rite-polish/SKILL.md +6 -3
- package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/claude/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/generated/claude/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/claude/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-spec/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +2 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +8 -4
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +6 -6
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +8 -4
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +4 -3
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +3 -3
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +2 -1
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +4 -3
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +4 -4
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +3 -1
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +4 -4
- package/pack/generated/codex/agents/devrites-security-auditor.toml +3 -3
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +4 -3
- package/pack/generated/codex/agents/devrites-slice-wright.toml +17 -8
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +3 -3
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +4 -5
- package/pack/generated/codex/agents/devrites-test-analyst.toml +6 -3
- package/pack/generated/codex/agents/fast-builder.toml +3 -1
- package/pack/generated/codex/agents/fast-checker.toml +2 -1
- package/pack/generated/codex/agents/fast-critic.toml +2 -1
- package/pack/generated/codex/agents/fast-planner.toml +2 -2
- package/pack/generated/codex/agents/overhaul-recon.toml +5 -4
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/generated/codex/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +11 -6
- package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/generated/codex/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +3 -2
- package/pack/generated/codex/skills/rite/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-build/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/output.md +2 -0
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/generated/codex/skills/rite-define/SKILL.md +10 -5
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +17 -2
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/codex/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/codex/skills/rite-harness/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/generated/codex/skills/rite-polish/SKILL.md +6 -3
- package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/codex/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/generated/codex/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-spec/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +2 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +8 -4
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +6 -6
- package/pack/generated/devin/agents/devrites-code-reviewer.md +8 -4
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +4 -3
- package/pack/generated/devin/agents/devrites-doubt-reviewer.md +3 -3
- package/pack/generated/devin/agents/devrites-evidence-scout.md +2 -1
- package/pack/generated/devin/agents/devrites-frontend-reviewer.md +4 -3
- package/pack/generated/devin/agents/devrites-performance-reviewer.md +4 -4
- package/pack/generated/devin/agents/devrites-plan-drafter.md +3 -1
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +4 -4
- package/pack/generated/devin/agents/devrites-security-auditor.md +3 -3
- package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +4 -3
- package/pack/generated/devin/agents/devrites-slice-wright.md +17 -8
- package/pack/generated/devin/agents/devrites-spec-reviewer.md +3 -3
- package/pack/generated/devin/agents/devrites-strategy-reviewer.md +4 -5
- package/pack/generated/devin/agents/devrites-test-analyst.md +6 -3
- package/pack/generated/devin/agents/fast-builder.md +3 -1
- package/pack/generated/devin/agents/fast-checker.md +2 -1
- package/pack/generated/devin/agents/fast-critic.md +2 -1
- package/pack/generated/devin/agents/fast-planner.md +2 -2
- package/pack/generated/devin/agents/overhaul-recon.md +5 -4
- package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/SKILL.md +11 -6
- package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/generated/devin/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +3 -2
- package/pack/generated/devin/skills/rite/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-build/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/output.md +2 -0
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/generated/devin/skills/rite-define/SKILL.md +10 -5
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +17 -2
- package/pack/generated/devin/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/devin/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/devin/skills/rite-harness/SKILL.md +2 -1
- package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/generated/devin/skills/rite-polish/SKILL.md +6 -3
- package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/devin/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/devin/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/generated/devin/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-spec/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/generated/devin/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +2 -2
- package/pack/generated/devin/skills/rite-vet/SKILL.md +8 -4
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/generated/devin/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +6 -6
- package/pack/generated/omp/agents/devrites-code-reviewer.md +9 -5
- package/pack/generated/omp/agents/devrites-devex-reviewer.md +5 -4
- package/pack/generated/omp/agents/devrites-doubt-reviewer.md +4 -4
- package/pack/generated/omp/agents/devrites-evidence-scout.md +3 -2
- package/pack/generated/omp/agents/devrites-frontend-reviewer.md +5 -4
- package/pack/generated/omp/agents/devrites-performance-reviewer.md +5 -5
- package/pack/generated/omp/agents/devrites-plan-drafter.md +4 -2
- package/pack/generated/omp/agents/devrites-plan-reviewer.md +5 -5
- package/pack/generated/omp/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/omp/agents/devrites-retrospector.md +1 -1
- package/pack/generated/omp/agents/devrites-security-auditor.md +4 -4
- package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +5 -4
- package/pack/generated/omp/agents/devrites-slice-wright.md +18 -9
- package/pack/generated/omp/agents/devrites-spec-reviewer.md +4 -4
- package/pack/generated/omp/agents/devrites-strategy-reviewer.md +5 -6
- package/pack/generated/omp/agents/devrites-test-analyst.md +7 -4
- package/pack/generated/omp/agents/devrites-upgrade-planner.md +1 -1
- package/pack/generated/omp/agents/fast-builder.md +4 -2
- package/pack/generated/omp/agents/fast-checker.md +3 -2
- package/pack/generated/omp/agents/fast-critic.md +3 -2
- package/pack/generated/omp/agents/fast-planner.md +3 -3
- package/pack/generated/omp/agents/overhaul-backend-engineer.md +1 -1
- package/pack/generated/omp/agents/overhaul-boundary.md +1 -1
- package/pack/generated/omp/agents/overhaul-craft.md +1 -1
- package/pack/generated/omp/agents/overhaul-frontend-engineer.md +1 -1
- package/pack/generated/omp/agents/overhaul-implementer.md +1 -1
- package/pack/generated/omp/agents/overhaul-recon.md +6 -5
- package/pack/generated/omp/agents/overhaul-specialist.md +1 -1
- package/pack/generated/omp/agents/overhaul-verifier.md +1 -1
- package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/omp/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/generated/omp/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/generated/omp/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/SKILL.md +11 -6
- package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/generated/omp/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +3 -2
- package/pack/generated/omp/skills/rite/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-adopt/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/generated/omp/skills/rite-build/SKILL.md +4 -3
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/output.md +2 -0
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/generated/omp/skills/rite-define/SKILL.md +10 -5
- package/pack/generated/omp/skills/rite-doctor/SKILL.md +17 -2
- package/pack/generated/omp/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/omp/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +3 -3
- package/pack/generated/omp/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/omp/skills/rite-harness/SKILL.md +2 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -3
- package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/omp/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/generated/omp/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-spec/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/generated/omp/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/generated/omp/skills/rite-temper/reference/significance.md +2 -2
- package/pack/generated/omp/skills/rite-vet/SKILL.md +8 -4
- package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/generated/omp/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +6 -6
- package/pack/generated/pi/agents/devrites-code-reviewer.md +9 -5
- package/pack/generated/pi/agents/devrites-devex-reviewer.md +5 -4
- package/pack/generated/pi/agents/devrites-doubt-reviewer.md +4 -4
- package/pack/generated/pi/agents/devrites-evidence-scout.md +3 -2
- package/pack/generated/pi/agents/devrites-frontend-reviewer.md +5 -4
- package/pack/generated/pi/agents/devrites-performance-reviewer.md +5 -5
- package/pack/generated/pi/agents/devrites-plan-drafter.md +4 -2
- package/pack/generated/pi/agents/devrites-plan-reviewer.md +5 -5
- package/pack/generated/pi/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/pi/agents/devrites-retrospector.md +1 -1
- package/pack/generated/pi/agents/devrites-security-auditor.md +4 -4
- package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +5 -4
- package/pack/generated/pi/agents/devrites-slice-wright.md +18 -9
- package/pack/generated/pi/agents/devrites-spec-reviewer.md +4 -4
- package/pack/generated/pi/agents/devrites-strategy-reviewer.md +5 -6
- package/pack/generated/pi/agents/devrites-test-analyst.md +7 -4
- package/pack/generated/pi/agents/devrites-upgrade-planner.md +1 -1
- package/pack/generated/pi/agents/fast-builder.md +4 -2
- package/pack/generated/pi/agents/fast-checker.md +3 -2
- package/pack/generated/pi/agents/fast-critic.md +3 -2
- package/pack/generated/pi/agents/fast-planner.md +3 -3
- package/pack/generated/pi/agents/overhaul-backend-engineer.md +1 -1
- package/pack/generated/pi/agents/overhaul-boundary.md +1 -1
- package/pack/generated/pi/agents/overhaul-craft.md +1 -1
- package/pack/generated/pi/agents/overhaul-frontend-engineer.md +1 -1
- package/pack/generated/pi/agents/overhaul-implementer.md +1 -1
- package/pack/generated/pi/agents/overhaul-recon.md +6 -5
- package/pack/generated/pi/agents/overhaul-specialist.md +1 -1
- package/pack/generated/pi/agents/overhaul-verifier.md +1 -1
- package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-audit/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +33 -13
- package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +2 -1
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-doubt/SKILL.md +5 -5
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/generated/pi/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/SKILL.md +11 -6
- package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
- package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +2 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +43 -19
- package/pack/generated/pi/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
- package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +14 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +10 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +4 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +3 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +9 -8
- package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +3 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
- package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +3 -2
- package/pack/generated/pi/skills/rite/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +1 -1
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-build/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +2 -0
- package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +4 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +2 -0
- package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/output.md +2 -0
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +22 -12
- package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +13 -3
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +42 -25
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-converge/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +3 -3
- package/pack/generated/pi/skills/rite-define/SKILL.md +10 -5
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +17 -2
- package/pack/generated/pi/skills/rite-dogfood/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/pi/skills/rite-fast/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/pi/skills/rite-harness/SKILL.md +2 -1
- package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -2
- package/pack/generated/pi/skills/rite-polish/SKILL.md +6 -3
- package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/pi/skills/rite-prove/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/pi/skills/rite-prove/reference/proof-ladder.md +16 -5
- package/pack/generated/pi/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-spec/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-spec/reference/investigation.md +5 -5
- package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +1 -1
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +6 -4
- package/pack/generated/pi/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-temper/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-temper/reference/review-dimensions.md +2 -2
- package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +2 -2
- package/pack/generated/pi/skills/rite-temper/reference/significance.md +2 -2
- package/pack/generated/pi/skills/rite-vet/SKILL.md +8 -4
- package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +10 -3
- package/pack/generated/pi/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +6 -6
- package/package.json +1 -1
- package/scripts/build-host-artifacts.sh +5 -4
- package/scripts/omp-generate.sh +3 -12
- package/scripts/pi-generate.sh +5 -51
package/engine/help.go
CHANGED
|
@@ -12,25 +12,29 @@ import (
|
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
const (
|
|
15
|
-
checkUsage = `usage: devrites-engine check <candidate|readiness|seal|path-disjoint|task-graph|slice|diff-scope|skill-trust|indexes|regression|drift|windows|dup> ...
|
|
15
|
+
checkUsage = `usage: devrites-engine check <candidate|readiness|preconditions|seal|path-disjoint|task-graph|slice|diff-scope|skill-trust|indexes|regression|drift|windows|dup|anchors|perturb> ...
|
|
16
16
|
|
|
17
17
|
check candidate <slug>
|
|
18
18
|
check readiness <slug>
|
|
19
19
|
check readiness --emit-binding <slug>
|
|
20
|
+
check preconditions <slug> [--slice SLICE-###] [--timeout N]
|
|
20
21
|
check seal <slug>
|
|
21
22
|
check path-disjoint [--root <dir>] [<json-file>|-]
|
|
22
23
|
check task-graph <slug>
|
|
23
24
|
check slice <slug> <SLICE-ID>
|
|
24
|
-
check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--cwd <dir>]
|
|
25
|
+
check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--baseline] [--verbose] [--cwd <dir>]
|
|
26
|
+
check diff-scope <slug> --snapshot [--worktree|--staged|--base <ref>] [--cwd <dir>]
|
|
27
|
+
check perturb <slug> --patch <file> --expect <test-name> --gate <G-ID> [--timeout N]
|
|
25
28
|
check skill-trust <path>
|
|
26
29
|
check indexes [--root <dir>]
|
|
27
30
|
check regression <slug> [--update]
|
|
28
31
|
check drift <slug> [--record]
|
|
29
|
-
check windows <slug> [--worktree|--staged|--base <ref>] [--cwd <dir>]
|
|
32
|
+
check windows <slug> [--worktree|--staged|--base <ref>|--since-dispatch <wave>] [--cwd <dir>]
|
|
30
33
|
check dup [slug] [--all|--worktree|--staged|--base <ref>]
|
|
34
|
+
check anchors <slug> <return-file> [--skills-root <dir>]
|
|
31
35
|
`
|
|
32
36
|
|
|
33
|
-
stateUsage = `usage: devrites-engine state <resolve|merge-manifest|apply-bundle|close> ...
|
|
37
|
+
stateUsage = `usage: devrites-engine state <resolve|merge-manifest|apply-bundle|set|append|close> ...
|
|
34
38
|
|
|
35
39
|
state resolve <qid> "<answer>"
|
|
36
40
|
state resolve --drop <qid> ["<reason>"]
|
|
@@ -40,6 +44,8 @@ const (
|
|
|
40
44
|
state resolve --human --batch <file>
|
|
41
45
|
state merge-manifest <slug> [<predecessor>...]
|
|
42
46
|
state apply-bundle <slug> <bundle.json>... [--dry-run]
|
|
47
|
+
state set <slug> <key>=<value>... [--unset <key>]...
|
|
48
|
+
state append <slug> <ledger.md> --heading "<text>" --body-file <path|->
|
|
43
49
|
state close <slug>
|
|
44
50
|
`
|
|
45
51
|
|
|
@@ -51,14 +57,14 @@ const (
|
|
|
51
57
|
|
|
52
58
|
orientUsage = "usage: devrites-engine orient [slug]"
|
|
53
59
|
nextUsage = "usage: devrites-engine next [slug]"
|
|
54
|
-
handoffUsage = "usage: devrites-engine handoff [slug]"
|
|
55
|
-
contextUsage = `usage: devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <SLICE-###>] [--trigger a,b] [--skills-root <dir>] [--out <path>]`
|
|
60
|
+
handoffUsage = "usage: devrites-engine handoff [slug] [--resume]"
|
|
61
|
+
contextUsage = `usage: devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <SLICE-###>] [--recheck <inventory>] [--trigger a,b] [--inline-contract] [--whole] [--skills-root <dir>] [--out <path>]`
|
|
56
62
|
metricsUsage = `usage: devrites-engine metrics <record|summary> ...
|
|
57
63
|
|
|
58
64
|
metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]
|
|
59
65
|
metrics summary [slug] [--by-slice]
|
|
60
66
|
`
|
|
61
|
-
dispatchUsage = `usage: devrites-engine dispatch <slug> <open|start|seal|return|status|abandon> [--phase p] [--wave w] [--role r] [--handle h] [--reason s] [--slice SLICE-###] [--reslice-review <DRIFT-ID>] [--contract <file>] [--packet <file>]`
|
|
67
|
+
dispatchUsage = `usage: devrites-engine dispatch <slug> <open|start|seal|return|status|abandon|attribute> [--phase p] [--wave w] [--role r] [--handle h] [--reason s] [--slice SLICE-###] [--reslice-review <DRIFT-ID>] [--contract <file>] [--packet <file>] [--outcome findings|no-findings|gap] [--result <file>] [--all] [--claim-session <id> --claim <path>... [--claim-ttl <minutes>]] [--release] [--path <path>...]`
|
|
62
68
|
claimUsageText = `usage: devrites-engine claim <add|release|list|check> ...
|
|
63
69
|
|
|
64
70
|
claim add --session <id> [--ttl <minutes>] [--reason <s>] <path>...
|
|
@@ -66,8 +72,9 @@ const (
|
|
|
66
72
|
claim list [--session <id>] [--all]
|
|
67
73
|
claim check [--session <id>] <path>...
|
|
68
74
|
`
|
|
69
|
-
diffScopeUsage = `usage: devrites-engine check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--cwd <dir>]
|
|
70
|
-
|
|
75
|
+
diffScopeUsage = `usage: devrites-engine check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--baseline] [--verbose] [--cwd <dir>]
|
|
76
|
+
devrites-engine check diff-scope <slug> --snapshot [--worktree|--staged|--base <ref>] [--cwd <dir>]`
|
|
77
|
+
migrateUsage = "usage: devrites-engine migrate <slug> [--dry-run] [--answer id=choice]"
|
|
71
78
|
// scanCmdUsage is help text for `secret-scan`. The identifier must not
|
|
72
79
|
// contain "secret": gosec G101 treats secret* string consts as credentials.
|
|
73
80
|
scanCmdUsage = "usage: devrites-engine secret-scan [--staged] [--stdin] [slug]"
|
|
@@ -75,6 +82,7 @@ const (
|
|
|
75
82
|
versionUsage = "usage: devrites-engine version"
|
|
76
83
|
candidateUsage = "usage: devrites-engine check candidate <slug>"
|
|
77
84
|
readinessUsage = "usage: devrites-engine check readiness <slug>\n devrites-engine check readiness --emit-binding <slug>"
|
|
85
|
+
preconditionsUsage = "usage: devrites-engine check preconditions <slug> [--slice SLICE-###] [--timeout N]"
|
|
78
86
|
sealUsage = "usage: devrites-engine check seal <slug>"
|
|
79
87
|
taskGraphUsage = "usage: devrites-engine check task-graph <slug>"
|
|
80
88
|
sliceCheckUsage = "usage: devrites-engine check slice <slug> <SLICE-ID>"
|
|
@@ -83,15 +91,17 @@ const (
|
|
|
83
91
|
regressionUsageLine = "usage: devrites-engine check regression <slug> [--update]"
|
|
84
92
|
driftUsageLine = "usage: devrites-engine check drift <slug> [--record]"
|
|
85
93
|
detectUsageLine = "usage: devrites-engine detect commands [--root <dir>] [--json]"
|
|
86
|
-
windowsUsageLine = "usage: devrites-engine check windows <slug> [--worktree|--staged|--base <ref>] [--cwd <dir>]"
|
|
94
|
+
windowsUsageLine = "usage: devrites-engine check windows <slug> [--worktree|--staged|--base <ref>|--since-dispatch <wave>] [--cwd <dir>]"
|
|
87
95
|
dupUsageLine = "usage: devrites-engine check dup [slug] [--all|--worktree|--staged|--base <ref>] [--min-lines n] [--threshold f] [--ignore-file <path>] [--limit n] [--exclude <csv>] [--phase p] [--cwd <dir>]"
|
|
88
96
|
resolveUsage = `usage: devrites-engine state resolve <qid> "<answer>" | state resolve --drop <qid> ["<reason>"] | state resolve --batch <file> | state resolve --human <qid> "<answer>" | state resolve --human --drop <qid> ["<reason>"] | state resolve --human --batch <file>`
|
|
89
97
|
mergeManifestUsage = "usage: devrites-engine state merge-manifest <slug> [<predecessor>...]"
|
|
90
98
|
applyBundleUsage = "usage: devrites-engine state apply-bundle <slug> <bundle.json>... [--dry-run]"
|
|
91
99
|
closeUsage = "usage: devrites-engine state close <slug>"
|
|
100
|
+
stateSetUsage = "usage: devrites-engine state set <slug> <key>=<value>... [--unset <key>]..."
|
|
101
|
+
stateAppendUsage = `usage: devrites-engine state append <slug> <ledger.md> --heading "<text>" --body-file <path|->`
|
|
92
102
|
observeSliceUsage = "usage: devrites-engine observe slice <slug> <SLICE-ID>"
|
|
93
103
|
observeSummaryUsage = "usage: devrites-engine observe summary [slug]"
|
|
94
|
-
gatesFamilyUsage = `usage: devrites-engine gates <scaffold|status|run|reverify|lint|attest|abandon> <slug> ...
|
|
104
|
+
gatesFamilyUsage = `usage: devrites-engine gates <scaffold|status|run|reverify|lint|precheck|attest|abandon> <slug> ...
|
|
95
105
|
|
|
96
106
|
gates scaffold <slug> Create gates.md from spec.md AC ids (only when absent)
|
|
97
107
|
gates status <slug> Reduce the ledger without executing; exit 3 unless ALL MET
|
|
@@ -99,6 +109,7 @@ const (
|
|
|
99
109
|
gates reverify <slug> [--timeout N] [--transcripts] Re-execute every runnable gate, demoting stale passes
|
|
100
110
|
(--transcripts: one redacted, candidate-bound file per gate in references/gates/)
|
|
101
111
|
gates lint <slug> [--strict] Audit oracle quality without executing
|
|
112
|
+
gates precheck <slug> --worktree <path> Run RUN: writer gates + check windows in <path>; no ledger, EVIDENCE or transcript write (check windows logs its metric); never evidence
|
|
102
113
|
gates attest <slug> <id> <note> Record human evidence on a manual gate
|
|
103
114
|
gates abandon <slug> <id> <why> Record a terminal ABANDON handoff on a gate
|
|
104
115
|
`
|
|
@@ -122,7 +133,7 @@ func isHelpToken(arg string) bool {
|
|
|
122
133
|
// still in flag position rather than in a value position.
|
|
123
134
|
func takesSubcommand(command string) bool {
|
|
124
135
|
switch command {
|
|
125
|
-
case "check", "state", "observe", "parallel", "gates", "claim", "note", "metrics", "detect", "overhaul":
|
|
136
|
+
case "check", "state", "observe", "parallel", "gates", "claim", "note", "metrics", "detect", "overhaul", "candidate":
|
|
126
137
|
return true
|
|
127
138
|
default:
|
|
128
139
|
return false
|
|
@@ -133,9 +144,11 @@ func takesSubcommand(command string) bool {
|
|
|
133
144
|
// value. A command listed here has known flags, so its help flag is honoured
|
|
134
145
|
// anywhere except as the value of one of these flags.
|
|
135
146
|
var valueFlags = map[string]map[string]bool{
|
|
136
|
-
"claim":
|
|
137
|
-
"dispatch":
|
|
138
|
-
"
|
|
147
|
+
"claim": {"--session": true, "--reason": true, "--ttl": true, "--id": true},
|
|
148
|
+
"dispatch": {"--phase": true, "--wave": true, "--role": true, "--handle": true, "--reason": true, "--claim-session": true, "--claim": true, "--claim-ttl": true, "--path": true},
|
|
149
|
+
"packet": {"--wave": true, "--phase": true, "--role": true, "--slice": true, "--checks": true, "--focus": true},
|
|
150
|
+
"candidate": {"--wave": true, "--slice": true, "--base": true},
|
|
151
|
+
"recall": {"--paths": true, "--limit": true},
|
|
139
152
|
}
|
|
140
153
|
|
|
141
154
|
// hasHelpFlag reports whether args (the arguments after the command word) are a
|
|
@@ -173,7 +186,7 @@ func shouldPrintHelp(args []string) bool {
|
|
|
173
186
|
return true
|
|
174
187
|
}
|
|
175
188
|
switch args[0] {
|
|
176
|
-
case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul", "next", "dispatch", "secret-scan", "open-visual", "recall":
|
|
189
|
+
case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul", "next", "dispatch", "secret-scan", "open-visual", "recall", "packet", "candidate":
|
|
177
190
|
return len(args) >= 2 && args[1] == "help"
|
|
178
191
|
default:
|
|
179
192
|
return false
|
|
@@ -225,6 +238,10 @@ func commandHelp(args []string) (string, bool) {
|
|
|
225
238
|
return metricsUsage, true
|
|
226
239
|
case "dispatch":
|
|
227
240
|
return dispatchUsage, true
|
|
241
|
+
case "packet":
|
|
242
|
+
return lib.PacketUsage, true
|
|
243
|
+
case "candidate":
|
|
244
|
+
return lib.CandidateFreezeUsage, true
|
|
228
245
|
case "claim":
|
|
229
246
|
return claimUsageText, true
|
|
230
247
|
case "parallel":
|
|
@@ -256,6 +273,8 @@ func helpCheck(rest []string) string {
|
|
|
256
273
|
return candidateUsage
|
|
257
274
|
case "readiness":
|
|
258
275
|
return readinessUsage
|
|
276
|
+
case "preconditions":
|
|
277
|
+
return preconditionsUsage
|
|
259
278
|
case "seal":
|
|
260
279
|
return sealUsage
|
|
261
280
|
case "path-disjoint":
|
|
@@ -278,6 +297,10 @@ func helpCheck(rest []string) string {
|
|
|
278
297
|
return windowsUsageLine
|
|
279
298
|
case "dup":
|
|
280
299
|
return dupUsageLine
|
|
300
|
+
case "anchors":
|
|
301
|
+
return lib.AnchorsUsage
|
|
302
|
+
case "perturb":
|
|
303
|
+
return lib.PerturbUsage
|
|
281
304
|
default:
|
|
282
305
|
return checkUsage
|
|
283
306
|
}
|
|
@@ -291,6 +314,10 @@ func helpState(rest []string) string {
|
|
|
291
314
|
return mergeManifestUsage
|
|
292
315
|
case "apply-bundle":
|
|
293
316
|
return applyBundleUsage
|
|
317
|
+
case "set":
|
|
318
|
+
return stateSetUsage
|
|
319
|
+
case "append":
|
|
320
|
+
return stateAppendUsage
|
|
294
321
|
case "close":
|
|
295
322
|
return closeUsage
|
|
296
323
|
default:
|
|
@@ -16,6 +16,17 @@ type ApprovedCommand struct {
|
|
|
16
16
|
Cwd string // normalized; "" means the repository root
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
// PreflightRow is one row of test-plan.md's Build-entry preflight table: the
|
|
20
|
+
// approved (command, cwd) pair plus the cells check preconditions reads.
|
|
21
|
+
type PreflightRow struct {
|
|
22
|
+
ApprovedCommand
|
|
23
|
+
Gate string
|
|
24
|
+
Expected string
|
|
25
|
+
// RunAt is the optional `Run at` cell (`vet`, `pre-dispatch SLICE-###`,
|
|
26
|
+
// `action`), whitespace-collapsed; "" when the row or table has none.
|
|
27
|
+
RunAt string
|
|
28
|
+
}
|
|
29
|
+
|
|
19
30
|
// ApprovedCommands extracts the approved command surface of test-plan.md: the
|
|
20
31
|
// Command and Cwd cells of every row under `## Build-entry preflight`. No
|
|
21
32
|
// other section approves execution — fenced examples, prose mentions, and
|
|
@@ -28,17 +39,29 @@ type ApprovedCommand struct {
|
|
|
28
39
|
// as "no approval is applicable".
|
|
29
40
|
func ApprovedCommands(testPlan []byte) []ApprovedCommand {
|
|
30
41
|
approved := []ApprovedCommand{}
|
|
42
|
+
rows, _ := PreflightRows(testPlan)
|
|
43
|
+
for _, row := range rows {
|
|
44
|
+
approved = append(approved, row.ApprovedCommand)
|
|
45
|
+
}
|
|
46
|
+
return approved
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// PreflightRows parses every command row under `## Build-entry preflight`, the
|
|
50
|
+
// one parser behind the approved surface. hasRunAt reports whether a table in
|
|
51
|
+
// the section declares the optional `Run at` column; plans without it keep
|
|
52
|
+
// the pre-column behavior everywhere.
|
|
53
|
+
func PreflightRows(testPlan []byte) (rows []PreflightRow, hasRunAt bool) {
|
|
31
54
|
structural, err := markdowntext.Structural(testPlan)
|
|
32
55
|
if err != nil {
|
|
33
|
-
return
|
|
56
|
+
return nil, false
|
|
34
57
|
}
|
|
35
58
|
inSection := false
|
|
36
|
-
commandCol, cwdCol := -1, -1
|
|
59
|
+
commandCol, cwdCol, gateCol, expectedCol, runAtCol := -1, -1, -1, -1, -1
|
|
37
60
|
for _, line := range strings.Split(string(structural), "\n") {
|
|
38
61
|
trimmed := strings.TrimSpace(line)
|
|
39
62
|
if strings.HasPrefix(trimmed, "##") {
|
|
40
63
|
inSection = strings.EqualFold(trimmed, "## Build-entry preflight")
|
|
41
|
-
commandCol
|
|
64
|
+
commandCol = -1
|
|
42
65
|
continue
|
|
43
66
|
}
|
|
44
67
|
if !inSection {
|
|
@@ -51,6 +74,10 @@ func ApprovedCommands(testPlan []byte) []ApprovedCommand {
|
|
|
51
74
|
if commandCol < 0 {
|
|
52
75
|
commandCol = columnIndex(cells, "command")
|
|
53
76
|
cwdCol = columnIndex(cells, "cwd")
|
|
77
|
+
gateCol = columnIndex(cells, "gate")
|
|
78
|
+
expectedCol = columnIndex(cells, "expected")
|
|
79
|
+
runAtCol = columnIndex(cells, "run at")
|
|
80
|
+
hasRunAt = hasRunAt || (commandCol >= 0 && runAtCol >= 0)
|
|
54
81
|
continue
|
|
55
82
|
}
|
|
56
83
|
if isDividerRow(cells) || commandCol >= len(cells) {
|
|
@@ -60,13 +87,25 @@ func ApprovedCommands(testPlan []byte) []ApprovedCommand {
|
|
|
60
87
|
if command == "" {
|
|
61
88
|
continue
|
|
62
89
|
}
|
|
63
|
-
|
|
90
|
+
row := PreflightRow{ApprovedCommand: ApprovedCommand{Command: command}}
|
|
64
91
|
if cwdCol >= 0 && cwdCol < len(cells) {
|
|
65
|
-
|
|
92
|
+
row.Cwd = normalizeApprovedCwd(cells[cwdCol])
|
|
66
93
|
}
|
|
67
|
-
|
|
94
|
+
row.Gate = cellText(cells, gateCol)
|
|
95
|
+
row.Expected = cellText(cells, expectedCol)
|
|
96
|
+
row.RunAt = strings.Join(strings.Fields(cellText(cells, runAtCol)), " ")
|
|
97
|
+
rows = append(rows, row)
|
|
68
98
|
}
|
|
69
|
-
return
|
|
99
|
+
return rows, hasRunAt
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// cellText returns a cell's trimmed text without code backticks, "" when the
|
|
103
|
+
// column is absent or the row is short.
|
|
104
|
+
func cellText(cells []string, col int) string {
|
|
105
|
+
if col < 0 || col >= len(cells) {
|
|
106
|
+
return ""
|
|
107
|
+
}
|
|
108
|
+
return strings.TrimSpace(strings.Trim(strings.TrimSpace(cells[col]), "`"))
|
|
70
109
|
}
|
|
71
110
|
|
|
72
111
|
// Approved reports whether (check, cwd) is a vetted pair. Approval is
|
|
@@ -33,6 +33,10 @@ Subcommands:
|
|
|
33
33
|
(--transcripts writes one redacted, candidate-bound
|
|
34
34
|
file per gate under references/gates/<gate-id>/)
|
|
35
35
|
lint <slug> [--strict] Audit oracle quality without executing
|
|
36
|
+
precheck <slug> --worktree <path>
|
|
37
|
+
Run every RUN: writer gate, then check windows, in
|
|
38
|
+
<path>; writes no ledger, EVIDENCE line or
|
|
39
|
+
transcript (check windows still logs its metric)
|
|
36
40
|
attest <slug> <id> <note> Record human evidence on a manual gate
|
|
37
41
|
abandon <slug> <id> <why> Record a terminal ABANDON handoff on a gate
|
|
38
42
|
|
|
@@ -60,6 +64,8 @@ func Run(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
60
64
|
return cmdRun(root, rest, true, stdout, stderr)
|
|
61
65
|
case "lint":
|
|
62
66
|
return cmdLint(root, rest, stdout, stderr)
|
|
67
|
+
case "precheck":
|
|
68
|
+
return cmdPrecheck(root, rest, stdout, stderr)
|
|
63
69
|
case "attest":
|
|
64
70
|
return cmdAttest(root, rest, stdout, stderr)
|
|
65
71
|
case "abandon":
|
|
@@ -363,6 +369,102 @@ func cmdLint(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
363
369
|
return ExitOK
|
|
364
370
|
}
|
|
365
371
|
|
|
372
|
+
// WindowsCheck runs `check windows` with the given arguments. main wires it to
|
|
373
|
+
// lib.RunCheckWindows because acceptance cannot import lib (lib imports it).
|
|
374
|
+
var WindowsCheck func(root string, args []string, stdout, stderr io.Writer) int
|
|
375
|
+
|
|
376
|
+
// cmdPrecheck is the wright's pre-return run of the `RUN: writer` gates and
|
|
377
|
+
// `check windows` against its worktree. It reads gates.md but writes no
|
|
378
|
+
// ledger, EVIDENCE line or transcript: nothing it prints is evidence, and the
|
|
379
|
+
// root still runs every gate canonically.
|
|
380
|
+
func cmdPrecheck(root string, args []string, stdout, stderr io.Writer) int {
|
|
381
|
+
const usage = "usage: devrites-engine gates precheck <slug> --worktree <path>"
|
|
382
|
+
var slug, worktree string
|
|
383
|
+
for i := 0; i < len(args); i++ {
|
|
384
|
+
switch {
|
|
385
|
+
case args[i] == "--worktree" && i+1 < len(args) && worktree == "":
|
|
386
|
+
worktree = args[i+1]
|
|
387
|
+
i++
|
|
388
|
+
case strings.HasPrefix(args[i], "-") || slug != "":
|
|
389
|
+
fmt.Fprintln(stderr, usage)
|
|
390
|
+
return ExitUsage
|
|
391
|
+
default:
|
|
392
|
+
slug = args[i]
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
if slug == "" || worktree == "" {
|
|
396
|
+
fmt.Fprintln(stderr, usage)
|
|
397
|
+
return ExitUsage
|
|
398
|
+
}
|
|
399
|
+
worktree, err := filepath.Abs(worktree)
|
|
400
|
+
if err == nil {
|
|
401
|
+
var info os.FileInfo
|
|
402
|
+
if info, err = os.Stat(worktree); err == nil && !info.IsDir() {
|
|
403
|
+
err = fmt.Errorf("%s is not a directory", worktree)
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
if err != nil {
|
|
407
|
+
fmt.Fprintf(stderr, "gates precheck: worktree: %v\n", err)
|
|
408
|
+
return ExitBlocked
|
|
409
|
+
}
|
|
410
|
+
_, ledgerPath, testPlanPath, _, err := featurePaths(root, slug)
|
|
411
|
+
if err != nil {
|
|
412
|
+
fmt.Fprintf(stderr, "gates precheck: %v\n", err)
|
|
413
|
+
return ExitBlocked
|
|
414
|
+
}
|
|
415
|
+
text, err := ReadLedgerFile(ledgerPath)
|
|
416
|
+
if err != nil {
|
|
417
|
+
fmt.Fprintf(stderr, "gates precheck: %v\n", err)
|
|
418
|
+
return ExitBlocked
|
|
419
|
+
}
|
|
420
|
+
doc := ParseLedger(text)
|
|
421
|
+
for _, parseErr := range doc.Errors {
|
|
422
|
+
fmt.Fprintf(stdout, "error: %s\n", parseErr)
|
|
423
|
+
}
|
|
424
|
+
// Like cmdRun: a malformed ledger (e.g. a CWD escaping the worktree) runs nothing.
|
|
425
|
+
if len(doc.Errors) > 0 {
|
|
426
|
+
fmt.Fprintln(stdout, "precheck: fail (not evidence; fix before returning)")
|
|
427
|
+
return ExitBlocked
|
|
428
|
+
}
|
|
429
|
+
failed := false
|
|
430
|
+
approved := loadTestPlan(testPlanPath)
|
|
431
|
+
for _, gate := range doc.WriterGates() {
|
|
432
|
+
expectation, expectErr := CompileExpect(gate.Expect)
|
|
433
|
+
switch {
|
|
434
|
+
case gate.Check == "":
|
|
435
|
+
fmt.Fprintf(stdout, "FAIL %s (RUN: writer row has no CHECK)\n", gate.ID)
|
|
436
|
+
case !Approved(gate.Check, gate.Cwd, approved):
|
|
437
|
+
fmt.Fprintf(stdout, "FAIL %s (CHECK/CWD is not an approved test-plan.md preflight row; not executed)\n", gate.ID)
|
|
438
|
+
case expectErr != nil:
|
|
439
|
+
fmt.Fprintf(stdout, "FAIL %s (%v)\n", gate.ID, expectErr)
|
|
440
|
+
default:
|
|
441
|
+
outcome := Execute(context.Background(), gate.Check, filepath.Join(worktree, filepath.FromSlash(gate.Cwd)), DefaultTimeout)
|
|
442
|
+
if outcome.Err == nil && outcome.ExitCode == 0 && expectation.Matches(outcome.Output) {
|
|
443
|
+
fmt.Fprintf(stdout, "PASS %s\n", gate.ID)
|
|
444
|
+
continue
|
|
445
|
+
}
|
|
446
|
+
fmt.Fprintf(stdout, "FAIL %s (%s)\n", gate.ID, failDetail(outcome, expectation))
|
|
447
|
+
}
|
|
448
|
+
failed = true
|
|
449
|
+
}
|
|
450
|
+
switch {
|
|
451
|
+
case WindowsCheck == nil:
|
|
452
|
+
fmt.Fprintln(stdout, "FAIL windows (check windows is not wired into this engine)")
|
|
453
|
+
failed = true
|
|
454
|
+
case WindowsCheck(root, []string{slug, "--worktree", "--cwd", worktree}, stdout, stderr) != ExitOK:
|
|
455
|
+
fmt.Fprintln(stdout, "FAIL windows")
|
|
456
|
+
failed = true
|
|
457
|
+
default:
|
|
458
|
+
fmt.Fprintln(stdout, "PASS windows")
|
|
459
|
+
}
|
|
460
|
+
if failed {
|
|
461
|
+
fmt.Fprintln(stdout, "precheck: fail (not evidence; fix before returning)")
|
|
462
|
+
return ExitBlocked
|
|
463
|
+
}
|
|
464
|
+
fmt.Fprintln(stdout, "precheck: pass (not evidence; the root still runs every gate)")
|
|
465
|
+
return ExitOK
|
|
466
|
+
}
|
|
467
|
+
|
|
366
468
|
func cmdAttest(root string, args []string, stdout, stderr io.Writer) int {
|
|
367
469
|
if len(args) < 3 {
|
|
368
470
|
fmt.Fprintln(stderr, "usage: devrites-engine gates attest <slug> <gate-id> <evidence note>")
|
|
@@ -104,18 +104,20 @@ func Execute(ctx context.Context, check, cwd string, timeout time.Duration) RunO
|
|
|
104
104
|
return RunOutcome{Err: fmt.Errorf("check could not start: %v", startErr)}
|
|
105
105
|
}
|
|
106
106
|
waitErr := cmd.Wait()
|
|
107
|
-
if ctx.Err() == context.DeadlineExceeded {
|
|
108
|
-
return RunOutcome{Err: fmt.Errorf("check timed out after %s", timeout), TimedOut: true}
|
|
109
|
-
}
|
|
110
|
-
if stdout.overflow || stderr.overflow {
|
|
111
|
-
return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes", MaxOutputBytes)}
|
|
112
|
-
}
|
|
113
107
|
out, errText := stdout.buf.String(), stderr.buf.String()
|
|
114
108
|
canonical := out
|
|
115
109
|
if out != "" && errText != "" {
|
|
116
110
|
canonical += "\n"
|
|
117
111
|
}
|
|
118
112
|
canonical += errText
|
|
113
|
+
if ctx.Err() == context.DeadlineExceeded {
|
|
114
|
+
// Keep what the check printed before the deadline so its transcript shows
|
|
115
|
+
// how far it got; Err still fails the gate.
|
|
116
|
+
return RunOutcome{Err: fmt.Errorf("check timed out after %s", timeout), TimedOut: true, Output: canonical, OutputBytes: len(canonical)}
|
|
117
|
+
}
|
|
118
|
+
if stdout.overflow || stderr.overflow {
|
|
119
|
+
return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes", MaxOutputBytes)}
|
|
120
|
+
}
|
|
119
121
|
if len(canonical) > MaxOutputBytes {
|
|
120
122
|
return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes after decoding", MaxOutputBytes)}
|
|
121
123
|
}
|
|
@@ -31,6 +31,7 @@ type Gate struct {
|
|
|
31
31
|
Expect string
|
|
32
32
|
Cwd string
|
|
33
33
|
Inputs string // optional whitespace-separated paths/globs the result depends on
|
|
34
|
+
Run string // optional "writer": the wright pre-runs it via `gates precheck`; default root
|
|
34
35
|
Evidence string
|
|
35
36
|
Line int // 1-based line of the "- [ ]" row in the original text
|
|
36
37
|
}
|
|
@@ -47,7 +48,7 @@ type Document struct {
|
|
|
47
48
|
|
|
48
49
|
var (
|
|
49
50
|
gateLineRE = regexp.MustCompile(`^\s*- \[([ xX])\] ([^\s:]+): (.*)$`)
|
|
50
|
-
attrLineRE = regexp.MustCompile(`^(\s+)(CHECK|EXPECT|CWD|INPUTS|EVIDENCE):(.*)$`)
|
|
51
|
+
attrLineRE = regexp.MustCompile(`^(\s+)(CHECK|EXPECT|CWD|INPUTS|EVIDENCE|RUN):(.*)$`)
|
|
51
52
|
unindentedAttr = regexp.MustCompile(`^(CHECK|EXPECT|CWD|INPUTS|EVIDENCE):`)
|
|
52
53
|
abandonLineRE = regexp.MustCompile(`^ABANDON: (\S+)\s*(.*)$`)
|
|
53
54
|
indentedAbandon = regexp.MustCompile(`^\s+ABANDON:`)
|
|
@@ -117,6 +118,8 @@ func ParseLedger(text string) *Document {
|
|
|
117
118
|
current.Cwd = value
|
|
118
119
|
case "INPUTS":
|
|
119
120
|
current.Inputs = value
|
|
121
|
+
case "RUN":
|
|
122
|
+
current.Run = value
|
|
120
123
|
case "EVIDENCE":
|
|
121
124
|
current.Evidence = value
|
|
122
125
|
}
|
|
@@ -253,6 +256,18 @@ func (e Expectation) Matches(output string) bool {
|
|
|
253
256
|
return strings.Contains(output, e.Literal)
|
|
254
257
|
}
|
|
255
258
|
|
|
259
|
+
// WriterGates returns the live gates marked `RUN: writer`. The wright pre-runs
|
|
260
|
+
// them through `gates precheck`; the root still runs every gate canonically.
|
|
261
|
+
func (d *Document) WriterGates() []*Gate {
|
|
262
|
+
var gates []*Gate
|
|
263
|
+
for _, gate := range d.Gates {
|
|
264
|
+
if _, abandoned := d.Abandoned[gate.ID]; !abandoned && gate.Run == "writer" {
|
|
265
|
+
gates = append(gates, gate)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return gates
|
|
269
|
+
}
|
|
270
|
+
|
|
256
271
|
// Newline returns the document's original line-ending style for writeback.
|
|
257
272
|
func (d *Document) Newline() string {
|
|
258
273
|
if d.newline == "" {
|
|
@@ -29,7 +29,8 @@ var (
|
|
|
29
29
|
|
|
30
30
|
// LintLedger audits oracle quality without executing anything: fixed-output
|
|
31
31
|
// commands, expectations that also appear in failure output, path-shaped
|
|
32
|
-
// regexes, activity titles, unmeasured numbers,
|
|
32
|
+
// regexes, activity titles, unmeasured numbers, mostly-manual ledgers, and a
|
|
33
|
+
// `RUN:` value precheck cannot honor.
|
|
33
34
|
// approved is the vetted (command, cwd) surface; a runnable CHECK outside it
|
|
34
35
|
// is an authoring error because the runner can never execute it.
|
|
35
36
|
func LintLedger(doc *Document, approved []ApprovedCommand) []Finding {
|
|
@@ -76,6 +77,13 @@ func LintLedger(doc *Document, approved []ApprovedCommand) []Finding {
|
|
|
76
77
|
"EXPECT %q looks like a literal path but is read as a regular expression, so its dots are wildcards", gate.Expect)
|
|
77
78
|
}
|
|
78
79
|
}
|
|
80
|
+
switch {
|
|
81
|
+
case gate.Run != "" && gate.Run != "writer" && gate.Run != "root":
|
|
82
|
+
add("error", gate.ID, "run-value", "RUN %q must be writer or root", gate.Run)
|
|
83
|
+
case gate.Run == "writer" && gate.Check == "":
|
|
84
|
+
add("error", gate.ID, "writer-manual",
|
|
85
|
+
"RUN: writer needs a CHECK: `gates precheck` executes the row, and a manual gate has nothing to execute")
|
|
86
|
+
}
|
|
79
87
|
if activityStartRE.MatchString(gate.Title) {
|
|
80
88
|
add("warn", gate.ID, "activity-not-outcome",
|
|
81
89
|
"names an activity, not an outcome a stranger could judge: %q", gate.Title)
|