MCPcopy Create free account
hub / github.com/PatrickSys/codebase-context / evaluateDiscoveryGate

Function evaluateDiscoveryGate

src/eval/discovery-harness.ts:407–454  ·  view source on GitHub ↗
({
  summary,
  protocol,
  comparatorEvidence,
  suiteComplete
}: {
  summary: DiscoverySummaryType;
  protocol: DiscoveryBenchmarkProtocol;
  comparatorEvidence?: DiscoveryComparatorEvidence;
  suiteComplete: boolean;
})

Source from the content-addressed store, hash-verified

405}
406
407export function evaluateDiscoveryGate({
408 summary,
409 protocol,
410 comparatorEvidence,
411 suiteComplete
412}: {
413 summary: DiscoverySummaryType;
414 protocol: DiscoveryBenchmarkProtocol;
415 comparatorEvidence?: DiscoveryComparatorEvidence;
416 suiteComplete: boolean;
417}): DiscoveryGateEvaluation {
418 const baseline = evaluateBaselineGate(summary, protocol, comparatorEvidence);
419 const comparators = protocol.shipGate.comparators.requiredNames.map((name) =>
420 evaluateComparatorGate(summary, name, protocol, comparatorEvidence)
421 );
422 const missingEvidence: string[] = [];
423
424 if (!suiteComplete) {
425 missingEvidence.push('fixed public discovery suite is incomplete');
426 }
427
428 if (baseline.status === 'pending_evidence') {
429 missingEvidence.push(`${baseline.comparatorName} baseline metrics missing`);
430 }
431
432 for (const comparator of comparators) {
433 if (comparator.status === 'pending_evidence') {
434 missingEvidence.push(`${comparator.comparatorName} comparator metrics missing`);
435 }
436 }
437
438 const status =
439 missingEvidence.length > 0
440 ? 'pending_evidence'
441 : baseline.status === 'passed' &&
442 comparators.every((comparator) => comparator.status === 'passed')
443 ? 'passed'
444 : 'failed';
445
446 return {
447 status,
448 suiteStatus: suiteComplete ? 'complete' : 'incomplete',
449 baseline,
450 comparators,
451 missingEvidence,
452 claimAllowed: status === 'passed'
453 };
454}
455
456export async function evaluateDiscoveryFixture({
457 fixture,

Callers 2

mainFunction · 0.85

Calls 2

evaluateBaselineGateFunction · 0.85
evaluateComparatorGateFunction · 0.85

Tested by

no test coverage detected