Skip to content

Working Discipline

In blueprint: this is the presets' playbook — the judgment rules no tool can enforce. init compiles them into your repo's handbook and agent contract, so they sit in context on every change.

The themes:

Runtime load discipline

The question after "is the data correct" is "how fast does it arrive" — the dimension lint and structure cannot see. This is belief #9.

  • Price every handler attached to a data source. Before wiring anything to WS / polling / scroll / input, answer: events per second, data per event, per-event cost. If you cannot answer, it does not merge — and copying an existing pattern is no exemption, because frequency is not in the code.
  • High-frequency updates write in place. Patch the changed entry and keep container identity; whole-replace is for baseline rebuilds only. A prop whose identity changed while its value did not is the disease. Write shapes do not port across frameworks — React leans on immutable + memo, Vue on property-level tracking.
  • Diagnose re-renders in four steps, never by guessing. Who renders (profiler) → what triggered it (render tracing) → who produced the identity (grep the assignment sites) → was it worth it (compare against the event payload).
  • Performance claims must be acceptance-testable. "Fewer re-renders" is not a claim; "one event re-renders at most N components" is. Pin it with a render-count or identity-stability test.

Dead code & abstraction

  • An abstraction must gain a production consumer in the same PR — a unit whose only caller is its own test is dead code dressed as architecture work.
  • Removing the last call site removes the unreachable code with it, in the same change.
  • Retained-but-disabled code gets @deprecated pointing at a status doc — on the entity, not its tests.
  • Moving an anti-pattern to a sibling file under an eslint-disable is not a fix, and per-line disables are not a migration.

Refactor & collaboration

  • Safety net first, then split, then tidy the tests — three stages, one commit each, non-overlapping review scopes.
  • Extract by copying from source, never by rewriting from memory — then diff against git history; a passing suite alone does not prove the extraction faithful.
  • Scan every identifier before extracting — imports, local definitions, parameters.
  • Do not pin what the refactor itself will change in the safety net.
  • Frame architectural corrections as guarding the design — state the principle being protected, show how the literal ticket reading violates it.
  • Do not reopen settled designs; raise genuine concerns once, with reasons — not as a menu of alternatives.
  • "The user can work around it" does not park a bug — judge by scope and standalone impact.