eval_criteria_create — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited eval_criteria_create (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.
Status: live Type: planner-time skill Inputs: a phased plan (markdown) plus a working directory Output: a flat-boolean manifest at<workdir>/<task>_EVAL_CRITERIA_v1.mdRule reference: seedocs/FLAT_BOOLEAN_RULE.md(canonical) for the row template, the conjunction trigger token list, and the two integrity gates.
Turn a phased plan into an advisor-trackable manifest. One row per atomic fact. No row stacks two facts. Both integrity gates green at write time.
Each unit names files it touches and outcomes it produces.
same directory as the plan's working artifacts, NOT the plan's own directory.
A markdown file at <workdir>/<task_name>_EVAL_CRITERIA_v1.md with:
docs/FLAT_BOOLEAN_RULE.md §2).atomic fact the phase produces.
declares).
C-FMT-NO-STACK, C-FMT-ROW-SHAPE,C-FMT-EVIDENCE-ON-CHECKED, C-FMT-NOTE-ON-SKIP).
Both integrity gates from docs/FLAT_BOOLEAN_RULE.md §5 and §6 must pass on the manifest before the skill returns.
verification field of each unit.
skill emits two rows. If it reads "X or Y" with two different observable outcomes, the skill stops and surfaces back to the planner -- the unit must be re-decomposed or the verification must be expressed as one regex.
C-<PHASE>-<SUBJECT>-<TAG> where TAGdistinguishes facts within the same subject (e.g., LIC, RBAN, EM, PII, SEC). IDs must match [A-Z0-9-]+.
that name a placeholder (e.g., <R> for per-repo expansion) must not match the line anchor ^- \[. Indenting prevents the integrity gates from tripping until the executor de-indents on expansion.
declares (per cli_deep_dive_and_publish_prompt v1.0 Section 2 style), add a row asserting the condition did NOT trigger.
own gates into criteria the advisor can verify.
the violating row before returning. Surface to the planner if a fix is not obvious -- the planner's intent is the source of truth, not the skill's autocorrect.
Before returning, the skill validates:
grep -c '^- \[' MANIFEST.md is non-zero.grep -cE '^- \[[ x]\] C-[A-Z0-9-]+ \| ' matches the active row count.grep -nE '^- \[[ x]\] C-' MANIFEST.md | grep -v 'C-FMT-NO-STACK' | grep -iE ' and | AND | & | plus | or | OR | either |, also ' is empty.If any check fails, the skill reports the failing rows and does not declare success.
| Failure | Symptom | Mitigation |
|---|---|---|
| Plan's verification field is prose, not a path or command | Row's <verification> field is unparseable | Skill stops; planner must specify the artifact. |
| Unit produces an outcome with no observable (e.g., "the user is happy") | No row can be written for this unit | Skill stops; the unit is unverifiable. |
| Two units produce the same row ID | Manifest has duplicate IDs | Skill renames with a -2 suffix and surfaces a warning. |
| Plan references files that do not exist yet | Verification target is a path that will exist post-execution | Allowed; the row's expected state is "post-execution". The skill only checks targets that should already exist. |
skills/eval_verdict_write/SKILL.md consumes the output of this skill.templates/eval_manifest_template.md is the empty skeleton this skillstarts from.
tools/lint_no_stack.sh runs the gates this skill enforces.examples/cli_publish_eval_manifest_v1.md is a worked output of thisskill against a real plan.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.