fix(orca-skills): return orca-cli to revision 37 - #48
Merged
Conversation
Orca's update dialog listed all three vendored skills as `Skipped — the
copy here doesn't match the official version — it may be modified, or a
different skill with the same name`.
Two of the three were not modified and did not differ. Hashing each
vendored `SKILL.md` against the installed app's own
`resources/skills/snapshot-registry.json` — which carries every historical
revision, not just the current one — identifies exactly what each copy
holds:
computer-use revision 8 == latest 8
orchestration revision 28 == latest 28
orca-cli revision 36 < latest 37
So nothing was hand-edited. `computer-use` and `orchestration` were
already byte-identical to the manifest, and `orca-cli` was one release
behind — the deliberate pin from a46c108.
That pin has expired. It was taken on 2026-08-19 because revision 37
advertised `share skills` while the installed binary's `orca skills`
offered only `list`, `get`, `install` and `update`, so the skill described
a command that did not exist. The app has since been rebuilt (AppImage
dated 2026-08-22): its manifest now lists `orca-cli` at revision 37, and
`orca skills` has grown the `share` subcommand. Both halves of the
2026-08-19 reasoning have reversed, and staying at 36 is now the position
that produces the warning and the inaccuracy. Revision 37 differs from 36
by exactly two lines — `skill sharing` and `share skills` added to the
description — and the rendered description is 813 characters, inside the
§5.6 cap.
Vendored verbatim and hash-verified against the manifest's `exactSha256`
(`cdd5d9c8…`, 3944 bytes), so the tree stays a verbatim vendoring rather
than an adaptation (§4.2).
Also corrects a claim in CREDITS.md that this update disproved. It said a
hash match "means Orca will leave the tree alone"; it does not.
`computer-use` and `orchestration` matched exactly and were skipped
anyway. The cause is the install location, not the bytes: `orca skills
installed` attributes all three to Codex home — `~/.agents/skills`, a
symlink into `/nix/store`, a read-only filesystem Orca never wrote to and
cannot write to. Orca skips what it does not own and reports it with the
only message it has. The dialog's advice to remove the copy is not
actionable and must not be followed — nothing can be removed from a store
path, and a Home-Manager switch would restore it.
This tree will therefore report `Skipped` on every Orca update,
permanently, by design — the accepted cost of the vendoring rationale in
`flake.nix` (Orca resolves skills by exact leaf name, so they must sit
wherever agents read skills from). CREDITS.md now says so, and points at
the hash check as the thing to run instead of trusting the dialog.
Verified: `nix build .#skills` produces a tree whose `computer-use`,
`orca-cli` and `orchestration` all match the installed app's manifest.
reuse lint, check-license-files and generate-steelbore-scm --check pass;
validate-configs passes with pyyaml present. check-skill-refs fails
identically with and without this change (seven pre-existing findings, all
in `chat/*.texi`).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017hj64PwFDDJsNdAJoEuYpB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Orca reported
All three vendored Orca skills came back as
Skipped — the copy here doesn't match the official version — it may be modified, or a different skill with the same name.What was actually true
Two of the three were neither modified nor different. The installed app ships
resources/skills/snapshot-registry.json, which carries every historical revision with per-file hashes — not just the current one. Hashing each vendoredSKILL.mdagainst it identifies exactly which revision a copy holds:computer-useorchestrationorca-clia46c108Nothing was hand-edited. That distinction — "one release behind" vs "someone edited it" — is one the Orca dialog does not draw.
Why the pin is released
a46c108pinnedorca-clito 36 on 2026-08-19 because revision 37 advertisedshare skillswhile the installed binary'sorca skillsoffered onlylist,get,installandupdate— the skill described a command that did not exist.The app has since been rebuilt (AppImage dated 2026-08-22):
Its manifest now lists
orca-cliat revision 37. Both halves of the 2026-08-19 reasoning have reversed — staying at 36 is now what produces the warning and the inaccuracy. The pin was always a hold, not a destination.Revision 37 differs from 36 by exactly two lines (
skill sharingandshare skillsadded to the description). Rendered description is 813 chars, inside the §5.6 cap. Vendored verbatim and hash-verified againstexactSha256cdd5d9c8…/ 3944 bytes, so this stays a verbatim vendoring rather than an adaptation (§4.2).A documented claim this disproved
CREDITS.md said a hash match "means Orca will leave the tree alone". It does not —
computer-useandorchestrationmatched exactly and were skipped anyway.The cause is the install location, not the bytes.
orca skills installedattributes all three to Codex home —~/.agents/skills, a symlink into/nix/store, a read-only filesystem Orca never wrote to and cannot write to. Orca skips what it does not own and reports it with the only message it has.Two consequences now recorded in CREDITS.md:
Skippedon every Orca update, permanently, by design — the accepted cost of theflake.nixvendoring rationale (Orca resolves skills by exact leaf name, so they must sit wherever agents read skills from). The hash check is the thing to run; the dialog is not evidence of damage.Verification
nix build .#skillsproduces a tree whose three Orca leaves all match the installed app's manifest:reuse lint,check-license-files.pyandgenerate-steelbore-scm.py --checkpass.validate-configs.pypasses with pyyaml present.check-skill-refs.pyexits 1 identically with and without this change — seven pre-existing findings, all inchat/*.texi, untouched here.🤖 Generated with Claude Code
https://claude.ai/code/session_017hj64PwFDDJsNdAJoEuYpB