ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
毎日AIニュースを収集し、要約をLINEに配信する。生成したデータは静的サイト(history/配下)としても閲覧できる。 • launchdジョブ名: com.motoki.ainews.daily • 実行時刻: 毎日 7:00(JST) • 起動スクリプト: scripts/daily_news.sh • claude -p でプロンプト(scripts/daily_news_prompt.txt)を実行し、結果を SUMMARY: 行から抜き出してmacOS通知(osascript)を出す • 生成データは generate_daily_data.py / generate_reports_data.py で history/ 用のJSONに変換される(レポート全文は history/reports/ .json に1本ずつ書き出し、ページはタップされた分だけを取りに行く) • ログ出力先: logs/daily_news.log(標準出力)/ logs/daily_news.err.log(標準エラー)檢視完整 README ↗
毎日AIニュースを収集し、要約をLINEに配信する。生成したデータは静的サイト(history/配下)としても閲覧できる。
com.motoki.ainews.dailyscripts/daily_news.sh
codex exec でプロンプト(scripts/daily_news_prompt.codex.txt)を実行し、Codex CLIの利用上限メッセージを検出した場合、または実行に失敗した場合は claude -p と scripts/daily_news_prompt.txt へ切り替える。結果を SUMMARY: 行から抜き出してmacOS通知(osascript)を出すgenerate_daily_data.py / generate_reports_data.py で history/ 用のJSONに変換される(レポート全文は history/reports/<ID>.json に1本ずつ書き出し、ページはタップされた分だけを取りに行く)logs/daily_news.log(標準出力)/ logs/daily_news.err.log(標準エラー)手動実行:
bash scripts/daily_news.sh
com.motoki.ainews.analyticsdata/analytics/vercel_web_analytics_hourly.csv(ローカルのみ。.gitignore対象)。取得失敗日の再試行情報も同じフォルダの .pending.json に保存するvercel loginで再ログインする手動確認:
python3 scripts/collect_vercel_analytics.py
--date YYYY-MM-DDを付けると、その日だけを指定して取得できます。Vercelの無料枠で確認できる期間を超えた日付は取得できないため、長期保存したい場合は毎日の自動実行を止めないでください。API取得に失敗した日付はCSVへ書き込まれず、次回実行時に再試行されます。
このリポジトリの .claude/settings.local.json(gitignore対象)に LINE_CHANNEL_ACCESS_TOKEN を保管している。値そのものはこのREADMEには書かない。
このリポジトリはLINE通知の実行元であると同時に、line_calendar_bot と diary_video_digest の双方から参照されるハブになっている。
everyday_news/<YYYYMM>.md は line_calendar_bot から raw.githubusercontent.com/motoki4869/ai_news/main/everyday_news/<YYYYMM>.md 経由で実行時に取得されている。そのため以下は本番障害に直結するため行わない。
isPrivate: false)everyday_news/ の配置・ファイル形式の変更everyday_news/ — 月別ニュース記録(line_calendar_bot が参照)history/ — 日次ニュースの静的サイト(daily.html 等)report/ — テーマ別の考察レポート(Markdown、ファイル名は YYYY-MM-DD_タイトル.md)docs/glossary.md — 用語集の原本。scripts/generate_glossary_data.py で history/glossary-data.js を生成し history/glossary.html が読む。生成物とHTMLを直接編集せず、必ずこの原本を編集するscripts/ — 収集・生成スクリプト一式.claude/skills/ — format-report / sync-news-html スキル.claude/hooks/line_notify.sh — Write/EditフックでLINE通知を送るフック日次ニュースの更新に成功すると、専用NotebookLMノートブックへ当日分のニュースセクションだけを渡して日本語の音声概要を生成します。NotebookLMが付けた音声タイトルとともに history/daily.html の日付選択画面から再生できます。
音声は1本10〜40MBあり、Gitに入れるとリポジトリが月1GB近く肥大化する(Gitは過去コミットのblobを保持し続けるため後から消しても縮まない)。またGitHub Pagesの公開サイズ上限1GBにも1ヶ月ほどで達する。そのため音声本体はGit管理せず、GitHub Releases(タグ audio)のアセットとして配信する。リリースアセットはリポジトリサイズにカウントされない。
https://github.com/motoki4869/ai_news/releases/download/audio/YYYY-MM-DD.m4ahistory/audio-data.js(再生メタデータ)と history/audio-titles.json(タイトル)history/audio/ は .gitignore 対象の一時置き場。リリースへのアップロードを確認できた音声はローカルから毎回削除する(本体はリリース側に残るので聴取に支障はない)audio リリース自体は初回セットアップ時に一度だけ手動で作成しておく必要がある(gh release create audio --repo motoki4869/ai_news --title "AIニュース音声" など)。daily_news.sh は既存リリースへのアップロード・アセット一覧取得のみを行い、リリース自体は作成しないAUDIO_REPO/AUDIO_RELEASE_TAG 環境変数でリポジトリ・タグ名を変更できるが、history/daily.html の AUDIO_SRC_RE(再生を許可するURLの固定パターン)は motoki4869/ai_news + audio タグ決め打ちなので、変更する場合は両方を合わせて直すこと初回だけ、scripts/notebooklm_audio.env.example を scripts/notebooklm_audio.env にコピーし、NOTEBOOKLM_NOTEBOOK_ID に「AIニュース音声」用ノートブックのIDを設定してください。NotebookLM Tools CLI (nlm) のログイン状態と、gh の認証(repo スコープ)も必要です。
cp scripts/notebooklm_audio.env.example scripts/notebooklm_audio.env
# scripts/notebooklm_audio.env のNOTEBOOKLM_NOTEBOOK_IDを編集
nlm login --check
gh auth status
launchdは .zshrc を読まないためPATHが /usr/bin:/bin:/usr/sbin:/sbin に限られ、python3 はmacOS標準の3.9系に解決される。スクリプト側は PYTHON_BIN / GH_BIN で実行ファイルを明示的に解決し、generate_audio_data.py は from __future__ import annotations で3.9でも動くようにしてある。Pythonスクリプトに3.10以降の記法を足す場合はこの制約に注意すること(手動実行ではHomebrewの新しいPythonが使われるため気づけない)。
音声生成は時間がかかる場合があります。NotebookLMの認証・通信・生成に失敗しても、ニュース更新自体は成功扱いで継続します。手動で試す場合は bash scripts/generate_notebooklm_audio.sh YYYY-MM-DD を実行してください。