修行中エンジニアがAIツールを試してみたら想像以上にすごかった体験談
はじめに
こんにちは ⭐️ ソフトウェアエンジニアを目指して修行中の Yuki です!
最近、開発チームのリーダーから「TaskMaster」という AI タスク管理ツールを教えてもらいました。リーダーの説明を聞いて興味を持ったので、実際に導入してみたところ、開発効率が大幅に向上したので、その体験を共有します。
特に印象的だったのは、不具合の現象を自然言語で伝えただけで、AI が詳細分析からプルリクエスト作成まで一気通貫で対応してくれたことです。
導入前の課題
従来の開発フローでは以下のような課題がありました:
- 🔍 手動タスク分解: 大きな機能を細かいタスクに分ける作業が属人的
- 📊 依存関係の見落とし: タスク間の関係性を把握しきれない
- ⏰ 優先度判定の困難: どのタスクから着手すべきか判断に時間がかかる
- 🔍 不具合分析の時間: 現象から原因特定まで時間がかかる
TaskMaster を導入してみた!
設定をやってみたのですが...(実際は結構大変でした...😅)
最初は「簡単そう!」と思ったのですが、思いのほか苦戦しました。
MCPサーバー経由で使うメリット・デメリット
MCPサーバー経由だと...
- Cursorエディタ内で直接操作
- チャット感覚で自然に会話
でも、デメリットもあります...
- 設定が少し複雑(MCP設定ファイルの作成など)
これなら使いやすそう!と思いました。ただし、最初の設定は少し手間がかかるので、時間がある時にじっくり取り組むことをおすすめします。
導入方法を選ぼう!
TaskMasterには2つの導入方法があるようです。私が試した手順を共有しますね。
方法1: CLI方式で導入(シンプル)
手順:
# Step 1: グローバルインストール
npm install -g task-master-ai
# Step 2: プロジェクトで初期化
task-master init
# Step 3: 設定ファイルが自動生成される
ls -la .taskmaster/
# config.json
# tasks/tasks.json
# templates/example_prd.txt
# Step 4: モデル設定(確認・設定)
task-master models
# 必要に応じて: task-master models --setup
私が感じた特徴:
- 設定がシンプル
- どのエディタでも使用可能
- グローバルインストールで全プロジェクトで利用可能
方法2: MCPサーバー経由で導入(エディタ統合)
手順:
# Step 1: プロジェクトにインストール
npm install --save-dev task-master-ai
# Step 2: .cursorディレクトリを作成
mkdir .cursor
# Step 3: MCP設定ファイルを作成
# .cursor/mcp.json に以下を記述
{
"mcpServers": {
"task-master-ai": {
"command": "npx",
"args": ["-y", "--package=task-master-ai", "task-master-ai"],
"env": {
"ANTHROPIC_API_KEY": "ANTHROPIC_API_KEY_HERE",
"PERPLEXITY_API_KEY": "PERPLEXITY_API_KEY_HERE",
"OPENAI_API_KEY": "OPENAI_API_KEY_HERE",
"GOOGLE_API_KEY": "GOOGLE_API_KEY_HERE",
"XAI_API_KEY": "XAI_API_KEY_HERE",
"OPENROUTER_API_KEY": "OPENROUTER_API_KEY_HERE",
"MISTRAL_API_KEY": "MISTRAL_API_KEY_HERE",
"AZURE_OPENAI_API_KEY": "AZURE_OPENAI_API_KEY_HERE",
"OLLAMA_API_KEY": "OLLAMA_API_KEY_HERE"
}
}
}
}
# Step 4: 初期化
npx task-master-ai init -y
# Step 5: モデル設定(確認・設定)
npx task-master-ai models
# 必要に応じて: npx task-master-ai models --setup
> ※補足: 私のMac環境では `npx task-master models` の方がうまくモデル設定が表示されました。
> `task-master` は `task-master-ai` のエイリアスとして利用できます。
私が感じた特徴:
- エディタ内で直接操作
- チャット感覚で使用
- プロジェクトごとにインストールが必要
私が気づいた点: 最初からMCP経由で設定する場合は、CLI方式のグローバルインストール(npm install -g task-master-ai
)は不要でした。プロジェクトインストールのみで十分でした。
共通の設定: どちらの方式でも、AI APIの設定(APIキーの設定とモデル選択)は必要でした。
API設定の違い:
-
CLI方式:
.env
ファイルまたは環境変数でAPIキーを設定 -
MCP方式:
.cursor/mcp.json
ファイルでAPIキーを設定
モデル設定: どちらの方式でも、task-master models
で現在の設定を確認し、必要に応じてtask-master models --setup
でインタラクティブに設定できます。また、task-master models --set-main=<model>
などの直接コマンドでも設定可能です。
併用可能: 両方の方式を同時に使用することも可能でした。同じプロジェクトでCLIとMCP方式を併用しても干渉しませんでした。
推奨順序: MCPツールが推奨され、CLIはフォールバックとして使用されるようです。MCPサーバーが利用できない場合や、特定の機能がMCPで利用できない場合にCLI方式を使用するようです。
私の実際の導入体験
私は、まず、方法1: CLI方式で導入(シンプル)で導入した後、方法2: MCPサーバー経由で導入(エディタ統合)でMCPサーバーを経由する方法も導入しました。
CLI方式で基本的な使い方を理解してから、MCP方式を追加することで、段階的に学習できました。両方の方式を併用することで、状況に応じて使い分けられるようになりました。
設定で苦労したポイント
実際の設定では、以下のような問題に遭遇しました(私の体験談です):
- ❌ 無料 Claude Code: AWS の設定が必要になり、料金体系がややこしそうなので断念
- ❌ OpenAI: クォータ制限で使えず
- ✅ 有料の Anthropic API + OpenRouter 経由: でやっと成功!
# 最初はこんな感じでエラーが...
task-master models
# ❌ Bedrock: AWS認証情報の設定が必要
# ❌ Claude-code: AWS認証情報がありません
# ❌ OpenAI: クォータ制限
どの AI を使うか悩んだ結果...
TaskMaster 自体は無料のオープンソースツールですが、使用する AI API は有料のものと無料のものがあるようです。
無料で利用できる AI API もありますが、設定が複雑だったり制限があったりするため、私は有料の Anthropic API を選択しました。利用頻度や目的に応じて、皆さんに合ったものを選ばれるとよいかなと思います。私の場合は月約 3000 円の投資ですが、開発効率向上の可能性を感じているので、これから積極的に活用していこうと思っています。
やっと設定できました!
task-master models
# 🤖 TaskMaster + Claude 設定できたー!
# ✅ Anthropic Claude: Found
# ✅ OpenRouter: Connected
AI ツールを実際に試してみる!
例:こんなイシューがあった場合
皆さんは、こんな状況に遭遇したことはありませんか?
「最終ページで、完了ボタンを押した時に、『次へ進みます』というメッセージが表示される。また、同時に非公開ページが表示されることがある。」
🤔 考えてみてください: この問題の原因は何でしょうか?そして、どのように修正しますか?
従来なら、コードを調査して、テストして、修正案を考えて...と時間がかかりますよね。
でも、Cursor × TaskMaster なら、こんな流れで進んでいきます:
Step 1: Cursor が問題を瞬時に特定
まず、この現象を Cursor の AI アシスタントに説明してみます。
結果は? → 即座に問題の核心を突いてきました:
// 問題のあるコード(例)
const handleBtnClick = async () => {
// 問題: 次のアイテムの公開状態チェック不足
if (nextItemId) {
showMessage("次へ進みます。"); // ← 常にこのメッセージ
// 非公開アイテムにも遷移してしまう
navigateTo(`/items/${nextItemId}`);
}
};
Step 2: 修正案も自動で提案
「なるほど、原因は分かったけど、どう修正すればいいの?」
そう思った瞬間、Cursor が修正案まで提示してくれます:
const handleBtnClick = async () => {
// 次のアイテムの公開状態を確認
const nextItem = items.find((item) => item.id === nextItemId);
const isPublic = nextItem && (isAdmin || nextItem.isPublished);
if (isPublic) {
// 公開されている場合
showMessage("次へ進みます。");
navigateTo(`/items/${nextItemId}`);
} else {
// 次が非公開アイテム、 または最終アイテムの場合
showMessage("完了しました!一覧に戻ります。");
navigateTo("/items");
}
};
Step 3: ここからもすごい自動化の流れ
「なるほど、こうすればいいのか!でも、適用して、コミットして、PR 作って...まだまだ作業があるなあ」
でも実際は、そんなことを考えていたのもつかの間でした。ここから先の流れに驚かされました:
1. コード修正の適用
修正案を 1 クリックで適用:
# 修正が自動適用される
git diff
# components/ItemSection.tsx | 15 insertions(+), 8 deletions(-)
2. コミットメッセージも自動生成
「コミットメッセージ何て書こう...」 → その心配もいりません:
git commit -m "fix: 完了ボタンの公開状態チェック処理を追加"
3. プルリクエストまで一気に
「最後に PR 作って...」 → TaskMaster × GitHub CLI で完了:
gh pr create \
--title "Fix/#1234 完了ボタンの公開状態チェック処理を追加" \
--body-file PR_description.md \
--head feature/add-publish-check \
--base main
結果: 不具合発見から PR 作成まで、わずか数分で完了!
どうでしょうか? 従来なら 数十分かかっていた作業が、AI の力で大幅に短縮されました。
Cursor と TaskMaster の連携効果
開発の質も向上するらしいです
こんな効果もあるそうです:
- 🔍 見落とし削減: エッジケースまで AI が教えてくれる
- 📝 レビュー効率化: 修正内容が明確で分かりやすい
- 🧪 テスト強化: AI が提案するテストケースが勉強になる
正直、最初は半信半疑でしたが... 実際に体験してみると、本当にこの効果がありそうだと感じられました!
TaskMaster で進捗管理はどう変わる?
私が使ってみて感じた変化です:
- 🎯 自動でタスク分解: 「ログイン機能を作る」→「バリデーション」「認証処理」「UI 作成」など、細かく分けてくれる
- 📋 優先順位を提案: 「まずはこれから始めましょう」って教えてくれるので迷わない
- 🔗 依存関係を可視化: 「A ができないと B は作れません」が一目で分かる
- 📈 進捗の見える化: 「全体の 60%完了」「あと 3 日で完成予定」など具体的に把握できる
従来の手動管理だと...
私「今何%くらい進んだかな?」
→ よく分からない、なんとなくの感覚
TaskMaster を使うと...
AI「現在 73%完了、残りタスク 4 個、予定通り 2 日で完成です」
→ 明確で安心!
これならわかりやすいです!
複雑なケースでの依存関係管理
今回例に挙げた不具合修正のタスクでは、依存関係の管理が必要ありませんでしたが、複雑なケースでは、こんなふうにやってくれるようです(...私の理解です):
例:「ブログサイトに投稿機能を追加する」場合
実際の開発では、認証、セキュリティ、データベース設計など、さらに複雑な仕様や要件がありますが、ここでは分かりやすく簡略化して説明しますね。
TaskMaster が自動で分析すると...
📝 タスク分解結果:
1. ユーザー登録機能 (独立)
2. ログイン機能 (1に依存)
3. 記事作成画面 (2に依存)
4. 記事一覧表示 (3に依存)
5. 記事詳細表示 (4に依存)
AI の提案順序:
「1 → 2 → 3 → 4 → 5 の順番で、一つずつ順序良く進めていくのがおすすめです。記事を作ってから一覧表示、その後詳細表示という自然な流れですね」
従来の私だと...
「とりあえず作りたいものから作っちゃおう → でも何から始めればいい?」となるところを
TaskMaster があると...
「なるほど!この順番なら効率的に進められそう!」→ 迷わない
複雑なプロジェクトでも、こうやって道筋を示してくれるなんて、とても心強いです!
Cursor と TaskMaster の役割分担
使ってみて分かったのですが、Cursor と TaskMaster って、それぞれ得意分野が違うんですね!
Cursor(コーディング AI)が得意なこと
- 🔍 詳細なコード分析
- 🛠️ 修正案の生成と適用
- 📝 技術的な実装支援
TaskMaster(プロジェクト管理 AI)が得意なこと
- 📋 タスクの自動分解
- 📊 依存関係の分析
- 📈 進捗の追跡と管理
🧑💻 MCP経由でTaskMasterと自然言語でやりとりしてみた実験
※本筋から少し外れますが、実験的に試してみた内容もご紹介します。
先ほど実際にMCP経由のTaskMasterでECサイトのテストタスクを実行してみました。たとえば「ECサイトの商品一覧ページを作成して」「次のタスクを実行して」「作成したコードやテストケースを見せて」など、自然言語で指示を出すだけで、TaskMasterが自動でタスク分解・実行・進捗管理まで対応してくれました。
実際に行ったECサイトのタスク例:
- Taskmasterと自然言語でやり取りし、タスクやサブタスクの進捗管理・記録をスムーズに実施。
- 進捗メモや設計内容をAIに指示するだけで、即座にタスクへ反映・記録される。
- ER図やスキーマ定義、設計レビューなどもAIが自動生成・可視化。
- サブタスクの完了・着手も「◯◯を完了にして」など自然な日本語で指示可能。
- 次にやるべきタスクや設計作業もAIが自動で提案し、迷わず進行できる。
- 設計からAPI仕様作成まで、すべてAI主導でテンポよく開発が進む。
まとめ
Cursor と TaskMaster の組み合わせは初めてでしたが、意外とスムーズに開発ができました!
ただ、今回試してみたのが軽微な不具合の修正だったからかもしれません。複雑な機能追加や難易度高めの不具合修正ではまだ試してみたことがありませんが...。
まだまだ勉強中の身ですが、AI ツールの可能性に非常に関心を持っています。技術の進歩についていけるよう、これからも学習を続けていこうと思います。
少しでも参考になれば幸いです! ✨
関連記事
Discussion