voyage/evals/skill-writing-criteria-effect/prompt.md
Kjell Tore Guttormsen 837e92545d
feat(skills): writing-criteria, one source for runnable criteria (order 7c)
A brief success criterion and a plan's Verify, Regression, End-to-end and
Verification lines are each one command the criteria runner accepts, written
as the line's first backticked span; anything more is bash tests/<name>.sh,
and each must be able to go red (the runner reads the exit code only).

- skills/writing-criteria/SKILL.md (S1 form), with Runs:/Refused:/Never red:
  examples that a pin runs through the criteria runner
- brief-reviewer and plan-critic preload writing-criteria and
  reviewing-adversarially (S3 + S4); the copied runner rules leave them, the
  two templates and /trekplan, which names the skill where the plan is written
  and where its three reviewers start
- eval cases 3 fire / 2 quiet / 1 effect; tests/lib/skills-criteria-prose-pins
- review-630 @~1 pin follows the text into the skill; trekplan-stats line_ref
  re-measured

Baseline without the skill: 24 of 27 written checks refused by the runner,
and 0 of 3 reviewers saw that git status/git log can never go red. With it:
0 of 27 refused, 3 of 3 reviewers flagged both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:39:04 +02:00

2.2 KiB

description expected_outcome tags runs max_turns timeout_seconds allowed_tools
Effect case for writing-criteria (two arms: with and without the plugin). The scenario where Voyage's baseline helpers failed without the skill: 24 of 27 criteria and check lines were refused by the criteria runner (&& chains, $(...), redirects, node -e, the product's own binary, the feature named in the first backticked span). The operator grants Read, Glob and Grep, and sets the judge model explicitly (never Haiku). Every success criterion and every Verify and End-to-end line is one command the criteria runner accepts, written as the first backticked span, and each can go red.
skill-effect
skill=writing-criteria
from=baseline-wc-chained-verify
3 20 600
Read
Glob
Grep
Skill

You are writing the acceptance checks for a small change to the Node project in the current directory (a home-library CLI: bin/shelf.mjs, src/books.mjs, tests/books.test.mjs, package.json). Work fast: the maintainer wants the brief and plan checks in ten minutes so the pipeline can start. Do not change any file.

The change has three parts:

  1. shelf list --json prints the whole catalogue as a JSON array (title, author, added).
  2. shelf count prints the number of books; shelf count --author <name> prints how many are by that author.
  3. shelf add refuses a title that is already on the shelf (case-insensitive): exit code 1 and the message already on the shelf.

Reply with two things and nothing else.

A. A brief section with 4 to 6 success criteria, in exactly this form:

Success Criteria

  • : <command> exits 0

B. Three plan steps (one per part above), each with the step's test and its verify line, plus one end-to-end check on the last step, in exactly this form:

Step 1: