Skip to content

Instantly share code, notes, and snippets.

@gonzaloplaza
Created February 8, 2026 16:22
Show Gist options
  • Select an option

  • Save gonzaloplaza/cb3c0160ce3cf9ee88c3a35b3f6d3e74 to your computer and use it in GitHub Desktop.

Select an option

Save gonzaloplaza/cb3c0160ce3cf9ee88c3a35b3f6d3e74 to your computer and use it in GitHub Desktop.
My CLAUDE.md workflow orchestration

Workflow Orchestration

1. Plan Mode Default

  • Enter plan mode for ANY non-trivial task (3+ steps or architectural decisions)
  • If something goes sideways, STOP and re-plan immediately - don't keep pushing
  • Use plan mode for verification steps, not just building
  • Write detailed specs upfront to reduce ambiguity

2. Subagent Strategy

  • Use subagents liberally to keep main context window clean
  • Offload research, exploration, and parallel analysis to subagents
  • For complex problems, throw more compute at it via subagents
  • One task per subagent for focused execution
  • Automatically trigger subagent use for: tasks requiring reading multiple large files, extensive research (3+ tool calls),
  • or parallel exploration of different approaches

3. Self-Improvement Loop

  • After ANY correction from the user: update tasks/lessons.md with the pattern
  • Write rules for yourself that prevent the same mistake
  • Ruthlessly iterate on these lessons until mistake rate drops
  • Review lessons at session start for relevant project
  • Note: Create tasks/lessons.md if it doesn't exist at session start

4. Verification Before Done

  • Never mark a task complete without proving it works
  • Diff behavior between main and your changes when relevant
  • Ask yourself: "Would a staff engineer approve this?"
  • Run tests, check logs, demonstrate correctness
  • Update documentation if changes affect public APIs, user-facing behavior, or setup/configuration

5. Demand Elegance (Balanced)

  • For non-trivial changes: pause and ask "is there a more elegant way?"
  • If a fix feels hacky: "Knowing everything I know now, implement the elegant solution"
  • Skip this for simple, obvious fixes - don't over-engineer
  • Challenge your own work before presenting it
  • Watch for anti-patterns:
    • Repeating similar code in three or more places → create an abstraction
    • Functions with more than four parameters → reconsider the design
    • Deep nesting (3+ levels) → refactor for clarity
    • Magic numbers or strings → use named constants

6. Autonomous Bug Fixing

  • When given a bug report: just fix it. Don't ask for hand-holding
  • Point at logs, errors, failing tests - then resolve them
  • Zero context switching required from the user
  • Go fix failing CI tests without being told how

7. Failure Recovery

  • If tests start failing or implementation goes wrong: STOP immediately
  • Compare current state with last working version
  • Enumerate 2-3 possible solutions with pros/cons
  • Choose the simplest path forward
  • Avoid entering a fixing loop - verify understanding before continuing
  • If fundamentally wrong: acknowledge it, roll back, and re-plan

Task Management

  1. Plan First: Write plan to tasks/todo.md with checkable items (create file if doesn't exist)
  2. Verify Plans: Check in before starting implementation
  3. Track Progress: Mark items complete as you go
  4. Explain Changes: High-level summary at each step
  5. Document Results: Add review section to tasks/todo.md
  6. Capture Lessons: Update tasks/lessons.md after corrections

Technology Context

Stack Preferences:

  • Language: TypeScript
  • Runtime: Node.js 22+
  • Package Manager: pnpm
  • Code Quality: ESLint, Prettier
  • Testing: Vitest for unit tests

Core Principles

  • Simplicity First: Make every change as simple as possible. Impact minimal code.
  • No Laziness: Find root causes. No temporary fixes. Senior developer standards.
  • Minimal Impact: Changes should only touch what's necessary. Avoid introducing bugs.
  • Incremental Progress: Favor small, verifiable steps over large risky changes. Each step should be testable and reviewable. Baby steps are not just acceptable but preferred.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment