npx claudepluginhub thunderconch/tkm --plugin tkmThis skill uses the workspace's default tool permissions.
Dev-only test harness for the evolution AskUserQuestion flow. No tmux, no spawning — the user triggers the evolution prompt manually in this live session. Verify and restore run automatically once the evolution cycle completes; the user only has to pick the scenario and click through the `AskUserQuestion` UI.
Conducts Socratic interview with ambiguity scoring across goal, program, evaluation, and constraints to generate initial.py, evaluate.py, config.json for evolution tasks.
Explains Evolving Lite's feedback loops, tiered hook activation, and commands. Auto-triggers on queries like 'how does this work' or 'what is Evolving Lite'.
Share bugs, ideas, or general feedback.
Dev-only test harness for the evolution AskUserQuestion flow. No tmux, no spawning — the user triggers the evolution prompt manually in this live session. Verify and restore run automatically once the evolution cycle completes; the user only has to pick the scenario and click through the AskUserQuestion UI.
P="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/marketplaces/tkm 2>/dev/null || ls -d ~/.claude/plugins/cache/tkm/tkm/*/ 2>/dev/null | sort -V | tail -1)}"
--list → "$P/bin/tsx-resolve.sh" "$P/src/cli/test-evolve.ts" --list, show output, stop.--restore → same, --restore. Emergency cleanup when an earlier cycle did not auto-restore (e.g. the session was killed mid-test).--help → same, --help.--verify is present in the CLI but should not be invoked directly by users; it is called automatically as part of the lifecycle below.$ARGUMENTS is a scenario name)Run: "$P/bin/tsx-resolve.sh" "$P/src/cli/test-evolve.ts" --setup ${ARGUMENTS}
Show the setup output verbatim.
Tell the user, verbatim:
Party seeded for ${ARGUMENTS}. Send any short message to trigger the Stop-hook evolution prompt. After you click an option (or
Refuse), I'll auto-verify and auto-restore.
Stop the turn here. Do not pre-run verify or restore.
When the user sends any message after setup, the Stop hook emits {"decision":"block", "reason": ...} and Claude Code feeds the block's reason field back as the next turn's instruction. Within that same turn you MUST complete the entire cycle below without stopping early — do not wait for another user turn between steps, do not acknowledge and stop before the cycle finishes.
In order, without pausing:
AskUserQuestion exactly as the block reason directs (one subquestion per pokemon; question text copied verbatim; up to 4 buttons with the 3-eligible-plus-Refuse rule; remaining targets listed inline)."$P/bin/tsx-resolve.sh" "$P/src/cli/tokenmon.ts" evolve <pokemon> <target> in a single Bash call.Refuse button or Other containing refuse/no/cancel/거부 → skip the evolve call.All evolution targets list; if it matches, run evolve with the resolved target; if it does not match, reply with a short "I didn't recognize that" and re-invoke the same AskUserQuestion (max two re-prompts, then treat as Refuse)."$P/bin/tsx-resolve.sh" "$P/src/cli/test-evolve.ts" --verify"$P/bin/tsx-resolve.sh" "$P/src/cli/test-evolve.ts" --restoreCritical: --restore must run even when --verify reports FAIL. The user's real state/config/hooks.json only become safe again after the restore completes.
| Command | Behavior |
|---|---|
/tkm:test-evolve branch-eevee | Setup → user triggers → auto verify + auto restore |
/tkm:test-evolve --list | List all 6 scenarios |
/tkm:test-evolve --restore | Emergency restore (only needed if auto-restore was skipped) |
src/test-scenarios/*.json)branch-eevee — full 8-way branch, 3 eligible via stones + 2 via friendship; exercises the overflow rulesingle-charmander — single-chain, expect Charmeleonmulti-3 — 3 pokemon ready, batch in one AskUserQuestionoverflow-5 — 5 pokemon ready, first 4 this turn, 5th deferredrefuse-persist — user refuses, verify evolution_prompt_shown is setaccept-clear-reprompt — accept → flag cleared on the new pokemon key