MCPcopy Create free account
hub / github.com/garrytan/gstack / assertRecommendationQuality

Function assertRecommendationQuality

test/helpers/e2e-helpers.ts:212–239  ·  view source on GitHub ↗
(opts: {
  captured: string;
  evalCollector: EvalCollector | null;
  evalId: string;
  evalTitle: string;
  result: SkillTestResult;
  passed: boolean;
})

Source from the content-addressed store, hash-verified

210 * further.
211 */
212export async function assertRecommendationQuality(opts: {
213 captured: string;
214 evalCollector: EvalCollector | null;
215 evalId: string;
216 evalTitle: string;
217 result: SkillTestResult;
218 passed: boolean;
219}): Promise<RecommendationScore> {
220 const recScore = await judgeRecommendation(opts.captured);
221 recordE2E(opts.evalCollector, opts.evalId, opts.evalTitle, opts.result, {
222 passed: opts.passed,
223 judge_scores: {
224 rec_present: recScore.present ? 1 : 0,
225 rec_commits: recScore.commits ? 1 : 0,
226 rec_has_because: recScore.has_because ? 1 : 0,
227 rec_substance: recScore.reason_substance,
228 },
229 judge_reasoning: `${recScore.reasoning} | reason: "${recScore.reason_text}"`,
230 });
231 expect(recScore.present, recScore.reasoning).toBe(true);
232 expect(recScore.commits, recScore.reasoning).toBe(true);
233 expect(recScore.has_because, recScore.reasoning).toBe(true);
234 expect(
235 recScore.reason_substance,
236 `${recScore.reasoning}\n reason: "${recScore.reason_text}"`,
237 ).toBeGreaterThanOrEqual(RECOMMENDATION_SUBSTANCE_THRESHOLD);
238 return recScore;
239}
240
241/** Finalize an eval collector (write results). */
242export async function finalizeEvalCollector(evalCollector: EvalCollector | null) {

Calls 2

judgeRecommendationFunction · 0.90
recordE2EFunction · 0.70

Tested by

no test coverage detected