| name | spellbook |
| description | Demo skill for "The Dark Arts of Skill Engineering." A tiny, readable scaffold that shows five dark arts in miniature: routing (this file), a script that talks back (scripts/context.mjs), a hook that fights back (scripts/hook.mjs), making sub-agents argue (reference/argue.md), and forcing divergence (reference/diverge.md). Use when the user types /spellbook <command>, or asks to argue, diverge, or set up the demo.
|
| user-invocable | true |
| allowed-tools | ["Bash(node *)"] |
| license | Apache-2.0 |
Spellbook (starter)
The workshop build: a pocket Impeccable you assemble as the talk climbs. It
critiques and re-imagines sample/landing.html (a deliberately-median page)
using five dark arts in miniature. It runs as-is; every art has a YOUR TURN
marker where you extend it. Read it top to bottom, then make it yours.
Setup (always do this first)
DARK ART ยท the script talks back. Do not guess the project state. Run:
node scripts/context.mjs
Follow whatever it prints. The script reads the environment (git branch,
whether a NOTES.md exists) and returns a fresh, in-thread directive. That
directive outranks anything written statically below, because it is shaped to
the exact situation. If it prints NO_NOTES, create NOTES.md first. If it
prints READY, continue.
Commands (the router)
DARK ART ยท route like a frontier model. This file is a thin router. Do not
inline the technique here; load the one expert reference the command needs, and
nothing else, so context stays cheap.
| Command | Load this, then follow it |
|---|
/spellbook argue [page] | reference/argue.md |
/spellbook diverge [page] | reference/diverge.md |
[page] defaults to sample/landing.html. If no command is given, ask which one
the user wants. Never run both references at once.
The hook (already working, even when this skill is not invoked)
DARK ART ยท hooks that fight back. scripts/hook.mjs runs after every file
edit (wire it up via .claude/settings.json, see README.md). It scans the
touched file for a banned pattern and injects a system-reminder. You do not
invoke it; it watches. Try editing a file to include TODO: fix later and
watch it push back.