Concepts
Dynamic Problem Solving
Understanding DPS levels and when to use them
Dynamic Problem Solving (DPS)
DPS controls how strictly Claude follows the workflow methodology.
DPS Levels
| Level | Name | Description |
|---|---|---|
| 0 | Off | Execute exactly as planned. Stop and report any deviation needed. |
| 1 | Minimal | Can ask clarifying questions, minor adjustments within spec. |
| 2 | Light | Can make small fixes/improvements within task scope. |
| 3 | Moderate | Can propose refactors if implementation reveals issues. |
| 4 | Significant | Can redesign components if plan proves unworkable. |
| 5 | Full | Maximum flexibility. Can pivot approach entirely. |
Default DPS by Command
Each command has a sensible default:
| Command | Default | Rationale |
|---|---|---|
/research | 4 | Exploration needs flexibility |
/plan | 1 | Should follow research findings |
/implement | 1 | Should follow the plan |
/review | 3 | Can propose fixes for gaps |
/debug | 4 | Root cause analysis is exploratory |
/refactor | 3 | Can recommend approaches |
/archive | 0 | Mechanical process |
Overriding DPS
You can override the default when starting a session:
mcp__workflow__start_session({
command: "/implement",
topic: "AUTH-SYSTEM",
dps: 3 // More flexible than default
})When to Use Each Level
DPS 0: Strict Mode
- Mechanical tasks (archive, migrations)
- When plan is thoroughly vetted
- Compliance-sensitive work
DPS 1-2: Controlled Mode
- Implementation of well-defined plans
- Bug fixes with clear scope
- Documentation updates
DPS 3: Balanced Mode
- Review and gap analysis
- Refactoring existing code
- When some exploration is needed
DPS 4-5: Exploratory Mode
- Initial research
- Debugging unknown issues
- Prototyping and experimentation
Blockers and DPS
When Claude encounters a blocker, the DPS level determines options:
DPS = 0: Must stop and report. Suggest research topics.
DPS > 0: Can propose solutions based on level:
- Level 1-2: Minor workarounds
- Level 3: Alternative approaches
- Level 4-5: Redesigns or pivots
mcp__workflow__log_entry({
tag: "blocker",
fields: {
type: "technical",
title: "API rate limit prevents bulk update",
impact: "Cannot complete migration in one run",
dpsOptions: "- Batch into smaller chunks\n- Add exponential backoff\n- Request rate limit increase",
researchTopics: "- Rate limit best practices\n- Bulk API patterns"
}
})