| Strength | Application to Vibewig |
|---|---|
| Multi-step autonomous tasks | Building full system across sessions |
| 80.9% SWE-bench | Real-world software engineering |
| Fewer dead-ends in agentic workflows | Less backtracking on architecture |
| Best vision model (80.7% MMMU) | Can analyze diagrams, mockups |
| Robust to prompt injection | Reliable tool execution |
| Extended context with compaction | Long sessions without degradation |
- Code generation and refactoring
- Architecture design and planning
- Multi-file changes with consistency
- Backend systems (stronger than UI-heavy frontend)
For this project, prompts should be translated through these lenses:
1. Intent Extraction
- What does the human want to experience?
- What outcome are they after?
- Is this a creative direction or a technical fix?
2. Technical Mapping
3. Verification Planning
- How will we know it worked?
- What should Claude report back?
From Anthropic's research:
-
Progress Files - Maintain external artifacts as memory
claude-progress.txtfor session handoffs- Git commits as incremental checkpoints
- Structured feature lists
-
Two-Agent Pattern
- Initializer: Sets up environment
- Coding agent: Makes incremental progress per session
-
Avoiding Regression
- Tests are critical - they prevent "works for me" lies
- Commit often, small commits
- Session boundaries are checkpoints
- Don't tackle too much at once
-
Context Hygiene
/clearbetween unrelated tasks- Use subagents for isolated exploration
- Keep CLAUDE.md under 300 lines
- Task-specific docs in separate files
-
Extended Thinking
- "think" → basic analysis
- "think hard" → deeper exploration
- "think harder" → comprehensive analysis
- "ultrathink" → maximum depth
Human prompt
│
▼
┌─────────────────────────────────────┐
│ 1. UNDERSTAND │
│ - What outcome does human want? │
│ - Urgent or exploratory? │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 2. TRANSLATE │
│ - Map to system concepts │
│ - Identify affected components │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 3. EXECUTE │
│ - Call tools in correct order │
│ - Stage → Commit flow │
│ - Handle errors gracefully │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 4. VERIFY │
│ - Check tool responses │
│ - Confirm expected state │
│ - Report clearly to human │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 5. LEARN │
│ - Did it work as expected? │
│ - Update KNOWLEDGE.md if needed │
│ - Note patterns for future │
└─────────────────────────────────────┘
Based on Anthropic's engineering posts and community patterns, vibewig uses a multi-artifact system for maintaining consistency across sessions.
├── .claude/
│ ├── commands/ # Custom slash commands
│ │ ├── catchup.md # Read changed files, restore context
│ │ ├── status.md # Query system state
│ │ └── commit.md # Stage, commit, update progress
│ ├── context/ # Session context files
│ │ └── current.md # Current session context
│ └── settings.json # Project permissions
├── docs/
│ ├── progress.md # What's done, what's next
│ ├── decisions.md # Why we made choices (immutable log)
│ └── features.json # Structured feature tracking
├── CLAUDE.md # Universal project conventions (< 300 lines)
└── KNOWLEDGE.md # Deep knowledge, research, patterns
# Progress
## Current Session
- Started: [timestamp]
- Focus: [what we're working on]
- Branch: [git branch]
## Completed
## In Progress
## Next Up
## Blockers
## Session Handoff Notes
[Claude writes notes here before session ends]{
"version": 1,
"features": [
{
"id": "conductor-daemon",
"category": "core",
"description": "Long-running daemon that manages plugins",
"status": "in_progress",
"files": ["vibewig-conductor/src/main.rs"],
"tests": [],
"notes": "HTTP server + OSC client"
},
{
"id": "plugin-osc",
"category": "core",
"description": "Plugin connects to Conductor via OSC",
"status": "pending",
"files": ["vibewig-plugin/src/lib.rs"],
"tests": [],
"notes": "Replace WebSocket with OSC"
}
]
}Use GitHub Issues as source of truth for larger tasks:
- Each epic/milestone = one Issue
- Issue body contains acceptance criteria
- Comments provide history
- Labels for status:
in-progress,blocked,ready-for-review
Pattern: Issue → local progress.md → code → commit → update Issue
- Every 30 mins or major milestone: Git commit
- Before context switch: Run
/handoff - Start of session: Run
/catchup - After completing feature: Update features.json
From Anthropic research:
- "Tests are remarkably effective at preventing regressions"
- "Session boundaries prevent regressions — commit often"
- "Don't try to tackle too much at once"
Rules for vibewig:
- Never skip tests for "speed"
- Each commit should be atomic and working
- If something breaks, fix before moving on
- Update progress.md before ending session
Vibewig supports autonomous building sessions where Claude Code works independently without human interaction. This requires proper setup of permissions and context restoration.
.claude/settings.json - Permissions for autonomous work:
{
"permissions": {
"allow": [
"Bash(cargo:*)",
"Bash(git:*)",
"Bash(gh:*)",
"Bash(./scripts/*)",
"Bash(cp:*)",
"Bash(mkdir:*)",
"Bash(chmod:*)",
"Bash(ls:*)",
"Bash(pwd)",
"Bash(which:*)",
"Read",
"Write",
"Edit"
],
"deny": [
"Bash(rm -rf /)",
"Bash(rm -rf ~)",
"Bash(git push --force)",
"Bash(git reset --hard)"
]
}
}Use /autonomous slash command to start a focused building session:
1. Restore Context
- Read
docs/progress.md- current state - Read
docs/features.json- feature status - Read
KNOWLEDGE.md- design decisions - Run
git log -5 --oneline- recent history
2. Identify Next Task
- Find next
pendingorpartialfeature indocs/features.json - If current feature is
in_progress, continue it - Make reasonable decisions based on documented architecture
3. Implement
- Follow architecture: Conductor (HTTP+OSC), Plugin (OSC+GUI), CLI (HTTP)
- Use OSC over UDP for plugin communication
- Use HTTP REST for CLI to Conductor
- Commit often with clear messages
- Run
cargo clippyandcargo fmtbefore commits
4. Test
- Run
cargo test - Run
cargo build --release - Fix any failures before continuing
5. Update State Before stopping:
- Update
docs/progress.mdwith what was done - Update
docs/features.jsonif feature status changed - Commit with "Session handoff: [summary]"
6. Rules
- Do NOT ask questions—make reasonable decisions
- Do NOT skip tests for speed
- Do NOT leave uncommitted work
- Do NOT break existing functionality
7. Report When done, summarize:
- What was implemented
- What's next
- Any blockers discovered
# Build all components
cargo build --release
# Plugin location after build
ls -la target/bundled/The built plugin (.clap file) goes in:
- macOS:
~/Library/Audio/Plug-Ins/CLAP/ - Windows:
C:\Program Files\Common Files\CLAP\ - Linux:
~/.clap/
- Build:
cargo build --release - Copy
.clapto plugin folder (see paths above) - In Bitwig: Settings → Locations → Rescan
- Add to track: Browser → Devices → Vibewig