` opening tag), using the exact `.entry` /
`.entry-rail` / `.entry-dot` markup shown in the template's commented
example — the timeline rail depends on that structure. One entry per real
step: what happened, what was decided and why, what was verified. Skip
entries for trivial reads; log entries for writes, decisions, and
verification.
3. **Save screenshots** into `.sitrep-panel/report/screenshots/` and
reference them with a relative `

` —
inline in a log entry, appended to `#shots-body`, or both.
4. **Update the board** — the board is four columns, each with its own
container: `#board-todo`, `#board-progress`, `#board-done`,
`#board-blocked`. Add/move/remove a plain `
…
`
in the container matching its current status as steps start, block, or
finish — moving a card means removing it from one column's container and
appending it to another's, not changing a class. See the commented
example markup in the template.
5. **Touch `meta.json` last, always.** Rewrite `updated_at` to the current
ISO-8601 UTC timestamp as the final write of every update — the page
polls this file every 2s and reloads on change. This is the one step
you must never skip.
## Tracker-synced board (optional)
If the project has a working issue-tracker connection available right now
and there are real tickets relevant to this task, render the board from
that real data — real key, real title, real link, real status. Refresh it
each time you update the doc.
If no tracker is connected, or nothing relevant is filed there, fall back
to a plain manually-maintained checklist kept in sync by hand. Never
fabricate ticket data, and don't silently guess which tracker to use if
more than one is plausible — ask.
## Notes
- One active report per project at a time by design (`.sitrep-panel/report/`
is a fixed path) — the URL stays stable across a whole session. Use
`archive` to start clean.
- Genuinely static HTML plus polling JS — no build step, no external
requests, works fully offline once loaded.
- If the user wants something shareable with people not at their machine,
that's a hosted artifact, not this — this is specifically for
local/private, zero-publish visibility.