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
|
@@ -39,28 +39,49 @@ type loadsManifest struct {
|
|
|
39
39
|
|
|
40
40
|
const loadsMarker = "<!-- loads:"
|
|
41
41
|
|
|
42
|
-
const contextUsage = `usage: devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <SLICE-###>] [--trigger a,b] [--skills-root <dir>] [--out <path>]
|
|
42
|
+
const 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>]
|
|
43
43
|
|
|
44
44
|
Emits one deduplicated context bundle for a phase or standalone skill
|
|
45
45
|
(+ optional dispatch role) into .devrites/work/<slug>/ctx/ so an agent
|
|
46
|
-
reads a single file.
|
|
46
|
+
reads a single file. The bundle opens with a table of contents giving
|
|
47
|
+
each section's line range. A --role bundle leads with the role contract; when it
|
|
48
|
+
resolves under .claude/agents, .omp/agents, or .codex/agents (the host
|
|
49
|
+
loads it as the agent's system prompt) a one-line stub names its path,
|
|
50
|
+
size, and SHA-256 instead, unless --inline-contract is given.
|
|
51
|
+
With --skill, slug may be omitted; then --out is
|
|
47
52
|
required and no workspace section is included. --slice scopes the
|
|
48
53
|
workspace section to one slice: tasks.md contributes that slice's block,
|
|
49
54
|
and an artifact over its line/byte budget or over 16 KiB (spec.md excepted)
|
|
50
55
|
becomes a by-reference index (path, SHA-256, headings, and line hits for
|
|
51
56
|
every ID the block cites).
|
|
52
|
-
Repeat --slice for a recheck that spans several slices.
|
|
57
|
+
Repeat --slice for a recheck that spans several slices. In phase build a
|
|
58
|
+
--role bundle other than slice-wright requires --slice (exit 3). A root
|
|
59
|
+
build or autocomplete bundle (no --role, no --slice) defaults to --slice
|
|
60
|
+
<active_slice> when state.md names one present in tasks.md; --whole opts out.
|
|
61
|
+
--recheck <inventory> (phase build, with --role and --slice) builds a
|
|
62
|
+
bounded recheck bundle: the inventory file (relative to the workspace)
|
|
63
|
+
and core.md are inlined; every other pack file becomes a by-reference
|
|
64
|
+
index plus the sections the inventory cites as "<file>.md § <heading>".
|
|
53
65
|
`
|
|
54
66
|
|
|
67
|
+
// coreStandard is the universal floor every bundle inlines whole.
|
|
68
|
+
const coreStandard = "devrites-lib/reference/standards/core.md"
|
|
69
|
+
|
|
55
70
|
// RunContext emits one deduplicated context bundle for a phase (+ optional
|
|
56
71
|
// dispatch role) so an agent reads a single file instead of selecting files.
|
|
57
72
|
//
|
|
58
|
-
// context <slug> --phase <p> [--role <r>] [--slice <SLICE-###>] [--trigger a,b] [--skills-root <dir>] [--out <path>]
|
|
73
|
+
// context <slug> --phase <p> [--role <r>] [--slice <SLICE-###>] [--recheck <inventory>] [--trigger a,b] [--skills-root <dir>] [--out <path>]
|
|
59
74
|
func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
60
75
|
opts, code := parseContextArgs(args, stderr)
|
|
61
76
|
if code != 0 {
|
|
62
77
|
return code
|
|
63
78
|
}
|
|
79
|
+
// A Build reviewer judges one slice; an unscoped bundle inlines whole
|
|
80
|
+
// plan/tasks/architecture into every dispatch.
|
|
81
|
+
if opts.phase == "build" && opts.role != "" && opts.role != "slice-wright" && opts.slice == "" {
|
|
82
|
+
fmt.Fprintf(stderr, "context: BLOCKED: unscoped build reviewer bundle: --role %s in phase build needs --slice <SLICE-ID>\n", opts.role)
|
|
83
|
+
return 3
|
|
84
|
+
}
|
|
64
85
|
var featureDir string
|
|
65
86
|
if opts.slug != "" {
|
|
66
87
|
var err error
|
|
@@ -70,11 +91,34 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
70
91
|
return 2
|
|
71
92
|
}
|
|
72
93
|
}
|
|
94
|
+
// The root's own build/autocomplete bundle holds one slice at a time;
|
|
95
|
+
// whole tasks/plan/decisions ride every later turn otherwise.
|
|
96
|
+
autoScope := false
|
|
97
|
+
if featureDir != "" && opts.role == "" && opts.slice == "" && !opts.whole && (opts.phase == "build" || opts.phase == "autocomplete") {
|
|
98
|
+
if id := activeSliceScope(featureDir); id != "" {
|
|
99
|
+
opts.slices, opts.slice, autoScope = []string{id}, id, true
|
|
100
|
+
}
|
|
101
|
+
}
|
|
73
102
|
skillsRoot, err := resolveSkillsRoot(root, opts.skillsRoot)
|
|
74
103
|
if err != nil {
|
|
75
104
|
fmt.Fprintf(stderr, "context: %v\n", err)
|
|
76
105
|
return 2
|
|
77
106
|
}
|
|
107
|
+
var inventory []byte
|
|
108
|
+
recheckPath := opts.recheck
|
|
109
|
+
if recheckPath != "" {
|
|
110
|
+
if !filepath.IsAbs(recheckPath) {
|
|
111
|
+
recheckPath = filepath.Join(featureDir, filepath.FromSlash(recheckPath))
|
|
112
|
+
}
|
|
113
|
+
inventory, err = os.ReadFile(recheckPath) // #nosec G304 -- the root names its own recheck inventory file
|
|
114
|
+
if err == nil && len(bytes.TrimSpace(inventory)) == 0 {
|
|
115
|
+
err = fmt.Errorf("%s is empty", opts.recheck)
|
|
116
|
+
}
|
|
117
|
+
if err != nil {
|
|
118
|
+
fmt.Fprintf(stderr, "context: --recheck: %v\n", err)
|
|
119
|
+
return 2
|
|
120
|
+
}
|
|
121
|
+
}
|
|
78
122
|
skillDir := "rite-" + opts.phase
|
|
79
123
|
if opts.skill != "" {
|
|
80
124
|
skillDir = opts.skill
|
|
@@ -109,7 +153,9 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
109
153
|
blocks = append(blocks, block)
|
|
110
154
|
}
|
|
111
155
|
sliceBlock = strings.Join(blocks, "\n")
|
|
112
|
-
|
|
156
|
+
// A recheck inventory may cite IDs outside the slice block (dependency or
|
|
157
|
+
// regression closure); index them too.
|
|
158
|
+
sliceIDs = citedIDs(sliceBlock + "\n" + string(inventory))
|
|
113
159
|
}
|
|
114
160
|
|
|
115
161
|
var files []string
|
|
@@ -139,7 +185,7 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
139
185
|
} else {
|
|
140
186
|
// No manifest: bundle the universal floor only. Agents still get a
|
|
141
187
|
// correct (if incomplete) packet and a loud marker.
|
|
142
|
-
files = []string{filepath.
|
|
188
|
+
files = []string{filepath.FromSlash(coreStandard)}
|
|
143
189
|
fmt.Fprintf(stderr, "context: WARNING: %s declares no loads: manifest; bundle is core-only\n", skillDir)
|
|
144
190
|
}
|
|
145
191
|
if !hasManifest {
|
|
@@ -159,16 +205,26 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
159
205
|
if opts.role != "" {
|
|
160
206
|
rel := roleAgentPath(manifest, opts.role)
|
|
161
207
|
abs, label := filepath.Join(skillsRoot, "..", "agents", filepath.FromSlash(rel)), "agents/"+rel
|
|
208
|
+
// Claude Code, omp, and Codex load a named agent's body as its system
|
|
209
|
+
// prompt, so those layouts get a stub, not a second copy. Other
|
|
210
|
+
// layouts (pi, devin, unknown) are unverified and keep the body.
|
|
211
|
+
native := slices.Contains([]string{".claude", ".omp"}, filepath.Base(filepath.Dir(filepath.Clean(skillsRoot))))
|
|
162
212
|
// A Codex install has skills in .agents/skills but role agents at
|
|
163
213
|
// <project>/.codex/agents/<name>.toml, with no Markdown sibling.
|
|
164
214
|
if _, err := os.Stat(abs); err != nil {
|
|
165
215
|
codex := strings.TrimSuffix(filepath.Base(filepath.FromSlash(rel)), ".md") + ".toml"
|
|
166
216
|
candidate := filepath.Join(filepath.Dir(root), ".codex", "agents", codex)
|
|
167
217
|
if info, err := os.Stat(candidate); err == nil && info.Mode().IsRegular() {
|
|
168
|
-
abs, label = candidate, ".codex/agents/"+codex
|
|
218
|
+
abs, label, native = candidate, ".codex/agents/"+codex, true
|
|
169
219
|
}
|
|
170
220
|
}
|
|
171
|
-
|
|
221
|
+
var wrote bool
|
|
222
|
+
if native && !opts.inlineContract {
|
|
223
|
+
wrote = writeContractStub(&bundle, filepath.Dir(root), abs, label, seen)
|
|
224
|
+
} else {
|
|
225
|
+
wrote = writeContextEntry(&bundle, abs, label, seen, true)
|
|
226
|
+
}
|
|
227
|
+
if wrote {
|
|
172
228
|
loaded++
|
|
173
229
|
} else {
|
|
174
230
|
// The agent contract is a pack file, not a workspace artifact: a
|
|
@@ -177,7 +233,14 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
177
233
|
missingRequired = append(missingRequired, "agents/"+rel)
|
|
178
234
|
}
|
|
179
235
|
}
|
|
236
|
+
// The open findings lead a recheck bundle, before any reference text.
|
|
237
|
+
if inventory != nil {
|
|
238
|
+
writeContextEntry(&bundle, recheckPath, "recheck inventory: "+opts.recheck, seen, false)
|
|
239
|
+
loaded++
|
|
240
|
+
}
|
|
180
241
|
var rootOnly []string
|
|
242
|
+
citedSections, packByReference := 0, 0
|
|
243
|
+
keepModel := opts.role == "" || keepModelSurface(opts.role, gatherTriggerFacts(root, featureDir, opts.role))
|
|
181
244
|
for _, rel := range files {
|
|
182
245
|
abs := filepath.Join(skillsRoot, filepath.FromSlash(rel))
|
|
183
246
|
if seen[abs] {
|
|
@@ -189,14 +252,31 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
189
252
|
continue
|
|
190
253
|
}
|
|
191
254
|
data, err := os.ReadFile(abs) // #nosec G304 -- abs is resolved from the validated skills root
|
|
192
|
-
fmt.Fprintf(&bundle, "===== %s =====\n", rel)
|
|
193
255
|
if err != nil {
|
|
194
|
-
fmt.Fprintf(&bundle, "
|
|
256
|
+
fmt.Fprintf(&bundle, "===== %s =====\nMISSING: %s\n\n", rel, rel)
|
|
195
257
|
missingRequired = append(missingRequired, rel)
|
|
196
258
|
continue
|
|
197
259
|
}
|
|
198
|
-
|
|
199
|
-
if
|
|
260
|
+
body := expandIncludes(abs, data)
|
|
261
|
+
if opts.role != "" {
|
|
262
|
+
if body, err = stripSections(body, rel, opts.role, keepModel); err != nil {
|
|
263
|
+
fmt.Fprintf(stderr, "context: %v\n", err)
|
|
264
|
+
return 2
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// A recheck keeps every other triggered pack file one anchored Read
|
|
268
|
+
// away (fix-introduced defects may break rules no finding cites) and
|
|
269
|
+
// inlines only the sections the open findings cite.
|
|
270
|
+
if inventory != nil && rel != coreStandard {
|
|
271
|
+
writeAnchorIndex(&bundle, filepath.Dir(root), abs, rel, data, nil)
|
|
272
|
+
citedSections += writeCitedSections(&bundle, rel, body, inventory)
|
|
273
|
+
packByReference++
|
|
274
|
+
loaded++
|
|
275
|
+
continue
|
|
276
|
+
}
|
|
277
|
+
fmt.Fprintf(&bundle, "===== %s =====\n", rel)
|
|
278
|
+
bundle.Write(body)
|
|
279
|
+
if len(body) > 0 && body[len(body)-1] != '\n' {
|
|
200
280
|
bundle.WriteByte('\n')
|
|
201
281
|
}
|
|
202
282
|
bundle.WriteByte('\n')
|
|
@@ -236,6 +316,9 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
236
316
|
} else if hasManifest && len(workspaceList) > 0 {
|
|
237
317
|
bundle.WriteString("===== workspace =====\nskipped: no feature workspace (slug omitted)\n\n")
|
|
238
318
|
}
|
|
319
|
+
withTOC := insertSectionTOC(bundle.String())
|
|
320
|
+
bundle.Reset()
|
|
321
|
+
bundle.WriteString(withTOC)
|
|
239
322
|
out := opts.out
|
|
240
323
|
if out == "" {
|
|
241
324
|
out = filepath.Join(featureDir, "ctx", bundleName(opts))
|
|
@@ -281,10 +364,17 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
281
364
|
}
|
|
282
365
|
fmt.Fprintln(stdout, ")")
|
|
283
366
|
if opts.slice != "" {
|
|
284
|
-
|
|
367
|
+
auto := ""
|
|
368
|
+
if autoScope {
|
|
369
|
+
auto = " (auto from state.md)"
|
|
370
|
+
}
|
|
371
|
+
fmt.Fprintf(stdout, "scope: slice %s%s (%d whole, %d by-reference)\n", opts.slice, auto, whole, byReference)
|
|
285
372
|
} else if byReference > 0 {
|
|
286
373
|
fmt.Fprintf(stdout, "scope: root (%d whole, %d by-reference over budget)\n", whole, byReference)
|
|
287
374
|
}
|
|
375
|
+
if inventory != nil {
|
|
376
|
+
fmt.Fprintf(stdout, "recheck: %s (%d cited sections inlined, %d pack files by reference)\n", opts.recheck, citedSections, packByReference)
|
|
377
|
+
}
|
|
288
378
|
if workspaceScoped {
|
|
289
379
|
fmt.Fprintf(stdout, "workspace: role-scoped for %s (%d of %d declared artifacts)\n",
|
|
290
380
|
opts.role, len(workspaceList), len(manifest.Workspace))
|
|
@@ -314,6 +404,43 @@ func RunContext(root string, args []string, stdout, stderr io.Writer) int {
|
|
|
314
404
|
return 0
|
|
315
405
|
}
|
|
316
406
|
|
|
407
|
+
// sectionHeaderRE matches a bundle section header line.
|
|
408
|
+
var sectionHeaderRE = regexp.MustCompile(`^===== (.+) =====$`)
|
|
409
|
+
|
|
410
|
+
// insertSectionTOC lists each ===== section's line range right after the
|
|
411
|
+
// bundle's header comments, so an agent reads a section by range instead of
|
|
412
|
+
// grepping for headers. Section order and content are unchanged.
|
|
413
|
+
// shortcut: an inlined artifact line shaped like a section header is listed too; record header offsets at write time if that shows up.
|
|
414
|
+
func insertSectionTOC(bundle string) string {
|
|
415
|
+
cut := strings.Index(bundle, "\n\n") + 2
|
|
416
|
+
head, body := bundle[:cut], bundle[cut:]
|
|
417
|
+
lines := strings.Split(strings.TrimSuffix(body, "\n"), "\n")
|
|
418
|
+
var labels []string
|
|
419
|
+
var starts []int
|
|
420
|
+
for i, line := range lines {
|
|
421
|
+
if m := sectionHeaderRE.FindStringSubmatch(line); m != nil {
|
|
422
|
+
labels, starts = append(labels, m[1]), append(starts, i)
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
if len(starts) == 0 {
|
|
426
|
+
return bundle
|
|
427
|
+
}
|
|
428
|
+
// Body line i lands after the header, the TOC comment, one line per
|
|
429
|
+
// section, and the TOC's blank line.
|
|
430
|
+
offset := strings.Count(head, "\n") + 1 + len(starts) + 1
|
|
431
|
+
var toc strings.Builder
|
|
432
|
+
toc.WriteString("<!-- sections: line ranges in this file; read a section by its range instead of searching for headers -->\n")
|
|
433
|
+
for i, start := range starts {
|
|
434
|
+
end := len(lines)
|
|
435
|
+
if i+1 < len(starts) {
|
|
436
|
+
end = starts[i+1]
|
|
437
|
+
}
|
|
438
|
+
fmt.Fprintf(&toc, "L%d-%d %s\n", offset+start+1, offset+end, clipRunes(labels[i], 120))
|
|
439
|
+
}
|
|
440
|
+
toc.WriteByte('\n')
|
|
441
|
+
return head + toc.String() + body
|
|
442
|
+
}
|
|
443
|
+
|
|
317
444
|
// workspaceReadSet returns the workspace artifact list for this call. A role
|
|
318
445
|
// key present in workspaceByRole fully replaces the flat workspace list for
|
|
319
446
|
// that dispatch (empty list = the role reads no workspace artifacts). A role
|
|
@@ -349,6 +476,71 @@ func expandIncludes(abs string, data []byte) []byte {
|
|
|
349
476
|
})
|
|
350
477
|
}
|
|
351
478
|
|
|
479
|
+
// sectionMarkerRe matches a whole-line section marker in canonical source:
|
|
480
|
+
// <!-- root-only --> ... <!-- /root-only --> wraps rules only the controlling
|
|
481
|
+
// root executes; <!-- model-surface --> ... <!-- /model-surface --> wraps rules
|
|
482
|
+
// that apply only to a model, agent, RAG, or tool surface.
|
|
483
|
+
var sectionMarkerRe = regexp.MustCompile(`^<!--\s*(/?)(root-only|model-surface)\s*-->\s*$`)
|
|
484
|
+
|
|
485
|
+
// stripSections replaces each marked block a --role bundle omits with a
|
|
486
|
+
// one-line stub naming the omitted heading: root-only blocks always,
|
|
487
|
+
// model-surface blocks unless keepModel. Headings never move in the source, so
|
|
488
|
+
// anchors stay valid. A nested, unbalanced, or headingless block is an error
|
|
489
|
+
// so a pack bug never silently drops or leaks rules.
|
|
490
|
+
func stripSections(data []byte, rel, role string, keepModel bool) ([]byte, error) {
|
|
491
|
+
if !bytes.Contains(data, []byte("<!--")) {
|
|
492
|
+
return data, nil
|
|
493
|
+
}
|
|
494
|
+
lines := strings.SplitAfter(string(data), "\n")
|
|
495
|
+
structural := lines
|
|
496
|
+
if masked, err := markdowntext.Structural(data); err == nil {
|
|
497
|
+
structural = strings.SplitAfter(string(masked), "\n")
|
|
498
|
+
}
|
|
499
|
+
var out, block strings.Builder
|
|
500
|
+
kind, heading, stubHeading, ownHeading := "", "", "", false
|
|
501
|
+
for i, line := range lines {
|
|
502
|
+
text := strings.TrimRight(structural[i], "\r\n")
|
|
503
|
+
m := sectionMarkerRe.FindStringSubmatch(text)
|
|
504
|
+
switch {
|
|
505
|
+
case m == nil:
|
|
506
|
+
if anchorHeadingRE.MatchString(text) {
|
|
507
|
+
heading = strings.TrimSpace(strings.TrimLeft(text, "#"))
|
|
508
|
+
if kind != "" && !ownHeading {
|
|
509
|
+
stubHeading, ownHeading = heading, true
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
if kind == "" {
|
|
513
|
+
out.WriteString(line)
|
|
514
|
+
} else {
|
|
515
|
+
block.WriteString(line)
|
|
516
|
+
}
|
|
517
|
+
case m[1] == "" && kind == "":
|
|
518
|
+
kind, stubHeading, ownHeading = m[2], heading, false
|
|
519
|
+
block.Reset()
|
|
520
|
+
block.WriteString(line)
|
|
521
|
+
case m[1] == "/" && m[2] == kind:
|
|
522
|
+
block.WriteString(line)
|
|
523
|
+
switch {
|
|
524
|
+
case stubHeading == "":
|
|
525
|
+
return nil, fmt.Errorf("%s:%d: <!-- %s --> section has no heading to name in its stub", rel, i+1, kind)
|
|
526
|
+
case kind == "model-surface" && keepModel:
|
|
527
|
+
out.WriteString(block.String())
|
|
528
|
+
case kind == "model-surface":
|
|
529
|
+
fmt.Fprintf(&out, "[model-surface section %q omitted for role %s: spec/plan/tasks name no model, agent, RAG, or tool surface; if the change touches one, read %s § %s]\n", stubHeading, role, rel, stubHeading)
|
|
530
|
+
default:
|
|
531
|
+
fmt.Fprintf(&out, "[root-only section %q omitted for role %s; the controlling root executes it]\n", stubHeading, role)
|
|
532
|
+
}
|
|
533
|
+
kind = ""
|
|
534
|
+
default:
|
|
535
|
+
return nil, fmt.Errorf("%s:%d: unbalanced section marker %q", rel, i+1, text)
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
if kind != "" {
|
|
539
|
+
return nil, fmt.Errorf("%s: unclosed <!-- %s --> section", rel, kind)
|
|
540
|
+
}
|
|
541
|
+
return []byte(out.String()), nil
|
|
542
|
+
}
|
|
543
|
+
|
|
352
544
|
// sliceInlineMaxBytes caps a workspace artifact inlined whole into a --slice
|
|
353
545
|
// bundle. Planning budgets size a whole feature, not one slice's read; a
|
|
354
546
|
// larger artifact goes by reference so the slice's agent reads only the
|
|
@@ -456,6 +648,70 @@ func writeAnchorIndex(bundle *strings.Builder, project, abs, label string, data
|
|
|
456
648
|
bundle.WriteByte('\n')
|
|
457
649
|
}
|
|
458
650
|
|
|
651
|
+
// standardCiteRE matches a "<file>.md § <heading>" citation, as a finding's
|
|
652
|
+
// "breaks <standard §>" field writes it; the heading text ends at a quote,
|
|
653
|
+
// pipe, semicolon, closing link bracket, or line end.
|
|
654
|
+
var standardCiteRE = regexp.MustCompile(`([\w.-]+\.md)\S*\s*§\s*([^"|;\n\]]+)`)
|
|
655
|
+
|
|
656
|
+
// writeCitedSections inlines each H1-H3 section of body (heading through the
|
|
657
|
+
// next heading of the same or higher level) that the inventory cites by
|
|
658
|
+
// "<file>.md § <heading>"; a citation may abbreviate the heading or name only
|
|
659
|
+
// its title before the colon. It returns the number of sections written.
|
|
660
|
+
// shortcut: a citation naming a heading by other words is missed and stays reachable through the anchor index; match the quoted line if reviewers cite that way.
|
|
661
|
+
func writeCitedSections(bundle *strings.Builder, rel string, body, inventory []byte) int {
|
|
662
|
+
var cites []string
|
|
663
|
+
for _, m := range standardCiteRE.FindAllStringSubmatch(string(inventory), -1) {
|
|
664
|
+
if m[1] == filepath.Base(rel) {
|
|
665
|
+
if c := strings.ToLower(strings.Trim(m[2], " \t.,:()`*")); c != "" {
|
|
666
|
+
cites = append(cites, c)
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
if len(cites) == 0 {
|
|
671
|
+
return 0
|
|
672
|
+
}
|
|
673
|
+
lines := strings.SplitAfter(string(body), "\n")
|
|
674
|
+
structural := lines
|
|
675
|
+
if masked, err := markdowntext.Structural(body); err == nil {
|
|
676
|
+
structural = strings.SplitAfter(string(masked), "\n")
|
|
677
|
+
}
|
|
678
|
+
level := func(i int) int {
|
|
679
|
+
text := strings.TrimRight(structural[i], "\r\n")
|
|
680
|
+
if !anchorHeadingRE.MatchString(text) {
|
|
681
|
+
return 0
|
|
682
|
+
}
|
|
683
|
+
return len(text) - len(strings.TrimLeft(text, "#"))
|
|
684
|
+
}
|
|
685
|
+
written, coveredTo := 0, 0
|
|
686
|
+
for i := range lines {
|
|
687
|
+
lvl := level(i)
|
|
688
|
+
if lvl == 0 || i < coveredTo {
|
|
689
|
+
continue
|
|
690
|
+
}
|
|
691
|
+
heading := strings.TrimSpace(strings.TrimLeft(strings.TrimRight(lines[i], "\r\n"), "#"))
|
|
692
|
+
lower := strings.ToLower(heading)
|
|
693
|
+
title, _, _ := strings.Cut(lower, ":")
|
|
694
|
+
title = strings.TrimSpace(title)
|
|
695
|
+
if !slices.ContainsFunc(cites, func(c string) bool {
|
|
696
|
+
// The title rule skips the H1: a one-word file title would match every citation.
|
|
697
|
+
return strings.HasPrefix(lower, c) || (lvl > 1 && title != "" && (c == title || strings.HasPrefix(c, title+" ")))
|
|
698
|
+
}) {
|
|
699
|
+
continue
|
|
700
|
+
}
|
|
701
|
+
end := len(lines)
|
|
702
|
+
for j := i + 1; j < len(lines); j++ {
|
|
703
|
+
if l := level(j); l > 0 && l <= lvl {
|
|
704
|
+
end = j
|
|
705
|
+
break
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
fmt.Fprintf(bundle, "===== %s § %s (cited by the recheck inventory) =====\n", rel, clipRunes(heading, 120))
|
|
709
|
+
bundle.WriteString(strings.TrimRight(strings.Join(lines[i:end], ""), "\r\n") + "\n\n")
|
|
710
|
+
written, coveredTo = written+1, end
|
|
711
|
+
}
|
|
712
|
+
return written
|
|
713
|
+
}
|
|
714
|
+
|
|
459
715
|
func clipRunes(s string, n int) string {
|
|
460
716
|
if r := []rune(s); len(r) > n {
|
|
461
717
|
return string(r[:n]) + "…"
|
|
@@ -486,16 +742,38 @@ func writeContextEntry(bundle *strings.Builder, abs, label string, seen map[stri
|
|
|
486
742
|
return true
|
|
487
743
|
}
|
|
488
744
|
|
|
745
|
+
// writeContractStub names a role contract the host already loads as the
|
|
746
|
+
// agent's system prompt instead of inlining a second copy. A missing file
|
|
747
|
+
// still fails, as in writeContextEntry.
|
|
748
|
+
func writeContractStub(bundle *strings.Builder, project, abs, label string, seen map[string]bool) bool {
|
|
749
|
+
seen[abs] = true
|
|
750
|
+
data, err := os.ReadFile(abs) // #nosec G304 -- abs is resolved from the validated skills root or project
|
|
751
|
+
if err != nil {
|
|
752
|
+
fmt.Fprintf(bundle, "===== %s =====\nMISSING: %s\n\n", label, label)
|
|
753
|
+
return false
|
|
754
|
+
}
|
|
755
|
+
path := label
|
|
756
|
+
if r, err := filepath.Rel(project, abs); err == nil && !strings.HasPrefix(r, "..") {
|
|
757
|
+
path = filepath.ToSlash(r)
|
|
758
|
+
}
|
|
759
|
+
fmt.Fprintf(bundle, "===== %s (not inlined: your host loads this role contract as your system prompt; %d bytes, sha256 %x; read %s only if your system prompt lacks it) =====\n\n",
|
|
760
|
+
label, len(data), sha256.Sum256(data), path)
|
|
761
|
+
return true
|
|
762
|
+
}
|
|
763
|
+
|
|
489
764
|
type contextOpts struct {
|
|
490
|
-
slug
|
|
491
|
-
phase
|
|
492
|
-
skill
|
|
493
|
-
role
|
|
494
|
-
slice
|
|
495
|
-
slices
|
|
496
|
-
triggers
|
|
497
|
-
skillsRoot
|
|
498
|
-
out
|
|
765
|
+
slug string
|
|
766
|
+
phase string
|
|
767
|
+
skill string
|
|
768
|
+
role string
|
|
769
|
+
slice string // display label: slices joined with "+"
|
|
770
|
+
slices []string
|
|
771
|
+
triggers []string
|
|
772
|
+
skillsRoot string
|
|
773
|
+
out string
|
|
774
|
+
recheck string
|
|
775
|
+
inlineContract bool
|
|
776
|
+
whole bool
|
|
499
777
|
}
|
|
500
778
|
|
|
501
779
|
func parseContextArgs(args []string, stderr io.Writer) (contextOpts, int) {
|
|
@@ -522,6 +800,14 @@ func parseContextArgs(args []string, stderr io.Writer) (contextOpts, int) {
|
|
|
522
800
|
opts.skillsRoot = value
|
|
523
801
|
case "--out":
|
|
524
802
|
opts.out = value
|
|
803
|
+
case "--recheck":
|
|
804
|
+
opts.recheck = value
|
|
805
|
+
case "--inline-contract":
|
|
806
|
+
opts.inlineContract = true
|
|
807
|
+
continue
|
|
808
|
+
case "--whole":
|
|
809
|
+
opts.whole = true
|
|
810
|
+
continue
|
|
525
811
|
default:
|
|
526
812
|
if strings.HasPrefix(args[i], "-") {
|
|
527
813
|
fmt.Fprintf(stderr, "context: unknown flag %q\n", args[i])
|
|
@@ -547,6 +833,14 @@ func parseContextArgs(args []string, stderr io.Writer) (contextOpts, int) {
|
|
|
547
833
|
}
|
|
548
834
|
}
|
|
549
835
|
opts.slice = strings.Join(opts.slices, "+")
|
|
836
|
+
if opts.whole && opts.slice != "" {
|
|
837
|
+
fmt.Fprintf(stderr, "context: --whole conflicts with --slice\n")
|
|
838
|
+
return opts, 2
|
|
839
|
+
}
|
|
840
|
+
if opts.recheck != "" && (opts.phase != "build" || opts.role == "" || opts.slice == "") {
|
|
841
|
+
fmt.Fprintf(stderr, "context: --recheck needs --phase build, --role, and --slice\n")
|
|
842
|
+
return opts, 2
|
|
843
|
+
}
|
|
550
844
|
if len(positional) == 1 {
|
|
551
845
|
opts.slug = positional[0]
|
|
552
846
|
} else if opts.out == "" {
|
|
@@ -623,6 +917,24 @@ func roleAgentPath(manifest loadsManifest, role string) string {
|
|
|
623
917
|
return "devrites-" + role + ".md"
|
|
624
918
|
}
|
|
625
919
|
|
|
920
|
+
// activeSliceScope is state.md's active_slice when it names a slice block in
|
|
921
|
+
// tasks.md, else "" (unset, "none", or stale cursors keep the whole bundle).
|
|
922
|
+
func activeSliceScope(featureDir string) string {
|
|
923
|
+
lines := strings.Split(string(readWorkspaceFile(featureDir, "state.md")), "\n")
|
|
924
|
+
// active_slice outlives Build; after it the root's autocomplete bundle stays whole.
|
|
925
|
+
if phase, _ := state.CursorField(lines, state.CursorPhase); strings.TrimSpace(phase) != "build" {
|
|
926
|
+
return ""
|
|
927
|
+
}
|
|
928
|
+
id, _ := state.CursorField(lines, state.CursorActiveSlice)
|
|
929
|
+
if id = strings.TrimSpace(id); !state.ValidSliceID(id) {
|
|
930
|
+
return ""
|
|
931
|
+
}
|
|
932
|
+
if _, ok := state.ExtractTaskSlice(readWorkspaceFile(featureDir, "tasks.md"), id); !ok {
|
|
933
|
+
return ""
|
|
934
|
+
}
|
|
935
|
+
return id
|
|
936
|
+
}
|
|
937
|
+
|
|
626
938
|
func bundleName(opts contextOpts) string {
|
|
627
939
|
name := opts.phase
|
|
628
940
|
if name == "" {
|
|
@@ -634,6 +946,9 @@ func bundleName(opts contextOpts) string {
|
|
|
634
946
|
if opts.slice != "" {
|
|
635
947
|
name += "." + opts.slice
|
|
636
948
|
}
|
|
949
|
+
if opts.recheck != "" {
|
|
950
|
+
name += ".recheck"
|
|
951
|
+
}
|
|
637
952
|
return name + ".bundle.md"
|
|
638
953
|
}
|
|
639
954
|
|