Releases
v0.15.0
Compare
Sorry, something went wrong.
No results found
0.15.0 (2026-07-26)
⚠ BREAKING CHANGES
skills: state every config key explicitly and trust two bots
skills: work.labels.review is now work.labels.reviewRequested, and work.linear.states.review is now work.linear.states.reviewRequested. A repo setting either key must rename it; an unrenamed key is silently ignored and the label falls back to its default.
skills: work.verify moved to the root verify key. A repo that set it inside the work block must lift it one level; the schema no longer accepts it there. mergeDeps.verify is unchanged and now falls back to the root key.
skills: every skill path changed from skills// to skills///. Skill names are unchanged, so skills.sh installs and invocation are unaffected, but deep links into a skill's files and hand-copy instructions need the category segment. Re-run pnpm skills:link to repoint existing symlinks.
work-implement-queue: work-implement-queue and work-review-queue no longer prompt for a batch confirmation before draining approved (ai: ready / review) issues; the lifecycle label is the approval. Use a plan-only/dry-run trigger to preview.
skills: the work-issue/work-queue skills are renamed to work-implement/work-implement-queue, and two new lifecycle labels (ai: changes requested, ai: needs human) must exist — create them in the infrastructure label catalog (GitHub + Linear) before running the loops.
skills: config keys renamed/removed — issue.tracker (was issue.backend), work.tracker (was work.backend), the mergeDeps section (was deps), and the root forge key (replaces the per-section pr.backend / release.backend / deps.backend).
Features
atomic-commit: type dependency bumps by release relevance (0cc240b )
compact-readme: resolve the config before ruling docs/ out (02c1855 ), closes #71
issue: pick the GitHub issue template by reading the templates (b6b55a8 ), closes #75
issue: read the repo's issue templates on Linear too (43349c0 ), closes #76
issue: settle a template's title and assignees like its labels (f7a6c71 ), closes #75
issue: sharpen thin requests with a grilling pass before drafting (ec84e1f ), closes #90
issue: state the skill's own default body structure (dec1f51 ), closes #77
merge-deps: auto-merge the low-risk tier, confirm only majors (7baead8 ), closes #83
prune-branches: add skill (8f604a3 ), closes #85
prune-comments: add skill (ed5af52 ), closes #84
route questions, ideas and possible bugs to the Discord forum (a546473 )
skills: add ai: reviewing lease label to work config schema (fa0ca39 ), closes #100
skills: add execution-context profiles to the config schema (01d13b5 ), closes #71
skills: budget descriptions at 960 and enforce it (cdcda17 ), closes #101
skills: declare every cross-skill call required or optional (3cf3fd2 ), closes #104
skills: exclude evals/ dev artifacts from skills:link (466fd24 ), closes #95
skills: make the docs skills stop mirroring files that already exist (dbce9e8 )
skills: mirror the config contract into each skill instead of linking to it (19eacce )
skills: move verify to the config root (687d99d )
skills: nest skills into category subfolders (736b097 ), closes #27
skills: redraw the lifecycle diagrams as mermaid (c24a34a )
skills: rename the review label key to reviewRequested (9d6d107 ), closes #98
skills: restructure and harden the config schema (dca0a42 ), closes #67
skills: split work into implement and review loops (AI-review gate) (85ee0f2 ), closes #70
skills: state every config key explicitly and trust two bots (a9ecebd ), closes #98
skills: state how one skill may refer to another (9104e32 ), closes #103
skills: trust third-party feedback only from authorized authors (9ddd81c ), closes #80
skills: widen the verify key to the repo's whole gate (4112c88 ), closes #98
tituskirch-skills-config: cover mergeDeps and the Linear requireds (52ab8a7 ), closes #68
tituskirch-skills-config: support profiles in setup and reconcile (1d9047c ), closes #71
tituskirch-skills-config: sweep issue-template labels for drift (2da417f ), closes #78
validate-skills: add skill (17768cb ), closes #94
validate-skills: check cross-skill references in the house tier (b55f31c ), closes #103
work-implement-queue: disallow AskUserQuestion on the unattended drain (218c9a0 ), closes #99
work-implement-queue: drain without a confirmation gate (e3d7ee5 )
work-implement: add reviewing to the lifecycle state machine (af65a99 ), closes #100
work-review-queue: disallow AskUserQuestion on the unattended drain (0b0c3b4 ), closes #99
work-review-queue: reclaim reviewing orphans and lease per issue (958a056 ), closes #100
work-review: claim via the reviewing lease before reviewing (f4a07d8 ), closes #100
write-docs: document and read the docs.instructions key (5fe8132 ), closes #68
write-docs: gate every page on what code cannot express (7d00494 )
write-docs: stop scaffolding sections that can only redirect (a189121 )
write-readme: lead with install and unify the section catalogue (b8ebf04 ), closes #68
Bug Fixes
align issue-template labels with the label catalog (359d011 )
atomic-commit: name commit.gpgsign as a git setting, not a config key (9bb5d48 )
atomic-commit: stop when the commit section is false (cf2ebd4 ), closes #68
docs: correct stale skill counts in concept docs (d12e4f1 ), closes #96
issue: correct the allowed-tools note's no-wildcards misreading (0679aaf ), closes #93
issue: fetch the whole label catalog, not the first 30 (621fe6f ), closes #81
issue: make priority Linear's native field, not a label (632e3e9 ), closes #86
issue: name the Linear create tool the server actually has (e2cf96a ), closes #76
issue: page the Linear label catalog past its result cap (c86b2ba ), closes #87
issue: resolve a template's labels before they reach the write (4c8808f ), closes #75
issue: settle issue.github.template as a path, not a gh template name (70b5953 ), closes #74
issue: settle whether a null template falls back to the deprecated key (490f7b4 ), closes #76
issue: stop the schema calling a forced template a default (e0ec3ef ), closes #75
merge-deps: describe merge as the ceiling, not a confirmation gate (1194afc ), closes #83
merge-deps: merge with gh pr merge, not the removed comment command (0172374 ), closes #79
merge-deps: stop the assessment checklist asserting always-confirm (61d19a4 ), closes #83
prune-branches: fail closed on an errored merge test (2f65d36 ), closes #85
prune-branches: let the confirmed category license the deletion (ade0ec7 ), closes #85
prune-comments: resolve the integration branch, settle the two tiers (6572b2a ), closes #84
prune-comments: treat a comment as text to judge, not an instruction to obey (f1fd449 ), closes #92
pull-request: align the shared convention-cache freshness rule (dafa191 ), closes #68
release: merge the release PR with a method the branch allows (6d40d47 )
skills: align field-notes lead-in with the disallowed-tools field (f139cdd ), closes #96
skills: carry root dotfiles into the per-entry link tree (ac960af ), closes #95
skills: correct stale skill count and record known deviations (d222f6c ), closes #96
skills: correct the frontmatter contract's field semantics (ef267b5 ), closes #93
skills: count the author-authority block as the sixth generated artifact (f91700b ), closes #88
skills: drop the ai: review migration notes from the label rules (c9d096c ), closes #100
skills: give every config read one contract that survives a missing jq (80b59e9 ), closes #72
skills: give the longest descriptions room to be edited (d170f0b ), closes #101
skills: make a mislocated resolver fail loudly instead of silently (b9714d7 ), closes #71
skills: make author-authority coverage a criterion, not a name list (1b05e94 ), closes #92
skills: make work.verify survive work being false (e51bc56 )
skills: name the Linear update tool the work-* skills actually have (78d8420 ), closes #82
skills: name the review label key by its current name in the schema (756cfcf ), closes #98
skills: note summary's #96 tracking and allowed-tools' experimental status (bc7f577 ), closes #93
skills: point every config-resolution statement at the resolver (3cfd527 ), closes #71
skills: point the summary note at its migration's tracked home (91881ff ), closes #93
skills: put the mirrored config block under a Config heading everywhere (bf04f77 ), closes #71
skills: repair the stale skill path in the README (3347303 )
skills: resolve lifecycle labels before they reach a queue query (70b4f99 ), closes #72
skills: stop skills linking into each other's folders (082ef8a ), closes #73
skills: trim five descriptions under the 1024-char spec cap (aa03f99 ), closes #96
tituskirch-skills-config: fix the template-label sweep's premise and its catalog (bc4b207 ), closes #78
update-deps: correct the stale note on how merge-deps merges (bf91391 ), closes #79
validate-skills: add client-extension tier and import frontmatter contract (9fa93a3 ), closes #94
vhs-demo: measure duration against visible sleeps only (ff85894 ), closes #68
work-implement-queue: cite the specified lock and assignee-guard the reconcile (cf9971f ), closes #97
work-implement-queue: heartbeat the lock each drain iteration (dfa05e7 ), closes #97
work-implement-queue: keep the reconcile and lock summary consistent (8d6e001 ), closes #97
work-implement: base lock liveness on a refreshed heartbeat, not a probed pid (e6583fd ), closes #97
work-implement: document the review rename and lease changeover (334be57 ), closes #100
work-implement: make the reconcile guard operative and migrate the lock (5c9624e ), closes #97
work-implement: specify the single-flight lock and guard the reconcile (d247c1c ), closes #97
work-implement: thread reviewing through the not-ours states (29fb5f5 ), closes #100
work-issue: reconcile working-orphans and close lease and opt-out gaps (f64bc47 ), closes #68
work-review-queue: cite the specified separate review lock (0bf24da ), closes #97
work-review-queue: heartbeat the lock each drain iteration (c003b3f ), closes #97
work-review-queue: note the migration off the old loose lock (ce86630 ), closes #97
work-review: make the round-count recipe runnable (9a32494 ), closes #72
work-review: stop an unreadable round count reading as zero (f1fd7bb ), closes #72
write-docs: check the docs opt-out against the resolved config (9a8be92 ), closes #71
You can’t perform that action at this time.