/start-12-4
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.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/start-12-4
Context preview
What this command does when you run it.
Lesson command
Command definition
start-12-4.mddescription: "Lesson command"
chapter: "courses/aiagent/lesson03-core/module12-notion"
duration: "約25分"
prerequisites: ["start-12-3"]
level: "intermediate"
tags: ["notion", "ncli", "create", "page", "file", "database"]
nonInteractiveMode: deferred
🎓 Lesson 12-4: ファイル作成・ページ作成
📍 このセッションでやること
**Lesson 12-4: ファイル作成・ページ作成** へようこそ!
| 項目 | 内容 | |------|------| | ゴール | ncli でNotionにページ・データベースを作成し、ファイルをアップロードする | | 所要時間 | 約25分 | | 使うスキル | ncli (Notion CLI) | | 前提条件 | Lesson 12-3 完了(ファイル取得ができる状態) |
**このセッションの流れ:** 1. シンプルなページ作成 2. 本文付きページ作成(パイプ入力) 3. ファイルアップロード 4. データベース作成 5. DBにエントリ追加
セッション終了時には、ncli を使ってNotionにページ・DB・ファイルを自由に作成できるようになっています。
> **💡 ヒント**: 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 → モジュール一覧を表示)
---
🚀 Step 1: シンプルなページ作成
**AskQuestionの設定例:**
{
"title": "🚀 Step 1: シンプルなページ作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. まず受講者に親ページを確認:
- 「ページを作成する場所(親ページ)のURLを教えてください。特になければワークスペースのトップレベルに作成します」と案内
2. テストページを作成:
ncli page create --title "ncli テストページ"
3. 親ページを指定して作成する場合:
ncli page create --title "ncli テストページ" --parent <親ページURL>
4. 作成されたページの情報を確認:
- ページID
- ページURL
- 作成日時
5. ブラウザでNotionを開き、ページが正しく作成されたか確認するよう案内する。
**期待される結果**: Notionに新しいページが作成され、ブラウザで確認できる。
---
🚀 Step 2: 本文付きページ作成(パイプ入力)
**AskQuestionの設定例:**
{
"title": "🚀 Step 2: 本文付きページ作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. `--body` オプションで本文付きページを作成:
ncli page create --title "議事録テンプレート" --body "# 会議概要
## 日時
- 日付: $(date +%Y-%m-%d)
## 参加者
- (ここに記入)
## 議題
1. 議題1
2. 議題2
## 決定事項
- (ここに記入)
## 次のアクション
- [ ] タスク1
- [ ] タスク2"
2. パイプを使った入力も試す:
echo "# レポート本文
これはパイプ経由で入力された本文です。
## セクション1
テスト内容を記載しています。" | ncli page create --title "パイプ入力テスト" --body -
3. ファイルの内容をそのままページに流し込む:
cat README.md | ncli page create --title "READMEコピー" --body -
4. 作成したページを `ncli fetch` で確認:
ncli fetch <作成されたページURL>
**補足**: `--body -` はパイプからの入力(標準入力)を本文として使うことを意味します。長文のコンテンツを作成する際に便利です。
**期待される結果**: Markdown形式の本文を持つページが作成される。
---
🚀 Step 3: ファイルアップロード
**AskQuestionの設定例:**
{
"title": "🚀 Step 3: ファイルアップロード",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. テスト用ファイルを準備(なければ作成):
echo "これはncliアップロードテスト用のファイルです。" > output/test_upload.txt
2. ファイルをNotionにアップロード:
ncli file upload output/test_upload.txt
3. 画像ファイルのアップロードも試す(あれば):
ncli file upload output/notion_auth_screenshot.png
4. アップロード結果を確認:
- アップロード先のページ/ブロック情報
- ファイルURL
5. Notionブラウザでアップロードされたファイルが表示されるか確認するよう案内。
**期待される結果**: ファイルがNotionにアップロードされ、ブラウザで確認できる。
---
🚀 Step 4: データベース作成
**AskQuestionの設定例:**
{
"title": "🚀 Step 4: データベース作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. タスク管理用データベースを作成:
ncli db create --title "タスク管理" \
--prop "Name:title" \
--prop "Status:select=Open,InProgress,Done" \
--prop "Priority:select=High,Medium,Low" \
--prop "DueDate:date" \
--prop "Category:multi_select=開発,デザイン,企画,ドキュメント"2. 作成されたDBの情報を確認:
- データベースID
- データベースURL
- プロパティ一覧
3. `ncli fetch` でスキーマを確認:
ncli fetch <作成されたDB-URL>
4. 各プロパティが正しく作成されたか、テーブル形式で表示する:
| プロパティ名 | 型 | 選択肢 | |---|---|---| | Name | title | - | | Status | select | Open, InProgress, Done | | Priority | select | High, Medium, Low | | DueDate | date | - | | Category | multi_select | 開発, デザイン, 企画, ドキュメント |
**期待される結果**: プロパティ付きのデータベースが作成される。
---
🚀 Step 5: DBにエントリ追加
**AskQuestionの設定例:**
{
"title": "🚀 Step 5: DBにエントリ追加",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. Step 4 で作成したDBにタスクを追加:
ncli page create --parent <DB-URL> \
--prop "Name=APIドキュメント作成" \
--prop "Status=Open" \
--prop "Priority=High" \
--prop "Category=ドキュメント"2. さらにタスクを追加:
ncli page create --parent <DB-URL> \
--prop "Name=ユーザー認証機能実装" \
--prop "Status=InProgress" \
--prop "Priority=High" \
--prop "Category=開発"3. 3つ目のタスクも追加:
ncli page create --parent <DB-URL> \
--prop "Name=UIモックアップ作成" \
--prop "Status=Open" \
--prop "Priority=Medium" \
--prop "Category=デザイン"4. 追加されたエントリを確認:
ncli db query <DB-view-URL>
5. 結果をテーブル形式で表示し、全タスクが正しく追加されたか確認する。
**期待される結果**: 3件のタスクがDBに追加され、クエリで一覧表示できる。
---
⚠️ よくあるトラブルと解決方法
**AskQuestionの設定例:**
{
"title":Read more
description: "Lesson command" chapter: "courses/aiagent/lesson03-core/module12-notion" duration: "約25分" prerequisites: ["start-12-3"] level: "intermediate" tags: ["notion", "ncli", "create", "page", "file", "database"] nonInteractiveMode: deferred
🎓 Lesson 12-4: ファイル作成・ページ作成
📍 このセッションでやること
**Lesson 12-4: ファイル作成・ページ作成** へようこそ!
| 項目 | 内容 | |------|------| | ゴール | ncli でNotionにページ・データベースを作成し、ファイルをアップロードする | | 所要時間 | 約25分 | | 使うスキル | ncli (Notion CLI) | | 前提条件 | Lesson 12-3 完了(ファイル取得ができる状態) |
**このセッションの流れ:** 1. シンプルなページ作成 2. 本文付きページ作成(パイプ入力) 3. ファイルアップロード 4. データベース作成 5. DBにエントリ追加
セッション終了時には、ncli を使ってNotionにページ・DB・ファイルを自由に作成できるようになっています。
> **💡 ヒント**: 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 → モジュール一覧を表示)
---
🚀 Step 1: シンプルなページ作成
**AskQuestionの設定例:**
{
"title": "🚀 Step 1: シンプルなページ作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. まず受講者に親ページを確認:
- 「ページを作成する場所(親ページ)のURLを教えてください。特になければワークスペースのトップレベルに作成します」と案内
2. テストページを作成:
ncli page create --title "ncli テストページ"
3. 親ページを指定して作成する場合:
ncli page create --title "ncli テストページ" --parent <親ページURL>
4. 作成されたページの情報を確認:
- ページID
- ページURL
- 作成日時
5. ブラウザでNotionを開き、ページが正しく作成されたか確認するよう案内する。
**期待される結果**: Notionに新しいページが作成され、ブラウザで確認できる。
---
🚀 Step 2: 本文付きページ作成(パイプ入力)
**AskQuestionの設定例:**
{
"title": "🚀 Step 2: 本文付きページ作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. `--body` オプションで本文付きページを作成:
ncli page create --title "議事録テンプレート" --body "# 会議概要 ## 日時 - 日付: $(date +%Y-%m-%d) ## 参加者 - (ここに記入) ## 議題 1. 議題1 2. 議題2 ## 決定事項 - (ここに記入) ## 次のアクション - [ ] タスク1 - [ ] タスク2"
2. パイプを使った入力も試す:
echo "# レポート本文 これはパイプ経由で入力された本文です。 ## セクション1 テスト内容を記載しています。" | ncli page create --title "パイプ入力テスト" --body -
3. ファイルの内容をそのままページに流し込む:
cat README.md | ncli page create --title "READMEコピー" --body -
4. 作成したページを `ncli fetch` で確認:
ncli fetch <作成されたページURL>
**補足**: `--body -` はパイプからの入力(標準入力)を本文として使うことを意味します。長文のコンテンツを作成する際に便利です。
**期待される結果**: Markdown形式の本文を持つページが作成される。
---
🚀 Step 3: ファイルアップロード
**AskQuestionの設定例:**
{
"title": "🚀 Step 3: ファイルアップロード",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. テスト用ファイルを準備(なければ作成):
echo "これはncliアップロードテスト用のファイルです。" > output/test_upload.txt
2. ファイルをNotionにアップロード:
ncli file upload output/test_upload.txt
3. 画像ファイルのアップロードも試す(あれば):
ncli file upload output/notion_auth_screenshot.png
4. アップロード結果を確認:
- アップロード先のページ/ブロック情報
- ファイルURL
5. Notionブラウザでアップロードされたファイルが表示されるか確認するよう案内。
**期待される結果**: ファイルがNotionにアップロードされ、ブラウザで確認できる。
---
🚀 Step 4: データベース作成
**AskQuestionの設定例:**
{
"title": "🚀 Step 4: データベース作成",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. タスク管理用データベースを作成:
ncli db create --title "タスク管理" \
--prop "Name:title" \
--prop "Status:select=Open,InProgress,Done" \
--prop "Priority:select=High,Medium,Low" \
--prop "DueDate:date" \
--prop "Category:multi_select=開発,デザイン,企画,ドキュメント"2. 作成されたDBの情報を確認:
- データベースID
- データベースURL
- プロパティ一覧
3. `ncli fetch` でスキーマを確認:
ncli fetch <作成されたDB-URL>
4. 各プロパティが正しく作成されたか、テーブル形式で表示する:
| プロパティ名 | 型 | 選択肢 | |---|---|---| | Name | title | - | | Status | select | Open, InProgress, Done | | Priority | select | High, Medium, Low | | DueDate | date | - | | Category | multi_select | 開発, デザイン, 企画, ドキュメント |
**期待される結果**: プロパティ付きのデータベースが作成される。
---
🚀 Step 5: DBにエントリ追加
**AskQuestionの設定例:**
{
"title": "🚀 Step 5: DBにエントリ追加",
"questions": [{
"id": "step_action",
"prompt": "このステップをどうしますか?",
"options": [
{"id": "practice", "label": "このまま進める"},
{"id": "review", "label": "例だけ確認する"},
{"id": "skip", "label": "スキップする"}
]
}]
}**AIが実行すること:**
1. Step 4 で作成したDBにタスクを追加:
ncli page create --parent <DB-URL> \
--prop "Name=APIドキュメント作成" \
--prop "Status=Open" \
--prop "Priority=High" \
--prop "Category=ドキュメント"2. さらにタスクを追加:
ncli page create --parent <DB-URL> \
--prop "Name=ユーザー認証機能実装" \
--prop "Status=InProgress" \
--prop "Priority=High" \
--prop "Category=開発"3. 3つ目のタスクも追加:
ncli page create --parent <DB-URL> \
--prop "Name=UIモックアップ作成" \
--prop "Status=Open" \
--prop "Priority=Medium" \
--prop "Category=デザイン"4. 追加されたエントリを確認:
ncli db query <DB-view-URL>
5. 結果をテーブル形式で表示し、全タスクが正しく追加されたか確認する。
**期待される結果**: 3件のタスクがDBに追加され、クエリで一覧表示できる。
---
⚠️ よくあるトラブルと解決方法
**AskQuestionの設定例:**
{
"title":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
Other commands on ai-agent-camp.
- /check-setup.en
Top-level alias — see lesson/check-setup.en.md for the full body.
Open command - /check-setup.es
Alias de nivel superior — el cuerpo completo está en lesson/check-setup.es.md.
Open command - /check-setup
Top-level alias — see lesson/check-setup.md for the full body.
Open command - /check-security.en
Lesson command
Open command - /check-security.es
Lesson command
Open command - /check-security
Lesson command
Open command

