Notionのデータベースを対象にしたローカルCLIツール集です。現在は3つの機能を提供します。
文章化された最終ガイド/テンプレは ChatGPT で作成・更新する方針です(OpenAI APIキー不要)。
diary_summary: 日記DBを期間指定で抽出し、要約Markdownを生成article_corpus: note記事DBから本文を抽出し、記事コーパスを生成style_blueprint: 記事コーパスを解析し、article_report/style_profile を生成
- Python 3.x
requests
- 依存関係をインストール
pip install requests- 環境変数または
.envを用意
NOTION_TOKEN=secret_xxx
NOTION_DATABASE_ID=xxxx
NOTION_DATABASE_ID_ARTICLES=yyyy
# 任意(diary_summaryのopenaiモードのみ)
SUMMARY_API_KEY=yyyyNotionの日記DBから期間指定で抽出し、Markdownで要約を保存します。
python -m diary_summary --start 2026-01-01 --end 2026-01-31 --out ./out_diaries--out を省略した場合は ./out_diaries が既定です。
Tag指定(OR検索):
python -m diary_summary --start 2026-01-01 --end 2026-01-31 --out ./out_diaries --tags 仕事,旅行out_diaries/summary_YYYY-MM-DD_to_YYYY-MM-DD.md(既定)
# Diary Summary (YYYY-MM-DD to YYYY-MM-DD)
## Overall
- 期間: YYYY-MM-DD to YYYY-MM-DD
- Tag: Tag1, Tag2
- 件数: 0
## Daily Notes (compressed)
### YYYY-MM-DD — Title
- Tags: Tag1, Tag2
- Summary:
- Body:diary_summary/summarizer.py の Summarizer を実装して差し替え可能です。
OpenAIを使う場合:
python -m diary_summary --start 2026-01-01 --end 2026-01-31 --out ./out_diaries --summarizer openaiSUMMARY_API_KEY が必要です。
Notionのnote記事DBから本文をMarkdownで抽出し、1記事=1ファイルで保存します。
python -m article_corpus --start 2026-01-01 --end 2026-03-31 --types 育児 --out ./out_articles--out を省略した場合は ./out_articles が既定です。
既存ファイルをスキップ:
python -m article_corpus --start 2026-01-01 --end 2026-03-31 --types 育児 --out ./out_articles --skip-existingindex.jsonl をこの実行分だけで再生成する場合:
python -m article_corpus --start 2026-01-01 --end 2026-03-31 --types 育児 --out ./out_articles --rebuild-indexout_articles/
articles/
YYYY-MM-DD_<slugified_title>.md
index.jsonl
記事ファイルの先頭にYAMLメタデータが付きます。
記事コーパスを解析して、article_report と style_profile を生成します。
python -m style_blueprint --in ./out_articles/articles --out ./out_articles/stylearticle_report.csvarticle_report.jsonlstyle_profile.json
--write-back を付けるとYAMLに tone と article_kind を追記します。
noteに投稿済みの記事がNotionの記事DBに揃っている前提で、Notionの記事DBから記事コーパスを生成します。
python -m article_corpus --start YYYY-MM-DD --end YYYY-MM-DD --types 育児 --out ./out_articles既存ファイルをスキップする場合:
python -m article_corpus --start YYYY-MM-DD --end YYYY-MM-DD --types 育児 --out ./out_articles --skip-existingPhase 1 の記事コーパスが揃っている前提で、解析レポートと集計(材料)を生成します。
python -m style_blueprint --in ./out_articles/articles --out ./out_articles/style出力(材料):
out_articles/style/article_report.csvout_articles/style/article_report.jsonlout_articles/style/style_profile.json
次に、これらの材料を Project の情報源(Files)に追加し、ChatGPT に最終版の
style_guide_final.md / blueprints_final.md / do_dont_final.md を生成・更新してもらいます。
Projectの情報源にある最新の
- article_report.csv
- style_profile.json
- all_articles.md
を前提に、今後の記事作成のための最終成果物を作ってください。
方針:
- 地の文は必ず「です・ます」の丁寧口調で統一します(だ・であるは使いません)。
- 会話のセリフ(「」内)は口語のままでOKです。
依頼:
1) style_guide_final.md を作ってください(あなた専用の文体・構成ガイド)。
2) blueprints_final.md を作ってください(イベント型/定期振り返り型の2種類)。
3) 任意で do_dont_final.md を作ってください(混在防止、ノイズ除外、運用メモ)。
出力は、それぞれ「そのままファイル保存できるMarkdown全文」でください。
- docs/chatgpt/ガイド更新用指示プロンプト.md を使用
- 変更点サマリ(diff要約)として
change_summary.mdを生成
Phase 2 の成果物が揃っている前提です。現在は後回しです。
- 参照(過去記事)は基本「手動」:必要なら
all_articles.mdをChatGPTに添付 - 本格的な自動検索(RAG)は、必要性が出たタイミングで導入
Phase 2 の最終版ガイドが揃っている前提で、日記から記事ドラフトを作成します。
- Notionの日記DBから、対象期間の日記を抽出(ツール)
python -m diary_summary --start 2026-01-01 --end 2026-01-31 --out ./out_diaries- ChatGPT(Project内チャット)に、抽出した日記Markdownを添付してドラフト生成(手動)
- 添付:
./out_diariesの生成物(期間の日記まとめmd) - 参照:Project の情報源(上記 final 3ファイル)
目的:添付の日記(指定期間)からnote記事ドラフト(Markdown)を作成してください。
必須遵守:Project情報源の style_guide_final.md / blueprints_final.md / do_dont_final.md
要件:
1) この期間がイベント型(A)か定期振り返り(B/B2)か判断し、「採用Blueprint:A/B/B2(理由一言)」を1行で宣言。
2) Blueprintに従って本文をMarkdownで生成(冒頭に対象期間+テーマ、必要なら目次、章立て、余韻のある締め)。
3) 本文の後ろに区切って「制作メモ(非公開)」として出典(日付+キーワード/タグ)を箇条書きで付ける。
出力:記事本文(Markdown)+制作メモのみ。余計な解説は不要。
- 必要に応じて、同じチャットで追記・修正依頼(手動)
- 例:「この段落を短く」「見出しを増やす」「エピソード順を入れ替える」など