dagoste/squadra は Claude、Codex、Cursor を一つの作業フローとして調整するツールである。2026 年 11 月 6 日のコミット 0e56ba3 は、このリポジトリのスキルセキュリティスキャンの実行方式を変えた。スキャン段階からスキャナ自身の失敗オプション `--fail-on-severity high` を取り除き、HIGH 以上を止める判定を新しいスクリプト tools/cisco_gate.py に移した。このコミットの変更は 93 行の追加、4 行の削除である。
移した理由はスキャナのクロスファイル規則 때문이다。この規則は、環境変数を読むリポジトリに Python のソケット使用があれば CRITICAL 級の漏洩だと断定する。3.14.0 以降のコードに残るソケット使用は scripts/runtime.py の local_bind_available のみで、この関数は 127.0.0.1 のポート 0 にソケットをバインドして閉じるだけで、接続を開いたりデータを送ったりはしない。スキャナポリシーはこの規則を再格付けで下げることができず、規則そのものの契約に背くため抑制(suppression)も適用されない。ゲートを前に置く解法は、そのポリシー外で例外を一度だけ宣言することであった。
新しいゲートは HIGH と CRITICAL の等級のみを止める。例外として認められるのは二つの規則(BEHAVIOR_CROSSFILE_ENV_VAR_EXFILTRATION、BEHAVIOR_CROSSFILE_EXFILTRATION_CHAIN)だけであり、その項目の証拠にネットワークファイルが scripts/runtime.py の一つだけがある場合に限って通過する。別のネットワークファイルが一つでも混ざれば、その規則は再び止められる。例外扱いされた項目もスキャンレポートからは削除されずそのまま残り、ゲートは通過分を 'EXCEPTED'、停止分を 'BLOCKING' に分けて出力する。この挙動は tests/test_cisco_gate.py に追加された三つのテスト(単一ファイルの通過、他のネットワークファイルがある場合の再停止、それ以外の HIGH 規則と証拠欠落は引き続き停止)によって固定されている。
ただし、この変更はスキャナの等級を変えたものではなく、CI の内部で例外を宣言しただけなので、レポートだけを見ると依然として CRITICAL が二件残っている。実際に通過を決めるのは tools/cisco_gate.py である。例外条件がハードコードされた一つのファイルパスに結びついているため、同種のソケット使用が別の経路から入ると、規則は元々どおり CRITICAL に戻る。スキャン対象はコミット済みのリポジトリのうち tests/ を除いた部分であり、新しいテストファイルはその範囲の外にある。このコミットは挙動を検証する単体テストを付しただけで、性能測定や外部検証の結果は含まない。