mcpField
D
decide

decide

github.com/coreyhaines31生産性875504 回インストール6 日前に更新
リポジトリ

decide について

decideは、関連する質問を選び、明確な判断へ導き、その理由と再検討日をアーカイブする構造化された意思決定スキルです。曖昧な回答を掘り下げ、後から確認できる記録を残します。

主な機能

  1. 01質問群から関連項目を選択
  2. 02最初の直感と回答を記録
  3. 03明確な決定へ導く
  4. 04理由と弱点を記録
  5. 05再検討日とともにアーカイブ

活用シーン

  1. 01重要なビジネス上の選択を評価
  2. 02決定前に選択肢を比較
  3. 03未完了の意思決定を再開
  4. 04過去の決定と理由を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/coreyhaines31/makerskills --skill decide

インストール後、Claude Code で/decideを入力して読み込まれたか確認します。

同梱ファイルreferences/questions.md

詳細

/decide — 構造化された意思決定ワークフロー+アーカイブ

37signals のガイドから重要な問いを選び、それらに沿って検討を進め、結論を出し、その根拠を再検討日とともにアーカイブします。

姿勢: 温かく問いかけながら、基準は下げません。ユーザーの味方だからこそ、「たぶん大丈夫」を回答として受け入れません。曖昧な回答を問いただし、人を責めてはいけません。

Step 0 — 現在進行中の意思決定か確認する

まず再開を確認します。 アーカイブディレクトリ(Step 6)で、1 行目が `


Include only the header fields, Context, and an empty `## Questions` — add the later sections at finalization, so an unfinished file never looks finished. Update the marker whenever the step changes (once triage picks the questions, `then:` lists the ones still to ask) and after every recorded answer, which goes under `## Questions` with its `(unanswered)` tag, if any. Multi-turn answers are recorded as all replies joined with ` / `. The slug names the decision in 3–6 words (`drop-1500-retainers`), which is what a later resume matches on. The file is the session's memory — if the session dies, the next one resumes from it. Don't touch `INDEX.md` until Step 6.

## Step 2 — Triage the question set

Read `references/questions.md` for the full set (the 37signals 38 + house additions, e.g. Q39 opportunity cost) and category mapping. Pick 6–8 based on the decision's characteristics:

**Default 5 (always ask, in this order):**
- Q9 — First instinct? (capture before "thinking" muddies it)
- Q1 — Does this decision actually need to be made?
- Q2 — Is the right person making this decision?
- Q8 — How easily can we reverse it? (skip if Step 1 already settled it — carry that answer over)
- Q3 — A year from now, how will we feel about this?

**Add based on type:**

| If… | Add |
|---|---|
| Reversibility = hard / one-way door | Q14 (is there a wrong decision?), Q17 (knock-on effects), Q34 (principles bent) |
| Time pressure | Q5 (why hesitating?), Q15 (different tomorrow?), Q22 (when do we have to decide?) |
| Multiple people involved | Q21 (someone else's practice rep?), Q27 (would another opinion help?), Q35 (multiple people deciding what one should?) |
| Lots of data / analysis | Q19 (what missing info would change it?), Q26 (data vs gut?), Q9 deepened |
| Recurring decision | Q11 (last time?), Q23 (one-and-done or repeating?) |
| Customer-facing | Q24 (anyone outside depending?), Q25 (customer vs us impact?) |
| Money decision | Q38 (in the end, is this about money?), Q36 (return on effort?), Q39 (what does yes displace?) |
| Big time / focus commitment | Q39 (opportunity cost), Q36 (return on effort?), Q20 (creates or eliminates work?) |
| Stuck / not deciding | Q4 (why hasn't it been made already?), Q10 (what if we don't decide?), Q31 (do you even care?) |

Cap at ~8 questions. More than that turns into analysis paralysis (which is itself one of the things this skill exists to prevent).

When several rows apply and you're over the cap, keep the questions whose answer could **flip the call**; drop ones that would only confirm it. A row that matches the stated reversibility (one-way door → irreversibility row) beats a row you inferred.

Tell the user which questions you picked and why, then proceed.

## Step 3 — Walk through

Ask the questions one at a time. Offer a tight cluster only if the user's answers are coming back specific — clustering a vague answerer just speeds up the vagueness.

**Apply, don't recite.** Fold the user's own facts into each question. Not "What does yes displace?" but "You said the contractor leaves Nov 15 and you'd fund the hire from the ads budget — what happens to signups when ads go to zero?"

**Hold the bar.** When an answer is a non-answer — "should be fine," "we'll figure it out," "probably not a big deal," "I think people want it" — don't record it and move on:
1. Stay on the question and name it: *"I'm going to stay here — that's a hope, not an answer."*
2. Offer 1–2 sharper candidate answers so they're not facing a blank ("Is it 'I'll spend ~10 hrs/week, cutting main-product work in half' or 'I'll only build on weekends'?"), or ask for one specific fact (a number, a name, a date, evidence).
3. If it's still mush after two pushes, record it verbatim and tag it `(unanswered)`. Move on — the tag carries into Step 4.

Candidate answers are prompts, not facts. A number or claim you suggested only enters the archive if the user states it or explicitly adopts it — and then it's quoted as theirs.

Whether sharp or tagged, capture the final answer verbatim — don't paraphrase into corporate-speak.

**Impatient user** ("just tell me yes or no") — applies from the first message on, not just here: don't lecture and don't cave. Use Q28 — *"If you had to decide right this second, what would you do?"* — record it as the Q9 first instinct (if Q9 is already captured, skip Q28), and tell them how many questions are left. Keep the triage announcement to one line.

For Q9 (first instinct), get the answer BEFORE diving into analysis. The point is to surface the gut call so we can later check if "analysis" was just rationalization. Record the gut unchallenged — but if it carries a factual claim ("people want it"), note the claim and push on it at the most relevant later question. A gut call is sacred; the facts it leans on aren't.

## Step 4 — Reach a call

Synthesize the answers into a decision. Options:

- **Decide now** — answers point to a clear call
- **Decide smaller** — break into 2–3 smaller decisions (Q7)
- **Wait** — flag what info / time would change the answer (Q19, Q15)
- **Don't decide** — the decision doesn't need to be made (Q1, Q10)
- **Wrong person** — kick to the right decider (Q2, Q35)

State the call clearly. No hedging.

Before stating it, run three checks:

- **Weak inputs route to Wait or Decide smaller.** If any load-bearing answer is tagged `(unanswered)`, "Decide now" is off the table. The unhedged call is **Wait** (naming the missing fact, per Q19) or **Decide smaller** (the cheapest step that produces that fact — e.g., a waitlist before a build). A Decide-smaller test needs a pass/fail bar from the user ("50 signups in 2 weeks") before you archive it — otherwise it can't fail.
- **Instinct match needs independent support.** If the call matches Q9, check that at least one answer adds a reason the gut didn't already supply. If every answer just restates the instinct, say so — that's the rationalization Q9 exists to catch.
- **Real-decision check.** Name the smart alternative being rejected and the downside being accepted. If you can't name a downside, the user hasn't faced the cost yet — ask before calling it.

As soon as the call (and any pass/fail bar and accepted downside) is agreed, write the `## Decision` section into the working file — don't hold it in chat until finalization.

**Pushback after the call:** re-synthesize only when the user brings new information (a stakeholder's data, a constraint you didn't have) — rerun the real-decision check on the new call, and if the new info answers an `(unanswered)` question, annotate the tag rather than deleting it. If it's just discomfort, hold the call and say why.

## Step 5 — Set the revisit

Pick a revisit date based on when consequences would show up:
- Decisions about tools/processes: 30 days
- Decisions about strategy/positioning: 90 days
- Decisions about hires/partnerships: 90–180 days
- Decisions about products/launches: 30–60 days post-launch

Write what to look for on the revisit ("did MRR move? did the partner ship? do clients still ask for X?").

## Step 6 — Archive

Archives live in `${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/decide/archive/` (create the directory if missing). Never write archives inside the skill's own folder — skill installs and upgrades re-sync from source and wipe anything saved there.

**Migration:** if this skill's folder contains an old `references/decisions-archive/` with user entries, move those files into the archive directory before writing anything new.

Finalize the working file at `<archive dir>/<YYYY-MM-DD>-<slug>.md` (created in Step 1): fill every remaining section and **delete the `` line**. A retroactive log (Step 0) is written here in one go. Template:

```markdown
# Decision: <one-line>

**Date:** YYYY-MM-DD
**Decide by:** <date or "open">
**Reversibility:** easy / hard / one-way door
**Stakes:** low / medium / high

## Context
<1–3 sentences>

## Questions

### <Q3 phrasing>
<answer>

### <Q8 phrasing>
<answer>

(only questions actually applied — heading is the question text, not "Q3")

## Decision
**<the call, stated clearly>**

**Rejected alternative:** <the smart option not chosen>
**Accepted downside:** <the cost the user signed up for>
**Revised from:** <earlier call and what changed it — omit if the call never changed>

## Rationale
<2–3 sentences synthesizing the answers. Quote — don't paraphrase — any answer tagged (unanswered); never upgrade "should be fine" into "low risk.">

## Weak spots
<answers tagged (unanswered) or unsure, verbatim — or "none">

## Expected outcome
<what should be true if this was right, by <date> — built from the user's own signals; don't invent targets they didn't state>

## Revisit
**<YYYY-MM-DD>** — <what to look for>

## Source
Questions adapted from [The 37signals Guide to Making Decisions](https://37signals.com/how-we-make-decisions)

` で始まるファイルを探します。

<archive dir>/INDEX.md に追記します(存在しない場合は作成します)。

- 2026-06-16 — [<decision>](./<filename>.md) — **<call>** — <one-line rationale> — revisit 2026-09-16

記録に弱点がある場合は、根拠の末尾に (N weak spots) を付けます。そうすれば、後で grep したときに、曖昧な根拠に基づく結論を確信を持って下した結論と誤解せずに済みます。

Step 7 — 表示する

アーカイブのエントリをチャットに表示します。アーカイブのパスをユーザーに伝え、次の選択肢を提示します。

  • 「再検討日に向けて、/loop リマインダーを設定しましょうか?」(適切なタイミングで実行するために loop スキルを使用します)
  • 「意思決定カードとして Notion に登録しますか?」
  • 「このあと、追加の意思決定が必要ですか?」

今後の拡張

  • 再検討日に向けて、カレンダーの予定または cron リマインダーを自動作成する(Claude Code の compound-engineering:schedule など、エージェントにスケジューラーがあればそれを使用し、なければカレンダーの予定を作成)
  • business-brainstorm と組み合わせる — brainstorm でアイデアを 9 つの観点から評価し、その後 decide で実行するかどうかを正式に判断する
  • 過去の意思決定を grep してパターンを探す(「『簡単に覆せる』と記録したのに、覆さなかった意思決定を見せて」)

組み合わせて使う

  • business-brainstorm — brainstorm → decide は、「X を作るべきか」の検討に適した自然な流れです
  • deep-research — 意思決定に情報が足りない場合(Q19)は、まずリサーチを実行します
  • Memory — 関係する可能性のある原則を確認するため、feedback_*.md を読み込みます(Q34)
  • loop / compound-engineering:schedule — 再検討日のリマインダーに使用します

品質に関する注意事項

  • 38 個すべてを質問してはいけません。 トリアージの目的は、当てはまらない質問を省くことです。関連する 8 個の質問のほうが、水増しした 38 個の質問より優れています。
  • 結論を曖昧にしてはいけません。 「おそらくイエス、どちらかといえば、たぶんそうすべき」では、このスキルを使う意味がありません。決めてください。入力が不十分なら、正直な選択は「保留」または「より小さく決める」です。自信満々に「イエス」と答えることではありません。
  • 判断基準も緩めてはいけません。 まず問いたださずに「たぶん大丈夫」とそのまま記録するのが、最もよくある失敗です。温かい口調を保ちつつ、基準は下げないでください。
  • 最初の直感(Q9)は大切にします。 分析の前に、必ず最初の直感を記録します。最終的な結論が最初の直感と異なる場合は、その理由を根拠で説明する必要があります。それこそが、この質問の目的です。
  • 小さな意思決定もすべてアーカイブします。 「去年、価格について何を決めたか」を grep できることに、価値が積み重なっていきます。そのため、その場では自明に思えることでも、必ず書き留めておく必要があります。

コメント