Apply both corpus findings to the schema

criterion.parent_id — a score commits at any criterion with NO WEIGHTED
CHILDREN. Derived from the rubric, never configured, and neither corpus
document is special-cased: Tarrant's five flat criteria are all leaves;
Friendship's 'Method of Approach' 30 is not scoreable while its 15/10/5
children are. A criterion whose sub-items carry no points stays scoreable
at its own level, because those are requirements mapped through
criterion_requirement rather than children.

requirement.determinable_from_response — false where satisfaction cannot be
established from the response document at all. Gate evaluation excludes
these rather than failing them; treating Friendship's 'two bid copies' as
not_answered disqualifies two of three bidders over a packaging detail.

The scoring rule is mirrored in corpus/validate-truth.py so the corpus and
the code cannot silently disagree. Against Friendship it yields 10 scoreable
criteria of 12, summing to exactly 100.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christian
2026-08-03 18:50:16 -04:00
parent 19e7ffe92a
commit 126e94a14b
6 changed files with 3115 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
ALTER TABLE "criterion" ADD COLUMN "parent_id" uuid;--> statement-breakpoint
ALTER TABLE "requirement" ADD COLUMN "determinable_from_response" boolean DEFAULT true NOT NULL;--> statement-breakpoint
ALTER TABLE "criterion" ADD CONSTRAINT "criterion_parent_id_criterion_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."criterion"("id") ON DELETE no action ON UPDATE no action;

File diff suppressed because it is too large Load Diff

View File

@@ -22,6 +22,13 @@
"when": 1785792003081,
"tag": "0002_seed_release_matrix",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1785797388491,
"tag": "0003_criterion_nesting_and_determinability",
"breakpoints": true
}
]
}