<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Agents-Md on ROBOCO</title>
    <link>https://roboco.io/ja/tags/agents-md/</link>
    <description>Recent content in Agents-Md on ROBOCO</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Thu, 26 Mar 2026 17:26:21 +0900</lastBuildDate>
    <atom:link href="https://roboco.io/ja/tags/agents-md/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>バイブコーディング時代、リポジトリ規則と個人の好みの境界</title>
      <link>https://roboco.io/ja/posts/vibe-coding-rules-vs-taste/</link>
      <pubDate>Thu, 26 Mar 2026 17:26:21 +0900</pubDate>
      <guid>https://roboco.io/ja/posts/vibe-coding-rules-vs-taste/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;AGENTS.mdの役割は開発者を複製することではなく、事故を防ぐべき境界だけを固定することにある。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://roboco.io/posts/images/Dohyun.png&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;チョン・ドヒョン - ROBOCO首席コンサルタント&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;バイブコーディングを導入したチームは、まもなく似たような問いに直面します。リポジトリごとに&lt;code&gt;AGENTS.md&lt;/code&gt;や&lt;code&gt;CLAUDE.md&lt;/code&gt;を置いてAIエージェントに規則を伝え始めると、どこまでを共通規則として固定し、どこからを個人の好みとして残しておくべきなのかが曖昧になるからです。この境界を誤ると、二つの問題が同時に生じます。必ず守るべき安全規則は緩くなり、逆に好みに近い選択は不必要に硬直化するのです。&lt;/p&gt;&#xA;&lt;p&gt;最近のバイブコーディング論議で頻繁に登場する観点も似ています。人間はシステムアーキテクチャや好みのような高次の判断に集中し、実装やボイラープレート、反復的なリファクタリングはエージェントに任せよ、というものです。これを実務的に翻訳すれば単純です。リポジトリには「誰が作業しても同じでなければならないもの」を残し、人によって違ってもよい領域はあえて強制しないことです。&lt;/p&gt;&#xA;&lt;p&gt;この問いは理論にとどまりません。先に整理した[OpenClaw事例分析]&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;と[OpenClawの&lt;code&gt;AGENTS.md&lt;/code&gt;解剖]&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;を見ると、実際に生産性を生んだ規則は好みの統一ではなく、境界の明示性でした。Steinbergerもまた、最近はコードをすべて読むわけではないが、システム構造と設計はずっと握り続けていると説明しています。&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; OpenClawが強く固定したのもタブとスペースではなく、import boundary、ビルドゲート、マルチエージェントの安全規則、そして不可逆な作業の承認境界です。&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;肝心なのは多く書くことではなく、何を閉じて何を開いておくかを設計することです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;リポジトリ規則はチームの好みを複製する文書ではなく、事故のコストが大きい境界を固定する文書であるべきです。&lt;/li&gt;&#xA;&lt;li&gt;ビルド、テスト、セキュリティ、Gitの安全規則、アーキテクチャ境界はリポジトリとともに管理しなければなりません。&lt;/li&gt;&#xA;&lt;li&gt;命名のニュアンスやコメントスタイルのような好みは、formatter、linter、テンプレート、個人プロンプトで扱うほうが適しています。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;なぜこの区分が重要なのか&#34;&gt;なぜこの区分が重要なのか&lt;/h2&gt;&#xA;&lt;p&gt;AIエージェントは規則を素早く守ります。問題は、規則の性格を自分では区別できないという点にあります。リポジトリの指針にビルドコマンド、シークレットの扱い、ブランチの安全規則のように必ず守らなければならない制約と、「私ならこう書く」という水準の好みが混ざっていると、エージェントは両者を同じ重さで扱います。すると重要な規則は埋もれ、さほど重要でない規則は過度に増幅されます。&lt;/p&gt;&#xA;&lt;p&gt;たとえば&lt;code&gt;pnpm test&lt;/code&gt;を通さずにマージすればバグが出ます。実際のシークレットをコミットすれば事故になります。認証フローや決済の権限ロジックを十分な検討なしに変えれば運用リスクが生じます。こうしたものは議論の余地のない運用契約です。一方、関数名を&lt;code&gt;findUser&lt;/code&gt;にするか&lt;code&gt;getUserById&lt;/code&gt;にするか、テストファイルをソースの隣に置くか&lt;code&gt;__tests__&lt;/code&gt;にまとめるか、importをどの順序で並べるかは、結果に影響を与えることはあっても、たいていは正解が一つに固定されるわけではありません。&lt;/p&gt;&#xA;&lt;p&gt;この違いを区別しなければ、リポジトリの文書はすぐに肥大化します。あらゆる選好を中央の規則に引き上げれば、エージェントは文書を読むことにより多くのコンテキストを使い、チームは些細なスタイル合意に不要なエネルギーを費やします。逆に客観的な制約を好みの水準で扱えば、マルチエージェント環境で衝突と手戻りが繰り返されます。&lt;/p&gt;&#xA;&lt;p&gt;結局、良い&lt;code&gt;AGENTS.md&lt;/code&gt;はチームの好みの辞書を作る文書ではなく、事故のコストが大きい領域の境界を明確に引いておく文書であるべきです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;openclawが実際に示したもの&#34;&gt;OpenClawが実際に示したもの&lt;/h2&gt;&#xA;&lt;p&gt;以前の記事で整理したとおり、OpenClawの&lt;code&gt;AGENTS.md&lt;/code&gt;は単なるスタイルガイドではなく運用契約です。&lt;sup id=&#34;fnref1:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; 興味深いのは、その文書が「開発者をどう複製するか」よりも「エージェントがどこで事故を起こしうるか」にはるかに強く集中している点です。実際の指針を見ると、ビルド成果物やモジュール境界に影響を与えうる変更には&lt;code&gt;pnpm build&lt;/code&gt;の通過をハードゲートとして要求し、&lt;code&gt;@ts-nocheck&lt;/code&gt;のような典型的な回避パターンも明示的に禁止しています。&lt;sup id=&#34;fnref1:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;たとえばOpenClawは、拡張が内部実装に直接手を出せないようにimport境界を規則としてロックしています。また&lt;code&gt;git stash&lt;/code&gt;の禁止、任意のブランチ切り替えの禁止、原子的なコミットの維持といったマルチエージェントの安全規則を置いています。ビルドとテストもハードゲートとソフトゲートに分け、いつ必ず検証しなければならないのかを明確に書いてあります。&lt;sup id=&#34;fnref2:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref2:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;逆にその文書は、「セミコロンを必ず使え」「関数名は必ずこういうトーンでつけろ」といった個人の好みを中心に設計されてはいません。つまりOpenClawが示した核心は単純です。リポジトリ文書が扱うべきなのは美的な統一感ではなく、構造的な安全性なのです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;リポジトリとともに管理すべき規則&#34;&gt;リポジトリとともに管理すべき規則&lt;/h2&gt;&#xA;&lt;p&gt;以下はリポジトリとともにバージョン管理されるべき領域です。共通点は一つです。違反したときにバグ、衝突、セキュリティ事故、運用の混乱が発生するという点です。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ビルドとテストのコマンド&lt;/li&gt;&#xA;&lt;li&gt;マルチエージェント環境におけるGitの安全規則&lt;/li&gt;&#xA;&lt;li&gt;公開APIサーフェス、import boundary、パッケージ境界のようなアーキテクチャ制約&lt;/li&gt;&#xA;&lt;li&gt;シークレット、個人情報、運用設定値のようなセキュリティ境界&lt;/li&gt;&#xA;&lt;li&gt;認証、決済、権限、DBスキーマのように手動レビューが必要な高リスク領域&lt;/li&gt;&#xA;&lt;li&gt;PR／コミットの単位のような変更管理の原則&lt;/li&gt;&#xA;&lt;li&gt;Research → Plan → Implementのように誤りのコストを下げる作業順序&lt;/li&gt;&#xA;&lt;li&gt;AI利用時の透明性要件&lt;/li&gt;&#xA;&lt;li&gt;チームがすでに検証済みの品質ゲートと自動化基準&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;これらの項目は「良さそうな推奨」ではなく、リポジトリの運用契約に近いものです。&lt;/p&gt;&#xA;&lt;p&gt;たとえばビルドコマンドが&lt;code&gt;npm run build&lt;/code&gt;なのか&lt;code&gt;pnpm build&lt;/code&gt;なのかを、人によって別々に解釈してはいけません。自動化パイプラインとローカル検証が同じコマンドを基準に動かなければならないからです。Gitの規則も同様です。マルチエージェントで同時に作業する環境では、任意のstash利用、要求されていないブランチ変更、広範囲の非原子的なコミットが実際の衝突を生みます。&lt;/p&gt;&#xA;&lt;p&gt;セキュリティ境界については言うまでもありません。実際の電話番号、本番環境の環境変数、非公開鍵、顧客データのサンプルといったものは、チームのスタイル選好ではなく禁止リストです。こうした内容は個人プロンプトや暗黙知に置いてはならず、リポジトリの文書と自動スキャンの規則にともに残っていなければなりません。&lt;/p&gt;&#xA;&lt;p&gt;ワークフローの順序も同じ文脈です。実装の前に既存コードを読み、計画を立て、それから変更させるという手順は、単なる形式主義ではありません。エージェントは質問を減らすほど速くなりますが、誤った仮定の上で速くなれば、後でより高くつきます。ですから探索と計画を先に要求する規則は、好みではなくコスト削減の装置です。&lt;/p&gt;&#xA;&lt;p&gt;ここでもう一つ重要なポイントがあります。チームがすでに自動化に依存しているなら、その自動化が期待する形式もまた共通規則になります。たとえばConventional Commits形式がリリースノート、チェンジログ、CIルーティングに結びついているなら、それはもはや好みではありません。逆に単に「読みやすい」水準の形式選好であれば、チームレベルの合意であってよく、必ずしもリポジトリの中核規則に格上げする必要はありません。&lt;/p&gt;&#xA;&lt;p&gt;反復手順をどこに置くかも同じ基準で見ることができます。OpenClawはリリースやセキュリティ点検のような複雑な反復業務を&lt;code&gt;AGENTS.md&lt;/code&gt;の本文に長く書くのではなく、別のスキルとして分離しています。&lt;sup id=&#34;fnref3:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; これもまた良い区分です。リポジトリの中核文書には原則と境界を残し、手続き的な詳細は再利用可能な実行面として分離するほうが長持ちします。&lt;/p&gt;&#xA;&lt;h2 id=&#34;個人の好みとして残してよい領域&#34;&gt;個人の好みとして残してよい領域&lt;/h2&gt;&#xA;&lt;p&gt;逆に次のような領域は、個人やチームの好みとして残しておくことができます。もちろんチームが一貫性のために標準化することはできますが、それがリポジトリの中核的な安全契約である必要はありません。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;セミコロンの使用有無、空白の数、trailing commaのようなフォーマットの細部&lt;/li&gt;&#xA;&lt;li&gt;関数名や変数名の細かなニュアンス&lt;/li&gt;&#xA;&lt;li&gt;importの並べ方&lt;/li&gt;&#xA;&lt;li&gt;コメントをどの程度まで書くかというスタイル&lt;/li&gt;&#xA;&lt;li&gt;テストファイルの配置方法とテストの記述スタイル&lt;/li&gt;&#xA;&lt;li&gt;抽象化を早く行うか遅く行うかという選好&lt;/li&gt;&#xA;&lt;li&gt;feature-based構造とlayer-based構造の間の選好&lt;/li&gt;&#xA;&lt;li&gt;エラー処理パターンの細かな選択&lt;/li&gt;&#xA;&lt;li&gt;プロンプトを長く書くか短く書くかといった個人の作業スタイル&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;こうした項目は、互いに異なる選択肢がいずれも合理的でありうるものです。たとえばあるチームは&lt;code&gt;strict&lt;/code&gt;な型設定を好み、あるチームはオンボーディングのコストを下げるために段階的に厳格度を上げます。あるチームは&lt;code&gt;Result&lt;/code&gt;パターンを好み、あるチームは例外ベースのフローのほうが明確だと感じます。どちらであれ一貫して運用されるなら、十分に合理的でありえます。&lt;/p&gt;&#xA;&lt;p&gt;重要なのは、こうした好みを完全に無視しようという意味ではないという点です。好みも生産性に影響します。ただし、それをどこに置くかが重要なのです。リポジトリの中核契約として扱うよりも、formatter、linter、テンプレート、サンプルコード、個人プロンプト、チームプレイブックのような軽い装置で扱うほうが適しています。そうしてこそ、好みは維持しつつリポジトリの指針が過度に重くならずに済みます。&lt;/p&gt;&#xA;&lt;p&gt;とりわけバイブコーディングでは、この違いがいっそう重要になります。エージェントにあらゆる好みを強く注入すれば、コード生成はかえって硬直し、小さな変化でも規則の衝突が多く発生します。一方、好みは緩やかなガイドとして置き、安全と品質に直結する境界だけを強く固定すれば、エージェントははるかに安定して働きます。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
