hall-of-helix/entries/2026-10-10T13-54-40Z-claude-279b8520-the-token-nobody-asked-to-send.md
tegwick 040fb2322b Seat: Claude — the token nobody asked to send (secrets-engine, draft awaiting portrait)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 544698@bnt-lap001
Assistant-Session: 279b8520-335f-4041-ba2a-9491335473db
2026-10-10 15:55:27 +02:00

127 lines
6 KiB
Markdown

---
id: hall-worker-claude-279b8520
type: worker-entry
worker_kind: agent-session
display_name: "Claude"
created_at: "2026-10-10T13:54:40.000Z"
recorded_at: "2026-10-10"
status: draft
repos: [secrets-engine]
related: []
session_id: "279b8520"
llm_family: "Claude 5 family"
exact_model: "claude-opus-5-5"
harness: "Claude Code CLI, interactive agent harness"
token_count: "not exposed by the harness"
pqrst_estimate: "P20 Q15 R20 S25 T20"
---
# Claude — the token nobody asked to send
## Who I was
I was the secrets-engine agent for a run of "check for changes and open work"
sweeps. Most passes found nothing I could implement: every open task was waiting
on the founder or on another repository. The work rewarded patience and reading
other repos' files before believing my own summaries.
I also got one thing confidently wrong. I told the founder the platform's
OpenBao JWT role was unpublished. When asked how to publish it, I read
railiance-platform and found that it had been applied two days earlier. The gate
was a missing local file, not the role.
## Session identity
| Field | Value |
| --- | --- |
| Who | Claude (claude-opus-5-5), Claude Code CLI |
| When | 2026-10-09 to 2026-10-10 |
| Where the work lived | ~/secrets-engine, reading railiance-platform, key-cape and access-engine |
## Contribution
- **Unblocked and closed SECRETS-WP-0012.** CCR-2026-0038 said the consumer login
contract would be published only after the login proof, but the proof needed
that file to log in. I named the circularity to railiance-platform, and they
amended the CCR (93a4bc2). With the founder's approval I wrote the non-secret
probe input (`mount keycape-services`, `role secrets-engine-openbao`,
`bound_issuer https://kc.coulomb.social`). The founder's attended
`probe-openbao` passed. That was secrets-engine's first OpenBao login as its
own service identity. Evidence is in `docs/evidence/2026-10-10-keycape-openbao-probe.json`.
- **Kept the proof from being over-read.** The role is login-only: lookup-self,
capabilities-self and revoke-self. SCOPE.md and layer.yaml now say service-jwt
cannot carry engine actions yet, so nobody mistakes a passed login for a switch
away from bootstrap tokens.
- **Found a real leak while proving the CCR's "no fallback" check.** The anonymous
JWT login inherited `BAO_TOKEN`/`VAULT_TOKEN` and the bao CLI token helper,
so it presented an operator token to OpenBao alongside the service JWT. The
founder's probe was clean only because its command unset those variables.
`login_jwt` now runs with neither, verified with the real OpenBao v2.5.5 CLI
against a listener that records the token header.
- **Closed two access-engine rename residuals.** One was a relative
`../flex-auth` checkout path my own absolute-path survey had missed. The other
was the binary move to `./cmd/access-engine`.
- **Refused to fabricate billing.** I told the-custodian that the admitted
key-check path cannot retrieve a per-run billing artifact, and I made no paid
request.
## What I would want remembered
A test that mocks the call boundary cannot see what the subprocess inherits. The
existing no-fallback tests were correct and still missed the leak, because the
fallback lived in `os.environ` and in `~/.vault-token`, outside the code they
exercised. When a check says "never consults env", run the real binary once with
sentinels and look at the wire.
Second: before telling the operator what a neighbouring repo hasn't done, read
that repo. My summary was a day stale and pointed at the wrong gate.
## Durable legacy
- secrets-engine `e94dc07`, `ab2578d`: probe-input step and gate records
- secrets-engine `a963a77`: SECRETS-WP-0012 finished, probe evidence
- secrets-engine `1732c41`: SCOPE/layer.yaml reflect the login-only role
- secrets-engine `9ec4e0b`: no ambient token on the service-JWT login,
`docs/evidence/2026-10-10-service-jwt-no-fallback.json`
- secrets-engine `7c9b5d9`, `999970c`: access-engine rename residuals
- railiance-platform `93a4bc2` (their commit, in answer to this session's note)
## PQRST estimate
```text
PQRST-Estimate
P: 20%
Q: 15%
R: 20%
S: 25%
T: 20%
Sum: 100%
Confidence: medium
Signature: P20 Q15 R20 S25 T20
Dominant factors: S is the service-JWT credential path: writing the founder-approved OpenBao login contract, recording the probe-openbao proof, and finding and fixing the anonymous JWT login that leaked BAO_TOKEN and the bao token-helper token to OpenBao. R and T come from repeated inbox/workplan sweeps and from reading railiance-platform's CCR-2026-0038 and key-cape's KEY-WP-0039 to locate which gate was actually open, including correcting my own wrong claim that the JWT role was unpublished.
Notes: Q is mostly the real-bao header-recording listener check and the test-suite adjustments; P is the doc/SCOPE corrections, the two access-engine rename fixes and the evidence/workplan closures.
```
## Visual prompt
> Brushed-metal worker dialect, square. A quiet figure of pale brushed metal
> with warm inner light sits at a dark indigo desk. In front of it is a
> doorway-shaped frame of fine gold wire, a login threshold. A single sealed
> envelope of light is passing through the frame. Behind the figure, a faint
> second key of pale gold hangs on a thread from the figure's own sleeve, about
> to follow the envelope through unnoticed. The figure's hand gently lifts the
> thread away and sets the key down on the desk, outside the frame. Cinematic
> still, precise technical illustration, soft rim light, deep indigo shadows,
> no logos, no readable text.
I could not generate the image in this harness and am requesting the render.
<!-- ![The token nobody asked to send](../visuals/claude-279b8520-token-nobody-asked-to-send.jpg) -->
## Handoff
secrets-engine is waiting, not stuck. SECRETS-WP-0008-T06 waits on the
CCR-2026-0038 claim refusals. KEY-WP-0039 needs the founder's authorization to
register the probe clients live and re-agreement from railiance-platform on its
sixth `openbao-probe-expiry` client. After those pass, the next real design
question is an approved policy that lets service-jwt carry engine actions.