#942 (927728f) は skills/fsl/reference.md を削除し、skills/fsl/references/*.md の9ファイルへ分割した。機能的な参照は正しく更新されており、tools/aggregate_changelog.sh:562 の product-surface glob も skills/fsl/references/* になっていて、削除済みパスの死んだエントリは残っていない。rust/fslc/tests/literate_docs_contract.rs:184 が実際に読むパスも skills/fsl/references/commands.md に更新済み。CI は 18 pass で通っている。
残っているのは記述側で、性質の異なる3つが混ざっている。
1. 規範的な surface list がスクリプトと食い違う
docs/DESIGN-changelog-fragments.md:243 は、fragment 必須となる product surface を列挙する箇所で skills/fsl/reference.md を挙げている:
The surface list is the coupled-change contract's list, not a subset of it: rust/, src/fslc/, specs/, examples/, docs/LANGUAGE*, and skills/fsl/reference.md
しかし実際の tools/aggregate_changelog.sh:562 は skills/fsl/references/* を見ている。この設計文書はそのスクリプトを規定する文書なので、文書から実装を起こす読者は誤った glob を書く。宣言と執行の不一致そのもの。
2. 「分割は rejected」という受理済み決定が木と矛盾している
同じ文書の :29 は、受理済み決定として次を記録している:
Fragmenting the contract documents — docs/LANGUAGE.md, docs/LANGUAGE.ja.md, skills/fsl/reference.md — is rejected (option C2)
#942 はそのうち skills/fsl/reference.md をまさに分割した。決定文もその根拠も更新されていない。
ただし実質的な違反ではないと判断する根拠を書き残す。C2 を却下した理由は2つあり、どちらも今回の分割には当たらない:
つまり却下の射程が「契約文書」として3ファイルを一括で名指ししていたが、根拠 (b) は実際には2ファイルにしか及んでいなかった。決定の射程と根拠の射程がずれていたのを、#942 が踏んで初めて表面化した。決定文の射程を根拠に合わせて書き直すべきで、C2 の却下自体を撤回する話ではない。
skills/fsl/reference.md の分割を記録した設計ノートは存在しない。docs/DESIGN-ci.md と docs/DESIGN-annotations.md にパスの付随更新があるだけである。
3. 参照切れ 31件 / 15ファイル
docs/DESIGN-changelog-fragments.md 13
rust/fslc/tests/literate_docs_contract.rs 3
rust/fslc/src/main.rs 2
rust/fsl-syntax/src/ai_project.rs 2
docs/DESIGN-nested-option-support.md 2
tests/test_sum_decreases.py 1
rust/fslc/tests/issue_563_ai_check_project_fields.rs 1
rust/fslc/tests/issue_542_ai_check_rejects_unparseable_clauses.rs 1
rust/fslc/tests/issue_524_mutate_default_cap.rs 1
rust/fslc/tests/issue_250_initialization.rs 1
rust/fslc/tests/fixtures/issue_542_unvalidated_raw_block.fsl 1
rust/fsl-tools/tests/fixtures/document_kpi_fixture.fsl 1
rust/fsl-tools/tests/document.rs 1
docs/DESIGN-ui.md 1
docs/DESIGN-document-requirement-claim-ir.md 1
いずれも doc コメント・コード注釈・散文で、ビルドは壊れない。壊れるのは読者の追跡である。このリポジトリで「引用先がその主張を検証しているか」は4回再発した欠陥クラスなので、存在しないファイルを権威として指す注釈を残さない。
直すときの区別(ここを混ぜないこと)
docs/DESIGN-changelog-fragments.md の13件は性質が違うものが混在している:
:55 :58 :63 :89 — 分割前の共変更回数・コミット統計などの歴史的測定値。当時の状態を正しく記述しているので書き換えない。CHANGELOG.md の履歴記述と同じ扱い。
:29 :243 — 現行契約についての規範的記述。上の 1 と 2 のとおり直す。
CHANGELOG.md にも同じ文字列が多数あるが、すべて過去のリリースノートで当時の状態を正しく記述しているため対象外。
受け入れ条件
Refs #941, #942, #763, #737.
#942 (
927728f) はskills/fsl/reference.mdを削除し、skills/fsl/references/*.mdの9ファイルへ分割した。機能的な参照は正しく更新されており、tools/aggregate_changelog.sh:562の product-surface glob もskills/fsl/references/*になっていて、削除済みパスの死んだエントリは残っていない。rust/fslc/tests/literate_docs_contract.rs:184が実際に読むパスもskills/fsl/references/commands.mdに更新済み。CI は 18 pass で通っている。残っているのは記述側で、性質の異なる3つが混ざっている。
1. 規範的な surface list がスクリプトと食い違う
docs/DESIGN-changelog-fragments.md:243は、fragment 必須となる product surface を列挙する箇所でskills/fsl/reference.mdを挙げている:しかし実際の
tools/aggregate_changelog.sh:562はskills/fsl/references/*を見ている。この設計文書はそのスクリプトを規定する文書なので、文書から実装を起こす読者は誤った glob を書く。宣言と執行の不一致そのもの。2. 「分割は rejected」という受理済み決定が木と矛盾している
同じ文書の
:29は、受理済み決定として次を記録している:#942 はそのうち
skills/fsl/reference.mdをまさに分割した。決定文もその根拠も更新されていない。ただし実質的な違反ではないと判断する根拠を書き残す。C2 を却下した理由は2つあり、どちらも今回の分割には当たらない:
site reference freshnessstatus check の上流に来る」—tools/build_site_reference.pyはskills/を一切参照していない(確認済み)。この理由はdocs/LANGUAGE.md/docs/LANGUAGE.ja.mdにのみ当たり、skill 側の reference には元から当たらない。refactor(skills): split the FSL reference so activation loads 7,102 tokens instead of 19,821 #942 はその2つを分割していない。つまり却下の射程が「契約文書」として3ファイルを一括で名指ししていたが、根拠 (b) は実際には2ファイルにしか及んでいなかった。決定の射程と根拠の射程がずれていたのを、#942 が踏んで初めて表面化した。決定文の射程を根拠に合わせて書き直すべきで、C2 の却下自体を撤回する話ではない。
skills/fsl/reference.mdの分割を記録した設計ノートは存在しない。docs/DESIGN-ci.mdとdocs/DESIGN-annotations.mdにパスの付随更新があるだけである。3. 参照切れ 31件 / 15ファイル
いずれも doc コメント・コード注釈・散文で、ビルドは壊れない。壊れるのは読者の追跡である。このリポジトリで「引用先がその主張を検証しているか」は4回再発した欠陥クラスなので、存在しないファイルを権威として指す注釈を残さない。
直すときの区別(ここを混ぜないこと)
docs/DESIGN-changelog-fragments.mdの13件は性質が違うものが混在している::55:58:63:89— 分割前の共変更回数・コミット統計などの歴史的測定値。当時の状態を正しく記述しているので書き換えない。CHANGELOG.mdの履歴記述と同じ扱い。:29:243— 現行契約についての規範的記述。上の 1 と 2 のとおり直す。CHANGELOG.mdにも同じ文字列が多数あるが、すべて過去のリリースノートで当時の状態を正しく記述しているため対象外。受け入れ条件
docs/DESIGN-changelog-fragments.md:243の surface list がtools/aggregate_changelog.sh:562と一致する:29の C2 却下の射程が根拠の射程と一致し、skills/fsl/references/*が現状であることが読める:55:58:63:89等)は書き換えられていないskills/fsl/references/の適切なファイルを指す(SKILL.md のルーティング表で決める)changelog.d/フラグメントを追加する(CHANGELOG.mdを直接編集しない)rust/配下を触るため、cargo fmt/cargo clippy --workspace --all-targets -- -D warnings/ 該当パッケージのテストが exit 0Refs #941, #942, #763, #737.