Skip to content

fix(orca-skills): return orca-cli to revision 37 - #48

Merged
UnbreakableMJ merged 1 commit into
mainfrom
fix/orca-cli-revision-37
Aug 24, 2026
Merged

fix(orca-skills): return orca-cli to revision 37#48
UnbreakableMJ merged 1 commit into
mainfrom
fix/orca-cli-revision-37

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

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 vendored SKILL.md against it identifies exactly which revision a copy holds:

Skill Vendored revision Latest Verdict
computer-use 8 8 already current, byte-identical
orchestration 28 28 already current, byte-identical
orca-cli 36 37 one release behind — the deliberate pin from a46c108

Nothing 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

a46c108 pinned orca-cli to 36 on 2026-08-19 because revision 37 advertised share skills while the installed binary's orca skills offered only list, get, install and update — the skill described a command that did not exist.

The app has since been rebuilt (AppImage dated 2026-08-22):

$ orca skills --help
  installed          List installed skill selectors
  share              Publish explicitly selected installed skills behind one unlisted link
  ...

Its manifest now lists orca-cli at 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 sharing and share skills added to the description). Rendered description is 813 chars, inside the §5.6 cap. Vendored verbatim and hash-verified against exactSha256 cdd5d9c8… / 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 notcomputer-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.

Two consequences now recorded in CREDITS.md:

  1. The dialog's advice must not be followed. "Remove it if you want Orca to update this skill" is not actionable — nothing can be removed from a store path, and a Home-Manager switch would restore it.
  2. This tree will report Skipped on every Orca update, permanently, by design — the accepted cost of the flake.nix vendoring 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 .#skills produces a tree whose three Orca leaves all match the installed app's manifest:

computer-use     rev 8   MATCH
orca-cli         rev 37  MATCH
orchestration    rev 28  MATCH

reuse lint, check-license-files.py and generate-steelbore-scm.py --check pass. validate-configs.py passes with pyyaml present.

check-skill-refs.py exits 1 identically with and without this change — seven pre-existing findings, all in chat/*.texi, untouched here.

🤖 Generated with Claude Code

https://claude.ai/code/session_017hj64PwFDDJsNdAJoEuYpB

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
@UnbreakableMJ
UnbreakableMJ merged commit 3a74842 into main Aug 24, 2026
3 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the fix/orca-cli-revision-37 branch August 24, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant