用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ijust/intent-planner --skill intent-validate命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Intent Tree から、今回の変更における判断基準(North Star / Anti-direction / Invariants / Decision Rules)を構築する。Claude が局所最適に逃げるのを防ぐ。実装はしない。
永続データモデルを設計する責務を負う packet に対し、意図(packet)・invariant(compass)・既存スキーマ/migration の三層を read-only で読み、テーブル定義/制約/インデックス/命名を射影元へトレースしながら(射影元に無いものは inferred / unverified 標識)`.intent/db-design/` 配下へ派生出力する射影スキル。出力は設計の叩き台であって要件ではなく、canonical な成果物を一切変更しない。
Intent Planning の入口。リポジトリの課題感・README・既存コード概要から Intent Tree (L0-L4) を構築し、Intent の詰め方モードを推奨・確定する。実装はしない。
基于 SOC 职业分类
正在显示 SKILL.md
| name | intent-validate |
| description | intent-tree・intent-compass・packets(+ export 下書き)を横断し、矛盾・カバレッジ漏れ・境界不整合・規範違反を深刻度付きで報告する読み取り専用の検証。修正は提案にとどめる。 |
rules/validate-checks.md の表が正)rules/validate-checks.md の表の ID 列)・根拠(ファイルと該当記述)・修正の提案(再実行すべきスキル or 修正方針)を添えている.intent/ が無ければ intent-planner のセットアップ手順(npx intent-planner の実行)を案内して終了する。intent-tree.md / intent-compass.md / .intent/packets/ の一部欠落は非ブロッキング: 停止せず、検証可能な範囲で検査を実施し、欠けた成果物は未検証対象として報告する(packets は .intent/packets/ 不在または active/ が空の場合を欠落とみなし、packet 系検査をスキップする)。.intent/intent-tree.md、.intent/intent-compass.md、.intent/packets/index.md と .intent/packets/plan.md、検査対象の packet ファイル(packet 横断の検査では active/ 配下の全件を読む。archive/ は読まない)、.intent/cc-sdd/<スラッグ>/*.md(packet 毎の export 下書き。存在すれば)、引き継がれた発行ディレクトリの discovery/<スラッグ>-<rand>/mode.md(A34・discover が出力した発行名を引き継ぐ)→ 無ければ単一 .intent/mode.local.md(legacy)→ 無ければ旧 .intent/mode.md の順で mode 状態を読む(CONTRACT.md の read fallback 規約)。記号の実在照合では、分割収納 .intent/compass/(在れば)と旧本体のどちらかで到達できれば実在とみなす(新旧両対応・DR133)。intent-tree の案件記録(機能追記/機能撤去/履歴/再起案)は分割収納 .intent/tree/(在れば)と本体末尾の旧形式のどちらかで到達できれば実在とみなす(新旧両対応・骨格 L0–L4 は本体・tree-normalize / DR133)。rules/domain-scope.md を読み、適用する。compass を全文ロードせず「案件の領域タグ + always」だけを grep + インラインタグで引く(INV47 の pull 規律を検証層へ広げる)。ただし全体走査が本質の軸(compass-rule-decay / stale-questions / stale-assumptions / 全 always 記号を母集合にする横断照合軸)は領域スコープで絞らず全記号を対象にする(検出力を落とさない・B-fed5)。領域が定まらない・タグの無い旧 scaffold では従来どおり全量読みにフォールバックする(後方互換・O3)。検査カタログの軸・区分・深刻度・温度は変えない(変えるのは各軸が読み込む記号の範囲だけ)。.kiro/specs/<feature>/*.md)は、draft-content-dropped(Step 3.17)の突合相手としてのみ read-only で観測する(存在すれば読む・無ければ当該検査をスキップ)。外部ツールの成果物を書き換えない(INV1・アドオン原則)。突合相手の同定に使う - feature: 追記行は .intent/export-log/<packet-slug>.md にある。rules/validate-checks.md を読み、検査カタログの全検査を適用する(検査の集合・区分・深刻度は rules/validate-checks.md の表が正)。.intent/export-log.md 最新行の packet のディレクトリ(同定はディレクトリ内 requirements.md の ## Source Packet 見出し一致が正)。過去 packet の下書きは設計上併存するため違反として扱わない。export-log 不在・解釈不能時は下書きの Source Packet 見出しへフォールバックし(複数ディレクトリ時は断定せず候補提示)、その旨を報告する。active/ 配下、export 下書きがあれば併せて)を以下の四観点で読み、各観点の破綻条件が記述されているかを静的に確認する。記述が欠落していれば該当観点の指摘として深刻度別一覧に載せる(自動修正・対話確認は行わない)。kiro-review 等)へ委ねる旨を Open Questions / 修正の提案に記す。coinage-suspect・read-only・意味的).term-drift/、または対象リポ内の選択中 agent の設定ディレクトリにある skills/term-drift/SKILL.md のどちらかが見つかったら、この Step 3.6 の残りを実行しない。配置物の存在は「利用可能」の証拠ではないため、detect.md を読まない・term-drift rules を実行しない・用語の意味判定をしない・version / hash / 必要ファイル集合 / agent skill の互換性を判定しない。他の intent 検査は続け、利用者へ「リポジトリで npx intent-planner . --agent <選択中のagent> --with-term-drift --dry-run を実行して既存 installer の health を確認し、ready と表示された場合だけ選択中 agent の term-drift 専用 skill から本格点検へ進む」と短く案内する。intent-validate 自身はコマンドを起動しない(allowed-tools は Read, Glob, Grep のまま)。coinage-suspect の射程・温度を保つ。.intent/glossary.md(正規語彙の軽量台帳)を read のみで読み、「正規語」列とその「別表記・同義語」を母集合とする。行に語の状態(承認済み/暫定/否認済み)と言い換え例が書かれていれば合わせて読む(任意項目・スキーマの正本は台帳側)。.intent/glossary.md が不在なら母集合を空とみなし、本検出を一切発火しない(既存の validate 出力を変えない・後方互換)。scripts/intent-check.mjs には一切寄せない。<造語> は glossary の <正規語> に寄せられる候補」)。名指しと同じく候補に留め断定しない。glossary に妥当な寄せ先が見当たらないときは寄せ先を断定せず「台帳に正規語の追加を検討」と添える。言い換え案は造語の名指しに連動し、検出が沈黙するときは言い換え案も出さない。groundless-conclusion・read-only・意味的)scripts/intent-check.mjs・必須フィールドの有無・正規表現の機械的一致には一切寄せない(INV2/A1)。unverified-hypothesis・read-only・意味的)intent-packets の事前 probe(decision-probe.md)がこれを決定の瞬間に裁くが、probe が発火しない局面(probe 未導入の既存 packet・load-bearing 判定の漏れ・probe をすり抜けた確信)では「証拠の裏が無いまま確定された仮説」が成果物に残る。本検出はそれを export 前に事後で拾う。前節 groundless-conclusion(結論に根拠が辿れない=保存の軸)とは検出軸を分ける(こちらは仮説に証拠の裏が無い=検証の軸・A30・C19・INV37・DR61)。.intent/(compass の Invariant/Decision Rule・glossary・過去 deltas・関連 packets=証拠 pool)から辿れないものを「未検証の仮説」として名指しする。判定は意味的な読みで行い、scripts/intent-check.mjs・必須フィールドの有無・正規表現の機械的一致には一切寄せない(INV2/A1)。.intent/ に実在し裏付けられた確信は誤検出しないよう意味判断で除外する(warn-only ゆえ誤検出の害は小さいが量を絞る)。groundless-conclusion(結論の根拠欠落)と本検出(仮説の証拠欠落)を別検査として報告し、所見を混ぜない(同一箇所に両軸が当たっても重複検出にしない=突合面が「根拠の保存」と「証拠の探索」で異なる)。証拠源は共有しうる(A29 が残す根拠が本検査の証拠 pool に入る相乗)。.intent/)が空のときは「証拠の裏が無い=即警告」にせず「証拠 pool が無いため判定不能」を明示する(合格とも誤標識しない)。dangling-reference・read-only・LLM 文脈)Anti-direction N / INV N / DR N)で結ばれ、pull 規律(全文を読まず該当 Invariant/Anti-direction だけを引く)は「参照先が実在する」ことを暗黙の前提にする。退避・統合・削除でブロックが動くと、参照先が消えて宙吊り(dangling reference)になりうるのに、validate に拾う軸が無かった(canonical-slimming で compass のブロック move が dangling を起こし無検出で通った実害=INV42・C20・A35・DR67)。本検出はそれを export 前に拾う。Doorstop の suspect-link 相当。Anti-direction N / INV N / DR N)のうち、参照先が成果物内に実在しないものを「dangling 参照の疑い」として名指しする。判定は LLM が成果物を読んで参照先の実在を確かめる意味的な読みで行い、scripts/intent-check.mjs・grep・正規表現の機械的一致には一切寄せない(INV2/A1・既存3軸と質を揃える)。Anti-direction N / INV N / DR N)に絞る。[[memory-slug]](memory は別リポゆえ validate から実在照合できず誤検知が多い)と packet の parent_intents 参照は対象外。番号振り直し(ID が別物に差し替わった)は射程外で、純粋な実在欠落に絞る。coinage-suspect(台帳に無い造語)/ groundless-conclusion(結論の根拠欠落)/ unverified-hypothesis(仮説の証拠欠落)と本検出(参照先の実在欠落)を別検査として報告し、所見を混ぜない(同一箇所に複数軸が当たっても重複検出にしない=突合面が違う)。invariant-oracle-missing・read-only・LLM 文脈)### <機能> 直下の INV N 項目)を読み、検査オラクル(破れたと分かるものさし)が紐づいているか・「ものさし無し(思想的制約)」と明記されているかを意味で確かめ、どちらも無いものを「オラクル未紐づけの疑い」として名指しする。判定は LLM が compass を読んで行い、scripts/intent-check.mjs・grep・正規表現の機械的一致には一切寄せない(INV2/A1・既存検出軸と質を揃える=INV48「オラクルの有無・妥当性の判定は LLM 意味判断」)。coinage-suspect(台帳に無い造語)/ groundless-conclusion(結論の根拠欠落)/ unverified-hypothesis(仮説の証拠欠落)/ dangling-reference(参照先の実在欠落)と本検出(Invariant の検査オラクル欠落)を別検査として報告し、所見を混ぜない(突合面が違う)。invariant-impact-reverse・read-only・grep 単純照合・warn-only)intent-validate に集約し、前 Step(オラクルの有無)と本 Step(変更→影響)を1回の実行でまとめて出す(C2/C10・A38・DR72・INV49)。- 影響パス: <glob/パス断片> 等)と、変更ファイルのパスを単純に突き合わせ、一致した Invariant を浮かせる。これは意味判断を要さない単純照合ゆえ grep を補助に使ってよい(INV48 の利便性優先の例外=「変更パスと目印の文字列照合」に該当)。影響パスが付いていない Invariant は照合対象から外れる(後方互換・壊さない)。compass-rule-decay・read-only・LLM 文脈・意味的)dangling-reference)「packet 側の追随漏れ」(invariant-stale-vs-compass)「未解決項目の滞留」(stale-questions / stale-assumptions)は拾うが、canonical の規律そのものの腐敗を拾う軸が無かった。本検出はそれを export 前に拾う(C2/C8/C10・A41・INV54・DR75)。INV N)/ Decision Rule(DR N)を読み、次の3類型で死蔵規律を名指しする:
- 影響パス: 行)が名指すファイル/skill/値が現実に存在しない・変わったもの。影響パスの指す先の実在照合は意味判断を要さない単純パス突合ゆえ Glob/Grep を補助に使ってよい(INV48 の利便性優先の例外)。本文の名指し先が現実と乖離したかの判定は LLM の意味的な読み。parent_intents・近況の deltas / drift-log の言及から辿れない(引かれた形跡が無い)もの。証拠はファイル内の打刻・参照関係のみ(git 履歴は読まない)。Updated (...) タグ・packet frontmatter の日付・deltas / drift-log の日付行)に限り、Read, Glob, Grep のままで Bash / git log を使わない(read-only 検査層の tool 契約)。A40-(2) の発火痕跡が実装されても本軸はそれに依存しない(無くても成立する判定)。dangling-reference(参照先の消滅)/ invariant-stale-vs-compass(packet 側の追随漏れ・時間軸)/ stale-questions / stale-assumptions(未解決項目の滞留)/ invariant-oracle-missing(オラクル欠落)と本検出(canonical 規律そのものの生死)を別検査として報告し、所見を混ぜない(突合面が違う)。名前も invariant-stale-vs-compass(packet 側の遅れ)と取り違えない。invariant-stale-vs-compass と同型・個別列挙は利用者要求時のみ展開=全件個別列挙で洪水化させない)。requirement-oracle-check・read-only・LLM 文脈・意味的)intent-packets の終端判定)では、受入基準を「誤った実装を落とせる観測できる基準」に締めている。ところが packet を export 下書き(requirements)へ変換する過程で基準が曖昧になっても、それを拾う検査が無かった。packet で締めた品質が下書きで失われる穴を、export の手前で拾う(C10/C27・A42・INV55・DR76)。.intent/cc-sdd/<スラッグ>/*.md / .intent/openspec/<スラッグ>/*.md)の各受入基準を読み、「この基準を満たしたと言い張る誤った実装を、この基準で弾けるか」を意味で確かめる。弾けない弱い基準(観測できる入力・条件・期待結果が無い・主観語や願望だけ・例:「使いやすくする」「適切に動く」「高速に」)を名指しし、観測できる形(入力→条件→期待結果)への詰め直し候補を添える。観測できる基準(何を入れると何がどうなるかが書かれている)は挙げない。判定は LLM の意味的な読みで、scripts/intent-check.mjs・正規表現・キーワードリストの機械的一致には一切寄せない(INV2/A1・既存の意味検査軸と質を揃える)。requirements-smell(要求記述の字面=曖昧語・主観語・比較級・弱い語・未定義代名詞)/ export-draft-mismatch(下書きと packet 定義の整合)と本検出(受入基準が誤った実装を弁別できるか)を別検査として報告し、所見を混ぜない(突合面が違う)。同じ弱い基準が requirements-smell(字面が曖昧)と本軸(誤実装を弾けない)の両方で挙がることは正常で、互いを黙らせない。intent-packets の終端判定(what + constraints + oracle の oracle)にある。本軸はそれを export 下書きへ適用する検査であって、定義を validate 側に別立てで書き起こさない(参照に留める・Anti-direction 250)。.intent/cc-sdd/ と .intent/openspec/ の下書き。intent-to-spec が出す読める成果物(.intent/nl-spec/)の受入基準は初回の対象外(運用で必要性を見て将来広げる・DR76 の Revisit)。requirements-smell と同格)。starter-coverage-gap・read-only・LLM 文脈・意味的).intent/constraint-starters.md の領域インデックスと照らして「この packet が明白に触る技術面(例: 入力を外部公開する API 境界/永続データモデル/並行更新)に対応する定石領域が一度も検討されていない」ものだけを名指しし、どの領域ファイル(.intent/constraint-starters/<領域>.md)を見るかの詰め直し候補を添える。誤検知を避けるため明白な組み合わせに絞り、微妙な当てはまりは出さない。判定は LLM の意味的な読みで、scripts/intent-check.mjs・正規表現・キーワードリストの機械的一致には寄せない(INV2/A1)。constraint-ledger.md を read し、当該 packet に関係する定石が採用・否認・保留のいずれかで検討済みなら名指ししない(採用漏れではない)。器が読めない環境では確度を下げるか沈黙側に倒す。目的・文脈が否認時から変わったと読める否認済みは、再検討の余地として名指してよい(機械条件なし・INV2)。requirements-smell(字面の曖昧語)/ requirement-oracle-check(受入基準が誤実装を弾けるか)/ invariant-uninherited(compass 普遍 invariant の継承漏れ)と本検出(明白に関係する定石領域の未検討)を別検査として報告し、所見を混ぜない。.intent/constraint-starters.md が無いときは本検出をスキップして他検査を続行する(「採用漏れなし」と誤標識せず、検査対象なしとして扱う)。## Safety / Invariants へ自動で採用しない(採用は人が判断・A7/INV5)。深刻度「推奨」の一方向報告で export・実装を止めない(誤検知前提・INV49 の warn-only)。oracle-test-link-missing・read-only・LLM 文脈)invariant-oracle-missing)は「Invariant に検査オラクルが在るか」を見えるようにした。本検出はその実装後側で、packet の受入オラクル(## Validation の「誤った実装を落とすものさし」)が実装後、実際にどのテストで守られているかを見る。packet-format の任意節 ## Verification protocol は verified-by リンク(オラクル→実テストの対応)を保持できると定義済みだが、書いた後にテストが消えても誰も気づかない・そもそも対応が未記入のまま実装が done になる、という往復の穴を read-only で拾う(C38/C8/C10・A49・INV63)。## Validation の受入オラクルと ## Verification protocol の verified-by(対応する実テストのファイルパス+テスト名)を突き合わせ、次の2つを名指しする — (1) 対応の切れ=verified-by が指すテストが実在しない(削除・改名された。実在照合は意味判断を要さない単純パス突合ゆえ Glob/Grep を補助に使ってよい=INV48 例外。テスト名まで含む照合は意味読み)/(2) 未対応=オラクルに verified-by が無い、または「未対応」と明示されないまま空いている。判定は LLM が packet を読む意味判断で、scripts/intent-check.mjs・正規表現の機械的一致には寄せない(INV2/A1)。invariant-oracle-missing(compass の Invariant にオラクルが在るか)/ trace-downstream-missing(意図に対応する packet に下流リンクが在るか)と本検出(packet の受入オラクルと実テストの対応の実在)を別検査として報告し、所見を混ぜない(突合面が違う)。A38 のオラクル軸とは実装前/実装後の対で働く。## Verification protocol 節が無い旧 packet は「未記入」として扱い警告対象にしない(不在=未観測・後方互換の読み取り規律。遡及記入を強制しない・Anti-direction 304)。「未対応」と明示済みのオラクルは記入済みの誠実な状態として扱い、重ねて咎めない。provisional-carryover・read-only・LLM 文脈)compass-rule-decay(compass の規律の陳腐化)の姉妹だが対象が違う(本軸は packet の決定の未回収)。state)と ## Decisions を読み、次を名指しする — (1) 進行との矛盾=state が verifying/done なのに 未定/暫定 のスロットが残る(特に前倒し5基準=不可逆・複数モジュール波及・受入オラクル・セキュリティ床・複数 packet 拘束に該当するもの)/(2) 再訪条件の成立=未定 スロットの Revisit when(再訪条件)が現在の成果物の状態から既に成立していると読める/(3) 未確認の暫定標識=inferred/暫定 標識付きの記述が人確認の記録(利用者確定・Evidence の人確認)なく残存している。判定は LLM が packet を読む意味判断で、経過日数などの機械閾値・scripts/intent-check.mjs・正規表現の機械的一致には寄せない(INV2/A1)。未定 を保持する packet では沈黙する。ambiguous-deferred-phrasing(確定文体に紛れた未確定動詞の字面)/ decision-slot-empty(スロットが空)/ compass-rule-decay(compass 規律そのものの生死)/ stale-questions / stale-assumptions(未解決項目の滞留)と本検出(packet の決定の確定度と進行段階の矛盾)を別検査として報告し、所見を混ぜない(突合面が違う)。## Decisions 節が無い旧 packet は「未記入」として扱い警告対象にしない(不在=未観測・後方互換の読み取り規律)。draft-content-dropped・read-only・LLM 文脈).intent/cc-sdd/<スラッグ>/*.md)と、それを渡して下流が生成した成果物(.kiro/specs/<feature>/*.md)を読み比べ、次を名指しする — (1) 意図の参照の落ち=下書きが引いた Invariant / Decision Rule / 親の意図の参照が下流の requirements / design / tasks のどこにも残っていない/(2) 受入基準の材料の落ち=下書きの ## Acceptance Material 由来の判定条件が下流の requirements の受入基準に現れていない。判定は LLM が両者を読む意味判断で、生存率のスコア化・閾値判定・scripts/intent-check.mjs・正規表現の機械的一致には寄せない(INV2/A1)。Revisit when から運んだ非拘束候補の 再確認候補の拘束力昇格、無関係な Tree / Compass / archive の全量注入を下書き→下流の生存・強度問題として名指しする。export-draft-mismatch の packet→下書き整合責務とは分離する。全量注入は全文と分かる構造的・意味的な証拠がある場合だけ検出し、単一の必要参照を誤検出しない。候補が無い場合は候補の生存・昇格検査を黙ってスキップする。.intent/export-log/<packet-slug>.md)の - feature: 追記行を一次の手がかりとし、無ければ下書きの ## Source Packet の packet 名が下流の成果物に含まれるかで補助照合する。どちらでも同定できないときは「突合不能」を1行で告げ、推測で対応づけない(誤検知を出すくらいなら黙る側に倒す)。export-draft-mismatch(下書きと packet 定義の整合)/ requirement-oracle-check(下書きの受入基準が誤実装を弁別できるか)と本検出(下書きの中身が下流の生成物で落ちていないか)を別検査として報告し、所見を混ぜない(突合面が違う)。.kiro/specs/ が無い(cc-sdd を使わない・直接実装する案件)ときは本検出をスキップして他検査を続行する(「落ちなし」と誤標識せず、検査対象なしとして扱う・エラーにしない)。落ちが1件も無いときは本検出に関する出力を一切発火しない。cross-packet-contract-coverage・read-only・warn-only)## Safety / Invariants と既存 plan.md へ辿る。少なくとも1 packet に保護担当と検証方法が届くこと、複数担当の保護内容が両立すること、統合時オラクルがあることを意味で照合する。invariant-uninherited / packet-scope-overlap / oracle-test-link-missing と所見を混ぜない。capability-starvation・read-only・warn-only)packets/plan.md の工程計画 / Walking Skeleton、active packet の frontmatter state、export-log だけを突き合わせる。価値の中心に直結する packet が未 export・未着手のまま、補助的 packet の完了だけが先行している疑いを、LLM の意味判断で候補提示する。packet の存在や親参照だけを価値到達の証拠にしない。scripts/intent-check.mjs による判定を持たない。該当する canonical 能力、未 export の packet 名、先に完了した補助 packet 名を、Step 4 の規律どおり逐語引用で根拠固定する。goal-without-packet は packet 自体の欠落、本軸は packet が在るのに価値へ届かない疑いを扱う。成功指標は既存の l1-metric-missing / decision-success-signal で扱い、新軸へ混ぜない。深刻度は「情報」に留め、優先順位・state・canonical を自動変更せず、gate にしない。outcome-provenance-missing・read-only・warn-only).intent/deltas/**/*.md を優先して読み、分割側に無い旧形式の記録は .intent/deltas.md から読む。同じ観測が両方にある場合は二重に報告しない。成果記録のない既存deltaもそのまま読める後方互換を保つ。誰が計測したか、いつ計測したか、どこで計測したか が意味のある値を持つかを読む。空欄や未記入のプレースホルダーは不足として扱い、欠けている項目名をこの固定順で一つの所見にまとめる。同じ入力には同じ所見を返し、grep・正規表現・scripts/intent-check.mjs に判定を寄せない。根拠固定の横断規律(evidence-anchored finding・全所見にかかる・新しい検出軸ではない): 以下は既存の全検出軸(coinage-suspect / groundless-conclusion / unverified-hypothesis / dangling-reference / invariant-oracle-missing / invariant-impact-reverse ほかカタログの全軸)+ PBR 四観点+境界検査が出すすべての所見の出し方にかける横断規律であり、7つ目の検査軸として並置しない(Step 3.x を増やさない・INV50・DR73・Anti-direction 230)。
逐語引用で根拠を固定する: 各所見は、根拠となる canonical(intent-tree.md / intent-compass.md / packets)からの**逐語引用(verbatim quote)**をファイル名とともに添える。引用文字列は改変しない(要約・言い換えをしない・verbatim)。
裏づけできない所見は要修正に上げない: ある所見が canonical からの逐語引用で裏づけられない場合、その所見の深刻度は「要修正」に上げない(1段下げて「推奨」どまりにする=OQ-eae-2。根拠は弱いが指摘の芽はある所見を「情報」へ埋没させない)。逐語引用で裏づけられた所見は、カタログの深刻度の目安どおり従来どおり要修正で出す。
判定は LLM 意味判断・機械照合に寄せない: 「その逐語引用が所見を支えているか」の判定は agent の意味的な読みで行い、grep / scripts/intent-check.mjs / 正規表現の string-match には寄せない(引用が意味的に的外れでも文字列一致で通る表層一致の罠を避ける・Anti-direction 232・INV2/A1)。深刻度 cap も「機械で自動減点」せず「裏づけできない所見は要修正に上げない」という報告規律として持つ。
各軸の添え書きと二重にしない: 各検出軸固有の添え書き(coinage-suspect の言い換え案・groundless-conclusion の訂正可能性の観点・invariant-oracle-missing の付与の観点 等)は軸固有の観点に絞り、根拠の逐語引用は本 Step 4 に一元化する(OQ-eae-3・重複して冗長化させない)。
【異常系】canonical が空/未作成のとき: 逐語引用の裏づけ対象そのものが無いため「引用の裏づけ不能」を明示し、所見を要修正に上げない(コールドスタートで誤って全所見を抑圧しない=unverified-hypothesis の Fail-Safe と同型)。
温度は既存軸のまま: 本規律を足しても、既存軸の沈黙・候補提示・自動改変しない・gate にしないという温度は保たれる(behavior-preserving・warn-only・INV49 の思想を継承・export/実装を止めない)。
検出結果を深刻度別(要修正 / 推奨 / 情報)の一覧で提示し、各指摘に深刻度とともに検査 ID(rules/validate-checks.md の表の ID 列)を併記する(例: 要修正 invariant-conflict: …)。
各項目に「根拠(ファイルと該当記述)」と「修正の提案(再実行すべきスキル or 修正方針)」を必ず添える。
未検証対象とその理由を明示し、スキップした検査は ID で特定する。
残った Open Questions を提示する。
自動修正は一切行わない。
次工程の skill を案内する場合は、「intent-improve を実行して」のような自然文で伝える。共有 rule のスラッシュ記法は利用者向け出力へ転写しない。
出力先はターミナルである。 出力には raw HTML(
<details>/<summary>等の折りたたみ UI)を使わず、詳細は素の Markdown 見出しで区切って退避する(ターミナルでは生タグがそのまま表示され読めなくなるため)。[[...]](memory / delta 用の wikilink 等)の内部記法は、delta / memory ファイルへの記録では正当だが、人向けのターミナル出力ではそのまま出さず普通の語に開く(リンク先の名前を自然文で綴る)。
読み手: 検出結果を見て是正するか判断する人間開発者。 この出力で最初に掴ませること: 「要修正が N 件・推奨が M 件。直すべきはこれ、再実行すべきコマンドはこれ」。検査 ID・未検証対象の列挙は判断材料の詳細なので、件数と要修正項目より後に置く。
出力は結論(件数と要修正)を先頭に立てる。
要修正 N 件 / 推奨 M 件 / 情報 K 件。要修正が 0 件なら「重大な問題なし」と明言する。rules/domain-scope.md を適用して部分ロードした回は、読み込んだ記号数と全記号数を明示する(例:「並行 + always = 41 記号 / 全 829 を対象。compass-rule-decay は全記号を走査=本質的例外」)。無指定で全量読みした回は添えない(従来どおり)。intent-compass の再実行)。coinage-suspect の指摘では、修正の提案欄に正規語への言い換え・統合の更新案(寄せ先の正規語、または妥当な寄せ先が無ければ台帳への正規語追加の検討)を添える。提示のみで自動改変せず、反映は人が承認してからの別アクションとして扱う。groundless-conclusion の指摘では、修正の提案欄にどの根拠(理由・制約・前提・トレードオフ)が辿れないかと訂正可能性の観点(その結論が否定する事実が来たとき再評価できるか)を添える。根拠の補完は更新案の提示のみで自動改変せず、記入は人が承認してからの別アクションとして扱う。unverified-hypothesis の指摘では、修正の提案欄にどの仮説(暫定の確信)に証拠の裏が無いかと反証/未検証の観点(.intent/ の証拠と矛盾しないか・裏取りに何の証拠が要るか)を添える。groundless-conclusion(結論の根拠欠落)とは別欄として分け所見を混ぜない。証拠の補完は更新案の提示のみで自動改変せず、記入は人が承認してからの別アクションとして扱う。dangling-reference の指摘では、修正の提案欄にどの番号参照(Anti-direction N / INV N / DR N)の参照先が宙吊りかと復旧の観点(参照先が退避・統合・削除のどれで消えたか・元の項目を本体へ戻すか参照を現役の番号へ張り替えるか)を添える。既存3軸とは別欄として分け所見を混ぜない。参照の張替えは更新案の提示のみで自動改変せず、記入は人が承認してからの別アクションとして扱う。invariant-oracle-missing の指摘では、修正の提案欄にどの Invariant に検査オラクル(破れたと分かるものさし)が紐づいていないかと付与の観点(機械テスト・手順のどちらで「破れたと分かる」か・付けられない思想的制約なら「ものさし無し」と明記するか)を添える。既存4軸とは別欄として分け所見を混ぜない。オラクルの付与は更新案の提示のみで自動改変せず、記入は人が承認してからの別アクションとして扱う。invariant-impact-reverse の出力では、各項目にどの変更ファイルがどの Invariant の影響パスに一致したかと、その Invariant に**オラクルが付いていれば確認手立て(ものさし)**を添える(「この変更は INV N に触れる → 確認はこのものさしで」)。これは検出の指摘でなく逆引きの案内ゆえ、修正提案でなく「触れる Invariant の確認を促す」案内として出す。誤検知前提(影響パスが粗ければ無関係も拾う)で断定せず、export/実装は止めない(warn-only)。compass-rule-decay の指摘では、修正の提案欄にどの Invariant/DR がどの類型(前提崩れ / 死蔵 / 遺物参照)で陳腐化しているかと整理の観点(前提崩れなら本文・影響パスを現実に合わせて更新するか規律ごと退避するか・死蔵/遺物参照なら現役の担い手が本当にいないか再確認のうえ intent-improve で再整合するか)を添える。(a) 前提崩れは個別に根拠の逐語引用付きで、(b) 死蔵 / (c) 遺物参照は既定で件数サマリ1行(個別列挙は利用者要求時のみ)。既存の staleness / 整合系軸とは別欄として分け所見を混ぜない。整理は更新案の提示のみで自動改変せず、記入・退避は人が承認してからの別アクションとして扱う。利用者へ向けた報告(進捗・完了・確認事項の提示。ターン末尾の要約を含む)を出す直前に、次を点検する(INV105・DR208)。対象は利用者向けの報告文だけで、内部の記録(.intent/ 配下の canonical・ログ)の書き方には適用しない。
.intent/ 不在のみ停止条件: セットアップ手順を案内して終了する。.kiro/specs/)は read-only で観測するのみで、書き換えない(INV1)。.kiro/specs/ が無い案件では draft-content-dropped をスキップし、他検査を続行する。Updated (...)intent-improve の再整合であり、検出(本軸)と修正を混ぜない。記入は人が承認してからの別アクションである(A7/INV5・INV54)。requirement-oracle-check の指摘では、修正の提案欄にどの受入基準が誤った実装を弾けない弱い基準か(根拠の逐語引用付き)と詰め直しの観点(観測できる入力・条件・期待結果へどう書き直すか)を添える。requirements-smell(字面の曖昧語)/ export-draft-mismatch(下書きと packet の整合)とは別欄として分け所見を混ぜない。詰め直しは更新案の提示のみで自動改変せず、下書きへの記入は人が承認してからの別アクションとして扱う。oracle-test-link-missing の指摘では、修正の提案欄にどの受入オラクルが対応の切れ(verified-by の指すテストが実在しない)か・未対応(verified-by が無い)か(根拠の逐語引用付き)と手当ての観点(対応の切れなら消えた/改名したテストへ verified-by を張り直すか対応を再確認するか・未対応なら writeback で実測に基づき verified-by を記入するか「未対応」と明示するか)を添える。invariant-oracle-missing(Invariant にオラクルが在るか)/ trace-downstream-missing(下流リンクが在るか)とは別欄として分け所見を混ぜない。verified-by の記入は更新案の提示のみで自動改変せず、記入は writeback が実測に基づいて行う別アクションとして扱う。provisional-carryover の指摘では、修正の提案欄にどの packet のどのスロット/標識が進行段階と矛盾して持ち越されているか(state と該当スロットの根拠の逐語引用付き)と手当ての観点(人がレビューして確定値へ昇格するか・再訪条件が成立しているなら再訪して確定するか・暫定標識に人確認を付すか)を添える。未定の保持そのものは咎めず、進行との矛盾のみを示す(Anti-direction 300)。ambiguous-deferred-phrasing(未確定動詞の字面)/ decision-slot-empty(空スロット)/ compass-rule-decay(compass 規律の生死)とは別欄として分け所見を混ぜない。確定・state 変更は更新案の提示のみで自動改変せず、人が承認してからの別アクションとして扱う。