Skip to content

Restore what the core-tier rewrites dropped before v3.0.0 #2143

Closed

Description

@braboj

Part of #2124.

An audit of the nine core rewrites under #2024 (#2060, #2063, #2065, #2066, #2069, #2071, #2072, #2073, #2074), run on 2026-10-22, compared each rule's text before the rewrite with main. One agent per rewrite; quotes spot-checked against git show. v3.0.0 ships these templates.

Classes: LC lost condition, SR strength raised (SHOULD/MAY/prefer became a plain imperative, read as MUST), MC meaning changed, RL rule lost.

Group A: restore (not deliberate)

Template Class Before Main now Fix
git SR PRs should be small and focused Keep a pull request to one concern add (SHOULD)
git LC no personal email for work repositories one consistent work email, every repo scope to work repositories
git LC regeneration rule for one-directional derivations only MUST covers bidirectional too scope to one-directional artifacts
git MC re-run after any merge bringing another branch's sources after merging the base in any merge that brings sources in
git RL reconcile a non-zero control diff before committing diff meaning only restore the stop
git LC spot-check 3-5 when a fix regenerates many always restore the condition
git RL the approval is for that plan, not for the area none restore
measurement LC not ground truth if the pipeline has known or suspected bugs not ground truth if an earlier version produced it restore the condition
measurement SR prefer preserving the cheap result Preserve the cheap result restore "prefer"
measurement RL driver is pure orchestration; a stub exercises every rung stub only restore both
config MC validate types, ranges, formats at load time (all values) required values only all values; fail fast on a missing required one
config MC an empty flag never falls back to the default the user reached past "falls back to nothing" never fall back to a lower-priority value
review LC sort members before acting; name each misfit and its failing branch decide a misfit separately restore both
review RL prefer a tool whose failures are loud none restore (SHOULD)
review RL dispatch a verifier with the record, to reconcile none restore
review LC record a reversal, with its reason, in the artifact that documented the decision record the outcome restore
docs LC a dated record may state counts counts only in generated blocks exempt dated records
docs LC a single-line directive a parser reads whole is exempt from the width only tokens, URLs, links exempt directives
docs SR a declined candidate needs at most a line Record a declined candidate (MAY)
docs MC remove outdated text promptly in the change that finds it promptly (SHOULD), own change if unrelated
docs SR formatters SHOULD ignore generated paths Exclude… (SHOULD)
docs RL declare the width once none restore
quality-gates RL a config-level disable only for a tree-wide decision none restore
quality-gates RL report checks a tool could not see beside those it ran (MUST) rationale doc only restore
quality-gates RL a gate whose cheapest remedy is falsifying input is defective (SHOULD) rationale doc only restore
quality-gates SR prefer tracked-file enumeration never the working-tree filesystem (SHOULD), where input depends on the environment
quality-gates LC promote the first time doc-rot or a regression slips through always restore the trigger
quality-gates RL prefer planting into a throwaway copy with a known clean state none restore (SHOULD)
agents SR numbered headings are a default; a project MAY number its own way Number the headings (SHOULD); own numbering allowed
agents LC delegate the checklist without summarizing or skipping execute each item in sequence restore
agents SR avoid prose paragraphs in rule sections no prose paragraphs (SHOULD)
agents RL rule length creates no ADR obligation none restore
quality LC short inline repetition does not warrant extraction DRY, third copy is a bug restore the exception
quality SR talk to direct dependencies; keep together what changes together (should) plain (SHOULD)
quality LC fix a citation when the item closed without action or was superseded when closing or superseding leave citations to completed items
quality SR a probe fits an edit repeated across hundreds of identical sites Use a probe for … many (MAY), identical sites
testing SR MAY double unrelated dependencies double only the unrelated ones (MAY)
testing LC unit tests run from CI with no human step every automated test scope to unit tests
testing RL full regression automated (SHOULD); manual steps documented (MUST) none restore
testing RL smoke under 15 minutes, quick under 60 none restore (SHOULD)
testing MC integration tests follow a codification scheme for filtering and traceability unit naming for all restore for integration
testing LC in-process server for browser-driven UI journeys wherever a test client bypasses the stack restore the scope
testing SR an exonerated suspect is the case to distrust retest on every uncovered platform (SHOULD)
testing SR prefer introspection never hardcode (SHOULD)

Group B: removed on purpose, general to any project — owner decides

Template Rule Where it went
git verify merged numbering when several PRs edit one ordered document this repo's playbook only; the check-heading-numbers hook still ships with no template telling a project to run it
git run git submodule update --init --recursive after pulling a pin bump playbook only
git read a workflow's first run in its environment and require a verdict playbook only
review verify every claim text makes about itself by counting playbook only
review restate moved scope; read what a cited sibling shipped; resolve a cited version playbook only
docs on refresh, preserve human-entered content or fail loud (MUST) none
docs a bulk-emit --check failure reports how many entries are stale none
docs never use ; or a bare < in a Mermaid note none
measurement verify a measurement before tuning a gate or budget threshold opt-in measurement template only
measurement a spike that cannot clear its bar records the missing corpus opt-in measurement template only
quality port a function across languages exactly, citing the original removed by #2082, recorded in the migration guide
testing drive a diagnostic view through the production entry point removed without a stated reason

Done when

  • Every group A row is restored, or struck with a reason
  • Every group B row is decided: restored to a template, or left out with a migration-guide line
  • No baseline row falls except where the added words are the restored qualifier, said in the PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — must fix before next milestonebugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions