Git History Bug Audit
ben-manes/caffeine
Audits a module by walking its git history commit by commit, tracking unresolved issues forward, and reporting the ones that survive to HEAD as findings.
Common pitfalls that are slow to troubleshoot and that tend to get "fixed" by going in circles, because the error message points nowhere near the actual cause.
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfalls --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dev-pitfalls .claude/skills/dev-pitfalls && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .claude/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfallsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfalls --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/dev-pitfalls .agents/skills/dev-pitfalls && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .agents/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfalls --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/dev-pitfalls .cursor/skills/dev-pitfalls && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .cursor/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git --path .claude/skills/dev-pitfalls--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfalls --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/dev-pitfalls .gemini/skills/dev-pitfalls && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .gemini/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfallsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/dev-pitfalls .github/skills/dev-pitfalls && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .github/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheDecipherist/claude-code-mastery-project-starter-kit dev-pitfalls --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/dev-pitfalls .opencode/skills/dev-pitfalls && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dev-pitfalls" agent skill from https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit/tree/main/.claude/skills/dev-pitfalls into .opencode/skills/dev-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-pitfalls", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dev-pitfallsCommon pitfalls that are slow to troubleshoot and that tend to get "fixed" by going in circles, because the error message points nowhere near the actual cause.
Dev Pitfalls is an agent skill from TheDecipherist/claude-code-mastery-project-starter-kit. Common pitfalls that are slow to troubleshoot and that tend to get "fixed" by going in circles, because the error message points nowhere near the actual cause. Use before and during git, project, and WSL work, checking a repo is initialized and nodemodules is ignored, putting WSL projects on the right filesystem, opening a browser from WSL for auth, normalizing line endings, and matching import case. Check the layer here first instead of debugging the wrong one.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Debugging and Git workflow. It works with Git and Linux. The repository describes itself as: The definitive starting point for Claude Code projects. Based on Claude Code Mastery Guides V1-V5. The licence is MIT.
Read from SKILL.md and the folder at commit 61fbb99. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitkubectlnpmhelmdockernpxterraformawsghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, kubectl, npm, helm, docker, npx, aws and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dev Pitfalls loads about 3.3k tokens when it runs. Until then it costs about 120 tokens; SKILL.md has 1,747 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
Ntracked files.** If `node_modules` (or `.env`, or build output) was already committed, adding it to `.gitignore` change` globally (in `~/.bashrc` or a sourced `.env`) instead of setting it inline on the test command, it overrides your deskcho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p`. Inside a container, set `CHOKIAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TheDecipherist/claude-code-mastery-project-starter-kit at commit 61fbb99, republished under its MIT licence (© TheDecipherist). 1,747 words, ~3,271 tokens.
.claude/skills/dev-pitfalls/SKILL.md (or your agent's skills folder).These cost hours because the symptom points at the wrong thing, and they're easy to "fix" by going in circles. When something matches below, check the cause here before debugging the code.
Claude's frequent miss is assuming project state instead of verifying it. Two checks, stated plainly to the user:
git rev-parse --is-inside-work-tree). If it doesn't, say so directly, "this directory isn't a git repository yet, run git init first", rather than running git commands that fail confusingly or silently acting on a parent repo.node_modules ignored? Before the first commit, confirm .gitignore exists and lists node_modules/. Create .gitignore BEFORE npm install so it is never tracked. If it isn't ignored yet, say so before anything gets committed..gitignore only ignores UNtracked files. If node_modules (or .env, or build output) was already committed, adding it to .gitignore changes nothing, git keeps tracking it, and this is a classic "my .gitignore isn't working" loop. Untrack it, then commit:
git rm -r --cached node_modules
git commit -m "Stop tracking node_modules"Confirm a rule actually bites with git check-ignore -v node_modules. Committed node_modules bloats the repo and breaks CI, its platform-specific compiled binaries fail on Linux runners. Same fix for anything that "won't stop showing up" after you ignored it.
The single biggest WSL pitfall, and Claude rarely thinks to check it. A project under /mnt/c (any Windows drive) is reached from Linux over a 9P bridge, so:
npm install, git status, and test runs crawlinotify is flaky across the bridge, so file watchers fire intermittently, hot reload and test watchers "work randomly" then silently stop, which becomes a circular debugging session if you chase it as a config problemchmod +x can silently fail and ssh rejects keys as "bad permissions"Keep repos on the Linux side (~/projects/..., ~/code/...) and open them with VS Code Remote-WSL. If a project sits on /mnt/c and shows any of the above, that location IS the bug, move it:
mv /mnt/c/Users/<you>/projects/my-app ~/projects/Use /mnt/c only when a file genuinely needs to live on the Windows side for a Windows GUI app.
Don't chase this through settings. The circular trap is treating intermittent watchers or a blind editor as a config problem and tweaking watcher polling, exclude globs, and a pile of VS Code settings. On a Windows machine showing these symptoms, check the path FIRST. If it's /mnt/c, the answer is almost always "you're on the Windows filesystem, open the folder in WSL (Remote-WSL) and move it to ~/", say that before suggesting a single setting.
A CLI runs an OAuth/SSO login, tries to open a browser from WSL, and either nothing opens or it opens a browser that isn't signed into the corporate IdP (Okta, Entra), so the login fails. Why your own browser matters: the SSO session lives in your real Chrome profile, a fresh or other browser context doesn't have it.
Default to launching your real Chrome via an executable shim on PATH (~/.local/bin/chrome, chmod +x):
#!/bin/sh
exec "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" "$@"export BROWSER=chrome # in ~/.bashrcThat opens your actual browser, your bookmarks and your live Okta session, which is what you want about 99% of the time.
wslview (from the wslu package) is the alternative, but in a corporate setup the browser it routes to may not carry your IdP session, so the login page loads unauthenticated. Offer it as a fallback, not the default. If neither is configured, ask the user which they want (own Chrome vs wslview) before wiring it in.
Check $BROWSER hasn't been hijacked. BROWSER has two unrelated meanings: the desktop convention (which browser opens URLs, used by auth flows) and Playwright's test-runner convention, where BROWSER=chromium selects which browser to run tests in. If a Playwright project exports BROWSER=chromium globally (in ~/.bashrc or a sourced .env) instead of setting it inline on the test command, it overrides your desktop browser, so auth flows either fail outright (no executable named chromium on PATH) or open Playwright's bundled Chromium, a clean isolated context with none of your sessions. Same class of problem as VS Code's built-in browser. Diagnose with echo $BROWSER: if it shows chromium, firefox, or webkit, that's the hijack. Keep BROWSER=chrome (your shim) for desktop and auth, and scope Playwright's to the command only: BROWSER=chromium npx playwright test.
Use a shim, not a bash alias. An alias exists only in interactive shells, so when a program execs $BROWSER it never sees the alias and the open silently fails, which is the exact programmatic case auth needs.
Windows CRLF breaks things in ways that take forever to trace: YAML parsing wrong, shell scripts dying with bad interpreter: /bin/bash^M, Docker entrypoints not executing, diffs showing every line changed when nothing did. YAML and .sh scripts are the usual victims because a stray \r rides along invisibly.
The symptom that wastes the most time: a deploy failing with a type error. A Kubernetes apply (or any YAML-driven deploy) that throws "expected a string, got a map/object" or "cannot unmarshal object into ... string" usually has nothing wrong with the field it names. A stray \r from CRLF has broken how the parser reads the value, so a scalar gets read as a structure. The manifest looks correct because the \r is invisible, which is exactly why this eats hours: the error points at the data, not the line ending. Before debugging the field, the schema, or the value, check the file's line endings, normalize to LF and re-apply.
Make the repo LF-only with .gitattributes at the root:
* text=auto eol=lftext=auto lets git detect text vs binary (binaries untouched); eol=lf forces LF in both the committed blob and the working tree, regardless of anyone's local core.autocrlf. For a repo that already committed CRLF, the attribute alone won't rewrite it, renormalize once: git add --renormalize . && git commit -m "Normalize line endings to LF". Set .editorconfig end_of_line = lf so files are authored as LF too.
import './Button' resolves on a case-insensitive Windows/macOS filesystem even when the file is button.tsx, then fails on Linux and CI with "module not found." Match import casing to the real filename exactly. The same trap hits two files differing only in case (README.md vs Readme.md): they coexist on Linux but collide or shadow each other on Windows/macOS.
Structured config (Kubernetes, Helm, Terraform, cloud CLIs) is a typed, nested schema of objects and arrays, not flat KEY=VALUE. Guessing a field path is how an hour disappears into service.port vs spec.ports[0].port. The exact path is one command away, so query it instead of guessing.
kubectl explain <resource>.<path> returns the real schema, including whether a field is an object or an array. kubectl explain service.spec.ports shows ports is a list, so the value lives at spec.ports[0].port, not spec.port. Add --recursive for the full nested tree.kubectl get <resource> <name> -o yaml shows the actual structure and values of a live object. Read the path off that, then pull a value precisely with -o jsonpath='{.spec.ports[0].port}'.KEY=VALUE is not how Kubernetes models things. Env vars are a list of objects, env: [{name: FOO, value: bar}], not a map env: {FOO: bar}. Ports, containers, and volumes are arrays too (spec.containers[0].image). Flat-config instincts break here.service.port can be valid in one chart's values.yaml and meaningless in another, that structure is defined by the chart, not by Kubernetes. Run helm show values <chart> and read the real keys instead of carrying an assumed path between charts.General rule: when a tool ships an introspection command (kubectl explain, kubectl get -o yaml, helm show values, terraform state show, aws ... describe-*, gh api), use it to get the exact names the first time. A two-second lookup beats an hour on a path that "looked right."
The worst time-sinks are errors whose message points at the wrong thing, so you debug what the text says for hours. When you see one of these, check the real cause first.
ENOSPC: no space left on device from a dev server, npm start, Vite, nodemon, or VS Code is almost never disk space. It's the Linux inotify file-watcher limit (default ~8192), exhausted by a large project's file count. Confirm disk is fine with df -h, check the limit with cat /proc/sys/fs/inotify/max_user_watches, then raise it: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p. Inside a container, set CHOKIDAR_USEPOLLING=true instead.exec format error (exec /entrypoint.sh: exec format error, or standard_init_linux.go: ... exec format error) means the binary's CPU architecture doesn't match the host: an arm64 image on an amd64 host or the reverse. Common now that dev laptops are ARM (Apple Silicon) while prod or CI is x86 (or ARM Graviton). Image metadata can claim the right arch while the binary inside doesn't, so trust file <binary> run inside the container over docker inspect. Fix: pull/run with --platform linux/amd64, or build multi-arch with docker buildx build --platform linux/amd64,linux/arm64. Second possible cause: CRLF in the entrypoint script (see line endings above), check that too.fatal: detected dubious ownership in repository is a UID mismatch, not corruption: the repo files are owned by a different user than the one running git. Classic on /mnt/c (Windows files look root-owned to WSL) and in containers (host UID does not match container UID). Git offers the band-aid (git config --global --add safe.directory <path>), but the durable fix is matching ownership: chown -R $(whoami) <repo>, moving the repo to ~/, or running the container with --user $(id -u):$(id -g).EADDRINUSE: address already in use is a leftover process holding the port, usually a dev server that didn't exit. Find and kill it: lsof -t -i:3000 | xargs kill, or use another port. Don't reconfigure the app.JavaScript heap out of memory is V8's default heap ceiling, not always a leak. For a heavy build, raise it: NODE_OPTIONS=--max-old-space-size=4096. If it recurs at low memory, then look for a real leak.This skill is built to grow. Each new pitfall is another short section: the symptom you actually see, the cause, and the fix that ends the loop.
© TheDecipherist, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/dev-pitfalls of TheDecipherist/claude-code-mastery-project-starter-kit.
Open the folder on GitHubat commit 61fbb99
Dev Pitfalls next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dev Pitfalls this skillTheDecipherist/claude-code-mastery-project-starter-kit | 338 | — | ~3.3k | Automated safety check: Notes | MIT | |
| Git History Bug Auditben-manes/caffeine | 18k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Stax Devcesarferreira/stax | 128 | — | ~987 | Automated safety check: Pass | MIT | |
| Antigravity CLI StatuslineAndyAWD/antigravity-cli-statusline | 100 | — | ~2.2k | Automated safety check: Pass | MIT | |
| SetupProrise-cool/Claude-Code-Multi-Agent | 305 | — | ~3k | Automated safety check: Notes | None | |
| Git ConfigProrise-cool/Claude-Code-Multi-Agent | 305 | — | ~4.4k | Automated safety check: Notes | None |
ben-manes/caffeine
Audits a module by walking its git history commit by commit, tracking unresolved issues forward, and reporting the ones that survive to HEAD as findings.
cesarferreira/stax
Development harness for the stax Rust CLI project. An agent skill from cesarferreira/stax.
AndyAWD/antigravity-cli-statusline
本技能用於設定 Antigravity 命令列介面(CLI)(agy)的狀態列(Statusline / Footer)顯示指標、顯示順序與多語系介面(繁體中文 zh-tw / English us / 日本語 jp),並自動部署跨平台 Node.js 掛鉤(Hook)腳本(statusline-quota.mjs、fetch-local-quota.mjs)至…
Prorise-cool/Claude-Code-Multi-Agent
Complete guide to installing Git and performing basic configuration across all platforms (Windows, macOS, Linux, WSL).
Prorise-cool/Claude-Code-Multi-Agent
Comprehensive Git configuration guide covering global settings, aliases, performance tuning, credential management, maintenance, .gitattributes, clone shortcuts, and troubleshooting.
lynxlangya/techne
Evidence-gated diff review for PRs, branches, commit ranges, staged code changes, and merge readiness checks.
TheDecipherist/claude-code-mastery-project-starter-kit
Scaffold a new microservice that follows the project's server/handlers/adapters architecture.
TheDecipherist/claude-code-mastery-project-starter-kit
Where CSS should live. An agent skill from TheDecipherist/claude-code-mastery-project-starter-kit.
TheDecipherist/claude-code-mastery-project-starter-kit
Production Docker best practices for writing Dockerfiles, Compose files, and Swarm stacks.
TheDecipherist/claude-code-mastery-project-starter-kit
Production Docker Swarm deployment rules: what changes when a compose file goes from a single node to a multi-node Swarm.
TheDecipherist/claude-code-mastery-project-starter-kit
Production MongoDB backup and restore practices that the documentation gets wrong.
TheDecipherist/claude-code-mastery-project-starter-kit
Production MongoDB replica-set operation: topology, durability, host tuning, and the container-specific gotchas Claude gets wrong.
Categories
Common pitfalls that are slow to troubleshoot and that tend to get "fixed" by going in circles, because the error message points nowhere near the actual cause. Dev Pitfalls is an agent skill from TheDecipherist/claude-code-mastery-project-starter-kit. Common pitfalls that are slow to troubleshoot and that tend to get "fixed" by going in circles, because the error message points nowhere near the actual cause.
Dev Pitfalls fits situations like: tasks that involve Debugging; tasks that involve Git workflow.
Run `npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a claude-code`. Or copy the skill folder (.claude/skills/dev-pitfalls in TheDecipherist/claude-code-mastery-project-starter-kit) into .claude/skills/dev-pitfalls in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a codex`. Or copy the skill folder (.claude/skills/dev-pitfalls in TheDecipherist/claude-code-mastery-project-starter-kit) into .agents/skills/dev-pitfalls in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheDecipherist/claude-code-mastery-project-starter-kit --skill dev-pitfalls -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dev-pitfalls, .gemini/skills/dev-pitfalls, .github/skills/dev-pitfalls and .opencode/skills/dev-pitfalls in your project.
Going by SKILL.md and its folder, Dev Pitfalls needs the command-line tools its instructions call (git, kubectl, npm, helm, docker and npx). Our summary lists: Node.js; Docker.
SKILL.md contains no URLs. Its commands use git, npm, docker, npx and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file; runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Dev Pitfalls is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dev Pitfalls: Git History Bug Audit (ben-manes/caffeine, 18k stars), Stax Dev (cesarferreira/stax, 128 stars), Antigravity CLI Statusline (AndyAWD/antigravity-cli-statusline, 100 stars) and Setup (Prorise-cool/Claude-Code-Multi-Agent, 305 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheDecipherist (a GitHub user) maintains it in TheDecipherist/claude-code-mastery-project-starter-kit, which has 338 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on June 29, 2026.
Source: TheDecipherist/claude-code-mastery-project-starter-kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.