Development record
2026-11-02 — The product thinker ruled on the morning of 2026-11-02, in an interview another session relayed and one question put here: the test stages run from one fixed check directory per repository, ~/.abcd.noindex/tests/<root-sha>/, used by one check at a time, so results carry over between worktrees and criterion 1 of itd-2611011325421304 holds for tests that read the tree; a key's budget caps count the whole key, every session on that key pauses together at a cap, and spend never passes it, which replaces the 2026-11-01 reading in dcn-2611012123470476 that a limit stops only the session that hit it; what happens at a cap is a per-repository setting, pausing by default, with moving to a second key the person named for that purpose as the alternative and the subscription never; the terminal interview fix iss-2611011402496418 is lowered to minor so the build loop takes it on the API key, a ruling the product thinker gave directly to the session that records it, in answer to a question it put, which that session's transcript in the person's transcript store carries; and a command agents cannot run that admits one named issue above minor to the build loop is to be built next (iss-2611020305525945). The same morning they confirmed the edited wording of itd-2611011325421304's press release, that a test declared as reading what abcd cannot see always runs, in place of the wording confirmed at its interview.
2026-11-02 — The product thinker ruled on the morning of 2026-11-02, in an interview another session relayed and one question put here: the test stages run from one fixed check directory per repository, ~/.abcd.noindex/tests/<root-sha>/, used by one check at a time, so results carry over between worktrees and criterion 1 of itd-2611011325421304 holds for tests that read the tree; a key's budget caps count the whole key, every session on that key pauses together at a cap, and spend never passes it, which replaces the 2026-11-01 reading in dcn-2611012123470476 that a limit stops only the session that hit it; what happens at a cap is a per-repository setting, pausing by default, with moving to a second key the person named for that purpose as the alternative and the subscription never; the terminal interview fix iss-2611011402496418 is lowered to minor so the build loop takes it on the API key, a ruling the product thinker gave directly to the session that records it, in answer to a question it put, which that session's transcript in the person's transcript store carries; and a command agents cannot run that admits one named issue above minor to the build loop is to be built next (iss-2611020305525945). The same morning they confirmed the edited wording of itd-2611011325421304's press release, that a test declared as reading what abcd cannot see always runs, in place of the wording confirmed at its interview.
Frontmatter
| id | dcn-2611020715491928 |
|---|---|
| type | decision |
| date | 2026-11-02 |
.abcd/work/decisions/dcn-2611020715491928-the-product-thinker-ruled-on-the-morning.md
open on GitHub ↗ · commit history ↗
mentions5
- dcn-26110121234704762026-11-01 — The product thinker ruled on 2026-11-01, for the agents abcd starts on a person's API key: each session names the one key it uses, so spend is attributed per session and a limit stops only that session; abcd finds a named key in the operating system's own secret store (the login keychain on macOS, the Secret Service on Linux); spending caps are configurable per day, per week and per month, and when any one is reached abcd pauses and waits rather than falling back to another route or surprising the person; a key route with no cap set refuses to start, so a budget is always set before money is spent; and a cap is set or raised through a command abcd refuses to agents, with a security-key or fingerprint touch to raise it left to a later intent. These settle the open questions of itd-2611011230226453 and its key-supply rework.
- iss-2611011402496418A planning interview run in a plain terminal on the API-key runner ended at its first question on 2026-11-01. The interviewer wrote a sound question, but abcd's question check refused it at 39 rows against a 32-row limit, and the refusal was treated as the runner's invalid answer: with no host fallback in a terminal the interview stopped, printing 'runner: claude invalid for planning-interviewer ... the contract's validator refused its answer: the question breaks 1 rule(s): tab 1, whole tab (rows)'. The person was left with an internal message and no next step. The brief tells the role 'abcd refuses a receipt ... whose question breaks a rule below, and the interview stops', and only a refused done outcome is ever handed back for another turn. A host session's own question check shows an over-long question with a warning and has the agent redraft refused ones silently, so the terminal route is stricter than the host route for the one rule a model cannot count exactly. The product thinker ruled the same day (dcn-2611011402510346) that an interview must never stop on a question abcd's check refuses, and that anything which does end an interview tells the person in plain words what happened and what to do.
- iss-2611020305525945abcd build refused the terminal interview fix (iss-2611011402496418) at 03:05 on 2026-11-02: 'is handback under adr-2609291342092738 (severity): severity major is above the drain's (nitpick, minor); remedy: the issue is a person's'. The product thinker had directed that fix the evening before and ruled that agent work runs on the API key, but the only route for a major issue is a host session, which bills the subscription the person asked to spare. Nothing lets a person admit one issue they have decided on to the loop, so a directed major fix waits for the person or runs on the route they ruled out.
- itd-2611011230226453Agents abcd starts on your API key stay within the budget you set
- itd-2611011325421304A one-package change is checked in minutes, not the whole suite