core/docs/handoff/phase-3b-4-skeleton
..
en_core_names_v1
README.md
test_adr_0174_phase3b_compound_clause.py
test_adr_0174_phase4_contemplate.py

ADR-0174 Phase 3b + Phase 4 — Skeleton Pack

Skeleton artifacts ready to drop into the live tree once the operator starts implementation per docs/handoff/ADR-0174-PHASE-3B-4-COMBINED-SCOPE.md.

Everything in this directory is inert — nothing is collected by pytest, nothing is imported by runtime code. Move files to their target locations when ready to wire.

Contents

Skeleton file Target location Purpose
test_adr_0174_phase3b_compound_clause.py tests/test_adr_0174_phase3b_compound_clause.py Phase 3b acceptance tests
test_adr_0174_phase4_contemplate.py tests/test_adr_0174_phase4_contemplate.py Phase 4 acceptance tests
en_core_names_v1/gender.jsonl language_packs/data/en_core_names_v1/gender.jsonl Gendered-name pack data
en_core_names_v1/manifest.json language_packs/data/en_core_names_v1/manifest.json Pack manifest (checksum verified)

Implementer workflow

  1. Read the combined scope: docs/handoff/ADR-0174-PHASE-3B-4-COMBINED-SCOPE.md
  2. Branch off main (or off the merged ADR-0174 Phase 3a base if it lands first)
  3. Move the test files into tests/ — they will run RED until you implement
  4. Move the pack into language_packs/data/
  5. Implement Phase 3b extractor → tests turn GREEN one at a time
  6. Implement Phase 4 contemplate + pack loader → remaining tests turn GREEN
  7. Run smoke + packs + lanes + train_sample; verify wrong=0 and acceptance lift

Pack notes

en_core_names_v1/gender.jsonl is a starter with 30 unambiguously- gendered English first names. Coverage:

  • Names commonly appearing in GSM8K problems (Alice, Bob, Sam, Tom, John, Mary, etc.)
  • Both genders evenly represented
  • Deliberately excludes ambiguous-gender names (Jordan, Alex, Casey, Pat, Taylor, Morgan, Sam-as-Samantha)

Expansion path: standard HITL corridor (ADR-0150/0152/0155/0161) via core teaching propose-from-exemplars once Phase 4 reads from this pack and produces refusal evidence on uncovered names.

Test-skeleton conventions

The skeleton tests use @pytest.mark.skip(reason="Phase 3b/4 not yet implemented") decorators on every test. Imports are inside test bodies so collection succeeds before the target modules exist. When implementing, remove the skip decorator and the lazy-import pattern.