dorodango について
dorodangoは、実装とテストが完了したコードを磨く開発者向けスキルです。正確性、明瞭さ、一貫性、仕上げの順に確認し、状態を保存して別セッションから再開できます。
主な機能
- 014つの品質観点で個別にパスを実行
- 02テスト、リンター、フォーマッター、レビューで収束を確認
- 03状態保存によるセッション間の再開
- 04後続パスで回帰が見つかった観点を再確認
- 05最大10パスの実行制限
活用シーン
- 01レビューやリリースに向けた実装の準備
- 02テスト済みコードの複数観点での改善
- 03中断したコード仕上げワークフローの再開
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill dorodangoインストール後、Claude Code で/dorodangoを入力して読み込まれたか確認します。
同梱ファイルmodules/pass-definitions.md
詳細
どろだんご磨きワークフロー
土の玉を磨き上げ、光沢のある球体に仕上げる日本の芸術にちなんで名付けられました。コードに当てはめると、最初の実装(「泥の玉」)を、輝くまで品質向上のパスを重ねて磨き上げます。
使用するタイミング
- 最初の実装が完了し、テストに合格した後
- コードは動作するものの、複数の品質面で改善が必要な場合
- コードレビューやリリースに向けてコードを準備する場合
- 前回の磨き上げセッションを再開する場合
使用しないタイミング
- コードがコンパイルできない、または基本的なテストに合格しない場合(先に修正してください)
- 1つの品質面だけを改善する場合(
pensive:code-refinementなど、該当するスキルを直接使用してください) - ゼロから設計する段階の場合(代わりにブレインストーミングを使用してください)
パスの順序
4つの品質面を、それぞれ独立したパスとして実施します。
- 正確性 - テストを実行し、失敗を修正します
- 明瞭さ - コードの読みやすさと構造を改善します
- 一貫性 - 命名、パターン、スタイルを整合させます
- 仕上げ - ドキュメント、エラーメッセージ、境界条件を整えます
各パスの種類の詳細な範囲については、modules/pass-definitions.md を参照してください。
収束モデル
- 各パスは1つの品質面を対象とします
- 品質面の収束は記録に基づいて判定し、パスを担当したサブエージェント自身のカウントだけでは判定しません。正確性はテストコマンドの終了コードで、明瞭さと一貫性はリンターとフォーマッターの終了コード、およびレビュー担当者のカウントが0であることをもって判定します。仕上げは、編集を行っていない新しいサブエージェントによるレビュー担当者のカウントが0であることをもって判定します
- 状態ファイルに対応する終了コードが記録されていない場合、
issues_found: 0と報告されても、そのパスは収束していません - 収束は取り消されることがあります。後続のパスで収束済みの品質面に後退が見つかった場合、その収束は取り消され、実行完了前にその品質面を再実行します
- 4つすべての品質面が収束したら、磨き上げは完了です
- 全パス数の上限は10回です(厳守)
- 10回のパスを経ても収束しない場合は、状態を人間に提示し、より小さな単位に分割することを推奨します
状態の永続化
状態は .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
}
このファイルにより、セッションをまたいで再開できます。再開時には、収束済みの品質面をスキップし、次の未収束の品質面から続けます。
サブエージェントの分離
コンテキストの蓄積を防ぐため、各パスでは自己完結したサブエージェントを起動します。サブエージェントには次の情報が渡されます。
- 対象のディレクトリ/ファイル
- パスの種類と範囲(pass-definitions モジュールから)
- 前回のパスの結果(完全なコンテキストではなく要約のみ)
コードが100行未満の対象では、サブエージェントの起動は任意です。小さなファイルであれば、セッション内のレビューで十分です。
ワークフロー
- 状態ファイルを初期化します(または既存のものを読み込みます)
- 次の未収束の品質面を特定します
- その品質面を担当するサブエージェントを起動します
- 結果を状態ファイルに記録します
- 品質面が収束した場合(問題が0件)、収束済みとしてマークします
- すべての品質面が収束した場合、またはパスが10回に達した場合は停止します
- それ以外の場合は、次の品質面に進みます
相互参照
pensive:code-refinement- 明瞭さのパスで使用しますconserve:code-quality-principles- KISS/YAGNI/SOLIDimbue:latent-space-engineering- よりよい結果を得るため、パスのプロンプトに感情を織り込んだ表現を使います
完了条件
-
.attune/dorodango-state.jsonが存在し、"converged": trueが設定され、4 つのすべてのディメンション(correctness、clarity、consistency、polish)がconverged_dimensionsに記載されています。 - 状態ファイルの
pass_countの合計が 10 以下です。10 回のパスを完了しても完全に収束しない場合、スキルは未収束のディメンションをユーザーに提示し、対象をより小さな単位に分割するよう推奨します。 - correctness ディメンションは、すべてのテストが合格した場合(終了コード 0)のみ収束します。テストの失敗が見つかった correctness パスでは、ディメンションを収束済みとしてマークしません。
- clarity と consistency は、リンターとフォーマッターの終了コードが 0 として状態ファイルに記録され、レビュー担当者の件数が併記されている場合のみ収束します。終了コードの記録がない
0 issuesという主張では、ディメンションは収束しません。 - 後のパスで回帰が見つかった場合、状態ファイルではそのディメンションの収束が解除され(
converged_dimensionsの項目が減少し)、converged: trueになる前にディメンションを再実行します。 - 100 行を超える対象では、各パスが個別のサブエージェントとして実行されます。これは、単一の一括エントリーではなく、個々のパスの結果が状態ファイルに記録されることで確認できます。
コメント
Markdown 対応