Converts a specification into a phased, dependency-ordered implementation plan. Use after specification is complete and before execution begins
Coding
dorodango
Try itPolishes working code through successive quality passes in fresh subagents. Use after tests pass when code needs multi-dimension refinement before release
What it does
Polishes working code through successive quality passes in fresh subagents. Use after tests pass when code needs multi-dimension refinement before release
The skill document
Night Market Skill — ported from claude-night-market/attune. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
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: 0marks 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": [
{
"type": "correctness",
"issues_found": 2,
"issues_fixed": 2
},
{
"type": "clarity",
"issues_found": 5,
"issues_fixed": 5
},
{
"type": "consistency",
"issues_found": 0
}
],
"converged_dimensions": ["consistency"],
"converged": false
}
This file enables resume across sessions. On resume, skip converged dimensions and continue from the next unconverged dimension.
Subagent Isolation
Each pass dispatches a self-contained subagent to prevent context accumulation. The subagent receives:
- Target directory/files
- Pass type and scope (from pass-definitions module)
- Previous pass results (summary only, not full context)
Subagent dispatch is optional for targets under 100 lines of code; in-session review is sufficient for small files.
Workflow
- Initialize state file (or load existing)
- Determine next unconverged dimension
- Dispatch subagent for that dimension
- Record results in state file
- If dimension converged (0 issues), mark it
- If all dimensions converged or 10 passes reached, stop
- Otherwise, proceed to next dimension
Cross-References
pensive:code-refinement- used in clarity passconserve:code-quality-principles- KISS/YAGNI/SOLIDimbue:latent-space-engineering- frame pass prompts with emotional framing for better results
Related skills
Executes implementation plans with progress tracking, checkpoint validation, and quality gates. Use after planning is complete and tasks are ready to implement
Analyze and improve the improvement process. Use for detecting regressions and meta-optimization
Guide creating Claude Code skills with TDD and persuasion principles. Use for new skill development
Applies Functional Core, Imperative Shell to isolate logic from side effects
Guides project ideation via Socratic questioning to produce a validated brief. Use before specification when requirements are unclear