fix(codeowners): make the default section optional
The codeowners template shipped a required catch-all and, in the same file, recommended enabling code-owner approval on the protected branch. Together those deadlock a repository.
The deadlock
A required * rule gates every merge request on a code-owner approval. No author may approve their own merge request, and a bot has no second account to call on. An automated dependency queue therefore accumulates merge requests that cannot merge under any circumstances, reaches prConcurrentLimit, and stops proposing anything at all.
The failure is quiet at both ends: the bot reports success, and the repository reads as busy.
Where this was measured
manifold held ten Renovate merge requests unmergeable from 2026-07-27, which is exactly its concurrency limit. Catalog v5.0.0 and v6.0.0 were both cut into that jam, neither could be offered, and the catalog was pinned by hand instead. postern runs the same protected-branch toggle and the same catch-all without jamming, because its section is optional. That comparison identified the caret, rather than the file's contents, as the variable.
Ten projects in the group carried the required shape. All ten now carry the optional one, and NOT_APPROVED across the group fell from 18 to 1.
The change
The default section becomes ^[Owners]. GitLab still resolves the owner and still suggests them as reviewer, and the approval stops being a merge requirement.
The targeted sections stay required. Legal language, brand assets and CI configuration are the paths where a second reader changes the outcome.
Verification
The template validates against its own standard: check_file_contains CODEOWNERS '^\* @[a-zA-Z0-9._-]+' still matches, because the * @handle line is untouched. just validate green, just guard 0 violations, vale 0 errors on the changed SKILL.md. Confirmed on the API rather than from documentation: postern's rule reports required=0 approved=true, manifold's reported required=1 approved=false, and all ten now report the optional form.