v7.6.0
- Breaking: the
labelscomponent is now ephemeral:labels.tomland the two labeller YAMLs are staged only when named explicitly (repomatic init labels). A repository that committed them sees them reported as excluded files on disk, removable withinit --delete-excluded. - New
fix-awesome-toccommand deletes the table-of-contents entries awesome-lint forbids fromreadme.mdand everyreadme.{lang}.mdbeside it, matching translated sections by position rather than by their English name. - The bundled skills and agents are now published as a Claude Code plugin:
/plugin marketplace add kdeldycke/repomaticthen/plugin install repomatic@kdeldycke. Needs Claude Code 2.1.224 or later. Addresses #2378. - New
pack-plugincommand builds the attestedrepomatic-plugin.zipasset every GitHub release now carries, with the marketplace URL pinned to the release tag. - New
init plugincomponent merges the plugin's marketplace and enablement keys into a repository's.claude/settings.json, leaving every other setting untouched. New[tool.repomatic] settings.locationmoves the destination. lint-reponow checks a repository's ownpr-body --template-filetemplates: they belong in.github/pr-templates/, must exist, and must carry atitleand a barefooter: false.- A failed
extra-assetsjob now leaves the GitHub release as a draft instead of publishing it without the declared assets. A skipped job still publishes, so repositories declaring no extra assets are unaffected. sync-labelsnow exports to a scratch directory instead of the repository root, so it no longer leaves three untracked files behind. Both committed and downloadedextra-labels/files are applied, a download shadowing a committed file of the same name.- The generated downstream
release.yamlnow carries the canonical deny-by-defaultpermissions: {}, so a consumer job appended below the managed lanes no longer runs with the repository's default token scopes. - The generated
release.yamlkeeps the extraneeds:edges a consumer declares on itsreleaselane, so a caller-side asset build can gate the engine. Edges naming a managed lane, a vanished job, or an upstream-only job are still dropped. - Fix
initdowngrading the upstreamuses:pins of a repository that adopted a release still inside theminimum-release-agewindow. The cooldown now gates adoptions only, and a rollback to an older repomatic is honored. initno longer closes with "commit the generated files and push" on a run that produced nothing but ephemeral output.- Fix the broken-links and setup-guide jobs dying on a recurring issue that the
autolockworkflow had locked. A conversation lock blocking a close or reopen comment is now cleared and the write retried. - Fix
repomatic runfinding no binary on a Linux distributionextra-platformscannot name, which broke every registry tool inside the AlmaLinux-based manylinux build container. - Fix a crash when
pyproject.tomlis removed while being read, which now falls back to an empty configuration as documented. - Re-lock
uv.lockin the release freeze commit, so a release no longer ships with its version ahead of its own lock entry. The desync made the Windows binary builds fail.
Full changelog: v7.5.0...v7.6.0