新機能を1本ずつ記事化する日次編集タスクへ育てる
Hermes Agentの実践記録を毎日ブログ化していると、単なる日報の要約では読者が再現しにくくなる。特に、同じ日に複数の機能が進んだ場合、まとめ記事へ押し込むと「どの入力で、どの処理をして、何を確認したのか」がぼやける。そこで今回は、日次編集タスクのプロンプトを、未記事化の新機能を検出し、1機能1記事で下書き化する運用へ寄せた。
実際に行ったことと確認結果
手元の実装では、ブログ化用のcronプロンプトに、直近の記録ノートだけでなくプロジェクト側のREADME、実装ファイル、テスト、更新日時も毎回確認する条件を追加した。日次ノートに明示されていなくても、Hermes Agent向けの新機能が実装され、登録または配置され、テスト・ドライラン・実動作のいずれかで確認できれば候補から外さない方針である。
同時に、「1機能1記事の原則」を独立した節として定義した。目的、入力、処理、出力、確認方法が異なる機能は総まとめにせず、1回のcron実行では最大1本だけ作る。未記事化候補が複数ある場合は、実装と検証が最も進んだものを優先し、残りは翌日以降の探索で拾う。
確認として、プロンプトの重要条件を単体テストで固定した。`python -m unittest tests.test_blog_cron_prompt -v` を実行し、「新規実装され、動作確認まで完了した機能」「1機能1記事の原則」「未記事化の新機能が複数ある場合」「日次ノートに記載がなくても」といった文言が存在することを確認した。テスト結果は1件成功だった。
仕組みの流れ
この日次編集タスクは、次の順番で判断する。
1. Asia/Tokyo基準で、実行日前日から直近14日分の記録を古い順に読む。
2. プロジェクト内のREADME、実装、テスト、更新日時を確認する。
3. 候補を「完了」「進行中」「構想」に分け、未着手の希望や録音メモだけの内容を除外する。
4. Blog用Vaultの既存記事一覧を公式Obsidian CLIで取得し、タイトル、slug、本文、initiative_keyを重複確認する。
5. 未記事化の候補が複数あれば、機能単位で最も再現しやすいものを1本だけ選ぶ。
6. 匿名化したMarkdownを公式Obsidian CLIのcreateで保存し、同じCLIのreadで読み戻す。
ポイントは、記事作成を「日付単位」ではなく「機能単位」にしたことだ。これにより、小さなMCPツール、cron、復旧策、CLIスクリプトも、それぞれ再現手順を持つ独立記事として扱える。
再現手順
まず、日次実行する編集タスクのプロンプトに探索範囲を明記する。
“`text
– /path/to/knowledge/YYYY-MM-DD.md を直近14日分確認する
– /path/to/project のREADME、実装ファイル、テスト、更新日時を確認する
– Blog用Vaultの既存記事を公式CLIで一覧・読み取りする
“`
次に、候補条件を完了証拠へ寄せる。
“`text
候補にする: 実装、登録または配置、テスト・ドライラン・実動作の証拠があるもの
候補にしない: 希望、構想、未着手Todoだけのもの
“`
最後に、プロンプト自体をテストする。LLMの出力品質は完全には単体テストできないが、重要な運用ルールが消えていないことは確認できる。
“`bash
python -m unittest tests.test_blog_cron_prompt -v
“`
失敗しやすい点と安全策
一番失敗しやすいのは、作業ログの量に引っ張られて総まとめ記事を作ってしまうことだ。これを避けるため、initiative_keyを機能単位で一意にし、複数候補を同じkeyへ混ぜないルールにした。
また、記事化タスクは公開前の素材を扱うため、実名、メール、絶対パス、内部URL、ID、トークンを本文へ残さない。Vaultへの保存は公式Obsidian CLIだけに限定し、CLIが失敗した場合は直接ファイル書き込みで代替しない。未完了事項として、候補の優先順位は今後の運用で調整が必要である。たとえば、障害復旧記事と新機能記事が同時に見つかった場合、読者の再現性と重複の少なさを見て選ぶ。
再現チェックリスト
- [ ] 記録ノートとプロジェクト実装の両方を確認している。
- [ ] 実装・配置・検証の証拠がない構想を候補から外している。
- [ ] 1機能1記事で、複数機能を総まとめにしていない。
- [ ] 既存記事のtitle、slug、本文、initiative_keyを重複確認している。
- [ ] Obsidian CLIでcreateし、同じCLIでreadして検証している。
- [ ] プロンプトの必須条件を単体テストで固定している。
公式一次情報
- [Hermes Agent Scheduled Tasks (Cron)](https://hermes-agent.nousresearch.com/docs/user-guide/features/cron)
- [Obsidian Command line interface](https://help.obsidian.md/Plugins/Command+line+interface)
- [WordPress REST API Handbook](https://developer.wordpress.org/rest-api/)
