neochart v2 research

cases/NOTES.md

Source: cases/NOTES.md

Exact source text

# CASE DSL — research notes (where cases do NOT fit)

Two rounds. **Round 2 (v1, below)** answers the QA1/QA2 reviews of v0; the **round-1 synthesis**
is kept underneath, each finding marked with what v1 did about it.

## Round 2: v0 → v1, before / after

QA1 (12 files) and QA2 (30 files) passed 31 of 42 reviewed files and returned 11 FIX verdicts.
Their common diagnosis: *explanatory `misfit` prose does not stop an incorrect element/holding
label from being ingested*. v1 therefore moves four things out of prose into checked syntax —
citation **role**, ruling **scope**, fact **polarity**, typed **qualifiers** — and defines an
**instance** as `role applied` + `scope merits` + a decided holding. All 60 files were migrated;
`casedsl.py quotes-equal 24c283d` proves no quote (kind, offsets, text) changed: 1172 before,
1172 after, 0 differ.

| | v0 | v1 |
|---|---|---|
| blocks | 489 | 499 (10 splits where one block mixed a rule with a finding, or two grounds) |
| decided blocks (satisfied / not-satisfied) | 276 — every one ingestible as an instance | 267, of which **200 are instances** and 67 are decided but explicitly NOT instances |
| case-level citation role | none | applied 47 · rule-announced 7 · comparator 4 · background 2 |
| block roles | none | applied 406 · rule-announced 52 · comparator 21 · background 20 |
| block scope | none | merits 435 · procedural 25 · alternative 21 · lower-court 11 · hypothetical 4 · superseded 3 |
| fact lines with polarity | 0 of 572 | 572 of 572: supports 393 · cuts-against 179 (45 of them `absent`) |
| `rule` lines flagged as another court's words | 0 | 27 `[quoted]` (under-inclusive, see below) |
| qualifiers | 172 free-text `for` | party 107 · count 93 · theory 65 · opinion 6 |
| element ids | provisional `ELEMENTS` | checked against `neov2/law/<law>.law` — all 499 blocks use declared ids; 57 element/defense KIND disagreements are warnings (the committed law files class `injury`, `standing`, `pretext`, `employer-reason`, `retaliation`, `aiding` as defenses) |
| `misfit` lines | 341 | 307 (those v1 expresses were deleted; the rest sharpened) |

Instances per statute (v0 decided → v1 instances): § 1962 60 → 44 · § 1983 55 → 44 ·
§ 1 41 → 29 · § 841 39 → 21 · § 2000e-2 81 → 62. The § 841 drop is the largest: three of its
twelve opinions use the statute only as a categorical-approach yardstick and one decides no element.

### The 11 FIX verdicts

| file | defect (reviewer) | v1 |
|---|---|---|
| North Jackson Pharmacy (QA1) | `restraint.per-se : satisfied [conceded]` — only the standard was conceded "if proved" | not-reached, `role rule-announced`; case role rule-announced |
| Midwest Grinding (QA1) | `[proved]` on summary judgment | `[no-evidence]` ×4 |
| Dye v. City of Warren (QA1) | `[law]` on evidentiary summary judgment; arguendo immunity read as plain | `[no-evidence]`; failure-to-train split (Heller `[law]` + footnote `[no-evidence]`, `scope alternative`); qualified immunity `scope alternative` |
| Tunica Web Advertising (QA2) | district court's unreviewed standing ruling recorded as the panel's | `scope lower-court` |
| Calabrese (QA2) | `enterprise : satisfied [pleaded]` in a double-jeopardy appeal | not-reached, `scope procedural`; case role background |
| NOW v. Scheidler (QA2) | `commerce`/`enterprise : satisfied [law]` — only "no economic motive required" was held; Article III standing under `injury` | both not-reached / rule-announced; standing block `scope procedural` |
| Boyle (QA2) | `enterprise : satisfied [proved]` — jury instruction approved, sufficiency not reviewed | not-reached / rule-announced |
| Tiangco (QA2) | quantity block mixed Count 1 and Count 2 | split by `count`; the § 846 block is `role background` |
| Prieto-Tejas (QA2) (+ Vera, same defect) | § 846 conspiracy stored under § 841 `aiding` | still under `aiding` (the law file declares no § 846 id and ids must match it), but `role background` + gloss: no longer a § 841 instance. Proper fix is law-side: a § 846 id or file |
| EEOC v. Francis W. Parker (QA2) | ADEA case attached to a Title VII block | case role comparator — nothing in the file is an instance |
| Ricci (QA2) | wrong `court`; hypothetical impact blocks read as real | `court` corrected with `# IR court field says:` comment; three blocks `scope hypothetical` |

Also acted on from PASS caveats: Dodson's qualified immunity ("available", not "succeeded") is
rule-announced; Henderson's and Hudson's district-court findings are `scope lower-court`; Hicks and
Desert Palace are split into the rule the Supreme Court announced and the finding below; Costa v.
Markey's panel blocks are `scope superseded` with an `opinion` qualifier; Glenn's abandoned claims
are `[waived]` + procedural; `court` also corrected on American Needle and In re Interest Rate Swaps.

### Judgment calls a reviewer should look at (author is not the reviewer)

* **Moncrieffe** — the (b)(4) block was flipped `not-satisfied [law]` → `satisfied [law]` so that
  the holding reads in the direction of the exception id (QA1 had passed the v0 form). It is a
  comparator block either way, so no instance count depends on it.
* **`[law]` → `[no-evidence]` beyond what QA asked** — Dye first stop (QA1 called `[law]` faithful),
  Reves `conduct`, Burrage `death-results`, Levine `injury`, Ricci's defense, Breech's accommodation
  claim. All are summary-judgment or sufficiency rulings whose operative step is arguably pure law.
* **Case-level `rule-announced` for Desert Palace** although its result is claimant-won (verdict
  affirmed without sufficiency review); likewise Boyle.
* **Calabrese as `background`** — no role fits a double-jeopardy comparison of two RICO indictments.
* **Cooperative Theatres `intent` as rule-announced** although the conviction was affirmed on the
  whole record; **Tiangco** ends with a single instance because venue-driven blocks are procedural.
* The migration was done by five subagents (one per statute) under one brief; I resolved cross-cutting
  issues and verified mechanically, but did not re-read every opinion.

### What STILL does not fit v1 (honest list)

1. **Role/scope are single-valued and coarse.** A block can be both procedural and alternative
   (Tiangco); `alternative` does not say *alternative to which block*, and it removes fully reasoned
   holdings from the instance count (Crest's seven-month continuity ruling); there is no scope for
   plain dictum, concurrence, or "vacated"; `background` is stretched to cover sibling-statute
   blocks that do carry a decided holding (§ 846, § 2000e-3 stays applied only because the law file
   declares `retaliation`).
2. **`rule-announced` has no content type.** It stops a mode-of-analysis or "X is not required"
   ruling from being read as a finding, but *which* mode was selected, or that a proposed element
   was *rejected*, still lives in gloss/variant text. It also hides real instances: Boyle's jury did
   find an enterprise; representing that would need the same quotes in a second (lower-court) block.
3. **Relations between elements** remain case-side prose. The law files now have `constraint`s
   (`distinct(person, enterprise)`, municipal non-bootstrap, per-se-presumes-intent), but a case
   block cannot cite one, nor express a parent element's holding when sub-prongs split (Thompson).
4. **Burden-shifting is still flat.** `employer-reason : satisfied` is a burden of production;
   "permits but does not compel" (Hicks) and pretext ≡ because-of are not expressible; a defense that
   survives summary judgment because the claimant's version would defeat it has no basis value.
5. **One basis per block.** Rule of law + application on a concession (Burrage), trial finding +
   appellate legal ruling, "never put to the jury but uncontested" (Hishaw), Rule 9(b) vagueness
   vs. legally insufficient allegations — each needs two values or a new one.
6. **Polarity is binary and whole-line.** Neutral context facts had to take a side; mixed sentences
   get one tag; it does not say *whose version* a fact is or whether the court credited it; for
   comparator blocks polarity means "toward a categorical match", not conduct; for mode-selection
   blocks it means "per se applies", not unlawfulness.
7. **`[quoted]` is under-inclusive** (27 tags): only rules sitting wholly inside attributed quotation
   marks were tagged; court-authored sentences with embedded quoted fragments were not.
8. **Qualifier values are still free text.** `party` / `count` / `theory` are typed but not
   normalized, so blocks cannot be joined per defendant or per count, and `result` is still per
   opinion rather than per party. Comparators (Title VII) were typed as `theory` for want of better.
9. **Frozen quotes limit the fixes.** Dissents (Reves, Boyle, Calabrese, Galloway, Chapman,
   Moncrieffe…) could now be `scope dissent` blocks but v0 quoted none; Vincent's waived entrapment
   defense stays `not-reached` because a decided block needs a quote. Adding quotes is new
   annotation work, not migration.
10. **No temporal / good-law flag, no cross-law pointer.** Dodson's color-of-law block (later
    reversed), Weisman's pre-H.J. Inc. rule, Chang/Seville's pre-Boyle test, Ford and Harvey still
    count as instances. § 1983 → the constitutional right, comparator → the compared state statute,
    Hiatt → Title IX remain prose.
11. **Vehicle statutes.** Unchanged from round 1: § 1983's real elements live in the right asserted.

### Loader status (Astra4 owns `tools/load.py`; not edited here)

* `load.parse_input()` imports all 60 v1 files unchanged (60 case, 499 instance, 1172 fact,
  298 variant records): v0 keys of `casedsl.parse()` are intact and `for` is synthesized from the
  typed qualifiers.
* A full `load.py` run against the committed (block-notation) law files succeeds: 3536 records —
  5 law, 123 element, 60 case, 499 instance, 1172 fact, 290 variant. In the shared working tree the
  top-level `neov2/law/*.law` were, at the time of writing, uncommitted drafts in Argon's indented
  notation, which `load.py` rejects (`expected field: value`); `casedsl.law_ids()` reads both
  notations and the case ids validate against both.
* Adapter changes needed (reported, not made): (a) store `block['role']`, `block['scope']` and
  `block['instance']` and make reports/matchers filter on `instance` — today all 267 decided blocks
  would still be ingested as instances; (b) store quote `polarity`/`tags` so `absent` and
  cuts-against facts are not embedded as positive exemplars; (c) store `party`/`count`/`theory`/
  `opinion` separately instead of one `subject`; (d) law side: add a § 846
  id (two blocks are parked under `aiding`) and `restraint.quick-look` (Dagher, parked under
  `restraint.per-se`), and reconsider classing `injury`/`standing`/`pretext` as defenses;
  (e) read the Argon-notation law files if those become canonical.

---

# Round 1 synthesis (v0)

Corpus of the experiment: 60 opinions (12 per statute × 18 U.S.C. § 1962, 42 U.S.C. § 1983,
15 U.S.C. § 1, 21 U.S.C. § 841, 42 U.S.C. § 2000e-2), 1966–2025, SCOTUS / circuit / district,
civil and criminal, wins and losses. 489 element/defense instances, 1172 verbatim quotes
(all machine-verified against IR text), 341 `misfit` lines written by the annotators.
The raw misfits live in the `.case` files (`grep -h '^misfit' neov2/cases/*/*.case`); this file
is the synthesis. Ordered by how much each finding should change the design.

## What worked

* **Verbatim-with-offsets is cheap and robust** when the author never types offsets: write
  `fact @? | …`, let `casedsl.py fill` locate it. Curly quotes / dashes / whitespace are the only
  real copy errors and are repaired *toward* the source. 1172/1172 quotes verify.
* **Element × holding × basis × variant** is a usable skeleton for the *core* of every opinion
  that actually applies the statute to facts (the large majority; exceptions in finding 3).
* **`fact` / `rule` / `held` separation** is natural to annotate and gives the law side its
  interpretive glosses for free (`rule` lines are the courts' own element tests).
* **`x-` ids and `misfit` lines** make gaps visible instead of forcing them: 30 distinct `x-`
  ids, each one a concrete request to the law model.
* **Failure modes as variants** (N holdings) carry as much signal as successes: 124 not-satisfied
  vs 152 satisfied instances (213 not-reached); for RICO `pattern.continuity` 5/5 are failures.

## Findings (negative results included)

1. *(v1: law side now has `constraint`; case side still cannot cite one.)* **Holdings are often RELATIONS between elements, not values of one element.** Seen in every
   statute: RICO person ≠ enterprise (Cedric Kushner, Negrete), enterprise ≠ pattern (Boyle,
   Chang, Seville), §1964 injury must flow from the investment (Goldfine); § 1983 policy cannot
   bootstrap a deprivation (Collins, Dye/Heller); Sherman per-se status depends on the shape of
   the agreement (Ford), single-entity reasoning selects the restraint mode (Dagher); Title VII
   falsity ≠ discrimination (Hicks). v0 parks these under one element with a
   `distinct-from-…/` genus. **Need:** a law-side `constraint` construct
   (`distinct(person, enterprise)`, `requires(policy, deprivation)`) that a case block can
   instantiate.
2. *(v1: unresolved.)* **Some "elements" are stages of one proof, not conjuncts.** McDonnell Douglas
   (prima facie → employer-reason → pretext) is a burden-shifting protocol for the single
   statutory element `because-of`; qualified immunity is two prongs with a burden rule;
   Twombly/summary-judgment/verdict is a ladder of proof standards. `employer-reason : satisfied`
   only means a burden of *production* was met. **Need:** a `protocol`/`stage` notion distinct
   from `element`, with who-bears-the-burden.
3. *(v1: yardstick/analogy → `role comparator`; vehicle unresolved.)* **The statute is frequently a VEHICLE or a YARDSTICK, not the thing applied.**
   * § 1983 is a vehicle: the doctrine lives in the constitutional right
     (`deprivation.eighth-amendment` hides a whole test). The right should be its own law that
     a § 1983 instance points into.
   * § 841 as comparator: Moncrieffe, Teran-Salas, Suncar compare a *state* statute to § 841 in
     the abstract (categorical approach); the case's own facts are legally irrelevant
     (`x-categorical-match`). Francis W. Parker cites § 2000e-2 only by analogy in an ADEA case.
   * Consequence for the matcher: **a citation to statute S does not imply the case is an
     instance of S.** In this sample 2/60 decide no element at all (Person, Francis W. Parker), 5/60 have
     result `not-decided`, and at least 3 more use the statute purely as a comparator.
     A "role of the citation" field (applied / comparator / analogy / predicate / background)
     is the first thing the DB needs — and is itself the "structure of law→case citation" the
     charter asks for.
4. *(v1: sibling offences quarantined as `role background`; tiers unresolved.)* **Penalty provisions and sibling offences are not elements.** § 841(b) quantity /
   death-results (Burrage, Chapman, Hishaw) behave as elements of aggravated offences with
   their own standard of proof; § 846 conspiracy was squeezed into `aiding`; Title VII
   retaliation (§ 2000e-3) and religious accommodation (§ 2000e(j)) rode along as sub-elements.
   **Need:** one law-dir per offence/claim, and `tier`s on the law side.
5. *(v1: `role rule-announced` covers test-announced / mode-selected / element-rejected / reserved, without distinguishing them.)* **Holding vocabulary is too small.** Missing: *test announced, application remanded*
   (Harris, Hicks, Tunica, Leegin — now written as `not-reached` blocks that carry `rule`
   quotes); *mode of analysis selected* (per se rejected ≠ restraint lawful: Dagher, Leegin,
   American Needle, North Jackson); *proposed element rejected* ("X is not required": NOW's
   economic motive, Boyle's hierarchy, Hudson's significant injury, Harris's psychological
   injury); *expressly reserved*; *defense available vs. defense succeeded* (Dodson).
6. *(v1: rules fixed per QA1, all `[proved]`/`[law]` blocks re-examined; two-layer bases unresolved.)* **Basis vocabulary.** v0's six values had no failure senses. Fixed in v0.1 by adding
   `no-evidence` (summary judgment against the claimant / verdict reversed for insufficiency)
   and `waived`; 22 blocks were re-tagged. Still missing: jury-instruction review, Rule 9(b)
   particularity vs. legal insufficiency, "facially sufficient indictment", alternative
   ("even assuming") holdings, and two-layer bases (trial finding + appellate legal ruling).
   `[pleaded]` + not-satisfied still conflates "alleged facts fail the test" with "nothing
   alleged". 11 `not-satisfied [proved]` blocks remain to be reviewed by QA against `no-evidence`.
7. *(v1: typed `party`/`count`/`theory`/`opinion`; values still free text.)* **`for` is overloaded** (defendant, count, subsection, incident, legal theory, comparator,
   penalty tier, *which opinion in the record*). Outcomes are really a grid
   element × defendant × claim × adverse-action. **Need:** typed qualifiers
   (`party`, `count`, `theory`, `opinion`) and OR/alternative markers between blocks.
8. *(v1: polarity + `absent` on every fact line; source/credited-by still missing.)* **Facts need attributes.** `fact` lines cannot say whose version (allegation / affidavit /
   finding / assumed for the verdict winner), nor polarity (supports vs. cuts against the
   holding), and at the pleading stage most "facts" are *absences* ("the complaint does not
   allege…"). For the similarity matcher this matters: absence-facts and counter-facts must
   not be embedded as positive exemplars of the element.
9. **Evidence ≠ element.** Quantity, purity, scales, cash are evidence of
   `intent-to-distribute`; comparators, remarks, timing are evidence of `because-of`. The
   reusable unit below the element is the *evidentiary route* — which is exactly what the
   variant genus ended up encoding (`inferred/`, `comparator/`, `temporal-proximity/`,
   `direct-evidence/`, `parallel-conduct/`). Comparators deserve their own structure.
10. **Variant labels: genus recurs, species does not (at n = 12).** 281 of 284 species labels
    are singletons; genera recur (e.g. RICO `association-in-fact/` 9×, `operation-or-management/`
    6×; § 1983 QI `clearly-established/` 6×; Sherman `per-se-rejected/` 4×, `capacity-to-conspire/`
    5×; § 841 `constructive/` 4×, `actual/` 4×). After a manual pass moving success/failure out
    of the genus (the holding carries it) the catalogue groups by genus. Species need either
    more cases or embedding-based clustering — this is where the charter's step 4 (semantic
    search assisting extraction) should start. Label drift between two annotators on the same
    statute was real (63 labels re-genused).
11. *(v1: unresolved.)* **No temporal / good-law dimension.** Dodson's color-of-law holding was reversed by the
    Supreme Court; Seville was reversed on appeal; Ford and Harvey are pre-Sylvania /
    pre-Copperweld; Chang/Goldfine's structure test was relaxed by Boyle; Leegin overrules
    Dr. Miles. Variants harvested from superseded cases feed the catalogue as if current.
    (These histories are annotator knowledge, not in the pinned text — a citator link is needed.)
12. *(v1: `opinion` qualifier, `scope dissent`/`superseded`; IR segmentation still needed.)* **Opinion structure is invisible in the source text.** Dissents/concurrences are 30–50 % of
    some records and verify as quotable; one IR record (Costa v. Markey) concatenates a panel
    opinion and the en banc opinion that reverses it; Person holds an adopting order plus a
    magistrate's report. **Need:** opinion-span segmentation (author, majority/dissent) before
    any automatic extraction, else dissent text is matched as holding.
13. **Multi-statute opinions.** Constructive possession is developed on § 922(g) counts and
    silently governs § 841 (Kitchen, Hishaw); half of Kamenesh is Florida law; Hiatt is the same
    instance under Title VII + Title IX. One opinion → many law instances sharing facts.

## Corpus / IR data issues found (for the pipeline owners; source text untouched)

* IR `text` is **capped at ~60 000 chars**; 5 of the 60 hit the cap (majorities complete in all
  five, dissents and sometimes the disposition lost — Ricci).
* `statute_cited_by.json` lists only the 50 most recent citing cases per statute; candidates
  were instead taken from the `*.refs.jsonl` out_links (5 317 citing cases for § 1962,
  57 463 for § 1983). U.S. Reports coverage is vols. 500–572 (+410, +cl 601–606): pre-1991
  landmarks (Sedima, H.J. Inc., Monell, McDonnell Douglas, Copperweld) are absent.
* Wrong `court` metadata: American Needle (560 U.S. 183) and Ricci (557 U.S. 557) carry the
  court *below*; In re Interest Rate Swaps says S.D. Ill. (is S.D.N.Y.); Reves caption truncated.
* f4th slip opinions (Galloway, Suncar) are one flattened paragraph with page/line numbers and
  footnotes interleaved mid-sentence; footnotes elsewhere are appended without anchors.
* OCR variants of one name inside one opinion (Healthcfeoice/HealthcAoice; Harr/Haar) will
  defeat entity matching; courts' own miscitations ("28 U.S.C. § 1961", "42 U. S. C. § 1988")
  defeat citation-keyed loading.

## Proposed v1 (for Argon / Astra4 / QA to react to)

`cite-role` header line · law-side `constraint` and `protocol/stage` · holdings
`standard-set` / `mode-selected` / `element-rejected` · typed `party|count|theory|opinion`
qualifiers replacing `for` · fact attributes `src=` and `polarity=` · `alt` marker for
alternative holdings · `superseded-by` · opinion-span segmentation in the IR · one law-dir per
claim/offence (§ 846, § 2000e-3, constitutional rights behind § 1983).

## Wave 2 — §78j / Rule 10b-5 case instances (Astra2)

Ten opinions (2004–2019), 23 blocks, 98 exact quotes, 17 merits instances.
The [research log](15usc78j/RESEARCH.md) records reading windows and qualifications;
[VARIANTS.md](15usc78j/VARIANTS.md) separates non-instance rulings.

- Maker attribution, reliance, scienter and loss are issue-specific outcomes;
  overall affirmance does not populate every securities-fraud element.
- Amgen certification and Afriyie instruction review do not establish merits
  instances. SEC enforcement does not import private reliance/economic loss.
- Final claimant-winning summary judgment lacks an exact basis token. Hui Feng
  uses explicitly qualified `law` for conclusions on an undisputed record;
  this is not trial factfinding or mere survival of summary judgment.
- Mixed factual sentences need richer polarity; historical omission/insider-trading
  rules need temporal qualifiers. One frozen Stoneridge rule excerpt ends midword;
  complete holding quotes support the result. It was preserved under the no-edit
  rule and is flagged in the case/research log, not silently repaired.

Quotes were frozen after fill and independently compared before commit. Final
QA is separate from this author/structural review.

## Wave 2 — §1125(a) case instances (Astra2)

Ten opinions (2000–2019), 28 blocks, 90 exact quotes, 16 merits instances.
See [RESEARCH.md](15usc1125/RESEARCH.md) for contextual reading pins and
[VARIANTS.md](15usc1125/VARIANTS.md) for the generated catalogue.

- False association/mark rights, nonfunctionality and advertising are separate
  routes. Successful fair use is a satisfied defense, not satisfied infringement.
- Preliminary-injunction conclusions are scoped procedural, not final merits
  facts; rule-only Wal-Mart does not find secondary meaning absent. Lexmark's
  reserved advertising premise is not-reached, not an alternative holding.
- The basis vocabulary lacks successful summary judgment and provisional-merits
  proof. Narrowly explained law/no-evidence labels retain those limitations.
- The generator correctly reports sixteen instances but also displays two
  applied-not-reached rows under its main coverage table. Consumers must use
  block.instance rather than assume every main-table row is a merits instance.
- Genus's IR stops at 60,000 characters; only observed complete discussions are
  encoded. Dastar's hypothetical advertising claim and reserved profits issue
  do not become findings on real liability or entitlement to relief.

A separate bounded peer pass corrected scope/polarity explanations without
changing any of the ninety frozen quote tuples. Final independent QA follows.

## Wave 2 — §1981 case instances (Astra2)

Ten opinions (2004–2019), 25 blocks, 76 exact quotes, 14 merits instances.
See [RESEARCH.md](42usc1981/RESEARCH.md) for source hashes/read windows and
[VARIANTS.md](42usc1981/VARIANTS.md) for evidence variants.

- Own-contract rights, racial-intent evidence, retaliation and state-remedial
  routes are separate. Availability of a §1983 vehicle does not prove liability.
- Brown's res judicata ruling is background/procedural, not a contractual injury
  finding. Jones's limitations choice and Bryant's timely-component evidence
  are procedural; they are not merits discrimination instances.
- Pretext and comparators are evidence routes to intent, not separate statutory
  claims. CBOCS announces retaliation coverage without finding its facts proved.
- These pre-Comcast opinions do not establish a modern but-for finding; Hu's
  comparator pleading rule remains context-specific. Four applied-not-reached
  blocks preserve unadjudicated context and must not be counted as instances.
- Hu's IR is capped at 60,000 characters but its §1981 discussion is complete.
  The sample is intentionally diverse in posture, yet 2019 and the Eighth Circuit
  remain overrepresented. There is no typed neutral-polarity or good-law field.

A bounded peer pass corrected Bryant's evidentiary basis and contextual fact
polarity and clarified Hu, without changing any of the 76 frozen quote tuples.
Final independent QA follows.

---

# Wave 2 (Fable): 18 U.S.C. §§ 1341, 1343, 922(g), 924(c)

45 opinions written directly in v1 (10 mail fraud, 10 wire fraud, 15 § 922(g), 10 § 924(c)),
1967–2025; 204 blocks, 624 verbatim quotes, 0 check errors and no id warnings (every id is declared in
`neov2/law/<law>.law`; no `x-` ids were allowed). Directory names follow the law files:
`18usc922`, `18usc924`. Case selection as in `SELECTION.md` (refs-derived pool, keyword ranking,
hand pick), with comparator / procedural opinions included on purpose.

| statute | cases | case roles | blocks | decided | **instances** | facts supports / cuts-against (absent) |
|---|---|---|---|---|---|---|
| § 1341 | 10 | applied 8 · rule-announced 1 · comparator 1 | 63 | 33 | **29** | 68 / 45 (13) |
| § 1343 | 10 | applied 9 · background 1 | 50 | 27 | **21** | 52 / 20 (8) |
| § 922(g) | 15 | applied 9 · comparator 3 · background 2 · rule-announced 1 | 45 | 22 | **9** | 44 / 22 (4) |
| § 924(c) | 10 | applied 7 · comparator 2 · rule-announced 1 | 46 | 25 | **16** | 46 / 21 (5) |

107 decided blocks, 75 instances: v1's role/scope gate removes 30 % of what v0 would have ingested.

## Findings

1. **§ 922(g): a citation is rarely an instance, and keyword ranking does not find the instances.**
   The first ten opinions (picked by element-keyword density) yielded 3 instances: they were
   definitional status rulings (Hayes, Small, Cassidy), evidence rulings (Old Chief, Rhodes),
   categorical-approach / Bail Reform Act / immigration comparators (Campbell, Hernandez, Dunlap),
   a Second Amendment challenge (Kimble) and an instruction ruling (Nance). Five more opinions were
   then chosen specifically for sufficiency language; even of those, one had no § 922(g) charge at
   all (Spears), one was an acquittal (Cochran), and one was reversed en banc (Moye). Final: 9
   instances from 15 opinions, none on the commerce or knowledge elements. For a high-volume
   status offence the litigated questions are definitional and collateral; the element facts are
   stipulated. **Consequence for the matcher: instance-bearing opinions must be found by posture
   (sufficiency review), not by citation or keyword density.**
2. **Definitions carry the holdings but have no ids.** § 921(a)(20) (restoration of civil rights),
   § 921(a)(33) (misdemeanor crime of domestic violence), "convicted in any court" — the law file
   has them only as xrefs under `status.*`, so the real ruling sits in variant/gloss text. Same for
   "falsity/deception" in the fraud statutes (parked under `materiality` or `scheme`).
3. **Honest-services fraud is a whole claim squeezed into one boundary node.** Sancho, Jefferson and
   Boone are complete § 1346 prosecutions; `honest-services-boundary` has no defined
   satisfied/not-satisfied meaning and the § 1346 elements (fiduciary duty, bribe/kickback) have no
   ids, so their `scheme`/`intent` instances cannot say which claim they belong to.
4. **Sibling statutes share elements.** Mail and wire fraud are decided by the same reasoning in
   the same paragraphs (Southern Snow, Kousisis, Evans, Henry — the last has no § 1341 count at
   all); § 922(g) and § 841 share constructive-possession doctrine (Kitchen, Cochran). Each is
   recorded under one law; there is no shared-element pointer.
5. **Offence-level rulings have no home**: unit of prosecution (Phipps: one use of one gun, two
   predicates, one § 924(c) count), "is by its nature a crime of violence" (Campbell), which
   possession incident the conviction rests on (Nance), jury acquittal (Cochran, Yeager),
   guilty plea (Kimble). They were parked under an element with `scope procedural` or left as misfits.
6. **Secondary liability**: Pinkerton (Ocampo, Baker) has no id (`accomplice` is § 2 only);
   `accomplice` has no act/intent sub-ids, so Rosemond's decided act prong is under-recorded as
   not-reached to avoid counting the whole element.
7. **Constitutional and evidentiary rulings** (Second Amendment as applied to (g)(1) — the only
   declared defense is (g)(3)-specific; Rule 403 stipulations; admissibility "to prove element X";
   the revenue rule in Pasquantino) have no ids; with `x-` ids forbidden they exist only as misfits.
   This is the price of "ids must match the law file": 207 misfit lines, and the law side should
   read them as its backlog.
8. **`scope superseded` widened.** Moye's panel opinion was reheard en banc in a *different* IR
   record; the scope now covers that (the en banc record `/f3d/454/0390-01` is not yet annotated).
   More generally there is still no good-law flag: Granberry and Henry (right-to-control, pre-
   Ciminelli), Ocampo (pre-Bailey "use"), Bailey itself (pre-1998 text), Jefferson (pre-Skilling
   conflict-of-interest theory), Phipps (residual-clause predicate) all count as instances.
9. **Polarity strains on undisputed-fact legal rulings.** In Muscarello, Bailey, Small, Cleveland
   the same fact both satisfies the winning rule and is the loser's whole argument; institutional
   and legislative facts (a state licensing scheme, an Ohio statute) are "facts" only by courtesy.
   `[supports absent]` appeared (no justification offered) — legal under the checker, not
   illustrated in the spec.
10. **Known v1 gaps recurred in every statute**: one basis per block (legal ruling + conceded or
    proved facts), "X is not required" rulings without a type (Kousisis, Neder, Hayes, Dean),
    cumulative vs alternative grounds (Galloway's second furtherance theory counts as a second
    instance), comparator cannot name the compared law or its direction (Dunlap borrows *from*
    § 922(g)), result per opinion not per count (Chung Lo: four counts affirmed, four reversed).
11. **IR text**: 2025 U.S. preliminary prints and f4th slip opinions are one flattened paragraph
    with running heads and line-break hyphens (Kousisis, Kimble); `court` wrong on Nijhawan, Yeager
    and Kousisis ("scotus") — corrected in the headers with a `# IR court field says:` comment;
    footnotes spliced mid-sentence (Henry).

## For the reviewers (author ≠ reviewer)

Extraction by nine subagents under one brief; quotes, offsets, ids and role/scope/basis rules are
machine-checked, legal calls are not. The annotators flagged these as uncertain: Hayes and
Cleveland as `applied` (categorical construction with the outcome following directly) vs
rule-announced; Henry as `applied` although no § 1341 count exists; Kousisis `intent` as
rule-announced; Holland's `carry`/`during-relation` as merits instances inside a § 2255 prejudice
inquiry; Phipps `predicate.violence : satisfied [law]` on one unanalysed sentence; Baker's Pinkerton
ruling parked under `intent` with `scope alternative`; several `[law]` vs `[conceded]`/`[proved]`
choices (Muscarello, Dean, Pasquantino, Boone). Several Supreme Court dissents and parts of long
opinions (Neder Part II-A, Pasquantino Part III, Davis v. Beeler's exhaustion narrative) were
skimmed, not read; no quote comes from an unread stretch.
## Wave 2 — 29usc158 (Astra4)

Employer ULP review distinguishes final enforcement from interim section 10(j) relief, contextual interrogation, insignia defenses, workforce retaliation, lost strike protection, and bargaining variants. Result follows the General Counsel/charging party, not the employer petitioner.

Ten CASE DSL v1 files; 15 issue blocks, 13 qualifying merits instances, 50 exact quote occurrences. See [29usc158/SELECTION.md](29usc158/SELECTION.md) for source/selection limitations and the final quote-set fingerprint; [29usc158/VARIANTS.md](29usc158/VARIANTS.md) separates instance counts from other annotations. The sample is purposive, not representative. Independent legal QA follows.

## Wave 2 — 29usc623 (Astra4)

The active ADEA catalogue is section 623, not section 621. The sample distinguishes pleaded, triable and jury-proved treatment/retaliation evidence, RFOA after prima facie impact, charge accrual, abandoned age appeals, and pension issues outside the core model.

Ten CASE DSL v1 files; 16 issue blocks, 13 qualifying merits instances, 38 exact quote occurrences. See [29usc623/SELECTION.md](29usc623/SELECTION.md) for source/selection limitations and the final quote-set fingerprint; [29usc623/VARIANTS.md](29usc623/VARIANTS.md) separates instance counts from other annotations. The sample is purposive, not representative. Independent legal QA follows.

## Wave 2 — 21usc846 (Astra4)

Attempt and conspiracy remain separate. Accepted intent is not a substantial step; conspiracy identity, plain-error prejudice, retrial sufficiency and sentencing context do not become unqualified merits findings. Result follows the prosecuting government.

Ten CASE DSL v1 files; 19 issue blocks, 8 qualifying merits instances, 34 exact quote occurrences. See [21usc846/SELECTION.md](21usc846/SELECTION.md) for source/selection limitations and the final quote-set fingerprint; [21usc846/VARIANTS.md](21usc846/VARIANTS.md) separates instance counts from other annotations. The sample is purposive, not representative. Independent legal QA follows.