Skip to content

Tickets on the agent-data branch, the holder is AGENT_ID, DECISIONS.md read as a stranger - #1755

Open
suleimansh wants to merge 146 commits into
mainfrom
stranger-read
Open

Tickets on the agent-data branch, the holder is AGENT_ID, DECISIONS.md read as a stranger#1755
suleimansh wants to merge 146 commits into
mainfrom
stranger-read

Conversation

@suleimansh

@suleimansh suleimansh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Reading packages/agent-data/DECISIONS.md as a stranger next to the code found three lines the code did not do yet — they described the branch after the planned rename. This PR makes the code do them, and fixes the rest of what the read found.

The code now does what the file says

  • The tickets and the queue live on the agent-data branch, checked out at .branches/agent-data. The tickets branch is gone from the code; @gemstack/skill-tickets no longer names a branch of its own and imports DATA_BRANCH like everyone else.
  • The holder of a claim is AGENT_ID from the environment when the process that started the agent set it (the daemon sets it), else the current branch. The tickets skill no longer reads the agent id off the .branches/agent-<id> folder name, so it imports nothing from @gemstack/skill-branches — the last skill-to-skill import.
  • .branches/agent-data matches the agent-* pattern the branches skill uses to find agent checkouts. The branches skill now treats agent-data as nobody's: never listed, renamed or deleted; data is refused as an agent id; an agent naming itself data gets agent-data-2. The name stays agent-data as decided.

Three bugs the cold reads caught, fixed with tests: @gemstack/agent-data treated any remote as "has a remote" while every push names origin, so a repo whose only remote is upstream got two failed pushes instead of the stated refusal; the branches skill deleted a caller-named birth branch without checking it was an agent-* branch; a forced worktree removal logged to stdout, which is the branches CLI's JSON stream. One known limitation is now stated instead of hidden: a scoped package (@acme/x) an agent installs still writes into the user's node_modules, because the dependency links go one entry deep.

The text fixes (one commit per file, then fresh cold-read agents per package until a read found only wording — agent-data 12 reads, skill-branches 4, skill-tickets 5+): agent-data/DECISIONS.md — the git terms where they exist (orphan branch, worktree, .git/info/exclude), "pushed and pulled on every change" corrected to what the code does, the two-writers bullet before the retry bullet, and four decisions the code makes that the file did not state (reads without a checkout, no remote, the git time budget, the pull also pushes a stranded commit). The tickets and branches DECISIONS.md, SKILL.md and SPECs follow the code changes.

Not in this PR: the agents-logs branch stays the framework's own (the fold into agent-data is a framework change, not a decision of any skill); the queue split into skill-queue; publishing.

Cutover, by hand, per project already running the daemon (the tickets branch carries the data):

git push origin origin/tickets:refs/heads/agent-data   # the data moves, history included
git push origin --delete tickets && git branch -D tickets
git worktree remove --force .branches/tickets
rm tickets                                             # the root link; the daemon remakes it into .branches/agent-data

then rewrite .the-framework/LAYOUT (tickets-branch: ticketsdata-branch: agent-data) as the project's own commit, since the layout gate refuses a build whose marker differs.

Suites: agent-data 53, skill-branches 77, skill-tickets 58, framework 1386 node + 865 vitest, all green.

🤖 curated · Fable 5.1, effort high — the agent read the packages and wrote the changes and this text; the calls (close the gap in code rather than soften the file, keep the name agent-data, leave agents-logs alone) are mine.

suleimansh and others added 30 commits September 3, 2026 16:14
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…kill (packages/framework/package.json)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…sets/SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…sets/update_tickets.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…sets/update_tickets.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…kill (packages/framework/prompts/tickets_yourself.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…kill (packages/framework/prompts/tickets_yourself.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…est.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…kill (packages/framework/src/daemon-runtime.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…services.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…services.test.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…services.test.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…services.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd-rpc/control.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd-rpc/control.test.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd-rpc/control.test.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd-rpc/control.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd-rpc/reads.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd/docs.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd/docs.test.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd/docs.test.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd/tickets.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…rd/tickets.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
suleimansh and others added 30 commits September 3, 2026 21:24
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…li.test.ts)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…li.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
…li.test.SPEC.md)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAY65dFQcLpVB4q32YKSv9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant