From harness-claude
Turn a repeatable workflow observed this session into a PROPOSED reusable skill — draft it, evaluate it against the rubric, and stage it for your approval. Never writes into skills/. Opt-in; not wired into the default pipeline. Use when a Stop candidate appears or a workflow felt worth keeping.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-claude:extractThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Goal: capture a repeatable workflow as a *candidate* skill a human can review and promote.
Goal: capture a repeatable workflow as a candidate skill a human can review and promote. This closes the loop the Stop detector opens — it never auto-creates a skill (the v0.1 staging rule). The output is a proposal, not a live skill.
Opt-in. No default-pipeline skill or hook invokes
/extract. Running it is always explicit and changes no baseline behavior. (v0.3 AC-E4; preserves the staging rule.)
.claude/skills-staging/candidates.md (the detector found a
tool/skill subsequence that recurred this session), or.claude/skills-staging/candidates.md for the detected
sequence + recurrence count. Cross-check what actually fired in
.claude/traces/<date>.jsonl (skills, subagents, MCPs). Skim the relevant transcript
span to recover the purpose — the sequence names the steps, not why.SKILL.md with valid frontmatter (name,
description) and numbered steps that capture the workflow. Pick a name that does
not collide with an existing skills/*/SKILL.md.
.claude/skills-staging/<slug>/SKILL.md. Never create or edit
anything under skills/ (or any live skill dir).node scripts/eval/extract-rubric.js .claude/skills-staging/<slug>/SKILL.md
It scores five criteria and exits 0 (all PASS, none manual — not reachable until the
AC-E3 benchmark lands) · 1 (a check FAILED) · 2 (no FAIL, MANUAL criteria remain).
/benchmark produced
.claude/eval/benchmarks/<name>.json for this draft, R5 reports PASS/FAIL from it;
otherwise it degrades to MANUAL. Run /benchmark --component <draft-name> to close it..claude/skills-staging/<slug>/eval.md
alongside the draft..claude/skills-staging/<slug>/ (draft + eval note) and that promoting it into skills/
is their explicit call. Do not promote it yourself.extract-rubric.js runs no shell and never executes the draft's body — an ```eval
fence inside a draft is inert text to it, so there is no check output to leak.--list is the safe inspect path: node scripts/eval/extract-rubric.js --list <draft>
prints the parsed name/description + which criteria are deterministic vs. MANUAL./benchmark, fork + worktree, pass@k/pass^k) feeds the R5 seam in
extract-rubric.js: it reads the benchmark artifact if present, else R5 stays MANUAL and
never blocks.A proposal (SKILL.md draft + eval.md) is staged under .claude/skills-staging/<slug>/,
the rubric shows no FAIL, and every MANUAL criterion is adjudicated with evidence. Promotion
into skills/ remains a human decision — never automatic.
npx claudepluginhub vasuag09/harness-claude --plugin harness-claudeProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.