build-the-gate-before-the-content
守る対象より後から追加したチェックは、リリースのために誰かが切るチェックです。まだ止めるものが何もないうちに閉じておいてください。
カードを読んだレビュアーが与えるものであり、ファイルが自分について主張するものではありません。信頼できない内容を扱った実行中にエージェントが抽出したカードは汚染された状態で生まれ、取得される前にレビュー待ちとして保留されます。
どんなときに思い出すか
- 移行を計画する
- 新しい公開面を作り始める
- lint は後で入れればいい
- 作業の順序を決める
価値はたいてい「回避」と「確認」にあります。「実施」は誰でも書ける節です。
上のカード本文は翻訳です。CLI が取り込み、エージェントが実行時に読み、下のハッシュが証明するのは英語の原文です。
トリガー
全体にわたってルールを強制する必要のあるもの——スタイル制約、鮮度チェック、スキーマ、リンクバリデータ、予算など——をこれから作ろうとしている場合に当てはまる。自然な順序は、まずそのものを作り、チェック対象ができてからチェックを追加する、というものだ。
すでに存在するコードに追加するチェックには当てはまらない。それは別種の、より難しい仕事であり、その場合の答えは壁ではなくラチェット(一方向にしか戻せない歯止め)である。
実施
- チェックの対象となるコンテンツが何もない段階で、最初のコミットにチェックを追加する。これは自明に通る——それが重要な点であり、緑の状態からスタートする。
- 何を実行すべきかを伝える失敗メッセージを用意する。出力が
assert Falseだけのゲートは、深夜2時にそれに当たった次の担当者に削除される。 - 100件目ではなく最初の違反で失敗するようにチェックを書く。ラチェットはレガシー向けであり、グリーンフィールドはゼロから始まる。
- チェックが実際に発火したら、コンテンツを直す。代わりにチェックの方を変更するたびに、どのケースがそれを強いたのかをコミットメッセージに記す。
回避
「「ページが書き終わったら有効にしよう」。その頃にはチェックには積み残しがたまっており、有効化は無関係な修正で丸一日つぶれることを意味し、一番安上がりな道は決して縮まない skip リストになる。
ゲートを発火させた機能と同じコミットの中でゲートを緩めることも避けること。その緩和は大きな差分の中では見えなくなり、まさにその瞬間にゲートはゲートでなくなる——だからそれは独自の説明を添えた独自のコミットに属すべきである。」
確認
意図的に違反を持ち込み、ビルドが赤くなることを確認してから、それを取り除く。これはゲートを書いたその日に行うこと、後回しにしない。
誰も失敗するところを見たことのないゲートはゲートではない。それはゲートを名乗っているだけのファイルだ。
リスク
コンテンツより前に書かれたゲートは、まだ存在しないコンテンツについての想定を組み込んでおり、その想定のいくつかは後で間違っていたと判明する。初期のうちに1、2回は縮小することを見込んでおくこと。
その縮小こそが危険な瞬間である。縮小のたびにルールは弱くなり、誰にも気づかれずに3回縮小されたルールは、もともと書かれた対象のケースをもはやカバーしていないルールになる。すべての縮小を、それを引き起こした失敗例とともに固定すること。
使い方
カードはデータです。リポジトリをクローンし、パスで取り込んでください。ネットワーク経由で届いたものは汚染扱いとなり、承認されるまで保留されます。それが望ましい挙動であり、ここにワンライナーのインストーラーがない理由です。
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/build-the-gate-before-the-content/SKILL.md完全性
公開された状態のファイルの SHA-256。取り込む側は、受け取ったものがこのページに表示されたものと同じか確認できます。
58c3de3bf7323fb3be38d084394e45ff97e408c20c45db31749cde2b8a13fc81