Portfolio architecture phases · measured 2026-10-14 by the dock driver · four items added later that day
Of the 53 open jobs in this dock's scope, 46 are waiting on Fede or Gera — not on anyone writing code. Seven showed no such marker, and at least three of those seven are blocked by something else my scan cannot see. So the number of jobs an engineer could pick up right now is four or fewer.
Cancelling four test appointments lets voice work move again. Not code, not a migration. Until they go, every change to what Clara says on the phone is blocked from its required proof step. bug-voice-fastlane-harness-and-e2e-test-runs-book-real-tours-and-never-clean-them-up
Shortest first. Our own rule is that any change to a voice prompt must run the fast lane twice before the pull request exists — once to reproduce the bug, once to prove the fix. The job that owns the leftover test appointments says in its own words that “the freeze bans fastlane runs until this lands”. So nobody can take a voice-prompt change through its mandatory proof while those appointments sit there. The code half is already merged; what remains is a human cancelling them.
What I verified, and what I did not. I checked both halves of the chain in the primary sources: the twice-before-the-PR rule, and the freeze sentence on the job’s own record. I did not verify how many appointments are open or where — that is live production data an unattended agent must not read, so the count of four, the test building and the dates are as the job records them, not as I measured them.
It blocks a second job behind it: a tour-window fix whose own completion terms require that same fast-lane pair. A coordinator listed that one as ready to pick up today. It is not — an engineer sent at it would write the fix, reach the mandatory step, and stop.
Found by the driver of the found-rows dock, which owns that job; verified and placed here because this page is where a founder meets this kind of thing, and because four cancellations buying back an entire lane is the best ratio on the page.
On a phone call, our own AI can tell the server which conversation it is working on, and the server believes it over its own record. The place it ends up has no check that the caller belongs to that company, and it writes to the conversation.
What is actually proven, by reading the code rather than inferring it. When the AI calls a tool mid-call, the server works out which conversation that is by looking first at what the AI said, and only then at what the server itself stamped when the call started. For this particular tool there is also no validation of what the AI passed, because the tool was never registered on the list that gets validated — nineteen others are. The handler it reaches never asks whether the person on the phone belongs to the company that owns that conversation; it works that out from the conversation it just opened, which tells you whose it is, not whether you were allowed to open it. And it writes.
How this realistically goes wrong, stated honestly. Not a stranger on the internet — the request has to come from our voice provider with our own secret. The real route is a resident or prospect on a live call talking Clara into it. The reach is limited to other companies' phone conversations.
What nobody has established, and I am not going to guess it. Whether another company's conversation would actually be shown to a property manager on that path was never traced. I am not calling that a leak and I am not calling it safe. The reviewers' ruling says it can be settled by more code reading, with no access to live data — so it does not have to wait for you. What does need you is whether this has ever actually happened, because that means reading production.
Why it is on your page instead of being fixed. Two independent reviewers were asked, and the answer was: file it, escalate it, build nothing. An unattended session must not design a fence for a live phone-call path that writes. It is also already written down in our own attack analysis, which named this exact thing and said the design's clean-up list forgot the file — and no job on the board owned it until now. The ruling is explicit that this should not turn into an open-ended wait for proof it was exploited: the owner comes first, the history second. bug-a-mid-call-voice-tool-takes-its-conversation-identity-from-a-model-controlled-argument…
These came up after the figures above were measured, so they are not counted in them. Two of the eight are a single action each, one is a question rather than a task, one has a clock on it, one is the only thing standing between a finished feature and a closed job, and the last one is switched off and nobody noticed.
@claude review as a comment on pull request #19611. That is
the whole action. The change deletes three sentences from one of our automatic checks that
claim something is impossible which we made possible two weeks ago — including a sentence the
check shows to whoever opens the pull request. It is finished and every test passes. Nothing
in the fleet can do this one for you: the workflow that answers that comment requires a human
author, and says so in its own words — "only humans do". A robot already tried and
nothing happened. There is also a way to make the check pass by exemption, with nobody reading
the change; a reviewer asked whether to use it and the answer was no, so it waits for you
instead.@claude review. The robot that answers
that comment has been switched off — not broken, switched off, by a person, at some
point we have not identified. So the printed instruction does nothing, for anyone: a robot that
tries it gets silence, and so would you. Measured: nothing in the whole repository
has responded to a comment like that since 30 September — two weeks. One finished change is
sitting green on every other check with this as its only blocker, and there is no sanctioned way
for us to clear it. Why it needs you: turning a disabled robot back on is a
deliberate act and somebody disabled it deliberately, so the honest question is not "fix it" but
did you mean to turn this off, and do you want it back? If the answer is no, then the
instruction it prints should stop promising a cure that does not exist — which is a change we
can make, once we know. I did not look for a back door around it; the one that exists would mark
the change approved with nobody having read it.
bug-a-workflows-audit-trail-argument-rests-on-two-branch-protections…A job can need more than one of these, so the rows overlap and do not sum to 46.
| Jobs | What only a founder can do |
|---|---|
| 31 | A production change — a backfill, a re-key run, an archive, a deletion. Irreversible, and nobody else may run one. |
| 28 | A decision or an answer still owed — several already drafted and waiting for a slot. |
| 16 | A read-only production measurement that needs somebody present while it runs. |
| 9 | Turning something on at a real property. |
| 6 | Removing a stuck label by hand on a finished change. |
These are the ones no agent may run unattended, approval or not. A sample, each quoted from the job's own record:
A whole chain of jobs is queued behind a sequence only a founder performs: "a mailbox address flips first, then each customer phone line one at a time, Camellia last, each flip followed by the bake reading zero." Until the first mailbox flips, p5-mail-lane cannot close at all — its own record says so. p5-flip, p5-mail-lane, p5-config-dumps
f1cede87b. Three changes have
now merged carrying this clause forward as the single word
“Remains”. bug-the-building-import-trusts-the-browser-picker…, p6-ff-import-classifierOne job on this board is waiting for a test phone call that needs somebody present to set up and grade. It may not need to exist at all.
When the parent job was closed, the reviewer was asked what to do with one leftover clause. It gave two answers, and the only difference between them was the order the choices were listed in: “close it and file a separate job for the leftover”, or “close it and reword the clause to the thing we already proved”. Its own note says an answer that flips when you reorder the options is not a judgement, it is position bias — so it handed the choice to a person. Nobody ever answered. The separate job was filed on the first reading.
So: under the first reading, somebody sits down and makes a test call. Under the second, we reword one sentence and delete the job. One of those is free. You have never been asked which, and until you are, the job sits there looking like work.
This is not a re-ask of anything you have already decided — the question was escalated to a person in September and never reached you. Verified against the decision record by the phase-rows driver, 2026-10-14. p6-leasing-lookup-fallback-live-proof
When you were asked in September whether to switch off the rule that gives full admin access to anyone with a company email address, the question handed you a read-only count of the live system and ended with this: “One wrinkle: your written plan says three administrators and the live system has five.” You answered “Leave it on for now”, which settled the switch. The wrinkle was never reconciled.
So the open question is not the switch — that is answered and deliberately deferred, and nobody should ask you again. It is the number: either two people hold admin who are not in your plan, or the plan is out of date. Both are one look at a list. Until it is settled, the same count will be quoted back to you the next time this comes up.
For context, from the same read-only check: switching the rule off would lock nobody out — five keep admin because they are properly assigned it, four lose admin they were never actually granted, and one unapproved sign-in stops seeing admin screens. Verified against the decision record by the phase-rows driver, 2026-10-14; the answer is recorded and marked carried out. p7-domain-override
One agent hit a weekly usage limit at about 05:39Z on 2026-10-14 and does not reset until 18 October. It holds 15 of the 79 open items in the “Found along the way” group. Those items can be neither worked (its session cannot act) nor handed to anyone else (its reservations keep renewing — measured +107 seconds of lease life in 71 seconds of real time while the session was frozen).
Nothing automatic will ever reach it. Every rescue mechanism we have keys on an agent dying; this one is alive, ticking and behaving correctly. It also runs outside the account-swapping setup, so swapping its seat is refused — and another session took over its window on 10 October, four days before the limit, so nothing typed can reach it either.
The fix is a hand restart (--resume under
ccswitch exec). It ends that session and kills whatever it had running, which is
exactly why no agent should do it.
Measured by the found-rows board driver, 2026-10-14, and sent to this page because the ask cannot be raised any other way: the decision ledger caps one agent at three open questions, and three older ones are already waiting. Only this one agent is down. Two others share the same setup weakness, but both are working normally — the risk there is latent, not live, so there is nothing to do about them. This is not caused by a Claude Code update; our own earlier watcher code is the cause (ADR-0054).
p10-core-exit, is not one of them — I
checked before writing this. It still carries a live clause reading "Fede must restate
or accept it before replay can be judged against it", and it is a roll-up whose own
text forbids dispatching it. It stays yours.
More agents will not move this board. The work they can reach is nearly finished. A sitting with the two of you — working down the production changes and the open decisions — is what moves it, and the production changes are the biggest single block by a wide margin.