コンテンツにスキップ

作業が止まらなければならないとき

スキップは借りであり、借りは書き留める。セキュリティクラスの理由は黙ってスキップせず、プランナーの決定にもならない。/flow auto は段階的だ:グリーンな作業は聞かずにマージでき、セキュリティクラスの作業は HALT する。

このページはそれらの規則のオペレータホームだ。メンテナファイルはリポジトリに正準として残し、フッターにだけリンクする。

これらのクラスは「など」で黙った残りを残さない。すべて halt する。

  • authentication / auth(認証)
  • authorization(認可)
  • admin-surface exposure(管理画面の露出)
  • tenancy(テナンシ)
  • payments(決済)
  • data loss / data migration(データ喪失 / データ移行)
  • removing or weakening validation(バリデーションの除去・弱体化)

いずれかに触れたら:

  • オペレータが露出を DEBT.md に書面で受け入れる。あなたが代わりに決めない。
  • /flow auto ではこれは Tier-C HALT だ。止まって聞く。進まない。
  • 未解決のセキュリティdebtを残したまま実行を閉じるには、オペレータの明示的な承認が要る。「一時的」は承認ではない。

スキップは正当だ。黙ったスキップは正当ではない。

先に露出を記録し、それからスキップする:

/flow debt add "skip 01-research" "<露出を具体的に>" "<閉じる条件を名指し>"
/flow skip 01-research --reason "…"

ガードはこの順だ(上のクラスリストを参照する。それを短いものに置き換えない):

  1. ステージ 05(contract)は決してスキップできない。代わりに契約をプロジェクトタイプに適応させる。Contractが決してスキップできない理由 を参照。
  2. セキュリティクラスの理由は halt する。オペレータが露出を DEBT.md に書面で受け入れる。プランナーの決定には決してならない。
  3. 無関係な未解決debt行ではステージは開けない。
  4. /flow skip が進むのは、未解決のdebt行がそのステージを正確に名指しし、理由がセキュリティクラスでないときだけだ。
  5. 正当なスキップの後、planning_complete はそのステージを許容し、カードが永遠に止まらないようにできる。debt行は未解決のまま残る。
  • 最初のスキップが DEBT.md を作る。
  • 行の形:スキップしたもの、具体的な露出、名指しの閉鎖条件、日付、カード。
- [ ] DEBT: <スキップしたもの> -- <露出> -- close before: <名指しの条件> -- opened <日付> (cards: C-NNN...)
  • 未解決のセキュリティdebtを残したまま実行を閉じるには、オペレータの明示的な承認が要る。「一時的」は承認ではない。
  • debtで止まったカードは、debtを名指すPARTIAL証拠付きで todo のままにする。半端なdoneにしない。doneに切り上げない。

/flow auto はプレフライトする。通過したら共有auto状態を書く。/flow auto stop で手動に戻る。隠しバイパスはない。

プレフライトは fail-closed だ:

  • すべてのカードに分類済みリスクがある(unknown なし)
  • セキュリティクラスのカードには DEBT.md 内の別人による承認が必要
  • ステージ05が現行の semantic_gate 証跡を持つ

次にカードごとのループをオペレータ言語で言うと:tierを分類し、分離worktreeでスコープ付きサブエージェントでビルドし、レビューし、証跡を取り、check し、マージし、デプロイし、ライブ検証し、現実世界の証拠を貼り、doneにする。ジャーナルに穴を開けないよう /flow workspace 動詞を使う。素の git worktree add は何も記録しない。

Tier 内容 動作
Tier-A グリーン、セキュリティクラスなし 聞かずに自動マージ。
Tier-B 修復可能 freshなサブエージェントによる1回の修復(ツーストライク)。通常カードの最初の赤で課金系クロスベンダーエンジンは呼ばない。
Tier-C セキュリティクラスの接触 または debtスキップ HALT。オペレータが DEBT.md に書面で受け入れる。プランナー決定は不可。

ハード上限(反復回数 / トークン / 実時間)は必須だ。いずれか超過 → HALT + 報告。上限のないループはアンチパターンだ。

すべてのゲートは機械的信号で決める(実exitコード、実 ## Verify、ライブチェック)。エージェントの自己評価では決してない。

並行マージ競合 → haltして再計画。重なりチェックが出し抜かれた。

実行はHALTして報告する。黙って続行しない。以下いずれかで止まる:

  • ハードストップ上限の超過(反復回数 / トークン / 実時間)。
  • ツーストライクで修復できない赤のグラウンドトゥルース信号。
  • Tier-Cセキュリティクラスの接触。
  • 並行ビルド中のマージ競合(allowed-files重なりチェックが出し抜かれた:止まって再計画)。
  • 追加コンテキストでも解決できないサブエージェントからの BLOCKED / NEEDS_CONTEXT。

halt時:何が止めたか、何が終わったか、未解決のdebtやブロッカー、2〜4の具体的な選択肢を述べる。リグレッションを迂回パッチしない。オペレータに決めさせる。


メンテナのホーム(公開ページではない):skills/flow/references/debt-and-halts.md、skills/flow/references/auto-run.md、skills/flow/references/attestations.md。