Interact with giterloper knowledge stores connected to this project. Use when the user needs to manage pins in .giterloper/<sessionId>/pinned.yaml.
Use this skill for giterloper operations in this project.
Project state lives in .giterloper/<sessionId>/ (CLI defaults to _cli via --session-id):
.giterloper/<sessionId>/pinned.yaml: pin name -> object with repo, sha, optional branchversions/: read-only clones at exact SHAsstaged/: temporary working clones for write operationsPins always use full 40-character commit SHAs. If --pin is omitted, the session pin (_session) is used; it must exist in the session's pinned.yaml.
name, source, sha, optional branch).insert, merge).Run the CLI (from workspace root):
./.cursor/skills/gl/scripts/gl --help
Every command supports --help. Use command help instead of guessing flags or behavior.
echo "<markdown>" | ./.cursor/skills/gl/scripts/gl insert --pin <name> [--name <file>].insert as needed to build a paper trail of queued changes../.cursor/skills/gl/scripts/gl merge <source-pin> <target-pin>../.cursor/skills/gl/scripts/gl pin list./.cursor/skills/gl/scripts/gl pin add <name> <source> [--ref <ref|sha>] [--branch <branch>]./.cursor/skills/gl/scripts/gl pin load [--pin <name>]./.cursor/skills/gl/scripts/gl pin remove <name>./.cursor/skills/gl/scripts/gl pin update <name> [--ref <ref>]pin add automatically clones; no separate load step needed. Use pin load to clone pins that are in pinned.yaml but not yet cloned.
Pin add semantics (SHA takes priority):
--branch X): Resolve SHA from that branch, pin to both branch and SHA, clone from SHA.--ref <full-sha>): Pin to SHA only (no branch), clone from SHA.--ref <sha> --branch X): Pin both; use the SHA you passed (do not derive from branch), clone from SHA.When adding a pin with --branch, if the branch does not yet exist on the remote, gl creates it automatically. No manual git clone or git push is needed.
Branch off from main (or any ref):
./.cursor/skills/gl/scripts/gl pin add my_feature github.com/owner/knowledge --ref main --branch my_feature
Then run insert, etc. The first push during a write operation creates the remote branch.
Branch from an earlier state: Use --ref to specify the starting point (branch name, tag, or SHA):
./.cursor/skills/gl/scripts/gl pin add snapshot github.com/owner/knowledge --ref v1.0.0 --branch snapshot-v1
./.cursor/skills/gl/scripts/gl pin add experiment github.com/owner/knowledge --ref abc1234 --branch experiment
Save a snapshot of current: Pin the existing branch and work there, or create a new branch from the same ref:
./.cursor/skills/gl/scripts/gl pin add backup github.com/owner/knowledge --ref main --branch backup-2024-03
If --ref is omitted when using --branch, it defaults to the branch name (which will fail if the branch doesn't exist). To create a new branch, always pass --ref <existing-ref> (e.g. main) and --branch <new-branch>.
Write operations (insert) check branch state before proceeding:
For write-style operations:
--pin target (or session pin when omitted)..giterloper/<sessionId>/staged/). When any knowledge operation fails, do not copy or write that content elsewhere in the project (e.g., docs/, root, ad‑hoc folders). Report the failure and let the user decide.If directionality is ambiguous, ask the user before making changes.
Treat reference input as one of:
./.cursor/skills/gl/scripts/gl pin list and --pin)source@sha) that must be resolved/clonedIf the input type is unclear, ask a clarifying question first.
./.cursor/skills/gl/scripts/gl diagnostic before making assumptions about local state../.cursor/skills/gl/scripts/gl pin update <name> and retry..giterloper/<sessionId>/versions/ directly; write via insert flow only.