A development workflow for Claude Code inspired by Ashley Ha's workflow, adapted to work 100% locally with thoughts.
π Read more: Tu CLAUDE.md no funciona sin Context Engineering (Spanish article about Stepwise-dev)
Solves the context management problem: LLMs lose attention after 60% context usage.
Implements Research -> Plan -> Implement -> Validate with frequent /clear and persistent thoughts/ storage.
- 6 Slash Commands for structured development
- 5 Specialized Agents for parallel research
- 3 Bash Scripts for local thoughts/ management
- Built-in version tracking for team synchronization
- Keep context < 60% (attention threshold)
- Split work into phases.
- Clear between phases, save to
thoughts/ - Never lose research or decisions
The create_plan command guides you through creating implementation plans that emphasize:
- Small safe steps using the Hamburger Method for vertical slicing
- Progressive delivery patterns (dummy β dynamic, backend-only β full stack, etc.)
- Learning vs Earning phases to separate research from value delivery
- Complexity assessment to guide implementation decisions
- Reversibility and rollback strategies for each phase
Plans are created interactively, with vertical slicing analysis before committing to detailed phases.
| Command | Description |
|---|---|
/stepwise-dev:research_codebase |
Research and document codebase comprehensively |
/stepwise-dev:create_plan |
Create detailed implementation plans iteratively |
/stepwise-dev:iterate_plan |
Update existing implementation plans |
/stepwise-dev:implement_plan |
Execute plans phase by phase with validation |
/stepwise-dev:validate_plan |
Validate implementation against plan |
/stepwise-dev:commit |
Create git commits (no Claude attribution) |
| Agent | Purpose |
|---|---|
codebase-locator |
Find WHERE code lives in the codebase |
codebase-analyzer |
Understand HOW code works |
codebase-pattern-finder |
Find similar patterns to model after |
thoughts-locator |
Discover documents in thoughts/ |
thoughts-analyzer |
Extract insights from thoughts docs |
| Script | Purpose |
|---|---|
thoughts-init |
Initialize thoughts/ structure in a project |
thoughts-sync |
Sync hardlinks in searchable/ directory |
thoughts-metadata |
Generate git metadata for documents |
Note: These scripts are executed automatically by the thoughts-management Skill. You don't need to install them separately or configure PATH.
# Add marketplace from GitHub
/plugin marketplace add nikeyes/stepwise-dev
# Install plugin
/plugin install stepwise-dev@stepwise-devRestart Claude Code after installation.
That's it! The plugin includes:
- 6 slash commands
- 5 specialized agents
- 1 thoughts-management Skill (with 3 bash scripts)
All components are ready to use immediately after installation.
Don't have a project to test with? Use stepwise-todo-api-test β a sample repository with small and large tasks designed for testing this plugin in an isolated environment.
After running thoughts-init in a project:
<your-project>/
βββ thoughts/
β βββ nikey_es/ # Your personal notes (you write)
β β βββ tickets/ # Ticket documentation
β β βββ notes/ # Personal notes
β βββ shared/ # Team-shared documents (Claude writes)
β β βββ research/ # Research documents
β β βββ plans/ # Implementation plans
β β βββ prs/ # PR descriptions
β βββ searchable/ # Hardlinks for grep (auto-generated)
β βββ nikey_es/ # -> hardlinks to nikey_es/
β βββ shared/ # -> hardlinks to shared/
βββ .gitignore # (add thoughts/searchable/ to this)
βββ ...
Key distinction:
nikey_es/: Personal tickets/notes you create manuallyshared/: Formal docs Claude generates from commands- Example:
/create_plan thoughts/nikey_es/tickets/eng_1234.mdreads your ticket β writesshared/plans/2025-11-09-ENG-1234-*.md
- Fast searching: Grep one directory instead of many
- No duplication: Same file, same inode, no extra disk space
- Auto-sync: Changes in source are immediately visible
- Efficient: Better than symlinks for grep operations
This directory contains research documents, implementation plans, and notes for this project.
nikey_es/- Personal notes and ticketstickets/- Ticket documentation and trackingnotes/- Personal notes and observations
shared/- Team-shared documentsresearch/- Research documents from /stepwise-dev:research_codebaseplans/- Implementation plans from /stepwise-dev:create_planprs/- PR descriptions and documentation
searchable/- Hardlinks for efficient grep searching (auto-generated)
Use Claude Code slash commands:
/stepwise-dev:research_codebase [topic]- Research and document codebase/stepwise-dev:create_plan [description]- Create implementation plan/stepwise-dev:implement_plan [plan-file]- Execute a plan/stepwise-dev:validate_plan [plan-file]- Validate implementation
Run thoughts-sync after adding/modifying files to update searchable/ hardlinks.
Goal: Understand what exists before changing anything.
# In Claude Code
/stepwise-dev:research_codebase How does authentication work in this app?This will:
- Spawn parallel agents to search the codebase
- Search thoughts/ for historical context
- Generate a comprehensive research document
- Save to
thoughts/shared/research/YYYY-MM-DD-topic.md - Run
thoughts-syncto update searchable/
Output: Research document with code references, architecture insights, and file:line numbers.
Goal: Create a detailed, iterative implementation plan.
# In Claude Code
/stepwise-dev:create_plan Add rate limiting to the API
# Or reference a research doc:
/stepwise-dev:create_plan @thoughts/shared/research/2025-11-09-auth-system.mdThis will:
- Ask clarifying questions
- Research existing patterns in the codebase
- Iterate with you 5+ times on the plan
- Create phases with specific changes
- Define automated AND manual success criteria
- Save to
thoughts/shared/plans/YYYY-MM-DD-topic.md
Output: Detailed plan with phases, file paths, code snippets, and verification steps.
Goal: Execute one phase at a time with confidence.
# In Claude Code
/stepwise-dev:implement_plan @thoughts/shared/plans/2025-11-09-rate-limiting.mdThis will:
- Read the complete plan
- Implement Phase 1
- Run automated verification (tests, linting)
- Pause for manual verification
- Wait for your confirmation
- Proceed to Phase 2 (or stop)
Key Rule: One phase at a time. Validate before proceeding.
Goal: Systematically verify the entire implementation.
# In Claude Code
/stepwise-dev:validate_plan @thoughts/shared/plans/2025-11-09-rate-limiting.mdThis will:
- Check all phases are complete
- Run all automated verification
- Review code against plan
- Identify deviations or issues
- Generate validation report
Output: Report showing what passed, what needs fixing, and manual test checklist.
# 1. Research
/stepwise-dev:research_codebase Where is user registration handled?
# β Saves to thoughts/shared/research/2025-11-09-user-registration.md
# β /context shows 45%
# β /clear
# 2. Plan
/stepwise-dev:create_plan Add OAuth login support
# β Iterates 5 times
# β Saves to thoughts/shared/plans/2025-11-09-oauth-login.md
# β /context shows 58%
# β /clear
# 3. Implement (Phase 1 only)
/stepwise-dev:implement_plan @thoughts/shared/plans/2025-11-09-oauth-login.md
# β Completes Phase 1
# β Runs tests
# β Pauses for manual testing
# β You verify it works
# β "Continue to Phase 2"
# β /context shows 62%
# β /clear
# 4. Validate
/stepwise-dev:validate_plan @thoughts/shared/plans/2025-11-09-oauth-login.md
# β Comprehensive verification
# β /context shows 41%
# 5. Commit
/stepwise-dev:commit
# β Creates atomic commits# Research the bug
/stepwise-dev:research_codebase Why are webhooks timing out after 30 seconds?
# Create a fix plan
/stepwise-dev:create_plan Fix webhook timeout issue based on @thoughts/shared/research/...md
# Implement the fix
/stepwise-dev:implement_plan @thoughts/shared/plans/...md
# Commit
/stepwise-dev:commit# You've created a plan but need to adjust it
/stepwise-dev:iterate_plan @thoughts/shared/plans/2025-11-09-feature.md
# Claude asks: What changes would you like to make?
# You: "Add error handling phase before deployment"
# Claude updates the plan in placeInitialize thoughts/ in current project:
cd ~/projects/my-app
thoughts-initCreates structure, README, .gitignore, and runs initial sync.
Sync hardlinks in searchable/:
thoughts-syncRun this:
- After adding new .md files
- After modifying file structure
- If searchable/ seems out of sync
The scripts automatically run this after /research_codebase and /create_plan.
Generate metadata for the current repo:
thoughts-metadataReturns:
Current Date/Time (TZ): 2025-11-09 15:30:00 PST
ISO DateTime: 2025-11-09T23:30:00+0000
Date Short: 2025-11-09
Current Git Commit Hash: abc123...
Current Branch Name: main
Repository Name: my-app
Git User: nikey_es
Used internally by commands to populate frontmatter.
/plugin
# Check on Installed tab/plugin -> Marketplaces tab -> stepwise-dev -> Update marketplace
/plugin -> Installed -> stepwise-dev -> Update nowNote: Plugin updates include commands, agents, and scripts automatically. No separate script installation needed.
Golden Rule: Never exceed 60% context capacity.
Check context frequently:
/contextClear between phases:
/clearChange Username: Set export THOUGHTS_USER=your_name or edit skills/thoughts-management/scripts/thoughts-init:8
Add Commands: Create .md files in ~/.claude/commands/ with frontmatter. Claude auto-detects on restart.
make test # Run all automated tests (functional + structure)
make test-verbose # Run tests with debug output
make check # Run shellcheck on all bash scripts
make ci # Run full CI validation (test + check + plugin)Tests validate bash scripts (thoughts-init, thoughts-sync, thoughts-metadata) and plugin structure. No dependencies needed, runs in isolated temp directories.
Test structure:
test/thoughts-structure-test.sh- Functional tests for thoughts/ operationstest/plugin-structure-test.sh- Plugin structure validationtest/test-helpers.sh- Test utilities and assertionstest/commands/- Test command definitions
Commands not showing after installation:
- Restart Claude Code completely
- Check plugin is enabled:
/plugin list - Try reinstalling:
/plugin uninstall stepwise-dev@stepwise-devthen/plugin install stepwise-dev@stepwise-dev
Plugin installation fails:
- Verify marketplace added:
/plugin marketplace list - Check network connection (for GitHub marketplaces)
- Try local marketplace for testing:
/plugin marketplace add ./test-marketplace
Hardlinks failing: Script auto-falls back to symlinks (slower but works)
No files synced: Run THOUGHTS_DEBUG=1 thoughts-sync to debug
Plugin version mismatch: Update plugin with /plugin update stepwise-dev@stepwise-dev. All components (commands, agents, scripts) update together.
- Original Article: I mastered the Claude Code workflow by Ashley Ha
- HumanLayer: Original inspiration from HumanLayer's .claude directory
This is extracted from HumanLayer and adapted for local use. If you have improvements:
- Test them in your workflow
- Document what changed and why
- Share with the community
Apache License 2.0 - See LICENSE file for details.
This project is derived from HumanLayer's Claude Code workflow under Apache License 2.0.
See NOTICE for detailed attribution.
Major enhancements and modifications:
- Specialized agent system for efficient codebase exploration (5 custom agents)
- Local-only thoughts/ management with Agent Skill (no cloud dependencies)
- Automated testing infrastructure for bash scripts
- Standalone plugin distribution system
- Enhanced TDD-focused success criteria guidelines
- Ashley Ha - For documenting and popularizing this workflow
- HumanLayer Team (Dex Horthy et al.) - For creating the original commands and agents
- Anthropic - For Claude Code
Happy Coding! π
Questions? Issues? Open an issue on GitHub.