Skip to content

v0.15.0

Choose a tag to compare

@kirchdev-release kirchdev-release released this 26 Jul 02:15
7824ee9

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