Rite temper
Skill ViktorsBaikers/DevRites/pack/generated/codex/skills/rite-temper
Temper a readied spec before planning. Use when the user says "temper this", "strategy review", "pre-mortem the spec", or asks if we are over/under-building. Not for code review or final seal.From its SKILL.md
npx -y skills add ViktorsBaikers/DevRites --skill rite-temperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
13.0 KB, ~3.1k tokens by cl100k_base, as published. Nobody here has run it
Codex compatibility
This is the Codex mirror of a DevRites skill. In Codex:
- Load DevRites engineering standards from
.agents/skills/devrites-lib/reference/standards/. Read.agents/skills/devrites-lib/reference/standards/core.mdbefore workflow work, then load the other.agents/skills/devrites-lib/reference/standards/*.mdfiles exactly when this skill asks for them. - Use the installed
devrites-enginebinary as the canonical runtime helper surface for orientation, gates, and state mutation. - Invocation and dispatch are different: invoke means run a skill in this context; dispatch means start a fresh agent with
spawn_agent, await it, and reconcile its result. Never describe inline skill work as a dispatch. - On MultiAgent V2, call
spawn_agentwith the exact namedagent_type=devrites-<role>, a uniquetask_name, andfork_turns="none". Codex loads that role TOML'sdeveloper_instructionsnatively. Because V2 collaboration lifecycle calls bypass hooks, DevRites verifies the current durable parent/child rollout for the exact role, wait, completion, and non-empty delivered result. - On MultiAgent V1, when the named role is not exposed, use generic
explorerfor a read-only role withfork_turns="none"and name exactly one.codex/agents/devrites-<role>.tomlcontract in the message. Trusted.codex/hooks.jsoninjects that contract's exactdeveloper_instructionsand binds the child to the fail-closed reviewer read-only guard. - On MultiAgent V1,
devrites-slice-wrightuses genericworkerwithfork_turns="none"and the exact role TOML named in the message. Trusted.codex/hooks.jsonbinds it to the active reconcile window and.wright-allowlist; do not substituteworkerfor an exposed V2 named role. - The invoked skill's
required-agent-rolesfrontmatter arms the fail-closed Stop receipt. Every listed role must have a confirmed start, wait, and non-empty result in this turn. - If any required named or generic agent dispatch is unavailable or rejected, stop for HITL. Never execute a DevRites specialist role in the root context.
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
- Codex project hooks are installed in
.codex/hooks.json; declared-leaf hooks are scoped inside.codex/agents/devrites-*.toml. Review and trust them with/hooksbefore relying on hook enforcement. - 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/AFKsentinel.
$rite-temper: review scope and risk before planning
Review a readied spec for outcome ambition, scope, pre-mortem risks, and unnecessary
solution surface. Fold accepted decisions into the canonical contract before
$rite-define. This step is optional for small work and skips low-stakes specs, but
$rite-autocomplete always invokes it. Read the active workspace first; if there
is no readied spec.md, tell the user to run $rite-spec.
Rules consulted (read on demand from .agents/skills/devrites-lib/reference/standards/)
Pull on demand: patterns.md +
coding-style.md (the over-engineering / YAGNI rubric (reuse the pack's standard, don't
invent one), documentation.md (ADR-style decisions.md entries), afk-hitl.md
(irreversible-risk list + gate ceiling), elicitation.md (the move-set to deepen a section
that needs more than the default pre-mortem) selected by the section's risk).
Operating rules
- Raise outcome ambition without expanding the solution unnecessarily. Solve the underlying problem without adding speculative capability or abstraction.
- Route every scope change through the Spec Drift Guard. A scope change takes effect
only when
spec.mdrecords the confirmed decision. Expansion is opt-in (HITL confirm; AFK pauses: see autocomplete policy). Nothing auto-grows into the build. - Apply maximum caution to hard-to-reverse changes. Auth, migration, public API, and data-model changes always pause under the irreversible-risk list.
- Honest verdict. Never round "needs work" up to "ready"; record every scope call's why.
- Search before asking. Apply
afk-hitl.mddecision ownership; only human-owned calls enter the interactive walk. - You write; the reviewer judges. You are the single canonical writer (
strategy.md+ the spec edits); the reviewer agent is read-only. - Require spec-quality checklists for significant features. Before hardening,
confirm
checklists/<domain>.mdexist and pass (rite-spec/reference/spec-checklists.md); a scope expansion you fold in adds its own rows (new Success/Acceptance criteria get checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL failure that reopens the readiness gate.
Workflow
- Read
.agents/skills/devrites-lib/reference/standards/core.md, then rundevrites-engine preamblefor deterministic workspace orientation. Then read the workspace:spec.md,decision-coverage.md(+decisions.md,assumptions.md,design-brief.mdif UI),state.md. RequireSpec gate: passed: else STOP →$rite-spec. RequireDecision coverage: CLEAR: else STOP →$rite-clarify. If a plan already exists, scope changes route through$rite-plan repair(record indrift.md), not a blind spec edit. - Significance test:
reference/significance.md. Low-stakes / shape-not-meaning work → write the exact one-lineskipped — low stakes (<trigger>)verdict tostrategy.md, setstate.mdNext step: $rite-define, and recommend it. Otherwise fire the full pass below. - FORWARD pass + mode selection:
reference/scope-modes.md. First, the one-sentence-intent test: state the whole change's intent in a single sentence. If you can't without an "and" that joins two unrelated outcomes, it is two features: the scope-creep signal; recommend splitting or narrowing the spec before continuing. Then consider the 10-star outcome for the underlying problem and choose exactly one scope mode (expandopt-in ·selective·hold-rigor·reduce-to-MVP) with its rationale and the condition that would change the choice.$ARGUMENTS--modeis a hint, not a command. - INVERSION pass: pre-mortem in past tense ("it shipped and failed: what went wrong"),
each top risk carrying likelihood + mitigation + the slice it will bind to; then the YAGNI
ledger (each candidate scope item gets the "imagine the later refactor" test; defer unless
now-cost is trivial AND deferred-cost is large).
Interruption pre-mortem: audit the spec forecast and assumptions for unresolved behavior,
proof prerequisites, approvals, access, and irreversible gates. Resolve facts and reversible
details now; retain only unavailable-pre-code or mandatory action-time checkpoints.
- Deepen on demand. When a scope decision, requirement, or risk needs more analysis
than the default pre-mortem provides, choose 3-5 techniques from
elicitation.mdwhose when-to-reach-for-it matches that section's risk (irreversible decision → Red-Team/Blue-Team + Assumption Audit; sizing → Delphi; vague requirement → Steelman-then-Attack), offer them, and run the chosen one on that section. Record what changed, not the technique name. The default passes remain sufficient when no deeper analysis is needed.
- Deepen on demand. When a scope decision, requirement, or risk needs more analysis
than the default pre-mortem provides, choose 3-5 techniques from
- Score the 9 dimensions:
reference/review-dimensions.md. Cite evidence before the band; gate on the floor (the weakest dimension, not an average). Completion: all nine dimensions have cited evidence, a band, and one explicit floor verdict. - Review human-owned findings with the human; do not batch them.
strategy.mdrecords the interactive review but does not replace it. Present each material scope decision throughAskUserQuestion, one at a time, best-guess + why. Each material scope call ends as a recorded decision: a resolvedquestions.mdqid (HITL) or adecisions.mdADR (AFK): so the review leaves an auditable record outside chat. (AFK gate policy is single-sourced inreference/significance.md:hold-rigor+reduce-to-MVPauto-apply, anyexpandis a blocking pause, irreversible-risk always pauses.) Apply objective clarity, mitigation, and assumption fixes directly. - Write
strategy.md+ fold back:reference/strategy-template.md. Choose the drift path based on whether a plan exists: noplan.mdyet (the normal pre-define case) → updatespec.mdthrough the Spec Drift Guard. Success criteria and Acceptance criteria for each opt-in expansion / cut, Non-goals for every deferred item, Constraints and Risks the pre-mortem demands, and the gaps/decisions table;plan.mdalready exists → do not editspec.mdhere: write the deltas todrift.mdand hand off to$rite-plan repair. Either way, appenddecisions.md(one ADR per scope call: context · decision · why-not · what-would-change-it) andassumptions.md(every "we'll probably need X" → assumption-to-verify). Every scope delta must carry a recorded human decision: a resolvedquestions.mdqid (HITL) or adecisions.mdADR (AFK within the ceiling); a folded change with no recorded decision is invalid. Re-check the spec Readiness gate (it fails if any folded scope delta lacks its decision or leaves a foreseeable human build choice). After any edit tobrief.md,spec.md,decisions.md,assumptions.md, orquestions.md, re-scan the affected coverage rows, assumption audit, residual uncertainty, and closed gates. Partial/Missing, an unowned material assumption, or an open blocking/escalating question routes$rite-clarify/HITL; never refresh past it. Only after the matrix is re-closed, rundevrites-engine readiness-digest coverage <slug>and replace the completeCoverage inputs SHA-256line indecision-coverage.md. Updatestate.md:Phase: temper,Next step: $rite-define; on a blocking pause (expand / irreversible / a dimension still below bar) write theAwaiting humanblock +Status: awaiting_humanbefore stopping. - Adversarial verification loop: dispatch
devrites-strategy-reviewerthrough the file-backed fresh-context contract inagents.md, with only the hardened spec + rubric: no authoring reasoning. Resolve actionable findings by editingspec.md/strategy.md, re-dispatch; cap ≤3 iterations. A dimension still below bar after 3 is classified by decision ownership: a product/scope/risk choice becomes a blocking question; an objective spec defect stays blocked with the exact required edit and routes to$rite-spec, not$rite-resolve. Irreversible-risk findings always pause. Use the shared capability ladder; if no fresh-agent rung is available, stop for HITL. After an accepted edit to a coverage-bound input, repeat step 6's revalidation and digest refresh before handoff. - STOP. Report the mode, the scope deltas, and the floor verdict; recommend
$rite-define.
Mid-flight discipline. Do not replace the interactive review with
strategy.md, expand implementation surface without need, grow scope outside the Drift Guard, or score before citing evidence. Seereference/anti-patterns.md.
Output
Progress first: run devrites-engine progress, then use the shared completion reply contract
(devrites-lib/reference/reply-contract.md).
Default success shape:
Done: spec tempered for <slug>; mode <expand|selective|hold-rigor|reduce-to-MVP|skipped-low-stakes>.
Changed: strategy.md, spec.md, decisions.md, assumptions.md
Evidence: dimension floor <band>; reviewer loop <n>; spec readiness + decision coverage re-checked pass
Open: <none | n deferred non-goals>
Next: $rite-define
Record: .devrites/work/<slug>/strategy.md
↻ Hygiene: /clear before $rite-define
If readiness is blocked, use the shared Stopped / blocked form and route Fix:
to $rite-clarify for an uncovered decision surface or $rite-spec for an objective
spec defect; do not recommend $rite-define.
DO NOT plan, slice, or write code here. That's $rite-define and $rite-build.
What ships with it: 5 files
18.3 KB alongside SKILL.md
reference/
- anti-patterns.md2.9 KB
- review-dimensions.md4.5 KB
- scope-modes.md4.2 KB
- significance.md2.6 KB
- strategy-template.md4.1 KB