Step 1
whetstone_DSL Run Corpus
Real pipeline runs stored as JSON log artifacts.
Each run records taskitem decisions, prerequisite ops, worker routing.
1000 runs extracted
Step 2
Gate Extraction
extract_gate_rows.py parses each run.
Isolates one gate's decision context and label per row.
Rejects rows with schema drift or sibling-uniform labels.
1297 accepted / 24 schema-drift rejected
Step 3
Gate Decomposition
Analysis revealed needs_validate_intake is always True — not a decision surface.
Gate reduces to two independent binary classifiers.
2 gates from 1
Step 4
TSV Generation
gen_prereq_op_rsa_data.py converts rows to Fabricate TSV format.
Format: label <TAB> 0 <TAB> text
Text composed from: title · reasons · acceptance criteria · constraints.
85% train / 15% eval split · seed=42
Step 5
Fabricate Training
Tiny transformer framework. GPU training on dedicated desktop.
~213K parameter model architecture.
Binary classification head per gate.
4000 steps per specialist
Step 6
Specialist Checkpoint
Serialized model: ~800KB on disk.
Loaded at runtime by the RSA gate layer.
Returns: label · confidence · abstain flag.
~800KB per specialist