0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code の頼み方を10個直しました。半分は、自分が失敗してから変えたものです

0
Posted at

先に断っておくと、この手の「頼み方のコツ」は、すでにたくさん書かれています。期待結果を添える、一度に頼まない、段階を踏む。どれも新しい話ではありません。

それでも書くのは、10個のうち5個が、自分が実際に事故ってから変えたものだからです。どの失敗で何を変えたかは、自分の記録にしかありません。

残り5個は、読んで納得して取り入れたものです。どちらなのかを、それぞれに書きます。

なお「これで何倍速くなる」といった数字は出せません。往復が減った感覚はありますが、測っていないので書きません。

1. 「直して」だけで投げない

(失敗からではなく、取り入れたもの)

「直して」だけだと、何を直すかを推測で埋められます。期待する結果と制約を一緒に渡すと、一発で返ってきます。

このエラーを直して。
期待する動作: 〇〇したときに△△になる
触っていい範囲: このファイルだけ
変えたくない: 既存のpublic関数のシグネチャ

2. 全部いっぺんに頼まない

(取り入れたもの)

「ログイン機能を全部作って」は失敗のもとです。1依頼1タスクに割ると、各ステップを確認しながら進められます。大きい仕事ほど、先に手順だけ出してもらいます。

まず実装はせず、手順だけ箇条書きで出して。
そのあと、1ステップずつ進めよう。

3. CLAUDE.md に書きすぎない

(失敗から)

良かれと思って大量に書いた結果、**いちばん守ってほしかったルールが埋もれて、プラグインが審査でリジェクトされました。**書いてあったのに効いていなかった、という形です。

そこから、常駐させるのは「プロジェクトの間ずっと変わらないもの」だけに絞りました。特定の作業でだけ必要な指示は、そのときの依頼文で渡します。

迷ったら、書いた行を半分に減らしてみてください。増やすほど効く、ではありませんでした。

4. 出力を読まずにコミットしない

(失敗から。2回)

1回目は、配布用の zip に開発専用のツールが混ざりかけました。unzip -l を眺めていて、たまたま目に入って止まりました。

2回目は、LLM の返答をそのまま innerHTML に入れていました。入力は疑っていたのに、出力を疑っていませんでした。

AI の出力は、信頼できる味方ではなく確認すべき外部入力です。diff は自分の目で読みます。動いたから正しい、ではありませんでした。

5. コンテキストを盛りすぎない

(失敗から)

ファイルを全部貼っていました。応答が雑になったので、MCP のせいだと思って疑っていたのですが、/context で測ったら、単に窓が埋まっていただけでした。

/context

**測ってから減らすと、応答が戻ります。**疑う前に測る、というだけの話でした。

6. 毎回ゼロから説明しない

(取り入れたもの)

同じ前提を毎回打ち込んでいるなら、CLAUDE.md か skill に逃がせます。ただし3番のとおり、CLAUDE.md に入れるのは常に必要なものだけです。

作業ごとの手順は、skill にして呼び出すほうが軽く済みました。

7. 危険なコマンドを無防備に許可しない

(失敗から)

一度ヒヤッとしてから、settings.json に deny を書きました。**順番が逆でした。**先に書いておけば済む話です。

{
  "permissions": {
    "deny": ["Bash(rm -rf*)", "Bash(git push --force*)"]
  }
}

取り返しのつく操作と、つかない操作を分けて、後者だけ止めます。全部を確認制にすると、確認が形骸化しました。

8. 「もっと良くして」と言わない

(取り入れたもの)

「良く」は人によって違うので、伝わりません。基準を渡すと、狙ったほうに動きます。

読みやすさ優先で。具体的には:
- 関数は20行以内
- ネストは2段まで
- 変数名は略さない

数字で書けるものは数字で書く、というのは CLAUDE.md でも同じでした。

9. エラーを丸ごと貼って「直して」で終わらない

(失敗から)

エラー文だけ貼って、返ってきた修正をそのまま入れたことがあります。そのときはエラーメッセージの文字列で分岐する実装になって、後日、相手側の文言が変わる前提で作り直しました。

状況を渡していれば、最初から違う設計になっていたはずです。

エラー: (貼り付け)
再現手順: 1) 〇〇 2) △△
期待: □□になるはず
試したこと: ××は確認済み

10. 答えだけを急かさない

(取り入れたもの)

いきなり完成形を求めると、ズレた実装が返ってきます。まず方針、次に実装、と段階を踏むほうが、結局は速く終わりました。

いきなり書かず、まず設計方針を3案出して。
選んだら実装に入ろう。

どれから試すか

全部いっぺんに変える必要はありません。

**失敗から学んだ5個(3・4・5・7・9)は、どれも事故ってから直したものでした。**やらなくても当面は動きます。動いているうちに入れておくと、自分のように痛い目を見ずに済みます。

**取り入れた5個(1・2・6・8・10)は、明日から効きます。**いちばん軽いのは1番で、期待結果と触っていい範囲を1行ずつ足すだけです。


書きながら気づいたのですが、失敗から学んだ5個は全部、**「確かめる工程が抜けていた」**という同じ形でした。diff を読まない、測らずに疑う、事前に止めない、状況を渡さない。頼み方の問題というより、確かめ方の問題だったのかもしれません。


ふだんはraplsworks.comで、WordPressプラグイン開発やClaude Codeまわりのことを書いています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?