This repository is the public benchmark registry for Kata.
It stores the benchmark tasks that miners are allowed to see, plus the public frontier manifest that describes the live public pool policy.
It does not store the current king agent code. The public king lives in the
kata repo under kings/<repo-pack>/<mode>/.
The live system is meant to be split like this:
- public
kata- miner PRs under
submissions/ - public current king under
kings/
- miner PRs under
- public
kata-benchmarks- public benchmark tasks
frontier.json
- private
kata-benchmarks-private- hidden holdout tasks
frontier.private.json
GitHub cannot hide only one folder inside a public repo. If you want miners to see public tasks and the current king, but not the hidden holdouts, you need a separate private benchmark repo.
This public repo is the source of truth for visible benchmark data:
- repo benchmark packs
- public task definitions
- task validation scripts
- path-scope rules
- public pool metadata
- public
frontier.json
The current king code does not belong here.
benchmarks/
<repo-pack>/
benchkit-pack.json
<task-id>/
task.md
repo_ref.txt
checks.sh
rubric.md
allowed_paths.txt
forbidden_paths.txt
benchkit.json
task_weight.txt # optional
frontier.json
Private registry example:
benchmarks/
<repo-pack>/
<private-task-id>/
task.md
repo_ref.txt
checks.sh
rubric.md
allowed_paths.txt
forbidden_paths.txt
benchkit.json
task_weight.txt # optional
frontier.private.json
The registry root is identified by kata-benchmark-registry.json.
For the current Taopedia lane:
frontier.jsondescribes the public side- public task selection is
random_live primary_task_count = 20frontier.private.jsondescribes the private side- private holdout pool size is
10
So each duel uses:
20random public live tasks10fixed live private holdout tasks
Current promotion rule:
- public side:
- candidate must solve at least
2more public tasks than king
- candidate must solve at least
- private side:
- candidate must solve at least
1more hidden task than king
- candidate must solve at least
- Add or update public task folders under
benchmarks/<repo-pack>/. - Keep
kata-benchmark-registry.jsonaligned with the active repo-packs. - Keep
frontier.jsonaligned with the intended live public pool policy. - Keep matching hidden holdout tasks and
frontier.private.jsonin the private benchmark repo. - Validate the pack from
kata.
Example:
cd ../kata
export KATA_BENCHMARKS_ROOT=../kata-benchmarks
export KATA_PRIVATE_BENCHMARKS_ROOT=../kata-benchmarks-private
uv run python -m kata eval-pack validate --path e35ventura__taopedia-articlesDo not expose a hidden task publicly just because one duel finished.
A private task should move public only after both are true:
- a newer hidden pool has already taken over
- no in-flight or future duel can still reference the old pool
That usually means:
- maintainers rotate the private pool
- the old hidden tasks become retired
- only then may they be exported into the public side
- keep benchmark tasks pinned to real repo work and stable repo refs
- prefer objective checks over subjective judging
- do not commit placeholder scaffold tasks as live benchmarks
- do not store current king code in this repo