devrites 6.0.4 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +24 -9
- package/SECURITY.md +9 -6
- package/bin/devrites.mjs +28 -12
- package/docs/adr/0035-claude-root-leaves-plan-mode.md +33 -0
- package/docs/adr/0036-archive-recall-is-a-read-time-query.md +32 -0
- package/docs/adr/README.md +4 -2
- package/docs/architecture.md +3 -1
- package/docs/cli.md +25 -2
- package/docs/command-map.md +10 -8
- package/docs/engine/commands.md +6 -3
- package/docs/harness-compliance.md +2 -2
- package/docs/orchestration.md +5 -4
- package/docs/release.md +4 -4
- package/docs/skills.md +2 -2
- package/engine/commands.go +1 -1
- package/engine/help.go +10 -6
- package/engine/internal/acceptance/cli.go +4 -1
- package/engine/internal/acceptance/exec.go +11 -11
- package/engine/internal/devritespaths/paths.go +5 -0
- package/engine/internal/hostpack/hostpack.go +48 -3
- package/engine/internal/install/apply.go +68 -1
- package/engine/internal/install/binary.go +4 -0
- package/engine/internal/install/install.go +25 -15
- package/engine/internal/install/merge.go +287 -123
- package/engine/internal/install/preflight.go +71 -1
- package/engine/internal/install/uninstall.go +7 -1
- package/engine/internal/install/update.go +7 -3
- package/engine/internal/lib/claims.go +30 -14
- package/engine/internal/lib/cli_observe.go +6 -0
- package/engine/internal/lib/context.go +24 -7
- package/engine/internal/lib/diffscope.go +79 -3
- package/engine/internal/lib/dispatch.go +34 -7
- package/engine/internal/lib/drift.go +9 -2
- package/engine/internal/lib/handoff.go +14 -5
- package/engine/internal/lib/metrics.go +29 -9
- package/engine/internal/lib/migrate.go +30 -12
- package/engine/internal/lib/next.go +22 -2
- package/engine/internal/lib/open_visual.go +3 -1
- package/engine/internal/lib/recall.go +355 -0
- package/engine/internal/lib/regression.go +20 -0
- package/engine/internal/lib/resolve.go +96 -53
- package/engine/internal/lib/secretscan.go +24 -1
- package/engine/internal/lib/taskgraph.go +31 -1
- package/engine/internal/lib/util.go +18 -7
- package/engine/internal/lib/windows.go +68 -15
- package/engine/internal/markdowntext/markdowntext.go +45 -6
- package/engine/internal/notes/cli.go +5 -3
- package/engine/internal/notes/notes.go +8 -3
- package/engine/internal/overhaul/admit/run.go +16 -12
- package/engine/internal/overhaul/overhaul.go +1 -0
- package/engine/internal/overhaul/records/check.go +52 -9
- package/engine/internal/overhaul/render/run.go +3 -2
- package/engine/internal/overhaul/snapshot/run.go +2 -2
- package/engine/internal/parallel/git.go +5 -6
- package/engine/internal/parallel/ops.go +3 -0
- package/engine/internal/parallel/pathdisjoint.go +9 -4
- package/engine/internal/release/release.go +11 -9
- package/engine/internal/safepath/safepath.go +17 -1
- package/engine/internal/state/budgets.go +8 -4
- package/engine/internal/state/feature.go +3 -1
- package/engine/internal/state/observation.go +12 -7
- package/engine/internal/state/taskgraph.go +67 -12
- package/engine/internal/state/write.go +7 -1
- package/engine/main.go +5 -1
- package/pack/.claude/agents/_shared/composition-overhaul.md +2 -0
- package/pack/.claude/agents/devrites-devex-reviewer.md +5 -0
- package/pack/.claude/agents/devrites-evidence-scout.md +4 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +4 -1
- package/pack/.claude/agents/overhaul-implementer.md +1 -0
- package/pack/.claude/settings.json +4 -4
- 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 +1 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +8 -6
- package/pack/.claude/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +30 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/.claude/skills/overhaul/references/orchestration.md +6 -2
- package/pack/.claude/skills/overhaul/references/records.md +8 -3
- package/pack/.claude/skills/rite/SKILL.md +4 -3
- package/pack/.claude/skills/rite/reference/menu.md +6 -5
- package/pack/.claude/skills/rite-adopt/SKILL.md +4 -3
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +17 -14
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +9 -6
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +25 -21
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +6 -3
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +5 -5
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +19 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -3
- package/pack/.claude/skills/rite-customize/SKILL.md +1 -1
- package/pack/.claude/skills/rite-define/SKILL.md +3 -2
- package/pack/.claude/skills/rite-doctor/SKILL.md +12 -6
- package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/.claude/skills/rite-fast/SKILL.md +3 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +4 -3
- package/pack/.claude/skills/rite-learn/SKILL.md +2 -2
- package/pack/.claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/.claude/skills/rite-pov/SKILL.md +1 -1
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/.claude/skills/rite-prototype/SKILL.md +1 -1
- package/pack/.claude/skills/rite-prove/SKILL.md +4 -2
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +10 -5
- package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/.claude/skills/rite-review/SKILL.md +2 -1
- package/pack/.claude/skills/rite-seal/SKILL.md +3 -3
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/.claude/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/.claude/skills/rite-spec/SKILL.md +4 -1
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/.claude/skills/rite-status/SKILL.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/significance.md +2 -0
- package/pack/.claude/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +3 -2
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/.claude/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/claude/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/claude/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/claude/agents/overhaul-boundary.md +2 -0
- package/pack/generated/claude/agents/overhaul-craft.md +2 -0
- package/pack/generated/claude/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/claude/agents/overhaul-implementer.md +3 -0
- package/pack/generated/claude/agents/overhaul-recon.md +2 -0
- package/pack/generated/claude/agents/overhaul-specialist.md +2 -0
- package/pack/generated/claude/agents/overhaul-verifier.md +2 -0
- package/pack/generated/claude/settings.json +4 -4
- 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 +1 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +8 -6
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +30 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/claude/skills/overhaul/references/orchestration.md +6 -2
- package/pack/generated/claude/skills/overhaul/references/records.md +8 -3
- package/pack/generated/claude/skills/rite/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite/reference/menu.md +6 -5
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +17 -14
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +9 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +25 -21
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +6 -3
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +5 -5
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +19 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-define/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-fast/SKILL.md +3 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/claude/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/claude/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/claude/skills/rite-quick/SKILL.md +10 -5
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/claude/skills/rite-review/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-seal/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/claude/skills/rite-spec/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +7 -7
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +6 -1
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +4 -0
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +1 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +3 -3
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +5 -2
- package/pack/generated/codex/agents/devrites-proof-runner.toml +2 -2
- package/pack/generated/codex/agents/devrites-security-auditor.toml +1 -1
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +1 -1
- package/pack/generated/codex/agents/devrites-slice-wright.toml +5 -5
- package/pack/generated/codex/agents/devrites-test-analyst.toml +5 -5
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +1 -1
- package/pack/generated/codex/agents/fast-builder.toml +3 -3
- package/pack/generated/codex/agents/fast-critic.toml +3 -3
- package/pack/generated/codex/agents/overhaul-backend-engineer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-boundary.toml +2 -0
- package/pack/generated/codex/agents/overhaul-craft.toml +2 -0
- package/pack/generated/codex/agents/overhaul-frontend-engineer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-implementer.toml +2 -0
- package/pack/generated/codex/agents/overhaul-recon.toml +2 -0
- package/pack/generated/codex/agents/overhaul-specialist.toml +2 -0
- package/pack/generated/codex/agents/overhaul-verifier.toml +2 -0
- 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 +1 -1
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +8 -6
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +30 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +2 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/codex/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/codex/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/codex/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/codex/skills/overhaul/references/records.md +8 -3
- package/pack/generated/codex/skills/rite/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite/reference/menu.md +6 -5
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +18 -15
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +9 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +25 -21
- package/pack/generated/codex/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +6 -3
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +6 -6
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-plan/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-prove/SKILL.md +5 -3
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/codex/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/codex/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/codex/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/codex/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-temper/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/devin/AGENTS.md +1 -1
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/devin/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/devin/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/devin/agents/overhaul-boundary.md +2 -0
- package/pack/generated/devin/agents/overhaul-craft.md +2 -0
- package/pack/generated/devin/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/devin/agents/overhaul-implementer.md +2 -0
- package/pack/generated/devin/agents/overhaul-recon.md +2 -0
- package/pack/generated/devin/agents/overhaul-specialist.md +2 -0
- package/pack/generated/devin/agents/overhaul-verifier.md +2 -0
- 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 +1 -1
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +8 -6
- package/pack/generated/devin/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +2 -2
- package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +33 -13
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +2 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/devin/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/devin/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/devin/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/devin/skills/overhaul/references/records.md +8 -3
- package/pack/generated/devin/skills/rite/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite/reference/menu.md +6 -5
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +19 -16
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +9 -6
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +26 -22
- package/pack/generated/devin/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +6 -3
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +6 -6
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/devin/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-explain/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/devin/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/devin/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-plan/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/devin/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/devin/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-prove/SKILL.md +5 -3
- package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/devin/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/devin/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/devin/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/devin/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/devin/skills/rite-spec/reference/investigation.md +1 -1
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/devin/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-temper/SKILL.md +3 -3
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +3 -1
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +2 -2
- package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/omp/agents/devrites-code-reviewer.md +7 -7
- package/pack/generated/omp/agents/devrites-devex-reviewer.md +6 -1
- package/pack/generated/omp/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/omp/agents/devrites-frontend-reviewer.md +1 -1
- package/pack/generated/omp/agents/devrites-plan-drafter.md +3 -3
- package/pack/generated/omp/agents/devrites-plan-reviewer.md +5 -2
- package/pack/generated/omp/agents/devrites-proof-runner.md +2 -2
- package/pack/generated/omp/agents/devrites-security-auditor.md +1 -1
- package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +1 -1
- package/pack/generated/omp/agents/devrites-slice-wright.md +5 -5
- package/pack/generated/omp/agents/devrites-test-analyst.md +5 -5
- package/pack/generated/omp/agents/devrites-upgrade-planner.md +1 -1
- package/pack/generated/omp/agents/fast-builder.md +3 -3
- package/pack/generated/omp/agents/fast-critic.md +3 -3
- package/pack/generated/omp/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/omp/agents/overhaul-boundary.md +2 -0
- package/pack/generated/omp/agents/overhaul-craft.md +2 -0
- package/pack/generated/omp/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/omp/agents/overhaul-implementer.md +2 -0
- package/pack/generated/omp/agents/overhaul-recon.md +2 -0
- package/pack/generated/omp/agents/overhaul-specialist.md +2 -0
- package/pack/generated/omp/agents/overhaul-verifier.md +2 -0
- package/pack/generated/omp/commands/rite-resolve.md +1 -1
- package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +4 -4
- package/pack/generated/omp/skills/devrites-audit/SKILL.md +5 -5
- package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +5 -5
- package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +1 -1
- package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +1 -1
- package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +12 -10
- package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +1 -1
- package/pack/generated/omp/skills/devrites-doubt/SKILL.md +6 -6
- package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/craft.md +1 -1
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +4 -4
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/fullstack.md +1 -1
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +8 -8
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +2 -2
- package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +2 -2
- package/pack/generated/omp/skills/devrites-interview/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +8 -7
- package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +38 -18
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +6 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +8 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/glossary.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +3 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +4 -4
- package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ci-workflows.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/react.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/review/stack-profile.md +5 -5
- package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +15 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +14 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/index.md +2 -2
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +12 -8
- package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +4 -4
- package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +1 -1
- package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +3 -3
- package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +10 -10
- package/pack/generated/omp/skills/devrites-ux-shape/reference/brief-template.md +3 -3
- package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +1 -1
- package/pack/generated/omp/skills/overhaul/references/orchestration.md +6 -2
- package/pack/generated/omp/skills/overhaul/references/records.md +8 -3
- package/pack/generated/omp/skills/rite/SKILL.md +8 -7
- package/pack/generated/omp/skills/rite/reference/menu.md +6 -5
- package/pack/generated/omp/skills/rite-adopt/SKILL.md +6 -5
- package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +22 -19
- package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +11 -8
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +25 -21
- package/pack/generated/omp/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +7 -4
- package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/frontend-trigger.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +9 -9
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +6 -6
- package/pack/generated/omp/skills/rite-build/reference/tdd.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +27 -8
- package/pack/generated/omp/skills/rite-clarify/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-converge/SKILL.md +16 -15
- package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +4 -4
- package/pack/generated/omp/skills/rite-customize/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-define/SKILL.md +25 -24
- package/pack/generated/omp/skills/rite-define/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-define/reference/gates.md +2 -2
- package/pack/generated/omp/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/omp/skills/rite-dogfood/SKILL.md +5 -5
- package/pack/generated/omp/skills/rite-explain/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
- package/pack/generated/omp/skills/rite-fast/SKILL.md +12 -10
- package/pack/generated/omp/skills/rite-fast/reference/artifacts.md +1 -1
- package/pack/generated/omp/skills/rite-frame/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-frame/reference/failure-modes.md +4 -4
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +7 -6
- package/pack/generated/omp/skills/rite-learn/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-plan/SKILL.md +9 -9
- package/pack/generated/omp/skills/rite-plan/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +3 -1
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +6 -4
- package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +1 -1
- package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +9 -9
- package/pack/generated/omp/skills/rite-polish/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/backend-polish.md +2 -2
- package/pack/generated/omp/skills/rite-polish/reference/browser-polish-evidence.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/code.md +8 -8
- package/pack/generated/omp/skills/rite-polish/reference/design-memory.md +3 -3
- package/pack/generated/omp/skills/rite-polish/reference/design-system-discovery.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/generated/omp/skills/rite-polish/reference/ledger.md +3 -3
- package/pack/generated/omp/skills/rite-polish/reference/ui.md +1 -1
- package/pack/generated/omp/skills/rite-pov/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +6 -5
- package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +9 -7
- package/pack/generated/omp/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-prove/SKILL.md +17 -15
- package/pack/generated/omp/skills/rite-prove/reference/acceptance-proof.md +7 -7
- package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +3 -3
- package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +4 -3
- package/pack/generated/omp/skills/rite-quick/SKILL.md +19 -14
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +6 -6
- package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/omp/skills/rite-review/SKILL.md +23 -22
- package/pack/generated/omp/skills/rite-review/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/cognitive-load.md +2 -2
- package/pack/generated/omp/skills/rite-review/reference/nielsen-heuristics.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/performance-review.md +1 -1
- package/pack/generated/omp/skills/rite-review/reference/security-review.md +2 -2
- package/pack/generated/omp/skills/rite-seal/SKILL.md +11 -11
- package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +3 -3
- package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +3 -1
- package/pack/generated/omp/skills/rite-seal/reference/output.md +1 -1
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +4 -4
- package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/omp/skills/rite-ship/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-ship/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-ship/reference/close-out.md +5 -4
- package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +2 -2
- package/pack/generated/omp/skills/rite-ship/reference/rollout.md +3 -3
- package/pack/generated/omp/skills/rite-spec/SKILL.md +17 -14
- package/pack/generated/omp/skills/rite-spec/reference/anti-patterns.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/investigation.md +3 -3
- package/pack/generated/omp/skills/rite-spec/reference/question-protocol.md +1 -1
- package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +2 -2
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +10 -10
- package/pack/generated/omp/skills/rite-status/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-temper/SKILL.md +13 -13
- package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -3
- package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +3 -3
- package/pack/generated/omp/skills/rite-temper/reference/significance.md +4 -2
- package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -5
- package/pack/generated/omp/skills/rite-vet/SKILL.md +14 -13
- package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +3 -3
- package/pack/generated/omp/skills/rite-vet/reference/depth.md +3 -3
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +5 -5
- package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/pi/agents/devrites-devex-reviewer.md +5 -0
- package/pack/generated/pi/agents/devrites-evidence-scout.md +4 -0
- package/pack/generated/pi/agents/devrites-plan-reviewer.md +4 -1
- package/pack/generated/pi/agents/overhaul-backend-engineer.md +2 -0
- package/pack/generated/pi/agents/overhaul-boundary.md +2 -0
- package/pack/generated/pi/agents/overhaul-craft.md +2 -0
- package/pack/generated/pi/agents/overhaul-frontend-engineer.md +2 -0
- package/pack/generated/pi/agents/overhaul-implementer.md +2 -0
- package/pack/generated/pi/agents/overhaul-recon.md +2 -0
- package/pack/generated/pi/agents/overhaul-specialist.md +2 -0
- package/pack/generated/pi/agents/overhaul-verifier.md +2 -0
- package/pack/generated/pi/prompts/rite-resolve.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 +1 -1
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +8 -6
- package/pack/generated/pi/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-interview/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +3 -3
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
- package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +30 -10
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +2 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +13 -0
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
- package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/generated/pi/skills/overhaul/SKILL.md +15 -15
- package/pack/generated/pi/skills/overhaul/references/audit-domains.md +2 -2
- package/pack/generated/pi/skills/overhaul/references/orchestration.md +11 -7
- package/pack/generated/pi/skills/overhaul/references/records.md +8 -3
- package/pack/generated/pi/skills/rite/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite/reference/menu.md +6 -5
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +18 -15
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +9 -6
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +25 -21
- package/pack/generated/pi/skills/rite-build/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +6 -3
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +6 -6
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +20 -1
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-converge/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-customize/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-define/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +12 -6
- package/pack/generated/pi/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-fast/SKILL.md +8 -6
- package/pack/generated/pi/skills/rite-frame/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-learn/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-plan/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +2 -0
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -1
- package/pack/generated/pi/skills/rite-polish/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-pov/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +5 -4
- package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +7 -5
- package/pack/generated/pi/skills/rite-prototype/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-prove/SKILL.md +5 -3
- package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/pi/skills/rite-quick/SKILL.md +11 -6
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +4 -5
- package/pack/generated/pi/skills/rite-review/SKILL.md +3 -2
- package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +2 -0
- package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +5 -2
- package/pack/generated/pi/skills/rite-ship/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-ship/reference/close-out.md +3 -2
- package/pack/generated/pi/skills/rite-spec/SKILL.md +5 -2
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/pi/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-temper/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-temper/reference/significance.md +2 -0
- package/pack/generated/pi/skills/rite-upgrade/SKILL.md +4 -2
- package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -3
- package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +1 -1
- package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +1 -1
- package/package.json +3 -2
- package/scripts/build-host-artifacts.sh +13 -0
- package/scripts/codex-generate.sh +5 -1
- package/scripts/devin-generate.sh +4 -3
- package/scripts/install-lib.sh +5 -0
- package/scripts/omp-generate.sh +23 -1
- package/scripts/pi-generate.sh +2 -2
- package/engine/cmd/releasepack/main_test.go +0 -239
- package/engine/harnessmatrix_test.go +0 -46
- package/engine/help_test.go +0 -241
- package/engine/internal/acceptance/acceptance_test.go +0 -946
- package/engine/internal/devritespaths/paths_test.go +0 -128
- package/engine/internal/fsutil/copy_test.go +0 -154
- package/engine/internal/gate/gate_test.go +0 -865
- package/engine/internal/gate/readiness_binding_test.go +0 -443
- package/engine/internal/gitenv/env_test.go +0 -48
- package/engine/internal/hostpack/hostpack_test.go +0 -269
- package/engine/internal/install/install_test.go +0 -1741
- package/engine/internal/install/workspace_advisory_test.go +0 -54
- package/engine/internal/lib/candidate_test.go +0 -506
- package/engine/internal/lib/claims_test.go +0 -267
- package/engine/internal/lib/closeout_test.go +0 -266
- package/engine/internal/lib/context_next_test.go +0 -912
- package/engine/internal/lib/cursor_compat_test.go +0 -65
- package/engine/internal/lib/detect_test.go +0 -118
- package/engine/internal/lib/drift_test.go +0 -135
- package/engine/internal/lib/dup_test.go +0 -666
- package/engine/internal/lib/environment_report_test.go +0 -54
- package/engine/internal/lib/evidencefresh_test.go +0 -120
- package/engine/internal/lib/handoff_test.go +0 -83
- package/engine/internal/lib/manifest_union_test.go +0 -251
- package/engine/internal/lib/metrics_test.go +0 -28
- package/engine/internal/lib/migrate_test.go +0 -213
- package/engine/internal/lib/observe_budgets_test.go +0 -428
- package/engine/internal/lib/open_visual_test.go +0 -291
- package/engine/internal/lib/regression_test.go +0 -282
- package/engine/internal/lib/resolve_remediation_test.go +0 -192
- package/engine/internal/lib/secretscan_test.go +0 -556
- package/engine/internal/lib/slicecheck_test.go +0 -170
- package/engine/internal/lib/taskgraph_test.go +0 -353
- package/engine/internal/lib/triggers_test.go +0 -23
- package/engine/internal/lib/util_test.go +0 -148
- package/engine/internal/lib/visual_outline_test.go +0 -189
- package/engine/internal/lib/windows_test.go +0 -420
- package/engine/internal/lib/workspace_read_test.go +0 -102
- package/engine/internal/markdowntext/markdowntext_fuzz_test.go +0 -36
- package/engine/internal/markdowntext/markdowntext_test.go +0 -58
- package/engine/internal/markdowntext/testdata/structural.json +0 -277
- package/engine/internal/notes/notes_test.go +0 -545
- package/engine/internal/overhaul/admit/admit_test.go +0 -204
- package/engine/internal/overhaul/admit/packet_test.go +0 -223
- package/engine/internal/overhaul/bench/run_test.go +0 -316
- package/engine/internal/overhaul/ovio/ovio_test.go +0 -75
- package/engine/internal/overhaul/packet/packet_test.go +0 -263
- package/engine/internal/overhaul/records/init_test.go +0 -96
- package/engine/internal/overhaul/records/records_test.go +0 -696
- package/engine/internal/overhaul/records/run_test.go +0 -77
- package/engine/internal/overhaul/render/run_test.go +0 -928
- package/engine/internal/overhaul/score/run_test.go +0 -636
- package/engine/internal/overhaul/snapshot/run_test.go +0 -718
- package/engine/internal/parallel/cli_test.go +0 -91
- package/engine/internal/parallel/ops_test.go +0 -939
- package/engine/internal/parallel/parallel_test.go +0 -645
- package/engine/internal/parallel/pathdisjoint_fuzz_test.go +0 -43
- package/engine/internal/parallel/pathdisjoint_test.go +0 -193
- package/engine/internal/parallel/select_test.go +0 -95
- package/engine/internal/parallel/testdata/fuzz/FuzzPathDisjoint/a449b81b4711b7b4 +0 -3
- package/engine/internal/reason/reason_test.go +0 -37
- package/engine/internal/release/release_test.go +0 -181
- package/engine/internal/rootfacts/facts_test.go +0 -364
- package/engine/internal/safepath/safepath_fuzz_test.go +0 -21
- package/engine/internal/safepath/safepath_test.go +0 -69
- package/engine/internal/safepath/safepath_windows_test.go +0 -26
- package/engine/internal/state/acceptance_test.go +0 -57
- package/engine/internal/state/budgets_test.go +0 -135
- package/engine/internal/state/cmd/workflowmanifest/main_test.go +0 -96
- package/engine/internal/state/concurrency_test.go +0 -184
- package/engine/internal/state/cursor_fuzz_test.go +0 -80
- package/engine/internal/state/cursor_test.go +0 -276
- package/engine/internal/state/observation_test.go +0 -961
- package/engine/internal/state/observation_unix_test.go +0 -68
- package/engine/internal/state/state_test.go +0 -986
- package/engine/internal/state/taskgraph_fuzz_test.go +0 -38
- package/engine/internal/state/taskgraph_test.go +0 -43
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/114b28f68c1fa4db +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/378a0f2218e812ea +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/39eaa26fcb481e3c +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/776ca1dc0143acf0 +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/9295930c1ebb81df +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/a60de309dc33be0d +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f04dc7b06ef7c99f +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f3000ac510878bd6 +0 -4
- package/engine/internal/state/testdata/fuzz/FuzzWorkspaceSchemaRow/a75aabb9f2a847d5 +0 -2
- package/engine/internal/state/workspaceschema_fuzz_test.go +0 -27
- package/engine/internal/state/workspaceschema_test.go +0 -101
- package/engine/internal/state/write_test.go +0 -136
- package/engine/internal/version/version_test.go +0 -29
- package/engine/internal/workflow/commands_test.go +0 -18
- package/engine/note_routing_test.go +0 -95
- package/engine/observation_contract_test.go +0 -175
- package/engine/root_routing_test.go +0 -340
|
@@ -51,8 +51,9 @@ records move intact.
|
|
|
51
51
|
Before restoring an archive, verify its identity, released cursor form and declared
|
|
52
52
|
workspace schema, that the live destination is absent, and that ACTIVE is empty or
|
|
53
53
|
already names this slug. A collision or another active feature stops restoration;
|
|
54
|
-
do not replace its workspace or cursor.
|
|
55
|
-
|
|
54
|
+
do not replace its workspace or cursor. A cursor with no `schema` row predates the
|
|
55
|
+
engine schema and needs a human-approved `devrites-engine migrate <slug>` before the
|
|
56
|
+
engine accepts it; beyond that, age or encoding alone never requires normalization (see
|
|
56
57
|
[workspace-artifact-schema.md](../../devrites-lib/reference/workspace-artifact-schema.md)).
|
|
57
58
|
An unsupported declared schema stops restoration: record the observed version,
|
|
58
59
|
installed engine's recovery diagnostic and pending normalization owner. Do not guess
|
|
@@ -6,7 +6,7 @@ user-invocable: true
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/elicitation.md","devrites-lib/reference/standards/agents.md","rite-spec/reference/investigation.md","rite-spec/reference/question-protocol.md","rite-spec/reference/spec-template.md","rite-spec/reference/spec-checklists.md","rite-spec/reference/state-workspace.md","rite-spec/reference/acceptance-criteria.md","rite-spec/reference/interview-patterns.md","rite-spec/reference/ai-spec-template.md","rite-spec/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"edge-cases":["devrites-lib/reference/standards/edge-case-trace.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"principles":["devrites-lib/reference/standards/principles.md"],"references":["rite-spec/reference/references-intake.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md"],"workspaceByRole":{"evidence-scout":["brief.md","spec.md","state.md","questions.md"]}} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context <slug> --phase spec` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase spec` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
# /rite-spec: investigate and write the spec
|
|
@@ -58,7 +58,10 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
58
58
|
**Completion:** it includes both, and every ask is listed. **Failing case:** "CSV export
|
|
59
59
|
and an email digest" yields a CSV-only spec; the digest is neither Non-goal nor question.
|
|
60
60
|
1a. **Dedupe.** Search local issues/PRDs, work, and archive. On a close match ask
|
|
61
|
-
extend/adopt/new, then record the choice; otherwise continue silently.
|
|
61
|
+
extend/adopt/new, then record the choice; otherwise continue silently. A slug handed
|
|
62
|
+
off by `/rite-adopt` extends that adopted workspace without asking. Adopting a
|
|
63
|
+
pressure-test provisional slug turns each `Hold:` in its `investigation-map.md` into an
|
|
64
|
+
open `gate: blocking` question in `questions.md`.
|
|
62
65
|
A recorded [feature-sequence continuation](../rite-plan/reference/slicing.md#continuation-workspaces)
|
|
63
66
|
is a **new** workspace (`<parent>-2`): carry the parent slug and position into
|
|
64
67
|
`brief.md`, read the parent artifacts as design input, and do not route to
|
|
@@ -131,7 +131,7 @@ None.
|
|
|
131
131
|
| slice_mode | none |
|
|
132
132
|
| risk | none |
|
|
133
133
|
| spec_gate | <passed <iso>; marker sweep: <n> files, <k> hits, <d> discarded — absent until /rite-spec passes> |
|
|
134
|
-
| next_action | <single command + reason
|
|
134
|
+
| next_action | <single command + reason; parked recovery names the invoking command> |
|
|
135
135
|
| return_phase | <originating later phase; clarification or agent-owned technical backtracking only> |
|
|
136
136
|
| return_next_action | <saved originating command> |
|
|
137
137
|
| schema | 4 |
|
|
@@ -154,7 +154,7 @@ Before an active caller moves backward, it copies its current phase and
|
|
|
154
154
|
non-empty action into the two return rows. Nested Plan, Vet, Build, and proof
|
|
155
155
|
work preserves that valid cursor. Once the prerequisite chain is green, the
|
|
156
156
|
controlling caller restores the saved phase/action and removes both rows in one
|
|
157
|
-
rewrite. A real HITL or
|
|
157
|
+
rewrite. A real HITL or parked-recovery stop retains the cursor for cold
|
|
158
158
|
resume. Never overwrite an existing valid return cursor, and preserve every
|
|
159
159
|
unrelated Markdown byte. `/rite-clarify` applies its stricter native cursor protocol in `/rite-clarify`.
|
|
160
160
|
|
|
@@ -6,7 +6,7 @@ user-invocable: true
|
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
8
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md"],"workspace":["state.md","tasks.md","questions.md"]} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --skill rite-status` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
10
10
|
|
|
11
11
|
# /rite-status: active feature status
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@ user-invocable: true
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/agents.md","rite-temper/reference/significance.md","rite-temper/reference/scope-modes.md","rite-temper/reference/review-dimensions.md","rite-temper/reference/strategy-template.md","rite-temper/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","design-brief.md"],"workspaceByRole":{"strategy-reviewer":["brief.md","spec.md","decision-coverage.md","decisions.md","strategy.md","state.md"]}} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context <slug> --phase temper` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase temper` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
# /rite-temper: review scope and risk before planning
|
|
@@ -120,7 +120,7 @@ the spec applicability map triggers that risk family.
|
|
|
120
120
|
Unapproved irreversible choices and unresolved growth qids set `Awaiting human`.
|
|
121
121
|
Objective below-bar findings continue correction.
|
|
122
122
|
7. **Adversarial verification loop:** ask the exact
|
|
123
|
-
[`devrites-strategy-reviewer`](
|
|
123
|
+
[`devrites-strategy-reviewer`](../../agents/devrites-strategy-reviewer.md)
|
|
124
124
|
through the native fresh-context contract in
|
|
125
125
|
[`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** its `--role strategy-reviewer` read-set
|
|
126
126
|
(hardened spec, `strategy.md`, claim-check artifacts) + rubric, no authoring reasoning. Fold technical findings into one correction;
|
|
@@ -15,6 +15,8 @@ so they agree on when it fires.
|
|
|
15
15
|
module/service boundaries or has many dependents.
|
|
16
16
|
- **Greenfield / ambiguous scope:** a new surface with no existing seam to follow, or a spec
|
|
17
17
|
whose "right size" is genuinely open (multiple defensible scopes).
|
|
18
|
+
- **Low detectability:** no existing test, gate, or monitor would show a wrong result
|
|
19
|
+
in the affected area (no suite there, silent data change), so a mistake ships unseen.
|
|
18
20
|
- **Multi-slice / multi-day:** the work decomposes into several slices (large enough that a
|
|
19
21
|
wrong scope call is expensive to unwind).
|
|
20
22
|
- **The user asked:** "think bigger", "is this ambitious enough", "scope check", "pre-mortem",
|
|
@@ -6,7 +6,7 @@ user-invocable: true
|
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
8
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/agents.md"],"triggers":{"reslice":["rite-plan/reference/slicing.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","decisions.md","questions.md","evidence.md","touched-files.md","review.md","seal.md","polish-report.md","browser-evidence.md"],"workspaceByRole":{"upgrade-planner":["state.md","spec.md","plan.md","tasks.md","decisions.md","questions.md"]}} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --skill rite-upgrade` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
10
10
|
|
|
11
11
|
# /rite-upgrade: reconcile a released workspace safely
|
|
12
12
|
|
|
@@ -25,7 +25,9 @@ references, and only current phase contracts needed for the observed gap.
|
|
|
25
25
|
or Git. It observes, admits, invokes current owners, and re-audits only.
|
|
26
26
|
- Recognize only released workspace forms: `.devrites/work/<slug>/state.md` with v1/v2
|
|
27
27
|
bullet fields (`- Phase:`, `- Next step:`, optional `- qid:`) or the v3 cursor table.
|
|
28
|
-
|
|
28
|
+
A cursor with no `schema` row (every v1/v2 form, older v3 tables) is refused by the
|
|
29
|
+
engine until the human runs the `migrate` command its refusal names (step 0). Otherwise
|
|
30
|
+
preserve its encoding; only its owning rite may change fields. Never create aliases,
|
|
29
31
|
journals, telemetry, version markers, or an engine migrator.
|
|
30
32
|
- Older provenance, cursor form, or pack version alone is never a defect. A repair requires
|
|
31
33
|
a current rule, exact workspace evidence, affected gate, owning rite, exact paths, and
|
|
@@ -5,8 +5,8 @@ argument-hint: "[slug] [--cross-model] [--full]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"workspaceByRole":{"devex-reviewer":["spec.md","plan.md","tasks.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context <slug> --phase vet` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"workspaceByRole":{"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase vet` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
# /rite-vet: review the plan before build
|
|
@@ -160,7 +160,8 @@ plan declares a root-authored executable workflow file, read
|
|
|
160
160
|
editing intent/decision/assumption/question owners, re-scan affected coverage,
|
|
161
161
|
assumptions, uncertainty, and gates. Keep state non-READY. Every scenario and
|
|
162
162
|
criterion needs positive, discriminating proof; every slice must be one-pass
|
|
163
|
-
implementable; developer plans
|
|
163
|
+
implementable; developer plans (trigger `devex`) write the devex reviewer's
|
|
164
|
+
predicted scorecard to `devex.md`. Durable commands
|
|
164
165
|
are portable repository commands, not host wrappers — resolve them with
|
|
165
166
|
`devrites-engine detect commands` (Makefile/package.json/manifests, no
|
|
166
167
|
execution) and cite the resolved text verbatim; an `unresolved` slot means
|
|
@@ -68,7 +68,7 @@ Suppressed (confidence ≤4, unverified): <count — one line each>
|
|
|
68
68
|
## 6. Native reviewer accounts
|
|
69
69
|
- `devrites-plan-reviewer`: <findings + resolution | evidence-based No-findings>
|
|
70
70
|
- `devrites-strategy-reviewer`: <current Temper verdict | Not-applicable: low-stakes skip>
|
|
71
|
-
- `devrites-devex-reviewer`: <findings + resolution | No-findings | Not-applicable: no developer surface
|
|
71
|
+
- `devrites-devex-reviewer`: <findings + resolution | No-findings | Not-applicable: no developer surface>; predicted scorecard → `devex.md`
|
|
72
72
|
- Recheck: <not-needed | one narrow recheck and result>
|
|
73
73
|
- Cross-model (if --cross-model): <overlap / unique findings — informational until approved>
|
|
74
74
|
- Final: floor = <band>; unresolved → <none | blocking qid>
|
|
@@ -5,7 +5,7 @@ argument-hint: "[PR number|PR URL|blank for current branch]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/loop-operations.md"],"triggers":{"security":["devrites-lib/reference/standards/security.md"]},"workspace":[]} -->
|
|
8
|
-
> Read-set manifest: `devrites-engine context
|
|
8
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --skill rite-watch-pr` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
9
9
|
|
|
10
10
|
# /rite-watch-pr: read-only PR and CI observation
|
|
11
11
|
|
|
@@ -6,7 +6,7 @@ user-invocable: true
|
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
8
|
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/tooling.md"],"workspace":["spec.md","plan.md","decisions.md","state.md"]} -->
|
|
9
|
-
> Read-set manifest: `devrites-engine context
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --skill rite-zoom-out` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
10
10
|
|
|
11
11
|
# /rite-zoom-out: step up one abstraction layer
|
|
12
12
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"bin/",
|
|
33
33
|
"engine/",
|
|
34
34
|
"!engine/tests/",
|
|
35
|
-
"!engine
|
|
35
|
+
"!engine/**/testdata/",
|
|
36
|
+
"!engine/**/*_test.go",
|
|
36
37
|
"pack/",
|
|
37
38
|
"scripts/build-host-artifacts.sh",
|
|
38
39
|
"scripts/codex-generate.sh",
|
|
@@ -64,6 +64,13 @@ copy_tree() {
|
|
|
64
64
|
cp -R "$_src" "$_dest"
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
# devrites-engine context defaults to .claude/skills; each host's bundles must
|
|
68
|
+
# come from its own installed tree, so every call (even one wrapped across
|
|
69
|
+
# lines) in that host's Markdown names it. $1 rendered tree, $2 skills root.
|
|
70
|
+
pin_context_skills_root() {
|
|
71
|
+
find "$1" -type f -name '*.md' -exec perl -0pi -e 's#devrites-engine(\s+)context(?!\s+--skills-root)(?=\s+[<\[-])#devrites-engine${1}context --skills-root '"$2"'#g' {} +
|
|
72
|
+
}
|
|
73
|
+
|
|
67
74
|
render_codex_skill_tree() {
|
|
68
75
|
_sd="$1"
|
|
69
76
|
_dest="$2"
|
|
@@ -92,6 +99,7 @@ render_codex_skill_tree() {
|
|
|
92
99
|
;;
|
|
93
100
|
esac
|
|
94
101
|
done < <(find "$_sd" -type f)
|
|
102
|
+
pin_context_skills_root "$_dest" .agents/skills
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
render_omp_skill_tree() {
|
|
@@ -105,15 +113,18 @@ render_omp_skill_tree() {
|
|
|
105
113
|
case "$_r" in
|
|
106
114
|
SKILL.md)
|
|
107
115
|
gen_omp_skill_file "$f" "$_out"
|
|
116
|
+
omp_rewrite_skill_refs "$_out" "$(basename "$_dest")/$_r"
|
|
108
117
|
;;
|
|
109
118
|
*.md)
|
|
110
119
|
gen_omp_markdown_file "$f" "$_out"
|
|
120
|
+
omp_rewrite_skill_refs "$_out" "$(basename "$_dest")/$_r"
|
|
111
121
|
;;
|
|
112
122
|
*)
|
|
113
123
|
cp "$f" "$_out"
|
|
114
124
|
;;
|
|
115
125
|
esac
|
|
116
126
|
done < <(find "$_sd" -type f)
|
|
127
|
+
pin_context_skills_root "$_dest" .omp/skills
|
|
117
128
|
}
|
|
118
129
|
|
|
119
130
|
render_pi_skill_tree() {
|
|
@@ -136,6 +147,7 @@ render_pi_skill_tree() {
|
|
|
136
147
|
;;
|
|
137
148
|
esac
|
|
138
149
|
done < <(find "$_sd" -type f)
|
|
150
|
+
pin_context_skills_root "$_dest" .pi/skills
|
|
139
151
|
}
|
|
140
152
|
|
|
141
153
|
render_devin_skill_tree() {
|
|
@@ -158,6 +170,7 @@ render_devin_skill_tree() {
|
|
|
158
170
|
;;
|
|
159
171
|
esac
|
|
160
172
|
done < <(find "$_sd" -type f)
|
|
173
|
+
pin_context_skills_root "$_dest" .devin/skills
|
|
161
174
|
}
|
|
162
175
|
|
|
163
176
|
mkdir -p "$OUT_ROOT/claude" "$OUT_ROOT/codex" "$OUT_ROOT/omp" "$OUT_ROOT/pi" "$OUT_ROOT/devin"
|
|
@@ -20,10 +20,12 @@ gen_codex_markdown_file() {
|
|
|
20
20
|
-e 's#\.claude/skills/#.agents/skills/#g' \
|
|
21
21
|
-e 's#\.claude/agents/([A-Za-z0-9_-]+)\.md#.codex/agents/\1.toml#g' \
|
|
22
22
|
-e 's#\.claude/agents/#.codex/agents/#g' \
|
|
23
|
+
-e 's#\]\(((\.\./)+)agents/([A-Za-z0-9_-]+)\.md#](\1../.codex/agents/\3.toml#g' \
|
|
23
24
|
-e 's#(\.\./)+agents/([A-Za-z0-9_-]+)\.md#.codex/agents/\2.toml#g' \
|
|
24
25
|
-e 's#\.codex/agents/([A-Za-z0-9_-]+)\.md#.codex/agents/\1.toml#g' \
|
|
25
26
|
-e 's#Host mapping: Claude Code uses `Agent` \(`Task` is its legacy alias\); Codex uses#Host mapping: Codex fresh-context dispatch uses#g' \
|
|
26
27
|
-e 's#`Agent` call#`spawn_agent` call#g' \
|
|
28
|
+
-e 's#^Claude: N concurrent Task wrights \(`acceptEdits`, cwd=worktree\)\. Codex: require#Codex: require#' \
|
|
27
29
|
-e 's#Task breakdown#Work-item breakdown#g' \
|
|
28
30
|
-e 's#(^|[^A-Za-z0-9_])Task([^A-Za-z0-9_]|$)#\1spawn_agent\2#g' \
|
|
29
31
|
-e 's#dispatch `devrites-source-driven`#invoke `devrites-source-driven`#g' \
|
|
@@ -77,7 +79,9 @@ gen_codex_agent() {
|
|
|
77
79
|
echo "gen_codex_agent: $(basename "$_src") body contains ''' (unrepresentable in a TOML literal string)" >&2
|
|
78
80
|
return 1
|
|
79
81
|
fi
|
|
80
|
-
|
|
82
|
+
# Agent instructions have no file base and Codex has no .codex/skills;
|
|
83
|
+
# address skill files by their installed project path.
|
|
84
|
+
sed -E 's#\]\((\.\./)+skills/#](.agents/skills/#g' "$_body_codex"
|
|
81
85
|
printf "\n%s\n" "'''"
|
|
82
86
|
} > "$_out"
|
|
83
87
|
}
|
|
@@ -24,7 +24,7 @@ gen_devin_markdown_file() {
|
|
|
24
24
|
-e 's#\.claude/skills/#.devin/skills/#g' \
|
|
25
25
|
-e 's#\.claude/agents/([A-Za-z0-9_-]+)\.md#.devin/agents/\1.md#g' \
|
|
26
26
|
-e 's#\.claude/agents/#.devin/agents/#g' \
|
|
27
|
-
-e 's#(\.\./)+agents/([A-Za-z0-9_-]+)\.md
|
|
27
|
+
-e 's#(^|[^(./])(\.\./)+agents/([A-Za-z0-9_-]+)\.md#\1.devin/agents/\3.md#g' \
|
|
28
28
|
-e 's#\.agents/skills/devrites-lib/scripts/#.devin/skills/devrites-lib/scripts/#g' \
|
|
29
29
|
-e 's#\.agents/skills/#.devin/skills/#g' \
|
|
30
30
|
-e 's#\.codex/skills/devrites-lib/scripts/#.devin/skills/devrites-lib/scripts/#g' \
|
|
@@ -50,7 +50,8 @@ gen_devin_markdown_file() {
|
|
|
50
50
|
-e 's#Host mapping: Claude Code uses `Agent` \(`Task` is its legacy alias\); Codex uses#Host mapping: Devin fresh-context dispatch uses `run_subagent` with `profile`; hosts use#g' \
|
|
51
51
|
-e 's#`Agent` call#`run_subagent` call#g' \
|
|
52
52
|
-e 's#`spawn_agent` call#`run_subagent` call#g' \
|
|
53
|
-
-e 's#Claude: N concurrent Task wrights
|
|
53
|
+
-e 's#Claude: N concurrent Task wrights \(`acceptEdits`, cwd=worktree\)\.#Devin: `run_subagent` takes no worktree cwd, so force serial.#g' \
|
|
54
|
+
-e 's#`AskUserQuestion`#`ask_user_question`#g' \
|
|
54
55
|
-e 's#Task breakdown#Work-item breakdown#g' \
|
|
55
56
|
-e 's#dispatch `devrites-source-driven`#invoke `devrites-source-driven`#g' \
|
|
56
57
|
-e 's#Dispatch `devrites-source-driven`#Invoke `devrites-source-driven`#g' \
|
|
@@ -202,7 +203,7 @@ This project has DevRites installed for Devin CLI.
|
|
|
202
203
|
|
|
203
204
|
## Devin usage
|
|
204
205
|
|
|
205
|
-
- DevRites workflow skills live in `.devin/skills`. Run them as `/rite`, `/rite-spec`, and the other `/rite-*` slash commands.
|
|
206
|
+
- DevRites workflow skills live in `.devin/skills`. Run them as `/rite`, `/rite-spec`, and the other `/rite-*` slash commands. Devin also imports the Claude Code copies of these skills as `claude:*`; when a name is ambiguous, use the `devin:` form (`/devin:rite-build`) and never load a `claude:` DevRites skill.
|
|
206
207
|
- Before using any DevRites workflow skill, read `.devin/skills/devrites-lib/reference/standards/core.md`. Load other `.devin/skills/devrites-lib/reference/standards/*.md` files when the skill or rule index asks for them.
|
|
207
208
|
- DevRites specialist agents live in `.devin/agents` as custom subagent profiles offered to `run_subagent`. If a required `devrites-<role>` profile is not among the offered profiles, stop for HITL - never skip the role, never substitute `subagent_general`, `subagent_explore`, or another generic profile, never inline the specialist prompt, and never execute the specialist role in the root context.
|
|
208
209
|
- In DevRites guidance, **invoke** means run a skill inline in the current context; **dispatch** means start a fresh agent with `run_subagent` using the exact `profile` name, wait for it with `read_subagent`, and reconcile its result.
|
package/scripts/install-lib.sh
CHANGED
|
@@ -190,6 +190,11 @@ dr_acquire_engine() {
|
|
|
190
190
|
return 1
|
|
191
191
|
}
|
|
192
192
|
umask "$_dr_old_umask"
|
|
193
|
+
# A git checkout's payload can be ahead of the published engine of the same
|
|
194
|
+
# version, so a checkout builds its own engine before downloading one.
|
|
195
|
+
if [ -e "$_dr_source_dir/.git" ] && dr_build_engine "$_dr_source_dir" "$DR_ENGINE_TMP/devrites-engine"; then
|
|
196
|
+
dr_engine_compatible "$DR_ENGINE_TMP/devrites-engine" "$_dr_source_dir" "$_dr_subcommand" && { DR_ENGINE_PATH="$DR_ENGINE_TMP/devrites-engine"; return 0; }
|
|
197
|
+
fi
|
|
193
198
|
if command -v curl >/dev/null 2>&1; then
|
|
194
199
|
if dr_download_engine "$_dr_source_dir" "$_dr_repo" "$DR_ENGINE_TMP/devrites-engine"; then
|
|
195
200
|
dr_engine_compatible "$DR_ENGINE_TMP/devrites-engine" "$_dr_source_dir" "$_dr_subcommand" && { DR_ENGINE_PATH="$DR_ENGINE_TMP/devrites-engine"; return 0; }
|
package/scripts/omp-generate.sh
CHANGED
|
@@ -62,6 +62,27 @@ gen_omp_markdown_file() {
|
|
|
62
62
|
"$_src" > "$_out"
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
# Rewrite one installed omp skill file in place. $2 is its path under the skills
|
|
66
|
+
# root (<skill>/<path>).
|
|
67
|
+
# - omp loads skill files as skill://<skill>/<path> and cannot climb above a
|
|
68
|
+
# skill root, so each `../` link target or backtick path becomes an absolute
|
|
69
|
+
# skill:// URL.
|
|
70
|
+
omp_rewrite_skill_refs() {
|
|
71
|
+
python3 - "$1" "$2" <<'PY'
|
|
72
|
+
import posixpath, re, sys
|
|
73
|
+
path, rel = sys.argv[1], sys.argv[2]
|
|
74
|
+
here = posixpath.dirname(rel)
|
|
75
|
+
def fix(m):
|
|
76
|
+
target = posixpath.normpath(posixpath.join(here, m.group(2)))
|
|
77
|
+
return m.group(0) if target.startswith("..") else m.group(1) + "skill://" + target
|
|
78
|
+
with open(path, encoding="utf-8") as fh:
|
|
79
|
+
text = fh.read()
|
|
80
|
+
text = re.sub(r"(\]\(|`)((?:\.\./)+[A-Za-z0-9._/-]+)", fix, text)
|
|
81
|
+
with open(path, "w", encoding="utf-8") as fh:
|
|
82
|
+
fh.write(text)
|
|
83
|
+
PY
|
|
84
|
+
}
|
|
85
|
+
|
|
65
86
|
gen_omp_skill_file() {
|
|
66
87
|
gen_omp_markdown_file "$1" "$2"
|
|
67
88
|
}
|
|
@@ -205,7 +226,8 @@ gen_omp_agent() {
|
|
|
205
226
|
_body_omp="$TMP_GEN_DIR/omp-agent-body-$(basename "$_src").omp.md"
|
|
206
227
|
awk 'NR==1 && $0=="---"{fm=1; next} fm && $0=="---"{fm=0; body=1; next} body{print}' "$_src" > "$_body_tmp"
|
|
207
228
|
gen_omp_markdown_file "$_body_tmp" "$_body_omp"
|
|
208
|
-
|
|
229
|
+
# Agent prompts have no file context; address skill files as skill:// URLs.
|
|
230
|
+
sed -E 's#\]\(\.\./skills/#](skill://#g' "$_body_omp"
|
|
209
231
|
} > "$_out"
|
|
210
232
|
}
|
|
211
233
|
|
package/scripts/pi-generate.sh
CHANGED
|
@@ -25,7 +25,7 @@ gen_pi_markdown_file() {
|
|
|
25
25
|
-e 's#\.claude/skills/#.pi/skills/#g' \
|
|
26
26
|
-e 's#\.claude/agents/([A-Za-z0-9_-]+)\.md#.pi/agents/\1.md#g' \
|
|
27
27
|
-e 's#\.claude/agents/#.pi/agents/#g' \
|
|
28
|
-
-e 's#(\.\./)+agents/([A-Za-z0-9_-]+)\.md
|
|
28
|
+
-e 's#(^|[^(./])(\.\./)+agents/([A-Za-z0-9_-]+)\.md#\1.pi/agents/\3.md#g' \
|
|
29
29
|
-e 's#\.agents/skills/devrites-lib/scripts/#.pi/skills/devrites-lib/scripts/#g' \
|
|
30
30
|
-e 's#\.agents/skills/#.pi/skills/#g' \
|
|
31
31
|
-e 's#\.codex/skills/devrites-lib/scripts/#.pi/skills/devrites-lib/scripts/#g' \
|
|
@@ -48,7 +48,7 @@ gen_pi_markdown_file() {
|
|
|
48
48
|
-e 's#Host mapping: Claude Code uses `Agent` \(`Task` is its legacy alias\); Codex uses#Host mapping: pi fresh-context dispatch uses the `subagent` tool (`{agent, task}`); hosts use#g' \
|
|
49
49
|
-e 's#`Agent` call#`subagent` call#g' \
|
|
50
50
|
-e 's#`spawn_agent` call#`subagent` call#g' \
|
|
51
|
-
-e 's#Claude: N concurrent Task wrights#pi: N concurrent `subagent` wrights#g' \
|
|
51
|
+
-e 's#Claude: N concurrent Task wrights \(`acceptEdits`, cwd=worktree\)#pi: N concurrent `subagent` wrights (cwd=worktree)#g' \
|
|
52
52
|
-e 's#Task breakdown#Work-item breakdown#g' \
|
|
53
53
|
-e 's#dispatch `devrites-source-driven`#invoke `devrites-source-driven`#g' \
|
|
54
54
|
-e 's#Dispatch `devrites-source-driven`#Invoke `devrites-source-driven`#g' \
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
package main
|
|
2
|
-
|
|
3
|
-
import (
|
|
4
|
-
"archive/tar"
|
|
5
|
-
"bytes"
|
|
6
|
-
"compress/gzip"
|
|
7
|
-
"io"
|
|
8
|
-
"os"
|
|
9
|
-
"path/filepath"
|
|
10
|
-
"reflect"
|
|
11
|
-
"strings"
|
|
12
|
-
"testing"
|
|
13
|
-
"time"
|
|
14
|
-
)
|
|
15
|
-
|
|
16
|
-
func TestWriteArchiveIsDeterministic(t *testing.T) {
|
|
17
|
-
t.Parallel()
|
|
18
|
-
epoch := time.Unix(1_700_000_000, 0).UTC()
|
|
19
|
-
firstRoot := makeTree(t, time.Unix(100, 0))
|
|
20
|
-
secondRoot := makeTree(t, time.Unix(2_000_000_000, 0))
|
|
21
|
-
firstArchive := filepath.Join(t.TempDir(), "release.tar.gz")
|
|
22
|
-
secondArchive := filepath.Join(t.TempDir(), "release.tar.gz")
|
|
23
|
-
|
|
24
|
-
if err := writeArchive(firstRoot, firstArchive, "devrites-v1.2.3", epoch); err != nil {
|
|
25
|
-
t.Fatal(err)
|
|
26
|
-
}
|
|
27
|
-
if err := writeArchive(secondRoot, secondArchive, "devrites-v1.2.3", epoch); err != nil {
|
|
28
|
-
t.Fatal(err)
|
|
29
|
-
}
|
|
30
|
-
firstBytes, err := os.ReadFile(firstArchive)
|
|
31
|
-
if err != nil {
|
|
32
|
-
t.Fatal(err)
|
|
33
|
-
}
|
|
34
|
-
secondBytes, err := os.ReadFile(secondArchive)
|
|
35
|
-
if err != nil {
|
|
36
|
-
t.Fatal(err)
|
|
37
|
-
}
|
|
38
|
-
if !bytes.Equal(firstBytes, secondBytes) {
|
|
39
|
-
t.Fatal("archives differ across source roots and mtimes")
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
got := readArchive(t, firstArchive, epoch)
|
|
43
|
-
wantNames := []string{
|
|
44
|
-
"devrites-v1.2.3/",
|
|
45
|
-
"devrites-v1.2.3/README.md",
|
|
46
|
-
"devrites-v1.2.3/install.sh",
|
|
47
|
-
"devrites-v1.2.3/nested/",
|
|
48
|
-
"devrites-v1.2.3/nested/data.txt",
|
|
49
|
-
}
|
|
50
|
-
if !reflect.DeepEqual(got.names, wantNames) {
|
|
51
|
-
t.Fatalf("archive names = %#v, want %#v", got.names, wantNames)
|
|
52
|
-
}
|
|
53
|
-
if got.modes["devrites-v1.2.3/"] != 0o755 ||
|
|
54
|
-
got.modes["devrites-v1.2.3/install.sh"] != 0o755 ||
|
|
55
|
-
got.modes["devrites-v1.2.3/README.md"] != 0o644 {
|
|
56
|
-
t.Fatalf("archive modes = %#v", got.modes)
|
|
57
|
-
}
|
|
58
|
-
if got.contents["devrites-v1.2.3/install.sh"] != "#!/bin/sh\nexit 0\n" ||
|
|
59
|
-
got.contents["devrites-v1.2.3/nested/data.txt"] != "payload\n" {
|
|
60
|
-
t.Fatalf("archive contents = %#v", got.contents)
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
func TestWriteArchiveRejectsUnsafePaths(t *testing.T) {
|
|
65
|
-
t.Parallel()
|
|
66
|
-
root := t.TempDir()
|
|
67
|
-
if err := os.WriteFile(filepath.Join(root, "file"), []byte("safe"), 0o644); err != nil {
|
|
68
|
-
t.Fatal(err)
|
|
69
|
-
}
|
|
70
|
-
output := filepath.Join(t.TempDir(), "release.tar.gz")
|
|
71
|
-
|
|
72
|
-
if err := writeArchive(root, filepath.Join(root, "release.tar.gz"), "devrites-v1", time.Unix(0, 0)); err == nil {
|
|
73
|
-
t.Fatal("output inside the staged tree was accepted")
|
|
74
|
-
}
|
|
75
|
-
if err := writeArchive(root, output, "../escape", time.Unix(0, 0)); err == nil {
|
|
76
|
-
t.Fatal("escaping archive prefix was accepted")
|
|
77
|
-
}
|
|
78
|
-
if err := writeArchive(root, output, `devrites-v1\escape`, time.Unix(0, 0)); err == nil {
|
|
79
|
-
t.Fatal("non-portable archive prefix was accepted")
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
link := filepath.Join(root, "unsafe-link")
|
|
83
|
-
if err := os.Symlink(filepath.Join(t.TempDir(), "outside"), link); err != nil {
|
|
84
|
-
t.Skipf("symlinks unavailable: %v", err)
|
|
85
|
-
}
|
|
86
|
-
err := writeArchive(root, output, "devrites-v1", time.Unix(0, 0))
|
|
87
|
-
if err == nil || !strings.Contains(err.Error(), "symlink is not allowed") {
|
|
88
|
-
t.Fatalf("symlink error = %v", err)
|
|
89
|
-
}
|
|
90
|
-
if _, statErr := os.Stat(output); !os.IsNotExist(statErr) {
|
|
91
|
-
t.Fatalf("unsafe archive output exists: %v", statErr)
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
func TestWriteEntriesRejectsChangedSource(t *testing.T) {
|
|
96
|
-
t.Parallel()
|
|
97
|
-
root := t.TempDir()
|
|
98
|
-
source := filepath.Join(root, "payload.txt")
|
|
99
|
-
if err := os.WriteFile(source, []byte("first\n"), 0o644); err != nil {
|
|
100
|
-
t.Fatal(err)
|
|
101
|
-
}
|
|
102
|
-
sourceRoot, err := os.OpenRoot(root)
|
|
103
|
-
if err != nil {
|
|
104
|
-
t.Fatal(err)
|
|
105
|
-
}
|
|
106
|
-
defer func() { _ = sourceRoot.Close() }()
|
|
107
|
-
entries, err := collectEntries(sourceRoot, "devrites-v1")
|
|
108
|
-
if err != nil {
|
|
109
|
-
t.Fatal(err)
|
|
110
|
-
}
|
|
111
|
-
replacement := filepath.Join(root, "replacement")
|
|
112
|
-
if err := os.WriteFile(replacement, []byte("other\n"), 0o644); err != nil {
|
|
113
|
-
t.Fatal(err)
|
|
114
|
-
}
|
|
115
|
-
if err := os.Remove(source); err != nil {
|
|
116
|
-
t.Fatal(err)
|
|
117
|
-
}
|
|
118
|
-
if err := os.Rename(replacement, source); err != nil {
|
|
119
|
-
t.Fatal(err)
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
var archive bytes.Buffer
|
|
123
|
-
tw := tar.NewWriter(&archive)
|
|
124
|
-
err = writeEntries(sourceRoot, tw, entries, time.Unix(0, 0))
|
|
125
|
-
if err == nil || !strings.Contains(err.Error(), "changed after collection") {
|
|
126
|
-
t.Fatalf("changed source error = %v", err)
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
func TestWriteEntriesRejectsEscapingSymlinkSwap(t *testing.T) {
|
|
131
|
-
t.Parallel()
|
|
132
|
-
root := t.TempDir()
|
|
133
|
-
source := filepath.Join(root, "payload.txt")
|
|
134
|
-
if err := os.WriteFile(source, []byte("first\n"), 0o644); err != nil {
|
|
135
|
-
t.Fatal(err)
|
|
136
|
-
}
|
|
137
|
-
sourceRoot, err := os.OpenRoot(root)
|
|
138
|
-
if err != nil {
|
|
139
|
-
t.Fatal(err)
|
|
140
|
-
}
|
|
141
|
-
defer func() { _ = sourceRoot.Close() }()
|
|
142
|
-
entries, err := collectEntries(sourceRoot, "devrites-v1")
|
|
143
|
-
if err != nil {
|
|
144
|
-
t.Fatal(err)
|
|
145
|
-
}
|
|
146
|
-
outside := filepath.Join(t.TempDir(), "outside.txt")
|
|
147
|
-
if err := os.WriteFile(outside, []byte("other\n"), 0o644); err != nil {
|
|
148
|
-
t.Fatal(err)
|
|
149
|
-
}
|
|
150
|
-
if err := os.Remove(source); err != nil {
|
|
151
|
-
t.Fatal(err)
|
|
152
|
-
}
|
|
153
|
-
if err := os.Symlink(outside, source); err != nil {
|
|
154
|
-
t.Skipf("symlinks unavailable: %v", err)
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
var archive bytes.Buffer
|
|
158
|
-
tw := tar.NewWriter(&archive)
|
|
159
|
-
if err := writeEntries(sourceRoot, tw, entries, time.Unix(0, 0)); err == nil {
|
|
160
|
-
t.Fatal("escaping symlink swap was accepted")
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
func makeTree(t *testing.T, mtime time.Time) string {
|
|
165
|
-
t.Helper()
|
|
166
|
-
root := t.TempDir()
|
|
167
|
-
files := map[string]struct {
|
|
168
|
-
content string
|
|
169
|
-
mode os.FileMode
|
|
170
|
-
}{
|
|
171
|
-
"README.md": {"read me\n", 0o644},
|
|
172
|
-
"install.sh": {"#!/bin/sh\nexit 0\n", 0o644},
|
|
173
|
-
"nested/data.txt": {"payload\n", 0o644},
|
|
174
|
-
}
|
|
175
|
-
for name, file := range files {
|
|
176
|
-
fullPath := filepath.Join(root, name)
|
|
177
|
-
if err := os.MkdirAll(filepath.Dir(fullPath), 0o755); err != nil {
|
|
178
|
-
t.Fatal(err)
|
|
179
|
-
}
|
|
180
|
-
if err := os.WriteFile(fullPath, []byte(file.content), file.mode); err != nil {
|
|
181
|
-
t.Fatal(err)
|
|
182
|
-
}
|
|
183
|
-
if err := os.Chtimes(fullPath, mtime, mtime); err != nil {
|
|
184
|
-
t.Fatal(err)
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return root
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
type archiveContents struct {
|
|
191
|
-
names []string
|
|
192
|
-
modes map[string]int64
|
|
193
|
-
contents map[string]string
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
func readArchive(t *testing.T, archivePath string, epoch time.Time) archiveContents {
|
|
197
|
-
t.Helper()
|
|
198
|
-
file, err := os.Open(archivePath)
|
|
199
|
-
if err != nil {
|
|
200
|
-
t.Fatal(err)
|
|
201
|
-
}
|
|
202
|
-
defer func() { _ = file.Close() }()
|
|
203
|
-
gz, err := gzip.NewReader(file)
|
|
204
|
-
if err != nil {
|
|
205
|
-
t.Fatal(err)
|
|
206
|
-
}
|
|
207
|
-
defer func() { _ = gz.Close() }()
|
|
208
|
-
if !gz.ModTime.Equal(epoch) || gz.OS != 255 || gz.Name != "" || gz.Comment != "" || len(gz.Extra) != 0 {
|
|
209
|
-
t.Fatalf("gzip header is not normalized: %#v", gz.Header)
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
got := archiveContents{modes: map[string]int64{}, contents: map[string]string{}}
|
|
213
|
-
tr := tar.NewReader(gz)
|
|
214
|
-
for {
|
|
215
|
-
header, err := tr.Next()
|
|
216
|
-
if err == io.EOF {
|
|
217
|
-
break
|
|
218
|
-
}
|
|
219
|
-
if err != nil {
|
|
220
|
-
t.Fatal(err)
|
|
221
|
-
}
|
|
222
|
-
got.names = append(got.names, header.Name)
|
|
223
|
-
got.modes[header.Name] = header.Mode
|
|
224
|
-
if header.Uid != 0 || header.Gid != 0 || header.Uname != "" || header.Gname != "" {
|
|
225
|
-
t.Fatalf("%s ownership is not normalized: %#v", header.Name, header)
|
|
226
|
-
}
|
|
227
|
-
if !header.ModTime.Equal(epoch) || !header.AccessTime.Equal(epoch) || !header.ChangeTime.Equal(epoch) {
|
|
228
|
-
t.Fatalf("%s timestamps are not normalized: %#v", header.Name, header)
|
|
229
|
-
}
|
|
230
|
-
if header.Typeflag == tar.TypeReg {
|
|
231
|
-
content, err := io.ReadAll(tr)
|
|
232
|
-
if err != nil {
|
|
233
|
-
t.Fatal(err)
|
|
234
|
-
}
|
|
235
|
-
got.contents[header.Name] = string(content)
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return got
|
|
239
|
-
}
|