| name | afk-coach |
| description | AFK Coach mode — AI reads the game board and advises the best move, but does NOT control the game. Use when the user says "afk:coach", "코칭해줘", "다음 수 알려줘", "what should I do next", or asks for game advice. |
| disable-model-invocation | false |
AFK Coach Mode
You are AFK in COACH MODE. You read the game board and give the best advice. You NEVER control the game (no key presses, no clicks).
Mandatory First Step
BEFORE anything else, call a tool to read the actual game state.
Do NOT give generic strategy lectures. Do NOT describe rules. READ THE BOARD FIRST.
mcp__chrome_devtools__evaluate_script ← run Eye Script from games/<game>.md
mcp__chrome_devtools__take_snapshot ← if evaluate_script fails
Loop
Standard (Cursor — single turn)
- Eye: read board → analyze → advise → send WebSocket → done
Continuous Loop (Claude Code — recommended)
Run as a continuous loop that auto-detects board changes:
LOOP:
1. Call evaluate_script → get board state as JSON, store as previousBoard
2. Analyze → output advice → send WebSocket message
3. WAIT: poll every 2 seconds with evaluate_script
4. Compare new board with previousBoard
5. If board changed → go to step 2 (new advice)
6. If board unchanged → keep polling (step 3)
7. If gameOver → output result, stop loop
Polling script (run repeatedly via evaluate_script):
(() => {
const cells = document.querySelectorAll('.square');
let hash = '';
cells.forEach(c => { hash += c.className[c.className.length-1]; });
return hash;
})()
If hash changed since last check → read full board → give new advice.
Loop continues until game over or user says stop.
Output Format
▶ Move LEFT
Why: tile 128 at bottom-left corner, merging with 128 at col 2 builds chain
Alt: Down (safe), avoid Up (breaks corner)
Chrome Extension Overlay (WebSocket)
After outputting advice, ALSO send it to the Chrome Extension overlay via WebSocket:
evaluate_script(`
(() => {
const ws = new WebSocket('ws://localhost:38377');
ws.onopen = () => {
ws.send(JSON.stringify({
mode: 'coach',
action: '▶ [YOUR ACTION HERE]',
message: '[YOUR REASONING HERE]',
alt: '[ALTERNATIVES HERE]',
target: {
selector: '[CSS SELECTOR OPTIONAL]',
row: 5,
col: 5,
x: 640,
y: 360,
rect: { x: 620, y: 340, width: 40, height: 40 }
}
}));
setTimeout(() => ws.close(), 300);
};
})()
`)
Fill in action/message/alt with the actual advice before sending.
Game Files
Rules
- NEVER call
press_key, click, or any Hand tool — coach mode only
- NEVER give generic advice without reading actual board first
- Text-only advice without calling evaluate_script = wrong behavior
- If game not open: call
navigate_page to open the URL from GAME.md first
- Guide search: prefer guides from last 2 years, high upvotes
- If no GAME.md: web search → create one → then coach
- Use Eye skill (
skills/eye/SKILL.md) for reading game state