diff --git a/skills/flight-finder/SKILL.md b/skills/flight-finder/SKILL.md index 53490c0..0b86bb1 100644 --- a/skills/flight-finder/SKILL.md +++ b/skills/flight-finder/SKILL.md @@ -66,6 +66,8 @@ Completion rule: - A partial source result is not completion. - A partial helper result is not completion. - The workflow is complete only when the final report payload exists, the PDF is rendered, the email was sent, and any VPN cleanup required by the run has been attempted. +- An interim commentary/status line is not completion. +- For isolated cron-style runs, do not leave the run with only a phase-update summary. If PDF render or email send did not happen, the terminal result must say so explicitly as a failed or incomplete outcome. ## WhatsApp-safe behavior @@ -80,6 +82,23 @@ Follow the same operational style as `property-assessor`: - if PDF render fails, return the completed report summary in chat and report delivery failure separately - if email send fails after render, say so clearly and keep the rendered PDF path +## Long-running command rule + +- Do not fire a long-running local command and then abandon it. +- If an `exec` call returns a running session/process handle instead of a completed result, immediately follow it with the relevant process polling/log calls until the command finishes, fails, or times out. +- Treat VPN connect, fresh search sweeps, PDF render, and Gmail send as critical-path commands. They must be observed to completion; do not assume they succeeded just because the process started. +- If a critical-path command cannot be observed to completion, stop claiming progress and report the run as incomplete. + +## Isolated cron rule + +- In isolated cron runs, success means all of the following are true: + - fresh search artifacts exist for the current run + - final `report-payload.json` exists for the current run + - PDF render completed + - Gmail send completed to the requested recipient +- If the model/provider times out, the VPN step flakes, or the run ends before those artifacts exist, report a failure/incomplete outcome rather than an `ok`-sounding completion summary. +- Do not end an isolated cron run on the VPN/connect phase alone. + ## Search-source contract Use the proven travel-source order from the local viability findings: