devrites 2.6.1 → 3.0.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 +77 -0
- package/README.md +85 -50
- package/SECURITY.md +65 -39
- package/bin/devrites.mjs +135 -51
- package/docs/agents/domain.md +58 -0
- package/docs/agents/issue-driven-rites.md +11 -0
- package/docs/agents/issue-tracker.md +29 -0
- package/docs/agents/triage-labels.md +15 -0
- package/docs/architecture.md +60 -35
- package/docs/capability-surface-selection.md +18 -0
- package/docs/cli.md +53 -0
- package/docs/command-map.md +59 -22
- package/docs/engine/agent-contract.md +92 -0
- package/docs/engine/commands.md +323 -0
- package/docs/engine/state-schema.md +134 -0
- package/docs/engine/workspace-schema.md +150 -0
- package/docs/extensions.md +178 -0
- package/docs/flow.md +19 -16
- package/docs/harness-compliance.md +45 -0
- package/docs/orchestration.md +6 -4
- package/docs/porting-to-a-new-harness.md +27 -0
- package/docs/quick-reference.md +22 -0
- package/docs/release.md +3 -3
- package/docs/skills.md +42 -48
- package/docs/usage.md +21 -8
- package/engine/.gosec.json +5 -0
- package/engine/Makefile +64 -0
- package/engine/commands.go +195 -0
- package/engine/go.mod +5 -0
- package/engine/harnessmatrix.go +60 -0
- package/engine/harnessmatrix_test.go +59 -0
- package/engine/hookpolicy.go +114 -0
- package/engine/hookpolicy_test.go +64 -0
- package/engine/hooks.go +336 -0
- package/engine/hooks_events_test.go +106 -0
- package/engine/hooks_workspace.go +603 -0
- package/engine/internal/devritespaths/paths.go +76 -0
- package/engine/internal/doctor/doctor.go +178 -0
- package/engine/internal/doctor/doctor_test.go +150 -0
- package/engine/internal/fsutil/copy.go +101 -0
- package/engine/internal/fsutil/replace_other.go +7 -0
- package/engine/internal/fsutil/replace_windows.go +31 -0
- package/engine/internal/gate/gate.go +243 -0
- package/engine/internal/gate/gate_test.go +145 -0
- package/engine/internal/harness/compliance.go +102 -0
- package/engine/internal/harness/harness.go +304 -0
- package/engine/internal/harness/harness_test.go +104 -0
- package/engine/internal/hostpack/hostpack.go +259 -0
- package/engine/internal/hostpack/hostpack_test.go +111 -0
- package/engine/internal/hostpack/templates/alias_skill.md.tmpl +11 -0
- package/engine/internal/hostpack/templates/devrites_readme.md.tmpl +14 -0
- package/engine/internal/install/install.go +1560 -0
- package/engine/internal/install/install_test.go +564 -0
- package/engine/internal/iohooks/detach_other.go +11 -0
- package/engine/internal/iohooks/detach_unix.go +11 -0
- package/engine/internal/iohooks/iohooks.go +546 -0
- package/engine/internal/iohooks/iohooks_test.go +130 -0
- package/engine/internal/lib/adoption.go +634 -0
- package/engine/internal/lib/adoption_test.go +91 -0
- package/engine/internal/lib/analyze.go +224 -0
- package/engine/internal/lib/archivesearch.go +93 -0
- package/engine/internal/lib/archivesearch_test.go +110 -0
- package/engine/internal/lib/budget.go +172 -0
- package/engine/internal/lib/buildreadiness.go +88 -0
- package/engine/internal/lib/checkacceptance.go +176 -0
- package/engine/internal/lib/closeout.go +69 -0
- package/engine/internal/lib/command_other.go +7 -0
- package/engine/internal/lib/command_unix.go +24 -0
- package/engine/internal/lib/context.go +236 -0
- package/engine/internal/lib/conventions.go +449 -0
- package/engine/internal/lib/coverage.go +145 -0
- package/engine/internal/lib/doubtcoverage.go +88 -0
- package/engine/internal/lib/evidencefresh.go +85 -0
- package/engine/internal/lib/extensions.go +619 -0
- package/engine/internal/lib/extensions_test.go +305 -0
- package/engine/internal/lib/footprint.go +239 -0
- package/engine/internal/lib/jsonout.go +115 -0
- package/engine/internal/lib/jsonout_test.go +57 -0
- package/engine/internal/lib/lanes.go +106 -0
- package/engine/internal/lib/learnings.go +391 -0
- package/engine/internal/lib/learnings_inject_test.go +77 -0
- package/engine/internal/lib/learnings_remediation_test.go +24 -0
- package/engine/internal/lib/ledger.go +298 -0
- package/engine/internal/lib/ledger_test.go +162 -0
- package/engine/internal/lib/mutationgate.go +85 -0
- package/engine/internal/lib/overrides.go +164 -0
- package/engine/internal/lib/overrides_test.go +112 -0
- package/engine/internal/lib/packageexistence.go +175 -0
- package/engine/internal/lib/preamble.go +159 -0
- package/engine/internal/lib/progress.go +168 -0
- package/engine/internal/lib/reconcile.go +173 -0
- package/engine/internal/lib/reconcile_test.go +197 -0
- package/engine/internal/lib/resolve.go +376 -0
- package/engine/internal/lib/resolve_remediation_test.go +49 -0
- package/engine/internal/lib/reviewers.go +143 -0
- package/engine/internal/lib/reviewers_test.go +45 -0
- package/engine/internal/lib/reviewerstats.go +199 -0
- package/engine/internal/lib/reviewerstats_test.go +104 -0
- package/engine/internal/lib/reviewintegrity.go +143 -0
- package/engine/internal/lib/reviewintegrity_test.go +103 -0
- package/engine/internal/lib/runbook.go +292 -0
- package/engine/internal/lib/runbook_context_test.go +119 -0
- package/engine/internal/lib/session.go +328 -0
- package/engine/internal/lib/session_test.go +110 -0
- package/engine/internal/lib/specparse.go +125 -0
- package/engine/internal/lib/specskeleton.go +79 -0
- package/engine/internal/lib/specvalidate.go +391 -0
- package/engine/internal/lib/specvalidate_test.go +185 -0
- package/engine/internal/lib/stuck.go +206 -0
- package/engine/internal/lib/templates/conventions_drift.tmpl +6 -0
- package/engine/internal/lib/templates/conventions_ledger_header.md +6 -0
- package/engine/internal/lib/templates/conventions_orient_header.txt +1 -0
- package/engine/internal/lib/testintegrity.go +203 -0
- package/engine/internal/lib/testintegrity_test.go +72 -0
- package/engine/internal/lib/tickafk.go +99 -0
- package/engine/internal/lib/util.go +68 -0
- package/engine/internal/migrate/migrate.go +213 -0
- package/engine/internal/migrate/migrate_test.go +105 -0
- package/engine/internal/orient/firstrun.go +50 -0
- package/engine/internal/orient/firstrun_test.go +72 -0
- package/engine/internal/orient/orient.go +69 -0
- package/engine/internal/orient/orient_test.go +25 -0
- package/engine/internal/profile/profile.go +270 -0
- package/engine/internal/state/concurrency_test.go +184 -0
- package/engine/internal/state/feature.go +309 -0
- package/engine/internal/state/lock_other.go +24 -0
- package/engine/internal/state/lock_unix.go +35 -0
- package/engine/internal/state/lock_windows.go +56 -0
- package/engine/internal/state/schema.go +102 -0
- package/engine/internal/state/snapshot.go +384 -0
- package/engine/internal/state/state_test.go +260 -0
- package/engine/internal/state/status.go +90 -0
- package/engine/internal/state/write.go +59 -0
- package/engine/internal/testutil/testutil.go +66 -0
- package/engine/internal/version/version.go +57 -0
- package/engine/internal/workflow/commands.go +64 -0
- package/engine/main.go +530 -0
- package/engine/profile_test.go +76 -0
- package/engine/subagent_orient_context.txt +6 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/decisions.md +4 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/feature.md +8 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/plan.md +5 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/spec.md +6 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/status.md +4 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/tasks.md +1 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/search-ranking/feature.md +8 -0
- package/engine/testdata/fixtures/basic/devrites-root/features/search-ranking/spec.md +6 -0
- package/engine/testdata/golden/TestParityA1Guard/devrites-edit-allowed.golden +1 -0
- package/engine/testdata/golden/TestParityA1Guard/inline-fallback-silent.golden +1 -0
- package/engine/testdata/golden/TestParityA1Guard/no-window-silent.golden +1 -0
- package/engine/testdata/golden/TestParityA1Guard/non-edit-tool.golden +1 -0
- package/engine/testdata/golden/TestParityA1Guard/observe-mode-silent.golden +1 -0
- package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +2 -0
- package/engine/testdata/golden/TestParityA1Guard/subagent-allowed.golden +1 -0
- package/engine/testdata/golden/TestParityAnalyze/noactive.golden +1 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +15 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +16 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=ghost.golden +1 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +15 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +17 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +16 -0
- package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +16 -0
- package/engine/testdata/golden/TestParityBudget/default-active.golden +4 -0
- package/engine/testdata/golden/TestParityBudget/extra-md.golden +5 -0
- package/engine/testdata/golden/TestParityBudget/no-active.golden +1 -0
- package/engine/testdata/golden/TestParityBudget/no-feature.golden +1 -0
- package/engine/testdata/golden/TestParityBudget/over-advisory.golden +6 -0
- package/engine/testdata/golden/TestParityBudget/over-strict.golden +6 -0
- package/engine/testdata/golden/TestParityBudget/within.golden +6 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +2 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approvenone.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=await.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=blocked.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +2 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=ghost.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noapprove.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +2 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +2 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=blank-section.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=empty.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-dropped.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +2 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-unchecked.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-gap.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +2 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-seal.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-section.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=nonexistent.golden +1 -0
- package/engine/testdata/golden/TestParityCheckAcceptance.golden +1 -0
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +2 -0
- package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +2 -0
- package/engine/testdata/golden/TestParityCloseOut/archive_clobber.golden +1 -0
- package/engine/testdata/golden/TestParityCloseOut/missing_slug.golden +1 -0
- package/engine/testdata/golden/TestParityCloseOut/missing_workspace.golden +1 -0
- package/engine/testdata/golden/TestParityCoverage/arg=flat.golden +7 -0
- package/engine/testdata/golden/TestParityCoverage/arg=full.golden +10 -0
- package/engine/testdata/golden/TestParityCoverage/arg=nonexistent.golden +1 -0
- package/engine/testdata/golden/TestParityCoverage/arg=nospec.golden +1 -0
- package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +9 -0
- package/engine/testdata/golden/TestParityCoverage.golden +1 -0
- package/engine/testdata/golden/TestParityCursor/bare.golden +3 -0
- package/engine/testdata/golden/TestParityCursor/full-afk.golden +6 -0
- package/engine/testdata/golden/TestParityCursor/full-hitl.golden +5 -0
- package/engine/testdata/golden/TestParityCursor/no-active.golden +1 -0
- package/engine/testdata/golden/TestParityCursor/red.golden +5 -0
- package/engine/testdata/golden/TestParityCursor/zerogates.golden +5 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=doubted.golden +2 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +2 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +3 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +3 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +3 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +4 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +2 -0
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nowright.golden +2 -0
- package/engine/testdata/golden/TestParityDoubtCoverage.golden +1 -0
- package/engine/testdata/golden/TestParityLearnings/add.golden +2 -0
- package/engine/testdata/golden/TestParityLearnings/list.golden +5 -0
- package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +2 -0
- package/engine/testdata/golden/TestParityLearnings/mine.golden +5 -0
- package/engine/testdata/golden/TestParityLearnings/nudge.golden +2 -0
- package/engine/testdata/golden/TestParityLearnings/unknown.golden +1 -0
- package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +3 -0
- package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +3 -0
- package/engine/testdata/golden/TestParityMutationGate/ghost.golden +1 -0
- package/engine/testdata/golden/TestParityOrientSilentPath.golden +1 -0
- package/engine/testdata/golden/TestParityPackageExistence/declared.golden +2 -0
- package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +2 -0
- package/engine/testdata/golden/TestParityPackageExistence/ghost-workspace.golden +1 -0
- package/engine/testdata/golden/TestParityPackageExistence/no-manifest.golden +1 -0
- package/engine/testdata/golden/TestParityPackageExistence/not-git.golden +1 -0
- package/engine/testdata/golden/TestParityPackageExistence/undeclared.golden +1 -0
- package/engine/testdata/golden/TestParityPreamble/afk/a.golden +14 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/active.golden +18 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/bare.golden +10 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/full.golden +18 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/ghost.golden +2 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/nonl.golden +11 -0
- package/engine/testdata/golden/TestParityPreamble/hitl/openend.golden +13 -0
- package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +4 -0
- package/engine/testdata/golden/TestParityProgress/arg=done.golden +3 -0
- package/engine/testdata/golden/TestParityProgress/arg=ghost.golden +1 -0
- package/engine/testdata/golden/TestParityProgress/arg=mid.golden +4 -0
- package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +3 -0
- package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +3 -0
- package/engine/testdata/golden/TestParityProgress/arg=plan.golden +4 -0
- package/engine/testdata/golden/TestParityProgress/arg=seal.golden +3 -0
- package/engine/testdata/golden/TestParityReconcile/bad-mode.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/check-clean/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/check-no-base.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/check-no-claimed/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/check-no-claimed.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/check-violation/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/check-violation.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/inline-fallback/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/not-git.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/snapshot/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityReconcile/snapshot.golden +2 -0
- package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +2 -0
- package/engine/testdata/golden/TestParityRedwatch/non-bash-tool.golden +1 -0
- package/engine/testdata/golden/TestParityRedwatch/non-test-command.golden +1 -0
- package/engine/testdata/golden/TestParityRedwatch/pass-clears-red.golden +1 -0
- package/engine/testdata/golden/TestParityResolve/answer/questions.md.golden +9 -0
- package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +6 -0
- package/engine/testdata/golden/TestParityResolve/answer.golden +4 -0
- package/engine/testdata/golden/TestParityResolve/batch/questions.md.golden +9 -0
- package/engine/testdata/golden/TestParityResolve/batch-unterminated/questions.md.golden +9 -0
- package/engine/testdata/golden/TestParityResolve/batch-unterminated.golden +2 -0
- package/engine/testdata/golden/TestParityResolve/batch.golden +3 -0
- package/engine/testdata/golden/TestParityResolve/drop/questions.md.golden +9 -0
- package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +8 -0
- package/engine/testdata/golden/TestParityResolve/drop.golden +4 -0
- package/engine/testdata/golden/TestParityResolve/missing-answer.golden +1 -0
- package/engine/testdata/golden/TestParityResolve/next-qid.golden +2 -0
- package/engine/testdata/golden/TestParityResolve/no-workspace.golden +1 -0
- package/engine/testdata/golden/TestParityResolve/not-found.golden +1 -0
- package/engine/testdata/golden/TestParityResolve/not-open.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +2 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-non-devrites-allows.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-subagent-type-only-allows.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +2 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +2 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/non-bash-tool.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/non-tool-input.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/observe-mutating-silent.golden +1 -0
- package/engine/testdata/golden/TestParityReviewerReadonly/safe-bash-command.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=dup.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=empty.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +2 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=nonexistent.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=noscenario.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=noshall.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=nothen.golden +1 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +2 -0
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +2 -0
- package/engine/testdata/golden/TestParitySpecValidate.golden +1 -0
- package/engine/testdata/golden/TestParityStatusline/full-afk.golden +2 -0
- package/engine/testdata/golden/TestParityStatusline/full-hitl.golden +2 -0
- package/engine/testdata/golden/TestParityStatusline/no-active.golden +1 -0
- package/engine/testdata/golden/TestParityStatusline/nophase.golden +2 -0
- package/engine/testdata/golden/TestParityStatusline/red.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/bad-cmd.golden +1 -0
- package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/few.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/identical.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/no-cmd.golden +1 -0
- package/engine/testdata/golden/TestParityStuckCheck/no-slug.golden +1 -0
- package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/varied.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +2 -0
- package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +2 -0
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +2 -0
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +2 -0
- package/engine/testdata/golden/TestParitySubagentOrient/garbage-input.golden +1 -0
- package/engine/testdata/golden/TestParitySubagentOrient/non-devrites-agent.golden +1 -0
- package/engine/testdata/golden/TestParityTestIntegrity/assertion-dropped.golden +1 -0
- package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +2 -0
- package/engine/testdata/golden/TestParityTestIntegrity/deleted.golden +1 -0
- package/engine/testdata/golden/TestParityTestIntegrity/ghost-workspace.golden +1 -0
- package/engine/testdata/golden/TestParityTestIntegrity/not-git.golden +1 -0
- package/engine/testdata/golden/TestParityTestIntegrity/skip-added.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/budget1/state.md.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/budget1.golden +2 -0
- package/engine/testdata/golden/TestParityTickAfk/budget3/state.md.golden +5 -0
- package/engine/testdata/golden/TestParityTickAfk/budget3.golden +2 -0
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe/state.md.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe.golden +2 -0
- package/engine/testdata/golden/TestParityTickAfk/missingField/state.md.golden +3 -0
- package/engine/testdata/golden/TestParityTickAfk/missingField.golden +2 -0
- package/engine/testdata/golden/TestParityTickAfk/missingFile.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric/state.md.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/none/state.md.golden +1 -0
- package/engine/testdata/golden/TestParityTickAfk/none.golden +2 -0
- package/engine/testdata/golden/TestParityWrightScope/agent-required-non-wright.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/in-scope-allowed.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/non-edit-tool.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +2 -0
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-observe-silent.golden +1 -0
- package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +2 -0
- package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +2 -0
- package/engine/testdata/golden/TestStatusLiveWorkspace.golden +10 -0
- package/engine/testdata/golden/TestStuckLogHashParity.golden +1 -0
- package/engine/testdata/golden/status/auth-tokens.txt +9 -0
- package/engine/testdata/golden/status/search-ranking.txt +9 -0
- package/engine/tests/adr_0003_gate_exit_code_test.go +32 -0
- package/engine/tests/adr_0004_required_by_phase_test.go +62 -0
- package/engine/tests/adr_0006_clock_seam_test.go +36 -0
- package/engine/tests/budget_test.go +77 -0
- package/engine/tests/canonical_ac_ids_test.go +44 -0
- package/engine/tests/cli_test.go +209 -0
- package/engine/tests/concurrency_cli_test.go +125 -0
- package/engine/tests/conventions_test.go +106 -0
- package/engine/tests/doctor_cli_test.go +62 -0
- package/engine/tests/gate_test.go +235 -0
- package/engine/tests/hook_test.go +390 -0
- package/engine/tests/hooks_io_test.go +218 -0
- package/engine/tests/json_contract_test.go +99 -0
- package/engine/tests/lib_parity_test.go +942 -0
- package/engine/tests/meta_test.go +67 -0
- package/engine/tests/migrate_cli_test.go +193 -0
- package/engine/tests/parity_analyze_test.go +55 -0
- package/engine/tests/parity_buildreadiness_test.go +42 -0
- package/engine/tests/parity_closeout_test.go +102 -0
- package/engine/tests/parity_githelpers_test.go +41 -0
- package/engine/tests/parity_learnings_test.go +90 -0
- package/engine/tests/parity_mutationgate_test.go +36 -0
- package/engine/tests/parity_packageexistence_test.go +64 -0
- package/engine/tests/parity_reconcile_test.go +88 -0
- package/engine/tests/parity_resolve_test.go +144 -0
- package/engine/tests/parity_test.go +380 -0
- package/engine/tests/parity_testintegrity_test.go +65 -0
- package/engine/tests/parity_tickafk_test.go +83 -0
- package/engine/validatepack.go +192 -0
- package/engine/validatepack_test.go +79 -0
- package/engine/validatepackskills.go +181 -0
- package/engine/validatepackskills_test.go +171 -0
- package/install.sh +67 -912
- package/pack/.claude/agents/devrites-code-reviewer.md +20 -3
- package/pack/.claude/agents/devrites-devex-reviewer.md +13 -3
- package/pack/.claude/agents/devrites-doubt-reviewer.md +16 -3
- package/pack/.claude/agents/devrites-forge-judge.md +14 -4
- package/pack/.claude/agents/devrites-frontend-reviewer.md +27 -3
- package/pack/.claude/agents/devrites-performance-reviewer.md +18 -2
- package/pack/.claude/agents/devrites-plan-reviewer.md +13 -3
- package/pack/.claude/agents/devrites-retrospector.md +12 -7
- package/pack/.claude/agents/devrites-security-auditor.md +20 -4
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +17 -2
- package/pack/.claude/agents/devrites-slice-wright.md +32 -16
- package/pack/.claude/agents/devrites-spec-reviewer.md +17 -2
- package/pack/.claude/agents/devrites-strategy-reviewer.md +12 -2
- package/pack/.claude/agents/devrites-test-analyst.md +20 -3
- package/pack/.claude/settings.json +58 -8
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +22 -5
- package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +26 -53
- package/pack/.claude/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/.claude/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -6
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -0
- package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +2 -3
- package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/.claude/skills/devrites-doubt/SKILL.md +10 -3
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +16 -13
- package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +15 -3
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +19 -0
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
- package/pack/.claude/skills/devrites-interview/SKILL.md +30 -7
- package/pack/.claude/skills/devrites-lib/SKILL.md +35 -36
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +16 -0
- package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +43 -0
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +104 -20
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +111 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/README.md +14 -6
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/afk-hitl.md +10 -18
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/agents.md +81 -16
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/anti-patterns.md +3 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +141 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/context-hygiene.md +17 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/core.md +9 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/deprecation.md +21 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/developer-experience.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/documentation.md +9 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +80 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/observability.md +13 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/performance.md +1 -1
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/principles.md +3 -3
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/prose-style.md +18 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/security.md +45 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +162 -0
- package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/tooling.md +29 -2
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +40 -76
- package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +19 -5
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +3 -6
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +17 -1
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +20 -7
- package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +25 -10
- package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +2 -2
- package/pack/.claude/skills/rite/SKILL.md +67 -42
- package/pack/.claude/skills/rite/reference/menu.md +4 -1
- package/pack/.claude/skills/rite-adopt/SKILL.md +31 -22
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +6 -9
- package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +25 -25
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +2 -2
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/.claude/skills/rite-build/SKILL.md +24 -256
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +3 -3
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +44 -0
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -7
- package/pack/.claude/skills/rite-build/reference/forge.md +17 -7
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +2 -0
- package/pack/.claude/skills/rite-build/reference/output.md +41 -0
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +258 -0
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +11 -10
- package/pack/.claude/skills/rite-converge/SKILL.md +131 -0
- package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +61 -0
- package/pack/.claude/skills/rite-customize/SKILL.md +67 -0
- package/pack/.claude/skills/rite-define/SKILL.md +82 -93
- package/pack/.claude/skills/rite-define/reference/anti-patterns.md +2 -1
- package/pack/.claude/skills/rite-define/reference/gates.md +3 -3
- package/pack/.claude/skills/rite-define/reference/plan-template.md +35 -6
- package/pack/.claude/skills/rite-doctor/SKILL.md +41 -16
- package/pack/.claude/skills/rite-dogfood/SKILL.md +49 -0
- package/pack/.claude/skills/rite-explain/SKILL.md +148 -0
- package/pack/.claude/skills/rite-explain/reference/intake.md +79 -0
- package/pack/.claude/skills/rite-frame/SKILL.md +14 -15
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +19 -17
- package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +16 -6
- package/pack/.claude/skills/rite-learn/SKILL.md +46 -24
- package/pack/.claude/skills/rite-plan/SKILL.md +35 -26
- package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +3 -3
- package/pack/.claude/skills/rite-plan/reference/slicing.md +20 -7
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +15 -16
- package/pack/.claude/skills/rite-polish/SKILL.md +18 -23
- package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +31 -2
- package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +4 -1
- package/pack/.claude/skills/rite-polish/reference/code.md +16 -5
- package/pack/.claude/skills/rite-polish/reference/design-system-discovery.md +5 -32
- package/pack/.claude/skills/rite-pov/SKILL.md +46 -0
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +49 -0
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +40 -10
- package/pack/.claude/skills/rite-prototype/SKILL.md +23 -2
- package/pack/.claude/skills/rite-prove/SKILL.md +41 -96
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +48 -0
- package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/browser-proof.md +36 -13
- package/pack/.claude/skills/rite-quick/SKILL.md +19 -12
- package/pack/.claude/skills/rite-resolve/SKILL.md +21 -25
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/.claude/skills/rite-review/SKILL.md +43 -45
- package/pack/.claude/skills/rite-review/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-review/reference/performance-checklist.md +1 -1
- package/pack/.claude/skills/rite-review/reference/performance-review.md +4 -22
- package/pack/.claude/skills/rite-review/reference/security-review.md +2 -2
- package/pack/.claude/skills/rite-seal/SKILL.md +40 -174
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +6 -9
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +6 -14
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +3 -3
- package/pack/.claude/skills/rite-seal/reference/output.md +7 -0
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +211 -0
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +1 -1
- package/pack/.claude/skills/rite-ship/SKILL.md +45 -75
- package/pack/.claude/skills/rite-ship/reference/adr-promotion.md +9 -0
- package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-ship/reference/close-out.md +12 -1
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +2 -2
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +32 -1
- package/pack/.claude/skills/rite-ship/reference/ledger.md +56 -0
- package/pack/.claude/skills/rite-ship/reference/rollout.md +43 -0
- package/pack/.claude/skills/rite-spec/SKILL.md +110 -60
- package/pack/.claude/skills/rite-spec/reference/ai-spec-template.md +33 -0
- package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +4 -1
- package/pack/.claude/skills/rite-spec/reference/investigation.md +34 -14
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +7 -37
- package/pack/.claude/skills/rite-spec/reference/references-intake.md +23 -18
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +94 -118
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +128 -139
- package/pack/.claude/skills/rite-status/SKILL.md +26 -22
- package/pack/.claude/skills/rite-temper/SKILL.md +34 -27
- package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +1 -1
- package/pack/.claude/skills/rite-temper/reference/significance.md +1 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +64 -71
- package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +1 -1
- package/pack/.claude/skills/rite-vet/reference/cross-model.md +7 -5
- package/pack/.claude/skills/rite-vet/reference/depth.md +1 -1
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +3 -3
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +16 -17
- package/pack/generated/README.md +10 -0
- package/pack/generated/claude/agents/devrites-code-reviewer.md +103 -0
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +104 -0
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +68 -0
- package/pack/generated/claude/agents/devrites-forge-judge.md +102 -0
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +84 -0
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +111 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +89 -0
- package/pack/generated/claude/agents/devrites-retrospector.md +96 -0
- package/pack/generated/claude/agents/devrites-security-auditor.md +85 -0
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +90 -0
- package/pack/generated/claude/agents/devrites-slice-wright.md +210 -0
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +87 -0
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +72 -0
- package/pack/generated/claude/agents/devrites-test-analyst.md +64 -0
- package/pack/generated/claude/settings.json +103 -0
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +61 -0
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +73 -0
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +76 -0
- package/pack/generated/claude/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/generated/claude/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +65 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +17 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +82 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +99 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +71 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +116 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +45 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +234 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +59 -0
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +60 -0
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +104 -0
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +82 -0
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +16 -0
- package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +43 -0
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +165 -0
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +111 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +61 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +243 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +192 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +58 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +141 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +55 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +114 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +119 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +71 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +35 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +80 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +33 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +38 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +73 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +48 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +36 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +158 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +117 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +135 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +162 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +99 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +69 -0
- package/pack/generated/claude/skills/devrites-prose-craft/reference/banned-phrases.md +95 -0
- package/pack/generated/claude/skills/devrites-prose-craft/reference/examples.md +102 -0
- package/pack/generated/claude/skills/devrites-prose-craft/reference/structures.md +134 -0
- package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +51 -0
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +52 -0
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +134 -0
- package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
- package/pack/generated/claude/skills/rite/SKILL.md +142 -0
- package/pack/generated/claude/skills/rite/reference/menu.md +42 -0
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +104 -0
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +55 -0
- package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +98 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +35 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +54 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +59 -0
- package/pack/generated/claude/skills/rite-build/SKILL.md +84 -0
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +145 -0
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +37 -0
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +149 -0
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +44 -0
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +35 -0
- package/pack/generated/claude/skills/rite-build/reference/forge.md +181 -0
- package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +42 -0
- package/pack/generated/claude/skills/rite-build/reference/output.md +41 -0
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +258 -0
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +43 -0
- package/pack/generated/claude/skills/rite-build/reference/tdd.md +26 -0
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +140 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +131 -0
- package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +61 -0
- package/pack/generated/claude/skills/rite-customize/SKILL.md +67 -0
- package/pack/generated/claude/skills/rite-define/SKILL.md +159 -0
- package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/claude/skills/rite-define/reference/gates.md +152 -0
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +94 -0
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +76 -0
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +49 -0
- package/pack/generated/claude/skills/rite-explain/SKILL.md +148 -0
- package/pack/generated/claude/skills/rite-explain/reference/intake.md +79 -0
- package/pack/generated/claude/skills/rite-frame/SKILL.md +120 -0
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +68 -0
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +97 -0
- package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +44 -0
- package/pack/generated/claude/skills/rite-learn/SKILL.md +117 -0
- package/pack/generated/claude/skills/rite-plan/SKILL.md +95 -0
- package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +24 -0
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +33 -0
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +42 -0
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +65 -0
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +33 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +87 -0
- package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +206 -0
- package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +31 -0
- package/pack/generated/claude/skills/rite-polish/reference/code.md +100 -0
- package/pack/generated/claude/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +109 -0
- package/pack/generated/claude/skills/rite-polish/reference/ui.md +136 -0
- package/pack/generated/claude/skills/rite-pov/SKILL.md +46 -0
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +49 -0
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +74 -0
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +110 -0
- package/pack/generated/claude/skills/rite-prove/SKILL.md +104 -0
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +48 -0
- package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +49 -0
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +25 -0
- package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +28 -0
- package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +30 -0
- package/pack/generated/claude/skills/rite-quick/SKILL.md +93 -0
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +109 -0
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +115 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +171 -0
- package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +92 -0
- package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +60 -0
- package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +130 -0
- package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +80 -0
- package/pack/generated/claude/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +37 -0
- package/pack/generated/claude/skills/rite-seal/SKILL.md +101 -0
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +60 -0
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +64 -0
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +53 -0
- package/pack/generated/claude/skills/rite-seal/reference/output.md +7 -0
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +211 -0
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +30 -0
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +36 -0
- package/pack/generated/claude/skills/rite-ship/SKILL.md +111 -0
- package/pack/generated/claude/skills/rite-ship/reference/adr-promotion.md +9 -0
- package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +25 -0
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +42 -0
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +120 -0
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +73 -0
- package/pack/generated/claude/skills/rite-ship/reference/ledger.md +56 -0
- package/pack/generated/claude/skills/rite-ship/reference/rollout.md +43 -0
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +33 -0
- package/pack/generated/claude/skills/rite-spec/SKILL.md +219 -0
- package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/claude/skills/rite-spec/reference/ai-spec-template.md +33 -0
- package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +28 -0
- package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +84 -0
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +31 -0
- package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +73 -0
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +110 -0
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +156 -0
- package/pack/generated/claude/skills/rite-status/SKILL.md +107 -0
- package/pack/generated/claude/skills/rite-temper/SKILL.md +126 -0
- package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +29 -0
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +65 -0
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +53 -0
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +46 -0
- package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +90 -0
- package/pack/generated/claude/skills/rite-vet/SKILL.md +180 -0
- package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +29 -0
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +135 -0
- package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +43 -0
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +53 -0
- package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +167 -0
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +75 -0
- package/pack/generated/codex/AGENTS.md +23 -0
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +101 -0
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +102 -0
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +66 -0
- package/pack/generated/codex/agents/devrites-forge-judge.toml +100 -0
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +80 -0
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +109 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +93 -0
- package/pack/generated/codex/agents/devrites-retrospector.toml +94 -0
- package/pack/generated/codex/agents/devrites-security-auditor.toml +83 -0
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +88 -0
- package/pack/generated/codex/agents/devrites-slice-wright.toml +207 -0
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +85 -0
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +76 -0
- package/pack/generated/codex/agents/devrites-test-analyst.toml +62 -0
- package/pack/generated/codex/hooks.json +151 -0
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +73 -0
- package/pack/generated/codex/skills/devrites-api-interface/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +85 -0
- package/pack/generated/codex/skills/devrites-audit/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +88 -0
- package/pack/generated/codex/skills/devrites-browser-proof/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/generated/codex/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +77 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +17 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +94 -0
- package/pack/generated/codex/skills/devrites-doubt/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +111 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +71 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +116 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +45 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +234 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +59 -0
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +60 -0
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +116 -0
- package/pack/generated/codex/skills/devrites-interview/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +94 -0
- package/pack/generated/codex/skills/devrites-lib/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +16 -0
- package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +43 -0
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +165 -0
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +111 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +61 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +243 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +192 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +58 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +141 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +55 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +114 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +119 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +71 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +35 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +80 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +33 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +38 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +73 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +48 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +36 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +158 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +117 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +135 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +162 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +99 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +81 -0
- package/pack/generated/codex/skills/devrites-prose-craft/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-prose-craft/reference/banned-phrases.md +95 -0
- package/pack/generated/codex/skills/devrites-prose-craft/reference/examples.md +102 -0
- package/pack/generated/codex/skills/devrites-prose-craft/reference/structures.md +134 -0
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +63 -0
- package/pack/generated/codex/skills/devrites-refresh-indexes/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +64 -0
- package/pack/generated/codex/skills/devrites-source-driven/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +146 -0
- package/pack/generated/codex/skills/devrites-ux-shape/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
- package/pack/generated/codex/skills/rite/SKILL.md +154 -0
- package/pack/generated/codex/skills/rite/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite/reference/menu.md +42 -0
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +116 -0
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +55 -0
- package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +110 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +35 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +54 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +59 -0
- package/pack/generated/codex/skills/rite-build/SKILL.md +96 -0
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +145 -0
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +37 -0
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +149 -0
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +44 -0
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +35 -0
- package/pack/generated/codex/skills/rite-build/reference/forge.md +181 -0
- package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +42 -0
- package/pack/generated/codex/skills/rite-build/reference/output.md +41 -0
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +258 -0
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +43 -0
- package/pack/generated/codex/skills/rite-build/reference/tdd.md +26 -0
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +140 -0
- package/pack/generated/codex/skills/rite-converge/SKILL.md +143 -0
- package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +61 -0
- package/pack/generated/codex/skills/rite-customize/SKILL.md +79 -0
- package/pack/generated/codex/skills/rite-customize/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-define/SKILL.md +171 -0
- package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/codex/skills/rite-define/reference/gates.md +152 -0
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +94 -0
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +88 -0
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +61 -0
- package/pack/generated/codex/skills/rite-dogfood/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-explain/SKILL.md +160 -0
- package/pack/generated/codex/skills/rite-explain/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-explain/reference/intake.md +79 -0
- package/pack/generated/codex/skills/rite-frame/SKILL.md +132 -0
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +68 -0
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +109 -0
- package/pack/generated/codex/skills/rite-handoff/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +44 -0
- package/pack/generated/codex/skills/rite-learn/SKILL.md +129 -0
- package/pack/generated/codex/skills/rite-learn/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-plan/SKILL.md +107 -0
- package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +24 -0
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +33 -0
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +42 -0
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +65 -0
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +33 -0
- package/pack/generated/codex/skills/rite-polish/SKILL.md +99 -0
- package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +206 -0
- package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +31 -0
- package/pack/generated/codex/skills/rite-polish/reference/code.md +100 -0
- package/pack/generated/codex/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +109 -0
- package/pack/generated/codex/skills/rite-polish/reference/ui.md +136 -0
- package/pack/generated/codex/skills/rite-pov/SKILL.md +58 -0
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +61 -0
- package/pack/generated/codex/skills/rite-pr-feedback/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +86 -0
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +122 -0
- package/pack/generated/codex/skills/rite-prototype/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-prove/SKILL.md +116 -0
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +48 -0
- package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +49 -0
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +25 -0
- package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +28 -0
- package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +30 -0
- package/pack/generated/codex/skills/rite-quick/SKILL.md +105 -0
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +121 -0
- package/pack/generated/codex/skills/rite-resolve/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +115 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +183 -0
- package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +92 -0
- package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +60 -0
- package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +130 -0
- package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +80 -0
- package/pack/generated/codex/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +37 -0
- package/pack/generated/codex/skills/rite-seal/SKILL.md +113 -0
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +60 -0
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +64 -0
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +53 -0
- package/pack/generated/codex/skills/rite-seal/reference/output.md +7 -0
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +211 -0
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +30 -0
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +36 -0
- package/pack/generated/codex/skills/rite-ship/SKILL.md +123 -0
- package/pack/generated/codex/skills/rite-ship/reference/adr-promotion.md +9 -0
- package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +25 -0
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +42 -0
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +120 -0
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +73 -0
- package/pack/generated/codex/skills/rite-ship/reference/ledger.md +56 -0
- package/pack/generated/codex/skills/rite-ship/reference/rollout.md +43 -0
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +33 -0
- package/pack/generated/codex/skills/rite-spec/SKILL.md +231 -0
- package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/codex/skills/rite-spec/reference/ai-spec-template.md +33 -0
- package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +28 -0
- package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +84 -0
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +31 -0
- package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +73 -0
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +110 -0
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +156 -0
- package/pack/generated/codex/skills/rite-status/SKILL.md +119 -0
- package/pack/generated/codex/skills/rite-status/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-temper/SKILL.md +138 -0
- package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +29 -0
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +65 -0
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +53 -0
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +46 -0
- package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +90 -0
- package/pack/generated/codex/skills/rite-vet/SKILL.md +192 -0
- package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +29 -0
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +135 -0
- package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +43 -0
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +53 -0
- package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +167 -0
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +87 -0
- package/pack/generated/codex/skills/rite-zoom-out/agents/openai.yaml +2 -0
- package/package.json +8 -4
- package/scripts/build-binaries.sh +75 -0
- package/scripts/build-host-artifacts.sh +100 -0
- package/scripts/build-release-tarball.sh +16 -2
- package/scripts/check-cross-refs.py +17 -3
- package/scripts/check-generated-skill-budget.mjs +41 -0
- package/scripts/check-instruction-size-baseline.mjs +79 -0
- package/scripts/check-invocation-integrity.py +113 -0
- package/scripts/check-no-global-writes.sh +22 -0
- package/scripts/check-no-personal-paths.py +50 -0
- package/scripts/check-reference-governance.mjs +82 -0
- package/scripts/check-reply-contract.sh +64 -0
- package/scripts/check-rule-uniqueness.sh +4 -32
- package/scripts/codex-generate.sh +300 -0
- package/scripts/devrites-detect.sh +2 -1
- package/scripts/eval-runner.py +4 -2
- package/scripts/eval-scorer.mjs +46 -0
- package/scripts/grade-feature.sh +24 -7
- package/scripts/install-lib.sh +112 -19
- package/scripts/pin.sh +4 -4
- package/scripts/release-check.sh +71 -0
- package/scripts/run-behavioral-evals.sh +34 -2
- package/scripts/run-evals.sh +45 -30
- package/scripts/run-live-behavioral-evals.py +180 -0
- package/scripts/run-outcome-evals.sh +27 -0
- package/scripts/run-routing-evals.py +342 -0
- package/scripts/run-tests.mjs +203 -0
- package/scripts/skill-pruning-audit.mjs +120 -0
- package/scripts/skills-inventory.mjs +107 -0
- package/scripts/validate-agent-composition.py +57 -0
- package/scripts/validate-command-parity.py +70 -0
- package/scripts/validate-frontmatter.py +43 -7
- package/scripts/validate-skill-anatomy.py +139 -0
- package/scripts/validate-workflow-security.py +22 -3
- package/scripts/validate-workspace-schema.py +512 -0
- package/scripts/validate.sh +174 -34
- package/uninstall.sh +22 -183
- package/update.sh +29 -185
- package/docs/cli-mcp.md +0 -62
- package/mcp/devrites-mcp.mjs +0 -105
- package/pack/.claude/hooks/devrites-a1-guard.sh +0 -99
- package/pack/.claude/hooks/devrites-allow.sh +0 -44
- package/pack/.claude/hooks/devrites-cursor.sh +0 -28
- package/pack/.claude/hooks/devrites-orient.sh +0 -53
- package/pack/.claude/hooks/devrites-redwatch.sh +0 -39
- package/pack/.claude/hooks/devrites-refresh-indexes.sh +0 -127
- package/pack/.claude/hooks/devrites-reviewer-readonly.sh +0 -37
- package/pack/.claude/hooks/devrites-statusline.sh +0 -18
- package/pack/.claude/hooks/devrites-stop-gate.sh +0 -45
- package/pack/.claude/hooks/devrites-wright-scope.sh +0 -64
- package/pack/.claude/hooks/hooks.json +0 -52
- package/pack/.claude/rules/code-review.md +0 -48
- package/pack/.claude/rules/development-workflow.md +0 -40
- package/pack/.claude/rules/git-workflow.md +0 -35
- package/pack/.claude/rules/spec-grammar.md +0 -106
- package/pack/.claude/rules/testing.md +0 -88
- package/pack/.claude/skills/devrites-lib/scripts/analyze.sh +0 -78
- package/pack/.claude/skills/devrites-lib/scripts/check-acceptance.sh +0 -75
- package/pack/.claude/skills/devrites-lib/scripts/close-out.sh +0 -47
- package/pack/.claude/skills/devrites-lib/scripts/conventions.py +0 -273
- package/pack/.claude/skills/devrites-lib/scripts/coverage.sh +0 -51
- package/pack/.claude/skills/devrites-lib/scripts/devrites.sh +0 -77
- package/pack/.claude/skills/devrites-lib/scripts/doctor.sh +0 -156
- package/pack/.claude/skills/devrites-lib/scripts/doubt-coverage.sh +0 -59
- package/pack/.claude/skills/devrites-lib/scripts/evidence-fresh.sh +0 -63
- package/pack/.claude/skills/devrites-lib/scripts/footprint.sh +0 -45
- package/pack/.claude/skills/devrites-lib/scripts/learnings.sh +0 -74
- package/pack/.claude/skills/devrites-lib/scripts/mutation-gate.sh +0 -52
- package/pack/.claude/skills/devrites-lib/scripts/package-existence.sh +0 -68
- package/pack/.claude/skills/devrites-lib/scripts/preamble.sh +0 -76
- package/pack/.claude/skills/devrites-lib/scripts/progress.sh +0 -103
- package/pack/.claude/skills/devrites-lib/scripts/readiness.sh +0 -62
- package/pack/.claude/skills/devrites-lib/scripts/reconcile.sh +0 -123
- package/pack/.claude/skills/devrites-lib/scripts/resolve.sh +0 -279
- package/pack/.claude/skills/devrites-lib/scripts/rites.sh +0 -41
- package/pack/.claude/skills/devrites-lib/scripts/spec-validate.sh +0 -130
- package/pack/.claude/skills/devrites-lib/scripts/stuck.sh +0 -67
- package/pack/.claude/skills/devrites-lib/scripts/test-integrity.sh +0 -87
- package/pack/.claude/skills/devrites-lib/scripts/tick-afk.sh +0 -52
- package/scripts/merge-codex-hooks.mjs +0 -78
- /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/coding-style.md +0 -0
- /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/error-handling.md +0 -0
- /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/hooks.md +0 -0
- /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/patterns.md +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# $rite-vet — anti-patterns
|
|
2
|
+
|
|
3
|
+
Universal rationalizations + red flags live in
|
|
4
|
+
[`../../devrites-lib/reference/standards/anti-patterns.md`](../../devrites-lib/reference/standards/anti-patterns.md) — read it when the
|
|
5
|
+
reluctance is broader than this phase. Below are the vet-specific ones.
|
|
6
|
+
|
|
7
|
+
## Phase rationalizations
|
|
8
|
+
|
|
9
|
+
| Excuse | Rebuttal |
|
|
10
|
+
|---|---|
|
|
11
|
+
| "I'll write all the findings into `eng-review.md` and let the user read it." | The artifact is the *output* of an interactive review, not a substitute for it. A material finding's path to "done" goes **through `AskUserQuestion`**, one at a time, with a recommendation + why. Dumping findings into one write and moving on is the exact failure this skill exists to prevent. |
|
|
12
|
+
| "The plan doesn't handle X — flag it." (without checking) | Quote the line first. If you can't quote where the plan handles X, you also can't be sure it doesn't — force confidence ≤4 and suppress. The "field/case doesn't exist" finding is the most common false positive; the verification gate exists to kill it. |
|
|
13
|
+
| "It's an obvious fix — I'll just edit the plan." | An obvious *plan refinement* (a test requirement, an error path, tighter scope) you write directly — that's vet's job. A fix that **changes an acceptance criterion or product behavior** is not obvious enough to skip the human: route it through the Spec Drift Guard with a recorded decision. |
|
|
14
|
+
| "This dimension is thin but the others are strong — net it's fine." | The gate is the **floor**, not the average. A plan `broken` on test-coverage does not pass because it's `strong` on architecture. |
|
|
15
|
+
| "I can see it's adequate — I'll note the band, the evidence is obvious." | Cite the quoted evidence **before** the band. Score-first-justify-later is how a reviewer waves through a plan it already likes. |
|
|
16
|
+
| "8+ files but it all needs to change — proceed." | The complexity smell is a **STOP-and-ask**, not a note. Name the overbuilt part, propose the smaller version that still meets acceptance, and let the human decide before any axis runs. Maybe it's justified — record *why* — but the gate fires first. |
|
|
17
|
+
| "There's no test for this, but the user can add one later." | Coverage is designed **now**, before the code, so the build writes tests alongside it. A deferred test is a test that misses the boundary cases writing-it-now would expose. Regressions are non-negotiable — Critical, no question. |
|
|
18
|
+
| "Performance looks fine." | "Looks fine" is not a measurement. A perf finding is "measure X against budget Y" or it's nothing — don't recommend speculative tuning, and don't wave past an N+1 you can quote. |
|
|
19
|
+
| "Cross-model agrees, so apply it." | Cross-model consensus is a strong *signal*, not an approval. Every cross-model finding is informational until the human approves it (or, in AFK, until the gate ceiling clears a hardening-only change). |
|
|
20
|
+
|
|
21
|
+
## Red flags
|
|
22
|
+
- `eng-review.md` / `test-plan.md` written but `plan.md` / `tasks.md` **not** hardened — the build
|
|
23
|
+
follows the plan, so the review changed nothing.
|
|
24
|
+
- A finding raised with confidence ≥7 but **no quoted source line** — that defeats the verification gate.
|
|
25
|
+
- A scope-growing finding auto-applied in AFK (it must pause), or any irreversible-risk touch that didn't pause.
|
|
26
|
+
- A failure-mode table with rows but no verdict column filled — a "no test + no handling + silent" row not marked Critical.
|
|
27
|
+
- The reviewer loop running past 3 iterations, or the reviewer / cross-model being handed the author's reasoning (defeats the fresh-context point).
|
|
28
|
+
- The skill writing code, implementing a slice, or running the build — that's `$rite-build`. Vet reviews and hardens the plan; it never implements.
|
|
29
|
+
- Re-litigating the **spec's** scope/ambition — that was `$rite-temper`. Vet challenges *implementation* scope only.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# `eng-review.md` + `test-plan.md` templates + fold-back rules
|
|
2
|
+
|
|
3
|
+
`$rite-vet` produces two artifacts and a set of fold-back edits. `eng-review.md` is the durable
|
|
4
|
+
**record** of the review; `test-plan.md` is the build-readable **coverage target**; the
|
|
5
|
+
fold-back edits to `plan.md` / `tasks.md` are what the build actually follows. The record
|
|
6
|
+
without the fold-back is dead prose — the build reads `plan.md` + `test-plan.md`, not `eng-review.md`.
|
|
7
|
+
|
|
8
|
+
## `eng-review.md` — the record
|
|
9
|
+
Write to `.devrites/work/<slug>/eng-review.md`. If one exists for the slug, **update** it, don't
|
|
10
|
+
clobber.
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
# Eng review: <slug>
|
|
14
|
+
Vetted: <iso> Cross-model: ran (codex) | off
|
|
15
|
+
|
|
16
|
+
## 1. Depth
|
|
17
|
+
light | full (<trigger that escalated it>) # every plan is vetted — light or full, never skipped (see depth.md)
|
|
18
|
+
|
|
19
|
+
## 2. Scope challenge
|
|
20
|
+
- What already exists (reuse vs rebuild): <findings — each reuse the plan should adopt>
|
|
21
|
+
- Minimum diff: scope accepted as-is | trimmed <n items, listed in NOT-in-scope>
|
|
22
|
+
- Complexity: ok | smell (<n files, m new services) → asked → <reduce|proceed, why>
|
|
23
|
+
- Built-in / completeness / distribution: <flags, with source citations>
|
|
24
|
+
|
|
25
|
+
## 3. Axis findings (floor-gated)
|
|
26
|
+
| Axis | Floor band | Findings (sev · confidence) |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| Architecture | strong/adequate/thin/broken | [Critical](9) … |
|
|
29
|
+
| Plan code-quality | … | … |
|
|
30
|
+
| Test-coverage design | … | see test-plan.md |
|
|
31
|
+
| Performance | … | … |
|
|
32
|
+
Suppressed (confidence ≤4, unverified): <count — one line each>
|
|
33
|
+
|
|
34
|
+
## 4. Failure modes
|
|
35
|
+
| New codepath | Realistic failure | Test? | Handling? | Silent? | Verdict |
|
|
36
|
+
|---|---|---|---|---|---|
|
|
37
|
+
| <path> | timeout / nil / race / stale | y/n | y/n | y/n | ok / **CRITICAL gap** |
|
|
38
|
+
|
|
39
|
+
## 5. Parallelization
|
|
40
|
+
Sequential — no opportunity # OR the dependency table + lanes + order + conflict flags
|
|
41
|
+
|
|
42
|
+
## 6. Reviewer loop
|
|
43
|
+
- iter 1: <findings → resolution> · iter 2: … (≤3)
|
|
44
|
+
- Cross-model (if --cross-model): <overlap / unique findings — informational until approved>
|
|
45
|
+
- Final: floor = <band>; unresolved → <none | blocking qid>
|
|
46
|
+
|
|
47
|
+
## 7. Completion summary
|
|
48
|
+
- Scope: accepted | reduced · Architecture: <n> · Code-quality: <n>
|
|
49
|
+
- Coverage: <x/y> planned, <n> gaps, <n> regressions (Critical)
|
|
50
|
+
- Failure modes: <n> mapped, <n> critical gaps
|
|
51
|
+
- NOT in scope: written · What already exists: written
|
|
52
|
+
- Plan: hardened in place | <n> deltas via Spec Drift Guard
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## `test-plan.md` — the build-readable coverage target
|
|
56
|
+
Write to `.devrites/work/<slug>/test-plan.md`. `$rite-build` (the slice-wright) reads it to write
|
|
57
|
+
tests alongside the code; `$rite-prove` walks it against `evidence.md`. Keep it about *what to
|
|
58
|
+
test and where*, not implementation detail.
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
# Test plan: <slug>
|
|
62
|
+
From $rite-vet on <iso>. Runner + conventions: <detected framework + command>.
|
|
63
|
+
|
|
64
|
+
## Coverage diagram
|
|
65
|
+
<the ASCII code-paths + user-flows diagram from review-axes.md, with COVERAGE / GAPS / REGRESSIONS line>
|
|
66
|
+
|
|
67
|
+
## Per-gap test requirements
|
|
68
|
+
| ID | Path / flow | Test file (match conventions) | Asserts (input → expected) | Kind | Slice | Priority |
|
|
69
|
+
|---|---|---|---|---|---|---|
|
|
70
|
+
| T1 | <path> | <path/to.test> | <empty list → 200 + []> | unit / E2E / eval | <slice> | P1 / **Regression-Critical** |
|
|
71
|
+
|
|
72
|
+
## Interaction inventory (UI slices — every element + flow gets an asserting test)
|
|
73
|
+
Enumerate every interactive element and user flow the feature exposes; one row each, none
|
|
74
|
+
skipped. Level per `testing.md` "Completeness": elements/fields → unit/component, critical
|
|
75
|
+
journeys → one E2E (never one-per-field). `$rite-build` must cover every row; `$rite-prove`
|
|
76
|
+
fails any row with no passing result — an unverified element is a NO-GO, like an unproven criterion.
|
|
77
|
+
```markdown
|
|
78
|
+
| Element / flow | Kind (field/checkbox/select/radio/toggle/button/link/flow) | Level | Test file | Asserts (action → expected) |
|
|
79
|
+
|---|---|---|---|---|
|
|
80
|
+
| email field | field | unit | <form.test> | invalid → error shown; valid → accepted |
|
|
81
|
+
| 'remember me' | checkbox | unit | <form.test> | toggles the persisted flag |
|
|
82
|
+
| country | select | unit | <form.test> | options load; change fires handler |
|
|
83
|
+
| submit | button | component | <form.test> | disabled until valid; click → submits once |
|
|
84
|
+
| login | flow ★★★ | E2E | <login.e2e> | enter → submit → lands on dashboard |
|
|
85
|
+
```
|
|
86
|
+
Omit the whole section only for a slice with **no** interactive surface (pure backend/logic).
|
|
87
|
+
|
|
88
|
+
## Acceptance → test map
|
|
89
|
+
- <spec acceptance criterion> → <T1, T3> # every criterion maps to ≥1 test
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Parallelization table (in `eng-review.md` §5 when there's an opportunity)
|
|
93
|
+
```markdown
|
|
94
|
+
| Step / workstream | Modules touched (dir-level) | Depends on |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| API endpoints | controllers/, serializers/ | — |
|
|
97
|
+
| Worker | jobs/, lib/queue/ | API endpoints |
|
|
98
|
+
|
|
99
|
+
Lanes: A: API → Worker (sequential, shared lib/) · B: migration (independent)
|
|
100
|
+
Order: launch A + B in parallel worktrees → merge → C
|
|
101
|
+
Conflicts: Lanes A and B both touch models/ — sequential or coordinate.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Fold-back — the part the build follows
|
|
105
|
+
Vet *is* the plan-hardening phase, so behavior-preserving refinements are written **directly**;
|
|
106
|
+
acceptance/behavior changes route through the **Spec Drift Guard**.
|
|
107
|
+
|
|
108
|
+
- **Write directly into `plan.md` / `tasks.md`** (single canonical writer — you, not the reviewer):
|
|
109
|
+
- `plan.md` §Scope boundaries ← "NOT in scope" items.
|
|
110
|
+
- `plan.md` §Architecture decisions ← reuse-over-rebuild calls + named failure scenarios.
|
|
111
|
+
- `plan.md` §Dependency graph / §Implementation order ← the parallel lanes + any ordering fix
|
|
112
|
+
(e.g. refactor-before-feature split).
|
|
113
|
+
- `plan.md` §Complexity & deviations gate ← any deviation the §0 challenge surfaced + its justification.
|
|
114
|
+
- `tasks.md` slices ← added test requirements (point at `test-plan.md`), added error-handling /
|
|
115
|
+
failure-mode coverage, tightened slice scope, a split of a refactor+behavior slice into two.
|
|
116
|
+
Adjust a slice's `Gate:` upward when vet reveals higher stakes (e.g. an unflagged migration).
|
|
117
|
+
- Re-run the `plan.md` Readiness gate after edits; it must still pass.
|
|
118
|
+
- **Route through the Spec Drift Guard** (record `drift.md` + a recorded decision, then `$rite-plan
|
|
119
|
+
repair` for any structural reslice) for anything that **changes an acceptance criterion, product
|
|
120
|
+
behavior, or the spec** — including a scope reduction that drops a criterion. A folded change with
|
|
121
|
+
no recorded decision is the batch-dump failure.
|
|
122
|
+
- **`decisions.md`** — one ADR per material call: `context · decision · why-not-the-alternative ·
|
|
123
|
+
what-would-change-it`.
|
|
124
|
+
- **`assumptions.md`** — every "we'll probably need X" demoted to an explicit assumption-to-verify,
|
|
125
|
+
never smuggled into scope as a fact.
|
|
126
|
+
|
|
127
|
+
## Write discipline
|
|
128
|
+
- **Single canonical writer.** The skill writes `eng-review.md` / `test-plan.md` and edits
|
|
129
|
+
`plan.md` / `tasks.md`; `devrites-plan-reviewer` is **read-only** and only returns findings + bands.
|
|
130
|
+
- **No silent scope.** A plan refinement that grows acceptance without a recorded decision, or a
|
|
131
|
+
deferral that drops a criterion without the Guard, is a defect — not a convenience.
|
|
132
|
+
- Add `eng-review.md` + `test-plan.md` to the workspace between `tasks.md` and `state.md`.
|
|
133
|
+
`$rite-build` (the slice-wright) and `$rite-prove` **read `test-plan.md`** as the coverage
|
|
134
|
+
target; `$rite-review` and `$rite-seal` may consult `eng-review.md` for the failure-mode +
|
|
135
|
+
scope record.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# `--cross-model` — the outside voice (a genuinely different model)
|
|
2
|
+
|
|
3
|
+
`devrites-plan-reviewer` gives an *independent* read (fresh context, no authoring reasoning) —
|
|
4
|
+
but it's still the same model family. `--cross-model` adds a second opinion from a **different**
|
|
5
|
+
AI system, because two models agreeing on a plan is stronger signal than one model reviewing it
|
|
6
|
+
thoroughly. It is **opt-in** for `$rite-vet` (the flag) and **off by default in
|
|
7
|
+
`$rite-autocomplete`** unless the flag was armed — it costs latency and a second runtime.
|
|
8
|
+
|
|
9
|
+
## When it runs
|
|
10
|
+
Only when `$ARGUMENTS` contains `--cross-model` **and** a different-model reviewer is available.
|
|
11
|
+
First run `devrites-engine reviewers list`; configured aliases there are preferred over ad-hoc
|
|
12
|
+
model choices. The default path (no flag) relies on `devrites-plan-reviewer` for independence —
|
|
13
|
+
that is a complete review on its own; cross-model is an enhancement, not a requirement.
|
|
14
|
+
|
|
15
|
+
## Dispatch
|
|
16
|
+
After the in-model reviewer loop converges (or in parallel with its final iteration), hand the
|
|
17
|
+
**same fresh inputs** to a different model — preferentially a configured `codex` reviewer alias,
|
|
18
|
+
then the `codex:codex-rescue` agent if no alias exists. Give it only the contract, never the
|
|
19
|
+
authoring reasoning:
|
|
20
|
+
|
|
21
|
+
> Independent engineering review of a defined implementation plan, before any code.
|
|
22
|
+
> Read only `.devrites/work/<slug>/plan.md`, `tasks.md`, and `spec.md`. Judge: architecture &
|
|
23
|
+
> boundaries, scope discipline & reuse, test-coverage design, performance, reversibility, and
|
|
24
|
+
> failure-mode coverage. For every finding, quote the line that motivates it and give a 1-10
|
|
25
|
+
> confidence; suppress anything you can't quote. Return labeled findings (Critical / Important /
|
|
26
|
+
> Suggestion) with a concrete fix. Do not edit anything. Do not approve — find what will cost a redo.
|
|
27
|
+
|
|
28
|
+
If the agent / runtime is unavailable, **skip and say so** in `eng-review.md` ("cross-model:
|
|
29
|
+
requested but unavailable — in-model review only"); do not block on it and do not silently treat
|
|
30
|
+
the absence as a pass.
|
|
31
|
+
|
|
32
|
+
## Integration rule (the important one)
|
|
33
|
+
Cross-model findings are **informational until the human approves each one** — even when you
|
|
34
|
+
agree with them, even when they overlap the in-model reviewer. Cross-model **consensus** is a
|
|
35
|
+
strong signal: surface it as such ("both reviewers flagged SLICE-003's missing timeout test"), but
|
|
36
|
+
the human still makes the call via `AskUserQuestion`. In AFK, the same gate ceiling applies:
|
|
37
|
+
a cross-model finding that *hardens* the plan auto-applies and is recorded; one that *grows
|
|
38
|
+
scope* or changes acceptance is a blocking pause.
|
|
39
|
+
|
|
40
|
+
## Recording
|
|
41
|
+
In `eng-review.md` §6, note: which model ran, the overlap with the in-model reviewer (consensus
|
|
42
|
+
findings), and any **unique** findings the outside voice caught that the in-model pass missed —
|
|
43
|
+
those are the highest-value output of running it at all.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Depth calibration — always vet, scale the rigor (never skip)
|
|
2
|
+
|
|
3
|
+
`$rite-vet` runs on **every** plan — every feature deserves a correct engineering plan, not
|
|
4
|
+
just the big ones. What changes with stakes is the *depth*, never *whether* it runs: a simple,
|
|
5
|
+
reversible plan gets a fast **light pass**; a big or risky one gets the **full pass**. There is
|
|
6
|
+
no skip. This shared definition is used by both the standalone `$rite-vet` and the always-run
|
|
7
|
+
`$rite-autocomplete` step, so they agree on how deep to go.
|
|
8
|
+
|
|
9
|
+
A four-section deep-dive on a one-file reversible plan is wasteful; rubber-stamping a
|
|
10
|
+
migration-touching plan is dangerous. Match the effort to the stakes — but **always** leave a
|
|
11
|
+
recorded engineering verdict and a coverage plan.
|
|
12
|
+
|
|
13
|
+
## Full pass when ANY trips
|
|
14
|
+
- **Irreversible-risk contact** — the plan touches anything on the `afk-hitl.md` irreversible-risk
|
|
15
|
+
list: destructive data migration, auth/authz boundary, public-API break, external-service
|
|
16
|
+
contract, filesystem destruction outside the workspace.
|
|
17
|
+
- **Data model** — new/changed entities, relationships, or persistence shape.
|
|
18
|
+
- **Cross-module blast radius** — the impact (from a code-intelligence index if available — see
|
|
19
|
+
`../../devrites-lib/reference/standards/tooling.md` — or an honest estimate) crosses
|
|
20
|
+
module/service boundaries or has many dependents.
|
|
21
|
+
- **Complexity** — `plan.md` touches **>8 files** or adds **>2 new services/modules/classes**.
|
|
22
|
+
- **Multi-slice / multi-day**, or a new dependency / pattern / second design system.
|
|
23
|
+
- **The user asked**, or `--full`.
|
|
24
|
+
|
|
25
|
+
Full pass = §0 scope challenge + all four axes (each walked finding-by-finding) + the failure-mode
|
|
26
|
+
table + parallelization + the reviewer loop. See [`review-axes.md`](review-axes.md).
|
|
27
|
+
|
|
28
|
+
## Light pass otherwise (the default for simple plans — still never a skip)
|
|
29
|
+
When none of the full-pass triggers fire, run the **light pass**: a fast but real engineering
|
|
30
|
+
check that still leaves a verdict and a coverage plan. In a handful of lines:
|
|
31
|
+
- **§0 scope challenge, in brief** — confirm minimum diff + reuse (one line each); if a complexity
|
|
32
|
+
smell or missed reuse appears, escalate that to the full treatment.
|
|
33
|
+
- **One-line scan per axis** (architecture / plan code-quality / test-coverage / performance) —
|
|
34
|
+
"No issues" is a valid result, but you must look and say so per axis, not assume.
|
|
35
|
+
- **Always** produce the acceptance→test map + any regression-Criticals in `test-plan.md`. This is
|
|
36
|
+
the part that makes "a correct engineering plan for *everything*" real — it never downgrades,
|
|
37
|
+
light or full.
|
|
38
|
+
- Write the short `eng-review.md` (`Depth: light`) and harden `tasks.md` with the test requirements.
|
|
39
|
+
|
|
40
|
+
A light-pass finding that turns out to be real **escalates that axis to full treatment** (walk it
|
|
41
|
+
with the human, confidence-banded). Light means *less ceremony*, never *less honesty*.
|
|
42
|
+
|
|
43
|
+
## In `$rite-autocomplete`
|
|
44
|
+
Autocomplete runs `$rite-vet` after `$rite-define` on **every** feature — light or full per the
|
|
45
|
+
triggers above, **never skipped**. Under the AFK gate ceiling:
|
|
46
|
+
- **Auto-apply (no pause):** hardening findings — added test requirements, error-handling /
|
|
47
|
+
failure-mode coverage, tightened scope, reuse-over-rebuild, dependency-order / parallel-lane fixes
|
|
48
|
+
(these never grow acceptance). Record the rationale in `decisions.md`.
|
|
49
|
+
- **Blocking pause:** any finding that **grows scope, adds a slice, changes an acceptance
|
|
50
|
+
criterion, or alters product behavior**.
|
|
51
|
+
- **Always pause:** irreversible-risk findings, and any axis still below bar after the
|
|
52
|
+
≤3-iteration reviewer loop.
|
|
53
|
+
- **Cross-model** is off by default; it runs only if `--cross-model` was explicitly armed.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Senior-engineer lenses — how to *see* the findings
|
|
2
|
+
|
|
3
|
+
These are not extra checklist items. They are the instincts an experienced staff engineer
|
|
4
|
+
applies while reading a plan — the pattern recognition that separates "read the plan" from
|
|
5
|
+
"caught the landmine". Apply them across all four axes in [`review-axes.md`](review-axes.md):
|
|
6
|
+
each lens turns a vague unease into a concrete, quotable finding.
|
|
7
|
+
|
|
8
|
+
## The lenses
|
|
9
|
+
|
|
10
|
+
1. **Boring by default.** A team gets a few innovation tokens; everything else should be proven
|
|
11
|
+
technology. When the plan introduces something novel (a new datastore, a hand-rolled queue, a
|
|
12
|
+
bespoke pattern), ask whether this is a wise token to spend or whether a boring built-in does
|
|
13
|
+
it. → Architecture / Scope axes.
|
|
14
|
+
2. **Blast radius.** For every decision: what's the worst case, and how many systems / callers /
|
|
15
|
+
users does it touch? A change with wide blast radius and no rollback is a different risk class
|
|
16
|
+
than a leaf change. → Architecture / Reversibility.
|
|
17
|
+
3. **Reversibility preference.** Prefer the choice that's cheap to undo — feature flag, additive
|
|
18
|
+
migration, incremental rollout — over the one that's right only if you're right the first time.
|
|
19
|
+
Make the cost of being wrong low. → Architecture / Reversibility.
|
|
20
|
+
4. **Incremental over revolutionary.** Strangler-fig, not big-bang rewrite; refactor first, then
|
|
21
|
+
change behavior — never both in one slice. If the plan does a structural rewrite and a behavior
|
|
22
|
+
change together, split them. → Plan code-quality / slice shape.
|
|
23
|
+
5. **Systems over heroes.** Design for a tired engineer at 3am, not your sharpest engineer on
|
|
24
|
+
their best day. A plan that only works if every step is done perfectly is fragile. Favor
|
|
25
|
+
guard rails, explicit errors, and obvious failure paths. → Code-quality / Failure modes.
|
|
26
|
+
6. **Essential vs accidental complexity.** Before anything the plan adds, ask Brooks's question:
|
|
27
|
+
is this solving a real problem, or one we created? Accidental complexity is the cheapest thing
|
|
28
|
+
to cut. → Scope / Code-quality.
|
|
29
|
+
7. **Make the change easy, then make the easy change.** If a slice is hard because the surrounding
|
|
30
|
+
structure fights it, the first move is a (separate, behavior-preserving) refactor — call it out
|
|
31
|
+
so the plan sequences it before the feature work, not tangled into it. → Plan code-quality.
|
|
32
|
+
8. **Failure is information.** Every new codepath fails *somehow* in production — timeout, nil,
|
|
33
|
+
race, stale data, partial write. The plan should name the failure and decide: test it, handle
|
|
34
|
+
it, or accept it loudly (never silently). → Failure-mode coverage.
|
|
35
|
+
9. **DX is product quality.** Slow CI, painful local dev, untestable seams → worse software over
|
|
36
|
+
time. If the plan makes the code harder to test or run locally, that's a real finding, not a nit.
|
|
37
|
+
→ Test-coverage / Code-quality.
|
|
38
|
+
10. **Trust boundary discipline.** Every untrusted input crosses an explicit validation + authz
|
|
39
|
+
boundary before it reaches trusted core logic. A plan that lets a value skip the boundary is a
|
|
40
|
+
security finding even pre-code. → Architecture / Security seam.
|
|
41
|
+
|
|
42
|
+
## Using them
|
|
43
|
+
- A lens is a *prompt*, not a verdict. It turns "something's off here" into a finding you can
|
|
44
|
+
quote and band. If a lens fires, follow it to the specific plan line, then run it through the
|
|
45
|
+
confidence + verification gate.
|
|
46
|
+
- Don't recite the lenses in the output — recite the *findings* they produced.
|
|
47
|
+
- When a plan is genuinely clean against a lens, that's worth one line of evidence ("Reversibility:
|
|
48
|
+
additive migration + flag — strong"), not silence; it shows the lens was applied.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# The vet review — scope challenge, four axes, required outputs
|
|
2
|
+
|
|
3
|
+
The body of `$rite-vet`. Run §0 first as a blocking gate, then the four axes one at a time,
|
|
4
|
+
then the required outputs. Apply the senior-engineer lenses in [`eng-lenses.md`](eng-lenses.md)
|
|
5
|
+
throughout — they're how you *see* the findings, not a separate checklist. Every finding is
|
|
6
|
+
calibrated and gated (see "Confidence + verification gate" below) before it reaches the human.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## §0. Scope Challenge (blocking gate — runs before any axis)
|
|
11
|
+
|
|
12
|
+
Before reviewing *how* the plan builds, challenge *whether it should build this much*. This is
|
|
13
|
+
implementation-scope discipline (the spec's ambition is settled — that was `$rite-temper`).
|
|
14
|
+
|
|
15
|
+
1. **What already exists?** For each sub-problem in the plan, find the existing code/flow that
|
|
16
|
+
already solves it (use a code-intelligence index if available — see `../../devrites-lib/reference/standards/tooling.md`).
|
|
17
|
+
Can the plan **capture outputs from an existing
|
|
18
|
+
flow** instead of building a parallel one? Reuse → extend → build new, in that order
|
|
19
|
+
(`coding-style.md`). List every reuse opportunity the plan misses.
|
|
20
|
+
2. **Minimum diff.** What's the smallest set of changes that meets the spec's *acceptance
|
|
21
|
+
criteria*? Flag any planned work that can be deferred without blocking acceptance. Be ruthless
|
|
22
|
+
about implementation scope creep — but never cut an acceptance criterion (that's a Drift Guard
|
|
23
|
+
matter, not a trim).
|
|
24
|
+
3. **Complexity smell.** If `plan.md` touches **>8 files** or adds **>2 new services / modules /
|
|
25
|
+
classes**, treat it as a smell. Check the plan's complexity gate justifies it. If it doesn't
|
|
26
|
+
→ **STOP**: name what's overbuilt, propose a smaller version that meets acceptance, and ask
|
|
27
|
+
via `AskUserQuestion` whether to reduce or proceed. Do not start the axes until answered.
|
|
28
|
+
4. **Built-in check.** For each new pattern / infra component / concurrency approach the plan
|
|
29
|
+
introduces, verify a framework/runtime built-in doesn't already do it, and that the choice is
|
|
30
|
+
current best practice with no known footgun — dispatch `devrites-source-driven` to confirm at
|
|
31
|
+
the source and record the citation. A custom roll where a built-in exists is a scope-reduction
|
|
32
|
+
finding.
|
|
33
|
+
5. **Completeness check.** Is the plan doing the complete version or a shortcut? With AI-assisted
|
|
34
|
+
coding the cost of completeness (full edge-case handling, complete error paths, real test
|
|
35
|
+
coverage) is a fraction of what it was — a shortcut that saves human-hours but only saves
|
|
36
|
+
minutes here is a false economy. Prefer the complete option; flag shortcuts that exist only to
|
|
37
|
+
save effort that AI has already made cheap.
|
|
38
|
+
6. **Distribution check.** If the plan introduces a new artifact (CLI binary, package, container,
|
|
39
|
+
deployable), does it include how it gets built / published / installed? If distribution is
|
|
40
|
+
deferred, say so explicitly in "NOT in scope" — don't let it silently drop.
|
|
41
|
+
|
|
42
|
+
> **STOP discipline.** If the complexity smell trips, the `AskUserQuestion` is a tool call, not
|
|
43
|
+
> prose. Naming the 80%-solution in chat and continuing is the failure this gate exists to prevent.
|
|
44
|
+
|
|
45
|
+
If the smell does not trip, present the §0 findings and proceed to Axis 1.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## The four axes (one at a time, ≤8 findings each)
|
|
50
|
+
|
|
51
|
+
For each axis: evaluate, then **walk each finding WITH the human** via `AskUserQuestion` (one
|
|
52
|
+
issue per call — see "How to ask" below). HITL pauses on each material finding; AFK auto-applies
|
|
53
|
+
within the gate ceiling (`depth.md`). If an axis genuinely has no issue, say "No issues,
|
|
54
|
+
moving on" and continue — don't manufacture findings.
|
|
55
|
+
|
|
56
|
+
### 1. Architecture
|
|
57
|
+
- Component boundaries, coupling, data-flow patterns, single points of failure. Architecture records invariants, not scaffolding: each medium+ decision should state `Binds:` and `Prevents:` so the builder knows what divergence it prevents.
|
|
58
|
+
- Scaling characteristics; where the plan's approach breaks under real load.
|
|
59
|
+
- Security architecture at the seams (auth, data access, API boundaries) — does the plan name
|
|
60
|
+
the trust boundary for each untrusted input?
|
|
61
|
+
- For each new codepath / integration point: **one realistic production failure scenario** and
|
|
62
|
+
whether the plan accounts for it (feeds the failure-mode table).
|
|
63
|
+
- Does any key flow deserve an ASCII diagram in the plan or an inline comment in the code the
|
|
64
|
+
build will write? Name the files that should carry one.
|
|
65
|
+
|
|
66
|
+
### 2. Plan code-quality
|
|
67
|
+
- Module structure the plan implies; DRY across the slices (flag planned repetition aggressively).
|
|
68
|
+
- Error-handling + edge cases the plan names — and the ones it doesn't (call those out explicitly).
|
|
69
|
+
- Over-engineering (premature abstraction, an extension point with no second caller) vs
|
|
70
|
+
under-engineering (fragile / hacky) relative to `patterns.md` + `coding-style.md`.
|
|
71
|
+
- Tech-debt hotspots the plan walks into; existing inline diagrams in touched files that the
|
|
72
|
+
change will make stale.
|
|
73
|
+
|
|
74
|
+
### 3. Test-coverage design
|
|
75
|
+
The differentiator: design the tests *before* the code, so the build writes them alongside.
|
|
76
|
+
- **Framework detection** — find the project's existing test runner + conventions; match them
|
|
77
|
+
(never introduce a new runner to prove one change — `testing.md`).
|
|
78
|
+
- **Map acceptance → tests.** Every spec acceptance criterion must map to ≥1 planned, surface-anchored test (the API response/UI state/CLI output the criterion names, not an internal proxy).
|
|
79
|
+
- **Tool per path** — unit (pure logic, single function, edge cases), integration/E2E (a user
|
|
80
|
+
flow spanning 3+ components, an auth/payment/data-loss path, a mock-hides-failure boundary),
|
|
81
|
+
eval (an LLM/prompt change that needs a quality bar).
|
|
82
|
+
- **Interaction inventory (UI slices) — enumerate every interactive element + flow.** List each
|
|
83
|
+
input field, checkbox, radio, select, toggle, button, and actionable link, plus each user
|
|
84
|
+
flow; assign each ≥1 asserting test **at the right level** — elements/fields → unit/component,
|
|
85
|
+
critical journeys → one E2E (never one-per-field). Every element/flow with no asserting test
|
|
86
|
+
is a GAP; no element ships unverified. Write the inventory to `test-plan.md` (table in
|
|
87
|
+
`artifacts.md`). This is `testing.md` "Completeness" made concrete for the plan.
|
|
88
|
+
- **Regression rule (mandatory, no question):** when the plan modifies existing behavior and the
|
|
89
|
+
current suite doesn't cover the changed path, a regression test is added to the plan as a
|
|
90
|
+
**Critical** requirement — no `AskUserQuestion`, no skipping. Regressions are the highest-priority
|
|
91
|
+
test because they prove something broke. When unsure whether a change is a regression, write the test.
|
|
92
|
+
- Produce the **coverage diagram** (shape below) and add a specific test requirement per GAP.
|
|
93
|
+
|
|
94
|
+
#### Coverage diagram (write to `test-plan.md`)
|
|
95
|
+
Both code paths and user flows in one view; mark E2E-worthy `[→E2E]` and eval-worthy `[→EVAL]`:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
CODE PATHS USER FLOWS
|
|
99
|
+
[+] services/billing [+] Checkout
|
|
100
|
+
├── processPayment() ├── [★★★ planned] complete purchase — checkout.e2e
|
|
101
|
+
│ ├── [★★★ planned] happy + declined + timeout ├── [GAP] [→E2E] double-click submit
|
|
102
|
+
│ └── [GAP] invalid currency └── [GAP] navigate away mid-payment
|
|
103
|
+
└── refundPayment() [+] Error states
|
|
104
|
+
└── [★ planned] full refund only └── [GAP] network-timeout UX
|
|
105
|
+
|
|
106
|
+
COVERAGE: 4/9 planned (44%) | GAPS: 5 (2 E2E) | REGRESSIONS: 1 (Critical)
|
|
107
|
+
```
|
|
108
|
+
Legend: ★★★ behavior+edge+error · ★★ happy path · ★ smoke · [→E2E] integration · [→EVAL] LLM eval.
|
|
109
|
+
**Fast path:** every acceptance criterion already maps to a planned test → "Test coverage: all
|
|
110
|
+
acceptance criteria covered ✓" and continue.
|
|
111
|
+
|
|
112
|
+
### 4. Performance
|
|
113
|
+
- N+1 / unbounded queries and DB access patterns; memory concerns; caching opportunities;
|
|
114
|
+
high-complexity hot paths.
|
|
115
|
+
- Per `performance.md`: name a number to measure or a budget — don't recommend speculative
|
|
116
|
+
micro-tuning. A perf finding is "measure X against budget Y", not "this feels slow".
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Confidence + verification gate (applies to every finding, all axes)
|
|
121
|
+
Tag each finding `[severity] (confidence: N/10) <plan/task/spec ref> — finding`:
|
|
122
|
+
- **9-10** verified against a quoted line · **7-8** strong pattern match → report normally.
|
|
123
|
+
- **5-6** moderate → report with "verify this is real".
|
|
124
|
+
- **≤4** speculative → **suppress from the walk-through**, appendix only.
|
|
125
|
+
|
|
126
|
+
**The gate:** before raising a finding, quote the line(s) that motivate it. Can't quote it →
|
|
127
|
+
force confidence ≤4 and suppress. This kills the "the plan doesn't handle X" finding when the
|
|
128
|
+
plan *does* and you skimmed. Don't fabricate 7+ to dodge it. (Same discipline the reviewer agent
|
|
129
|
+
runs — `devrites-plan-reviewer`.)
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## How to ask (the interactive walk)
|
|
134
|
+
Use `AskUserQuestion` per the pack's standard. Plan-review specifics:
|
|
135
|
+
- **One finding = one call.** Never batch findings into one question.
|
|
136
|
+
- Concrete: name the plan/task section + the quoted line.
|
|
137
|
+
- 2-3 options, including "do nothing / proceed as-is" where reasonable.
|
|
138
|
+
- Per option, one line: **effort** (human ~X / with the build agent ~Y), **risk**, **maintenance**.
|
|
139
|
+
If the complete option is only marginally more effort than the shortcut (AI makes it cheap),
|
|
140
|
+
recommend complete.
|
|
141
|
+
- **Map to a rule.** One sentence tying the recommendation to a DevRites rule (reuse-first,
|
|
142
|
+
fail-fast, test-behavior, measure-first, minimum diff).
|
|
143
|
+
- **Coverage vs kind:** if the options differ in *coverage* (more tests vs fewer, complete vs
|
|
144
|
+
happy-path), add `Completeness: N/10` per option. If they differ in *kind* (two different
|
|
145
|
+
architectures), skip the score and note "options differ in kind, not coverage". Never fabricate
|
|
146
|
+
a score on a kind question.
|
|
147
|
+
- Every material finding ends as a **recorded decision** — a resolved `questions.md` qid (HITL) or
|
|
148
|
+
a `decisions.md` ADR (AFK) — so the walk leaves an auditable trail, not just chat.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Required outputs (after the axes)
|
|
153
|
+
1. **"NOT in scope"** — work considered and explicitly deferred, one-line rationale each. Folds
|
|
154
|
+
into `plan.md` §Scope boundaries + `spec.md` Non-goals (via the Guard) so it can't silently re-enter.
|
|
155
|
+
2. **"What already exists"** — existing code/flows that solve sub-problems, and whether the plan
|
|
156
|
+
reuses or rebuilds them. Every missed reuse becomes a §0 finding.
|
|
157
|
+
3. **Failure-mode table** — for each new codepath: a realistic failure, and whether (a) a test
|
|
158
|
+
covers it, (b) error handling exists, (c) the user sees a clear error or a silent failure. A
|
|
159
|
+
failure with **no test AND no handling AND silent** is a **Critical gap**. (Shape in
|
|
160
|
+
[`artifacts.md`](artifacts.md).)
|
|
161
|
+
4. **Worktree parallelization strategy** — analyze the slices for parallel execution. **Skip** if
|
|
162
|
+
all slices touch the same module or there are <2 independent workstreams ("Sequential, no
|
|
163
|
+
parallelization opportunity"). Otherwise: a dependency table (module-level, not file-level),
|
|
164
|
+
parallel lanes (shared module → same lane/sequential; independent → separate lanes), execution
|
|
165
|
+
order, and conflict flags where two lanes touch the same module dir. This feeds `$rite-build`'s
|
|
166
|
+
isolation strategy and the autocomplete loop. (Shape in [`artifacts.md`](artifacts.md).)
|
|
167
|
+
5. **Completion summary** — the one-glance recap (shape in [`artifacts.md`](artifacts.md)).
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-zoom-out
|
|
3
|
+
description: User-invoked read-only structural map of unfamiliar code: modules, callers, callees, and relevant decisions.
|
|
4
|
+
argument-hint: "[symbol | file | area to map]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Codex compatibility
|
|
10
|
+
|
|
11
|
+
This is the Codex mirror of a DevRites skill. In Codex:
|
|
12
|
+
|
|
13
|
+
- Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
|
|
14
|
+
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
15
|
+
- When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here — Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
|
|
16
|
+
- The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review** — an inline pass shares the calling context and is weaker evidence.
|
|
17
|
+
- Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
18
|
+
- When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers — NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# $rite-zoom-out — step up one abstraction layer
|
|
22
|
+
|
|
23
|
+
When the agent (or the user) is staring at unfamiliar code without a working mental
|
|
24
|
+
model of how it fits the larger system. Stops the "open more files" reflex by returning
|
|
25
|
+
a single, structured map instead.
|
|
26
|
+
|
|
27
|
+
Read `.agents/skills/devrites-lib/reference/standards/core.md` first — chiefly its vocabulary / existing-conventions
|
|
28
|
+
disciplines, which keep the map in the project's own language. The other rule files load
|
|
29
|
+
on demand.
|
|
30
|
+
|
|
31
|
+
## What this skill returns
|
|
32
|
+
|
|
33
|
+
A **structural map** — terse. One pass should answer:
|
|
34
|
+
|
|
35
|
+
- **The area** — what this code is for, in one sentence, using the project's own
|
|
36
|
+
vocabulary.
|
|
37
|
+
- **Modules in scope** — the related files / packages / slices, with a one-line
|
|
38
|
+
purpose each.
|
|
39
|
+
- **Callers (in)** — who calls into this area from outside. Keep to the highest-signal
|
|
40
|
+
3–6; collapse the rest.
|
|
41
|
+
- **Calls (out)** — what this area depends on downstream.
|
|
42
|
+
- **Decisions touching it** — ADRs (under `docs/adr/` if present) or notes in
|
|
43
|
+
`.devrites/work/<slug>/decisions.md` that pre-decide something here.
|
|
44
|
+
- **Smallest sensible change-scope** — where a fix would naturally land, so the next
|
|
45
|
+
step doesn't drift into a project-wide refactor.
|
|
46
|
+
|
|
47
|
+
## Prefer a code-intelligence index (if available)
|
|
48
|
+
|
|
49
|
+
If the project has them — `codebase-memory-mcp` (`get_architecture` / `search_graph`) first,
|
|
50
|
+
cross-checked with `codegraph` (`.codegraph/`) and `graphify` (`graphify-out/`) — use them. For
|
|
51
|
+
codegraph, `codegraph_context` + one `codegraph_explore` return the map in two calls — vastly
|
|
52
|
+
cheaper than a file-walk and more accurate for callers/callees. Fall back to standard methods
|
|
53
|
+
(LSP, then `Grep` + `Read`) when no index is available. See `.agents/skills/devrites-lib/reference/standards/tooling.md`.
|
|
54
|
+
|
|
55
|
+
## Vocabulary discipline
|
|
56
|
+
|
|
57
|
+
Use the **project's** domain language — `CONTEXT.md`, glossaries, the active feature's
|
|
58
|
+
`spec.md` / `decisions.md`. Don't invent fresh names for things the project already
|
|
59
|
+
names. If you notice a fuzzy or overloaded term while mapping, flag it as a FYI at the
|
|
60
|
+
end; don't try to fix it here.
|
|
61
|
+
|
|
62
|
+
## When NOT to use
|
|
63
|
+
|
|
64
|
+
- You already have a clear mental model — zooming out is just tax.
|
|
65
|
+
- The question is a literal text lookup (a string, a comment, an error message) — use
|
|
66
|
+
`Grep`.
|
|
67
|
+
- You need to design or change something — that's `$rite-spec` (new feature) or
|
|
68
|
+
`$rite-define` (plan an approved spec).
|
|
69
|
+
- You want a project-wide architecture audit — use the project's normal architecture
|
|
70
|
+
review process; this skill is a read-only feature-area map.
|
|
71
|
+
|
|
72
|
+
## Output shape
|
|
73
|
+
Reply-contract exception: read-only mapping utility. It skips `devrites-engine progress` when
|
|
74
|
+
there is no active workspace, but follows
|
|
75
|
+
[`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md).
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Done: mapped <area> in the project's vocabulary.
|
|
79
|
+
Changed: workspace only
|
|
80
|
+
Evidence: modules <n>; callers <n>; callees <n>; decisions <n>
|
|
81
|
+
Open: <none | fuzzy term | suspected drift | open question>
|
|
82
|
+
Next: <single recommended command>
|
|
83
|
+
Record: <decision/ADR path | not applicable>
|
|
84
|
+
↻ Hygiene: /clear if this was only orientation; $rite-handoff if it informs active work
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Print the path of any decisions/ADR files referenced so the user can open them.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "DevRites — disciplined senior-engineer workflow skills pack for Claude Code and Codex",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"bin/",
|
|
32
|
+
"engine/",
|
|
32
33
|
"pack/",
|
|
33
34
|
"scripts/",
|
|
34
35
|
"install.sh",
|
|
35
36
|
"uninstall.sh",
|
|
36
37
|
"update.sh",
|
|
37
|
-
"mcp/",
|
|
38
38
|
"docs/",
|
|
39
39
|
"README.md",
|
|
40
40
|
"LICENSE",
|
|
@@ -47,10 +47,14 @@
|
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"prepare": "husky || true",
|
|
50
|
-
"prepack": "rm -rf scripts/__pycache__ scripts/.cache docs/internal",
|
|
50
|
+
"prepack": "bash scripts/build-host-artifacts.sh && rm -rf scripts/__pycache__ scripts/.cache docs/internal",
|
|
51
51
|
"commitlint": "commitlint --edit",
|
|
52
52
|
"validate": "bash scripts/validate.sh",
|
|
53
|
-
"test": "
|
|
53
|
+
"test": "node scripts/run-tests.mjs",
|
|
54
|
+
"test:fast": "node scripts/run-tests.mjs --fast",
|
|
55
|
+
"test:parallel": "node scripts/run-tests.mjs",
|
|
56
|
+
"test:serial": "node scripts/run-tests.mjs --serial",
|
|
57
|
+
"size:baseline": "node scripts/check-instruction-size-baseline.mjs --write",
|
|
54
58
|
"release": "semantic-release",
|
|
55
59
|
"release:dry": "semantic-release --dry-run --no-ci"
|
|
56
60
|
},
|