プログラムファイル ドキュメント管理

本ページは、「0001 DSニュース(G)」フォルダ等のデータソースを処理してNotion記事を生成するために作成されたプログラムファイル(スクリプト・自動化ツール等)を一覧化し、処理内容をMarkdown形式で記録するためのページである。

文書管理

目的

Google Drive「0001 DSニュース(G)」フォルダをデータソースとして利用する各種プログラム(候補収集・一次情報確認・記事生成・Notion登録などの自動化スクリプト、例:103 Playwrightフォルダ内の自動化ツール等)について、作成目的・処理ロジック・入出力・実行方法をドキュメント化し、後から参照・引き継ぎできるようにする。

記録項目(プログラムごと)

各プログラムについて、以下の項目を記載する。

  • プログラム名
  • 保存場所(Driveパス/リポジトリ等)
  • 作成日
  • 目的・概要
  • 入力データソース
  • 出力先(Notionデータベース等)
  • 処理ロジックの概要
  • 実行方法・依存関係
  • 既知の制限・注意点

登録済みプログラム一覧

1. カテゴリー子ページ一括複製コマンド

  • 作成日:2026年7月23日
  • 目的:「子ページDB」(電力シェアリングNews配下、data source collection://39bfc7a2-1e65-8027-822b-000ba8fa7ccd)内の既存カテゴリーページ(Tier100レベル)を雛型として、同じレイアウト(解説・注目記事・カテゴリーのインラインDB構造)を持つ子カテゴリー(Tier110レベル)ページを複数作成する。
  • 入力:雛型ページID、作成する子ページのリスト(名前とTier110順位)、共通Tier100値
  • 出力:新規作成された子ページID・URL一覧
  • 処理ロジック
  • 実行例:「取引」(Tier100=290、カテゴリーTier#=100、ページID 3a3fc7a2-1e65-8169-aa9d-eaa4fd02cca8)を雛型に、10件の子ページを作成済み(スポット市場=100、電力先物取引市場=200、長期脱炭素電源オークション=300、容量市場=400、需給調整市場=500、中長期市場=600、民間取引=700、FIT・FIP=800、非化石価値取引=900、GX-ETS=1000)。
  • 既知の制限・注意点
    • 複製は非同期処理なので、ページ内容(インラインDB群)の反映に数秒遵れる場合がある。プロパティ自体は直後の update_properties で問題なく反映されることを確認済み。
    • 同一タイトルのページが複数存在する場合があるため、雛型ページを指定する際はTier100/カテゴリーTier#などのプロパティ値で一意に特定してから実行すること。
    • 入力リストの件数・統合ルール(例:同一分類内の副コードは一本化するなど)は作成前に人間と确認する。

2. 子ページのカテゴリーフィルター一括更新コマンド

  • 作成日:2026年7月23日
  • 目的:上記「1. カテゴリー子ページ一括複製コマンド」で作成した各子ページには、4つの埋め込みギャラリービュー(「カテゴリー別」「選択する」「最新ニュース」「解説(内部名は「全体」)」)があり、いずれも「新定数タグ」が親カテゴリー名(例:取引)のままになっている。このコマンドは各ビューのフィルターを子カテゴリー名(例:スポット市場)に一括置換する。
  • 手順
    1. 対象ページをfetchし、content内の4つの<database url="...">(上段左・下段左・解説)のIDを取得する(上段右の「全体」タグ一覧DBと、解説下の「注目記事」「カテゴリー」DBは変更対象外)。
    2. 各database IDをfetchすると、埋め込み記事本文を全件含むため必ず文字数上限エラーになり、結果が一時ファイルに保存される。この保存ファイルを正規表現 view://[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12} でgrepし、そのdatabaseに紐づくview IDを得る(選択する/最新ニュースDBは、2つviewがひっかかることがある)。
    3. 各view IDに対して notion-update-viewconfigure: 'FILTER "新定数タグ" CONTAINS "<子カテゴリー名>"' で実行する。
  • 重要な制約事項(必ず事前に確認)
    • notion-update-viewconfigureにFILTERを指定すると、そのviewのadvancedFilter全体が指定内容で上書きされる(部分更新ではなく完全置換)。既存の他の条件(日付相対条件や記事ランク条件等)を残したい場合は、FILTER文に全条件をANDで書き並べる必要がある。
    • DSLは「作成日時が過去2週間以内」のような相対日付条件(date_is_relative_to)を表現する構文が見つからず(ISEMPTY/NOT EMPTYとのみ組合さる)、現状API経由での再現は不可。日付絞り込みが必要な場合はNotion UI上で手動追加が必要。
    • タグの複数値OR検索(例:旧「取引」ページの「選択する」ビューにあった「タグが約50個の細分化カテゴリのいずれかを含む」条件)は、"タグ" CONTAINS "X" OR "タグ" CONTAINS "Y" ...と一つずつORで書く必要があり、IN/ANY構文は使えない。
    • viewの現在の定義を安全に確認したい場合は、notion-update-viewconfigureを付けずnameだけ(現在と同じ名前)を渡すと、フィルタを変更せずにコンパクトな現在定義JSONが戻る(fetchでは埋め込み記事全件が含まれ巨大になるため不向き)。
  • 実行例:10市場(スポット市場〜 GX-ETS)各々のカテゴリー別/選択する/最新ニュース/解説の計目定を、日付条件と旧タグリストを削除して新定数タグのみの単一条件に簡略化した上で実行済み(ユーザー指示により日付・その他制限は手作業で別途追加)。

変更履歴

  • 1.0(2026年7月23日):ページ新設。