Skip to content

Loop 73: Rejection reason taxonomy schema (Phase F F3) - #758

Merged
cschanhniem merged 1 commit into
mainfrom
feat/loop-73-rejection-taxonomy
Jul 9, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
feat/loop-73-rejection-taxonomy

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Change

Adds machine-readable rejection reason taxonomy for OpenAMP candidate failures — schema, example, doc, and 19 tests.

New files:

  • schemas/rejection_taxonomy.schema.json — JSON Schema Draft 2020-12 defining rejection taxonomy entries (code, category, severity, evidence_impact, applies_at_stage, related_reason_category)
  • examples/rejection_taxonomy_example.json — 21-entry taxonomy covering all 6 pipeline stages (pre_selection, pipeline, diversity, reviewer, lab, lifecycle)
  • tests/evidence/test_rejection_taxonomy_schema.py — 19 tests covering schema validation, example validation, coverage completeness, code uniqueness

Modified files:

  • docs/evidence/REJECTION_TAXONOMY.md — comprehensive reference with hierarchy tables, severity/evidence-impact definitions, cross-references
  • docs/evidence/METRICS_CURRENT.md — v0.5.74 entry (2698 tests)
  • docs/research/ROADMAP.md — v0.5.74 entry
  • tests/test_test_count_regression.py — baseline 2698

Why

Phase F F3 is the foundation for F4 (failed-candidate report generator) and F5 (safe-publication filter). Without a machine-checkable rejection taxonomy, downstream tools have no shared vocabulary for why candidates fail. This bottlenecks external reviewability and negative-result analysis.

Evidence

  • python3 -m pytest tests/evidence/test_rejection_taxonomy_schema.py -v — 19/19 passed
  • python3 -m pytest tests/test_test_count_regression.py -v — baseline check passed (2698)
  • make agent-check — all checks passed
  • Example file validates against its own schema

Safety impact

None directly. The taxonomy describes rejection reasons only; it does not change how candidates are selected, scored, or released. All 21 rejection codes are descriptive — they standardize existing pipeline behavior.

Proof level

Level 1 (reproducible dry-lab feature). The schema and example are deterministic, versioned, and validated.

Limitations

  • Having a taxonomy does not enforce that tools use it — downstream tool updates (F4, F5) are needed
  • Severity is a guideline; final rejection authority rests with human reviewers for class C/D decisions
  • The taxonomy does not define what counts as sufficient new evidence to overturn a hard rejection

Human review needed

No. Docs-only schema addition with tests.

Machine-readable rejection reason taxonomy for OpenAMP candidate failures.
Covers 21 reasons across 6 pipeline stages with severity, evidence impact,
and stage classification.

- schemas/rejection_taxonomy.schema.json — JSON Schema for taxonomy entries
- examples/rejection_taxonomy_example.json — 21-entry complete taxonomy
- docs/evidence/REJECTION_TAXONOMY.md — comprehensive reference doc
- tests/evidence/test_rejection_taxonomy_schema.py — 19 tests
- docs/evidence/METRICS_CURRENT.md — v0.5.74 entry (2698 tests)
- docs/research/ROADMAP.md — v0.5.74 entry
- tests/test_test_count_regression.py — baseline 2698
@cschanhniem
cschanhniem merged commit 2bfe922 into main Jul 9, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant