ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 を実行してください。