Skip to content

Fix namespaced skill install file tree output - #14254

Open
Hiro5409 wants to merge 1 commit into
cli:trunkfrom
Hiro5409:fix/namespaced-skill-file-tree
Open

Fix namespaced skill install file tree output#14254
Hiro5409 wants to merge 1 commit into
cli:trunkfrom
Hiro5409:fix/namespaced-skill-file-tree

Conversation

@Hiro5409

Copy link
Copy Markdown

Fixes #14190

Description

Namespaced skills install into flat directories, but the post-install file tree still resolves their qualified names as nested paths. Successful installs therefore display (could not read directory).

Resolve each file-tree entry from its flat on-disk name while preserving the qualified name in the success message. The InstallName comment now describes the returned name instead of the obsolete nested install layout.

How did you test this change?

Given a local skill at src/skills/alice/deploy/SKILL.md, I ran:

bin/gh skill install ./src --from-local --all --force --dir target

Before, the install succeeded but displayed:

Installed alice/deploy (from ./src) in target

  alice/deploy/
  (could not read directory)

After, it displayed the installed directory and file:

Installed alice/deploy (from ./src) in target

  deploy/
  └── SKILL.md

The installed file remained at target/deploy/SKILL.md.

Key points

  • Only the post-install file tree on stderr changes; the install itself and its file layout are untouched.
  • Success messages and the lockfile continue to use the qualified name (alice/deploy). Only the tree label and the directory it reads use the flat name.
  • printFileTree derives the flat name from the qualified name it already receives, so the installer's Result shape stays unchanged.

Notes for reviewers

The behavior change is in printFileTree, which both the repository and --from-local install paths call. The regression assertion extends the existing namespaced local-install table case.

#13266 introduced the flat install layout that this output now follows.

Authorship and follow-up

Who wrote this:

  • A human wrote it.
  • An agent wrote it under close human direction.
  • An agent wrote it independently, and no human has guided the implementation beyond the initial prompt.

Who answers review comments:

  • @username will read and reply directly. Name the account.
  • An agent will draft replies and @Hiro5409 will read them before they are posted.
  • Nobody has explicitly committed to replying.

@Hiro5409
Hiro5409 requested review from a team as code owners August 24, 2026 22:14
@Hiro5409
Hiro5409 requested a review from babakks August 24, 2026 22:15
@github-actions github-actions Bot added external pull request originating outside of the CLI core team needs-triage needs to be reviewed ready-for-review and removed needs-triage needs to be reviewed labels Aug 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your pull request! While it doesn't meet all of our standard requirements, it appears to be a small, focused contribution and has been routed to the team for review.

Note: We still encourage linking to an issue with the help wanted label when possible, as it helps us prioritize and track contributions.

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

Labels

external pull request originating outside of the CLI core team ready-for-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gh skill install prints “(could not read directory)” for namespaced skills

1 participant