/** * loadRubric — parse a per-agent rubric Markdown file into a string[] of * criteria suitable for passing to `LLMJudge.evaluate({ rubric })`. * * SLICE-101 (FEAT-183 S5b). Operators maintain rubrics at * `evals/rubrics/.md` (one file per agent prompt). Criteria are * extracted from: * 1. `## ` Markdown H2 headings (one criterion per heading), OR * 2. Top-level bullet items (`- ` at column 0), if no H2s present. * * Choose ONE convention per file — mixing H2 + bullets is supported (we * concatenate both) but reduces readability. The loader does NOT validate * convention; the operator does that at authoring time. * * H3+ headings are ignored — they're sub-explanations of the criterion * above, not criteria themselves. * * Bullets nested under headings (after a heading) are also ignored — they're * explanation prose. Only TOP-LEVEL bullets count when bullets are the * convention chosen. */ export interface LoadRubricOpts { /** Override the file read — useful for testing. Default: node:fs/promises. */ readFile?: (path: string) => Promise; } /** * Load a rubric file from `rubricPath` and return the criteria array. * Throws if the file does not exist (caller is expected to handle file * absence — the loader does not silently fall back to an empty rubric). */ export declare function loadRubric(rubricPath: string, opts?: LoadRubricOpts): Promise; /** * Pure parser — exported separately so callers with already-read content * (e.g. tests with inline strings, or in-memory rubric templates) can * skip the file read. */ export declare function parseRubricMarkdown(markdown: string): string[]; //# sourceMappingURL=load-rubric.d.ts.map