# db/seed/ — Per-type challenge seed examples This folder holds one **example** per challenge type that documents the canonical JSON shape the corresponding Supabase table expects. > **Important:** the actual live seed data is NOT stored here. The > curated seeds live inside each generator at > `app/generators/.py` (the "Tier 4 safety net" in AGENTS.md). > The pool watcher in `app/main.py::populate_pool_background` runs > those generators automatically when the pool count drops below > `POOL_THRESHOLD`. If you want to **manually** insert a custom challenge (e.g. for a contest or to override a flaky AI generation), use one of the `*.example.json` files as a template and POST the row to Supabase directly: ```bash # from the project root curl -X POST "$SUPABASE_URL/rest/v1/code_fixing_challenges" \ -H "apikey: $SUPABASE_ANON_KEY" \ -H "Authorization: Bearer $SUPABASE_ANON_KEY" \ -H "Content-Type: application/json" \ -d @db/seed/code_fixing.example.json ``` Each example contains the **minimum** columns a generated row must have for the frontend to render it correctly. See `app/services/challenge_loader.py::map_*_row_to_training` for the full mapping contract.