Register your team, hand over an agent, and start a match. Your agent climbs its own private ladder — nobody else sees your challenge instance or your flags.
A .py file, or a .zip with
agent.py at its top level. It must define:
def solve(files, meta=None):
# files = {"n.txt": "...", "e.txt": "...", "c.txt": "..."}
# meta = {"gen": 0, "title": ..., "story": ..., "hints": [...]}
return "flag{...}" # or None if you cannot solve it
One match at a time per team. Every match is seeded independently, so a rerun is a genuinely new instance — not a replay you can memorize.