一键导入
eval-a-skill
Scaffold a structurally valid eval triplet for a target skill under .ai/evals/. CI checks structure only; the LM-judge runs out-of-band, never in CI.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scaffold a structurally valid eval triplet for a target skill under .ai/evals/. CI checks structure only; the LM-judge runs out-of-band, never in CI.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Bootstrap AI-ready repo governance, traceability, cascade, catalog audits, validation. Deprecated compatibility aliases: init-ai-repo, ai-sdlc-init. Use when setting up AI SDLC.
Deprecated compatibility alias for ai-catapult-init. Use only when legacy prompts invoke "ai-sdlc-init"; otherwise use "ai-catapult-init".
Ship a northstar handoff's goals in an ai-catapult-init repo — ultragoal one-PR-per-goal, deterministic engine-pick, peer review, CI gate, fail-closed merge, cascade closure.
Deprecated compatibility alias for ai-catapult-init. Use only when legacy prompts invoke "init-ai-repo"; otherwise use "ai-catapult-init".
Intake intent into a tracked, sliced plan in an ai-catapult-init repo — deep-interview + skippable grill-me, always raise an issue, ralplan, write the A→B handoff.
Configure AGENTS/CLAUDE and docs/agents for tracker, triage labels, and domain docs. Use before issue, PRD, triage, TDD, or diagnosis skills.
| name | eval-a-skill |
| description | Scaffold a structurally valid eval triplet for a target skill under .ai/evals/. CI checks structure only; the LM-judge runs out-of-band, never in CI. |
Given a TARGET skill, scaffold the eval triplet under .ai/evals/<skill>/,
matching the P0 eval shape (see ai-catapult-init/modules/evals.md and the golden
fixture reference/fixtures/v3/standalone/.ai/evals/example-output-eval/).
Run the generator:
python3 eval-a-skill/scaffold-eval.py --skill <target> --root .
This writes three artifacts and makes no model or network call. Re-running is idempotent — it rewrites the triplet in place, never duplicates.
| Artifact | Purpose |
|---|---|
.ai/evals/<skill>/evalset.json | Labelled cases: schema_version, stable set_id, kind (output or trajectory), and a non-empty cases array. |
.ai/evals/<skill>/rubric.md | Required scoring rubric. Criteria, dimensions, weights summing to 1.0, and a passing threshold. |
.ai/evals/<skill>/judge-config.json | LM-judge harness stub: judge tier, mode, harness, evaluates, threshold, and execution: out-of-band. |
After scaffolding, fill the rubric and cases with behavior specific to the target skill. A missing or empty rubric fails the eval-coverage gate.
In CI the bar is structural only and offline: the triplet must exist and be
well-formed (both JSON files parse and carry their required keys; the rubric is
non-empty). CI performs no model or network call. This mirrors the eval-coverage
gate in ai-catapult-init/modules/ci-policy.md.
Validate the scaffolded triplet structurally:
python3 -m json.tool .ai/evals/<skill>/evalset.json >/dev/null
python3 -m json.tool .ai/evals/<skill>/judge-config.json >/dev/null
test -s .ai/evals/<skill>/rubric.md
CI proves the eval is declared, not that it passes. Eval quality is a separate, out-of-band step.
The LM-judge that scores the target skill against the rubric runs
out-of-band, outside CI, and is never invoked in CI. judge-config.json
declares execution: out-of-band and ships a non-executing stub harness: it
documents the shape an out-of-band runner consumes, nothing more.
The opt-in out-of-band runner (Option B in the plan) is the only path that
actually invokes the judge. Run it manually, away from CI, and record the
judgment as evidence — see the worked example
reference/fixtures/v3/standalone/.ai/evals/example-output-eval/judgment-demo.json
and its discoverable offline checker tests/lm_judge_demo_test.sh. The recorded
judgment carries a per-criterion score, the rubric-weighted aggregate, and a
verdict against the passing threshold.
.ai/evals/coverage-exceptions.json.