Skip to content

fix(skills): replace divergent global Backscroll copies with product-owned symlinks #62

Description

@pablontiv

Description

The Backscroll product repository is the canonical owner of its backscroll skill, but global installations are regular directories with mixed content rather than product-owned symlinks.

Observed inventory:

Path Type Tree SHA-256
/Users/Shared/harness/backscroll/.claude/skills/backscroll canonical directory 4361dc36a82ce812cf5d60409a9acdcc251439c239c6a0c60feea788a60e2dbc
~/.claude/skills/backscroll regular directory, currently equal 4361dc36a82ce812cf5d60409a9acdcc251439c239c6a0c60feea788a60e2dbc
~/.agents/skills/backscroll divergent regular directory 893d5755d17fbd42d1d66a87e5088d5bb83144841371ad5d299d040c366de60e
~/.config/opencode/skills/backscroll divergent regular directory c64838de2133cfb34ad788ef8cbe0071ad8fe792218434ea232763b5cfa2fe1b

None of these installed paths was reported as chezmoi-managed during the inventory.

Steps to reproduce

  1. Compare each installed tree against .claude/skills/backscroll with a recursive file/content diff.
  2. Inspect each path with lstat/readlink.
  3. Observe that the Claude copy is byte-equivalent but still copied, while Agents/OpenCode copies diverge and none is a symlink.

Expected behavior

The Backscroll repository owns one canonical skill tree. Supported global runtimes resolve to that source through explicit, verifiable distribution links or another product-owned mechanism with equivalent single-source semantics.

Actual behavior

Three independent global directories can drift. Updating the product source does not update Agents/OpenCode, and even the currently equal Claude copy has no structural link to its owner.

Acceptance criteria

  • Inventory exact installed preimages and canonical source commit/digest before mutation.
  • Define supported destinations and eliminate unsupported duplicates explicitly.
  • Back up every non-link destination before replacement.
  • Require digest-bound approval before destructive replacement.
  • Replace supported copies with product-owned symlinks that resolve strictly to the canonical skill tree on the product's stable checkout, never a temporary worktree.
  • Verify discovery in each supported runtime and exact lexical/resolved paths.
  • Provide rollback/restore evidence and an append-only receipt.
  • Test filesystem behavior in temporary homes; never mutate the real home from tests.
  • Document installation, update, verification, uninstall, and restoration ownership.

Environment

  • Observed on macOS.
  • Backscroll repository: https://github.com/pablontiv/backscroll

Scope boundary

Do not vendor Backscroll into pablontiv/skills; this product repository remains the canonical owner.

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 working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions