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"
  }
}