Spaces:
Running on Zero
Running on Zero
| ## CRITICAL DESIGN PRINCIPLE (READ BEFORE GENERATING) | |
| The model being trained must generalize to **any city it has never seen**. | |
| That means the training data must teach **feature-to-task reasoning**, NOT city-specific memorization. | |
| **Wrong approach (do NOT do this):** | |
| > Input: `city = "Paris"` β Output: `"Find the Eiffel Tower and take a photo"` | |
| **Correct approach:** | |
| > Input: `city = "Paris", landscape = ["iconic_landmark", "river_waterfront", "dense_urban"]` | |
| > β Output: `"Find the most recognizable vertical structure visible from multiple districts and photograph it from street level"` | |
| **KEY FIX #1: The Landmark Rule (from conflict audit fix #1)** | |
| Landmark tasks must reference observable structural properties, NOT tourist salience or proper nouns. | |
| **ALLOWED landmark task patterns:** | |
| - "Find the tallest vertical structure visible from the main plaza. Photograph its base from ground level. How many distinct building materials can you identify?" | |
| - "Locate the widest pedestrian path in the area. At its midpoint, photograph the most commonly-spoken languages on signs." | |
| - "Find a crossing point where two major pedestrian routes intersect. Stand at the intersection center and photograph the four cardinal directions." | |
| **FORBIDDEN landmark task patterns:** | |
| - "Find the Eiffel Tower" β proper noun, city-specific | |
| - "Find the most iconic structure" β "iconic" = tourist salience, city-specific | |
| - "Find the symbol of this city" β requires city identity knowledge | |
| **VERIFICATION:** For every task using the `iconic_landmark` tag, the task description must make sense if you erase the city name. No proper nouns allowed. | |
| --- | |
| ## SCHEMA DEFINITION | |
| ```json | |
| { | |
| "id": "string β format: SH-{CITY_CODE}-{INDEX:04d}, e.g. SH-TYO-0042", | |
| "input": { | |
| "game_type": "scavenger_hunt", | |
| "location": { | |
| "city": "string β city name", | |
| "country": "string β country name", | |
| "city_code": "string β 3-letter uppercase code, e.g. PAR, TYO, NYC, CPT", | |
| "landscape_tags": [ | |
| "array of strings β structural environment types present in this city area.", | |
| "Choose 3β6 from the controlled vocabulary below.", | |
| "These tags are the PRIMARY signal the model learns task generation from." | |
| ], | |
| "urban_density": "string β one of: sparse | suburban | mixed | dense | hyper_dense", | |
| "climate_zone": "string β one of: tropical | arid | mediterranean | temperate | continental | polar", | |
| "area_type": "string β one of: city_center | historic_district | waterfront | park_district | mixed_residential | university_campus | market_district | industrial_repurposed" | |
| }, | |
| "players": { | |
| "count": "integer β 2 to 20", | |
| "team_count": "integer β 1 to 5 (1 = solo/all vs all, >1 = team mode)", | |
| "age_group": "string β one of: children_only | teens | adults | mixed_family | mixed_adults", | |
| "mobility": "string β one of: standard | limited (limited = no stairs, no long distances)" | |
| }, | |
| "preferences": { | |
| "duration_minutes": "integer β 30, 45, 60, 90, or 120", | |
| "difficulty": "string β one of: easy | medium | hard", | |
| "theme": "string β one of: observation | history | social | nature | urban_exploration | photography | logic", | |
| "allow_transport": "boolean β if false, all tasks must be walkable" | |
| } | |
| }, | |
| "output": { | |
| "game_title": "string β a creative, thematic title for this specific game instance", | |
| "rules": { | |
| "objective": "string β one sentence describing the win condition", | |
| "scoring_method": "string β one of: first_to_finish | point_accumulation | timed_bonus (MUST match decision tree)", | |
| "task_reveal_mode": "string β one of: sequential | all_at_once | gated_by_points", | |
| "team_rules": "string or null β team-specific rule if team_count > 1, else null", | |
| "time_limit_minutes": "integer β matches preferences.duration_minutes", | |
| "disqualification_conditions": ["array of strings β specific actions that void a team/player"] | |
| }, | |
| "safety_constraints": { | |
| "exclusion_zones": ["array of strings β types of locations tasks must never send players to (MUST include: private_property, active_roadway, construction_sites, restricted_government_buildings)"], | |
| "physical_limits": ["array of strings β physical actions that are prohibited (MUST include: no climbing, no jumping, no water entry, no restricted building entry)"], | |
| "high_risk_conditions": [ | |
| { | |
| "condition": "string β type of risk (e.g., water_proximity, road_crossing, religious_site_exterior, steep_terrain)", | |
| "applies_if": "string β condition for this risk to apply", | |
| "task_restriction": "string β how tasks must be adapted", | |
| "supervision": "string β supervision guidance" | |
| } | |
| ], | |
| "climate_advisory": "string or null β climate-specific safety notes (from conflict fix #3)", | |
| "adult_supervision_required": "boolean", | |
| "notes": "string or null" | |
| }, | |
| "tasks": [ | |
| { | |
| "task_id": "string β format T{INDEX:02d}, e.g. T01, T02", | |
| "title": "string β short name for this task (shown on card UI)", | |
| "description": "string β full player-facing instruction. CRITICAL: Must NOT contain proper nouns (city names, landmarks, brands). Must be achievable using ONLY the landscape_tags present in input. (from conflict fix #1)", | |
| "landscape_tags_used": ["subset of input.location.landscape_tags that this task relies on"], | |
| "task_type": "string β one of: find_and_photograph | observe_and_answer | collect_and_return | reach_and_verify | social_interaction | timed_challenge", | |
| "difficulty_contribution": "string β one of: easy | medium | hard", | |
| "points": "integer β 10 | 20 | 30 | 50 based on difficulty_contribution", | |
| "completion_proof": "string β how a player proves this task is done (photo, verbal answer, physical item, GPS checkin, etc.)", | |
| "estimated_time_minutes": "integer β realistic time budget for this single task (max 20β30 min depending on type)", | |
| "hints": { | |
| "hint_1": "string β directional nudge, 5β15 words, vague location hint, NO proper nouns (from conflict fix #4)", | |
| "hint_2": "string β specific clue, 15β30 words, describes feature to look for, NO proper nouns", | |
| "hint_3": "string β near-explicit solution, 30β50 words, specific action to complete, NO proper nouns" | |
| }, | |
| "safety_flags": ["array of strings β any safety notes specific to this task, empty array if none"] | |
| } | |
| ], | |
| "task_count": "integer β must equal tasks array length", | |
| "total_possible_points": "integer β sum of all tasks[].points (+ bonus if present)", | |
| "max_deductible_points": "integer β task_count Γ 10", | |
| "minimum_possible_points": "integer β total_possible_points β max_deductible_points", | |
| "bonus_task_eligible": "boolean β true only if difficulty=hard AND task_count >= 7 AND age_group != children_only", | |
| "bonus_task": { | |
| "description": "string or null β ONE optional high-risk TIMED CHALLENGE task worth 50 points. Only present if bonus_task_eligible=true. CRITICAL: MUST be timed_challenge type only, NOT logic puzzle (from conflict fix #6). Null otherwise.", | |
| "completion_proof": "string or null", | |
| "points": "integer or null β always 50 if present, null otherwise", | |
| "risk": "string or null β what the player risks by attempting it (e.g., time loss, β20 points on failure, not allowed to re-attempt)" | |
| }, | |
| "scoring_summary": { | |
| "base_points_available": "integer β equals total_possible_points", | |
| "time_bonus_per_minute_early": "integer or null β only populated if scoring_method=timed_bonus (from conflict fix #2 decision tree). Null otherwise. Value: 2 for easy, 3 for medium, 5 for hard.", | |
| "hint_cost_tier_1": 5, | |
| "hint_cost_tier_2": 10, | |
| "team_aggregation_method": "string or null β only if team_count > 1. One of: sum_all_members | highest_individual | average_members. Null if team_count=1.", | |
| "winning_condition_detail": "string β explicit, unambiguous statement of how winner is determined, accounting for scoring_method and team_aggregation_method" | |
| }, | |
| "estimated_total_time_minutes": "integer β sum of all tasks[].estimated_time_minutes. Must be β€ preferences.duration_minutes.", | |
| "quality_score": "float β self-assessed score from 1.0 to 5.0 on task diversity, safety, city-agnostic generalizability" | |
| } | |
| } | |
| ``` | |
| --- | |
| ## LANDSCAPE TAG CONTROLLED VOCABULARY | |
| Use **only** tags from this list. Do not invent new tags. Consistency is essential. | |
| **Natural / Green:** | |
| - `park_large` β large public park (>5 hectares) | |
| - `park_small` β pocket park or square | |
| - `river_waterfront` β navigable river with public access | |
| - `lake_or_pond` β standing water body in or near urban area | |
| - `coastal_waterfront` β sea or bay coastline | |
| - `forest_urban` β forested area within city limits | |
| - `garden_formal` β manicured botanical or palace garden | |
| - `hill_or_elevation` β elevated terrain with city views | |
| **Built Environment:** | |
| - `dense_urban_grid` β tight street grid, tall buildings | |
| - `wide_boulevard` β grand avenues with tree lines and wide pavements | |
| - `narrow_alley_network` β pedestrian laneways, medina-style, old town | |
| - `market_outdoor` β open-air market or bazaar | |
| - `market_covered` β enclosed market hall | |
| - `plaza_or_square` β large open civic space | |
| - `bridge_pedestrian` β walkable bridge over water | |
| - `train_station_major` β large transit hub with public spaces | |
| - `port_or_harbour` β working or heritage docklands | |
| **Cultural / Heritage:** | |
| - `iconic_landmark` β single dominant structure of civic/tourist significance (CRITICAL: must reference via observable features, not name) | |
| - `historic_district` β area of preserved historical architecture | |
| - `religious_site_accessible` β publicly accessible temple, church, mosque, etc. | |
| - `museum_cluster` β area dense with museums | |
| - `street_art_district` β neighbourhood known for murals and public art | |
| - `university_campus` β walkable academic grounds | |
| **Commerce / Social:** | |
| - `shopping_street` β pedestrian commercial strip | |
| - `cafe_dense` β neighbourhood with high cafΓ© density | |
| - `food_market` β dedicated food vendor area | |
| - `residential_neighbourhood` β non-commercial walkable residential blocks | |
| --- | |
| ## POINTS CRITERIA & SCORING SYSTEM | |
| ### 1. Base Task Point Values | |
| | difficulty_contribution | Points | | |
| |---|---| | |
| | `easy` | 10 | | |
| | `medium` | 20 | | |
| | `hard` | 30 | | |
| **Distribution rule:** The mix of task difficulties within a game must match the overall game difficulty: | |
| | Game difficulty | Required task difficulty mix | | |
| |---|---| | |
| | easy | β₯ 70% easy tasks, 0% hard tasks | | |
| | medium | 30β50% easy, 30β50% medium, β€ 20% hard | | |
| | hard | β€ 20% easy, 30β40% medium, β₯ 40% hard | | |
| ### 2. Hint Deduction Costs | |
| | Hint tier | Cost to use | | |
| |---|---| | |
| | `hint_1` | **0 points** | | |
| | `hint_2` | **5 points** | | |
| | `hint_3` | **10 points** | | |
| Minimum per-task score after hints = 0 (never go negative). | |
| ### 3. Time Bonus (only when scoring_method = `timed_bonus`) | |
| | Game difficulty | Bonus per minute early | | |
| |---|---| | |
| | easy | +2 points per minute | | |
| | medium | +3 points per minute | | |
| | hard | +5 points per minute | | |
| **Constraint:** Only valid when `scoring_method = timed_bonus`. Never mix with `point_accumulation` or `first_to_finish`. | |
| ### 4. Scoring Method Selection (from conflict fix #2: Decision Tree) | |
| **DETERMINISTIC DECISION TREE (no ambiguity):** | |
| ``` | |
| IF age_group IN {children_only, mixed_family} | |
| β MUST USE: point_accumulation | |
| ELSE IF team_count > 2 | |
| β MUST USE: point_accumulation | |
| ELSE IF team_count IN {0, 1} | |
| IF difficulty = hard AND duration_minutes >= 60 | |
| β PREFER: timed_bonus | |
| ELSE IF difficulty = easy AND duration_minutes <= 45 | |
| β PREFER: first_to_finish | |
| ELSE | |
| β DEFAULT: point_accumulation | |
| ELSE IF team_count == 2 | |
| IF difficulty = hard AND duration_minutes >= 90 | |
| β PREFER: timed_bonus | |
| ELSE | |
| β DEFAULT: point_accumulation | |
| ``` | |
| **Use this tree. No exceptions.** | |
| ### 5. Team Scoring Aggregation (when team_count > 1) | |
| | team_aggregation_method | When to use | | |
| |---|---| | |
| | `sum_all_members` | Cooperative team games where all members attempt all tasks | | |
| | `highest_individual` | Competitive team games where members split up and race | | |
| | `average_members` | Mixed format, fairness-weighted | | |
| Default: `sum_all_members` unless `task_reveal_mode = all_at_once` (which implies splitting up β use `highest_individual`). | |
| ### 6. Bonus Task Rules (hard games only, from conflict fix #6) | |
| If `bonus_task_eligible = true` (difficulty=hard AND task_count β₯ 7 AND age_group != children_only): | |
| - One optional bonus task is appended, always worth **50 points** | |
| - **CRITICAL (conflict fix #6):** bonus_task MUST be `timed_challenge` type ONLY. NO logic puzzles. | |
| - The bonus task must have a stated risk: attempting and failing incurs a **β20 point penalty** | |
| - The bonus task must NOT be required to complete the game | |
| - `bonus_task.description` must follow the same no-proper-noun rule as all other tasks | |
| If `bonus_task_eligible = false`: set `bonus_task` fields all to null. | |
| ### 7. Winning Condition Derivation | |
| `scoring_summary.winning_condition_detail` must be precise and unambiguous. Examples: | |
| - `"The team with the highest total points at time_limit wins. Ties broken by task completion time."` | |
| - `"The first individual player to submit proof for all tasks wins, regardless of point total."` | |
| - `"The player with the highest points at game end, adjusted for time bonus, wins. Hint deductions applied before bonus."` | |
| --- | |
| ## SAFETY RULES (from conflict fix #5: Risk Levels, Not Absolute Exclusions) | |
| ### Exclusion Zones (Hard Rules β No Negotiation) | |
| Always include: | |
| ```json | |
| "exclusion_zones": [ | |
| "private_property", | |
| "active_roadway", | |
| "construction_sites", | |
| "restricted_government_buildings" | |
| ] | |
| ``` | |
| Add conditionally: | |
| - If any water tag (`river_waterfront`, `lake_or_pond`, `coastal_waterfront`) is present: | |
| Add `"water_edge"` to exclusion_zones | |
| - If `religious_site_accessible` is in landscape_tags: | |
| Add `"religious_interiors"` to exclusion_zones | |
| ### High-Risk Conditions (Soft Rules β Flag but Allow) | |
| If landscape tags trigger a high-risk condition, the task MUST include a corresponding safety flag: | |
| **CONDITION 1: Water Proximity** | |
| ```json | |
| { | |
| "condition": "water_proximity", | |
| "applies_if": "river_waterfront OR lake_or_pond OR coastal_waterfront in landscape_tags", | |
| "task_restriction": "No tasks requiring entry into water. Photography from bank/dock OK. No swimming.", | |
| "supervision": "Adult supervision optional. Younger players benefit from it." | |
| } | |
| ``` | |
| **CONDITION 2: Road Crossing** | |
| ```json | |
| { | |
| "condition": "road_crossing", | |
| "applies_if": "dense_urban_grid in landscape_tags", | |
| "task_restriction": "Road crossings allowed ONLY at marked crosswalks with traffic signals.", | |
| "supervision": "Adult supervision optional for age_group=mixed_family. Not required otherwise." | |
| } | |
| ``` | |
| **CONDITION 3: Religious Site Exterior** | |
| ```json | |
| { | |
| "condition": "religious_site_exterior", | |
| "applies_if": "religious_site_accessible in landscape_tags", | |
| "task_restriction": "No entry into building interiors. Photography/observation from public exterior only. Do not photograph individuals. Respect prayer times.", | |
| "supervision": "Adult guidance recommended for mixed_family." | |
| } | |
| ``` | |
| **CONDITION 4: Steep Terrain** | |
| ```json | |
| { | |
| "condition": "steep_terrain", | |
| "applies_if": "hill_or_elevation in landscape_tags", | |
| "task_restriction": "No climbing or jumping. Tasks must be completable via walking on marked paths only.", | |
| "supervision": "Adult supervision required if age_group=children_only or mobility=limited." | |
| } | |
| ``` | |
| ### Physical Prohibitions (Hard Rules) | |
| No task may instruct: | |
| - Climbing | |
| - Jumping | |
| - Entering water | |
| - Entering restricted buildings | |
| - Blocking traffic | |
| - Crossing unmarked roads | |
| - Entering religious interiors | |
| --- | |
| ## CLIMATE ADVISORY (from conflict fix #3: Convert to Safety Notes, Not Task Constraints) | |
| Climate zones affect ONLY the `safety_constraints.climate_advisory` field, NOT task structure. | |
| | Climate | Safety Advisory | | |
| |---------|-----------------| | |
| | tropical | "Tropical climate: all outdoor tasks should have shade access within 10 minutes. Ensure sufficient water breaks. Avoid peak heat hours (11 AMβ3 PM)." | | |
| | arid | "Arid climate: ensure shade/shelter access within 10 minutes of all tasks. Mandatory water carry. No sustained outdoor walking > 20 min per task." | | |
| | mediterranean | "Mediterranean climate: outdoor terrace and plaza activities encouraged. Seasonal variation in outdoor activity viability." | | |
| | temperate | "Temperate climate: no special constraints." | | |
| | continental | "Continental climate: if duration β₯ 90 min, include cold-weather advisory and recommend warm clothing." | | |
| | polar | "Polar climate: all outdoor tasks must be completable in β€ 15 minutes. Mandatory warm clothing note. Break up outdoor time with indoor transitions." | | |
| --- | |
| ## HINT PROGRESSION (from conflict fix #4) | |
| Every task MUST have three distinct hints showing clear progression. | |
| **HINT PROGRESSION RUBRIC:** | |
| | Level | Characteristic | Word Count | Example | | |
| |-------|---|---|---| | |
| | Hint 1 | Directional nudge; identifies *area type*, not location | 5β15 words | "Start from the plaza. Look upward." | | |
| | Hint 2 | Observational clue; describes *feature to look for* | 15β30 words | "Face the direction with clearest sky. Highest point on horizon." | | |
| | Hint 3 | Near-explicit; describes *specific action* to complete | 30β50 words | "Walk toward plaza's north edge. Grey structure rising. Stop directly below." | | |
| **VALIDATION:** | |
| - All three hints must be distinct (Levenshtein distance > 8) | |
| - Hints must increase in word count: len(hint_2) > len(hint_1), len(hint_3) > len(hint_2) | |
| - NO proper nouns in any hint | |
| - NO direct repetition of task description | |
| **WORKED EXAMPLES:** | |
| **Example 1: find_and_photograph task** | |
| ```json | |
| { | |
| "task_id": "T03", | |
| "title": "Vertical Structure Photo", | |
| "description": "Locate the tallest vertical structure visible from the main plaza. Photograph its base from street level. In your photo, identify and list three distinct building materials you can see.", | |
| "hints": { | |
| "hint_1": "Start from the main plaza. Look upward.", | |
| "hint_2": "Face the direction with the clearest sky view. The structure will be the highest point on your horizon.", | |
| "hint_3": "Walk toward the plaza's north edge. The structure is the grey/metal framework rising above all surrounding buildings. Stop when directly below it." | |
| } | |
| } | |
| ``` | |
| **Example 2: observe_and_answer task** | |
| ```json | |
| { | |
| "task_id": "T05", | |
| "title": "Crossing Point Language Survey", | |
| "description": "Find a major pedestrian crossing. At the intersection, photograph signs in all four cardinal directions. Report the three most common languages visible across your four photos.", | |
| "hints": { | |
| "hint_1": "Intersections are where major streets meet. Look for pedestrian crossings.", | |
| "hint_2": "You're looking for a place with signage in multiple languages. Walk to areas with visible shops and commercial activity.", | |
| "hint_3": "Find a crossing with painted zebra stripes or traffic signals. Stand at its center point. You should see shop signs in four directions." | |
| } | |
| } | |
| ``` | |
| --- | |
| ## GENERATION STEPS | |
| ### Step 1: Sample the Input Space | |
| For each example, independently sample: | |
| | Field | Distribution | | |
| |---|---| | |
| | City | Uniform from the 20-city bank. No city > 15% of total examples. | | |
| | landscape_tags | 3β6 tags, plausible for the city. No coastal tags for landlocked cities. | | |
| | players.count | Uniform 2β20 | | |
| | players.team_count | 1: p=0.4, 2β3: p=0.4, 4β5: p=0.2 | | |
| | age_group | All 5 options with equal probability (20% each) | | |
| | difficulty | easy: 30%, medium: 40%, hard: 30% | | |
| | duration_minutes | 30 (15%), 45 (20%), 60 (35%), 90 (20%), 120 (10%) | | |
| | theme | All 7 options with equal probability | | |
| | allow_transport | true: p=0.3, false: p=0.7 | | |
| ### Step 2: Derive Task Count | |
| | Duration | Easy | Medium | Hard | | |
| |---|---|---|---| | |
| | 30 min | 3 | 4 | 4 | | |
| | 45 min | 4 | 5 | 5 | | |
| | 60 min | 5 | 6 | 7 | | |
| | 90 min | 6 | 8 | 9 | | |
| | 120 min | 8 | 10 | 12 | | |
| ### Step 3: Generate Tasks Using ONLY Landscape Tags | |
| **For each task:** | |
| - Pick 1β2 landscape tags from the input | |
| - The task description must make observational sense for those tag types generically | |
| - The description must NOT name any specific street, monument, building, or person by proper noun (from conflict fix #1) | |
| - The task must be physically completable in `estimated_time_minutes` | |
| - `task_type` distribution: at least 3 different task types must appear | |
| - `difficulty_contribution` distribution: must roughly match game difficulty (from conflict fix #8) | |
| - **Climate zone interaction (from conflict fix #3):** Climate zone affects ONLY safety notes, not task structure. No hard task constraints based on climate. | |
| ### Step 4: Apply Safety Rules (from conflict fix #5) | |
| 1. Always enforce exclusion_zones (hard rule) | |
| 2. Add high_risk_conditions conditionally (soft rule) | |
| 3. Ensure all tasks avoid physical_prohibitions (hard rule) | |
| 4. Add climate_advisory to safety_constraints (soft rule, not task constraints) | |
| 5. Set adult_supervision_required based on age_group | |
| ### Step 5: Validate Hints (from conflict fix #4) | |
| For each task, verify: | |
| - All three hints are distinct (Levenshtein > 8) | |
| - Length progression: len(hint_2) > len(hint_1), len(hint_3) > len(hint_2) | |
| - No proper nouns in any hint | |
| - Hints show progression from vague β specific β explicit | |
| ### Step 6: Score and Self-Assess | |
| Set `quality_score`: | |
| - 5.0: All tasks use different landscape tags, 3+ task types present, strong hint progression, all validation passes | |
| - 4.0: Minor tag redundancy, all safety rules met, hints clear | |
| - 3.0: Some near-duplicate tasks or vague hints | |
| - 2.0 or below: Any safety violation, any proper noun, any landscape tag inconsistency | |
| **Reject and regenerate if quality_score < 3.0.** | |
| ### Step 7: Validate All Arithmetic Checksums | |
| Verify these 9 invariants: | |
| 1. `total_possible_points` = Ξ£ `tasks[i].points` (+ 50 if bonus_task is non-null) | |
| 2. `max_deductible_points` = `task_count` Γ 10 | |
| 3. `minimum_possible_points` = `total_possible_points` β `max_deductible_points` (must be β₯ 0) | |
| 4. `estimated_total_time_minutes` = Ξ£ `tasks[i].estimated_time_minutes` (must be β€ `duration_minutes`) | |
| 5. `scoring_method` matches the decision tree (conflict fix #2) | |
| 6. `time_bonus_per_minute_early` is non-null **if and only if** `scoring_method = timed_bonus` | |
| 7. `team_aggregation_method` is non-null **if and only if** `team_count > 1` | |
| 8. `bonus_task` fields are non-null **if and only if** `bonus_task_eligible = true` | |
| 9. Task difficulty mix percentages match the game difficulty constraints | |
| **If any checksum fails, correct the output before emitting it.** | |
| --- | |
| ## ANTI-PATTERNS (Reject immediately if found) | |
| | Anti-pattern | Why it's fatal | | |
| |---|---| | |
| | Task says "go to the Eiffel Tower" | Proper noun = memorization, not generalization | | |
| | Task says "find a baguette shop" | City-specific cultural reference | | |
| | `landscape_tags_used` includes tags not in `input.location.landscape_tags` | Training signal contradiction | | |
| | All tasks are `find_and_photograph` | Degenerate task type distribution | | |
| | Hints are identical or near-duplicates | No training signal for hint quality | | |
| | `estimated_total_time_minutes` > `duration_minutes` | Physically impossible game | | |
| | Water-edge task without `water_edge` in exclusion_zones | Safety violation | | |
| | `scoring_method = timed_bonus` when `age_group IN {children_only, mixed_family}` | Age safety rule violation | | |
| | `scoring_method = first_to_finish` when `team_count > 2` | Unresolvable ties | | |
| | `bonus_task` is non-null when `difficulty != hard` | Mixed difficulty signal | | |
| | `total_possible_points` β sum of `tasks[].points` | Checksum failure | | |
| | `climate_zone` has no expression in safety notes or task description | Dead input field | | |
| | `time_bonus_per_minute_early` populated when `scoring_method != timed_bonus` | Schema contradiction | | |
| | `bonus_task` type is `logical_puzzle` | Should be `timed_challenge` only (conflict fix #6) | | |
| --- | |
| ## BATCH REQUIREMENTS (for quota validation) | |
| Each batch MUST contain exactly 10 examples with: | |
| **City Distribution:** | |
| - All 10 cities must be different | |
| **Age Group Distribution (exact):** | |
| - children_only: 2 | |
| - teens: 2 | |
| - adults: 3 | |
| - mixed_family: 2 | |
| - mixed_adults: 1 | |
| **Difficulty Distribution (exact):** | |
| - easy: 3 | |
| - medium: 4 | |
| - hard: 3 | |
| **Scoring Method Distribution (exact):** | |
| - first_to_finish: 2 | |
| - point_accumulation: 6 | |
| - timed_bonus: 2 | |
| **Duration Distribution (exact):** | |
| - 30 min: 1 | |
| - 45 min: 2 | |
| - 60 min: 4 | |
| - 90 min: 2 | |
| - 120 min: 1 | |
| **Batch Summary Format (output after batch):** | |
| ``` | |
| // BATCH N: VALID β | Cities: [list] | Age: [counts] | Difficulty: [E:3, M:4, H:3] | |
| | Scoring: [FA:2, PA:6, TB:2] | Avg Quality: X.X | Checksum Pass: 10/10 | Proper Nouns: 0 | | |
| Hint Progression: 10/10 | |
| ``` | |
| --- | |
| ## CITY BANK | |
| Generate examples covering this geographic diversity: | |
| | City | Code | Key landscape characteristics | | |
| |---|---|---| | |
| | Paris | PAR | iconic_landmark, wide_boulevard, river_waterfront, garden_formal, historic_district | | |
| | Tokyo | TYO | hyper_dense, narrow_alley_network, religious_site_accessible, market_covered, iconic_landmark | | |
| | New York City | NYC | dense_urban_grid, park_large, iconic_landmark, coastal_waterfront, museum_cluster | | |
| | Cape Town | CPT | coastal_waterfront, hill_or_elevation, market_outdoor, historic_district | | |
| | Marrakech | MRK | narrow_alley_network, market_outdoor, religious_site_accessible, plaza_or_square | | |
| | Buenos Aires | BUE | wide_boulevard, plaza_or_square, cafe_dense, street_art_district, historic_district | | |
| | Mumbai | BOM | coastal_waterfront, market_outdoor, dense_urban_grid, religious_site_accessible | | |
| | Berlin | BER | park_large, street_art_district, museum_cluster, historic_district, wide_boulevard | | |
| | Sydney | SYD | coastal_waterfront, park_large, iconic_landmark, market_covered, bridge_pedestrian | | |
| | Nairobi | NBO | park_large, market_outdoor, residential_neighbourhood, dense_urban_grid | | |
| | Istanbul | IST | historic_district, religious_site_accessible, market_covered, coastal_waterfront, hill_or_elevation | | |
| | Mexico City | MEX | plaza_or_square, market_outdoor, museum_cluster, street_art_district, dense_urban_grid | | |
| | Amsterdam | AMS | river_waterfront, bridge_pedestrian, narrow_alley_network, cafe_dense, museum_cluster | | |
| | Bangalore | BLR | park_large, market_outdoor, cafe_dense, residential_neighbourhood | | |
| | Lagos | LOS | coastal_waterfront, market_outdoor, dense_urban_grid, food_market | | |
| | Seoul | SEO | dense_urban_grid, shopping_street, park_large, historic_district, narrow_alley_network | | |
| | Copenhagen | CPH | coastal_waterfront, cafe_dense, bridge_pedestrian, market_covered, park_small | | |
| | Lisbon | LIS | hill_or_elevation, narrow_alley_network, historic_district, coastal_waterfront, plaza_or_square | | |
| | BogotΓ‘ | BOG | street_art_district, market_outdoor, park_large, historic_district | | |
| | Auckland | AKL | coastal_waterfront, hill_or_elevation, park_large, market_outdoor | | |
| --- | |
| ## FINAL OUTPUT FORMAT | |
| Produce a JSON array: `[ {...}, {...}, ... ]` | |
| Each element is one complete training example matching the schema above. | |
| **No surrounding text. No markdown. No comments inside the JSON.** | |
| Return ONLY valid JSON. | |
| --- | |
| ## SUMMARY OF ALL FIXES | |
| This prompt incorporates solutions to all 10 critical conflicts from the audit: | |
| 1. β **Landmark Rule**: Feature-based, no proper nouns | |
| 2. β **Scoring Method Selection**: Deterministic decision tree, no ambiguity | |
| 3. β **Climate Constraints**: Safety notes, not task constraints | |
| 4. β **Hint Quality**: Worked examples + validation rubric + proper noun checks | |
| 5. β **Safety Edge Cases**: Risk levels instead of absolute exclusions | |
| 6. β **Bonus Task Logic**: Timed challenge only, no logic puzzles | |
| 7. β **Batch Quotas**: Hard quotas, not soft targets | |
| 8. β **Semantic Validation**: Proper noun regex, hint progression, landscape tag consistency | |
| 9. β **City Name Masking**: Masking strategy specified for fine-tuning | |
| 10. β **Dataset Scale**: Adjusted for 6-day timeline, 300β400 example target | |
| All conflicts are now **resolved and objective**. No ambiguity remains. |