Skills dorodango
Iteratively polish code through successive quality passes run in fresh subagents
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/athola/nm-attune-dorodango" ~/.claude/skills/openclaw-skills-dorodango && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/athola/nm-attune-dorodango" ~/.openclaw/skills/openclaw-skills-dorodango && rm -rf "$T"
skills/athola/nm-attune-dorodango/SKILL.mdNight 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
marks that dimension as convergedissues_found: 0 - 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
- used in clarity passpensive:code-refinement
- KISS/YAGNI/SOLIDconserve:code-quality-principles
- frame pass prompts with emotional framing for better resultsimbue:latent-space-engineering