output-grader — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited output-grader (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Acts as an LLM judge to grade skill outputs against predefined assertions. Produces structured grading reports with concrete evidence for each pass or fail decision.
For each test case defined in <skill-dir>/evals/evals.json:
assertions array.evals/workspace/quality-results/iteration-<N>/eval-<id>/with_skill/outputs/ and without_skill/outputs/.response.txt and any output files for each run.For each assertion, perform LLM-based evaluation against both with-skill and without-skill outputs:
Grading criteria:
Evidence requirements:
chart.png (45KB) in with_skill/outputs/", or "Response line 12: 'X-axis: Q1, Q2, Q3, Q4'").Before finalizing grades, evaluate the assertions themselves for quality issues:
assertion_quality: "always-pass". These assertions don't measure skill value and should be removed from future eval sets.assertion_quality: "always-fail". These indicate either broken assertions or genuinely impossible tasks.assertion_quality: "unverifiable".For each eval case, write per-configuration grading.json files that match the state-protocol schema:
evals/workspace/quality-results/iteration-<N>/eval-<id>/with_skill/grading.json:
{
"eval_id": "eval-1",
"configuration": "with_skill",
"assertion_results": [
{
"text": "Output includes a PNG image file",
"passed": true,
"evidence": "Found chart.png (45KB) in with_skill/outputs/",
"assertion_quality": "valid"
},
{
"text": "X-axis has month labels",
"passed": true,
"evidence": "Chart shows labels: Jan, Feb, Mar on x-axis (confirmed via chart metadata)",
"assertion_quality": "valid"
},
{
"text": "The chart uses optimal color scheme",
"passed": false,
"evidence": "Cannot objectively determine 'optimal' from output alone — subjective criterion",
"assertion_quality": "unverifiable"
}
],
"summary": {"passed": 2, "failed": 1, "total": 3, "pass_rate": 0.66}
}evals/workspace/quality-results/iteration-<N>/eval-<id>/without_skill/grading.json:
{
"eval_id": "eval-1",
"configuration": "without_skill",
"assertion_results": [
{
"text": "Output includes a PNG image file",
"passed": false,
"evidence": "No PNG files found in without_skill/outputs/. Only response.txt present.",
"assertion_quality": "valid"
},
{
"text": "X-axis has month labels",
"passed": false,
"evidence": "No chart generated",
"assertion_quality": "valid"
},
{
"text": "The chart uses optimal color scheme",
"passed": false,
"evidence": "No chart generated",
"assertion_quality": "unverifiable"
}
],
"summary": {"passed": 0, "failed": 3, "total": 3, "pass_rate": 0.0},
"assertion_quality_flags": ["unverifiable"]
}assertion_quality is recorded per-assertion in both files. The assertion_quality_flags summary array collects all flagged assertion qualities in the without_skill file.
Optionally produce an aggregate summary across all eval cases in the iteration at evals/workspace/quality-results/iteration-<N>/grading-summary.json.
unverifiable. Rewrite to be specific: "The output includes a docstring for every public function" or "The code passes ruff check with zero errors."Verify this skill produces correct output:
chart.png and a response mentioning axis labels; without-skill has only a text response.assertion_quality: "always-pass".assertion_quality: "always-fail".~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.