Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 2.81 KB

File metadata and controls

23 lines (16 loc) · 2.81 KB

@README.md

Where environments live

  • examples/ is for vendor-facing reference implementations only. Every example must be extra_fields-driven: per-problem data (prompts, answers, rubrics) comes from problems-metadata.json / Taiga at runtime, not hardcoded in the image. For large per-problem assets (test suites, fixture files) use preloaded_files and put the in-container path in extra_fields. See README → Problems live in Taiga, not the container.
  • Debug/experimental envs and team-owned containers go in the monorepo at biome/biome/env_building/containers/ — not in this repo.

Keep the docs runnable

When a change alters a command, flag, tool, or workflow that appears in any README (root quick start, example READMEs, local-tunnel/, mcp_client/), update those docs in the same PR.

Building a new example environment

When asked to add a new example to examples/, do the full end-to-end flow — don't stop at "files written":

  1. Scope. Read an existing example in the same family (e.g. galculator-cu-typescript for a CU env in a non-Python language) and taiga-core/src/taiga/spec.py for the Grade contract.
  2. Build & local smoke. docker build --build-context taiga=../../ ..., then a stdio MCP smoke test (initializetools/listgrade_problem). See README → Building An Environment and MCP Server Specification.
  3. Dockerfile consistency. pytest taiga-core/tests/test_dockerfile_consistency.py. The "Base setup" and "Layer 1: Computer use" sections must be byte-identical across all examples — copy them verbatim from a sibling.
  4. Push to registry. See README → Pushing Docker Images. Pin a timestamped tag in problems-metadata.json (:latest is not supported).
  5. Verify on the hosted platform. Create environment → problem version → run a job via the API (spec at https://taiga.ant.dev/api/docs/openapi.json, concepts at https://taiga.ant.dev/api/wiki/file?path=concepts.md). Check the job's final_score.
  6. Local-tunnel interactive. See local-tunnel/README.md to drive a sampling session against your local container.
  7. Wire into CI. For CU envs, add the problem-set name to EXPECTED_WINDOWS in taiga-core/tests/test_cu_startup.py and commit a baseline snapshot. Run pytest -m validate_env --problems-metadata-path=examples/<env>/problems-metadata.json (see taiga-core/README.md).
  8. PR. Include the taiga.ant.dev job link as proof the environment runs end-to-end.