Skip to content

DECISIONS.md as short as a rebuild needs; SKILL.md proven as written - #1756

Merged
suleimansh merged 62 commits into
mainfrom
decisions-shorter
Sep 5, 2026
Merged

DECISIONS.md as short as a rebuild needs; SKILL.md proven as written#1756
suleimansh merged 62 commits into
mainfrom
decisions-shorter

Conversation

@suleimansh

@suleimansh suleimansh commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

The three DECISIONS.md (agent-data, skill-branches, skill-tickets) and both SKILL.md, each read against the code by a fresh agent seeing only its package, round after round, until a read found nothing the code does that the file does not say and nothing the file says that the code does not do. The rule for a line: it stays only if a rebuild of the package from the file alone would differ without it; bullets that say one thing are merged; no decision is cut. One commit per round (62 in all), so the history shows what each read caught.

The files grew, not shrank. The first pass shortened every bullet; every later read then surfaced a decision the code makes that the file had never stated, each a line a rebuild would otherwise get wrong. Where a read caught my own previous edit overshooting, the next commit says so.

  • agent-data/DECISIONS.md: 84 → 76 lines, four reads. Restored three meanings the shortening lost; added where reads look (the repository a worktree was made from), the lock's scope (in memory, per repository and branch), the output buffer, a failed write dropping the op's new files, the exclude rule written once, the library's own commit messages; corrected "every write pushes" and "a pull runs on its own".
  • skill-branches/DECISIONS.md: 93 → 150 lines, twenty reads. Among what the reads added: a branch gone only locally comes back from origin; the session-name charset and the leading-dash rule; forced removal; remove/prune push by default; links follow any branch, are made by the package's own runs, are judged by their target's name; what the reclaim pushes and when it does not; the holds-nothing rule as reachability, not merge state; what the skill has the agent do; every command's result and refusal shape, the JSON keys, the removal order.
  • skill-tickets/DECISIONS.md: 109 → 164 lines, twenty-two reads. Among what the reads added: the two callers and the executable; what the skill tells the agent; the full row and its keys; the sync's three steps and where the exclude rules are written; the command's detached write versus the program's checkout cycle; the refusal order per command; the queue file the command creates itself; placement details; the batch claim's message; a queue edit counting only once pushed.
  • skill-branches/SKILL.md: 48 → 50 lines, five reads, and skill-tickets/SKILL.md: 142 → 150 lines, five reads. Proven first: every command in both run as written in a throwaway repository, from a plain agent-* clone and from a .branches/agent-<id> checkout made the daemon's way, and one real agent run per skill (branches: name, commit, status; tickets: list, claim, plan, queue, release), with no old names or product words left. Then sentence by sentence. Added: a continued agent keeps the branch and the name it was given; status and name are the agent's only commands; the finish gate and the user's untracked files; put replaces the whole file, empty stdin included; close leaves the queue entry; release before stopping unless closed; a rename or branch switch changes the holder; the refusal shapes as printed. Both SKILL.SPEC.md follow.

Code findings that are not decisions are in #1757: the priority string, the branch budget scan, the npm pack tarballs, Source: lines, release's output, the queue's first unranked entry, the reclaim pushing a user's branch, remove by name versus by id, and more.

🤖 curated · Fable 5.1, effort high — the agent proposed every change and ran the reads and the rig; each round's picks are mine.

suleimansh and others added 30 commits September 4, 2026 19:50
…lock's scope, the buffer) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…up, the in-memory lock) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…write, the exclude written once) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…, the name charset, forced removal, the push default, links follow any branch) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…ssages, the pull is not a timer) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…, where a checkout branches from, what the reclaim pushes, what the skill has the agent do) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…t counts as on the remote, best-effort after the worktree) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…eads (origin, project-level commands, retry bound, close and the queue, what show answers) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
… show answers, no-ticket, the last-section placement) and wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…y, put creates, one merge, one cut)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…l-tickets DECISIONS (second), both SKILL.md (first)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…-tickets DECISIONS (third), both SKILL.md (second)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…-tickets DECISIONS fourth, both SKILL.md third), SPECs in step

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…anges the holder, one quoted argument)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…the clean gate and the user's files, dependencies are copies)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…pull, an unparseable lock versus an unreadable one)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…, a dirty checkout is never pushed, create versus attach, the routing order)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…r, origin names count, only invalid-name is retried)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…er close)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…valid-name clause in its place)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…he exclude written with the link, no-identity first)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…readable one, the stranded lock)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
suleimansh and others added 27 commits September 4, 2026 22:54
…y order, the suffix rule said plainly)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…rees, liveness is the caller's, word order)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…written, the Source trailer, an own lock first, the queue file the command creates)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…st entry, sibling names, the epoch, what a lock gates, commit subjects)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…bility not merge state, the skill's leading-letter rule)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…me's stem, heading gloss, the link's label, the batch claim)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…bject, the skill's two rules, the stop inside the removal)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…heading boundary, not-holder, the program's release)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…me, attach guards the id only, git-failed named, the stop hook, heldBy is the library's)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…omeone else's claim, no-remote for every write, result keys)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…y after a push, a leading dash id, prune says nothing on stderr)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…-repo bare, -D, the holds-nothing rule named)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
… only when true, queue done's answer, two phrases set straight)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…ata links kept, skipped detail, absolute dependency links)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…agent, the executable, the row's keys, the summary scan)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…links, which refusal names what)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…nce pushed, the holder decides who, the library's queue read)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…s shape, Outdated and the filename convention, empty stdin)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…ore stdin, an unreadable lock still listed, the ends)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…ink shape, an unreadable lock to the writers, the meta cap, [X])

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…r, the plan's cap, the meta truncation, midnight UTC)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…its checkout, the refusal order as one list, a section's end)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
…the ticket, the epoch sorts last, the stamp's value, the dangling link)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6TRhDByNQSYhqm4VtnNyT
@suleimansh
suleimansh merged commit 5c3bb92 into main Sep 5, 2026
2 checks passed
@suleimansh
suleimansh deleted the decisions-shorter branch September 5, 2026 01:34
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