<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">Contradiction Map — Synthesis Provenance</title>
  <status stage="spec" state="done"/>
  <p p="1"><fact id="status-line" status="impl/done">**Discipline v0.2 · BETA · appendix**</fact></p>
  <p p="2"><fact id="contradiction-is-the-highest-value-output" status="spec/done">*Per Charter principle B3 (contradiction is data), the highest-value research output is where sources disagree — with each other and with our hypotheses.*</fact></p>
  <p p="3"><fact id="EMPTY-MAP-MEANS-SHALLOW-RESEARCH" status="impl/done">*An empty contradiction map means shallow research.*</fact></p>
  <p p="4"><fact id="ENTRY-CARRIES-FOUR-PARTS" status="impl/done">*Each resolved entry: the conflict, the evidence on each side, the resolution, and which discipline decision it drove. One entry is deliberately unresolved — C-7 holds the open questions, and the fourth part it drove is the package's BETA status (below).*</fact></p>
  <section id="c-1-stricter-vs-in-distribution" title="C-1 — &quot;AI-native = stricter/more meta&quot; (H1) vs &quot;engineered dialects underperform&quot; (H5)">
    <list ordered="false" p="5">
      <item><fact id="c-1-side-a" status="spec/done">**Side A (H1):** stricter, more machine-checkable form helps comprehension/modification. Evidence: type-error dominance, compiler-as-oracle (theory + benchmark).</fact></item>
      <item><fact id="c-1-side-b" status="spec/done">**Side B (H5):** models work best on in-distribution idiomatic code; engineered surface goes OOD and underperforms. Evidence: EsoLang 0–11% on unfamiliar surface (benchmark).</fact></item>
      <item><fact id="C-1-RESOLUTION" status="impl/done">**Resolution:** **split by location.** Surface stays idiomatic (H5 wins for syntax); strictness moves to the envelope — types, contracts, meta, verification (H1 wins for structure). → **Central law** (Manifesto §3, Guide §0). The reversal was forced by dated reading: the OOD collapse is recovered by tools + current models (R2C-007), so "stricter envelope" is safe given a verification loop.</fact></item>
    </list>
  </section>
  <section id="c-2-specs-vs-context-cost" title="C-2 — &quot;Specs/context files help&quot; vs &quot;AGENTbench: context files barely help, cost +20%&quot;">
    <list ordered="false" p="6">
      <item><fact id="c-2-side-a" status="spec/done">**Side A:** spec-driven development, requirement traceability aid comprehension (our production practice).</fact></item>
      <item><fact id="c-2-side-b" status="spec/done">**Side B:** AGENTbench (benchmark): human context files +4%, generated ones negative, all +20% inference cost.</fact></item>
      <item><fact id="C-2-RESOLUTION" status="impl/done">**Resolution:** the authors' own conclusion is "minimal requirements only" — not "no specs." Bloat that triggers unbounded exploration is the harm, not specification. → **Minimal-sufficiency delivery** (Manifesto §6; card Band-3 extract; lazy-push). Caveat the authors flag: low-parametric-knowledge settings (ours) likely benefit MORE from specs (R2C-009).</fact></item>
    </list>
  </section>
  <section id="c-3-written-vs-executable" title="C-3 — &quot;Written strategy transfers capability&quot; vs &quot;only executable scaffolds transfer&quot;">
    <list ordered="false" p="7">
      <item><fact id="c-3-side-a" status="spec/done">**Side A (our prior instinct):** a good prose explanation from a strong model lifts a weak one.</fact></item>
      <item><fact id="c-3-side-b" status="spec/done">**Side B:** EsoLang follow-up (benchmark): +Text ~0 effect (Sonnet 12→12); +Lib transformative (12→64).</fact></item>
      <item><fact id="C-3-RESOLUTION" status="impl/done">**Resolution:** **executable beats prose for capability transfer.** → **Runnable capital** (Manifesto §5; the entire scaffold catalog). This reversed our own prior-turn position; recorded as a death so it is not re-nucleated.</fact></item>
    </list>
  </section>
  <section id="c-4-tcg-without-rust" title="C-4 — &quot;Type-constrained decoding cuts compile errors 75.3%/70.2%&quot; vs &quot;no Rust implementation exists&quot;">
    <list ordered="false" p="8">
      <item><fact id="c-4-side-a" status="spec/done">**Side A:** type-constrained decoding is highly effective (benchmark, TypeScript).</fact></item>
      <item><fact id="c-4-side-b" status="spec/done">**Side B:** the method is per-language manual work; only TypeScript exists; Rust's traits/lifetimes are far harder (the authors' repo, primary source).</fact></item>
      <item><fact id="C-4-RESOLUTION" status="impl/done">**Resolution:** route the oracle to where it exists — **post-generation `cargo check` loop** (Class E) for Rust today; constrained decoding is a **future tool** (`vibe-tcg`), staged, standing on rust-analyzer rather than reimplementing the type system. The 75.3%/70.2% (synthesis/translation — DR2-012's canonical pair) does not transfer for free. → Guide §12, tcg spec.</fact></item>
    </list>
  </section>
  <section id="c-5-rust-benchmark-conflict" title="C-5 — Rust benchmark conflict: 58% (SWE-bench Multilingual) vs 10–17% (Multi-SWE-bench)">
    <list ordered="false" p="9">
      <item><fact id="c-5-side-a" status="spec/done">**Side A:** Rust resolves well (highest of 9 languages at 58%).</fact></item>
      <item><fact id="c-5-side-b" status="spec/done">**Side B:** Rust resolves poorly (10–17%).</fact></item>
      <item><fact id="C-5-RESOLUTION" status="impl/done">**Resolution:** **difficulty mix, not Rust-unfriendliness.** Multi-SWE-bench is harder by construction (77% medium+hard) and Rust PRs are large by nature; within a fixed difficulty tier, the compiler's guidance outweighs the larger-edit burden (R2C-006). Rust failure correlates with EDIT SIZE. → drives the locality/size/ownership rules (Guide §1–2; cards D, I attack edit-size directly).</fact></item>
    </list>
  </section>
  <section id="c-6-optimism-vs-the-floor" title="C-6 — Optimism vs the floor: &quot;current models are fine&quot; vs &quot;weak models stay near floor&quot;">
    <list ordered="false" p="10">
      <item><fact id="c-6-side-a" status="spec/done">**Side A (owner, dated, correct):** 2026 models recover OOD via tools; pessimistic readings are stale (3-month-old generations, one-shot prompting). Evidence: R2C-007 (same tasks ~4%→~90–100% in 3 months).</fact></item>
      <item><fact id="c-6-side-b" status="spec/done">**Side B:** even WITH executable scaffolds, Haiku-4.5 stayed near the floor; resources amplify, don't create capability. Evidence: R2C-008 (the three-condition weak-agent test that includes Haiku 4.5 — it publishes per-model figures for Sonnet 4.6, 12→64, and GPT-5.4-mini, 5→53, and none for Haiku, so no Haiku score is on record here).</fact></item>
      <item><fact id="C-6-RESOLUTION" status="impl/done">**Resolution:** **both true, scoped by reader capability.** Optimism holds for Sonnet/GPT-mini class; a floor remains for the weakest tier (and Qwen-32B may sit lower on some axes). → the discipline **lowers** the floor (consume-only scaffolds for the weakest tier; build/use boundary, scaffold catalog §4) but does not claim to **remove** it (Manifesto §7). This is the open pilot question (R4).</fact></item>
    </list>
  </section>
  <section id="c-7-unresolved-open" title="C-7 — Unresolved / open (honest)">
    <list ordered="false" p="11">
      <item><fact id="C-7-OPEN-TRANSFER" status="spec/done">**Transfer generation→modification:** every scaffold's value is shown for *generation*; transfer to *comprehension/modification* of in-distribution Rust is [E-mid], unmeasured on our codebase. **No source resolves this.** It is the central pilot validation target.</fact></item>
      <item><fact id="C-7-OPEN-BUILD-USE-BOUNDARY" status="spec/done">**Build/use boundary:** whether weak agents can *parameterize* scaffolds (Classes A/I) or only *consume* them (G/H) — first-principles, unmeasured.</fact></item>
      <item><fact id="C-7-OPEN-H6-UNIFORMITY" status="spec/done">**H6 uniformity:** partly measured, not settled. The ATLAS files four records under H6, and one of them measures a uniformity effect: DR1-022 (benchmark, med) — matching the syntactic paradigm of prompt and test examples lifts rule extraction 2.3–125%, read there as support that intra-corpus uniformity is an in-context signal. What no record measures under control is a *codebase's own* internal uniformity; that is the part that stays our hypothesis and the pilot candidate.</fact></item>
    </list>
    <p p="12"><fact id="open-items-are-why-the-package-is-beta" status="spec/done">These open items are why the package is BETA and why every card carries a falsifiable prediction in place of a present measurement.</fact></p>
  </section>
</spec>
