This is a really useful framing. The “loop-routing and authority” wording captures the problem better than my original “overlapping skills” phrasing.
I agree that once a catalogue grows, the issue is not just which skill is semantically related to the task. It becomes a question of which loop Codex is currently running, who owns that phase, which skills are allowed to support it, and which skills should explicitly stay out.
The part about local overlays is especially important. A generic testing or CI skill should know how to reason about tests, failures, reproduction and evidence, but it should not invent the project’s actual commands, thresholds, release rules or directory boundaries. Those should come from the repo-local layer, such as AGENTS.md or project runbooks. That gives the generic skill reusable expertise while keeping project authority local.
I also strongly agree on routing traces. Without a trace, a bad routing decision is almost impossible to debug. With a trace, the agent can say: this skill was selected as primary owner, this one was added only as support, this project overlay was used for commands, and these other skills were rejected because they were out of phase or covered by a narrower owner. That turns skill selection from hidden intuition into something reviewable.
This is basically the direction my small “Skill Orchestrator” experiment is trying to approximate in userland, but without native manifests. Right now it has to infer ownership and conflicts from descriptions, naming patterns and known overlaps. I added the project to my profile rather than linking it directly here, since I do not want to turn the thread into repo promotion.
Your model would make that much cleaner: manifests define authority and boundaries, overlays bind generic behavior to the project, and the router only dispatches the smallest useful set for the current loop phase.
I like the idea that skills should not just be treated as reusable instruction snippets. In larger catalogues, they become participants in a governed execution loop. That means the system needs not only discovery, but also authority, phase, evidence expectations, stop conditions and auditability.
So the pattern I’m seeing now is roughly: a small entry point defines precedence and safety rules, skill manifests define ownership and boundaries, project overlays define local truth, a task-time router chooses one primary owner and only adds support skills with separate responsibility, and the routing trace explains the decision.
That feels much more maintainable than merging everything into one giant instruction document, and much safer than letting every related skill load at once.