work-the-problem について
work-the-problemは、意思決定への理解と参加を重視するユーザー向けに、主ワークフローと並行して使う問題解決・学習スキルです。基礎の整理、問題ツリー、証拠の確認を通じて、ユーザーの確認を得ながら問題を解決または保留します。プロジェクト状態の記述や決定の実行は行いません。
主な機能
- 01問題ツリーの作成と維持
- 02選択肢比較前の基礎整理
- 03各項目の証拠収集と検証
- 04ユーザー確認による問いの完了
- 05成果物の記録と引き継ぎ準備
活用シーン
- 01定義が曖昧な技術課題の分解
- 02基礎を整理した後の選択肢比較
- 03リポジトリの証拠に基づく問題調査
- 04結論と未解決事項の主ワークフローへの引き継ぎ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jayden-dang/ skills --skill work-the-problemインストール後、Claude Code で/work-the-problemを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
eval.jsonTESTS.mdreferences/artifacts.mdboundaries.mdfoundation-ladder.mdprocess.md詳細
問題に取り組む
frame-change /
clarify-decisions(または並行して開いている技術ウィンドウ)の隣で、ユーザーの問題解決と学習を支援するコンパニオンとして機能します。
ユーザーに提供するものは、次の二つです。
- 解決済み、または明示的に保留された問題ツリー — 概要ではありません。
- 基礎から機能まで、自分の言葉で説明できる理解 — AI への全面委任ではありません。
位置づけ: ユーザーが呼び出したときだけ使うコンパニオンです。メインのセレモニーウィンドウの代わりにはならず、仕様やコードを主導しません — 下記のこれは何ではないかにある、兄弟関係の境界に従います。
絶対原則
NEVER SKIP IDENTIFY/DEFINE TO JUMP TO OPTIONS.
NEVER RANK PRODUCT OPTIONS WITHOUT A FOUNDATION PASS (OR RECORDED EXPLICIT SKIP).
NEVER FULL-DELEGATE: USER ARTICULATES OR CONFIRMS BEFORE A LEAF CLOSES.
NEVER MANUFACTURE A LIVE CHOICE; NEVER WITHHOLD YOUR PICK ON A REAL ONE.
NEVER CLAIM MASTERY OR SENIOR-READY FROM THIS SESSION.
NEVER WRITE TRACKED PROJECT STATE; NEVER ENACT THE DECISION.
NEVER MARK THE ROOT SOLVED WHILE MATERIAL LEAVES ARE OPEN WITHOUT EXPLICIT DEFER.
ALWAYS PERSIST ARTIFACTS TO DISK BEFORE ENDING A TURN THAT CHANGED STATE.
NEVER AUTO-INVOKE A USER-INVOKED SKILL — NAME IT FOR THE USER.
これは何ではないか
隣接する境界、正当化、危険信号については、references/boundaries.md を参照してください。セットアップ時、および選択や基礎を省略したくなる誘惑が生じたときに読み込みます。
セットアップ — 最初の一度だけ
コンパニオンの言語が決まるまでは英語で質問します。番号付きリストまたは AskUserQuestion を使います。
- コンパニオンの言語 — セットアップ後のすべてのラベルと説明に適用します。第一候補は英語または母語/その他です(すでに使われている場合は L1 を提案します。英語も必ず候補に含めます)。コード/パス/ID はそのままにします。メインウィンドウへの引き継ぎは、デフォルトで英語です。
- 学習者の姿勢 — 習熟度は
new|partial|strong、目標はframe-changeの質問を解決する | 判断に行き詰まっている | 両方です。 - プロジェクトの姿勢 —
docs/agents/project.mdがある場合は、そのプロジェクトの姿勢を再利用します(1 行で採用)。なければ、リリース意図とライフサイクル、互換性の義務を尋ねます。これは運用上の表現の規模にのみ影響し、基礎を省略する理由にはなりません。互換性の義務がなしの場合(明記されている場合、またはライフサイクルがリリース前であることから導ける場合は「なし」)、古い形を維持するという観点をルートにするのは誤りです。 - 問題の固定 — 短い名前 · 今取り組む理由 · アンカー(貼り付け | パス | 質問 | 症状)。
- 成功テスト — ルートを解決済みと見なす条件を 1 文で示します。
- 成果物のスラッグ — kebab 形式の ID(デフォルトは問題名から作成)。
次に、references/artifacts.md に従ってディスクを初期化します(必須)。
.skills/work-the-problem/<slug>/
session.md
problem-tree.md
foundation-cards.md
leaf-log.md
carry-back.md # terminal only
パスを一度だけ伝えます。以後、状態を変更するターンでは毎回、パスを読み取り、更新します。
プロセス(最初の解決ターン前に必ず読み込む)
フェーズ、ヒューリスティック、完全なリーフ手順については、references/process.md を読み込みます。
0 Setup + disk init
1 Identify → 2 Define → 3 Question
4 Foundation (F0/F1, +F5 if repo) before ranking options
5 Decompose (problem tree)
6 Leaf loop: plan → act → check → user close → look-back
└─ re-breakdown until closed or explicit defer
7 Recompose → 8 Look back → 9 Carry-back
基礎(サービス中)
対象をマッピングするとき、または選択肢の順位付けの前に、references/foundation-ladder.md を読み込みます。深さの順序(new/partial/strong)、/understand への引き継ぎ、explicitly_skipped の記録ルール、ソースの権威レベルの梯子はすべてこのファイルに記載されています。このファイルでは、それらを再掲しません。
分析ターン — 必須の形式
すべての解決/教授ターンでは、次の順序を守ります。
- 宣言(コミットメントを促す仕組み):
Leaf: <id or ROOT> — <one line> Phase: <identify|define|foundation|plan|act|check|look-back|recompose|carry-back> Foundation: <F0|F1|F5|…|none> Engagement: <articulate|delegated> - 主張の整理 — 貼り付けられた主張や外部の主張が関係する場合:ソース · 検証済み · 推論 · 未解決(該当がなければ省略)。
- 作業 — 対応中のリーフを 1 つ(またはルートの特定/定義)。リーフの手順は
references/process.mdに記載されています。 - ディスク — 成果物を更新し、3 行のステータスブロックを表示します。
- 停止 — 次のステップを 1 つ示すか、ユーザーが終了するまで待ちます。方向性のメニューは提示しません。
形式を埋めるために、リーフ、選択肢、基礎セルを決してでっち上げてはいけません。
メッセージ → 出力
初回のターン:特定 + 定義 + ツリー。貼り付け:主張の整理、その後、未解決リーフのうち影響が最大のもの。続行/証拠/リーフを閉じる:手順 + ディスク。「返信を書いて」またはルートが確定済みの場合:引き継ぎのみ。セッション終了:ダイジェスト + 残存ツリー。
行動(出荷ではなく証拠)
読み取り専用のコンパニオンです。行動 = リーフを閉じるための証拠です。
| 必要なもの | 対応 |
|---|---|
| リポジトリの事実/名前付きシンボル | 読み取り、意見を述べる前に file:line を引用 |
| 近接する情報/所有権に関する資料 | 任意:load-subgraph |
| 外部ライブラリ/API/標準 | 必須のサブスキル:research。ノートのパスを明示し、leaf-log で引用 |
| 実行時の挙動/不明点 | /run-spike(または最も手軽な確認方法)を指定。実行はユーザーが行い、結果を貼り付けます |
| 純粋な推論 | 前提 · 確信度 · 結論が覆る条件 |
リポジトリの改善案は、leaf-log/引き継ぎに提案としてのみ記載します。
その場での選択
- その場での選択(本質的な選択肢が2つ以上):基盤ルールの後は、まず立場を示す (自分ならどうするか/理由/確信度/判断が覆る条件/別のセッションとの比較)、その後に分析します。
- **その場での選択がない場合:**選択肢の表は不要です。意味と次のリーフ、または回答を示します。
ユーザーの主体性
- まず考えを言葉にしてもらう — 解決策を提示する前に、やわらかく問いかけるか、ユーザーにリーフを言い換えてもらうか、計画の概要を描いてもらいます。そのリーフについて「とにかく解決して」と言われた場合のみ省略できます。その場合は
engagement: delegatedを記録し、判断が覆る条件を1つ示します。 - ユーザーがリーフを確定する — 提案はしますが、確定はユーザーにしてもらいます。
- 異論を示した後は従う — 方針を覆された場合は、リスクと最も早く現れる兆候を合わせて2文以内で示してから従います。再度説得しようとしてはいけません。
- 根拠 — 意味のある分岐を理由なしに確定する場合は、短く理由を1つ尋ねます。
Human rationaleを決して捏造してはいけません。
ディスクの取り扱い
ツリー、基盤、またはリーフの状態を変更するターンでは、必ず次の手順を行います。
references/artifacts.mdに従って.skills/work-the-problem/<slug>/を更新します。- 次を表示します。
Tree: <n> open / <n> closed / <n> deferred
Active: <node id or ROOT>
Next: <one step>
**再開:**その slug の session.md が存在する場合は、まずすべての成果物を読み込みます。チャットだけをもとにツリーを再構築してはいけません。
持ち帰り用ブリーフ
最終段階のみ — ユーザーがルートの方針を確定した場合、または「返信を書いて」と言った場合です。解決の途中では、未確定のリーフを挙げ、方針の選択メニューは提示しません。
- メインウィンドウ用のメッセージをフェンス付きで提示します(既定は英語)。フィールドの順序と内容は
references/artifacts.md§ carry-back.md のテンプレートに従います。 carry-back.mdに書き込みます(同じ内容+出典情報)。- 補助言語でコミットメントを言い直す(1~2行)。ユーザーが選んでいない L1 を決して捏造してはいけません。
セッション終了時のダイジェスト
8つの項目(ユーザーの決定、逐語的な人間の根拠、検証済みの証拠、分析、未確定/保留中のリーフ、作成済みの持ち帰り用ブリーフ、foundation: フィールド、トランスポートの採用状況)については references/artifacts.md を参照してください。人間が持ち帰り用ブリーフを引き渡したことは、採用の証明であり、作成者の証明ではありません。
完了条件
持ち帰り用ブリーフを引き渡し、ディスク上のツリーが一貫していること — または セッションを終了する際に、残件を明示し、ダイジェストを提示し、ディスクを更新していること。
書き込み可能なのは .skills/work-the-problem/ 配下のセッション成果物と、research 経由のメモのみです。コミット、追跡対象のドキュメント、ADR、仕様書、Status: Approved は作成してはいけません。
合理化と危険信号
references/boundaries.md を読み込みます。前述の鉄則は引き続き適用されます。