| 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.