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
This commit is contained in:
parent
5da5db501c
commit
1ec16e24db
8 changed files with 268 additions and 10 deletions
112
CLOSING.md
Normal file
112
CLOSING.md
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue