| name | dorodango |
| description | Polishes working code through successive quality passes in fresh subagents. Use after tests pass when code needs multi-dimension refinement before release. |
| alwaysApply | false |
| category | workflow |
| tags | ["polishing","iterative-refinement","code-quality","convergence"] |
| progressive_loading | true |
| dependencies | {"hub":[],"modules":["modules/pass-definitions.md"]} |
| complexity | intermediate |
| model_hint | standard |
| estimated_tokens | 400 |
Dorodango Polishing Workflow
Named after the Japanese art of polishing a ball of
dirt into a high-gloss sphere. Applied to code: take
the initial implementation (the "mud ball") and refine
it through successive quality passes until it shines.
When To Use
- After initial implementation is complete and tests
pass
- Code works but needs refinement across multiple
quality dimensions
- Preparing code for review or release
- Resuming a previous polishing session
When NOT To Use
- Code does not compile or pass basic tests (fix first)
- Single-dimension improvement needed (use the specific
skill directly: pensive:code-refinement, etc.)
- Greenfield design phase (use brainstorming instead)
Pass Sequence
Four quality dimensions, each a self-contained pass:
- Correctness - run tests, fix failures
- Clarity - code readability and structure
- Consistency - naming, patterns, style alignment
- Polish - documentation, error messages, edges
See modules/pass-definitions.md for detailed scope
of each pass type.
Convergence Model
- Each pass targets one dimension
- A pass that finds
issues_found: 0 marks that
dimension as converged
- Convergence is irreversible per run; a converged
dimension is not re-run
- When all 4 dimensions converge, polishing is complete
- Maximum 10 total passes (hard limit)
- If not converged after 10 passes, surface state to
human with recommendation to split into smaller units
State Persistence
State tracked in .attune/dorodango-state.json:
{
"target": "plugins/foo",
"started_at": "2026-03-18T12:00:00Z",
"pass_count": 3,
"passes": [