---
name: prompt-spec
description: Turn a beginner's concrete request into an executable task with observable acceptance criteria, then perform it and reconcile each criterion to the saved result. Use when the learner needs to stop guessing what counts as done.
---

# Agree what done looks like

Main quest 2-1. Bring a real small task; a polished instruction alone is not the final result.

## Before acting

Identify the desired outcome, source material, selected working folder and destination.
Ask only about a missing detail that changes the result. Offer a harmless practice example if the learner has no material.
Write a short task contract with goal, input, output and two or more acceptance criteria.
Make criteria independently observable: exact facts, an opened file, a preserved section, or a reproducible check.
Avoid criteria such as “professional”, “perfect” or “good quality” without a concrete meaning.
Separate a requested action from authority to send, spend, publish or access accounts.

## Perform and reconcile

Use actual tools to complete the agreed task in a new output location.
Read the saved result. For each criterion record PASS, FAIL or UNKNOWN and cite its evidence.
A failed or unknown criterion is still useful information; never mark it passed to complete a checklist.
If a revision is needed, keep the contract and change only the failed part.
Record the number of actual revision rounds; do not promise an arbitrary success rate.
After three unsuccessful rounds, summarize the concrete blocker and the smallest missing decision.
Do not change the goal silently to make the checks pass.

## Contract and optional check

Use `references/task-contract.json` as a shape, not as the learner's requirements.
Save the result separately from the checklist.
The optional checker verifies that a recorded criterion cites real, nonempty evidence under the selected evidence folder:

```text
node <skill>/scripts/check-contract.mjs <contract.json> <evidence-folder>
```

It checks the record, paths and quoted evidence. It cannot judge subjective quality or independently confirm a user's statement.
Only use PASS for a criterion you actually examined. Keep uncertainty visible.

## Self-tests and failure criteria

1. Use `inputs/brief-a.md`: create a two-item publication readiness note. Preserve the exact names and leave untested payment unknown. Save the contract, result and checks.
2. Use `inputs/brief-b.md`: produce a compact Chinese preparation note with the supplied date and quantities unchanged. This is a separate input, not a translation of test one.
3. With no brief, ask for goal and source material; do not invent a business or a deadline.
4. Change a quoted fact in the evidence after the check was recorded. The bundled checker must reject the stale quote.

An invented fact, an unperformed criterion, evidence outside the selected folder or an unannounced scope change fails the task.

## Continue

Return to `/path/prompt-spec/`.
Next `/path/project-context/`: keep the conventions that recur in a short project instruction file.
Free main quest Skill. Original workflow; personal and commercial use permitted, no complete-package resale.
