$npx -y skills add jamditis/claude-skills-journalism --skill vibe-codingMethodology for effective AI-assisted software development. Use when helping users build software with AI coding assistants, debugging AI-generated code, planning features for AI implementation, managing version control in AI workflows, or when users mention "vibe coding," Claude
| 1 | # Vibe coding methodology |
| 2 | |
| 3 | Practical strategies for building software effectively with AI coding assistants. |
| 4 | |
| 5 | > **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. |
| 6 | |
| 7 | ## Planning process |
| 8 | |
| 9 | Start by working with the AI to write a detailed implementation plan in a markdown file. |
| 10 | |
| 11 | **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. |
| 12 | |
| 13 | **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. |
| 14 | |
| 15 | **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. |
| 16 | |
| 17 | ## Version control strategies |
| 18 | |
| 19 | Git is your safety net — don't rely solely on the AI tool's revert functionality. |
| 20 | |
| 21 | **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. |
| 22 | |
| 23 | **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.) |
| 24 | |
| 25 | **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. |
| 26 | |
| 27 | ## Testing framework |
| 28 | |
| 29 | 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. |
| 30 | |
| 31 | **Regression prevention**: LLMs often make unnecessary changes to unrelated logic. Tests catch these regressions before they compound. |
| 32 | |
| 33 | **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. |
| 34 | |
| 35 | ## Effective bug fixing |
| 36 | |
| 37 | **Error messages**: Simply copy-pasting error messages is often enough context for the AI to identify and fix issues. |
| 38 | |
| 39 | **Analyze before coding**: Ask the AI to consider multiple possible causes before jumping to implementation. This prevents chasing the wrong problem. |
| 40 | |
| 41 | **Reset after failures**: Start with a clean slate after each unsuccessful fix attempt rather than layering fixes on top of broken code. |
| 42 | |
| 43 | **Strategic logging**: Add logging statements to better understand what's happening when bugs are opaque. |
| 44 | |
| 45 | **Switch models**: Try different AI models when one gets stuck on a problem. |
| 46 | |
| 47 | ## AI tool landscape (as of 2026-05) |
| 48 | |
| 49 | The current tools cluster into four shapes. Pick by where you work, not by hype. |
| 50 | |
| 51 | | Shape | Examples | When | |
| 52 | |---|---|---| |
| 53 | | CLI agents | Claude Code, Aider, Codex CLI, Gemini CLI, GitHub Copilot CLI, opencode, Goose | Repo-wide changes, multi-file refactors, automation, headless / cron use | |
| 54 | | Standalone IDEs | Cursor, Windsurf, Zed, Kiro | Day-to-day editing with chat + autocomplete tightly integrated | |
| 55 | | IDE extensions | GitHub Copilot, Continue, Cline, Roo Code, Amazon Q | Stay in your existing editor (VS Code, JetBrains, Neovim) | |
| 56 | | Cloud agents | Devin, OpenHands, Jules, GitHub Copilot Coding Agent | Async / background work via PR, no local terminal needed | |
| 57 | |
| 58 | 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 compl |