背景
現在、lint / test / build / custom checker / CI workflow が分散している。
AGENTS.md では変更 package に対応する CI workflow のコマンドを確認して実行することを要求しているが、Agent / 人間の双方にとって「repository が設計規約込みで正しい」ことを確認する canonical command が欲しい。
目的
機械検査を npm run verify に統合し、自然言語規約と executable policy の関係を明確にする。
実装案
root に以下のような入口を作る。
内部で必要に応じて以下を実行する。
- format check
- lint
- typecheck
- architecture check
- filesystem / structure check
- API contract check
- env contract check
- workflow check
- tests
また、機械規約に stable ID を持たせる。
例:
ARCH-001 package isolation
TASK-001 one-task-one-directory
TASK-002 lazy task import
DB-001 no-write-in-loop
DB-002 no-find-first
TEST-001 no-describe
API-001 typed-validator
ENV-001 env-only-in-config
CI-001 dependency-trigger
AGENTS.md の役割
最終的に以下へ寄せる。
- machine-readable policy = rule
- AGENTS.md = rationale / exception / design philosophy
将来的には AGENTS.md に「禁止」「必ず」「〜に限る」等の normative rule を追加する場合、policy ID または human-only annotation を要求する meta-check も検討する。
Acceptance Criteria
追加: natural-language policy coverage checker
これは将来検討ではなく、Policy as Code を維持するための実装対象とする。
AGENTS.md / agents/*.md に新しい normative rule が自然言語だけで追加されると、時間とともに再び「ドキュメントを正しく読めること」が前提になってしまう。
そのため、規約文に以下のどちらかを要求する。
- executable policy の stable ID
- 機械化しない理由を示す
human-only annotation
例:
- [ARCH-003] shared から runtime package を import しない
または:
<!-- policy: human-only -->
- 共通化を提案する前に、framework が変わっても成立するか検討する
checker の対象候補
日本語・英語の normative wording を heuristic に検出する。
- 必ず
- 禁止
- 〜しない
- 〜に限る
- must
- never
- required
完全な自然言語理解を目指さず、「新しい強い規約が policy catalog から漏れること」を検出する safety net とする。
Acceptance Criteria 追加
Policy coverage checker の実装 issue
natural-language policy coverage の具体実装は以下で追跡する。
この issue (#38) では policy catalog と npm run verify への統合を担当する。
背景
現在、lint / test / build / custom checker / CI workflow が分散している。
AGENTS.mdでは変更 package に対応する CI workflow のコマンドを確認して実行することを要求しているが、Agent / 人間の双方にとって「repository が設計規約込みで正しい」ことを確認する canonical command が欲しい。目的
機械検査を
npm run verifyに統合し、自然言語規約と executable policy の関係を明確にする。実装案
root に以下のような入口を作る。
内部で必要に応じて以下を実行する。
また、機械規約に stable ID を持たせる。
例:
AGENTS.md の役割
最終的に以下へ寄せる。
将来的には
AGENTS.mdに「禁止」「必ず」「〜に限る」等の normative rule を追加する場合、policy ID または human-only annotation を要求する meta-check も検討する。Acceptance Criteria
npm run verifyがあるAGENTS.mdから機械判定可能な詳細ルールを削減する追加: natural-language policy coverage checker
これは将来検討ではなく、Policy as Code を維持するための実装対象とする。
AGENTS.md/agents/*.mdに新しい normative rule が自然言語だけで追加されると、時間とともに再び「ドキュメントを正しく読めること」が前提になってしまう。そのため、規約文に以下のどちらかを要求する。
human-onlyannotation例:
または:
checker の対象候補
日本語・英語の normative wording を heuristic に検出する。
完全な自然言語理解を目指さず、「新しい強い規約が policy catalog から漏れること」を検出する safety net とする。
Acceptance Criteria 追加
AGENTS.md/agents/*.mdを checker 対象にするPolicy coverage checker の実装 issue
natural-language policy coverage の具体実装は以下で追跡する。
この issue (#38) では policy catalog と
npm run verifyへの統合を担当する。