Skip to content

ci(lint): Fix universal installs being accepted by default by flagging missing repo overlays - #141

Open
MajorLift wants to merge 1 commit into
mainfrom
jongsun/ci/lint-repo-overlay-coverage
Open

ci(lint): Fix universal installs being accepted by default by flagging missing repo overlays#141
MajorLift wants to merge 1 commit into
mainfrom
jongsun/ci/lint-repo-overlay-coverage

Conversation

@MajorLift

@MajorLift MajorLift commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Overview

A skill with no repos/ directory installs into every consuming repo — core, metamask-extension, metamask-mobile. That is the default, so nobody chose it and no reviewer sees a decision to question.

This adds two lint-skill-entry warnings so the omission is visible at review.

Motivation

Targeting is declared by the shape of repos/, and the two shapes mean opposite things:

  • no repos/ → installs into every repo
  • with repos/ → only the repos it names; tools/install:477 skips it for any repo with no repos/<repo>.md

So the obvious fix makes it worse. Adding one overlay to a skill that had none does not widen it — it narrows it to that repo alone, silently, because the skill still installs correctly in the repo whose overlay was just written.

Hence two warnings: one for reach nobody declared, one for reach a well-meant overlay has quietly removed.

Warnings, not errors: 11 skills on main carry no repos/, and several are genuinely repo-agnostic (codex, gator-cli, x402-payments). Erroring today would fail correct work.

Showcase

Across main, of 53 skills: 41 partial coverage, 11 no repos/, 1 full. Most partial coverage is deliberate; the 11 are the queue.

lint-skill-entry: 53 skills checked, 0 errors, 143 warnings — 52 new here, 91 pre-dating this change.

Repo targeting is declared by the shape of `repos/`, not by its contents,
and the two shapes mean opposite things. `tools/install` skips a skill
whose `repos/` exists but holds no file for the target repo; a skill with
no `repos/` installs everywhere. So adding one overlay to a skill that had
none narrows it from every repo to that one, and the skill keeps installing
correctly in the repo the author was looking at.

Both directions are legitimate, so both are warnings rather than errors:
41 of 53 skills on `main` have partial coverage and 11 have none, and the
tool skills among them are genuinely repo-agnostic. The warning names the
excluded repos and the consequence so the choice is visible at review time.
@MajorLift MajorLift changed the title ci(lint): Report which repos a skill excludes by having a partial repos directory ci(lint): Flag a skill that declares no repo targeting, and a repos dir that silently drops one Aug 31, 2026
@MajorLift MajorLift changed the title ci(lint): Flag a skill that declares no repo targeting, and a repos dir that silently drops one ci(lint): Treat an undeclared repo target as a defect, not a default Aug 31, 2026
@MajorLift MajorLift changed the title ci(lint): Treat an undeclared repo target as a defect, not a default ci(lint): Fix universal installs being accepted by default by flagging missing repo overlays Aug 31, 2026
@MajorLift
MajorLift marked this pull request as ready for review August 31, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant