{"slug":"course-storytelling","title":"course-storytelling","summary":"Use when lesson or course content is correct but forgettable and a concept has to LAND: profiles the learner, breaks the blocking false belief, then rebuilds it as epiphany story → named model → grounded analogy → proof → so-what. NOT outcomes, assessment or module order (that is","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-02T16:37:49.363627Z","repo":{"url":"https://github.com/ericrisco/rsc-harness","stars":141,"forks":11,"license":"MIT","updatedAt":"2026-10-02T14:54:09Z"},"bodyHtml":"<h1>Eval harness — <code>course-storytelling</code></h1>\n<p>This is an <strong>agent-run</strong> eval, not a shell script. You drive a Claude Code agent\n(or equivalent) and judge its behaviour against <code>cases.yaml</code>. There is no\nautomated grader here; a human or a judge-agent reads the transcript and scores it.</p>\n<p><code>cases.yaml</code> has three blocks: <code>should_trigger</code> (6), <code>should_not_trigger</code> (5),\nand <code>capability</code> (2 scenarios with rubrics).</p>\n<h2>A. Triggering accuracy</h2>\n<p>Goal: the skill fires on real teaching-narrative work and stays quiet on near-misses.</p>\n<ol>\n<li>Load <strong>only</strong> <code>course-storytelling</code> into the agent (no sibling skills loaded,\nso a miss can't be masked by another skill picking up the slack).</li>\n<li>For <strong>each</strong> prompt in <code>should_trigger</code> and <code>should_not_trigger</code>, start a fresh\nsession and paste the prompt verbatim. Run <strong>3–5 trials</strong> per prompt (the\ntrigger decision is stochastic).</li>\n<li>Record per trial:\n<ul>\n<li><code>should_trigger</code> → PASS if the agent invokes/announces <code>course-storytelling</code>.</li>\n<li><code>should_not_trigger</code> → PASS if it does <strong>not</strong> invoke it. Bonus: it routes to\nthe <code>route_to</code> sibling named in the case (or correctly declines when <code>none</code>).</li>\n</ul>\n</li>\n<li><strong>Pass bar: ≥90% correct decisions</strong> across all trials (both blocks combined).\nAny prompt that fails on a majority of its trials is a real defect — fix the\nSKILL.md description/trigger list, don't loosen the case.</li>\n</ol>\n<h2>B. Capability uplift (with vs without)</h2>\n<p>Goal: the skill <strong>measurably improves</strong> the teaching output, not just fires.</p>\n<ol>\n<li>For each <code>capability</code> scenario, run it <strong>twice</strong>:\n<ul>\n<li><strong>WITHOUT</strong> the skill (baseline — agent answers from general knowledge).</li>\n<li><strong>WITH</strong> <code>course-storytelling</code> loaded.</li>\n</ul>\n</li>\n<li>Score each output against that scenario's <code>must_include</code> rubric: fraction of\ncheckable points actually present.</li>\n<li><strong>Pass bar:</strong>\n<ul>\n<li>WITH the skill: <strong>≥80% of rubric points covered.</strong></li>\n<li>The WITH score must <strong>clearly beat</strong> WITHOUT (expect the baseline to skip the\nlearner-grounding gate, invent proof, state the insight instead of building an\nepiphany, and end on a summary — all rubric misses).</li>\n<li>Scenario 2 specifically checks the <strong>hard STOP</strong>: without the skill the agent\nwill usually just answer; with it, it must refuse-and-interview first.</li>\n</ul>\n</li>\n</ol>\n<h2>Honesty notes</h2>\n<ul>\n<li>Trials are stochastic — report the actual trial counts and pass rates, don't\nround a 2/5 up to \"passes\".</li>\n<li>A <code>should_not_trigger</code> that fires is as much a defect as a <code>should_trigger</code> that\nmisses; both go in the report.</li>\n<li>If a case is wrong (ambiguous prompt, sibling overlap is genuinely 50/50), fix\n<code>cases.yaml</code> and say so — don't quietly grade around it.</li>\n<li>Capability grading is judgement, not grep. The <code>scripts/verify.sh</code> in the skill\nonly covers the greppable subset (jargon/story/name flags); the rubric here is\nthe real bar.</li>\n</ul>\n","files":[{"path":"evals/cases.yaml","sizeBytes":5813,"isText":true},{"path":"evals/README.md","sizeBytes":2815,"isText":true},{"path":"references/brunson-frameworks.md","sizeBytes":11330,"isText":true},{"path":"references/concept-landing-recipe.md","sizeBytes":7476,"isText":true},{"path":"references/course-analysis.md","sizeBytes":7073,"isText":true},{"path":"references/learner-grounding.md","sizeBytes":9376,"isText":true},{"path":"references/mental-models.md","sizeBytes":6951,"isText":true},{"path":"scripts/verify.sh","sizeBytes":9673,"isText":true},{"path":"SKILL.md","sizeBytes":14506,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-02T16:39:01.666545Z","sha256":"5E1CDBA58A022CBF8D37663F673CF8A0E8297A47CE5D61E35AB132FB9CA20FD7","sizeBytes":33378},"review":null,"source":{"repositoryUrl":"https://github.com/ericrisco/rsc-harness","path":"skills/course-storytelling","license":"MIT","commit":"953fef5189c9991ddc7274a869d3c52aa73150fa","subtreeSha":"861263744381900A62F861A1E319ADD18E696B690FA84E2C6D707617454A1969","lastSyncedAt":"2026-10-02T16:37:39.417112Z"},"reviewedAt":"2026-10-02T16:41:57.8296Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/ericrisco/rsc-harness/tree/main/skills/course-storytelling"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ericrisco-rsc-harness@llmmart"},{"target":"git","command":"git clone https://github.com/ericrisco/rsc-harness.git"}]}