Skip to content

issue constraint declarative vs prohibitive

Claude Lin & Lay edited this page Sep 5, 2026 · 1 revision

issue constraints の「対象ではない」は scope の宣言であって禁止節ではない

Question

issue の constraints が或る行について「本 issue の対象ではない」と述べているとき、その行に触れた diff は issue 本文からの逸脱か。より一般に、rules/operations/main-agent-procedures.md Sub-issue rules の Scope-exceed dialogue confirm が持つ 2 軸のうち negative-constraint clause 側は、constraints のどの項に対して発火するのか。

Current resolution

「対象ではない」は仕事の主題がどこにあるかを述べる宣言であり、その行への一切の接触を禁じる禁止節ではない。 したがって、その行に触れただけでは issue 本文からの逸脱にならない。

判定軸は禁止形の有無である。同一 constraints ブロックが他の項で禁止形(触らないこと / 書かないこと)を使っている場合、その対比そのものが読みの根拠になる。同じ本文の中で、著者は禁止を意図した箇所には禁止形を書き、ここには書いていない——これは印象ではなく、一つの literal の中で読める差である。

Scope-exceed dialogue confirm の negative-constraint clause 腕は、禁止形を持つ項に対して発火し、宣言のみの項には発火しない。もう一方の腕(enumerated target-file set)は独立に判定する。宣言のみの項に触れる変更でも、そのファイルが target files の列挙に含まれていれば後者の腕でも発火しない。

「対象ではない」を禁止と読む安全側の解釈は採らない。採ると、issue が主題の所在を述べるだけで凍結面が増え、著者が禁止形で書き分けた区別が消える。

Edges

  • supersedes (なし)
  • depends on (なし。Scope-exceed dialogue confirm を扱う既存 entry を wiki 全体と docs/Decision-Structure.md の index で確認したが、存在しない。本 entry がその面の最初の判断記録である)
  • conflicts with (現時点で対立 entry なし)

背景

2026-09-05、PR #1872(issue #1830)の brake 1 round 1 で、3 名中 1 名の evaluator が Axis A に所見を 1 件出した。

所見の内容は、issue #1830 の constraints が

expires past without resolution -> escalate to human judgment の行は human gate であり、本 issue の対象ではない。

と述べた行を、diff が bullet の 1 項目から独立した平文段落へ整形し末尾にピリオドを付けている、というものである。所見の literal は正しく、-> の先の帰結が diff の前後で同一であることも所見自身が述べていた。

著者が却下し、親が exit 時に thread を読んで却下を維持した。決め手は同一 constraints ブロック内の対比である:

constraints の項 文末 種別
surfacing 側(cold-start-synthesis.md Self-Evolution Observation Surface と hook 実装) 触らないこと 禁止
memory/ の既存エントリ移行手順 書かないこと 禁止
expires past without resolution の human gate 行 本 issue の対象ではない 宣言

制約

  • 当該行は target files が名指す範囲(rules/evolution/memory-entry-format.md の <self-evolution-observation-format> の Lifecycle)の内側にある。よって Scope-exceed の 2 軸のうち enumerated target-file set 側にも当たらない。
  • 当該 diff の整形は選択ではなく、第 1〜3 項を outcome list へ書き換えた結果として強制されたものだった。第 4 項の - マーカーは、既に存在しない list への所属を主張する記号になる。所見を採る側に構造上の利得は無く、失う側にだけある(rules/model/subtractive-structural-beauty.md Core principle (A) の load-bearing 判断)。
  • 本判断は judgment record の側であり、規則本文の改定ではない。rules/operations/main-agent-procedures.md Sub-issue rules は本判断によって変更されていない。規則側に literal を置く必要が生じた場合は別 issue へ回す。

却下した選択肢

「対象ではない」を禁止として扱い、所見を採用して整形を差し戻す案。 安全側に見えるが、2 つを失う。第一に、兄弟項目を失った 1 項目だけの bullet list が戻る。第二に、著者が禁止形と宣言形を書き分けた区別が読み取られなくなり、以後どの issue でも constraints に現れた全ての言及が凍結面になる。

検出サイン(この判断が後で疑問視される場合)

  • 「issue が対象外と書いた行に触れている」という所見が上がった時 → まず同一 constraints ブロック内に禁止形の項があるかを見る。あるなら、その対比が読みの根拠になる。
  • Scope-exceed dialogue confirm を発火させるか迷った時 → 2 軸は独立に判定する。negative-constraint clause 側は禁止形の有無で決まり、「対象ではない」だけでは発火しない。
  • 「念のため確認する」形で confirm を撃とうとしている時 → literal trigger のヒットを伴わない発火は push surplus であり、rules/operations/main-agent-procedures.md Sub-issue rules の Anti-pattern が禁じている。

Related

  • issue #1876 — 本 entry の起票
  • PR #1872 — 判断の出所(brake 1 round 1 の所見、著者の裁定、親の self-review)
  • issue #1830 — 読みの対象となった constraints を持つ issue

要求仕様書 (1-6)

参考文書 (A-L)

判断構造

Clone this wiki locally