Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions .agents/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
retried.
7. In the hub, when the chosen scope includes a release, bring this checkout to the merged
content without discarding or mixing in anything local. First assert `git status --porcelain
--untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any
uncommitted content, tracked, untracked, or gitignored, since `skills_install.py` installs
each skill directory with `shutil.copytree()`, which copies a gitignored stray file the same
as any other, so the plain porcelain form (silent on ignored paths) would pass this preflight
while one still rides along into the install. Then `git fetch origin main`, `git checkout main`
--untracked-files=all --ignored -- .agents/skills/` is empty, and stop and report rather than
Comment thread
qodo-code-review[bot] marked this conversation as resolved.
Outdated
proceeding over any uncommitted content there, tracked, untracked, or gitignored, since
`skills_install.py` installs each skill directory with `shutil.copytree()`, which copies a
gitignored stray file the same as any other, so the plain porcelain form (silent on ignored
paths) would pass this preflight while one still rides along into the install. Scoped to
`.agents/skills/` rather than the whole tree, since that is the only content this install
step reads, an ignored file elsewhere in the checkout (a build cache, a lockfile) is not this
preflight's concern and should not block the refresh on it. Then `git fetch origin main`, `git checkout main`
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
(or `git checkout -b main origin/main` the first time this checkout carries no local `main` at
all, `checkout` rather than `switch` since the fleet's own `git` floor is undeclared and
`checkout` needs no minimum version for this), and `git merge --ff-only origin/main`.
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/.source-digest
Original file line number Diff line number Diff line change
@@ -1 +1 @@
332c16d2c066383b
703eb8a52dea334c
13 changes: 8 additions & 5 deletions .claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
retried.
7. In the hub, when the chosen scope includes a release, bring this checkout to the merged
content without discarding or mixing in anything local. First assert `git status --porcelain
--untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any
uncommitted content, tracked, untracked, or gitignored, since `skills_install.py` installs
each skill directory with `shutil.copytree()`, which copies a gitignored stray file the same
as any other, so the plain porcelain form (silent on ignored paths) would pass this preflight
while one still rides along into the install. Then `git fetch origin main`, `git checkout main`
--untracked-files=all --ignored -- .agents/skills/` is empty, and stop and report rather than
proceeding over any uncommitted content there, tracked, untracked, or gitignored, since
`skills_install.py` installs each skill directory with `shutil.copytree()`, which copies a
gitignored stray file the same as any other, so the plain porcelain form (silent on ignored
paths) would pass this preflight while one still rides along into the install. Scoped to
`.agents/skills/` rather than the whole tree, since that is the only content this install
step reads, an ignored file elsewhere in the checkout (a build cache, a lockfile) is not this
preflight's concern and should not block the refresh on it. Then `git fetch origin main`, `git checkout main`
(or `git checkout -b main origin/main` the first time this checkout carries no local `main` at
all, `checkout` rather than `switch` since the fleet's own `git` floor is undeclared and
`checkout` needs no minimum version for this), and `git merge --ff-only origin/main`.
Expand Down
13 changes: 8 additions & 5 deletions .github/skills/merge-and-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for.
retried.
7. In the hub, when the chosen scope includes a release, bring this checkout to the merged
content without discarding or mixing in anything local. First assert `git status --porcelain
--untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any
uncommitted content, tracked, untracked, or gitignored, since `skills_install.py` installs
each skill directory with `shutil.copytree()`, which copies a gitignored stray file the same
as any other, so the plain porcelain form (silent on ignored paths) would pass this preflight
while one still rides along into the install. Then `git fetch origin main`, `git checkout main`
--untracked-files=all --ignored -- .agents/skills/` is empty, and stop and report rather than
proceeding over any uncommitted content there, tracked, untracked, or gitignored, since
`skills_install.py` installs each skill directory with `shutil.copytree()`, which copies a
gitignored stray file the same as any other, so the plain porcelain form (silent on ignored
paths) would pass this preflight while one still rides along into the install. Scoped to
`.agents/skills/` rather than the whole tree, since that is the only content this install
step reads, an ignored file elsewhere in the checkout (a build cache, a lockfile) is not this
preflight's concern and should not block the refresh on it. Then `git fetch origin main`, `git checkout main`
(or `git checkout -b main origin/main` the first time this checkout carries no local `main` at
all, `checkout` rather than `switch` since the fleet's own `git` floor is undeclared and
`checkout` needs no minimum version for this), and `git merge --ff-only origin/main`.
Expand Down
8 changes: 5 additions & 3 deletions scripts/skills_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,11 @@ def main():
stamp_path.write_text(
json.dumps(build_stamp(claude_registered), indent=2) + "\n", encoding="utf-8"
)
print(
f"Installed to {home / 'skills'}. Claude Code marketplace registered: {claude_registered}."
)
# Materializing skills and registering the marketplace are independent operations.
# Each can succeed or be skipped on its own (`claude` missing skips only the second).
# Separate lines keep that distinction once a third target (Codex/opencode) joins them.
print(f"Skills materialized to {home / 'skills'}.")
print(f"Claude Code marketplace registered: {claude_registered}.")

# `claude` missing is a partial-but-expected install (a Codex/opencode-only machine).
# `claude` present but registration failing is a real failure.
Expand Down