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.
AI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf.
$ npx skills add jamditis/claude-skills-journalism --skill vibe-coding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamditis/claude-skills-journalism vibe-coding --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/jamditis/claude-skills-journalism.git skills-src && mkdir -p .claude/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .claude/skills/vibe-coding && 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 "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .claude/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-codingType 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 jamditis/claude-skills-journalism --skill vibe-coding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamditis/claude-skills-journalism vibe-coding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .agents/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .agents/skills/vibe-coding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .agents/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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 jamditis/claude-skills-journalism --skill vibe-coding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamditis/claude-skills-journalism vibe-coding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .cursor/skills/vibe-coding && 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 "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .cursor/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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/jamditis/claude-skills-journalism.git --path dev-toolkit/skills/vibe-coding--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 jamditis/claude-skills-journalism --skill vibe-coding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamditis/claude-skills-journalism vibe-coding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .gemini/skills/vibe-coding && 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 "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .gemini/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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 jamditis/claude-skills-journalism vibe-codingInstalls 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 jamditis/claude-skills-journalism --skill vibe-coding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .github/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .github/skills/vibe-coding && 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 "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .github/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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 jamditis/claude-skills-journalism --skill vibe-coding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamditis/claude-skills-journalism vibe-coding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/dev-toolkit/skills/vibe-coding .opencode/skills/vibe-coding && 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 "vibe-coding" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/dev-toolkit/skills/vibe-coding into .opencode/skills/vibe-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-coding", 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.
vibe-codingAI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf.
Vibe Coding is an agent skill from jamditis/claude-skills-journalism. AI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf. Use to build or debug generated code.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Git workflow and Debugging. It works with Git. The repository describes itself as: Claude Code skills for journalism, media, and academia - verification, FOIA, data journalism, academic writing, and more. The licence is MIT.
Read from SKILL.md and the folder at commit e3e2172. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.anthropic.comFrom 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.
Vibe Coding loads about 2.2k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 1,158 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 found no risky patterns in SKILL.md.
Automated 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 jamditis/claude-skills-journalism at commit e3e2172, republished under its MIT licence (© jamditis). 1,158 words, ~2,186 tokens.
.claude/skills/vibe-coding/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Practical strategies for building software effectively with AI coding assistants.
Tool landscape moves fast. This skill was last swept 2026-05-08. The methodology (planning, version control, testing, bug-fixing) is stable; the specific tool names, instruction-file conventions, and pricing details drift quarterly. Treat the named tools as representative, not exhaustive.
Start by working with the AI to write a detailed implementation plan in a markdown file.
Scope management: Review and refine the plan, delete unnecessary items, mark complex features as "won't do," and keep a separate section for ideas to implement later. This prevents scope creep and maintains focus.
Incremental implementation: Work section by section rather than building everything at once. Have the AI mark sections complete after successful implementation, and commit each working section to git before moving to the next.
Track progress visibly: Use todo lists, markdown checklists, or inline status markers so both you and the AI can see what's done and what remains. This prevents re-implementing completed work and keeps sessions focused.
Git is your safety net, don't rely solely on the AI tool's revert functionality.
Branch per attempt: Begin each new feature on a fresh feature branch (git switch -c feature/xyz) and commit small chunks as the AI makes progress. The branch boundary is your "if this goes off the rails, throw it away" boundary, you discard the branch, not your working tree.
When the AI goes down a bad path: Prefer reversible commands. git restore . discards uncommitted changes; git stash parks them; git switch - jumps back to your previous branch. Reach for git reset --hard HEAD only when you've confirmed there's nothing in the working tree worth keeping, destructive commands skip the reflog niceties and can swallow uncommitted experiments. (If the agent has been creating new files, a separate git clean -fd is also part of "really, throw it all away", same caveats.)
Clean re-implementation: When you finally find a working solution after several attempts, branch from main, implement it fresh, and discard the throwaway branch. Multiple failed AI attempts leave layers of dead code that compound future confusion, a clean re-implementation of a known-good solution is faster and more maintainable than untangling the spaghetti.
Prioritize end-to-end integration tests over unit tests. Focus on simulating user behavior, testing features by simulating someone clicking through the site or app.
Regression prevention: LLMs often make unnecessary changes to unrelated logic. Tests catch these regressions before they compound.
Tests as guardrails: Consider starting with test cases to provide clear boundaries for what the AI should and shouldn't change. Ensure tests pass before moving to the next feature.
Error messages: Simply copy-pasting error messages is often enough context for the AI to identify and fix issues.
Analyze before coding: Ask the AI to consider multiple possible causes before jumping to implementation. This prevents chasing the wrong problem.
Reset after failures: Start with a clean slate after each unsuccessful fix attempt rather than layering fixes on top of broken code.
Strategic logging: Add logging statements to better understand what's happening when bugs are opaque.
Switch models: Try different AI models when one gets stuck on a problem.
The current tools cluster into four shapes. Pick by where you work, not by hype.
| Shape | Examples | When |
|---|---|---|
| CLI agents | Claude Code, Aider, Codex CLI, Gemini CLI, GitHub Copilot CLI, opencode, Goose | Repo-wide changes, multi-file refactors, automation, headless / cron use |
| Standalone IDEs | Cursor, Windsurf, Zed, Kiro | Day-to-day editing with chat + autocomplete tightly integrated |
| IDE extensions | GitHub Copilot, Continue, Cline, Roo Code, Amazon Q | Stay in your existing editor (VS Code, JetBrains, Neovim) |
| Cloud agents | Devin, OpenHands, Jules, GitHub Copilot Coding Agent | Async / background work via PR, no local terminal needed |
A common stack many developers converge on: Cursor or Copilot for daily editing + Claude Code (or Codex CLI) for repo-wide / agentic tasks. They're complementary, fast inline edits in the IDE, longer agentic loops at the terminal.
Instruction files: Write project-specific context for your AI assistants. Conventions have splintered, but several tools converge on AGENTS.md as a shared format. Current naming as of 2026-05:
| Tool | File(s) | Notes |
|---|---|---|
| Claude Code | CLAUDE.md (per-directory, nested) | Loaded automatically; see docs.anthropic.com/en/docs/claude-code/memory |
| Cursor | .cursor/rules/*.mdc (modern), Markdown + YAML frontmatter (description, globs, alwaysApply) | Legacy .cursorrules single-file still works but Cursor recommends migrating |
| Windsurf | .windsurfrules or .windsurf/rules/*.md | Same dual pattern as Cursor |
| GitHub Copilot | .github/copilot-instructions.md | Single repo-level file, ~4k char practical cap |
| Cline | .clinerules | Single file |
| Aider | .aider.conf.yml (config) + chat history files | Git-native; reads CONVENTIONS.md if you point it there |
| Continue | .continue/config.json | JSON config; per-repo |
| Codex CLI / Gemini CLI / Aider / Continue | AGENTS.md (vendor-neutral fallback) | Becoming the cross-tool common denominator |
When working across multiple tools, keep the canonical guidance in AGENTS.md and reference it from tool-specific files (CLAUDE.md: "Also read AGENTS.md."). That avoids drift between siblings.
Local documentation: Download API documentation to your project folder. AI tools work more accurately against local docs than against recalled training data, especially for libraries that release breaking changes faster than training cutoffs (e.g. Sentry SDK, Google GenAI SDK, Selenium).
Run multiple tools: There's no penalty for running Cursor for inline edits while a Claude Code or Codex CLI session works in another terminal on a separate task. Different shapes for different work.
Compare outputs: For high-stakes decisions, generate solutions from two different model families (e.g., Claude + GPT-5) and pick the better one. They make different mistakes.
Standalone prototypes: Build complex features in a clean codebase first, then integrate once working. This isolates problems and makes debugging easier.
Reference implementations: Point the AI to working examples to follow. Existing code patterns provide concrete guidance.
Clear boundaries: Maintain consistent external APIs while allowing internal changes. Service-based architectures with clear boundaries work better than monorepos for AI-assisted development.
Established frameworks: Ruby on Rails and similar mature frameworks work well due to 20+ years of consistent conventions in training data.
Training data matters: Newer languages like Rust or Elixir may have less training data, leading to more errors or outdated patterns.
Modularity: Small, modular files are easier for both humans and AIs to work with. Avoid files with thousands of lines, they exceed context windows and create confusion.
AI assistants help with more than writing code:
Regular refactoring: Once tests are in place, refactor frequently. Ask the AI to identify refactoring candidates.
Stay current: Try every new model release. Different models excel at different tasks, experiment to find which works best for your use case.
© jamditis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in dev-toolkit/skills/vibe-coding of jamditis/claude-skills-journalism.
Open the folder on GitHubat commit e3e2172
Vibe Coding 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 |
|---|---|---|---|---|---|---|
| Vibe Coding this skilljamditis/claude-skills-journalism | 416 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Git History Bug Auditben-manes/caffeine | 18k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Stax Devcesarferreira/stax | 129 | — | ~987 | Automated safety check: Pass | MIT | |
| Anchor Vetlynxlangya/techne | 105 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Build Deploy TroubleshootParesh-Maheshwari/morphe-ai | 175 | — | ~1.1k | Automated safety check: Pass | GPL-3.0 | |
| Targeted Emergency Bug FixVeryGoodOpenSource/vgv-wingspan | 109 | — | ~1.9k | Automated safety check: Pass | MIT |
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.
lynxlangya/techne
Evidence-gated diff review for PRs, branches, commit ranges, staged code changes, and merge readiness checks.
Paresh-Maheshwari/morphe-ai
Build, test, deploy, and troubleshoot Morphe patches — gradle commands, CLI usage, git workflow, common errors and fixes.
VeryGoodOpenSource/vgv-wingspan
Applies a minimal fix to an emergency bug through triage, root-cause location, a hotfix branch and a blast-radius check, with tests and review still required.
rohitg00/skillkit
Applies systematic tracing and isolation techniques to pinpoint exactly where a bug originates in code.
jamditis/claude-skills-journalism
A skill your agent uses when creating distinct website directions, a client review picker, asset catalog, previews, and Cloudflare-ready handoffs.
jamditis/claude-skills-journalism
Builds an Open Knowledge Format (OKF) knowledge base from existing docs, notes, or a repo.
jamditis/claude-skills-journalism
Local Gitleaks scans for staged changes, push ranges, and full history in private repos, with redacted reports.
jamditis/claude-skills-journalism
Acquire, clean, analyze, verify, visualize, and explain data for journalism.
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
jamditis/claude-skills-journalism
Establishes how to find and use skills, requiring Skill tool invocation before any response.
Works with
Categories
AI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf. Vibe Coding is an agent skill from jamditis/claude-skills-journalism. AI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf.
Vibe Coding fits situations like: debug generated code; tasks that involve Git workflow; tasks that involve Debugging.
Run `npx skills add jamditis/claude-skills-journalism --skill vibe-coding -a claude-code`. Or copy the skill folder (dev-toolkit/skills/vibe-coding in jamditis/claude-skills-journalism) into .claude/skills/vibe-coding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamditis/claude-skills-journalism --skill vibe-coding -a codex`. Or copy the skill folder (dev-toolkit/skills/vibe-coding in jamditis/claude-skills-journalism) into .agents/skills/vibe-coding 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 jamditis/claude-skills-journalism --skill vibe-coding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vibe-coding, .gemini/skills/vibe-coding, .github/skills/vibe-coding and .opencode/skills/vibe-coding in your project.
Going by SKILL.md and its folder, Vibe Coding needs the command-line tools its instructions call (git).
SKILL.md names 1 domain. As links in the text: docs.anthropic.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vibe Coding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k 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 Vibe Coding: Git History Bug Audit (ben-manes/caffeine, 18k stars), Stax Dev (cesarferreira/stax, 129 stars), Anchor Vet (lynxlangya/techne, 105 stars) and Build Deploy Troubleshoot (Paresh-Maheshwari/morphe-ai, 175 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamditis (a GitHub user) maintains it in jamditis/claude-skills-journalism, which has 416 GitHub stars. The repository holds 53 skills in this directory. The repository was last updated on October 4, 2026.
Source: jamditis/claude-skills-journalism on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.