コンテンツにスキップ

Programmer Agent Memory

📁 docs/agent_memory.md

プロジェクト固有のパターン

認証情報の読み込みパターン

  • Credentials/ ディレクトリは D:/Kazuma_Teramachi/MyLab/Credentials/ に集約
  • Pathは Path(__file__).parent... で相対的に解決する
  • JSON形式: {"api_key": "...", "created_at": "YYYY-MM-DD", "description": "..."}

posts_output/ のMDフォーマット

  • --- 区切り線以降が投稿本文
  • メタデータ: テーマ・タイプ・モデル・生成日時
  • generate_posts.py で生成(Ollama/Gemini API両対応)

affiliate-agent-teams の成果物配置

  • レポート: projects/affiliate-agent-teams/reports/implementation/
  • スケジューラ状態: projects/affiliate-agent-teams/reports/implementation/state.json

主要スクリプト

generate_posts.py

  • パス: projects/adult-affiliate-x/generate_posts.py
  • 機能: Ollama/Gemini API でX投稿文を生成してday01.md〜に保存
  • CREDENTIALS_PATH: Credentials/gemini_api.json

scheduler.py

  • パス: projects/affiliate-agent-teams/reports/implementation/scheduler.py
  • 機能: 1日3投稿(7:00/12:00/21:00 JST)のキュー管理・投稿
  • API: Buffer または tweepy(--api引数で切り替え)
  • --dry-run オプション対応
  • state.json で重複防止・進行管理

zenn-likes-digest の構成

  • パス: projects/zenn-likes-digest/
  • 機能: Zennいいね記事 → Gemini要約 → Obsidian保存 + Discord通知
  • zenn_fetcher.py: Zenn公開API方式に変更済み(旧: Playwright スクレイピング)
  • API: GET https://zenn.dev/api/articles?liked_by={username}&count=48&order=liked_at&page={n}
  • ログイン不要、playwright不要
  • 問題の原因: 旧スクレイパーが /dashboard/library のスクロールを認識できず常に16件固定で停止していた(実際は480件超)
  • config zenn.default_limit: 20 で初回移行時のGeminiコストを制限できる
  • 状態管理: state/processed_articles.json(処理済みURL保存)

techblog-collector の構成

  • パス: projects/techblog-collector/
  • 機能: 12社テックブログのRSS収集 → Gemini要約 → Obsidian保存
  • 保存先: vault/Resources/TechBlogs/{company}/{YYYYMM}/{YYYYMMDD}_{title}.md
  • 状態管理: data/processed.json(プロジェクト相対パス、StateManager で管理)
  • 認証: Credentials/vertex_ai_config.json(vertex_ai / api_key 両対応)
  • summarizer.py は zenn-likes-digest から _load_genai_client をそのままコピーし、company/tech_stack/difficulty フィールドを追加

task_sync の構成

  • パス: scripts/task_sync/
  • 機能: Google Tasks ↔ GitHub Issues 双方向同期
  • OAuth認証: projects/project-manager/src/auth.pyget_oauth_credentials を再利用
  • import方法: sys.path.insert(0, str(_MYLAB_ROOT / "projects" / "project-manager"))
  • 状態管理: scripts/task_sync/data/sync_state.json
  • 認証情報: Credentials/google/oauth_client_secret.json, Credentials/task_sync_oauth_token.json
  • 実行: python -m scripts.task_sync.main sync [--dry-run]
  • gh CLI環境変数: GH_CONFIG_DIR="/c/Users/kazuma/AppData/Roaming/GitHub CLI" 必須
  • sync_labels (config.yaml): ["now", "task-sync"] が付いたIssueのみ同期対象

Windowsタスクスケジューラ設定

  • PowerShell で Register-ScheduledTask を使う
  • バッチファイル経由が最も確実
  • 投稿10分前(6:50/11:50/20:50)にスケジューラを起動する設計が安全