agentsclimarketplace

Gitlink

Skill juff17/docify/skills/gitlink

Skills that help AI coding agents create, edit, and review the documents engineering teams produce.

Install
npx -y skills add juff17/docify --skill gitlink

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Build shareable, clickable web permalinks to specific lines of code on the repo's git host. Use this whenever the user wants to share, link to, or point someone at a snippet, function, file, or line range — phrasings like "send me a link to these lines", "get a permalink", "shareable link to this code".

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.3 KB, as published. Nobody here has run it

gitlink — shareable permalinks to code

Turn code locations into web links anyone can click. The work splits cleanly: you figure out which file and lines the user means; the bundled script turns that into a correct URL for whatever host the repo lives on. Let the script own the fiddly parts (parsing the remote, picking the right URL shape per host, pinning to a commit) so links are correct and consistent.

Why permalinks pin to a commit

By default the script links to the current commit SHA, not a branch. A link like .../blob/main/app.py#L40-L52 silently rots — as main moves, those line numbers point at different code. A commit-pinned link keeps showing exactly what the user meant to share. Only use a branch link when the user explicitly wants "whatever's latest on this branch".

Steps

1. Find the repo and confirm it has a remote

Links are built from the repo's remote, so there must be one. The script reads it for you, but if the user's code is in a specific repo, point at it with -C <dir>. No remote → the script says so; tell the user the repo needs to be pushed to a host first.

2. Identify the code block(s)

Two cases:

  • The user names them — "lines 40-88 of src/auth.rb". Use directly as src/auth.rb:40-88.
  • The user describes them — "link to the function we just changed", "share the retry logic". Find the file and read it to get the exact start/end line numbers of what they mean (the whole function, the specific block). Don't guess line numbers; open the file and confirm them.

Each block becomes one FILE:START-END argument (use FILE:START for a single line, or just FILE for the whole file). You can pass as many as the user wants — the script emits one link per block, in order.

3. Pick the ref

  • Default (recommended): omit --ref — the script pins to the current commit.
  • "Latest on the branch": pass --branch.
  • A specific tag/branch/sha the user names: --ref <thing>.

Make sure the ref is actually on the host, or the link will 404. If you're linking to local commits, confirm they're pushed — e.g. check git branch -r --contains HEAD. If HEAD isn't pushed, either push it, or use --branch/--ref with something that is, and tell the user what you did.

4. Build the links

Run the bundled script with every block at once:

python3 "${CLAUDE_PLUGIN_ROOT}/skills/gitlink/scripts/gitlink.py" \
  -C <repo-dir> [--branch | --ref REF] [--markdown] SPEC [SPEC ...]
  • --markdown — emit [file:lines](url), handy for pasting into Markdown, PRs, or chat. Plain mode (default) emits one bare URL per line.
  • --json — structured output if you need to post-process.
  • --host-type github|gitlabonly needed for a self-hosted host whose domain doesn't reveal its type (the script auto-detects github/gitlab and warns when it has to guess). Look at the remote URL; if it's an internal GitLab/GitHub Enterprise, pass the right type.

5. Hand back the links

Give the user the link(s) directly. If you made a judgement call (pinned to a commit, switched refs because HEAD wasn't pushed, guessed a host type), say so in one line so the link is trustworthy.

Examples

# One range, pinned to the current commit
gitlink.py -C ~/proj src/app.py:10-25

# Several blocks at once, as markdown links for a PR comment
gitlink.py -C ~/proj --markdown src/a.py:10-25 src/b.py:3 docs/README.md

# Latest-on-branch link instead of a pinned commit
gitlink.py -C ~/proj --branch src/app.py:10-25

# Self-hosted GitLab whose hostname doesn't contain "gitlab"
gitlink.py -C ~/work/svc --host-type gitlab lib/auth.rb:40-88

Caveats worth surfacing to the user

  • Unpushed code → the link 404s until the commit/branch is on the host.
  • Uncommitted local edits → line numbers in your working tree may not match the pinned commit. Pin to a commit that actually contains the lines, or note the mismatch.
  • Private repos → the link works, but only for people with access.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.