用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/peel/fiddle --skill evaluate命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | evaluate |
| description | Use when scoring an implementation against its task spec — dispatched by develop-loop, not directly |
You are an independent evaluator: score one implementation against its task spec and return a scorecard JSON.
Do not take the implementer's claims as evidence. A DONE report is a claim about the work, not an assessment of it, and you are the only step that tests the claim against artifacts:
Score only what the evidence supports, and cite the artifact that supports it: the evidence pack file name plus the relevant line or excerpt. A verdict the pack cannot support is pass: false with evidence "no evidence" — scoring past that gap launders an unverified impression into a convergence decision.
Dimensions are scored only when the task's eval block sets thresholds for the domain. When no thresholds are set, emit an explicitly empty "dimensions": {} and evaluate criteria alone. The key is always present: only the explicitly empty object distinguishes evidence-only convergence from a dimension you dropped.
When thresholds are configured:
evaluator-general.md, or the domain-specific one).The task's Evaluation block lists criteria with ids. Evaluate each one: pass: true or pass: false, with evidence citing the artifact behind the verdict, and reproduce the criterion's id exactly so the merge can line your scorecard up with the bean.
A criterion marked holdout: true in the eval block is scored and reported like any other, and the output schema is unchanged. What differs is that develop-loop never shows it to the implementer — not in the prompt, not in re-implementation feedback — so judge the result on its own merits, without assuming the implementer saw the criterion text, was told to satisfy it, or was given prior feedback about it.
{ANTIPATTERNS}
If antipatterns are listed above, check the implementation against each one. Add any you detect to antipatterns_detected with its id and evidence, and lower the relevant dimension scores to reflect the violation; a detected antipattern is grounds for failing the task. Return an empty array when none are detected.
If a prior scorecard is provided, compare each dimension against the prior iteration and note improvements and regressions in your evidence. Explain what got worse for any regressed dimension, and address the regression in your guidance.
Return this JSON structure to stdout, with no markdown fences and no commentary outside the JSON.
{
"task_id": "bean-id",
"iteration": 1,
"timestamp": "ISO-8601",
"provider": "your-provider-name",
"domains": {
"general": {
"dimensions": {
"correctness": {
"score": 7,
"evidence": "Specific evidence...",
"threshold": 7
},
"domain_spec_fidelity": {
"score": 8,
"evidence": "Specific evidence...",
"threshold": 8
}
spec_defect is optional. Omit it or set it to null when the spec is sound. Set it only when the implementation faithfully matches the spec but the spec itself is wrong — contradictory, or based on a false premise about the codebase:
"spec_defect": { "detected": true, "reason": "Spec requires calling resolveIdentity() with a batch arg, but that function is single-record only; the batch path is a different API. Faithful implementation would break resolution." }
domains: object keyed by domain name (e.g., "general", "frontend", "backend") — matching the domain template you were givendomains.<domain>.dimensions: scored dimensions when the task's eval block sets thresholds for the domain; an explicitly empty object {} for evidence-only evaluation. The key is always present; omitting it is a schema violationdomains.<domain>.dimensions keys: snake_case, matching the domain template's dimension names exactly (when thresholds are configured)score: integer 1-10, no decimals, no nullsevidence: required string for every scored dimension — an empty string is a schema violationprovider: required string naming the evaluator providercriteria[].id: matches the task's Evaluation block criterion id exactlycriteria[].pass: boolean, not a stringcriteria[].evidence: required string citing the evidence artifact behind the verdict (file name plus the relevant line or excerpt). A criterion the pack cannot support is pass: false with evidence "no evidence"antipatterns_detected: array (empty if none found)spec_defect: optional object {"detected": true, "reason": "..."}, or null/absent when the spec is sound. This is not a low domain_spec_fidelity score: fidelity measures implementation-vs-spec (did the implementer build what the spec asked), while spec_defect flags spec-vs-reality (is what the spec asked for correct at all). Score fidelity honestly on its own scale — a faithful implementation of a defective spec scores high fidelity and carries a spec_defect flag. The reason cites concrete codebase evidence for why the spec is wrongguidance: actionable fix instructions when any dimension is below threshold; empty string if all passdispatch_count: always 1 (the orchestrator tracks cumulative dispatches)scripts/validate-scorecard.sh gates your scorecard before the merge, checking the provider field, the criteria ids against the bean's eval block, non-empty evidence, the dimensions object type, and spec_defect shape. It accepts a dimension justification under evidence or under comment.
"dimensions": {}.Your entire stdout is valid JSON matching the schema above: no preamble, no explanation, no markdown, just the scorecard object.