audio-notes

audio-notes — エージェント向け作業手順

これはClaude Codeが従う指示書です。プロジェクトの概要・背景・人間向けの使い方は README.md にあります。

このリポジトリには性質の異なる2種類の作業がある。「音声原稿(ノート)を作る」(下記セクション)と「リポジトリ自体のファイルを編集する」(コード・設定を変更するときの開発ルールセクション)は手順もルールも別物なので、混同しないこと。

「〇〇について調査してください」と頼まれたときの手順(音声原稿の作成・公開)

これがこのリポジトリでの標準タスクです。以下を順番に、断りなく最後まで実行してください(途中で確認を挟む必要はありません)。

  1. 調査してMarkdown原稿を作ります topic-to-audio-script スキルの指示に従い、指定されたトピックを調査し、音声読み上げ用に最適化したMarkdown原稿を作成します。
    • ファイル名は英数字とハイフンのスラグにします(例: oku-no-hosomichi.md)。日本語のトピック名からローマ字化します。
    • notes/ ディレクトリの直下に保存します(リポジトリのルート直下には置きません)。ノートが増えるたびにリポジトリのルートが散らかるのを防ぐためです。
    • 既存のノートを読み直したり、リポジトリ内の他のファイルを調べ回ったりしません。 過去のノートは今回のタスクと無関係なので、コンテキストに含めません。
  2. MarkdownをHTMLに変換します(スクリプトに任せる)
    python3 build_note.py <ファイル名>.md
    
    • <ファイル名>.md は notes/ ディレクトリの直下にあるものとして指定します(notes/ というプレフィックスは付けません)。スクリプトが自動的に notes/ 配下を読み書きします。
    • ページのタイトルは原稿冒頭の # 見出し がそのまま使われます。 タイトルを別途渡す引数はありません。タイトルの決め方は topic-to-audio-script スキルが定めているので、このファイルには書きません。原稿が # 見出し で始まっていない場合、スクリプトはエラーで停止します。
    • pandoc が入っていなければ apt-get install -y pandoc(または環境に応じた方法)でインストールします。
    • HTMLは自分で組み立てず、必ずこのスクリプト経由で生成します。 手書きのHTMLでは、Edgeの読み上げが確実に動く形式を再現できません。その形式がなぜこうなっているかは、README.mdの「なぜこの構成なのか」に書いてあります。note-template.html を変更する場合は、先にそちらを読んでください。
  3. コミットしてmainへ直接pushします 生成された notes/<ファイル名>.md と notes/<ファイル名>.html の両方を git add → git commit → git push で、ブランチを切らず、PRも作らずに main ブランチへ直接pushします。これは下記「コード・設定を変更するときの開発ルール」のPR必須ルールの対象外となる、この手順専用の例外運用です。

  4. 公開URLを組み立てます push後、以下の形でGitHub Pagesに公開されます(反映まで数十秒〜1分ほどかかることがあります)。
    https://soh-arch.github.io/audio-notes/notes/<ファイル名>.html
    
  5. SlackにURLを投稿します 投稿先チャンネルは環境変数 AUDIO_NOTES_SLACK_CHANNEL_ID の値に従います。この値はワークスペース固有の情報のため、公開リポジトリのどのファイルにもコミットせず、実行環境(セッション/CI)の環境変数として渡します。 このセッションで使えるSlack向けのツール・連携(Slack MCP、Incoming Webhookなど、環境にあるもの)を使って、そのチャンネルへ上記URLを短いメッセージと共に投稿します。例:「『<原稿冒頭の見出し>』を公開しました: 」
    • AUDIO_NOTES_SLACK_CHANNEL_ID が設定されていない、または使えるSlack手段が見当たらない場合は、その旨と生成済みのURLを最終応答にはっきり書き、投稿だけは諦めます。
  6. 最終応答の前に、Slack投稿を済ませたか自分でチェックします GitHub Pagesの反映待ち(手順4)に気を取られて、そのままSlack投稿(手順5)を忘れて完了報告してしまうことがあります。最終応答を返す前に、Slack投稿ツールを実際に呼び出し、その実行結果(投稿されたメッセージへのリンクなど)を得られているかを必ず確認します。確認できていなければ、応答を終える前に手順5を実行します。

コード・設定を変更するときの開発ルール(リポジトリ自体のファイル編集)

これは上記の「音声原稿の作成・公開」手順(1〜6)とは別物のルールである。build_note.py や note-template.html、CLAUDE.md、.claude/ 配下のスキルなど、音声原稿そのものではなくリポジトリ自体のコードや設定を変更する場合にのみ、以下に従う。