core/docs/admissibility-exemplars.md
Shay 47c0a03d3b
feat(ADR-0163.B.2): four new exemplar corpora — discrete_count_statement, multiplicative_aggregation, currency_amount, plus temporal_aggregation v2 widening (#306)
Phase B round 2.  Categorizing the post-#304 GSM8K train_sample's
still-refused 47 set surfaced three coherent sub-shapes in the previously
UNCATEGORIZED tail plus five ratified-but-narrowness-blocked temporal
cases; this PR ships the operator-authored exemplar seeds + Phase A
categorizer extension that prove the corridor scales beyond round 1.

Exemplar corpora (70 new exemplars across 4 files):
- discrete_count_statement_v1.jsonl (20)
- multiplicative_aggregation_v1.jsonl (20)
- currency_amount_v1.jsonl (20)
- temporal_aggregation_v2.jsonl (10, widening)

Each corpus carries ≥3 verbatim train-sample citations, ≥12 (≥5 for v2)
novel operator-authored statements, and ≥1–3 edge cases.  Statements are
disjoint across all 7 round-1 + round-2 corpora; tests enforce.

Phase A categorizer (evals/refusal_taxonomy/shape_categories.py)
extends ShapeCategory with three new members and inserts their rule
predicates AFTER the existing more-specific categories:
- rate_with_currency before currency_amount
- multiplicative_aggregation before discrete_count_statement
Each new rule predicate cites ≥3 train_sample case_ids in its docstring
(ADR-0163 §Risks).  No LLM, no embedding, no learned classifier.

Refusal-taxonomy histogram empirical signal (public 50 sample):
- pre-round-2: 14 UNCATEGORIZED (categorized_rate 0.72)
- post-round-2: 1 UNCATEGORIZED (categorized_rate 0.98)

The single residual is case 0044 ("10% simple interest" — percentage
without change verb), an honest tail outside the three round-2 shapes.

wrong=0 holds on capability axes G1..G5 + S1; no runtime code shipped.
Smoke suite green (67/67).

Cross-refs: ADR-0163, #297 (Phase A), #298 (Phase B round 1),
#301 (Phase C), #302 (Phase D), #304 (round-1 ratify), #305 (session
recap).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 14:36:59 -07:00

95 lines
4.3 KiB
Markdown

# Admissibility Exemplars (ADR-0163 Phase B)
Operator-facing overview of the hand-authored exemplar corpora that feed the
Phase C contemplation runner. For the full schema, sourcing rules, and
forward reference, see
[`teaching/admissibility_exemplars/contract.md`](../teaching/admissibility_exemplars/contract.md).
## What this is
For each shape category surfaced by the Phase A refusal-taxonomy lane, the
operator hand-authors a small JSONL corpus of canonical exemplars. Phase C
(contemplation runner) ingests these corpora and emits recognizer proposals;
Phase D ratifies; Phase E re-baselines GSM8K.
Phase B is the **only** phase where the engine learns from operator-authored
statements. Every dimension of "what shape did the operator think was
canonical?" propagates into the recognizer Phase C derives and the gates
Phase D ratifies. Therefore: canonical over comprehensive, surface
preservation over normalization, distinguishing over similar.
## Round 1 — categories and counts
The original Phase A histogram (pre-round-2-extension) selected these three
categories:
| Rank | Category | Phase A count | Exemplars |
|---|---|---|---|
| 1 | `descriptive_setup_no_quantity` | 17 | 20 |
| 2 | `temporal_aggregation` | 4 | 20 |
| 3 | `rate_with_currency` | 3 | 20 |
Round 1 sourcing breakdown:
| Category | Train-sample citations | Novel (operator-authored) | Edge cases |
|---|---|---|---|
| `descriptive_setup_no_quantity` | 5 | 12 | 3 |
| `temporal_aggregation` | 4 | 13 | 3 |
| `rate_with_currency` | 3 | 14 | 3 |
## Round 2 — categories and counts
Round 2 was driven by categorizing the post-#304 GSM8K `train_sample`
still-refused 47 set: 23 had been UNCATEGORIZED under the round-1
categorizer; the categorization sweep surfaced three coherent
sub-shapes, plus five ratified-but-unmatched temporal cases that called
for a v2 widening.
| Rank | Category | Phase A round-2 count (public 50) | Exemplars |
|---|---|---|---|
| — | `discrete_count_statement` (new) | 10 | 20 |
| — | `multiplicative_aggregation` (new) | 2 | 20 |
| — | `currency_amount` (new) | 1 | 20 |
| — | `temporal_aggregation` v2 (widening) | — | 10 |
The "Phase A round-2 count" column is the number of the public 50-case
sample now categorized into the new category by the extended Phase A
categorizer; it is the empirical signal the categorization actually
worked. Pre-round-2 the public sample carried 14 UNCATEGORIZED cases;
post-round-2 only 1 remains (case 0044, "10% simple interest" with no
change verb — an honest residual outside the three sub-shapes).
Round 2 sourcing breakdown:
| Category | Train-sample citations | Novel (operator-authored) | Edge cases |
|---|---|---|---|
| `discrete_count_statement` | 6 | 11 | 3 |
| `multiplicative_aggregation` | 3 | 13 | 4 |
| `currency_amount` | 3 | 14 | 3 |
| `temporal_aggregation` v2 | 4 | 5 | 1 |
## Files
Round 1:
- [`teaching/admissibility_exemplars/descriptive_setup_no_quantity_v1.jsonl`](../teaching/admissibility_exemplars/descriptive_setup_no_quantity_v1.jsonl)
- [`teaching/admissibility_exemplars/temporal_aggregation_v1.jsonl`](../teaching/admissibility_exemplars/temporal_aggregation_v1.jsonl)
- [`teaching/admissibility_exemplars/rate_with_currency_v1.jsonl`](../teaching/admissibility_exemplars/rate_with_currency_v1.jsonl)
Round 2:
- [`teaching/admissibility_exemplars/discrete_count_statement_v1.jsonl`](../teaching/admissibility_exemplars/discrete_count_statement_v1.jsonl)
- [`teaching/admissibility_exemplars/multiplicative_aggregation_v1.jsonl`](../teaching/admissibility_exemplars/multiplicative_aggregation_v1.jsonl)
- [`teaching/admissibility_exemplars/currency_amount_v1.jsonl`](../teaching/admissibility_exemplars/currency_amount_v1.jsonl)
- [`teaching/admissibility_exemplars/temporal_aggregation_v2.jsonl`](../teaching/admissibility_exemplars/temporal_aggregation_v2.jsonl)
Contract:
- [`teaching/admissibility_exemplars/contract.md`](../teaching/admissibility_exemplars/contract.md)
## Cross-references
- [ADR-0163 — Path to GSM8K mastery](decisions/ADR-0163-gsm8k-path-to-mastery.md)
- [Phase A refusal taxonomy contract](../evals/refusal_taxonomy/contract.md)
- [ADR-0057 — Proposal review + replay-equivalence](decisions/ADR-0057-teaching-chain-proposal-review.md)
- [ADR-0161 — HITL async queue](decisions/ADR-0161-hitl-async-queue.md)