check-setup.en
Top-level alias — see lesson/check-setup.en.md for the full body.
Lesson command
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/start-12-2Context preview
What this command does when you run it.
Lesson command
description: "Lesson command" chapter: "courses/aiagent/lesson03-core/module12-notion" duration: "約25分" prerequisites: ["start-12-1"] level: "beginner" tags: ["notion", "ncli", "database", "query"] nonInteractiveMode: deferred
**Lesson 12-2: データベース取得・クエリ** へようこそ!
| 項目 | 内容 | |------|------| | ゴール | ncli でNotionデータベースを検索・取得し、クエリでデータを抽出・分析する | | 所要時間 | 約25分 | | 使うスキル | ncli (Notion CLI) | | 前提条件 | Lesson 12-1 完了(ncli認証済み) |
**このセッションの流れ:** 1. ワークスペース内のDB検索 2. DB スキーマの確認 3. クエリの実行 4. JSON出力とAI分析 5. フィルタ・ソート条件の変更
セッション終了時には、Notionデータベースの構造を理解し、条件付きクエリを実行できるようになっています。
> **💡 ヒント**: AIの応答が途中で止まった場合は「続きを表示して」「止まってるよ」と入力すると再開します。
---
まずは準備が整っているか確認しましょう。
**AskQuestionの設定:**
{
"title": "🎯 セッション開始前の確認",
"questions": [{
"id": "readiness",
"prompt": "準備はできていますか?",
"options": [
{"id": "ready", "label": "準備OK!始めましょう"},
{"id": "check_prereq", "label": "前提条件を確認したい"},
{"id": "different_lesson", "label": "別のレッスンに移動したい"}
]
}]
}(ready → Step 1へ) (check_prereq → `ncli whoami` を実行して認証状態を確認) (different_lesson → モジュール一覧を表示)
---
**AskQuestionの設定例:**
{
"title": "🚀 Step 1: ワークスペース内のDB検索",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. ワークスペース全体を検索してデータベースを探す:
ncli search "タスク"
2. 検索結果から、データベースとページを区別して一覧表示する。
3. 複数のキーワードで検索して、ワークスペース内のDBを把握する:
ncli search "プロジェクト" ncli search "管理"
4. 検索結果をテーブル形式で整理して受講者に共有する:
**補足**: データベースが見つからない場合は、Lesson 12-4 で新しいDBを作成できます。既存のDBがあれば、それを使って進めましょう。
**期待される結果**: ワークスペース内のデータベースが一覧表示される。
---
**AskQuestionの設定例:**
{
"title": "🚀 Step 2: DBスキーマ確認",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. 受講者にデータベースのURLまたはIDを教えてもらう:
2. データベースのスキーマ(プロパティ構造)を取得:
ncli fetch <db-url>
3. 取得結果から以下を整理して説明:
4. スキーマ情報をわかりやすいテーブル形式で出力する:
| プロパティ名 | 型 | 設定 | |---|---|---| | タスク名 | title | - | | ステータス | select | 未着手, 進行中, 完了 | | 期限 | date | - |
**期待される結果**: データベースの全プロパティとその型が一覧表示される。
---
**AskQuestionの設定例:**
{
"title": "🚀 Step 3: クエリ実行",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. データベースビューのURLを使ってクエリを実行:
ncli db query <view-url>
2. 全レコードの一覧を取得し、テーブル形式で表示する。
3. 結果の各行について主要プロパティの値を整理する。
4. レコード数を確認:
**補足**: `<view-url>` はNotionのデータベースビューのURLです。ブラウザでデータベースを開いた時のURLをそのまま使えます。
**期待される結果**: データベースの全レコードが取得・表示される。
---
**AskQuestionの設定例:**
{
"title": "🚀 Step 4: JSON出力とAI分析",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. JSON形式でデータを取得:
ncli db query <view-url> --json
2. 取得したJSONデータをAIで分析:
3. 分析結果をレポート形式で出力:
📊 データベース分析レポート ======================== - 全レコード数: XX件 - ステータス別: 未着手 X件 / 進行中 X件 / 完了 X件 - 直近1週間の更新: X件
4. 結果を `output/notion_db_analysis.md` に保存する。
**期待される結果**: JSON形式のデータが取得でき、AIが構造化された分析レポートを生成する。
---
**AskQuestionの設定例:**
{
"title": "🚀 Step 5: フィルタ・ソート条件の変更",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. Notionでデータベースのビューを変更する方法を案内:
2. フィルタ済みビューのURLでクエリを実行:
ncli db query <filtered-view-url>
3. REST API を使ったフィルタリングも試す:
ncli rest POST /v1/databases/<db-id>/query '{"filter":{"property":"ステータス","select":{"equals":"進行中"}}}'4. 結果を比較して、ビューURLとREST APIの使い分けを解説する:
**期待される結果**: フィルタ・ソート付きのクエリが実行でき、条件に合ったデータのみが表示される。
---
**AskQuestionの設定例:**
{
"title": "トラブル内容を選択",
"questions": [{
"id": "trouble",
"prompt": "当てはまる内容を1つ選んでください",
"options": [
{"id": "trouble_1", "label": "Database not found エラー"},
{"id": "trouble_2", "label": "クエリ結果が空になる"},
{"id": "trouble_3", "label": "JSON出力が文字化けする"},
{"id": "trouble_4", "label": "REST APIのフィルタ構文エラー"}
]
}]
}**原因**: データベースIDまたはURLが間違っている、アクセス権限がない **解決方法**:
以下を確認してください: 1. URLをブラウザから直接コピーしているか 2. ncli search でそのDBが検索結果に出るか 3. DBが共有されているワークスペースに ncli login しているか
**原因**: フィルタ条件に一致するレコードがない、またはビューの設定 **解決方法**:
以下を確認してください: 1. フィルタなしのビューURLで試す 2. Notionブラウザで同じビューを開き、データが見えるか確認 3. ncli fetch <db-url> でDB自体にアクセスできるか確認
**原因**: ターミナルの文字コード設定 **解決方法**:
以下を試してください: 1. ターミナルのエンコーディングをUTF-8に設定 2. ncli db query <view-url> --json | python3 -m json.tool で整形
AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your
Top-level alias — see lesson/check-setup.en.md for the full body.
Alias de nivel superior — el cuerpo completo está en lesson/check-setup.es.md.