{
  "version": "0.2.1",
  "principle": "Use the cheapest configured route that meets the task's quality, evidence and privacy requirements. Retrieve current evidence when a claim depends on current conditions or rules. Never call several models for a basic question. A fast answer may not skip essential source verification.",
  "default_task_class": "chat_simple",
  "classifier": {
    "stage_1": "deterministic keyword rules, run on our server before any model is called",
    "stage_2": "claude-haiku-4-5 structured classification, max 600 in / 60 out tokens, only when stage 1 is ambiguous"
  },
  "routes": {
    "classify": {
      "description": "Task classification only.",
      "requires_evidence": false,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-haiku-4-5",
          "max_input_tokens": 600,
          "max_output_tokens": 60
        }
      ],
      "tools": []
    },
    "chat_simple": {
      "description": "General technique/gear/behavior questions with no legal, safety or current-conditions dependency.",
      "requires_evidence": false,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 5000,
          "max_output_tokens": 1600
        }
      ],
      "tools": [],
      "escalate_to": "chat_grounded"
    },
    "chat_grounded": {
      "description": "Questions that depend on rules, access or current conditions. Must retrieve evidence or abstain.",
      "requires_evidence": true,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 8000,
          "max_output_tokens": 1500
        }
      ],
      "tools": [
        {
          "name": "source_watch_lookup",
          "max_calls": 4,
          "usd_per_call": "0"
        },
        {
          "name": "nws_forecast",
          "max_calls": 2,
          "usd_per_call": "0"
        },
        {
          "name": "usgs_water",
          "max_calls": 2,
          "usd_per_call": "0"
        },
        {
          "name": "padus_lookup",
          "max_calls": 2,
          "usd_per_call": "0"
        }
      ],
      "escalate_to": "chat_research"
    },
    "chat_research": {
      "description": "Multi-source research inside a conversation. Its bounded plan costs at most 18 credits. A research question is held to your per-Scout maximum (25 credits by default) instead of the 10-credit per-question maximum; if it would need more, HuntFish asks you to narrow it or raise that maximum.",
      "requires_evidence": true,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 10000,
          "max_output_tokens": 2000
        }
      ],
      "tools": [
        {
          "name": "anthropic_web_search",
          "max_calls": 2,
          "usd_per_call": "0.01"
        },
        {
          "name": "source_watch_lookup",
          "max_calls": 6,
          "usd_per_call": "0"
        },
        {
          "name": "padus_lookup",
          "max_calls": 4,
          "usd_per_call": "0"
        }
      ]
    },
    "photo_identify": {
      "description": "Identification from a metadata-stripped, task-appropriate crop. Consent required before transfer.",
      "requires_evidence": false,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 4000,
          "max_output_tokens": 1200
        }
      ],
      "tools": []
    },
    "scout_research": {
      "description": "One bounded, checkpointed Scout research step under the Scout's reservation. Each step costs at most 18 credits and is held to your per-Scout maximum (25 credits by default).",
      "requires_evidence": true,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 10000,
          "max_output_tokens": 2000
        }
      ],
      "tools": [
        {
          "name": "anthropic_web_search",
          "max_calls": 2,
          "usd_per_call": "0.01"
        },
        {
          "name": "source_watch_lookup",
          "max_calls": 10,
          "usd_per_call": "0"
        },
        {
          "name": "padus_lookup",
          "max_calls": 10,
          "usd_per_call": "0"
        },
        {
          "name": "nws_forecast",
          "max_calls": 4,
          "usd_per_call": "0"
        }
      ]
    },
    "sandbar_scout": {
      "description": "Sandbar Scout: one bounded pass that reads free public map candidates (OpenStreetMap, NOAA charts, USGS names), up to 5 public-domain aerial photos and at most 2 web searches for local reports, then picks the best sandbars with a calculated time window. Held to your per-Scout maximum (25 credits by default); nothing is charged when the free map pass and the around-you photo give nothing to check.",
      "requires_evidence": true,
      "steps": [
        {
          "provider": "anthropic",
          "model": "claude-sonnet-5",
          "max_input_tokens": 18000,
          "max_output_tokens": 2500
        }
      ],
      "tools": [
        {
          "name": "anthropic_web_search",
          "max_calls": 2,
          "usd_per_call": "0.01"
        },
        {
          "name": "osm_overpass",
          "max_calls": 1,
          "usd_per_call": "0"
        },
        {
          "name": "noaa_enc",
          "max_calls": 3,
          "usd_per_call": "0"
        },
        {
          "name": "usgs_gnis",
          "max_calls": 2,
          "usd_per_call": "0"
        },
        {
          "name": "naip_imagery",
          "max_calls": 5,
          "usd_per_call": "0"
        },
        {
          "name": "noaa_tides",
          "max_calls": 1,
          "usd_per_call": "0"
        },
        {
          "name": "nws_forecast",
          "max_calls": 2,
          "usd_per_call": "0"
        }
      ]
    }
  },
  "multi_model_comparison": {
    "status": "advanced_option_only",
    "note": "Explicitly priced; never default. Agreement between models is not proof of truth."
  },
  "moon_phase": {
    "predictive_weight": 0,
    "display": "context only",
    "note": "Promoted into recommendations only after evaluation shows incremental usefulness for the specific task."
  }
}
