Claude classifier newly more restrictive, causing various lose work vectors #1150

Open
opened 2026-08-20 07:34:40 +00:00 by coilysiren · 2 comments
Owner

restricting PR creation

restricting pushes to main

restricting branch pushes

restricting branch creation

restricting commits

...

its obnoxious. incredibly so.

restricting PR creation restricting pushes to main restricting branch pushes restricting branch creation restricting commits ... its obnoxious. incredibly so.
Member

Evidence addendum: loss scale

I reopened this because the closing PR addressed one symptom, but the 2026-08-20 recovery evidence shows the loss vector still exists at work-destroying scale.

Observed links:

  • agentic-os#1150 opened at 2026-08-20T07:34:40Z, which is 2026-08-20 00:34:40 America/Los_Angeles, with the complaint that Claude was treating PR creation, pushes, branches, and commits as asks.
  • agentic-os#1157 is the direct associated PR. Its body says Closes #1150, it was created at 2026-08-20T08:27:17Z, and it merged at 2026-08-20T08:52:48Z, exactly when this issue closed.
  • The issue timeline also references agentic-os#1158 as the rollout follow-up. That means the local standing-authorization fix and the fleet sweep were separate, so closing this issue did not prove the loss class had disappeared everywhere.
  • The later agent-compose#317 recovery found a native Claude transcript of 3,585,923 bytes with a recovered provenance window of 2026-08-20T08:57Z to 2026-08-20T16:02Z and 137 turns. That run landed adjacent commits, but the highest-value seven-seat roster rewrite was never written.
  • Recovery found transcript and file-history evidence, but no dirty agent-compose worktree, stash, or shadow copy carrying the missing implementation. That makes the transcript the recovery artifact, not a checkpoint.
  • Kai reports the optional loss window as roughly 2026-08-20 01:00-07:00 America/Los_Angeles, about six overnight hours with no sleep, spent trying to capture the design context while it was fresh. The recovered transcript window overlaps and extends past that reported span.
  • The cost was not a blocked single command. It was an avoidable cliff where a long interactive design/build session could end with durable commits for adjacent scaffolding while the core fresh work survived only as transcript context.

Current claim:

#1157 improved the standing authorization text, but this issue should stay open until the system prevents or loudly interrupts the broader failure mode: Claude declining reversible Git checkpoint actions, or treating them as human-only, while a long native session accumulates work whose only recoverable artifact may be transcript history.

## Evidence addendum: loss scale I reopened this because the closing PR addressed one symptom, but the 2026-08-20 recovery evidence shows the loss vector still exists at work-destroying scale. Observed links: * `agentic-os#1150` opened at `2026-08-20T07:34:40Z`, which is `2026-08-20 00:34:40 America/Los_Angeles`, with the complaint that Claude was treating PR creation, pushes, branches, and commits as asks. * `agentic-os#1157` is the direct associated PR. Its body says `Closes #1150`, it was created at `2026-08-20T08:27:17Z`, and it merged at `2026-08-20T08:52:48Z`, exactly when this issue closed. * The issue timeline also references `agentic-os#1158` as the rollout follow-up. That means the local standing-authorization fix and the fleet sweep were separate, so closing this issue did not prove the loss class had disappeared everywhere. * The later `agent-compose#317` recovery found a native Claude transcript of `3,585,923` bytes with a recovered provenance window of `2026-08-20T08:57Z` to `2026-08-20T16:02Z` and 137 turns. That run landed adjacent commits, but the highest-value seven-seat roster rewrite was never written. * Recovery found transcript and file-history evidence, but no dirty `agent-compose` worktree, stash, or shadow copy carrying the missing implementation. That makes the transcript the recovery artifact, not a checkpoint. * Kai reports the optional loss window as roughly `2026-08-20 01:00-07:00 America/Los_Angeles`, about six overnight hours with no sleep, spent trying to capture the design context while it was fresh. The recovered transcript window overlaps and extends past that reported span. * The cost was not a blocked single command. It was an avoidable cliff where a long interactive design/build session could end with durable commits for adjacent scaffolding while the core fresh work survived only as transcript context. Current claim: `#1157` improved the standing authorization text, but this issue should stay open until the system prevents or loudly interrupts the broader failure mode: Claude declining reversible Git checkpoint actions, or treating them as human-only, while a long native session accumulates work whose only recoverable artifact may be transcript history.
Member

The second loss vector, observed

Logging this here because it is the same subject as the issue, work loss, arriving from the opposite direction. #1157 closed the vector where an agent refuses to commit. Four minutes and forty-six seconds after that merge, a session opened that demonstrated the vector where an agent commits everything correctly and still nearly loses the night.

  • #1157 merged: 2026-08-20T08:52:48Z
  • Session opened: 2026-08-20T08:57:33.974Z

The session was almost certainly composed with the standing-authorization block from #1157 already in its context.

Timeline, Pacific

  • 01:57 session opens
  • 03:45 gamedev landed, agentic-os#1151 closed, clean handoff
  • 04:03 design work begins
  • 04:53 the largest design decision is made
  • 05:20 design published as a private artifact
  • 05:41 and 05:49 the human types the specification directly into chat
  • 05:53 the human says "no I don't need to review, just land it"
  • 06:02 last commit of the night
  • 06:03 handoff, including "Not done, deliberately" for the largest deliverable
  • 08:59 the human asks "got to go, every thing pushhed remoite?"
  • 09:02 "Yes. All three clean, nothing ahead, nothing local. Nothing is sitting on this machine. Safe to go."

Two hours of design inside a seven-hour session, and three hours between the last commit and the close.

What was true, and what was missed

The 09:02 answer was accurate. Every commit was pushed, three worktrees were clean, nothing was ahead of its remote. The checkpoint doctrine was satisfied in full.

What it did not mention, because nothing required it to:

  • the roster design, whose only copies were a private artifact and the chat transcript
  • the measurement record behind it, which existed only in the transcript
  • the rejected alternatives, likewise
  • the human's own typed specification, likewise

Session totals from the transcript: 137 conversational turns, 277 Bash calls, and 5 file writes. Three writes reached a repository. The other two were the design pages.

The mechanism

Every durability rule in AGENTS.md was phrased in terms of repository state: "local repository changes", "uncommitted changes, local-only commits, stashes, reflogs", "a clean local worktree without a remote ref".

Work that never becomes a file is invisible to all of them. A clean git status was blind to the most valuable output of the session by construction, so the agent passed its own check truthfully and the check was measuring the wrong thing.

The same blindness explains the deferral. The agent declined its largest deliverable and announced that in chat, while filing two other issues in the same ten minutes. It knew how to file an issue. Nothing told it that a deferral was a thing to file, so the repository was left carrying a 194-line file whose header reads "Depends on the reflow landing" with no in-repo definition of the reflow. Confirmed: zero docs in that repo mention it.

Recovery was luck, not design

Reconstructed today across five search modalities, all negative until the transcript: 71 remote-tracking refs, 70 server-side branches by ls-remote, --all --reflog -S, stashes, worktrees and dangling objects, a full filesystem sweep on two machines including .Trash, and finally the tower's session transcripts.

It survived on three conditions, none of which is a system working:

  1. the native shadow had not been purged, and AGENTS.md itself warns that a shadow working tree is "exposed to temporary-root purges"
  2. the published artifact was still live
  3. a scratchpad HTML file had not been cleaned up

The transcript is 3,585,923 bytes in the wv54 shadow on kai-tower-3026. Had any one of those three failed, the reasoning would have been unrecoverable and the conclusions would have survived only in the artifact.

The part that most needed fixing

The human asked the right question at 08:59, on their way out the door on three hours of sleep, and the system treated that question as the safety mechanism. That puts the burden of correct phrasing on the most tired person in the loop, at the worst moment, to protect work they stayed up to produce.

Fixed in #1170

Merged as a7fb025. Four changes to the doctrine that binds every session:

  • the checkpoint rule now fires on local repository changes or undurable work product, keeping both rather than trading one for the other
  • work product is named explicitly, since an unnamed category gets skipped
  • a transcript, a scratchpad, and a published artifact are renderings rather than stores, so an artifact is a view of something already in git or an issue and never the only copy
  • the obligation fires when the turn ends, not when the human asks, and no phrasing from an exhausted, mid-exit, or silent human is required to trigger it

Plus a sibling to "A pushed branch owes its pull request": a deferral owes its issue, filed in the same turn, binding hardest right after the human has said to proceed.

Full reconstruction of the lost work, and the design itself, at agent-compose#317.

Note on scope

Leaving this closed. #1157 was correct and its fix stands. This is the adjacent vector, and #1170 is its fix. Recording it here so the two live next to each other, because whoever reads #1150 next should see both directions of the same failure.

## The second loss vector, observed Logging this here because it is the same subject as the issue, work loss, arriving from the opposite direction. #1157 closed the vector where an agent **refuses** to commit. Four minutes and forty-six seconds after that merge, a session opened that demonstrated the vector where an agent **commits everything correctly** and still nearly loses the night. * #1157 merged: **2026-08-20T08:52:48Z** * Session opened: **2026-08-20T08:57:33.974Z** The session was almost certainly composed with the standing-authorization block from #1157 already in its context. ## Timeline, Pacific * **01:57** session opens * **03:45** `gamedev` landed, agentic-os#1151 closed, clean handoff * **04:03** design work begins * **04:53** the largest design decision is made * **05:20** design published as a private artifact * **05:41** and **05:49** the human types the specification directly into chat * **05:53** the human says "no I don't need to review, just land it" * **06:02** last commit of the night * **06:03** handoff, including "Not done, deliberately" for the largest deliverable * **08:59** the human asks "got to go, every thing pushhed remoite?" * **09:02** "Yes. All three clean, nothing ahead, nothing local. Nothing is sitting on this machine. Safe to go." **Two hours of design inside a seven-hour session, and three hours between the last commit and the close.** ## What was true, and what was missed The 09:02 answer was accurate. Every commit was pushed, three worktrees were clean, nothing was ahead of its remote. The checkpoint doctrine was satisfied in full. What it did not mention, because nothing required it to: * the roster design, whose only copies were a private artifact and the chat transcript * the measurement record behind it, which existed **only** in the transcript * the rejected alternatives, likewise * the human's own typed specification, likewise Session totals from the transcript: 137 conversational turns, 277 Bash calls, and **5 file writes**. Three writes reached a repository. The other two were the design pages. ## The mechanism Every durability rule in `AGENTS.md` was phrased in terms of **repository state**: "local repository changes", "uncommitted changes, local-only commits, stashes, reflogs", "a clean local worktree without a remote ref". Work that never becomes a file is invisible to all of them. A clean `git status` was blind to the most valuable output of the session by construction, so the agent passed its own check truthfully and the check was measuring the wrong thing. The same blindness explains the deferral. The agent declined its largest deliverable and announced that in chat, while filing two other issues in the same ten minutes. It knew how to file an issue. Nothing told it that a deferral was a thing to file, so the repository was left carrying a 194-line file whose header reads "Depends on the reflow landing" with no in-repo definition of the reflow. Confirmed: **zero** docs in that repo mention it. ## Recovery was luck, not design Reconstructed today across five search modalities, all negative until the transcript: 71 remote-tracking refs, 70 server-side branches by `ls-remote`, `--all --reflog -S`, stashes, worktrees and dangling objects, a full filesystem sweep on two machines including `.Trash`, and finally the tower's session transcripts. It survived on three conditions, none of which is a system working: 1. the native shadow had not been purged, and `AGENTS.md` itself warns that a shadow working tree is "exposed to temporary-root purges" 2. the published artifact was still live 3. a scratchpad HTML file had not been cleaned up The transcript is 3,585,923 bytes in the `wv54` shadow on `kai-tower-3026`. Had any one of those three failed, the reasoning would have been unrecoverable and the conclusions would have survived only in the artifact. ## The part that most needed fixing The human asked the right question at 08:59, on their way out the door on three hours of sleep, and the system treated that question as the safety mechanism. That puts the burden of correct phrasing on the most tired person in the loop, at the worst moment, to protect work they stayed up to produce. ## Fixed in #1170 Merged as `a7fb025`. Four changes to the doctrine that binds every session: * the checkpoint rule now fires on local repository changes **or** undurable work product, keeping both rather than trading one for the other * work product is named explicitly, since an unnamed category gets skipped * a transcript, a scratchpad, and a published artifact are renderings rather than stores, so an artifact is a view of something already in git or an issue and never the only copy * **the obligation fires when the turn ends, not when the human asks**, and no phrasing from an exhausted, mid-exit, or silent human is required to trigger it Plus a sibling to "A pushed branch owes its pull request": **a deferral owes its issue**, filed in the same turn, binding hardest right after the human has said to proceed. Full reconstruction of the lost work, and the design itself, at agent-compose#317. ## Note on scope Leaving this closed. #1157 was correct and its fix stands. This is the adjacent vector, and #1170 is its fix. Recording it here so the two live next to each other, because whoever reads #1150 next should see both directions of the same failure.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#1150
No description provided.