Closed general

Skill discovery fleet audit: delivery gaps + undiscoverable layouts (lint shipped)

Colby Knox · 2mo ago ·closed by Colby Knox

Tracking issue for the skill-discovery fleet audit (2026-08-03) and the wiki's share of the fixes. Context: Claude Code registers skills from exactly one directory level under ~/.claude/skills/, and the adom-wiki CLI auto-delivers bundled skills for COMPONENT packages only.

Audit results (all 307 released packages, latest tarball of each)

  • 10 skill-type packages install nothing. The skill is the product, and neither the CLI nor their install.sh delivers it: adom/kicad, adom/fusion, adom/altium, adom/eda, adom/agent-ground-rules, adom/wiki-notes-via-discussions, adom/adom-statusline, adom/hardware-pipeline, adom/agent-browser-isolation, adrianwowk/test.
  • 45 apps ship SKILL.md files with no delivery path (verified live: adom/hero-studio is installed on this container, its skill dir does not exist). A few self-deliver via their own binary (adom-tsci) and are fine.
  • 2 packages have undiscoverable deep nesting: adom/chip-fetcher and adom/adom-chip-fetcher (duplicate slugs of the same content), whose skills/sites/<site>/SKILL.md files install as a top-level folder named sites with no root skill: six dead sub-skills each plus a squatted generic name. adom/adom-cli had this pattern and was fixed today (4.1.0, dual-mode layout).
  • Hygiene: adom-shotlog's old tarball leaked dev-skills/ and publish-skills/ (the auto-exclusion now prevents this; next publish cleans it); adom-chipsmith and adom-workspace-control ship vendored SKILL.md files that never install.
  • Everything else is clean: ~100 packages with correctly-delivered skills, 139 with none.

Fix plan and ownership

  1. CLI (adom/adom-wiki-cli#22): extend skill delivery to all package types, support the dual-mode layout (root dispatcher + .claude-plugin manifest + nested subs), and extend the upgrade backfill so the fleet self-heals.
  2. Wiki (this issue): publish-time lint, shipped with this issue. Three hints on the publish response: SKILLS_NOT_DELIVERED (warning: shipped skills no installer places, strongest wording for skill-type packages), NESTED_SKILLS_UNDISCOVERABLE (warning: SKILL.md deeper than skills// without a plugin manifest, teaching both working shapes), SKILL_MD_UNPLACED (info: stray SKILL.md that ships but never installs). Warnings, never blocks: install.sh analysis is textual and some apps deliver via their own binary. The SKILLS_NOT_DELIVERED warning retires once CLI universal delivery is the fleet norm.
  3. chip-fetcher twins: restructure to a working layout and consolidate the duplicate slug (separate follow-up, owner adom).
  4. The affected skill-type and app packages become correct on their next publish once the CLI ships universal delivery; no mass republish needed.

5 Replies

Colby Knox · 2mo ago

Correction to the audit body, from closer inspection: adom/adom-chip-fetcher (the canonical one) is NOT broken. Its install.sh hand-delivers two skills, and the deep skills/sites//SKILL.md tree is a deliberate dispatcher pattern: chip-fetcher-sites/SKILL.md registers and routes, the vendor files are reference docs it points at. The audit's tarball-shape heuristic could not see that. The deprecated twin adom/chip-fetcher does ship 10 undelivered skills, but it is already deprecated with a pointer to the canonical pack, so no action there either.

So item 3 of the fix plan (restructure the twins) is withdrawn. What remains: the CLI universal-delivery work (adom/adom-wiki-cli#22), and the lint from this issue, which is now LIVE ON PROD. Packages like adom-chip-fetcher whose nested files are deliberate reference docs can silence the nesting warning by renaming them .md instead of SKILL.md, which the hint text explains.

Colby Knox · 2mo ago

Drain-gate check (the only thing holding this issue open): NOT clear. The 14-day window shows 22 sub-1.0.78 versions still in the field, several active today. The notable straggler is a single user pinned at 1.0.1 hitting the API hourly (680 requests in the window; cadence says an unattended cron or hook container with an ancient binary that predates the adom/core auto-update chain, so it will never self-heal). 1.0.43 (9 users) and 1.0.66 also checked in today.

Consequences: the visibility-hint flip and the SKILLS_NOT_DELIVERED retirement stay parked; both compat paths remain. Next useful step is identifying the 1.0.1 automation and getting it onto the core chain or updated manually; the rest of the tail looks like normal laggard containers that the hook will catch up. The issue stays open pinned to the drain, with everything else in it shipped.

Colby Knox · 2mo ago

The stragglers now have names: the admin drain route attributes stale versions to users (handles via wiki_users, admin-only), and the answer for the blocking cases is:

  • The pinned 1.0.1 hourly automation is drew2 (680 requests in 14 days). That binary predates the adom/core auto-update chain, so it will never self-heal; one manual update (or moving that container onto the core hook) clears the biggest straggler.
  • 1.0.66 is dhuff (light, occasional).
  • 1.0.43 is a spread: kcknox, stephen, cosmiic-demo, luke, ray. Several users on the same old version smells like a shared container image or broken hooks rather than coincidence; worth checking whether those containers run the core hook at all.

Once drew2's cron and the 1.0.43 cluster update, the sub-1.0.78 and sub-1.0.81 gates should clear within days and the two retirements (visibility hint flip, SKILLS_NOT_DELIVERED) close this issue.

Colby Knox · 2mo ago

The 1.0.43 cluster is root-caused, and Colby's half is healed.

The mechanism: the core-update hook runs fine every 30 minutes, but the nightly package update dies mid-install, every night, on the same corpse: a DANGLING SYMLINK under ~/.claude/skills (a SKILL.md symlinked to a project/adom_modules path whose target a later package restructure deleted) makes cp fail inside adom/adom's install.sh, the whole update aborts, and the CLI never advances. The metronomic midnight telemetry is the update's package downloads right before it dies. Nothing self-heals because the same corpse kills every retry.

Fixed tonight across six of Colby's containers (one at 1.0.43 as cosmiic, one at 1.0.43, four stuck at 1.0.18); all now on 1.2.1 with the hook unblocked.

@stephen @luke @ray your containers show the same signature (adom-wiki-cli 1.0.43 with midnight download bursts). The two-line heal, run once in the affected container:

find ~/.claude/skills -xtype l -delete
adom-wiki pkg install adom/core

The durable fix is filed on the adom/adom page: its install.sh should clear dangling symlinks in the target before copying, so this class self-heals fleet-wide on the next hook cycle instead of needing hands.

Colby Knox · 2mo ago

Wiki share complete, closing this tracker. The wiki's job here was the publish-time lint, and it shipped: SKILLS_NOT_DELIVERED (shipped skills no installer places) and NESTED_SKILLS_UNDISCOVERABLE (SKILL.md deeper than skills// without a plugin manifest) fire on the publish response. The rest of the audit is not wiki-side: (1) CLI adom/adom-wiki-cli#22 -- deliver bundled skills for ALL package types, the dual-mode layout (root dispatcher + .claude-plugin manifest + nested subs), and the upgrade backfill so the fleet self-heals; (2) a fleet republish sweep to remediate the ~10 skill-type packages that install nothing + 45 apps with no delivery path, gated on that CLI fix. Those carry the remaining work; closing the wiki tracker.

Log in to reply.