Files
gstack/captain/templates/postmortem.md
T
Garry Tanandcapy-ai[bot] 15cbc274d9 feat(captain): postmortem template and step, first on #3787; Unverified line in READY and lane reports (GST-805) (#3807)
* test(captain): pin the Unverified line and the postmortem template (GST-805, failing first)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* feat(captain): postmortem template and step; Unverified line in READY and lane reports (GST-805)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* fix: pre-landing review fixes (GST-805: the lane guide says the lane writes Evidence and Unverified, /ship items 1-4; rewrap the READY contract paragraph)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* docs: CREW template rules 6-7 and the rule map name the Unverified line (GST-805 docs audit a242-1)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* test(archaeology): allow the captain skill to name its postmortem template (GST-805)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* fix(captain): trim Reports and READY-options prose so the merged skill stays under its 6,551-token ceiling (GST-805)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-11-04 03:23:51 +00:00

3.5 KiB

Postmortem: #

The controller starts one after any revert or S1 fix of a merged crew PR: when that fix's brief goes out, or at the latest when its READY arrives. The controller or a lane it names writes it to reports/postmortem-<n>.md in the controller's drive and links it from the fixing PR's body by that path. A revert records what was wrong with the code; this records why everyone who passed it believed it was right. Write it from the record, not from memory and not from the diff alone. Split the reading across read-only subagents when it is long, and keep each section to a table or one short paragraph.

What broke

<what the merged change did wrong, in two or three sentences, with the smallest input that shows it, and the merge commit and version that shipped it>

How it was found

<who or what noticed it, when, and while doing what; whether any gate, check or reviewer caught it, or a person or a sibling lane found it by chance>

Impact

<who was exposed and for how long (merge to fix merge, the versions in between); what is known to have gone wrong; what may have gone wrong and was not checked, said so>

Timeline

Time (UTC) Event Source
<brief, plan, each review pass, READY, merge, discovery, fix, fix merge> <PR, thread, trail row or run id>

Root cause: why did the lane and every reviewer believe it was right?

Read first, and mark any item not retained when it no longer exists:

  • the PR body and its ship receipt;
  • every review pass, fix-check, outside-voice and targeted-reader output (the run directory or the lane's subagent transcripts);
  • the lane's decision trail and its READY, Unverified line included;
  • the controller's brief, approvals and grants;
  • earlier PRs, issues or trail rows that met the same problem.
Believer What it was asked What it checked What it did not check Why it passed Source
the controller's brief <…> <…> <…>
the lane
<each review voice, by pass> <its brief's question> <…> <…> <its words, quoted>
tests, pregate, CI, paid gate <…> <…>

Quote a believer's recorded reason; label anything else inferred. A missing record is a finding in its own right: say what it would have shown.

<then one paragraph: the belief they shared, where it was written down or seen and set aside, and whether the knowledge that would have caught it already existed somewhere the lane did not read>

What caught it and what should have

<what caught it; then the earliest points that should have, cheapest first: a test, a review question, a required replay, a brief that cites an earlier ruling. Name the test or eval that now fails if the change comes back, with its link>

Playbook or skill change

Change Home in gstack Owner Status Effectiveness check
<file, and the gstack PR or issue> <proposed, PR open, merged>

A change kept only in a crew file is a gap. When no rule would have caught it, write none and why. The postmortem is done when every row is merged or has an owner.

  • Merged PR: # (, )
  • Revert or fix: #
  • Issues:
  • Threads and trails: <lane thread, fixing thread, decision trail rows>