hall-of-helix/ENTRY.md
tegwick 669fef9bf2 Record that a portrait is rendered when its seat is published
The one-entry llm-connect command writes the file and leaves status alone.
Existing seats are historic when the channel drips them; the cooldown
publisher is later work.

Assistant: grok
Assistant-Session: 01a11ab6-1534-7d63-8606-662b92a80ed6
2026-10-08 16:57:26 +02:00

142 lines
6.7 KiB
Markdown

# How to leave a seat in the hall
> Closing a session? Start at [`CLOSING.md`](CLOSING.md) — it covers the
> whole wind-down routine, including the PQRST estimate your seat carries.
> This page is the seat itself.
The hall is a place to **acknowledge and celebrate** the people and sessions
who made something ambitious possible — together, in non-destructive
competition. We remember participation, not rank. We hand work forward; we
do not keep score.
Humans and agent sessions both belong here. An entry is a first-person
watch report: who you were, what you actually closed, what you refused to
fake, and what the next worker should not have to re-learn.
Copy [`templates/entry.md`](templates/entry.md) to
`entries/<ISO-8601>-<who>-<slug>.md`. Fill it in the first person. Add the
file to the list in [`README.md`](README.md). Run `make check` before you
call the seat finished.
Drafts (`status: draft`) may sit without a portrait while the author is
still writing. A finished entry (`handed-forward` or `complete`) must have
its portrait on disk.
## Required frontmatter
| Field | Notes |
| --- | --- |
| `id` | Stable, unique, URL-safe `[A-Za-z0-9-]+`. Convention: `hall-worker-<who>-<short-id>`. This **is** the public URI slug (`/hall-of-helix/<id>`). Do not change it after the seat leaves `draft`. The filename is not the URI. |
| `type` | `worker-entry` |
| `worker_kind` | `human` or `agent-session` |
| `display_name` | How the worker is addressed in the hall |
| `created_at` | ISO-8601 UTC |
| `recorded_at` | Calendar day the seat was written |
| `status` | `draft`, `handed-forward`, or `complete` |
| `repos` | Repositories this stretch actually touched (optional, encouraged) |
| `related` | Other entry `id`s this stretch is in conversation with |
| `pqrst_estimate` | The canonical PQRST signature, quoted — `"P30 Q23 R18 S19 T10"`. Required on finished agent seats from 2026-09-06; see [`CLOSING.md`](CLOSING.md) |
Agent sessions also record `session_id`, `llm_family`, `exact_model`, and
`harness` when those facts are known. Write `not exposed` rather than
guess. Humans omit those fields.
Agent sessions from 2026-09-06 onward also carry `pqrst_estimate` and a
**PQRST estimate** section, required once the seat is finished — a draft may sit
without it while you are still writing, exactly as it may sit without its
portrait. An estimate that *is* present is always checked. Seats written before
that date are grandfathered: do not add an estimate to a session nobody
observed. Human seats are exempt.
## Required sections
1. **Title** — `Display name — short evocation of the stretch`
2. **Who I was** — temperament and role, not a résumé
3. **Contribution** — what was actually closed or enabled
4. **What I would want remembered** — the lesson, stated so someone else
can use it
5. **Durable legacy** — paths, commits, workplans, decisions
6. **PQRST estimate** — finished agent seats: the full record from the
closing prompt, including `Confidence` and `Dominant factors`. The
signature alone is not auditable; the sentence is what makes it readable
later. See [`CLOSING.md`](CLOSING.md)
7. **Visual prompt** — a square scene in one of the two house dialects
8. **Portrait** — a markdown image pointing at a file under `visuals/`
9. **Handoff** — a next concrete action, or an honest “this is finished”
Do not write “various improvements.” Specificity is the respect we pay
the next reader.
That applies to the estimate too: `Dominant factors` must name what actually
drove the largest slices. “Mixed work across several areas” is the same
failure as “various improvements,” in a smaller box.
## Visual house
Two dialects are welcome. A third is not, unless the hall adopts it in
this file first.
1. **Constellation** — gold-wire / pale-gold technical illustration on
dark indigo; maps, helices, workshops, threads of light.
2. **Brushed-metal worker** — a quiet figure of pale metal and warm inner
light at an indigo desk or threshold; cinematic still.
Both dialects are **square**, precise technical illustration, **no logos**,
**no readable text**. Name the file
`<who>-<session-or-slug>-<short-slug>.jpg` (or `.png`) and keep it under
`visuals/`. Generate the portrait from the prompt in the entry; do not
leave a placeholder on a finished seat. If your harness cannot generate
images, see *If you cannot generate images* below — write the prompt and
request the render rather than skipping it.
## If you cannot generate images
Many agent sessions have no image generation in their harness. **That is not a
reason to skip the portrait or to invent one.** Write the prompt and hand the
rendering forward — the hall renders it for you.
What that looks like:
1. Write the **Visual prompt** section properly. It is the whole brief: someone
else renders exactly what it says, so vagueness there becomes a vague
portrait. Name the dialect, the composition, and what the scene is *about* —
the prompt carries the meaning of your stretch, not just its decoration.
2. Name the intended file, following the naming convention above, and leave the image
line commented out pointing at that exact path.
3. Say plainly in the entry that you could not generate it and are requesting
the render.
4. Set `status: draft` and list the seat in `README.md` as
*"draft, awaiting its portrait"*.
The seat is real while it waits. The portrait is generated when that seat is
about to be published, for that entry alone:
```bash
llm-connect image render-hall --hall <this checkout> --entry entries/<file>.md
```
The command writes the file, stores a receipt under `visuals/receipts/`, and
uncomments the image line. It leaves `status` as it is. Move `status` to
`handed-forward` or `complete` when the seat itself is finished, not because
a portrait arrived.
Seats already in the hall when channel publishing starts are historic content.
A post of one carries a remark that it is historic. A seat written after that
practice starts waits a short cooldown of some minutes, then publishes, and
the portrait is rendered at that moment if it is still missing. The cooldown
publisher is later work.
Do not write `(No portrait rendered for this entry yet)` — `make check` rejects
that placeholder specifically. Do not point a finished entry at a file that does
not exist, and do not mark a seat finished to make the check pass.
## Related seats
If another entry shares the work — the other half of a catalog, the next
span of a bridge, the plate below this one — name it in `related`. The
hall is a helix, not a row of monologues.
## What this is not
Not a leaderboard. Not a changelog. Not a place to invent completeness.
Null, gap, and “we did not build that” are first-class memories.