3
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?

Xで話題のスキル「i-have-adhd」を使ったら、AIの回答が「結論→番号付き手順→次の一手」に変わった

3
Last updated at Posted at 2026-10-14

はじめに

Xのこちらの投稿で、i-have-adhdというAgent Skillを知りました。

名前のインパクトが強い。だいぶネタっぽい。

i-have-adhdは、AIの回答を結論、番号付きの手順、次の一手という順番に整えるスキルです。名前だけ見ると一発ネタっぽいのに、使ってみるとかなり実用的でした。

なんだか最近人様のスキルを紹介する人になっているような...

i-have-adhdとは

i-have-adhdは、AIの回答をすぐ行動へ移しやすい形に整えるAgent Skillです。

公式のSKILL.mdには10個のルールがあります。主な内容は次のとおりです。

  • 次の行動を最初に書く
  • 複数の作業へ番号を振る
  • 「少し」ではなく「15分」のように時間を具体化する
  • 本筋と関係ない話を広げない
  • 最後を1つの具体的な行動で終える

単に回答を短くするスキルではありません。最初に何をするか、どの順番で進めるか、今は何を後回しにするかまで回答へ入れます。

自分が毎回聞き返していた「結局何すればいい?」を、最初からAIに答えさせるスキルです。

i-have-adhd-before-after-final.png

実例

実務に近い内容として、Next.jsとFastAPIで作った社内ツールの500エラーを想定しました。

2026年10月14日に、Claude CLI 2.1.299からSonnetを使って実行しています。effortはlowです。普段の設定が混ざらないように--safe-modeを指定し、スキルありの実行だけi-have-adhdのSKILL.mdを読み込ませました。

同じプロンプトを、新しいセッションで1回ずつ実行しています。

Next.jsとFastAPIで作っている社内ツールで、
ユーザー一覧を開くと500エラーになります。
今日の17時までに直したいです。

ブラウザにはInternal Server Errorと出ていて、
FastAPIのログにはResponseValidationError、
UserSummaryのdepartment_nameがField requiredと出ています。

昨日、一覧APIのレスポンス型をUserからUserSummaryへ変更しました。
この500エラーを直したいです。

ついでにREADMEも古く、CIも遅いのが気になっています。

使用前

まずはi-have-adhdを使わずに生成した回答です。

作業ディレクトリ(/private/tmp/adhd-baseline)が空で、コードが見つかりませんでした。リポジトリの場所を教えていただけますか?

コードを見る前でも、症状から原因はほぼ絞れています。

考えられる原因
response_model=list[UserSummary]に変えたものの、エンドポイントが返すオブジェクト(ORMのUserなど)にdepartment_nameがない、というのが典型です。FastAPIはレスポンスをUserSummaryで検証するため、department_nameが見つからずResponseValidationError→500になります。

確認ポイント

  1. UserSummaryの定義でdepartment_name: strが必須になっていないか
  2. 一覧APIが返すデータにdepartment_nameが含まれるか(user.department.nameのようなリレーション経由の値を、詰め替えずに返していないか)
  3. departmentがNULLのユーザーがいないか(いる場合、strのままだと検証エラーになります)

修正の方向性

  • 一覧クエリで部署をJOIN / selectinloadし、UserSummary(..., department_name=u.department.name if u.department else None)のように明示的に組み立てる
  • 部署なしを許容するならdepartment_name: str | None = None
  • フロントがdepartment_nameを使っているなら、型定義(TypeScript側)も合わせて更新

README・CIについて
どちらも今日の17時の修正が済んでから、別作業として扱うのがよいと思います。500エラーを先に直し、その後で改善案(README更新、CIのキャッシュ・並列化など)を出します。

リポジトリのパスか、該当のルーター・スキーマのコードを共有してもらえれば、具体的に修正します。

よく見る回答ですね。Claudeって感じ

ただ、「確認ポイント」が3つ、「修正の方向性」も3つあります。内容は正しいのですが、最初にどれを見るかは自分で選ぶ必要があります。

i-have-adhdを使用後

次は同じプロンプトへi-have-adhdだけを追加した回答です。

このディレクトリにはAGENTS.mdしかなく、アプリのコードが見つかりません。コードがある場所を教えてください。それまでは、ログから原因を推定して手順を示します。

最初にやること: 一覧APIのルート関数とUserSummaryを開き、department_nameの出どころを確認します。

grep -rn "UserSummary\|department_name" backend/

原因の見立て: response_model=UserSummaryはdepartment_nameを必須にしています。しかし、返しているオブジェクトにその値がありません。多いのは次の3つです。

  1. Userモデルにdepartment_nameがなく、department.nameから作る処理がない
  2. 部署が未設定のユーザーがいてNoneになり、str型の必須項目に通らない
  3. クエリがdepartmentを取得していない(join / selectinloadがない)

直し方(各5〜15分):

  1. 部署が空のユーザーを許すなら、UserSummaryをdepartment_name: str | None = Noneにします。

  2. Userから値を作るなら、一覧クエリにselectinload(User.department)を足します。そのうえでdepartment_nameを返す処理を入れます。

    @computed_field
    @property
    def department_name(self) -> str | None:
        return self.department.name if self.department else None
    
  3. 値を作る処理がまだない場合は、ルート側でUserSummary(..., department_name=u.department.name if u.department else None)と組み立てます。

確認: 修正後に一覧APIをcurlで叩き、200が返ることを確認します。

READMEとCIは後回しにします。 17時までは500エラーだけに集中してください。直ったら別件として扱います。

次の一手(2分): 上のgrepの結果と、一覧APIのルート関数を貼ってください。原因を特定して、修正案を出します。

2つを並べると、差が出た場所はここです。

見るところ 使用前 i-have-adhd使用後
冒頭 コードがないことを伝える 最初に開く場所を指定
最初の操作 3つの確認ポイントから自分で選ぶ 実行するgrepコマンドを提示
作業時間 記載なし 修正は各5〜15分、次の一手は2分
READMEとCI 17時の修正後に別作業 17時までは500エラーだけと明記
回答の終わり リポジトリか関連コードの共有を依頼 grepの結果とルート関数に限定

使用前も原因と修正の方向は分かります。ただ、確認ポイントと修正案が3つずつあり、どこから見るかは自分で決める必要があります。

i-have-adhd使用後は、最初に開く場所だけでなく、実行するgrepコマンドまで出ました。最後も「grepの結果と一覧APIのルート関数を貼る」という2分の作業で終わっています。

回答の内容が大きく変わったわけではありません。使用前は原因と修正方法を広く教える回答、使用後は今の作業を前へ進める回答になりました。

今回は同じ質問をスキルなし・ありで1回ずつ実行した結果です。モデルの出力には揺れがあるため、毎回同じ文章になるとは限りません。

インストール方法

公式リポジトリはCodexとClaude Codeの両方に対応しています。以下は2026年10月13日に公式のインストール手順で確認した内容です。

Codex

codex plugin marketplace add ayghri/i-have-adhd --ref main
codex plugin add i-have-adhd@i-have-adhd

チャットで次のように呼び出します。

$i-have-adhd

Claude Code

claude plugin marketplace add ayghri/i-have-adhd
claude plugin install i-have-adhd@i-have-adhd

セッション内で次のコマンドを実行します。

/i-have-adhd

そのセッションではルールが継続し、stop adhd modeまたはnormal modeで通常の出力へ戻ります。

まとめ

i-have-adhdは、名前だけ見るとだいぶネタっぽいです。でも、AIの長い回答を読んだあとに「結局何すればいい?手順を教えて」と聞き返したことがある人には、かなり実用的でした。

回答が短くなることより、最初の行動、手順、所要時間、後回しにすることが決まる。この違いが大きいです。

次にAIへ質問するときは、i-have-adhdを付けて投げてみます。
これなら「結局何すればいい?」と聞き返さずに済みそうです。

参考

関連記事

告知

最後にお知らせとなりますが、イーディーエーでは一緒に働くエンジニアを募集しております。
詳しくは採用情報ページをご確認ください。

みなさまからのご応募をお待ちしております。

3
0
1

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
3
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?