Skip to content

feat: gen_weekly を LLM ベースで復活(期間限定メニュー対応)#34

Open
whywaita wants to merge 1 commit into
masterfrom
feat/revive-gen-weekly
Open

feat: gen_weekly を LLM ベースで復活(期間限定メニュー対応)#34
whywaita wants to merge 1 commit into
masterfrom
feat/revive-gen-weekly

Conversation

@whywaita

Copy link
Copy Markdown
Member

概要

  • Twitter API 有料化(2023-07)以降停止し chore: gen_weekly と post.yaml を削除 #33 で削除した gen_weekly を、LLM ベースで再実装する
  • 週替わり定食に加え、冷やし中華などの期間限定メニュー告知にも対応する
  • 自動実行は OpenCode Go サブスクリプション(opencode CLI)で行う

変更点

  • gen_weekly/: weekly.csv / limited.csv へ検証付きで追記する Go CLI(標準ライブラリのみ)
    • weekly サブコマンド: 月曜日チェック、YYYYMMDD09/15 の ID 自動生成、9番なしの週(2026-01〜03 に実績あり)にも対応
    • limited サブコマンド: 同一開始日内の連番 ID 生成、同名・同開始日の重複は skip
    • 登録済みデータは skip して正常終了するため再実行は安全。テスト 15 ケース付き
  • .opencode/command/gen-menu.md: ツイート取得(nitter + headed ブラウザ)と画像読み取り(マルチモーダル、OCR 不要)の手順書。.claude/commands/gen-menu.md はこれを参照する Claude Code 用ラッパー
  • .github/workflows/post.yaml: 毎週月曜 13:00 JST に opencode run で手順書を実行し、変更があれば PR を作成
  • .github/workflows/ci.yaml: actionlint + gen_weekly の go vet / go test
  • AGENTS.md: 現状の構成に合わせて更新

テスト方法

go -C gen_weekly test ./...

CLI 単体は実データのコピーに対して動作確認済み(新規追記・既存 skip・連番付与)。workflow は merge 後に workflow_dispatch で手動実行して確認する。

備考

  • merge 前に secret OPENCODE_API_KEY(OpenCode Go / Zen、https://opencode.ai/auth で発行)の登録が必要
  • モデルはリポジトリ変数 OPENCODE_MODEL で変更可能(デフォルト opencode/kimi-k2.6)。貼り紙画像を読むため vision 対応モデルであること
  • CI 上での nitter アクセス(Anubis 対策の xvfb + headed ブラウザ)は未検証。初回は workflow_dispatch での実行を推奨
  • 旧 post.yaml にあった更新告知ツイートは書き込みにも有料 API が必要なため非搭載。代わりに PR 作成で通知する

旧 gen_weekly(Twitter API + Cloud Vision OCR、2023-07 の API 有料化で
停止)を LLM ベースで再実装する。

- gen_weekly/: weekly.csv / limited.csv へ検証付きで追記する Go CLI
  (月曜チェック・価格検証・重複 skip。テスト付き)
- .opencode/command/gen-menu.md: ツイート取得と画像読み取りの手順書。
  週替わり定食に加え、冷やし中華などの期間限定メニュー告知にも対応。
  .claude/commands/gen-menu.md は Claude Code 用の薄いラッパー
- .github/workflows/post.yaml: 毎週月曜 13:00 JST に opencode
  (OpenCode Go、secret OPENCODE_API_KEY)で実行し、変更があれば PR 作成
- .github/workflows/ci.yaml: actionlint + go vet / go test

prompt: 以前合った gen_weekly を復活させたい。gen_weeklyは週代わりだけだったが、冷やし中華など固定(期間限定)メニューもツイートで告知されたりするので、それも対応できるようにしておいてほしい
----
旧実装は Twitter API 依存のため復活不可。LLM ベースの三層構成(CSV 追記用 Go CLI / gen-menu 手順書 / 週次 workflow)で再構築。limited サブコマンドで期間限定メニューに対応し、TDD でテスト 15 ケースを整備した。
----
prompt: OpenCode GoのSubscriptionを使いたいから、opencodeベースで実装して
----
post.yaml を opencode run ベースに変更(OPENCODE_API_KEY、モデルはリポジトリ変数 OPENCODE_MODEL で変更可、デフォルト opencode/kimi-k2.6)。手順書を .opencode/command/ に移し、Claude Code 用ラッパーを残して単一ソース化した。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant