# W09 Worked Case — One Local Evidence-Layout Intervention

## Case status

This case reproduces `L05_controlled_content_intervention`, a course-owned synthetic local fixture. It compares static control and treatment HTML/CSS, locks three exact claim strings and three source identities, audits six predeclared review criteria, isolates one CSS factor, emits a complete diff, and records rollback hashes. It performs no live deployment, crawling, indexing, retrieval, generation, citation collection, user testing, traffic measurement, or business analysis.

The case supports a narrow conclusion: the checked-in assets form a reproducible local structural-equivalence package under the declared contract. The phrase “human comprehension” appears only as a hypothesized stage for a later approved study. No human participated in this fixture and no comprehension result exists.

## 1. Frozen question, authorization, and stop conditions

**Question.** Can the local control and treatment differ only in evidence-layout proximity while preserving the locked factual message, source identities, selected HTML/accessibility invariants, review record, and executable rollback path?

Before inspecting output, freeze:

- intervention ID `INT-001`;
- factor `evidence_layout_proximity`;
- environment `local_fixture`;
- authorization: course-owned synthetic fixture with no external endpoint or user traffic;
- hypothesized stage `human_comprehension`;
- expected signal: a later approved task may show fewer claim-to-source matching errors;
- non-claims: no crawler, retrieval, ranking, citation, traffic, business, cross-engine, or production effect;
- confounds: viewport wrapping, reader familiarity, and assistive-technology differences;
- stop conditions: factual/attribution difference, keyboard-focus regression, or rollback hash mismatch;
- rollback target: replace the treatment HTML/CSS pair with the retained control pair.

Stop immediately if the environment is not local or authorized owned staging, if a claim or source changes, if an undeclared diff appears, if an accessibility gate fails, or if restoration does not reproduce the control hashes.

## 2. Evidence-page input contract

Both pages declare English language, a nonempty title, exactly one `main`, exactly one `h1`, and one stylesheet. They share the same DOM after replacing the stylesheet filename with a declared placeholder. Claim text appears in elements with stable `data-claim-id` values; source links use stable `data-source-id` values.

The three locked synthetic claims are:

| Claim ID | Exact locked text | Source ID |
|---|---|---|
| `CL-001` | A visible citation does not disclose a hidden retrieval stage. | `S-001` |
| `CL-002` | Citation presence and claim support require separate labels. | `S-004` |
| `CL-003` | A reproducible surface record includes system, locale, time, query, and response artifact. | `S-008` |

The locked set is intentionally small. It demonstrates atomic claim/source equality, not the completeness of a real evidence page. Methods, limitations, dates, change history, structured data, correction ownership, and richer accessibility review would be required in a public artifact.

## 3. Exact control/treatment difference

The HTML diff contains one declared stylesheet switch:

```diff
-  <link rel="stylesheet" href="control.css">
+  <link rel="stylesheet" href="treatment.css">
```

After that reference is normalized, the HTML strings are identical. The CSS files share the root color scheme, body, `main`, anchor, and focus-visible rules. They differ only in `.evidence-block`.

The control rule is:

```css
.evidence-block { margin-block: 1.5rem; }
```

The treatment rule adds a grid, gap, alignment, inline-start border, and padding while retaining the same block margin. The declared intervention bundles those declarations as one conceptual factor: evidence-layout proximity. The audit does not estimate separate contributions of grid, border, gap, and padding. If the research question needed those components individually, a factorial or predeclared sequential design would be required.

No screenshot is used to establish the diff. The auditor compares the complete source text, normalizes only the declared locations, and rejects changes outside the permitted rule.

## 4. Factual-equivalence and review contract

The parser independently extracts claims and source IDs from control and treatment, then compares each arm with `locked_claims.json`. Both produce the same three claim mappings and source set `{S-001, S-004, S-008}`.

The predeclared checklist contains six rows:

| Criterion | Status | Reviewer boundary |
|---|---|---|
| atomic claim text | pass | all three strings match the lock |
| numbers and qualifications | pass | no number or qualification differs |
| source identity | pass | three IDs remain unchanged |
| attribution | pass | each claim retains the same source link |
| reading order | pass | DOM and keyboard reading order are unchanged |
| rollback review | pass | control files are retained and hashable |

The reviewer is `synthetic_reviewer_b`, while the experimenter is `synthetic_author_a`. The auditor fails if the IDs are the same. This check makes a role boundary visible; it does not prove the synthetic review has the scope of a full expert or accessibility review.

## 5. Reproduced audit outputs

Run from the workspace root:

```bash
python3 course-labs/L05_controlled_content_intervention/scripts/audit_intervention.py \
  --control course-labs/L05_controlled_content_intervention/data/control.html \
  --treatment course-labs/L05_controlled_content_intervention/data/treatment.html \
  --claims course-labs/L05_controlled_content_intervention/data/locked_claims.json \
  --card course-labs/L05_controlled_content_intervention/data/intervention_card.json \
  --checklist course-labs/L05_controlled_content_intervention/data/factual_equivalence.csv \
  --output /tmp/geo-l05
```

Expected console result:

```text
L05 PASS: 3 locked claims, 1 changed factor, 0 error(s)
```

The generated package contains exactly six artifacts:

1. `intervention_audit.json`
2. `normalized_claims.json`
3. `before_after.diff`
4. `equivalence_review.csv`
5. `rollback_manifest.json`
6. `run_manifest.json`

The audit record reports status `PASS`, intervention `INT-001`, factor `evidence_layout_proximity`, changed-factor count 1, locked-claim count 3, source-identity count 3, equivalence-check count 6, hypothesized stage `human_comprehension`, and zero errors. Its exact ceiling is “local structural equivalence package only; no system response or causal visibility effect is measured.”

## 6. Input identity and deterministic reproduction

| Input | SHA-256 |
|---|---|
| `control.html` | `fff13e70c2218f8ea607f93128f5845f5d2582e6973badd469143c1b1fc18e78` |
| `treatment.html` | `af5877a1fad74e12118ac61ff62d96e110e643371bafb488e20d575aec55ac92` |
| `control.css` | `69f8bd330f589b84d309843be1e7ad95af19eac04c4e05da4e5409552182383d` |
| `treatment.css` | `8a576c5ad33fe52a794ba875a39479c878a55f0cbe8ebecb7e1f8f199cde951c` |
| `locked_claims.json` | `791f4ac66868f263994bef45a93cbf353c164cc1b3e452b571a341af83619f6a` |
| `intervention_card.json` | `26bf06ea1b21a1e4469e87a16d2d6e2a09fc19861e3b97ba39b1e3f4a0d28809` |
| `factual_equivalence.csv` | `f3397697225142cfcec267c037d123984326085d803868a4ad9b29a18bb80867` |

These hashes identify the exact fixture. A new content or style edit creates a new input state and requires a new audit. Determinism means the same inputs and code produce the same normalized records and diff; it does not mean a human or external system responds deterministically.

## 7. Accessibility, schema, and validity gates

The fixture checks selected semantic invariants and retains a focus-visible CSS rule. It does not run a browser, contrast algorithm, zoom/reflow suite, keyboard session, or screen reader. Before a public release, test language, headings, landmarks, DOM and visual order, keyboard access, focus visibility, link purpose, contrast, reflow, responsive behavior, text alternatives, and assistive-technology navigation. W3C H51 can support the use of native data-table semantics when the page includes tabular evidence, but citing the technique does not establish WCAG conformance.

The fixture contains no JSON-LD. A production treatment must compare visible claims with metadata and structured representations. **PLAT-03** supports the rule that structured data should represent visible/main page content and that correct markup does not guarantee a rich result. **PLAT-13** supplies vocabulary semantics only. **PLAT-02** and Google's people-first guidance can inform an original, sourced, non-manipulative publishing review within Google documentation scope; neither establishes a ranking effect.

## 8. Factorial, sequential, and deviation fallback

The L05 conceptual factor contains several CSS declarations. It is acceptable only because the estimand is the complete evidence-card layout treatment. It cannot identify the separate effect of border, grid, gap, or padding. If a later question asks whether grouping or border salience matters, use a two-factor design with control, grouping, border, and grouping-plus-border arms, subject to sufficient independent units and review capacity.

If changes must happen in sequence, freeze their order and stopping rule before viewing outcomes. If neither separation is feasible, call the intervention a bundle. Record every unexpected change in a deviation log with affected files/claims, containment, impact on the estimand, approval, and disposition. Never relabel a co-intervention as polish.

## 9. Rollback test and bounded decision

The rollback manifest identifies the treatment HTML/CSS hashes as the `from` state and the control hashes as the `to` state. The instruction replaces the treatment pair with the retained control pair, then verifies both hashes. Stop conditions are copied from the intervention card. Rollback must preserve the audit and treatment archive rather than erase the evidence.

The correct case conclusion is:

> Under the frozen L05 contract, the local treatment preserves three exact claim strings and three source identities, differs from control only in the declared evidence-layout stylesheet switch and rule, passes six synthetic independent-review checks, and produces a reproducible rollback manifest. No human or external system outcome is measured.

## 10. Evidence-route ceiling and learner self-check

**PAPER-12** begins with a target already in a fixed ten-item slate. **PAPER-21** uses fixed candidate contexts and retains utility regressions. **PAPER-23** studies a reconstructed pipeline with stage-specific adverse results. **PAPER-08** is observational within selected cited URLs. **PAPER-09** uses synthetic tourism rewriting and a small simulation. **PAPER-28** remains audit-only; no reported percentage, threshold, weight, platform label, or similarity score enters this case as a finding.

Self-check:

- Can every changed line be found in `before_after.diff`?
- Do both arms match the claim and source lock exactly?
- Are visible and structured claim layers consistent or explicitly absent?
- Are automated checks separated from human/browser/assistive-technology review?
- Is the factor one conceptual treatment, or is bundle/factorial/sequential language required?
- Was rollback executed and verified rather than merely promised?
- Does the conclusion avoid ranking, citation, user, and production guarantees?
- Are human-visible sources written only as **PAPER-xx** and **PLAT-xx**?

If any answer is no, the release remains blocked.
