Prompt file imported from minicoohei/ai-agent-camp (
.cursor/commands/lesson/start-12-4.md). Copyright stays with the author.
ð Lesson 12-4: ãã¡ã€ã«äœæã»ããŒãžäœæ
ð ãã®ã»ãã·ã§ã³ã§ããããš
Lesson 12-4: ãã¡ã€ã«äœæã»ããŒãžäœæ ãžããããïŒ
| é ç® | å 容 |
|---|---|
| ãŽãŒã« | ncli ã§Notionã«ããŒãžã»ããŒã¿ããŒã¹ãäœæãããã¡ã€ã«ãã¢ããããŒããã |
| æèŠæé | çŽ25å |
| 䜿ãã¹ãã« | ncli (Notion CLI) |
| åææ¡ä»¶ | Lesson 12-3 å®äºïŒãã¡ã€ã«ååŸãã§ããç¶æ ïŒ |
ãã®ã»ãã·ã§ã³ã®æµã:
- ã·ã³ãã«ãªããŒãžäœæ
- æ¬æä»ãããŒãžäœæïŒãã€ãå ¥åïŒ
- ãã¡ã€ã«ã¢ããããŒã
- ããŒã¿ããŒã¹äœæ
- 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ãå®è¡ããããš:
-
ãŸãåè¬è ã«èŠªããŒãžã確èª:
- ãããŒãžãäœæããå ŽæïŒèŠªããŒãžïŒã®URLãæããŠãã ãããç¹ã«ãªããã°ã¯ãŒã¯ã¹ããŒã¹ã®ãããã¬ãã«ã«äœæããŸãããšæ¡å
-
ãã¹ãããŒãžãäœæ:
ncli page create --title "ncli ãã¹ãããŒãž" -
芪ããŒãžãæå®ããŠäœæããå Žå:
ncli page create --title "ncli ãã¹ãããŒãž" --parent <芪ããŒãžURL> -
äœæãããããŒãžã®æ å ±ã確èª:
- ããŒãžID
- ããŒãžURL
- äœææ¥æ
-
ãã©ãŠã¶ã§NotionãéããããŒãžãæ£ããäœæãããã確èªããããæ¡å ããã
æåŸ ãããçµæ: Notionã«æ°ããããŒãžãäœæããããã©ãŠã¶ã§ç¢ºèªã§ããã
ð Step 2: æ¬æä»ãããŒãžäœæïŒãã€ãå ¥åïŒ
AskQuestionã®èšå®äŸ:
{
"title": "ð Step 2: æ¬æä»ãããŒãžäœæ",
"questions": [{
"id": "step_action",
"prompt": "ãã®ã¹ããããã©ãããŸããïŒ",
"options": [
{"id": "practice", "label": "ãã®ãŸãŸé²ãã"},
{"id": "review", "label": "äŸã ã確èªãã"},
{"id": "skip", "label": "ã¹ããããã"}
]
}]
}
AIãå®è¡ããããš:
--bodyãªãã·ã§ã³ã§æ¬æä»ãããŒãžãäœæ:ncli page create --title "è°äºé²ãã³ãã¬ãŒã" --body "# äŒè°æŠèŠ
æ¥æ
- æ¥ä»: $(date +%Y-%m-%d)
åå è
- ïŒããã«èšå ¥ïŒ
è°é¡
- è°é¡1
- è°é¡2
決å®äºé
- ïŒããã«èšå ¥ïŒ
次ã®ã¢ã¯ã·ã§ã³
- ã¿ã¹ã¯1
- ã¿ã¹ã¯2"
- ãã€ãã䜿ã£ãå
¥åã詊ã:
echo "# ã¬ããŒãæ¬æ
ããã¯ãã€ãçµç±ã§å ¥åãããæ¬æã§ãã
ã»ã¯ã·ã§ã³1
ãã¹ãå 容ãèšèŒããŠããŸãã" | ncli page create --title "ãã€ãå ¥åãã¹ã" --body -
3. ãã¡ã€ã«ã®å
容ããã®ãŸãŸããŒãžã«æµã蟌ã:
```bash
cat README.md | ncli page create --title "READMEã³ããŒ" --body -
- äœæããããŒãžã
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ãå®è¡ããããš:
-
ãã¹ãçšãã¡ã€ã«ãæºåïŒãªããã°äœæïŒ:
echo "ããã¯ncliã¢ããããŒããã¹ãçšã®ãã¡ã€ã«ã§ãã" > output/test_upload.txt -
ãã¡ã€ã«ãNotionã«ã¢ããããŒã:
ncli file upload output/test_upload.txt -
ç»åãã¡ã€ã«ã®ã¢ããããŒãã詊ãïŒããã°ïŒ:
ncli file upload output/notion_auth_screenshot.png -
ã¢ããããŒãçµæã確èª:
- ã¢ããããŒãå ã®ããŒãž/ãããã¯æ å ±
- ãã¡ã€ã«URL
-
Notionãã©ãŠã¶ã§ã¢ããããŒãããããã¡ã€ã«ã衚瀺ãããã確èªããããæ¡å ã
æåŸ ãããçµæ: ãã¡ã€ã«ãNotionã«ã¢ããããŒãããããã©ãŠã¶ã§ç¢ºèªã§ããã
ð Step 4: ããŒã¿ããŒã¹äœæ
AskQuestionã®èšå®äŸ:
{
"title": "ð Step 4: ããŒã¿ããŒã¹äœæ",
"questions": [{
"id": "step_action",
"prompt": "ãã®ã¹ããããã©ãããŸããïŒ",
"options": [
{"id": "practice", "label": "ãã®ãŸãŸé²ãã"},
{"id": "review", "label": "äŸã ã確èªãã"},
{"id": "skip", "label": "ã¹ããããã"}
]
}]
}
AIãå®è¡ããããš:
-
ã¿ã¹ã¯ç®¡ççšããŒã¿ããŒã¹ãäœæ:
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=éçº,ãã¶ã€ã³,äŒç»,ããã¥ã¡ã³ã" -
äœæãããDBã®æ å ±ã確èª:
- ããŒã¿ããŒã¹ID
- ããŒã¿ããŒã¹URL
- ããããã£äžèЧ
-
ncli fetchã§ã¹ããŒãã確èª:ncli fetch <äœæãããDB-URL> -
åããããã£ãæ£ããäœæãããããããŒãã«åœ¢åŒã§è¡šç€ºãã:
ããããã£å å éžæè¢ 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ãå®è¡ããããš:
-
Step 4 ã§äœæããDBã«ã¿ã¹ã¯ã远å :
ncli page create --parent <DB-URL> \ --prop "Name=APIããã¥ã¡ã³ãäœæ" \ --prop "Status=Open" \ --prop "Priority=High" \ --prop "Category=ããã¥ã¡ã³ã" -
ããã«ã¿ã¹ã¯ã远å :
ncli page create --parent <DB-URL> \ --prop "Name=ãŠãŒã¶ãŒèªèšŒæ©èœå®è£ " \ --prop "Status=InProgress" \ --prop "Priority=High" \ --prop "Category=éçº" -
3ã€ç®ã®ã¿ã¹ã¯ã远å :
ncli page create --parent <DB-URL> \ --prop "Name=UIã¢ãã¯ã¢ããäœæ" \ --prop "Status=Open" \ --prop "Priority=Medium" \ --prop "Category=ãã¶ã€ã³" -
远å ããããšã³ããªã確èª:
ncli db query <DB-view-URL> -
çµæãããŒãã«åœ¢åŒã§è¡šç€ºããå šã¿ã¹ã¯ãæ£ãã远å ãããã確èªããã
æåŸ ãããçµæ: 3ä»¶ã®ã¿ã¹ã¯ãDBã«è¿œå ãããã¯ãšãªã§äžèŠ§è¡šç€ºã§ããã
â ïž ãããããã©ãã«ãšè§£æ±ºæ¹æ³
AskQuestionã®èšå®äŸ:
{
"title": "ãã©ãã«å
容ãéžæ",
"questions": [{
"id": "trouble",
"prompt": "åœãŠã¯ãŸãå
容ã1ã€éžãã§ãã ãã",
"options": [
{"id": "trouble_1", "label": "ããŒãžäœææã« Parent not found ãšã©ãŒ"},
{"id": "trouble_2", "label": "--body ã§æ¬æãæ£ããåæ ãããªã"},
{"id": "trouble_3", "label": "ãã¡ã€ã«ã¢ããããŒãã倱æãã"},
{"id": "trouble_4", "label": "DBäœææã«ããããã£ããšã©ãŒã«ãªã"}
]
}]
}
ãã©ãã«1: ããŒãžäœææã« Parent not found ãšã©ãŒ
åå : 芪ããŒãžã®URLãŸãã¯IDãééã£ãŠãã è§£æ±ºæ¹æ³:
以äžã確èªããŠãã ããïŒ
1. 芪ããŒãžã®URLããã©ãŠã¶ããçŽæ¥ã³ããŒãã
2. ncli fetch <芪ããŒãžURL> ã§èŠªããŒãžã«ã¢ã¯ã»ã¹ã§ããã確èª
3. --parent ãçç¥ããŠã¯ãŒã¯ã¹ããŒã¹ã®ãããã¬ãã«ã«äœæã詊ã
ãã©ãã«2: --body ã§æ¬æãæ£ããåæ ãããªã
åå : Markdownæ§æãNotionã®ãããã¯ã«å€æãããªãå Žåããã è§£æ±ºæ¹æ³:
以äžã詊ããŠãã ããïŒ
1. ã·ã³ãã«ãªããã¹ãã§è©ŠãïŒ# èŠåºãã- ãªã¹ã ã®ã¿ïŒ
2. ãã€ãå
¥åïŒecho "..." | ncli page create --body -ïŒã詊ã
3. é·æã®å Žåã¯ãã¡ã€ã«ã«ä¿åããŠãã cat file.md | ncli page create --body -
ãã©ãã«3: ãã¡ã€ã«ã¢ããããŒãã倱æãã
åå : ãã¡ã€ã«ãµã€ãºã倧ããããããŸãã¯ãã¡ã€ã«ãã¹ãééã£ãŠãã è§£æ±ºæ¹æ³:
以äžã確èªããŠãã ããïŒ
1. ãã¡ã€ã«ãã¹ãæ£ãããïŒls ã§ãã¡ã€ã«ã®ååšã確èªïŒ
2. ãã¡ã€ã«ãµã€ãºã5MB以äžã確èª
3. å°ããªããã¹ããã¡ã€ã«ã§è©ŠããŠã¿ã
ãã©ãã«4: DBäœææã«ããããã£ããšã©ãŒã«ãªã
åå : --prop ã®æ§æãééã£ãŠãã è§£æ±ºæ¹æ³:
--prop ã®æ£ããæ§æïŒ
- ã¿ã€ãã«: --prop "Name:title"
- ã»ã¬ã¯ã: --prop "Status:select=Option1,Option2"
- ãã«ãã»ã¬ã¯ã: --prop "Tags:multi_select=Tag1,Tag2"
- æ¥ä»: --prop "Date:date"
- æ°å€: --prop "Count:number"
ããããã£åã«ã¹ããŒã¹ãå«ãå Žåã¯ã¯ã©ãŒããŒã·ã§ã³ã§å²ãã§ãã ããã
â ãã§ãã¯ãã€ã³ã
-
ncli page createã§ããŒãžãäœæã§ãã -
--bodyãªãã·ã§ã³ã§æ¬æä»ãããŒãžãäœæã§ãã -
ncli file uploadã§ãã¡ã€ã«ãã¢ããããŒãã§ãã -
ncli db createã§ããããã£ä»ãDBãäœæã§ãã - DBã«ãšã³ããªïŒããŒãžïŒã远å ã§ãã
ð ææç©ãã¬ãã¥ãŒ
ãã®ã¬ãã¹ã³ã§åŸãããææç©:
| ææç© | 説æ |
|---|---|
| ncli ãã¹ãããŒãž | ã·ã³ãã«ãªããŒãžïŒã¿ã€ãã«ã®ã¿ïŒ |
| è°äºé²ãã³ãã¬ãŒã | æ¬æä»ãããŒãžïŒMarkdown圢åŒïŒ |
| ã¢ããããŒããã¡ã€ã« | Notionã«ã¢ããããŒãããããã¡ã€ã« |
| ã¿ã¹ã¯ç®¡çDB | 5ã€ã®ããããã£ãæã€ããŒã¿ããŒã¹ |
| ã¿ã¹ã¯ãšã³ã㪠3ä»¶ | DBã«è¿œå ããããµã³ãã«ã¿ã¹ã¯ |
â¡ïž 次ã®ã¹ããã
ããã§ããŒãžã»DBã»ãã¡ã€ã«ã®äœæã¯å®äºã§ããæ¬¡ã®ã¬ãã¹ã³ã§ã¯ãæ¢åã³ã³ãã³ãã®æžã蟌ã¿ãšæŽæ°ãåŠã³ãŸãã
AskQuestionã®èšå®äŸ:
{
"title": "次ã®ã¹ããããéžæ",
"questions": [{
"id": "next_step",
"prompt": "次ã«é²ãæäœãéžãã§ãã ãã",
"options": [
{"id": "next_auto", "label": "次ã®ã»ã¯ã·ã§ã³ãéå§ïŒ/next_lessonïŒ"},
{"id": "next_window", "label": "æ°ãããŠã£ã³ããŠã§éå§ïŒ/start-12-5ïŒ"},
{"id": "finish", "label": "ããã§çµäºãã"}
]
}]
}
éžæåŸã®æ¡å :
- next_auto â /next_lesson
- next_window â æ°ãããŠã£ã³ããŠã§ /start-12-5
- finish â çµäº
