Dev Intel: instruction rehydration pipeline
AGENTS.md/CLAUDE.md/Skills/Hooksを、静的ファイルではなくライフサイクル別に再注入する設計として整理したメモ。
Generated: 2026-05-22T09:07:45+09:00
Lane: 開発ネタ発掘
Why this is useful: 健人くんのOpenClaw/ひめのは、長いAGENTS.mdを増やすより「必要なルールを必要なタイミングで再注入する」設計に寄せた方が、context肥大と方針ズレを同時に減らせる。
What I made/changed: Codex issue / Zenn記事を1本の判断材料に圧縮し、AGENTS/CLAUDE/Skills/Hooksを「静的ファイル」ではなく instruction rehydration pipeline として扱う提案にした。Viewも作る。
Sources/Evidence:
- https://github.com/openai/codex/issues/6038
- https://github.com/openai/codex/issues/17148
- https://zenn.dev/haboshi/articles/agentsmd-source-of-truth?locale=en
- https://zenn.dev/aka2tom8bo/articles/20260215-claude-hooks-agents-md?locale=en
Harness component: heartbeat_dev_intel
Failure category: context_drift / instruction_bloat
Gate owner_value_gate: pass — 健人くんが明示的に欲しがっている agentic coding / Codex / OpenClaw 開発ネタで、すぐ試せる設計差分がある。
Gate external_action_gate: pass — read-only調査とworkspace内artifact作成のみ。外部投稿・送信なし。
Gate view_source_gate: pass — 外部source URLをartifact本文に残した。
Gate handoff_state_gate: pass — 次の安全な一手と検証観点を明記した。
Prediction: AGENTS.mdを巨大化する代わりに instruction_manifest + lifecycle rehydration に分けると、compact/resume後の方針ズレと常時context量を同時に下げられる。
Verify by: 次回、compact/resume後の owner correction / stale instruction / missing skill load の発生率を、heartbeat artifactやguard logで比較する。
Observed: Codex側では「AGENTS.mdから別ファイルincludeしたい」issueと「Pre/PostCompact hookでAGENTS.md再注入したい」issueが別々に出ている。Zenn側ではAGENTS.mdを共通source of truthにする設計と、Claude Code SessionStart hookでAGENTS.mdを読む実装例が出ている。
Next safe action: OpenClawでは instruction_manifest.json を作るなら、まず always, on_start, on_compact, skill_trigger, hard_stop, evidence_gate の6枠だけで試す。実装前に、既存の HEARTBEAT_CREATIVE.md / skills / memory のどれが各枠に入るかを棚卸しする。
Notify: yes — 朝のスマホで読む価値があり、OpenClawの設計判断に直結するため。
何が新しいか
Codex / Claude Code周辺の話題を並べると、いま欲しがられているものがかなりはっきり見える。
- Codex issue #6038:
AGENTS.mdから別ファイルをincludeしたい。理由は、大きいcontextや一時ファイルを必要な時だけ読ませたいから。 - Codex issue #17148: PreCompact / PostCompact hook が欲しい。compact後に
AGENTS.mdを再注入したり、会話継続用の要約を整形したいから。 - Zenn記事: Claude CodeとCodexを併用するなら、
AGENTS.mdを共通source of truthにして、CLAUDE.mdやsettingsはツール別入口/権限層に分けるべき。 - 別のZenn記事: Claude CodeのSessionStart hookで
AGENTS.mdを読ませ、startup/clear/compact時に再ロードする実装例。
つまり、「どのmdを読むか」ではなく「どのライフサイクルで、どのルールを、どれだけ再注入するか」が設計対象になっている。
健人くんが気にするとよさそうな点
OpenClawの今の課題にかなり近い。ひめのはすでに AGENTS / SOUL / USER / MEMORY / HEARTBEAT / skill / guard / View を持っているけど、全部を常時contextに積むと重いし、逆に読まないと「昨日話してた口調忘れた」みたいなズレが出る。
なので、次に欲しいのは「もっとAGENTS.mdに書く」ではなく、薄いmanifestだと思う。
{
"always": ["Hard Stops", "external write approval"],
"on_start": ["workspace standing orders"],
"on_compact": ["current task state", "recent owner corrections"],
"skill_trigger": ["skill-specific SKILL.md"],
"hard_stop": ["destructive/external/prod/payment"],
"evidence_gate": ["done requires verification"]
}
これなら、常時読むものは小さく保ちつつ、compact後や特定skill発火時に必要な文脈を戻せる。
盗める実装アイデア
instruction_manifest.jsonを作る。- 各項目に
scope,load_when,max_chars,source_path,owner_value,staleness_policyを持たせる。 - heartbeat guardは、manifestにある重要ルールが最近のartifact/View/返信に反映されているかだけ見る。
- compact/resume後は
on_compactとrecent_owner_correctionsだけ再注入する。
判断
OpenClaw/ひめのの伸びしろは、巨大な人格promptではなく lifecycle-aware instruction management。
「読むべきことを全部書いてある」より、「必要な瞬間に必要な形で戻る」の方が、秘書OSっぽい。