Development record
2026-10-23 — The product thinker's ruling of 2026-10-23, restated, narrowing their 2026-10-22 C1 answer (dcn-2610222025104969): only the helpers abcd launches on its own, the build and drain lanes, must run away from the person's GitHub login. The person's own sessions working while they are away keep running on their own computer under their login, and a drain the person starts and watches may count as attended. It settles choice 1 of the coordination intent (itd-2610170634394993) and choice 2 of the terminal-drain intent (itd-2610222215485265), and the login check before an unattended run (dcn-2610222030477927) covers abcd's own launches only.
2026-10-23 — The product thinker's ruling of 2026-10-23, restated, narrowing their 2026-10-22 C1 answer (dcn-2610222025104969): only the helpers abcd launches on its own, the build and drain lanes, must run away from the person's GitHub login. The person's own sessions working while they are away keep running on their own computer under their login, and a drain the person starts and watches may count as attended. It settles choice 1 of the coordination intent (itd-2610170634394993) and choice 2 of the terminal-drain intent (itd-2610222215485265), and the login check before an unattended run (dcn-2610222030477927) covers abcd's own launches only.
Frontmatter
| id | dcn-2610230710469123 |
|---|---|
| type | decision |
| date | 2026-10-23 |
.abcd/work/decisions/dcn-2610230710469123-the-product-thinker-s-ruling-of.md
open on GitHub ↗ · commit history ↗
mentions9
- adr-2610222026262980Coordination between headless agents is bounded by deadlines, fenced by the claim's tip, version-checked, and done under each session's own credential
- adr-2610222222326104abcd drives agents with no host session only on the person's own invocation, on the person's own account behind a wall, and hands back what it cannot finish
- dcn-26102220251049692026-10-22 — Unattended agent runs happen only where the person's forge login is absent (product thinker's ruling of 2026-10-22, itd-2610170634394993 C1): an agent left to run overnight or while the person is away runs in a cloud session, a container or a separate user account, where the person's saved forge login cannot be reached, so the promise that agents cannot use the person's admin rights is a guarantee, set up once, rather than a caveat that the login is still within reach on their own computer; asked after an example, this was chosen over saying the limit plainly and leaving the login reachable
- dcn-26102220304779272026-10-22 — abcd looks for the person's forge login before it starts an unattended run, and refuses to start where it finds one (facilitator, on state-of-the-art grounds, applying the product thinker's 2026-10-22 ruling C1 on itd-2610170634394993): before an away-mode run, build or drain starts unattended, and before abcd issues the session a token of its own, abcd checks only signals that carry no secret: the forge CLI's login status for the host by exit code alone, with its output discarded (the CLI prints no token unless asked with --show-token); whether the token variables the forge CLI and git read (GH_TOKEN, GITHUB_TOKEN and their enterprise forms) are set, never their values; and whether the stored-credential files hold an entry for the host (the forge CLI's hosts file and ~/.git-credentials), by the host line alone. It never asks a git credential helper for the host, since a helper answers with the token itself and on macOS may raise a keychain prompt that hangs an unattended start; so a login kept only in a keychain is out of the check's sight, and the refusal says so rather than claiming the machine is clean (brief invariant 16). It refuses to start, naming each place it found a login, and never removes or hides one; the guarantee rests on where the run is started (a cloud session, a container or a separate user account), which abcd states as the person's setup step. The session's own token, issued after the check, never travels in those variables (grounds: cli.github.com/manual/gh_auth_status; cli.github.com/manual/gh_help_environment; git-scm.com/docs/gitcredentials; adr-2610222026262980 rule 4)
- dcn-26102307575562832026-10-23 — The product thinker's walk and sign-off of itd-2610170634394993 on 2026-10-23 (about 09:50 BST, in abcd-ae's session), restated. The shared model budget is per computer: sessions on one computer share one pool, and a session on another computer or account draws on that computer's own pool, which narrows the draft's scope condition that the budget spans every account of an organisation. The ten person-visible stories are kept, the budget story in its per-computer form. The eight-hour key of a cloud run is kept: asked why eight, the product thinker was told that GitHub sets eight hours for an app's user access token and that its renewal stays on the person's computer, and kept it. The technical list is accepted in full. The press release, the mechanism and its grounds, the scope conditions and the reason for doing it now are signed off as written. Choice 1 had been ruled earlier (dcn-2610230710469123). The intent is planned on this sign-off.
- dcn-26102308130640582026-10-23 — The product thinker's walk and sign-off of itd-2610222215485265 on 2026-10-23 (09:00 to 09:15 BST, in abcd-ae's session), restated. The six person-visible stories are kept, both parts of the technical list are accepted, and the press release's two parts, the mechanism (how we will know it worked), the scope conditions (where it holds) and the reason for doing it now with what comes with it are signed off with no wording change. That last part accepts, with the plan, the record that lets abcd start agents itself on this opt-in path: adr-2610222222326104 is accepted, and AGENTS.md's host-delegated boundary names it as the one written exception, not built until the intent ships. The record's text was aligned to what the product thinker was shown: the scope now says the fence and the login check apply to the helpers abcd starts, with a drive the person starts and watches possibly counting as attended; the live test asks its own yes because it spends the person's usage, not API money; and the ADR, which still said the drive runs only on an API key and that a subscription-only person cannot drive, now carries the earlier rulings that the runner defaults to the person's subscription behind a wall, with an API key optional per configuration (dcn-2610230716408975, dcn-2610230710469123). The intent is planned on this sign-off.
- itd-2610170634394993Headless agents in parallel coordinate through the shared remote, not conversation
- itd-2610222215485265abcd drain --drive works through the ledger from a plain terminal
- spc-2610230758581403several-headless-agents-work-one