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,211 @@
|
|
|
1
|
+
# rite-seal phase contract
|
|
2
|
+
|
|
3
|
+
## Execution spine
|
|
4
|
+
|
|
5
|
+
Run the engine gates at these moments:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
devrites-engine preamble
|
|
9
|
+
|
|
10
|
+
devrites-engine spec-validate .devrites/work/<slug>; echo "spec-validate rc=$?"
|
|
11
|
+
devrites-engine check-acceptance .devrites/work/<slug>; echo "check-acceptance rc=$?"
|
|
12
|
+
devrites-engine evidence-fresh <slug>; echo "evidence-fresh rc=$?"
|
|
13
|
+
devrites-engine doubt-coverage <slug>; echo "doubt-coverage rc=$?"
|
|
14
|
+
|
|
15
|
+
devrites-engine footprint log <slug> reviewer devrites-<x>-reviewer
|
|
16
|
+
devrites-engine footprint log <slug> skip devrites-<x>-reviewer
|
|
17
|
+
devrites-engine footprint roster <slug>; echo "roster rc=$?"
|
|
18
|
+
devrites-engine review-integrity <slug>; echo "review-integrity rc=$?"
|
|
19
|
+
devrites-engine review-fingerprints --write <slug>
|
|
20
|
+
|
|
21
|
+
devrites-engine footprint render <slug>
|
|
22
|
+
devrites-engine learnings add "<slug>" "<dismissed-as-intentional class or dead-end>" dismiss
|
|
23
|
+
devrites-engine health record <0..10> "<GO|NO-GO evidence summary>" --note "<top blocker or green proof>"
|
|
24
|
+
devrites-engine timeline log completed --skill rite-seal --slug <slug> --outcome "<go|no-go>" --decision "<verdict>"
|
|
25
|
+
|
|
26
|
+
devrites-engine progress
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Conditional calls still obey the detailed rules below: reviewer and skip
|
|
30
|
+
footprints must account for the whole roster; learnings run only on GO; progress
|
|
31
|
+
is rendered before the final response from [`output.md`](output.md). Seal decides
|
|
32
|
+
only; `$rite-ship` owns irreversible git/publish/deploy actions.
|
|
33
|
+
|
|
34
|
+
1. **Run the shared orientation preamble** — it prints `state.md`, the artifacts present,
|
|
35
|
+
the run mode (HITL/AFK), and the open-question tally by gate, so you orient deterministically
|
|
36
|
+
instead of re-deriving state from raw Markdown:
|
|
37
|
+
```bash
|
|
38
|
+
devrites-engine preamble
|
|
39
|
+
```
|
|
40
|
+
Then read all artifacts: `brief.md`, `spec.md`, `plan.md`, `tasks.md`, `state.md`,
|
|
41
|
+
`decisions.md`, `assumptions.md`, `questions.md`, `drift.md`, `evidence.md`,
|
|
42
|
+
`browser-evidence.md`, `polish-report.md`, `review.md`, `design-brief.md` (if UI),
|
|
43
|
+
`devex.md` (if a developer-facing surface), `strategy.md` (if present), and the **final diff**. If a code-intelligence index is available
|
|
44
|
+
(see `.agents/skills/devrites-lib/reference/standards/tooling.md`), use it for
|
|
45
|
+
blast-radius checks on the final diff in step 5; context7 if available can confirm a current
|
|
46
|
+
external-API signature a reviewer flags.
|
|
47
|
+
2. Check **acceptance criteria one by one** — first run `devrites-engine spec-validate .devrites/work/<slug>`;
|
|
48
|
+
unresolved or unproven `resolved/test` prohibitions are a NO-GO until the linked evidence exists.
|
|
49
|
+
Then use [final-evidence](final-evidence.md).
|
|
50
|
+
Each gets a checkbox + the evidence that proves it (or "unproven"). Verify each criterion
|
|
51
|
+
**independently against the evidence artifact** — the slice report or the build narrative is not
|
|
52
|
+
proof; the `devrites-spec-reviewer` + `devrites-test-analyst` fan-out in step 7 is the
|
|
53
|
+
independent cross-check (a verifier that never saw the optimistic narrative).
|
|
54
|
+
3. Verify tests, build/typecheck/lint, and browser proof are present and green for the
|
|
55
|
+
scope. Re-run if cheap and in doubt. **For a UI feature with a `design-brief.md`**, read the
|
|
56
|
+
`## Visual Verdict` table in `browser-evidence.md`: a `FAIL` on an **acceptance-mapped**
|
|
57
|
+
criterion is an unmet acceptance criterion (NO-GO, per the severity gate), a declared-state
|
|
58
|
+
`FAIL` is **Important**, and a UI build whose brief exists but whose verdict is **absent** is an
|
|
59
|
+
Important evidence gap (the scorecard should have been emitted at browser-proof).
|
|
60
|
+
4. Check unresolved **questions** and **drift** — any open item that changes product
|
|
61
|
+
behavior blocks. **Any `questions.md` entry with `gate: validating` and `status: open`
|
|
62
|
+
is a NO-GO regardless of behavior impact** (an open validating gate is merge-blocking by
|
|
63
|
+
definition); a slice marked `built (pending review)` is not done.
|
|
64
|
+
4a. **Doubt coverage — every stood decision was independently doubted.** Run the deterministic
|
|
65
|
+
check, then judge it against `decisions.md`:
|
|
66
|
+
```bash
|
|
67
|
+
devrites-engine doubt-coverage <slug>; echo "doubt-coverage rc=$?"
|
|
68
|
+
```
|
|
69
|
+
The script reads two records `$rite-build` writes — the `## Decisions stood` ledger in
|
|
70
|
+
`decisions.md` (each entry ends `— doubt: <accept | reject-resolved | MISSING>`) and the `doubt`
|
|
71
|
+
footprint. Read the exit code:
|
|
72
|
+
- **rc=3** — the ledger records a stood decision with `doubt: MISSING`: doubt was definitively
|
|
73
|
+
skipped for a decision on record. **Important**; **NO-GO** when that decision is irreversible-risk
|
|
74
|
+
(auth / public-API / migration). This is the per-slice skip the footprint count alone can't catch.
|
|
75
|
+
- **rc=1** — zero doubt dispatched across the build. A **prompt to verify, not a finding**: confirm
|
|
76
|
+
against the ledger — an every-slice-trivial feature (`- none`) is a valid pass; a stood triggering
|
|
77
|
+
decision (boundary / data-model / auth / public-API / migration / branching) with no verdict is
|
|
78
|
+
the finding, same severity as rc=3.
|
|
79
|
+
- **rc=0** — covered, or not assessable (an inline build logs no dispatch — verify the ledger's
|
|
80
|
+
verdicts by hand).
|
|
81
|
+
Either way, walk the `## Decisions stood` ledger yourself: severity rides the unverified
|
|
82
|
+
**decision**, never the exit code alone.
|
|
83
|
+
5. Check **security, data, migration, rollback** risk —
|
|
84
|
+
[risk-and-rollback](risk-and-rollback.md). If `strategy.md` exists (from
|
|
85
|
+
`$rite-temper`), confirm its **top pre-mortem risks are mitigated** in the diff/evidence and
|
|
86
|
+
that no **Non-goal / deferred item crept into the diff** (scope creep) — either is a finding
|
|
87
|
+
(an unmitigated top risk or smuggled-in out-of-scope work).
|
|
88
|
+
- **Principles** (`principles.md`): score the final diff against each declared invariant in
|
|
89
|
+
`.devrites/principles.md`. A violation with no matching, human-approved exception in the
|
|
90
|
+
register is a **Critical** finding and a NO-GO; an exception that is stale (past its review
|
|
91
|
+
trigger) or wider than its stated scope is itself a finding. No file / no principles → skip.
|
|
92
|
+
- **Observability** (`observability.md`): if the diff added a runtime surface (endpoint,
|
|
93
|
+
job, integration, user flow, error path), a feature shipping with no way to debug it in
|
|
94
|
+
prod is an **Important** finding, not a pass — `evidence.md` should show telemetry observed
|
|
95
|
+
to emit (`$rite-prove` step 5b).
|
|
96
|
+
- **Developer experience** (`developer-experience.md`): if the diff ships a developer-facing
|
|
97
|
+
surface, reconcile `devex.md` (the `$rite-vet` predicted scorecard vs the `$rite-prove`
|
|
98
|
+
measured one — the boomerang). A broken public dev contract (a documented command that errors,
|
|
99
|
+
a getting-started flow that can't complete) or an unexplained measured DX regression is
|
|
100
|
+
**Important** — **Critical** on a frozen public surface (`principles.md`). No surface → skip.
|
|
101
|
+
- **Removal / migration** (`deprecation.md`): if the diff deletes or migrates code, an API,
|
|
102
|
+
or data, confirm it followed expand→contract, proved the old path unused before removing it,
|
|
103
|
+
and carries a rollback for every destructive step. A surprise deletion or a one-shot
|
|
104
|
+
breaking migration is a finding (and trips the irreversible-risk gate, `afk-hitl.md`).
|
|
105
|
+
6. Check **frontend polish** if UI is involved (states, a11y, responsive, design-system,
|
|
106
|
+
browser evidence).
|
|
107
|
+
7. **Independent review** — seal is the final gate, not a re-run of `$rite-review`.
|
|
108
|
+
It **always re-spawns** the axes `$rite-review` did not cover: `devrites-test-analyst`,
|
|
109
|
+
`devrites-security-auditor`, `devrites-performance-reviewer`, and
|
|
110
|
+
`devrites-frontend-reviewer` (UI). It **only re-runs the Spec and Code-review axes**
|
|
111
|
+
(`devrites-spec-reviewer`, `devrites-code-reviewer`) when the diff changed since
|
|
112
|
+
`$rite-review` ran (compare against `review.md`); if the diff is unchanged, carry
|
|
113
|
+
review's verdicts on those axes forward rather than re-litigating them.
|
|
114
|
+
If subagents are available, fan out **in parallel** (one `Task` block, multiple tool
|
|
115
|
+
calls) to the **roster** — the seven reviewers and their checkable triggers are the single
|
|
116
|
+
source in [`parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md) (dispatch
|
|
117
|
+
shape + reconciliation there too; `.agents/skills/devrites-lib/reference/standards/agents.md` — "Run independent reviewers in
|
|
118
|
+
parallel"). Dispatch every always-on reviewer and every conditional whose trigger the diff
|
|
119
|
+
meets; `devrites-devex-reviewer` runs in **measure mode** — grade the measured DX scorecard
|
|
120
|
+
and reconcile the boomerang against the `$rite-vet` prediction. Give each the workspace path +
|
|
121
|
+
diff *without the author's reasoning*. If subagents are unavailable, run the equivalent
|
|
122
|
+
reviews sequentially yourself and flag each as a fallback.
|
|
123
|
+
The reviewer **AGENTS** here (fresh context, no author reasoning) are the seal
|
|
124
|
+
GATE; `devrites-audit` is the inline single-axis pass run during build/polish.
|
|
125
|
+
The two paths are intentional, not divergent — the inline audit catches issues
|
|
126
|
+
early; the fresh-context agents are the independent gate before ship.
|
|
127
|
+
**Footprint — account for the whole roster.** For each reviewer you dispatch, append
|
|
128
|
+
`devrites-engine footprint log <slug> reviewer devrites-<x>-reviewer` (the reviewer's **exact agent name** —
|
|
129
|
+
the roster gate matches on it, so a freehand label like `spec` will read as unaccounted); for
|
|
130
|
+
each roster reviewer you consciously do **not** dispatch, append
|
|
131
|
+
`devrites-engine footprint log <slug> skip devrites-<x>-reviewer` and note the one-line reason in `seal.md`.
|
|
132
|
+
A conditional reviewer that does not apply is a *recorded skip*, never a silent omission — step 7b
|
|
133
|
+
proves the roster complete before the verdict.
|
|
134
|
+
7a. **Reconcile findings — confidence over volume.** Band each reviewer finding by confidence
|
|
135
|
+
(1–10); a low-confidence (≤4) finding that can't be verified against the diff is **suppressed**
|
|
136
|
+
to a `Suppressed (low-confidence): n` line, not a blocker. Every Critical/Important must cite
|
|
137
|
+
the `file:line` (or spec line) that proves it. Surface genuine cross-reviewer disagreement
|
|
138
|
+
**explicitly** rather than averaging it away, and don't let a pile of low-confidence nits
|
|
139
|
+
inflate the verdict — the gate is `Critical == 0` + acceptance + drift, not "few findings".
|
|
140
|
+
(A seal that fires noise teaches the next one to be ignored.)
|
|
141
|
+
7b. **Account for the roster — no reviewer silently skipped.** Before the verdict, prove every
|
|
142
|
+
roster reviewer carries a decision (dispatched or skip-recorded in step 7's footprint):
|
|
143
|
+
```bash
|
|
144
|
+
devrites-engine footprint roster <slug>; echo "roster rc=$?"
|
|
145
|
+
```
|
|
146
|
+
- **rc=3** — a roster reviewer was neither dispatched nor skip-recorded: the silent omission
|
|
147
|
+
this gate exists to catch. **NO-GO** on the review's *completeness* (not the diff) — dispatch
|
|
148
|
+
the missing reviewer or record a justified skip, then re-run. Same standing as an unproven
|
|
149
|
+
criterion (severity gate).
|
|
150
|
+
- **rc=1** — an always-on axis (Spec / Code-review) was skip-recorded: legitimate **only** as a
|
|
151
|
+
carry-forward of `$rite-review`'s verdict on an **unchanged** diff (step 7). Confirm that;
|
|
152
|
+
otherwise dispatch it.
|
|
153
|
+
- **rc=0** — every reviewer accounted for; proceed.
|
|
154
|
+
7c. **No silent reviewer — a zero-findings axis is justified, not assumed.** Confirm no adversarial
|
|
155
|
+
axis rubber-stamped: an axis that reported nothing must carry a `No-findings:` justification.
|
|
156
|
+
```bash
|
|
157
|
+
devrites-engine review-integrity <slug>; echo "review-integrity rc=$?"
|
|
158
|
+
```
|
|
159
|
+
- **rc=1** — an axis in `review.md` is silent (no finding, no justification): **Important** on the
|
|
160
|
+
review's completeness. Re-run that axis or record its `No-findings:` account, then re-seal.
|
|
161
|
+
- **rc=0** — every axis has findings or a justified clean bill; proceed. (No `review.md`, or a
|
|
162
|
+
freeform one, is a clean pass — the gate keys on per-axis sections.)
|
|
163
|
+
Then write stable finding IDs for learning and recurring-dismissal correlation:
|
|
164
|
+
```bash
|
|
165
|
+
devrites-engine review-fingerprints --write <slug>
|
|
166
|
+
```
|
|
167
|
+
8. Decide GO / NO-GO — [go-no-go](go-no-go.md) — and write `seal.md`. Then render the
|
|
168
|
+
**fan-out footprint** into `seal.md` and the output — deterministic run-weight (subagents
|
|
169
|
+
dispatched · slices · wall-clock), **never a token or dollar figure** (DevRites can't
|
|
170
|
+
truthfully source one):
|
|
171
|
+
```bash
|
|
172
|
+
devrites-engine footprint render <slug>
|
|
173
|
+
```
|
|
174
|
+
Also emit a machine-readable verdict block into `seal.md` (so `$rite-autocomplete` can gate
|
|
175
|
+
without parsing prose):
|
|
176
|
+
```json
|
|
177
|
+
{ "feature": "<slug>", "verdict": "GO | NO-GO | CONDITIONAL-GO", "criticals": 0, "important": 0,
|
|
178
|
+
"acceptance": "<proven>/<total>", "test_integrity": "ok | weakened", "mutation": "<score | n/a>",
|
|
179
|
+
"blockers": ["<one line each, empty on GO>"] }
|
|
180
|
+
```
|
|
181
|
+
9. **On GO only — record proven conventions** to the local ledger
|
|
182
|
+
(`.devrites/conventions.md`) so later slices stop re-deriving this project's idioms:
|
|
183
|
+
the durable, *evidence-proven* commands / idioms / placement / gotchas this feature
|
|
184
|
+
established. Evidence-gated like the seal itself; the band is earned, not guessed; the
|
|
185
|
+
step degrades gracefully when unavailable. Full contract + command:
|
|
186
|
+
[conventions-ledger](conventions-ledger.md). (Skip entirely on NO-GO.)
|
|
187
|
+
9a. **On GO only — auto-capture learnings** (`.devrites/learnings.md`). Learning is automatic, not a
|
|
188
|
+
command anyone must remember: append this feature's durable signal so the **next** feature's
|
|
189
|
+
review starts warmer — (a) any reviewer finding the gate **dismissed as intentional here** (a
|
|
190
|
+
"don't re-flag X in this project" class, tag `dismiss`); (b) a recurring correction or dead-end
|
|
191
|
+
worth not repeating (tag `note`). The review skills load this ledger **before** they fan out, so a
|
|
192
|
+
dismissed-finding class stops recurring. It is an untrusted prior — live code always overrides
|
|
193
|
+
(`.agents/skills/devrites-lib/reference/standards/security.md`). Promotion of a recurring lesson to a *project rule* stays the
|
|
194
|
+
human's call (`$rite-learn` — propose, don't impose). Skip on NO-GO.
|
|
195
|
+
```bash
|
|
196
|
+
devrites-engine learnings add "<slug>" "<dismissed-as-intentional class or dead-end>" dismiss
|
|
197
|
+
```
|
|
198
|
+
10. **Record the durable phase traces.** Before the final output, record the health signal and
|
|
199
|
+
verdict event. The score is evidence-backed, not decorative: high for GO with green proof,
|
|
200
|
+
lower for NO-GO or unresolved blockers.
|
|
201
|
+
```bash
|
|
202
|
+
devrites-engine health record <0..10> "<GO|NO-GO evidence summary>" --note "<top blocker or green proof>"
|
|
203
|
+
devrites-engine timeline log completed --skill rite-seal --slug <slug> --outcome "<go|no-go>" --decision "<verdict>"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## `seal.md` template
|
|
207
|
+
|
|
208
|
+
Loaded on demand from [`seal-template.md`](seal-template.md). Fill in
|
|
209
|
+
each section + write to `.devrites/work/<slug>/seal.md` as the durable record.
|
|
210
|
+
|
|
211
|
+
> **Mid-flight discipline.** When tempted to round NO-GO up to GO, bypass the y/N prompt, average reviewer disagreements, or seal with unresolved drift — see [`anti-patterns`](anti-patterns.md). Load it the moment you reach for the excuse.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Risk & rollback
|
|
2
|
+
|
|
3
|
+
Before GO, know how to undo the change and what could go wrong in production.
|
|
4
|
+
|
|
5
|
+
## Risk scan
|
|
6
|
+
Rank risks; for each, note likelihood × impact and any mitigation:
|
|
7
|
+
- **Data**: schema changes, data migration, destructive operations, backfills.
|
|
8
|
+
- **Security**: new trust boundaries, auth/authz changes, secret handling, new deps.
|
|
9
|
+
- **Compatibility**: API contract changes, breaking changes for existing clients,
|
|
10
|
+
feature interactions.
|
|
11
|
+
- **Operational**: new external dependency, config/env requirements, rate limits.
|
|
12
|
+
- **UX**: changed flows users rely on; unverified UI.
|
|
13
|
+
|
|
14
|
+
## Rollback plan (required for risky changes)
|
|
15
|
+
For each risky step, state how to back it out:
|
|
16
|
+
- **Migrations**: is there a reversible `down` / a documented manual revert? Is data
|
|
17
|
+
loss possible on rollback?
|
|
18
|
+
- **Feature flag**: can it be disabled without a deploy?
|
|
19
|
+
- **Revert boundary**: can the change be `git revert`-ed cleanly, or does it entangle
|
|
20
|
+
with other work?
|
|
21
|
+
- **Data**: is there a backup / a way to restore prior state?
|
|
22
|
+
|
|
23
|
+
## Blocking rules
|
|
24
|
+
- A **destructive or data-migration change with no rollback plan** is a **NO-GO**.
|
|
25
|
+
- A new external dependency with no failure handling is at least **Important**.
|
|
26
|
+
- Record the chosen rollback path in `seal.md` → "Rollback / Recovery".
|
|
27
|
+
|
|
28
|
+
## Destructive operations
|
|
29
|
+
Confirm any destructive step with the user before shipping. Verify backups exist where
|
|
30
|
+
relevant. Never treat an irreversible action as routine.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# `seal.md` template
|
|
2
|
+
|
|
3
|
+
Loaded on demand by `$rite-seal`. The seal writes this template (filled in) to `.devrites/work/<slug>/seal.md` as the durable record of the GO / NO-GO verdict.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Seal: <Feature>
|
|
7
|
+
|
|
8
|
+
Verdict: GO / NO-GO
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
- [ ] <criterion> — evidence: <...>
|
|
12
|
+
|
|
13
|
+
## Verification Evidence
|
|
14
|
+
<tests / build / lint summary>
|
|
15
|
+
|
|
16
|
+
## Browser Evidence
|
|
17
|
+
<summary | n/a>
|
|
18
|
+
|
|
19
|
+
## Risks
|
|
20
|
+
<ranked>
|
|
21
|
+
|
|
22
|
+
## Blockers
|
|
23
|
+
<must-fix before ship>
|
|
24
|
+
|
|
25
|
+
## Non-blocking Follow-ups
|
|
26
|
+
<deferred items>
|
|
27
|
+
|
|
28
|
+
## Rollback / Recovery
|
|
29
|
+
<how to back this out>
|
|
30
|
+
|
|
31
|
+
## Final Decision
|
|
32
|
+
<one paragraph: verdict + why>
|
|
33
|
+
|
|
34
|
+
## Footprint
|
|
35
|
+
<deterministic fan-out from devrites-engine footprint — subagents · slices · wall-clock; never tokens/cost>
|
|
36
|
+
```
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-ship
|
|
3
|
+
description: Ship the sealed feature: commit, push, tag, archive, close. Use when the user says "ship it", "push the branch", "tag the release", or "close the task" after $rite-seal GO. Not for GO/NO-GO readiness.
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Codex compatibility
|
|
9
|
+
|
|
10
|
+
This is the Codex mirror of a DevRites skill. In Codex:
|
|
11
|
+
|
|
12
|
+
- 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.
|
|
13
|
+
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
14
|
+
- 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.
|
|
15
|
+
- 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.
|
|
16
|
+
- Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
17
|
+
- 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.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# $rite-ship — ship + close the task
|
|
21
|
+
|
|
22
|
+
The final phase. `$rite-seal` **decides** GO/NO-GO; `$rite-ship` **executes** the
|
|
23
|
+
irreversible git actions and **closes** the feature. **Read the active workspace
|
|
24
|
+
first**; if none, tell the user to run `$rite-spec <feature>`.
|
|
25
|
+
|
|
26
|
+
Refuses to ship unless `seal.md` records a **GO** verdict.
|
|
27
|
+
|
|
28
|
+
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
29
|
+
**Step 0:** Read `.agents/skills/devrites-lib/reference/standards/core.md` first. Then pull on demand:
|
|
30
|
+
- `git-workflow.md` — Conventional Commits, atomic commits, the never-commit list.
|
|
31
|
+
- `afk-hitl.md` — type-GO is the irreversible-action gate.
|
|
32
|
+
- `definition-of-done.md` — final acceptance, evidence, drift, rollback, and documentation bar.
|
|
33
|
+
- [`release/ship-checklist.md`](../devrites-lib/reference/standards/release/ship-checklist.md) — compact final ship and archive pass/fail sweep.
|
|
34
|
+
|
|
35
|
+
## Operating rules
|
|
36
|
+
- **Seal GO is a precondition.** No GO in `seal.md` → stop, point at `$rite-seal`.
|
|
37
|
+
- **Evidence must be fresh.** If any file in `touched-files.md` changed after
|
|
38
|
+
`evidence.md` was written, the proof is stale → stop, point at `$rite-prove`. Enforced
|
|
39
|
+
deterministically by `devrites-engine evidence-fresh` in step 1 (exit 3 = STALE), not by eyeballing
|
|
40
|
+
mtimes (see `.agents/skills/devrites-lib/reference/standards/development-workflow.md`).
|
|
41
|
+
- **type-GO before anything irreversible.** Render the prompt verbatim and wait for
|
|
42
|
+
the literal `GO`. Last safety net — render it every time, even under auto-trigger.
|
|
43
|
+
- **Never delete the audit trail.** Closing *archives* the workspace; it never erases
|
|
44
|
+
the `.md` files.
|
|
45
|
+
|
|
46
|
+
## Workflow
|
|
47
|
+
1. **Orient.** Run `devrites-engine preamble` for deterministic workspace orientation.
|
|
48
|
+
Then read `seal.md`, `state.md`, `spec.md`, `touched-files.md`, `evidence.md`, and
|
|
49
|
+
`design-brief.md` (if the feature is UI — the design-memory rollup in step 2a reads it).
|
|
50
|
+
Confirm the verdict is **GO**, then run the deterministic evidence-freshness gate rather than
|
|
51
|
+
eyeballing mtimes (mirrors `$rite-seal`):
|
|
52
|
+
```bash
|
|
53
|
+
devrites-engine evidence-fresh; echo "evidence-fresh rc=$?"
|
|
54
|
+
```
|
|
55
|
+
**Exit 3 → STALE proof: STOP**, point at `$rite-prove` (a polish/review edit made after
|
|
56
|
+
`$rite-prove` invalidates the proof). Not GO → stop with the single resume command.
|
|
57
|
+
1a. **Health re-check (advisory).** Run the DevRites doctor before the irreversible ladder —
|
|
58
|
+
a stale `ACTIVE` or corrupt workspace here risks shipping or closing the wrong feature.
|
|
59
|
+
Advisory: surface issues, don't block.
|
|
60
|
+
```bash
|
|
61
|
+
devrites-engine doctor; echo "doctor rc=$?"
|
|
62
|
+
```
|
|
63
|
+
If it flags the active feature, confirm you're shipping the intended slug before proceeding.
|
|
64
|
+
2. Build the git plan from `git-workflow.md` + the project's own convention: the
|
|
65
|
+
Conventional-Commit message(s), commit trailers for non-trivial work, the target branch, and
|
|
66
|
+
whether a tag / PR applies. Derive trailers from `decisions.md`, `assumptions.md`, `seal.md`,
|
|
67
|
+
and `evidence.md`: `Constraint`, `Rejected`, `Confidence`, `Scope-risk`, `Not-tested` when
|
|
68
|
+
present; skip trailers for trivial typo/formatting commits. Scope the commit to
|
|
69
|
+
`touched-files.md`; never stage secrets or out-of-scope files.
|
|
70
|
+
**Completion:** message, trailers, target branch, tag/PR choice, and exact staged scope are explicit.
|
|
71
|
+
2a. **Design memory (UI only).** Follow
|
|
72
|
+
[`reference/design-memory.md`](reference/design-memory.md). Completion: the confirmed
|
|
73
|
+
outcome is recorded, and any `DESIGN.md` edit is in `touched-files.md`; non-UI skips.
|
|
74
|
+
2b. **Capability ledger sync.** Follow [`reference/ledger.md`](reference/ledger.md).
|
|
75
|
+
Completion: proven capability deltas are previewed, the confirmed outcome is recorded,
|
|
76
|
+
and every synced ledger file is in `touched-files.md`.
|
|
77
|
+
2c. **Credential guard (blocking for HIGH).** Before the irreversible type-GO prompt, scan staged
|
|
78
|
+
and touched files plus any PR body draft. HIGH blocks ship and tells the user to rotate/redact;
|
|
79
|
+
MEDIUM asks for confirmation and records the exception in `ship.md`; LOW is FYI.
|
|
80
|
+
```bash
|
|
81
|
+
devrites-engine secret-scan --staged; echo "secret-scan rc=$?"
|
|
82
|
+
```
|
|
83
|
+
**rc=3 → STOP**: do not type-GO, commit, push, or archive.
|
|
84
|
+
3. **Render the type-GO prompt** ([reference/git-ship.md](reference/git-ship.md)) and
|
|
85
|
+
wait. Only the literal `GO` proceeds; anything else cancels — record the cancel in
|
|
86
|
+
`ship.md` and stop (do not retry without the user asking).
|
|
87
|
+
4. On `GO`: run the git ladder — commit → push → tag / PR as applicable
|
|
88
|
+
([reference/git-ship.md](reference/git-ship.md)). Capture the commit SHA(s),
|
|
89
|
+
branch, and tag/PR URL.
|
|
90
|
+
4a. **PR branch only.** Render the structured body from
|
|
91
|
+
[`reference/git-ship.md`](reference/git-ship.md#pull-request-body); omit empty sections.
|
|
92
|
+
4b. **Durable architecture decisions only.** Apply
|
|
93
|
+
[`reference/adr-promotion.md`](reference/adr-promotion.md); slice-local decisions stay in
|
|
94
|
+
the archived workspace.
|
|
95
|
+
5. Write `ship.md` ([reference/ship-template.md](reference/ship-template.md)): what
|
|
96
|
+
shipped, SHA(s), branch, tag/PR, acceptance summary (n/total), link to `seal.md`,
|
|
97
|
+
follow-ups.
|
|
98
|
+
6. **Close the task** ([reference/close-out.md](reference/close-out.md)): set
|
|
99
|
+
`state.md` phase `done`, then run
|
|
100
|
+
`devrites-engine close-out <slug>` to archive
|
|
101
|
+
`.devrites/work/<slug>/` → `.devrites/archive/<slug>/` and clear `.devrites/ACTIVE`.
|
|
102
|
+
Every `.md` is preserved in the archive. Then refresh any managed project context block so
|
|
103
|
+
`AGENTS.md` / `CLAUDE.md` no longer advertise a closed active workspace:
|
|
104
|
+
```bash
|
|
105
|
+
devrites-engine context sync || true
|
|
106
|
+
```
|
|
107
|
+
6a. **Cross-feature retro.** Run the cadence-gated advisory branch in
|
|
108
|
+
[`reference/close-out.md`](reference/close-out.md#cross-feature-retro). Completion: a
|
|
109
|
+
silent nudge does nothing; a real recurrence is appended to `.devrites/retro.md` and
|
|
110
|
+
surfaced to `$rite-learn`, never auto-promoted.
|
|
111
|
+
|
|
112
|
+
> **Mid-flight discipline.** When tempted to ship without a GO seal, skip the type-GO,
|
|
113
|
+
> stage files outside `touched-files.md`, or delete the workspace instead of archiving
|
|
114
|
+
> it — stop. See [`anti-patterns`](reference/anti-patterns.md); the gate exists for the
|
|
115
|
+
> failure mode the ask misses.
|
|
116
|
+
|
|
117
|
+
## Output
|
|
118
|
+
|
|
119
|
+
**Progress first** — run `devrites-engine progress`, then use the Shipped typed template from
|
|
120
|
+
the shared completion reply contract
|
|
121
|
+
([`reply-contract.md` § Shipped](../devrites-lib/reference/reply-contract.md#shipped)).
|
|
122
|
+
If the user declined type-GO: state that nothing shipped, the seal still reads GO, and
|
|
123
|
+
the resume command (`$rite-ship`).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# ADR promotion
|
|
2
|
+
|
|
3
|
+
Promote only durable architecture or interface decisions from `decisions.md`; slice-local
|
|
4
|
+
calls remain in the archived workspace. If the project has no `docs/adr/`, ask before
|
|
5
|
+
creating that convention.
|
|
6
|
+
|
|
7
|
+
Write the next append-only `docs/adr/ADR-NNN.md` with Context, Decision, Status
|
|
8
|
+
`accepted`, and Consequences. Never rewrite an accepted ADR; supersede it with a new ADR
|
|
9
|
+
that links the old one. Add every promoted ADR to `touched-files.md` before shipping.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# rite-ship — anti-patterns
|
|
2
|
+
|
|
3
|
+
Load this before any irreversible action — `git commit`, `push`, `tag`, publish, deploy
|
|
4
|
+
— or when tempted to skip the close-out.
|
|
5
|
+
|
|
6
|
+
Pack-wide rationalizations + red flags: see
|
|
7
|
+
[standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
8
|
+
|
|
9
|
+
## Phase-specific rationalizations
|
|
10
|
+
|
|
11
|
+
| Excuse | Rebuttal |
|
|
12
|
+
|---|---|
|
|
13
|
+
| "Seal said GO, so I can just push." | A GO verdict is a decision, not authorization. **Render the type-GO prompt every time** and wait for the literal `GO`. |
|
|
14
|
+
| "I'll push the tag now; type-GO is a formality." | Type-GO is the last safety net before an irreversible action. Always render it — even under auto-trigger. |
|
|
15
|
+
| "`git add -A` is faster than listing touched files." | Stage only what's in `touched-files.md`. `-A` sweeps secrets, scratch files, and out-of-scope edits into the ship. |
|
|
16
|
+
| "The evidence is probably still good." | If any touched file changed after `evidence.md`, the proof is stale — stop and re-prove. Ship on fresh evidence only. |
|
|
17
|
+
| "Delete the workspace, the feature's done." | Closing **archives** the workspace (`.devrites/archive/<slug>/`); it never deletes the audit trail. |
|
|
18
|
+
|
|
19
|
+
## Red Flags
|
|
20
|
+
|
|
21
|
+
- About to run `git push` / `git tag` without rendering the type-GO prompt.
|
|
22
|
+
- Shipping without a `GO` verdict recorded in `seal.md`.
|
|
23
|
+
- Staging files not listed in `touched-files.md`, or any secret / `.env`.
|
|
24
|
+
- `rm`-ing `.devrites/work/<slug>/` instead of archiving it.
|
|
25
|
+
- Marking the feature `done` but leaving `.devrites/ACTIVE` pointing at it.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Close-out — archive the workspace, free the active slot
|
|
2
|
+
|
|
3
|
+
Closing a feature means it stops being the *active* work, not that its record is
|
|
4
|
+
deleted. DevRites keeps the full audit trail; it just moves out of the live path.
|
|
5
|
+
|
|
6
|
+
## What close-out does
|
|
7
|
+
|
|
8
|
+
1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`
|
|
9
|
+
of `$rite-spec <next feature>`.
|
|
10
|
+
2. **Archive.** Run the deterministic script:
|
|
11
|
+
```bash
|
|
12
|
+
devrites-engine close-out <slug>
|
|
13
|
+
```
|
|
14
|
+
It moves `.devrites/work/<slug>/` → `.devrites/archive/<slug>/` (every `.md`
|
|
15
|
+
intact) and clears `.devrites/ACTIVE` **only if** ACTIVE still points at `<slug>`.
|
|
16
|
+
It refuses to clobber an existing `.devrites/archive/<slug>/` (exit 5).
|
|
17
|
+
3. **Confirm.** ACTIVE is now empty, so the next `$rite-spec` starts a clean feature
|
|
18
|
+
and `$rite-status` reports "no active feature".
|
|
19
|
+
|
|
20
|
+
## Why archive, not delete
|
|
21
|
+
|
|
22
|
+
- The `.md` files (`spec`, `decisions`, `assumptions`, `evidence`, `seal`, `ship`, …)
|
|
23
|
+
are the project's record of *why* the feature is the way it is. A future
|
|
24
|
+
`$rite-zoom-out` or incident review reads them.
|
|
25
|
+
- Deleting them would make the workflow's own "evidence over confidence" rule a lie.
|
|
26
|
+
|
|
27
|
+
## Re-opening an archived feature
|
|
28
|
+
|
|
29
|
+
To resume archived work, move it back:
|
|
30
|
+
`mv .devrites/archive/<slug> .devrites/work/<slug>` and write `<slug>` into
|
|
31
|
+
`.devrites/ACTIVE`. Nothing is lost — close-out is reversible by design.
|
|
32
|
+
|
|
33
|
+
## Cross-feature retro
|
|
34
|
+
|
|
35
|
+
After archive, run `devrites-engine learnings nudge`. It stays silent until a
|
|
36
|
+
finding/drift class recurs across at least two shipped features with new signal.
|
|
37
|
+
|
|
38
|
+
When it emits, dispatch the read-only `devrites-retrospector` over
|
|
39
|
+
`.devrites/archive/`, append its dated digest to `.devrites/retro.md`, and surface
|
|
40
|
+
graduation candidates to `$rite-learn`. The retro proposes; only `$rite-learn` may
|
|
41
|
+
promote a rule, principle, or convention. Mark `.devrites/.learnings-reviewed` only
|
|
42
|
+
after the human acts there.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Design memory — roll proven design language into project `DESIGN.md`
|
|
2
|
+
|
|
3
|
+
Optional, UI-only step at `$rite-ship`. A feature's design decisions live in its
|
|
4
|
+
feature-scoped `design-brief.md` and are thrown away when the workspace archives. **Design
|
|
5
|
+
memory** is the deliberate exception: when a UI feature ships, roll the design language it
|
|
6
|
+
*proved* up into a project-level `DESIGN.md`, so the next feature's `devrites-ux-shape`
|
|
7
|
+
inherits the system instead of re-discovering it.
|
|
8
|
+
|
|
9
|
+
The consumers already exist — `devrites-ux-shape` §1 and
|
|
10
|
+
`devrites-frontend-craft/reference/design-references.md` both read `DESIGN.md` when present.
|
|
11
|
+
This step is the missing **producer**. It closes the loop: feature N seals its design
|
|
12
|
+
language → feature N+1 builds to it.
|
|
13
|
+
|
|
14
|
+
## When it runs
|
|
15
|
+
- **UI features only.** No UI in the diff → skip silently.
|
|
16
|
+
- **At ship, GO sealed, after the git plan, before type-GO** (step 2a) — so the user sees
|
|
17
|
+
the full staged change set (code + `DESIGN.md`) under the single type-GO that ships it.
|
|
18
|
+
- **Opt-in and confirmed.** Persisting to a project-wide artifact is outside feature scope
|
|
19
|
+
(`standards/core.md` rule 7) — so it is *never silent*. Present a ranked option set
|
|
20
|
+
(`standards/afk-hitl.md` — Option set); **default is skip**. The user opts to persist.
|
|
21
|
+
- **AFK**: first-time `DESIGN.md` *creation* is treated as a `validating` gate (a new
|
|
22
|
+
persistent project artifact) — propose + queue, don't auto-create. An *append* to an
|
|
23
|
+
existing `DESIGN.md` is `advisory` and may auto-proceed when `allow_gates` permits, since
|
|
24
|
+
it only adds evidence-proven entries.
|
|
25
|
+
|
|
26
|
+
## Inputs (proven only)
|
|
27
|
+
- `design-brief.md` — direction, color strategy, **calibration** (density / motion), key
|
|
28
|
+
states, named anchors, and the per-slice **Build-time refinements**.
|
|
29
|
+
- The **final diff** + `touched-files.md` — what tokens / components / states *actually
|
|
30
|
+
shipped* (the evidence). Roll up only what the diff proves, not what the brief intended.
|
|
31
|
+
- Existing `DESIGN.md` if present — the merge target.
|
|
32
|
+
|
|
33
|
+
## What to roll up — the project's *converged* system, evidence-gated
|
|
34
|
+
Only entries the shipped, proven feature establishes. Each is durable, cross-feature design
|
|
35
|
+
language — not this feature's one-off choices.
|
|
36
|
+
- **Tokens introduced + used** — new color roles / spacing steps / type steps / elevation
|
|
37
|
+
/ radius that shipped and are reusable. Names and values, mirrored from the code.
|
|
38
|
+
- **Color strategy + calibration baseline** — the strategy (Restrained / Committed / …) and
|
|
39
|
+
density / motion the project keeps landing on; note a deviation as a deviation, not a new
|
|
40
|
+
default.
|
|
41
|
+
- **Type & spacing scales** in actual use; **motion** classes + easing; **materiality**
|
|
42
|
+
(elevation set, hairline usage, glass / texture policy).
|
|
43
|
+
- **Component behaviors** — for each shared component this feature established or extended:
|
|
44
|
+
the states it ships and its interaction model. Grows one feature at a time.
|
|
45
|
+
- **Named-anchor lineage** — the anchors features steered toward, so later work stays
|
|
46
|
+
coherent with what's already built.
|
|
47
|
+
- **Anti-slop exceptions** — any banned default the project *intentionally* uses (with the
|
|
48
|
+
why), so build / polish don't "correct" a deliberate choice.
|
|
49
|
+
|
|
50
|
+
## Merge discipline
|
|
51
|
+
- **Append, don't overwrite.** Add proven entries; never silently rewrite an existing one.
|
|
52
|
+
- **Conflict is a question, not an edit.** A new token / font / strategy that contradicts an
|
|
53
|
+
existing `DESIGN.md` entry → surface it to the user (the option set), don't resolve it
|
|
54
|
+
yourself. One design system per project.
|
|
55
|
+
- **Never invent.** If the feature didn't prove it, it doesn't go in. `DESIGN.md` is design
|
|
56
|
+
*memory*, not design *aspiration*.
|
|
57
|
+
- **Attribute + keep lean.** Tag each new entry with the feature slug so the lineage is
|
|
58
|
+
legible; one good line beats a paragraph. The file is read every future spec — keep it
|
|
59
|
+
scannable.
|
|
60
|
+
|
|
61
|
+
## How it commits
|
|
62
|
+
`DESIGN.md` is a tracked project artifact, so it ships **in the feature commit**:
|
|
63
|
+
1. Write / update `<project-root>/DESIGN.md` from the template below.
|
|
64
|
+
2. **Append `DESIGN.md` to `touched-files.md`** so the existing ship commit-scoping (SKILL
|
|
65
|
+
steps 2 + 4) stages it — the design-memory write rides the same commit and the same
|
|
66
|
+
type-GO, no second commit.
|
|
67
|
+
3. Note the rollup in `ship.md` (what was added, or "design-memory: skipped by user").
|
|
68
|
+
|
|
69
|
+
## `DESIGN.md` template (project-level, stack-agnostic)
|
|
70
|
+
```markdown
|
|
71
|
+
# DESIGN.md — <project> design memory
|
|
72
|
+
|
|
73
|
+
> Rolled up from shipped features by `$rite-ship` (design memory). Read by
|
|
74
|
+
> `devrites-ux-shape` and `devrites-frontend-craft` as the inherited system. Evidence-only:
|
|
75
|
+
> every entry shipped and was proven. Edit through a feature's ship, not by hand.
|
|
76
|
+
|
|
77
|
+
## Register & direction
|
|
78
|
+
Default register per surface (brand / product) and the scene-derived direction the product
|
|
79
|
+
keeps converging on.
|
|
80
|
+
|
|
81
|
+
## Color
|
|
82
|
+
Strategy baseline (Restrained | Committed | Multi-role | Saturated). Token roles
|
|
83
|
+
(surface / text / accent / border / danger / …) with values or token names. Dark-mode approach.
|
|
84
|
+
|
|
85
|
+
## Calibration
|
|
86
|
+
Density baseline (Airy | Balanced | Dense) · Motion baseline (Minimal | Standard | Expressive).
|
|
87
|
+
Surfaces that deviate + why.
|
|
88
|
+
|
|
89
|
+
## Typography
|
|
90
|
+
Families; the scale in use (fixed rem / fluid clamp); heading↔body ratio; weights.
|
|
91
|
+
|
|
92
|
+
## Spacing
|
|
93
|
+
The scale (4 pt multiples) and section rhythm in use.
|
|
94
|
+
|
|
95
|
+
## Motion
|
|
96
|
+
Classes in use, easing, `prefers-reduced-motion` handling.
|
|
97
|
+
|
|
98
|
+
## Materiality
|
|
99
|
+
Elevation token set, hairline usage, glass policy, texture / asset approach.
|
|
100
|
+
|
|
101
|
+
## Components (proven behaviors)
|
|
102
|
+
| Component | States shipped | Interaction model | First proven by |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| <name> | default/hover/focus/loading/empty/error/… | inline / navigated / modal · feedback | <slug> |
|
|
105
|
+
|
|
106
|
+
## Named-anchor lineage
|
|
107
|
+
The anchors features steered toward (keeps new work coherent).
|
|
108
|
+
|
|
109
|
+
## Anti-slop — project exceptions
|
|
110
|
+
Banned defaults this project *intentionally* uses, with the why (so build/polish don't undo them).
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## NEVER (design memory)
|
|
114
|
+
- Never roll up unattended on first creation — a new persistent project artifact is a
|
|
115
|
+
confirmed step, never an AFK silent write.
|
|
116
|
+
- Never write an entry the feature didn't *prove* shipped — no aspirational tokens.
|
|
117
|
+
- Never overwrite or silently reconcile a conflicting existing entry — surface it.
|
|
118
|
+
- Never persist a feature-only one-off as if it were the project default.
|
|
119
|
+
- Never add `DESIGN.md` to the commit without appending it to `touched-files.md` first
|
|
120
|
+
(it would fall outside the ship's commit scope).
|