skill-drift
Compare adapted skills against the upstream originals they credit, keep your adaptations, and fold in upstream changes one at a time.
Skill by Jeroen-G
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jeroen-g-skill-drift
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/skill-drift
What's inside
- Skill name
skill-drift- Description
- Compare adapted skills against the upstream originals they credit, keep your adaptations, and fold in upstream changes one at a time.
- License
- MIT
- Instructions
- 42 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- reference.md
SKILL.md (first lines)
# Skill Drift Bring adapted skills back in line with the upstream originals they credit, without losing your adaptations. Each credited skill records where it came from: `metadata.credits.url` (the upstream file). Drift is whatever upstream changed since you forked. No fork point is stored — you find the **base** by matching your file against upstream history each run, so a moved or rewritten upstream cannot leave a stale marker behind. ## Why this is judgement, not just a merge A three-way merge applies upstream's changes onto your file mechanically and marks only textual collisions. It cannot see that upstream *reworded* a rule your adaptation depends on, renamed a concept you kept the old name for, or reversed an example your addition assumes. Those merge cleanly and are still wrong. So the merge is the first step and reading it is the second. Do both. ## Steps For each skill whose `SKILL.md` carries `metadata.credits.url`: 1. Read `url`. It names the upstream file and the branch (usually `main`). 2. Find the **base** — the upstream revision you forked from — for every file in the skill directory. See [Finding the base](#finding-the-base). Match files by name; when a local file has no counterpart, check for a renamed one. 3. Fetch **upstream**: the current file at the branch in `url`, via `https://raw.githubusercontent.com/<owner>/<repo>/<branch>/<path>`. 4. If base equals upstream for every file, the skill is current. Move on. 5. Otherwise merge each changed file: `diff3 -m <local> <base> <upstream>`. This applies upstream's changes onto your file and marks conflicts. 6. **Turn the merge and the `base -> upstream` diff into a change inventory.** A clean merge only proves no textual collision. Classify every change by what it moves: - **wording** — cosmetic: punctuation, phrasing, description quoting. - **intent** — a rule or recommendation changed meaning. - **concept** — a renamed term, a new or removed section, a changed default or example. Number the changes per skill, one line each as `before -> after`, so each is addressable. 7. **Present the inventory, then decide per change rather than per skill.** Show every skill's numbered list and ask which changes to take (`all`, `1,3`, `skip 2`); recommend taking all wording changes and give a reading on each intent and concept change. A conflict or a meaning shift is a decision to surface, not an error to hide. 8. Apply the selected changes. Nothing to record — the next run re-derives the base. ## Finding the base The base is the upstream revision your file was adapted from. Derive it by content: the fork point is the upstream revision most similar to your local file, because upstream edits after the fork only add distance. - List the commits touching the path, newest first: `GET https://api.github.com/repos/<owner>/<repo>/commits?path=<path>&sha=<branch>&per_page=20`. - Fetch the file at each candidate and diff it against your local file. The smallest diff is the base. - When two candidates are near-equal, prefer the older: a base older than your true fork replays changes you already took (they merge back to no-ops), while a base newer than it can hide a change you missed. Fetch candidates over HTTP. Where a config denies `git *`, use `diff3 -m` for the merge and the commits API for history rather than a clone. ## Reference - [reference.md](reference.md): worked commands, sibling files and renames, and the cases where the base is hard to pin.
From Jeroen-G/skills, MIT.
More from Jeroen-G/skills
- 0.587score
gitlab
Jeroen-G
GitLab CLI (glab) for working with GitLab from the command line.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
entity-diff
Jeroen-G
Entity-level view of code changes (functions, classes, methods) via the `sem` CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dex
Jeroen-G
Manage tasks via dex CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
feature-ticket-to-tasks
Jeroen-G
This skill will be invoked when the user wants to break a Feature Ticket into independently-grabbable Dex tasks.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
write-feature-ticket
Jeroen-G
This skill will be invoked when the user wants to turn a JIRA ticket into a feature ticket.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
request-refactor-plan
Jeroen-G
Use this skill when user wants to create a refactor plan.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
agent-docs
Jeroen-G
Generate or maintain a repo's agent docs with the domain model and module design in /.agents/docs/ (context map, glossary, ADRs).
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
atlassian
Jeroen-G
Use atlassian-cli to look up or search Jira issues and Confluence pages.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
codebase-design
Jeroen-G
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
caveman
Jeroen-G
Ultra-compressed communication mode.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
domain-modeling
Jeroen-G
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9 - 0.561score
writing-for-agents
Jeroen-G
Writing documents for agents.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (17 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Jeroen-G/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Jeroen-G
- 0.587score
gitlab
Jeroen-G
GitLab CLI (glab) for working with GitLab from the command line.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
entity-diff
Jeroen-G
Entity-level view of code changes (functions, classes, methods) via the `sem` CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dex
Jeroen-G
Manage tasks via dex CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
feature-ticket-to-tasks
Jeroen-G
This skill will be invoked when the user wants to break a Feature Ticket into independently-grabbable Dex tasks.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
write-feature-ticket
Jeroen-G
This skill will be invoked when the user wants to turn a JIRA ticket into a feature ticket.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
request-refactor-plan
Jeroen-G
Use this skill when user wants to create a refactor plan.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
skill-drift. Agent Mart. https://agentmart.dev/skills/jeroen-g-skill-drift (last updated 2026-10-24)