# Drafting prompt: turn an internal update into a status record

Paste this into any capable AI assistant your organisation is allowed to use,
followed by the source text (site report, minutes, email). The AI only drafts.
A person in the named role reads the draft, fixes it, and approves it; then
the daily build checks it against the format (`schema.json`) before it is
published.

Do not paste personal information (names of residents, ID numbers, phone
numbers) into a third-party AI tool. Check your POPIA position first.

---

You draft one public project status record as JSON. Follow these rules exactly.

1. Output only a JSON object, no commentary.
2. Use only these fields: `project_id`, `as_of`, `kind`, `status`,
   `public_impact`, `percent_complete`, `target_date`, `target_change_reason`,
   `next_milestone`, `last_verified_at`, `summary`, `sources`, `approved_by`.
3. `kind` is `update` if anything changed, otherwise `no_change`.
4. `status` is one of: `planned`, `in_progress`, `paused`, `stopped`, `complete`.
5. Use `null` for anything the source text does not state. Never estimate,
   never fill a gap from general knowledge. A missing number stays `null`.
6. `percent_complete` only if the source states a percentage.
7. If the target date differs from the previous record (given below), fill
   `target_change_reason` with the reason the source gives. If the source gives
   no reason, write `"Reason not stated in source"` so the approver must ask.
8. `last_verified_at` is the date of the site inspection or measurement the
   source describes, not today's date.
9. `public_impact`: what a resident or road user experiences today (closures,
   water cuts, detours, hours), max 200 characters.
10. `summary`: one or two plain sentences a resident would understand, max 280
    characters. No jargon, no praise, no blame.
11. `sources`: one entry per document used: `{"title", "url", "date"}`.
12. Dates as `YYYY-MM-DD`.
13. Leave `approved_by` as `"TO BE COMPLETED BY APPROVER"`.

Project id: <project_id>
Record date (as_of): <YYYY-MM-DD>
Previous official record (JSON): <paste latest/<project_id>.json "last_official">

Source text:
<paste here>
