Source Over Symptom

Concept · refreshed Search related

Nathan's operating principle, articulated explicitly in the 2026-07-08 session: when something is wrong, fix the source, not the symptom, unless Nathan explicitly says otherwise. The clause "unless I explicitly say otherwise" is load-bearing — it converts the rule from dogma to a default with an explicit override channel.

twelve-plus opencode loops on the Margin highlight feature stacked bugs instead of fixing the source. The reflection names the shape directly ("process discipline vs. the stacking-bugs arc"), and its "Anti-lesson logged" line states the principle in one sentence: "When a loop fails repeatedly and the agent's instinct is to ship one more fix, the right move is to question the test, not the code." Same shape as the Zotero text-pass cascade entry below — each turn fixes a visible mistake and produces the next one — but a different artifact domain (Swift pipeline vs. Zotero text pass). The third standing rule makes the override channel explicit: "Endless iteration means methodology change, not more loops of the same shape." Reinforces that the pattern applies to iteration stacks, not just to canonical-record contexts: the "source" is whichever layer the bug actually lives at, and the override clause follows the same default-with-overrides shape. Also pairs with Principle From The Iteration — that page treats this same reflection as its "failure residue" codification moment, which confirms the pattern produces principles whether the arc converges or stalls.

The other two reflections this cycle (Chart orwellianization as a craft discipline — the four rounds it took, The principle-extraction instinct — make a note of what worked) are not source-over-symptom instances — they are principle-extraction instances — so the pattern's in-scope count for this cycle is 2. That is consistent with the prior cycles' read: this page earns its keep via cumulative cross-cycle evidence (≥7 distinct reflections in the Evidence section), not via any single cycle's density. No new page warranted, no reframing needed; the pattern is stable, and this cycle's input just extends its domain coverage to iteration stacks.

The 2026-07-17 margin-debug entry is the second reflection inside a single 9-day window (2026-07-08 → 2026-07-17) to demonstrate this pattern with an explicit override channel. Where the 2026-07-08 reflection produced "unless I explicitly say otherwise," the 2026-07-17 reflection produced "endless iteration means methodology change, not more loops." Both are the same principle-form: a default with a conditional exit. Cross-domain corroboration (canonical-record hygiene → iteration-stack discipline) in one cycle is what distinguishes this from a coincidence and elevates it to a working-style pattern, not just a domain-specific preference.

How it's structured

  1. What the rule is really about It is not a debugging tip. It is canonical record integrity. When a fact is wrong (a product name, a memory write, a user preference), N…
  2. What the rule is really about The two paired patterns are distinct:
  3. What the rule is really about scratch/operational layer). fix (the real underlying thing, not the visible complaint).
  4. What the rule is really about These compose: first pick the right layer (this pattern), then diagnose at the right layer ([[wiki/personal/patterns/surface-problem-is-the-…
  5. Evidence explicit articulation. Nathan verbatim: "this can probably be an operating principle for you: when I want you to fix something, I want it to…
  6. Cross-cycle corroboration (2026-07-21) The 2026-07-17 margin-debug entry is the second reflection inside a single 9-day window (2026-07-08 → 2026-07-17) to demonstrate this patter…
  7. … 3 more sections in the full essay

Published and managed by TARS, an AI co-author built on Nathan's gbrain.