Skip to main content
Generalmarkus41

common-workflows

Workflow packs for the 7 most common Claude Code tasks — codebase exploration, bug fixing, safe refactoring, TDD, repo review before merge, CLAUDE.md generation, and migration planning. Each pack has a start prompt, verification steps, subagent opportunities, failure modes, and completion checklist.

Stars
12
Source
markus41/claude
Updated
2026-05-11
Slug
markus41--claude--common-workflows
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/markus41/claude/HEAD/plugins/claude-code-expert/archive/v7.6.0/skills/common-workflows/SKILL.md -o .claude/skills/common-workflows.md

Drops the SKILL.md into .claude/skills/common-workflows.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Common Workflow Packs

Seven battle-tested workflow packs that mirror the official Claude Code common-workflows guide. Each pack is a complete playbook, not generic advice.


Pack 1: Understand a Codebase

When: First time in an unfamiliar repo, onboarding a new project, or before making large changes.

Start Prompt

You are a senior engineer exploring this codebase for the first time.

Phase 1 — Structure mapping:
1. Read CLAUDE.md, README.md, and package.json/pyproject.toml
2. Map the top-level directory structure (2 levels deep)
3. Identify: entry points, main business logic, data layer, API layer, test layer
4. Identify: tech stack, framework version, package manager

Phase 2 — Architecture extraction:
5. Find the 3 most important source files (highest import count or central routing)
6. Read each one and extract: purpose, key abstractions, dependencies
7. Map data flow: where does data enter, transform, and exit?
8. Identify patterns: are there service layers, repositories, DTOs, event buses?

Phase 3 — Output:
9. Write a 1-page architecture summary to .claude/context-snapshot.md with:
   - Tech stack table
   - 3-sentence architecture description
   - Key file map (path → purpose, one line each)
   - Entry points and their routes/triggers
   - Known complexity hotspots (files > 300 lines or deeply nested logic)

Verification Steps

  • Tech stack correctly identified (check package.json/Cargo.toml/pyproject.toml)
  • All entry points found (check for main.ts, index.ts, manage.py, main.go)
  • Architecture snapshot written to .claude/context-snapshot.md
  • No assumptions made that weren't verified in code

Subagent Opportunities

  • Delegate framework-specific analysis: spawn a subagent for src/auth/ while you explore src/api/
  • Use a Haiku subagent to list imports and build the dependency graph (fast, cheap)
  • Use an Opus subagent only for the final architecture synthesis

Common Failure Modes

  • Over-reading: reading every file instead of tracing from entry points inward
  • Missing the glue: forgetting to read middleware, config loaders, and DI containers
  • Stale docs: trusting README over what's actually in the code

Completion Checklist

  • .claude/context-snapshot.md written
  • Can explain the system in 3 sentences without looking at the code
  • Know where to find: routing, data models, auth, config, tests

Pack 2: Fix a Bug from an Error Trace

When: You have a stack trace, error message, or failing test and need to find and fix the root cause.

Start Prompt

You are debugging the following error:

{PASTE ERROR TRACE HERE}

Evidence-based debugging protocol:

Phase 1 — Parse:
1. Extract: error type, message, file, line number, call stack
2. Identify the proximate cause (where it failed) vs. likely root cause (why)

Phase 2 — Locate:
3. Read the file at the error line + 20 lines of context
4. Trace the call stack: read each frame's function to understand data flow
5. Find where the problematic value was created or last mutated

Phase 3 — Hypothesize:
6. Form 2-3 specific hypotheses about root cause
7. For each hypothesis: identify a code path that would produce this error
8. Pick the most likely hypothesis based on evidence

Phase 4 — Fix:
9. Write the minimal fix for the chosen hypothesis
10. Explain why the fix works
11. Identify if there are other call sites with the same bug

Phase 5 — Verify:
12. Run the failing test: {test_cmd}
13. Run the full test suite to check for regressions: {test_cmd}
14. If tests pass: commit with message "fix({scope}): {one-line description}"

Verification Steps

  • Error is reproducible before fix (confirm test fails)
  • Root cause identified (not just symptom masked)
  • Fix is minimal (no unrelated changes in the same commit)
  • Tests pass after fix
  • Other call sites checked for same bug

Subagent Opportunities

  • Use a subagent to search for similar patterns across the codebase: Grep "same_pattern" --all
  • Delegate test writing to a test-writer subagent after the fix is confirmed

Common Failure Modes

  • Symptom masking: adding null checks without finding why null appears
  • Over-engineering: refactoring instead of fixing
  • Regression: fixing one thing, breaking another — always run full suite
  • Wrong hypothesis: jumping to a fix without verifying the hypothesis first

Completion Checklist

  • Failing test was confirmed before fix
  • Root cause statement written in commit message
  • All tests pass
  • No unrelated changes in the commit

Pack 3: Refactor Safely

When: You need to restructure code without changing behavior. Extract a function, rename a module, split a large file, introduce an abstraction.

Start Prompt

You are a refactoring engineer. Goal: {DESCRIBE REFACTOR GOAL}.

Safety protocol:

Phase 1 — Baseline:
1. Identify the exact scope of change (files, functions, types affected)
2. Run the test suite and confirm it passes: {test_cmd}
3. Count the test coverage for the affected code: check coverage report
4. If coverage < 80% for the target code: write missing tests first

Phase 2 — Characterize:
5. List every call site for the code being changed: Grep for function/class name
6. List every import of the modules being changed
7. Identify any reflection, dynamic dispatch, or string-based lookups that might miss a grep

Phase 3 — Refactor (small steps):
8. Make one structural change at a time
9. After each change: compile/typecheck and run affected tests
10. Never have the codebase in a broken state between steps
11. Commit each step separately with message "refactor({scope}): {step description}"

Phase 4 — Verify:
12. Run the full test suite
13. Check that all call sites compile correctly
14. Run linter/formatter on changed files
15. Read the final version: does it actually read better than before?

Verification Steps

  • Full test suite passes before refactor starts
  • Full test suite passes after refactor ends
  • No behavior changes (same inputs → same outputs)
  • All call sites updated (no missed references)
  • Commits are granular (one logical step per commit)

Subagent Opportunities

  • Delegate test writing for uncovered code before refactoring starts
  • Use a subagent to find all import sites across a large monorepo

Common Failure Modes

  • Big bang refactor: changing too many files at once → hard to debug if tests break
  • Missing call sites: grepping for the wrong pattern, missing dynamic usages
  • No baseline: not confirming tests pass before starting
  • Scope creep: refactoring adjacent code that "looked messy"

Completion Checklist

  • Tests passed before and after
  • Commits are atomic and descriptive
  • No new TODO comments added (fix or defer explicitly)
  • Code is demonstrably more readable

Pack 4: TDD Implementation

When: Building a new feature or fixing a bug with a test-first approach.

Start Prompt

You are implementing {FEATURE DESCRIPTION} using TDD.

Red-Green-Refactor protocol:

Phase 1 — RED (write failing test):
1. Write the smallest possible test that captures the desired behavior
2. Run it: {test_cmd} — confirm it FAILS
3. If it passes without implementation, the test is wrong — fix the test

Phase 2 — GREEN (minimal implementation):
4. Write the simplest code that makes the test pass
5. No gold-plating: no error handling, no edge cases, no abstractions yet
6. Run tests: confirm it PASSES
7. Commit: "test({scope}): add test for {behavior}" + "feat({scope}): minimal implementation"

Phase 3 — REFACTOR:
8. Now improve the implementation: add error handling, extract functions, add types
9. After each change: run tests
10. When satisfied: commit "refactor({scope}): clean up {thing}"

Phase 4 — Edge cases:
11. List 3-5 edge cases: empty input, null, max values, concurrent access, etc.
12. Write a test for each
13. Make each pass with minimal changes
14. Commit per case

Phase 5 — Integration:
15. Write an integration test that exercises the full flow
16. Run the complete suite: {test_cmd}

Verification Steps

  • First test confirmed to fail before implementation
  • Each test written before the code that makes it pass
  • All edge cases listed and tested
  • Integration test covers end-to-end flow
  • All tests pass before PR

Subagent Opportunities

  • Use a test-writer subagent to generate edge case tests after the happy path is done
  • Delegate integration test writing to a separate agent

Common Failure Modes

  • Test after code: writing tests after implementation — defeats the purpose, biases toward what works
  • Trivial tests: testing implementation details instead of behavior
  • Skipping refactor: stopping at green, never cleaning up
  • Too large a first test: write the smallest useful test, not the full feature in one shot

Completion Checklist

  • Each feature commit has a corresponding test commit
  • No test accesses private/internal state
  • Coverage >= 80% for new code
  • Tests document expected behavior clearly

Pack 5: Repo Review Before Merge

When: Reviewing a PR or branch before merging to main. Catch issues a human reviewer might miss.

Start Prompt

You are a senior code reviewer. Review branch {BRANCH_NAME} before merge.

Phase 1 — Diff analysis:
1. git diff main...{branch} --stat — get the scope of change
2. git diff main...{branch} — read the full diff
3. Classify each changed file: new feature / bug fix / refactor / config / test

Phase 2 — Systematic review:
For each changed source file:
a. Does the change do what the PR description says?
b. Are there any obvious bugs (null deref, off-by-one, race condition)?
c. Is there missing error handling at I/O or network boundaries?
d. Are there hardcoded values that should be config?
e. Are there any security concerns (injection, auth bypass, secret exposure)?
f. Is the change covered by tests?

Phase 3 — Cross-cutting checks:
5. Are there any new dependencies? Check their license and security posture.
6. Does the diff include any changes to .env files or secrets? BLOCK if yes.
7. Does the migration (if any) have a rollback plan?
8. Does the API change break existing consumers?

Phase 4 — Report:
9. Output structured report with sections:
   BLOCK: must fix before merge
   REQUEST: should fix before merge
   SUGGEST: optional improvements
   PRAISE: good patterns worth keeping

Verification Steps

  • Full diff was read (not just summary)
  • All BLOCK items documented with specific line references
  • Security check completed (secrets, injection, auth)
  • Test coverage assessed for changed code
  • Migration/rollback plan verified if applicable

Subagent Opportunities

  • Use /cc-council for adversarial multi-perspective review (security + performance + architecture)
  • Delegate security scan to a security-reviewer subagent

Common Failure Modes

  • Shallow review: skimming the diff without reading full context
  • Ignoring tests: not checking if tests cover the change
  • Missing cross-cutting: not checking auth, logging, config for new features
  • Blocking on style: using BLOCK for minor style preferences instead of REQUEST/SUGGEST

Completion Checklist

  • Structured report produced (BLOCK / REQUEST / SUGGEST / PRAISE)
  • All BLOCK items have file:line references
  • Security checklist completed
  • No opinions stated without evidence from the code

Pack 6: Generate CLAUDE.md for an Existing Repo

When: A project has no CLAUDE.md and you need to bootstrap one from the existing codebase.

Start Prompt

You are a Claude Code architect. Generate a CLAUDE.md for this repository.

Phase 1 — Detect:
1. Read: package.json / pyproject.toml / Cargo.toml / go.mod (whichever exists)
2. Check for: .eslintrc, .prettierrc, .editorconfig, tsconfig.json, pyproject.toml [tool.black]
3. Find test runner: jest.config*, vitest.config*, pytest.ini, conftest.py
4. Find CI: .github/workflows/, .gitlab-ci.yml, Jenkinsfile
5. Read README.md (first 50 lines)

Phase 2 — Extract:
6. Install command (from package.json scripts.install or README)
7. Build command (from scripts.build or Makefile)
8. Test command (from scripts.test or CI config)
9. Lint command (from scripts.lint or linter config)
10. Key directories (src/, lib/, app/, tests/, docs/)

Phase 3 — Write CLAUDE.md:
Output a CLAUDE.md under 150 lines that is a routing file, not a knowledge dump:
- Build & Test section (all commands)
- Tech stack table (5-10 rows max)
- Key paths (3-6 entries)
- Architecture (1 paragraph, repo-specific — not generic)
- Decision trees (3-5 entries pointing to specific directories)
- Conventions (extracted from linter configs, not invented)
- Don't Touch (lock files, generated dirs, build output)

Write to: CLAUDE.md

Verification Steps

  • All commands verified to actually work (run install, build, test)
  • Architecture paragraph is specific to this repo (not generic)
  • Decision trees point to real directories that exist
  • Conventions extracted from actual config files, not assumed
  • File is under 150 lines

Subagent Opportunities

  • Use /cc-setup --audit after generating CLAUDE.md to get a setup score
  • Delegate rules file generation to a second pass

Common Failure Modes

  • Generic CLAUDE.md: using template boilerplate without customizing to the actual codebase
  • Wrong commands: not verifying commands actually run
  • Too long: adding documentation instead of routing

Completion Checklist

  • CLAUDE.md written, under 150 lines
  • All build/test commands verified
  • Architecture paragraph is specific and accurate

Pack 7: Create a Migration Plan Before Making Edits

When: About to make large structural changes (database schema, API refactor, framework upgrade, module reorganization). Plan before touching code.

Start Prompt

You are a migration architect. Before any code changes, produce a complete migration plan for: {DESCRIBE MIGRATION}.

Phase 1 — Inventory:
1. Map everything affected: files, tables, API endpoints, consumers, configs
2. List all dependencies (what depends on what you're changing)
3. Identify the blast radius: small (1-3 files) / medium (4-20 files) / large (20+)

Phase 2 — Risk assessment:
4. Identify data-loss risks (especially for database migrations)
5. Identify breaking changes (API changes that affect consumers)
6. Identify rollback complexity: can this be undone in < 30 minutes?

Phase 3 — Sequencing:
7. Break the migration into atomic phases that each leave the system working
8. Phase ordering rule: never leave the system broken between phases
9. Identify which phases can be deployed independently vs. require coordinated deployment

Phase 4 — Write the plan:
Output to .claude/migration-plan.md:
- Summary (1 paragraph)
- Blast radius assessment
- Phase breakdown (each phase: what changes, how to verify, how to rollback)
- Data migration scripts (if applicable)
- Rollback procedure
- Validation checklist

STOP here. Do not write any code yet. Wait for plan approval.

Verification Steps

  • All affected files/tables/endpoints inventoried
  • Rollback procedure is concrete and testable
  • Each phase leaves the system in a working state
  • Plan written to .claude/migration-plan.md
  • Plan reviewed and approved before any code written

Subagent Opportunities

  • Use a subagent to enumerate all import sites of modules being moved
  • Use the principal-engineer-strategist agent for risk review of the plan

Common Failure Modes

  • Skipping the plan: going straight to code on large migrations
  • Missing consumers: not finding all callers of an API or all readers of a database table
  • No rollback: planning forward-only migrations
  • Big bang: not breaking the migration into deployable phases

Completion Checklist

  • .claude/migration-plan.md written and reviewed
  • Rollback procedure documented and tested mentally
  • Go-ahead explicitly given before any code changes