一键导入
eval
Use when testing skill correctness after editing, or wanting to verify all skills pass their eval checks
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when testing skill correctness after editing, or wanting to verify all skills pass their eval checks
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyze skill outcomes + user corrections để propose self-improvements. Triggers: 'improve', 'skill learning', 'why does this skill keep getting it wrong', '/improve [skill-name]'.
Close or merge a pull request the right way via a 4-step hygiene sequence whose order is load-bearing. Use when the user closes, merges, wraps up, lands, or finishes a PR — 'close this PR', 'merge and clean up', 'land this', 'wrap up the PR' — even if they don't spell out all four steps.
Nightly vault maintenance — fix broken wiki-links, detect orphan pages, sync directory indexes, flag stale GH-issue tasks. Use cho: vault maintenance, broken links, orphan pages, nightly cron, lint vault.
Use when mastering a book's content through autonomous extraction, validation against NotebookLM, and knowledge extension
Ultimate autonomous goal→proof loop: auto-grill a fuzzy goal, slice the grounded decisions into a parent PRD + tracer-bullet children, implement each with a TDD evaluator-regenerate loop, then deliver a per-acceptance-criterion PROOF report. Triggers: '/autodev <goal>', 'build this with proof while I'm away', 'autonomously ship and prove this'. For queue-and-walk-away (no drive-to-done, no proof) use /afk; to clarify with a human in the loop use /grill.
Use when verifying ingested book knowledge against NotebookLM, checking verification status, or managing audit flags before absorbing
| name | eval |
| description | Use when testing skill correctness after editing, or wanting to verify all skills pass their eval checks |
Run eval checks against brain-os skills to catch regressions. Uses the standard evals/evals.json format from the skill-creator framework.
/eval # List which skills have evals
/eval self-learn # Run eval on specific skill
/eval --all # Run eval on all skills with evals/evals.json
evals/evals.json in the target skill directoryprompt and expectationsSKILL.md and check each expectation against its contentself-learn (7 evals)
✓ #1 Phase 2 validation architecture
✓ #2 NotebookLM CLI commands
✗ #3 Question distribution — FAILED: "States 30% blind/cross-cutting questions"
✓ #4 Script references
✓ #5 Quality threshold
✓ #6 Note template format
✓ #7 Post-completion pipeline
6/7 passed. 1 FAILED.
Standard schema from skill-creator. Located at evals/evals.json inside each skill directory:
{
"skill_name": "self-learn",
"evals": [
{
"id": 1,
"prompt": "Explain the Phase 2 validation architecture",
"expected_output": "Lists 4 roles with information barriers",
"expectations": [
"Mentions Question Generator that creates questions without seeing answers",
"Mentions Knowledge Agent that answers ONLY from Obsidian notes",
"Describes information barriers preventing knowledge leaking"
]
}
]
}
When /eval <skill-name> is invoked:
${CLAUDE_PLUGIN_ROOT}/skills/<skill-name>/evals/evals.json${CLAUDE_PLUGIN_ROOT}/skills/<skill-name>/SKILL.mdWhen /eval --all:
evals/evals.jsonSkill prose IS code Claude executes verbatim (ai-brain#163: a recipe with an
unresolved $CLAUDE_PLUGIN_ROOT died silently in a detached shell). Every eval
run therefore also validates the fenced bash blocks, not just textual output:
PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/brain-os-marketplace/brain-os/*/ 2>/dev/null | sort -V | tail -1)}"; PLUGIN_ROOT="${PLUGIN_ROOT%/}"
bun run "$PLUGIN_ROOT/scripts/skill-bash-smoke.ts" <skill-name> # omit arg for --all
The tool extracts every ```bash block from SKILL.md, normalizes doc
placeholders (<N>, <tracker-repo>), then enforces:
bash -n must accept the block (broken quoting/heredoc/if-fi fails).CLAUDE_PLUGIN_ROOT must resolve it
with a :- glob fallback or :? assertion in the same block.Exit 0 = clean. Exit 1 = findings (report each as a failed eval line). Unit
tests for the tool live in scripts/skill-bash-smoke.test.ts.
Create evals/evals.json in your skill directory following the schema above. Each eval should test a critical aspect of the skill that would break if removed.
Follow skill-spec.md § 11. Append to {vault}/daily/skill-outcomes/eval.log:
{date} | eval | {action} | ~/work/brain-os-plugin | N/A | commit:N/A | {result}
action: eval (single skill) or eval-all (all skills)result: pass if all evals pass, partial if some fail, fail if errors prevent runningargs="{skill-name}", score={passed}/{total}