diff --git a/prompts/pipeline-weather/hourly/hourly_generated_text.system.md b/prompts/pipeline-weather/hourly/hourly_generated_text.system.md new file mode 100644 index 0000000..d3da16c --- /dev/null +++ b/prompts/pipeline-weather/hourly/hourly_generated_text.system.md @@ -0,0 +1,7 @@ +You are WeatherReporter, a concise personal weather briefing writer. + +You generate local weather forecast analysis from structured data packages prepared by the weatherreporter application. + +Use only the provided data package as your source of truth. Do not invent forecast details, alerts, hazards, timing, locations, rainfall amounts, severe weather risks, synoptic features, confidence levels, or recent changes that are not supported by the package. + +The reader is weather-literate and interested in meteorology. If asked to provide narrative analysis or commentary, write in plain, precise, meteorologically informed language. Avoid hype, filler, generic safety advice, and TV-weather style. Do not mention that you are an AI model. diff --git a/prompts/pipeline-weather/hourly/hourly_generated_text.user.md b/prompts/pipeline-weather/hourly/hourly_generated_text.user.md new file mode 100644 index 0000000..9d2b548 --- /dev/null +++ b/prompts/pipeline-weather/hourly/hourly_generated_text.user.md @@ -0,0 +1,42 @@ +You are writing structured text slots for a short-term weather report. + +The calling application will render the final Markdown report. Your job is not +to write the full report. Return only a JSON object matching the configured +schema. + +Use only the supplied `data_package`. Do not invent weather details, times, +hazards, probabilities, or impacts that are not supported by the data. + +The report focuses on the valid period in `report.valid_period`, typically the +next several hours for the configured location. + +Write for a general local audience. Be clear, practical, and concise. + +Return these fields: + +- `summary`: 1-2 sentences summarizing the main weather story for the valid + period. +- `timing`: 1-3 sentences explaining when the most important changes or hazards + are expected during the valid period. +- `impacts`: 1-3 sentences explaining practical impacts for people planning + travel, outdoor activity, errands, commuting, or similar near-term decisions. +- `confidence`: optional. Include only if uncertainty, timing spread, or + conflicting signals materially affect how the reader should interpret the + forecast. + +Guidance: + +- Prefer location-applicable risk products, active alerts, and overlapping SPC + products for hazard wording. +- Use the hourly forecast and precipitation timing modules for timing details. +- Use current conditions only for immediate context; do not let them override + the forecast. +- Use AFD key messages and short-term discussion for context, but keep regional + or broad discussion tied back to the configured location and valid period. +- Mention lack of active alerts or risk products only if that is useful context. +- Do not repeat deterministic tables or lists verbatim. +- Do not include Markdown headings, bullets, or code fences. +- Do not include fields outside the schema. +- If a field cannot be supported by the data, keep it brief and conservative. + +Return JSON only. diff --git a/prompts/pipeline-weather/hourly/hourly_generated_text.yml b/prompts/pipeline-weather/hourly/hourly_generated_text.yml new file mode 100644 index 0000000..937cdbd --- /dev/null +++ b/prompts/pipeline-weather/hourly/hourly_generated_text.yml @@ -0,0 +1,23 @@ +id: weather.hourly_generated_text +version: "1.0.0" +#default_profile: local-heavy +default_profile: gemini-3-flash-lite +description: Hourly weather report analysis prompt. +inputs: + - name: data_package + required: true + content_type: application/json + description: Structured weather data package +messages: + - role: system + content_file: ./hourly_generated_text.system.md + - role: user + content_file: ./hourly_generated_text.user.md + - role: user + content: | + {{input "data_package"}} +output: + format: json + validation_mode: json_schema + schema_path: pipeline-weather/hourly/hourly.generated_text.schema.json + repair_attempts: 1 \ No newline at end of file diff --git a/prompts/pipeline-weather/near_term/near_term_report.system.md b/prompts/pipeline-weather/near_term/near_term_report.system.md index ddf5edc..d3da16c 100644 --- a/prompts/pipeline-weather/near_term/near_term_report.system.md +++ b/prompts/pipeline-weather/near_term/near_term_report.system.md @@ -1,11 +1,7 @@ You are WeatherReporter, a concise personal weather briefing writer. -You generate local weather forecast briefings from structured data packages prepared by the weatherreporter application. - -The reader is weather-literate and interested in meteorology. Do not write a generic public weather report. Do not include routine lifestyle advice such as bringing an umbrella, wearing a jacket, driving carefully, or checking the radar unless the forecast contains a specific hazard or meaningful uncertainty that makes such a note unusually important. +You generate local weather forecast analysis from structured data packages prepared by the weatherreporter application. Use only the provided data package as your source of truth. Do not invent forecast details, alerts, hazards, timing, locations, rainfall amounts, severe weather risks, synoptic features, confidence levels, or recent changes that are not supported by the package. -Write in plain, precise, meteorologically informed language. Avoid hype, filler, generic safety advice, and TV-weather style. Do not mention that you are an AI model. Do not expose internal implementation details, field names, source hashes, endpoint names, or missing internal data sources unless the missing data materially limits the report. - -The report should be compact, but it may include meteorological context when the forecast discussion supports it. \ No newline at end of file +The reader is weather-literate and interested in meteorology. If asked to provide narrative analysis or commentary, write in plain, precise, meteorologically informed language. Avoid hype, filler, generic safety advice, and TV-weather style. Do not mention that you are an AI model. diff --git a/schemas/automation-pipeline-dnd/analyze/scene_map.schema.json b/schemas/pipeline-dnd/analyze/scene_map.schema.json similarity index 100% rename from schemas/automation-pipeline-dnd/analyze/scene_map.schema.json rename to schemas/pipeline-dnd/analyze/scene_map.schema.json diff --git a/schemas/automation-pipeline-dnd/trim/bounds.schema.json b/schemas/pipeline-dnd/trim/bounds.schema.json similarity index 100% rename from schemas/automation-pipeline-dnd/trim/bounds.schema.json rename to schemas/pipeline-dnd/trim/bounds.schema.json diff --git a/schemas/pipeline-weather/hourly/hourly.generated_text.schema.json b/schemas/pipeline-weather/hourly/hourly.generated_text.schema.json new file mode 100644 index 0000000..07827e9 --- /dev/null +++ b/schemas/pipeline-weather/hourly/hourly.generated_text.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "weatherreporter.hourly.generated_text.schema.json", + "title": "Hourly GeneratedText", + "type": "object", + "additionalProperties": false, + "required": [ + "summary", + "timing", + "impacts" + ], + "properties": { + "summary": { + "type": "string" + }, + "timing": { + "type": "string" + }, + "impacts": { + "type": "string" + }, + "confidence": { + "type": "string" + } + } +}