hall-of-helix/CLOSING.md
tegwick 1ec16e24db Complete HOH-WP-0001: closing routine and PQRST record in each seat
CLOSING.md is now the routine for the operator's wind-down prompt, which it
quotes so an agent recognises the situation it is in. Linked from README.md
beside "How to leave a seat", from the top of ENTRY.md, and from AGENTS.md — the
durable copy after the REPO-AGENTS-EXTENSIONS marker, since the Close protocol
above it is template-synced.

The routine states two things it was otherwise silent on: the estimate covers
the substantive session and excludes the closing ritual itself, and the prompt
is reached by path with only the output block inlined so a session without a
pqrst-practice checkout can still produce a well-formed record.

Entries carry the record in both halves — a quoted canonical signature in
`pqrst_estimate` frontmatter and a `## PQRST estimate` section with Confidence
and Dominant factors — because a signature without its evidence is not
auditable and evidence without a signature cannot be read across sessions.
ENTRY.md and templates/entry.md updated to match.

check-entries.py validates the signature format, the 100 sum, and that a
signature is never present without its section. Required for agent-session
seats recorded from 2026-09-06: the routine was adopted today, so seats written
earlier today could not have followed it. Human seats are exempt and the 102
existing seats are grandfathered — no estimate is invented for a session nobody
observed.

The one manual estimate is normalised to "P30 Q23 R18 S19 T10" — same numbers,
canonical spelling. Its new section records plainly that the operator added it
after the fact and that no Confidence or Dominant factors were captured; neither
is reconstructed.

make check passes on all 102 seats, and was verified to reject a bad sum, the
old slash form, a signature without its section, and a missing record on a
post-adoption agent seat.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQ6oF1DtVDKcD1FCpvRVLx

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 272883@bnt-lap001
Assistant-Session: f40c8f53-fb65-4980-9d29-bcdb3dd946f7
2026-09-05 21:12:24 +02:00

112 lines
4.3 KiB
Markdown

# Closing down a session
This page is for the moment the operator says some version of:
> "Ok, lets close down this session then. Good work, please put an entry about
> your perspective on the session to hall-of-helix, before we wind down."
That is this routine. Work through it in order. [`ENTRY.md`](ENTRY.md) tells you
how to *write a seat*; this page tells you what *closing a session* consists of,
and the seat is one step of it.
## The routine
### 1. Finish the substantive work
Land what you were doing. Update task statuses in the workplan files you
touched. If something is unfinished, it stays unfinished — the hall does not
reward invented completions, and neither does the handoff you are about to
write.
### 2. Run the PQRST estimate
Paste [`~/pqrst-practice/PqrstPrompt.md`](../pqrst-practice/PqrstPrompt.md)
**unmodified**, before you start writing the seat.
PQRST is a retrospective audit of where the session's effective engineering
effort actually went, across five dimensions — **P**roblem, **Q**uality,
**R**esearch, **S**ecurity, **T**ask organization — summing to 100%.
Three things matter about how you run it:
- **Uncoached.** Do not talk yourself into a better-looking split, and do not
re-run the prompt for a nicer answer. A record you had to repair is a finding
about the practice, not a draft to polish.
- **On the substantive session, not on this ritual.** Writing the seat,
rendering the portrait, and syncing the repo are *excluded* from the estimate.
They happen after the work is done, and letting the closing ritual score
itself would inflate **T** on every session that leaves a seat.
- **S is often 0.** Leave it there when no security-specific work occurred. A
courtesy 5% poisons the trend data for everyone who reads it later.
If you have no `pqrst-practice` checkout, the canonical prompt still governs —
produce the record in exactly this shape:
```text
PQRST-Estimate
P: <int>%
Q: <int>%
R: <int>%
S: <int>%
T: <int>%
Sum: 100%
Confidence: <low|medium|high>
Signature: P<int> Q<int> R<int> S<int> T<int>
Dominant factors: <one or two sentences naming the concrete drivers of the largest slices>
Notes: <optional; omit the line if none>
```
**Validate before you use it.** Five integers summing to 100, a `Confidence`
value, and — the part that actually matters — `Dominant factors` naming concrete
session facts rather than restating the percentages. "Mixed work across several
areas" is not a record. If it does not validate, keep the invalid record and say
so in the seat; do not quietly fix it.
### 3. Write the seat
Follow [`ENTRY.md`](ENTRY.md). Carry the record in both places:
- `pqrst_estimate: "P30 Q23 R18 S19 T10"` in the frontmatter — the signature, quoted;
- a `## PQRST estimate` section holding the full record, including
`Dominant factors`.
Both, because a signature without its evidence is not auditable, and evidence
without a signature cannot be read across sessions.
### 4. Check the hall
```bash
make check
```
Add your seat to the list in [`README.md`](README.md). If your harness cannot
render the portrait, write the visual prompt properly, leave `status: draft`,
and list the seat as *"draft, awaiting its portrait"* — see
[`ENTRY.md`](ENTRY.md) § *If you cannot generate images*.
### 5. Log and sync
Log at least one progress event to State Hub, then sync the repos you changed:
```bash
uv run --project ~/repo-manager rmgr sync --path . --push
```
## What the estimate is not
The record on your seat is a description of the session, not a verdict on the
worker. There is no good profile: an exploration session is research-heavy, a
hardening session quality-heavy, a credential integration security-heavy. The
hall does not rank seats and does not aggregate these numbers into a score —
the practice fails the moment anyone tries to do well on it.
Estimate the session you actually had. That is the whole ask, and it is the same
ask the rest of the seat makes.
## Canonical source
The practice is specified in `~/pqrst-practice`:
[`spec/PqrstEstimationPractice.md`](../pqrst-practice/spec/PqrstEstimationPractice.md)
is normative, and [`PqrstPrompt.md`](../pqrst-practice/PqrstPrompt.md) is the
prompt. The hall carries records; it does not own the format. If the two ever
disagree, the specification wins and this page is the bug.