Deferred from the Skywatch.brief MVP design.
The MVP hardcodes synopsis: { available: false, reason: "no synopsis source — see afd slot" } and exposes the full AFD text as a supplementary slot. AFDs sometimes have a labeled "SYNOPSIS..." sub-paragraph; this issue covers parsing it out and populating the synopsis slot with structured { available: true, text: ... }.
The risk is brittle parsing — AFD formatting varies by WFO and over time. Investigate before committing to a parser.
Acceptance: When AFD text contains a clearly-marked SYNOPSIS section, Skywatch.brief(...).synopsis is { available: true, text: ... }. When the AFD is unparseable, the slot stays available: false with a reason explaining why.
Deferred from the Skywatch.brief MVP design.
The MVP hardcodes
synopsis: { available: false, reason: "no synopsis source — see afd slot" }and exposes the full AFD text as a supplementary slot. AFDs sometimes have a labeled "SYNOPSIS..." sub-paragraph; this issue covers parsing it out and populating thesynopsisslot with structured{ available: true, text: ... }.The risk is brittle parsing — AFD formatting varies by WFO and over time. Investigate before committing to a parser.
Acceptance: When AFD text contains a clearly-marked SYNOPSIS section,
Skywatch.brief(...).synopsisis{ available: true, text: ... }. When the AFD is unparseable, the slot staysavailable: falsewith a reason explaining why.