You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
work: a repo setting work.queueBranch: true now needs a workflow that cuts the queue branch and opens its PR. The drain previously did both and stopped the whole run when it could not.
skills: a config mapping work.linear.states.done no longer moves the board on the accept verdict; add states.accepted (and list it in statuses) to restore it. Until then the accept verdict leaves the state untouched, which is the existing "unmapped step" behaviour and the intended failure direction — a board that lags rather than one that claims a ship.
Features
ci: run the skill conformance check in CI (026417c), closes #105
issue: pin the untriaged marker as a configured label (#179) (885d243)
issue: select the grilling interview engine with a root grillWith key (#214) (5e44797)
merge-deps: extend to the GitLab forge (#219) (638ec05)
prune-comments: scope the Bash grant to read-only git (e7c3465), closes #135
pull-request: base a stacked branch on the PR below it (#200) (850ca90)
refine-issue: add skill that takes an issue to ai-ready (#180) (73e3d6e)
release: mark shipped work Done at the default-branch merge (7267e00), closes #160
release: state the GitHub-only limitation as a decision (#218) (e3cf795)
skills: add a local file-based issue tracker driver (#202) (0cefe26)
skills: add GitLab as a third forge and issue tracker (#216) (975d4a0)
skills: lead every run report with a TL;DR (#212) (af5e031)
skills: link into every client's skills path (c925b7e), closes #118
skills: make a blanket Bash grant a named exception (8e8a98a), closes #135
skills: make a cross-skill call optional by default (#192) (1b1a684)
skills: permit a thin shape for alias-style skills (#195) (7a1cc4e)
skills: pin grant minimality against the calls a skill drives (#201) (5d09445)
skills: separate drain concurrency from the run cap (#199) (f3933ba)
skills: stop the work loop loading the config and lock blocks twice (#198) (6a63d1e)
tldr: add a summariser skill with a fixed section frame (#196) (cb6001e)
update-deps: add Go as a fourth ecosystem (#194) (bcd07bc)
validate-skills: map client extensions across four clients (8b094ed), closes #109
validate-skills: scope the Bash grant to what it drives (60cbd2d), closes #135
work-implement-queue: report a drain's queue state so a loop knows to wait or stop (#190) (c56f166)
work-implement: drive tdd where a test can reach the change (#171) (48236af)
work-implement: give the block clause a diagnosis discipline (#172) (5bf95df)
work-implement: group a worktree drain's PRs behind one queue branch (#217) (fbe31b9)
work-implement: honour blockedBy relations under branch worktree (#174) (2c30e74)
work-implement: name the collision gap in worktree + parallel mode (#188) (e2c24e7)
work-implement: pace the backpressure wait by mode, not a fixed interval (#210) (a14a2ba)
work-implement: read an order-free relation as a parallel-batch mutex (#184) (087e5ad)
work-implement: route the loops' feedback to the pull request (#193) (8c0292b)
work-implement: rule a rebase conflict on a shared branch (#173) (c829f7c)
work-implement: state the recommended effort per loop (#213) (3c53efd)
work-implement: withhold issues whose labels contradict each other (#177) (f28ef33)
work: keep AI pull requests in draft until review is confident (#215) (84f2f55)
work: let the repo own the queue branch, not the drain (240f740)
work: settle the owner decisions behind the needs-human backlog (#207) (e76e050)
write-contributing: add skill that writes and maintains CONTRIBUTING.md (#178) (2fb2b1f)
write-contributing: apply "never transcribe" to every list (#208) (442c1d5)
write-docs: reconcile ADRs written in a foreign format (#197) (e17ccfb)
write-docs: reconcile the ADR contract with Nygard (#189) (330de14)
write-docs: state when a decision earns an ADR (#183) (48e0aa6)
Bug Fixes
merge-deps: check out the PR head detached so cleanup needs no force (1557d6a), closes #135
merge-deps: derive the verify worktree's path instead of carrying it (3669551), closes #135
merge-deps: reclaim the verify worktree and move it out of work/ (0c057cd), closes #135
merge-deps: resolve the PR head in the shell that fetched it (75ded77), closes #135
prune-branches: describe the branch grants by what they do (309719c), closes #135
prune-comments: drop the shell and the stream editor from the grant (652c661), closes #135
prune-comments: grant git symbolic-ref at the read the skill drives (9214d48), closes #135
pull-request: grant gh api at the one call the skill drives (3402543), closes #135
pull-request: grant git branch at the read the skill drives (9b0ae27), closes #135
release: keep the shipped-marking step inert when a filter is missing (1eeee97), closes #160
skills: clear git log, and treat gh as the exec route it is (18ff2fa), closes #135
skills: declare the cache reads two grants still left out (fc5c089)
skills: declare the reads every run already makes (93615a0), closes #135
skills: make a presented plan render where it is read (fccccc2), closes #157
skills: scope every remaining grant to what its skill drives (7d5a9e5), closes #135
skills: stop the AI verdict writing a Linear state that means shipped (cbdd577), closes #160
skills: write the two read-only grants at the subcommand they drive (fc3a2b7)
validate-skills: drop the commands that can reach a shell (fc5fb9e), closes #135
validate-skills: tag an extension with every client that defines it (#181) (09a7f4c)
work-implement: install dependencies before verifying in a worktree (e14f27c), closes #152
work-implement: state that a mapped Linear state is best-effort (#191) (931bea5)
work-review: derive the gate worktree's path instead of carrying it (d3e17b1), closes #135
work-review: reclaim the gate worktree before creating it (4aabf00), closes #135
work-review: remove the throwaway worktree without --force (6b64fb4), closes #135
work-review: say that a deny rule refuses rather than prompts (e9e5980), closes #135