Skip to content

Close the Installer Gaps Left After the Marketplace Re-Point Fix #2019

Description

@ptr727

Problem

Three small gaps were left after the fix for #2017, which taught scripts/skills_install.py to leave an existing Claude Code marketplace registration in place and added --snapshot-only. Each was raised by a local review pass on that branch after its edit budget was spent. They were deferred rather than fixed there.

  1. --report still crashes on a registered path carrying a NUL byte. directory_gone() reads such a path as present, which is right for the installer. live_channel() then hands it to git_in(), and subprocess.run raises ValueError: embedded null byte, which git_in() does not catch. Reaching it needs a hand-edited registration, so it is unlikely in practice. The fix is to catch ValueError in git_in() beside OSError, with a LiveChannelCase test using a constructed path such as /tmp/a\0b.
  2. The "gone" messages are wrong when a plain file sits at the registered path. A file there counts as gone, which is intended, since it serves nothing. But the installer then says the directory "no longer exists", and --report says the checkout "does not exist". The action is right and only the wording is wrong: say "is not a directory" or "serves nothing" instead.
  3. Two refresh instructions still say "re-run the installer" without --snapshot-only. docs/host-setup.md "Fleet Skills Install", the paragraph opening "The refresh cadence", and check-this-repo's "Answering 'why isn't a fleet rule applying'" section both say this. check-this-repo's safe-to-fix bullet and skill-lifecycle step 8 now say --snapshot-only, and step 8 points at the host-setup cadence as its source. A full install no longer moves the registration, so the older wording does no harm. The surfaces just disagree.

Scope

  • scripts/skills_install.py (git_in, the two messages) and tests/test_skills_install.py
  • docs/host-setup.md "Fleet Skills Install"
  • .agents/skills/check-this-repo/SKILL.md, regenerated through scripts/build_dist.py

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingscriptA defect in hub toolingskillsAgent skill

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions