diff --git a/.claude/commands/weather-orchestrator.md b/.claude/commands/weather-orchestrator.md index 2edb20b..d64f79c 100644 --- a/.claude/commands/weather-orchestrator.md +++ b/.claude/commands/weather-orchestrator.md @@ -1,21 +1,36 @@ --- -description: Fetch weather data for Dubai and create an SVG weather card +description: Fetch Dubai weather and create an SVG weather card model: haiku +allowed-tools: + - AskUserQuestion + - Agent + - Skill --- # Weather Orchestrator Command Fetch the current temperature for Dubai, UAE and create a visual SVG weather card. +## Execution Contract (non-negotiable) + +You MUST complete this command by delegating to the `weather-agent` subagent. You are forbidden from: + +- Fetching weather data yourself via Bash, WebFetch, or any other tool +- Skipping Step 1 (the user's unit preference is required input to the agent) +- Calling `weather-svg-creator` before the agent returns a temperature + +If you cannot invoke the Agent tool, stop and report the error to the user. Do not improvise. + ## Workflow ### Step 1: Ask User Preference -Use the AskUserQuestion tool to ask the user whether they want the temperature in Celsius or Fahrenheit. +Use the AskUserQuestion tool to ask the user whether they want the temperature in Celsius or Fahrenheit. Capture the selected unit before proceeding. -### Step 2: Fetch Weather Data +### Step 2: Fetch Weather Data via Agent + +Use the Agent tool to invoke the weather agent: -Use the Task tool to invoke the weather agent: - subagent_type: weather-agent - description: Fetch Dubai weather data - prompt: Fetch the current temperature for Dubai, UAE in [unit requested by user]. Return the numeric temperature value and unit. The agent has a preloaded skill (weather-fetcher) that provides the detailed instructions. @@ -23,23 +38,20 @@ Use the Task tool to invoke the weather agent: Wait for the agent to complete and capture the returned temperature value and unit. +**Fail-closed guardrail**: If the agent does not return a numeric temperature and unit, DO NOT proceed to Step 3. Report the failure to the user and stop. + ### Step 3: Create SVG Weather Card Use the Skill tool to invoke the weather-svg-creator skill: + - skill: weather-svg-creator The skill will use the temperature value and unit from Step 2 (available in the current context) to create the SVG card and write output files. -## Critical Requirements - -1. **Use Task Tool for Agent**: DO NOT use bash commands to invoke agents. You must use the Task tool. -2. **Use Skill Tool for SVG Creator**: Invoke the SVG creator via the Skill tool, not the Task tool. -3. **Pass User Preference**: Include the user's temperature unit preference when invoking the agent. -4. **Sequential Flow**: Complete each step before moving to the next. - ## Output Summary Provide a clear summary to the user showing: + - Temperature unit requested - Temperature fetched from Dubai - SVG card created at `orchestration-workflow/weather.svg`