# API CONTRACTS ## Signal & SSTC ### GET `/projects/{project_id}/signals` - Response data: - `items[]` includes planner fields: - `planner_status: "pending" | "completed" | "failed"` - `planner_analyzed_at: string | null` - `planner_assignee_user_id: string | null` - `strategic_analysis: object` ## Model Routing ### GET `/model-routing/functions/{function_name}` - Purpose: query effective routing for function - Response data: - `function_name` - `provider` - `model` - `api_env` - `tier` - `source: "default" | "override"` ### PUT `/model-routing/functions/{function_name}` - Auth: manager/admin only - Request body: - `provider`, `model`, `api_env`, `tier` - Side effects: - persist override into `integrations(type='model_routing')` - append audit to `operation_logs` ## Task Briefs ### GET `/task-briefs/center` - Purpose: list generated brief cards ### GET `/task-briefs/templates` - Purpose: list templates ### POST `/task-briefs/templates` - Purpose: create template ### PUT `/task-briefs/templates/{template_id}` - Purpose: update template ### GET `/task-briefs/runs` - Purpose: list generation runs ### POST `/task-briefs/generate` - Purpose: generate one task brief run ### GET `/task-briefs/contract-sync` - Purpose: expose docs/contract sync status snapshot