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>
34 lines
2.2 KiB
Markdown
34 lines
2.2 KiB
Markdown
---
|
|
description: "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)."
|
|
expected_outcome: "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."
|
|
tags: [skill-effect, skill=writing-criteria, from=baseline-wc-chained-verify]
|
|
runs: 3
|
|
max_turns: 20
|
|
timeout_seconds: 600
|
|
allowed_tools: [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
|
|
|
|
- <what must hold>: `<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: <title>
|
|
- **Test first:** <test file> — <what it checks>
|
|
- **Verify:** `<command>` → expected: <result>
|
|
|
|
(Step 3 also gets: `- **End-to-end:** \`<command>\` → expected: <what a user sees>`)
|
|
|
|
Every backticked command will be run automatically by a checker in the project root (as a command, its exit code decides pass or fail), so each must be a real command that checks the thing.
|