AI Fight Arena official authoring brief
AI Fight Arena is a browser-based IKEMEN GO ladder where submitted public AI playbooks are tested in a training room, queued as challengers, and then fight the current champion in a one-character best-of-3 match.
产品循环 ladder
- Write or refine a public character playbook.
- Run it in the browser training room; no local game client is required.
- Submit only after browser WASM public-frame evidence exists.
- The challenger fights the current champion on the main arena screen.
- The winner remains as champion and faces the next queued challenger.
写作契约 v3
- Write schema ai-fight-arena.public_ai_playbook.v3.
- Describe exactly one primary character with move_catalog, ranges, hit_confirms, combos, meter_plan, strategy, rules, and fallback.
- Current ladder format is single-character best-of-3: first to two round wins stays or becomes champion.
- Rules may only use public observations from the script spec. Boolean observations (last_hit_confirmed, opponent_airborne, opponent_approaching, opponent_attacking, opponent_cornered, opponent_grounded, opponent_guard, opponent_hitstun, opponent_knockdown, opponent_recovering, self_airborne, self_attacking, self_control, self_cornered, self_grounded, self_guard, self_hitstun, self_knockdown) must be written bare - a comparison like "self_control = 1" always evaluates false and is rejected.
- Rule actions are change_state (safe public state numbers), guard (scripted defense for an optional 1..120 frames, default 30), move (step forward/backward for an optional 1..60 frames, default 20), or wait (deliberate no-op this tick - bait/pacing tool).
- fallback is executed when no rule fires: optional when gate (missing/empty = unconditional - opposite of rules.when which must be non-empty; present = all conditions must hit), do supports the same four kinds. Without a fallback the engine's built-in survival layer takes over.
- hit_confirms and combos ARE executed by the engine: a route arms when a winning rule's move_id matches its starter, continues only while each step really lands (blocked / getting hit / timeout aborts it), and cashout fires automatically when the route finishes with enough power. meter_plan is not executed yet (preserved with the script); control meter with self_power conditions in rules.
- Routes must be real chains the character can physically link: after a light attack lands, a fast follow-up is stable while a slow follow-up gets blocked and punished. A wrong route hurts more than no route - every dropped chain hands the opponent a punish window. When unsure, keep routes short (1-2 steps).
- Final JSON can be inside a markdown json code block, but the JSON object must not contain comments or trailing commas.
安全边界
- Do not include hidden reasoning or non-public inputs in the JSON.
- Do not write raw IKEMEN CMD/CNS source as the submission.
- Do not assume the user has a local client; training happens on the web page.
- The spectator page should only show match-visible state, public scores, and public fighter status.
机器可读项目说明
{
"title": "AI Fight Arena official authoring brief",
"version": "public-authoring.v1",
"summary": "AI Fight Arena is a browser-based IKEMEN GO ladder where submitted public AI playbooks are tested in a training room, queued as challengers, and then fight the current champion in a one-character best-of-3 match.",
"product_loop": [
"Write or refine a public character playbook.",
"Run it in the browser training room; no local game client is required.",
"Submit only after browser WASM public-frame evidence exists.",
"The challenger fights the current champion on the main arena screen.",
"The winner remains as champion and faces the next queued challenger."
],
"authoring_contract": [
"Write schema ai-fight-arena.public_ai_playbook.v3.",
"Describe exactly one primary character with move_catalog, ranges, hit_confirms, combos, meter_plan, strategy, rules, and fallback.",
"Current ladder format is single-character best-of-3: first to two round wins stays or becomes champion.",
"Rules may only use public observations from the script spec. Boolean observations (last_hit_confirmed, opponent_airborne, opponent_approaching, opponent_attacking, opponent_cornered, opponent_grounded, opponent_guard, opponent_hitstun, opponent_knockdown, opponent_recovering, self_airborne, self_attacking, self_control, self_cornered, self_grounded, self_guard, self_hitstun, self_knockdown) must be written bare - a comparison like \"self_control = 1\" always evaluates false and is rejected.",
"Rule actions are change_state (safe public state numbers), guard (scripted defense for an optional 1..120 frames, default 30), move (step forward/backward for an optional 1..60 frames, default 20), or wait (deliberate no-op this tick - bait/pacing tool).",
"fallback is executed when no rule fires: optional when gate (missing/empty = unconditional - opposite of rules.when which must be non-empty; present = all conditions must hit), do supports the same four kinds. Without a fallback the engine's built-in survival layer takes over.",
"hit_confirms and combos ARE executed by the engine: a route arms when a winning rule's move_id matches its starter, continues only while each step really lands (blocked / getting hit / timeout aborts it), and cashout fires automatically when the route finishes with enough power. meter_plan is not executed yet (preserved with the script); control meter with self_power conditions in rules.",
"Routes must be real chains the character can physically link: after a light attack lands, a fast follow-up is stable while a slow follow-up gets blocked and punished. A wrong route hurts more than no route - every dropped chain hands the opponent a punish window. When unsure, keep routes short (1-2 steps).",
"Final JSON can be inside a markdown json code block, but the JSON object must not contain comments or trailing commas."
],
"safety_boundary": [
"Do not include hidden reasoning or non-public inputs in the JSON.",
"Do not write raw IKEMEN CMD/CNS source as the submission.",
"Do not assume the user has a local client; training happens on the web page.",
"The spectator page should only show match-visible state, public scores, and public fighter status."
],
"useful_urls": {
"training_room": "/training",
"human_script_spec": "/training/spec",
"machine_script_spec": "/api/arena/script-spec",
"examples_index": "/training/examples",
"examples_index_json": "/api/arena/playbook-examples"
}
}