Pivotの記事を真似したらハマった話と、そこから生まれた新しいGitHub運用術
はじめに
普段からVSCodeでAmazon QやGemini Code AssistなどのAIを使って作業しているのですが、一つ面倒なことがありました。AIとの会話で出てきたタスクや気づきをNotionに記録する際の、あのコピペ作業です。
日々のログやひらめき、思考を深めたりアイディアを育てたりする活動で、AIから得たインサイトをいちいち手動でNotionに転記するのが煩わしくて。「これ、もう少し楽にならないかな」と思い、MCP(Model Context Protocol)を使ってNotion書き込みを自動化してみたのですが、エラーが出まくって思うように動かない。仕方なく独自ツールを作ったりして、なんとかしのいでいました。
そんなとき、PIVOT(ピボット)の記事「なぜタスク管理をNotionからGitHub Projectsへ移行したのか」を読んで、目から鱗が落ちました。
「そうか、いっそタスク管理をGitHubにしてしまえば良いのか」
記事で紹介されていた「AIありきの仕事をいかに邪魔しないか」という視点に深く共感し、早速真似してみることにしました。
この記事では、その実践過程で得た学びと、最終的に構築できたシステムについて共有したいと思います。同じような課題を抱えている方の参考になれば幸いです。
元記事の背景と課題
元記事の背景:
- PIVOTのプロダクトチームがAI時代の開発に合わせてプロセスを見直し
- スプリントベースからカンバン方式へ移行
- しかし、ツール自体がボトルネックになってきた
元記事で指摘されたNotionの課題:
-
起票時の転記コスト:
- AIで内容をまとめても、Notionへの転記と各種設定の手間が残る
- NotionのUIを開いて、フィールドをポチポチと選択・入力
- 起票のハードルが下がらず、ドキュメンテーションが進まない
-
実装との連携の弱さ:
- NotionとPRの連携が弱い
- シームレスな連携が活用されていない
元記事の解決策:
- GitHub Projectsへの移行
-
gh CLIによる直感的な操作:
gh issue create --title "タスク" --body "詳細" gh project item-add 1 --owner OWNER --url [ISSUE_URL] - AIツール(Claude Code、Codex CLI)からの自然な操作
元記事の核心的洞察:
「AIありきの仕事をいかに邪魔しないかという視点でツール選定をする重要性」
「ツールの良し悪しの基準が変わってきている」
この洞察に深く共感しました。自分のObsidian Vaultで管理している「思考の森」システムでも、Amazon Qとの連携を前提とすれば、同様の課題を解決できるはずだと直感し、すぐに実装を開始しました。
制約から生まれた創意工夫
しかし、ここで最初の壁にぶつかります。自宅のMacが古すぎて、GitHub CLIが動作しないのです。
元記事ではGitHub CLIを使った手法が紹介されていましたが、この制約により別のアプローチを模索することになりました。結果的に、この制約が以下の学びにつながりました:
- GitHub APIの直接操作
- GitHub Actionsワークフローの設計
- Repository Secretsの管理
- Personal Access Tokenの権限設定
- GraphQL APIの活用
「制約は創造の母」という言葉通り、古いMacという制約が、より深い技術理解と堅牢なシステム構築につながったのです。
本記事では、この実際の構築体験と遭遇したトラブル、そして最終的に達成した革新的システムについて詳しく解説します。
🎯 実現したシステム概要
システム構成
達成した自動化
- 起票時間: 30秒 → 3秒(90%短縮)
- 管理作業: 手動 → 完全自動
- 可視化: 即座にProjects表示
- 思考キャッチ: 瞬間記録システム
🔧 構築手順
Step 1: GitHub Personal Access Token作成
最初の関門は適切な権限設定です。
# 必要な権限
✅ repo (Full control of private repositories)
✅ project (Full control of user and organization projects)
✅ read:org (Read org and team membership)
ポイント: project権限は必須。これがないと後でハマります。
Step 2: 環境変数設定
AIアシスタント用の環境変数を設定:
# /path/to/project/.env
GITHUB_TOKEN=your_actual_token_here
重要: .gitignoreに.envを追加してセキュリティを確保。
Step 3: GitHub Actions設定
Issue作成時に自動でProjectsに追加するワークフロー:
name: Add Issue to Project
on:
issues:
types: [opened]
permissions:
issues: read
repository-projects: write
contents: read
jobs:
add-to-project:
runs-on: ubuntu-latest
steps:
- name: Add Issue to Project
run: |
RESPONSE=$(curl -X POST \
-H "Authorization: Bearer ${{ secrets.PROJECT_TOKEN }}" \
-H "Content-Type: application/json" \
https://api.github.com/graphql \
-d '{
"query": "mutation AddToProject($projectId: ID!, $contentId: ID!) { addProjectV2ItemById(input: {projectId: $projectId, contentId: $contentId}) { item { id } } }",
"variables": {
"projectId": "YOUR_PROJECT_ID",
"contentId": "${{ github.event.issue.node_id }}"
}
}')
🚨 遭遇したトラブルと解決法
1. "Bad credentials" エラー
症状: API呼び出しで認証エラー
原因: トークンの期限切れ、または設定ミス
解決:
- 新しいトークンを作成
- Repository Secretsを更新
- トークンにスペースや改行が含まれていないか確認
2. "Resource not accessible by integration" エラー
症状: Projects APIへのアクセス拒否
原因: 権限不足またはRepository Secrets設定ミス
解決:
-
project権限の追加 -
read:org権限も必要な場合がある - Personal Access Tokenの使用(GITHUB_TOKENでは不十分)
-
Repository Secrets名の確認:
PROJECT_TOKENが正しく設定されているか確認
3. GraphQL mutation名エラー
症状: GraphQL APIでmutationが存在しないエラー
原因: 古いAPI仕様や間違ったコマンド名を使用
解決: GitHub Projects V2の最新APIドキュメントで正しいmutation名を確認
4. セキュリティ問題
最大の落とし穴: チャットでトークンを公開してしまう
対策:
- トークンは絶対に公開しない
-
.envファイルを.gitignoreに追加 - 定期的なトークンローテーション
5. Repository Secrets設定ミス
症状: ワークフローは成功するが実際には動作しない
原因: Repository Secrets名の間違い
解決:
- Secrets名を
PROJECT_TOKENに統一 - ワークフローファイルでの参照も
${{ secrets.PROJECT_TOKEN }}に統一 - 設定後は必ずテスト実行で確認
🎊 完成したワークフロー
日常の使い方
AIアシスタントに以下のように指示するだけ:
"新しいタスクをIssueで作成して"
"思考メモをGitHubに記録して"
"優先度Highのタスクを追加して"
対応しているAIアシスタント
このシステムはAmazon Q以外の様々なAIアシスタントでも利用可能です(未検証ですが、環境変数を読み込めるAIツールであれば対応可能と思われます):
- Gemini CLI: コマンドラインからの操作が可能
- Claude Code: VS Code拡張での連携が期待できる
- Codex CLI: 元記事でも言及されていたツール
- その他: .envファイルを読み込めるAIツール全般
自動化の流れ
- 思考発生 → AIアシスタントに「Issue作成して」
- 即座に記録 → GitHub Issuesで構造化
- 自動管理 → GitHub Actionsが実行
- 可視化完了 → Projectsにリアルタイム表示
💡 技術的なポイント
AIファーストなワークフロー設計
元記事の「AIありきの仕事をいかに邪魔しないか」という視点を実践しました:
元記事で指摘された従来の問題(Notion):
- AIで内容をまとめても、Notionへの転記作業が必要
- NotionのUIでフィールドをポチポチと選択・入力
- 起票のハードルが高く、ドキュメンテーションが進まない
元記事の解決策(GitHub Projects + CLI):
- gh CLIによる直接操作
- Claude CodeやCodex CLIからの自然な操作
- 転記作業が不要
本記事での発展(AIアシスタント + GitHub API):
- 自然言語での指示(「Issue作成して」)
- AIアシスタントが.envから認証情報を読み込み、GitHub APIを直接操作
- GitHub Actionsによる自動Projects連携
- 起票が3秒で完了、管理も完全自動化
AIアシスタントの環境変数読み込み
多くのAIアシスタントは作業ディレクトリの.envファイルを読み込むことができます。これにより、プロジェクト固有の設定が可能になります。
GraphQL APIの活用
GitHub Projects V2はGraphQL APIでのみ操作可能。REST APIでは対応していない点に注意。
セキュリティ設計
- 環境変数による認証情報の分離
- Repository Secretsでの安全な管理
- 最小権限の原則
🌟 得られた価値
元記事で報告された効果
- 起票コストの劇的な改善:転記作業が不要になった
- ドキュメンテーションの充実:詳細な背景や文脈を記載するハードルが下がった
- GitHub上で完結する開発フロー:コードを書くために必要なところに留まれる
- PdM/QAEの起票ハードルも低下:非エンジニアでも起票しやすくなった
本システムで追加実現した効果
- 起票時間90%短縮(30秒→3秒)
- 管理作業の完全自動化:GitHub Actionsによる自動Projects連携
- リアルタイム可視化:Issue作成と同時にProjects表示
- 思考の取りこぼし防止:瞬間記録システムの実現
- 認知負荷の軽減:手動管理作業からの解放
🏆 元記事を超えた完全自動化の実現
元記事の残された課題
元記事を詳しく分析すると、実はProjects追加の自動化が不完全でした:
# 元記事の手法:2ステップが必要
gh issue create --title "タスク" --body "詳細" # Step 1
gh project item-add 1 --owner OWNER --url [ISSUE_URL] # Step 2(手動)
元記事の制限:
- AI + CLIでの作成時:手動でProjects追加が必要
- テンプレート使用時:自動追加されるが、CLI直接使用時は手動
- 作成方法によって自動化レベルが異なる
今回のシステムが実現した真の革新
🌟 完全環境非依存の自動化エコシステム:
| 作成方法 | 元記事 | 今回のシステム |
|---|---|---|
| Amazon Q | 手動Projects追加 | ✅ 完全自動 |
| iPhone Safari | 手動Projects追加 | ✅ 完全自動 |
| PC Web UI | 手動Projects追加 | ✅ 完全自動 |
| GitHub CLI | 手動Projects追加 | ✅ 完全自動 |
| 他メンバー作成 | 手動Projects追加 | ✅ 完全自動 |
| テンプレート使用 | ✅ 自動 | ✅ 完全自動 |
制約が生んだ予想外の価値
古いMacでGitHub CLIが使えないという制約により、結果的に元記事を超える完全自動化システムを構築することができました:
元記事の焦点:「AIとCLIの連携」
今回の成果:「Issue作成の完全自動化エコシステム」
実用的なメリット
- 出先でのアイデア記録:iPhoneからでも確実にProjects管理
- チーム協働:誰がどの方法で作成してもProjects連携
- ツール選択の自由:好きな方法・環境で作成可能
- 保守性:一度設定すれば全環境・全メンバーで動作
🔮 今後の展望
拡張可能性
- ラベル別自動分類
- 期限管理自動化
- 通知システム連携
- AI による優先度自動判定
他プロジェクトへの応用
このシステムは他のプロジェクトにも応用可能:
- チーム開発での課題管理
- 個人プロジェクトのタスク管理
- アイデア管理システム
まとめ
Amazon QとGitHubの連携により、「思考の瞬間記録→自動管理」という革新的なワークフローを実現しました。
皆さんも、制約を嘆くのではなく、それを創造の機会として捉えてみてください。きっと、予想以上の学びと成果が得られるはずです。
元記事の著者が指摘した通り、「AIありきの仕事をいかに邪魔しないか」という視点でのツール選定は、今後ますます重要になってくるでしょう。
今回の体験を通じて、制約は確実に発明の母であることを実感しました。古いMacという制約がなければ、元記事と同じ手法で満足していたかもしれません。しかし、制約があったからこそ、より深く問題を分析し、結果的に元記事を超える完全自動化システムを構築することができました。
制約に直面した時、それを嘆くのではなく「これは何か新しいものを生み出すチャンスかもしれない」と捉えることで、予想以上の成果を得られる可能性があります。
構築日: 2025/11/08 (土曜日)
システム名: PIVOT式「思考の瞬間記録→自動管理」システム
皆さんもぜひ、このシステムを参考に、自分だけの自動化ワークフローを構築してみてください!
参考リンク
- 元記事: NotionからGitHub Projectsに移行した話
- GitHub Personal Access Tokens
- GitHub Projects V2 API
- GitHub Actions Documentation
筆者について
思考の森を育てながら、AI時代のワークフロー最適化を探求しています。
- note: https://note.com/fline - 日々の気づきや価値観の探求を発信
- GitHub: https://github.com/nayabashi - 実装やシステム構築の記録
思考整理システムの運用方法や体験談も今後共有予定です。
#AmazonQ #GitHub #自動化 #ワークフロー #生産性向上 #思考の森 #PIVOT #制約駆動開発
Discussion