確認日:2026-09-27(JST)。変更の棚卸し・分割候補の復元と、分割後のビルド・全テストを完了。2段階のローカルコミットも記録済み。2コミットのpushは完了。初回CIの失敗を修正し、両OS CIも成功。D-01はv0.1.5の公開・公開物照合まで完了。最終のCI・梱包・再取得結果はリリース記録で管理する。 現在の状態は進捗台帳、全ファイルの所属とハッシュは機械可読記録で管理する。
基点はローカルHEAD 6a899d1a21a1023cf807c8b0342bac672e4dc62d。開始時の未コミット変更は761ファイル(既存変更33・新規728)、ステージ済み0。フォルダ単位の表示ではなく git status --porcelain -uall のファイル数で数えた。今回の新規文書2ファイルはこの761件に含めない。
| 所属 | ファイル数 | 分割時の扱い |
|---|---|---|
| T3-1bのみ | 120 | 行整列コミットに現在の内容を含める |
| T3-1cのみ | 612 | ページ送りコミットで追加・変更する |
| 両機能のコード・テスト・設定 | 21 | 検証済みの行整列段階を復元し、後で現在のページ送り段階へ更新する |
| 共通文書 | 4 | README・設定説明・SPEC・TASKSを各段階の実装に合わせる |
| テストプロジェクト | 1 | 行整列用入力のコピー設定を先に追加し、ページ送り用10群を後で追加する |
| 現在の進捗・経緯・監査記録 | 3 | ページ送りまで含む最終段階に入れる |
| 合計 | 761 | 未分類0。ファイル名だけで振り分けず、保存ハッシュ・依存関係も照合した |
内訳はsrc 77、tests 417、tools 137、docs 126、examples 3、README 1。元の33ファイルの差分だけでは、新規728ファイルを含む実装量を把握できない。今回の2文書を加えると763ファイルになる。以前の進捗監査開始時の746件とは観測時点が異なる。
CLAUDE.md の「1タスク=1コミット」に合わせて以下の候補を順に組み立て、行整列1,713件・最終2,375件の全テスト成功を確認した。実装を別々に記録できることと、保留を含む親タスク全体の完了は区別する。
| 順番 | 対象と内容 | 変更するパス数 | 確認する境界 |
|---|---|---|---|
| 1 | T3-1b:ページ内の行整列。Core・PDFの行情報・設定・CLI・JSON/HTML・座標/注釈/YAML・固定入力・開発ツール・文書 | 146 | ページ送りの実装や設定が混ざらず、単独でビルド・全テストが成功すること。V-01の承認済み保留を明記する |
| 2 | T3-1c:限定範囲のページ送り・文書集約。送り/元ページ保持面・CLI/出力保護・入力・診断ツール・検証記録・現在の制限 | 641+今回の2文書 | 1の上に適用すると現在の製品・テスト・固定入力へ戻ること。R-01〜R-03の未成立期待と限定範囲を維持する |
両コミットで変更するパスは26。146 + 641 - 26 = 761 で、146件と641件を新規ファイル数として足さない。2段目の文書はこの整理後の状態を使う。新規2文書のほか、既存のPROGRESS/TASKS更新は開始時761件の同じパスに含まれる。
| 区分 | パス(リポジトリ相対) |
|---|---|
| CLI 4 | src/ReportDiff.Cli/ の CliApplication.cs、ComparisonInput.cs、ComparisonRunner.cs、ConfigurationLoader.cs |
| Core 6 | src/ReportDiff.Core/ の MovementAnnotator.cs、PageComparer.cs、RowCandidateBuilder.cs、RowSelector.cs、RowSupport.cs、RowText.cs |
| Report 8 | src/ReportDiff.Report/ の DirectoryReportWriter.cs、ExclusionSnippet.cs、HtmlReportWriter.cs、ReportDocument.cs、ReportImages.cs、ReportWriter.cs、HtmlRows.cs、ReportRows.cs |
| テスト 1 | tests/ReportDiff.Tests/ReportWriterTests.cs |
| 設定例 2 | examples/settings.yaml、examples/rows.yaml |
| 文書 4 | README.md、docs/CONFIGURATION.md、docs/SPEC.md、docs/TASKS.md |
| プロジェクト 1 | tests/ReportDiff.Tests/ReportDiff.Tests.csproj |
RowGroupValidator.cs は名前にRowを含むが、行整列の受け入れ時には存在せず、後のsame-page-support工程で共通化したものなのでT3-1cに含める。既存の ConsoleProgress.cs、DirectoryComparison.cs、OutputWorkspace.cs、LoadedImage.cs、OutputWorkspaceTests.cs の今回の変更もT3-1cに含める。
接続時のハッシュと受け入れ時のハッシュを照合し、103ファイルを当時のSHA-256と一致する内容で復元した。うち製品ソースは81ファイル。保存先は out/d01-commit-scope/recovered-t3-1b/。これは復元用のファイル群であり、独立した完全なチェックアウトではない。
| 復元元 | 件数 | 確認 |
|---|---|---|
| 現在のファイルが当時と一致 | 78 | そのまま採用 |
| 保存済みソースのコピー | 21 | 計測用変更のない内容をハッシュ照合 |
| ComparisonRunnerの計測コードを除去 | 1 | 保存済み RowBenchmark/instrument.py の追加箇所だけを逆適用し、元ハッシュと一致 |
| ReportWriterTestsの送り用検査を除去 | 1 | 後で追加した4箇所を除去し、元ハッシュと一致 |
| 当時の検証ZIPから設定例を取得 | 2 | ZIP自体と取り出した設定例のハッシュを照合 |
ZIPのSHA-256は bba88892cfc247025372061d229b9f64568783a9dd1b18f5488a52be8327855f。同梱のREADME/設定説明/SPEC/TASKSも文書分割の基点として取り出した。過去の未完了表現や手動確認状態をそのまま現在へ戻さず、各コミットの実装と承認済みの保留に合わせて整理する。
テストプロジェクトは、HEADに Fixtures/row-surfaces/** のコピー設定1行だけを追加した候補を作成した。XMLとして読み取り可能で、現在からページ送り用10行を取り除いた結果と一致する。このプロジェクトファイルには当時の保存ハッシュがないため、103件の復元成功には数えない。 復元ソースのハッシュ一致は、組み立てた中間状態のビルド・テスト成功を代替しない。
テスト用固定入力は合成データで、314 PDF・44 PNG・21 JSON・7 Markdownの386ファイル。T3-1bのrow-surfacesが46、T3-1cのpage-flow系10群が340。生成された入力でも、テストが使うPDF/PNG・期待JSON・説明は一緒に保存する。
開発ツールはRowProbe 17、RowBenchmark 7、verify-row-compatibility.py 1をT3-1bへ、PageFlowProbe 112をT3-1cへ振り分けた。PageFlowProbeは開発用であり、通常の配布実行ファイルの機能ではない。この2実装コミットでは、依存パッケージ、許諾文、ネイティブランタイム、CI定義、ソリューション構成に基点からの変更はない。後続のCI修正は下記で別管理する。
一方、out/ の生成出力・過去の実行物・計測ログ、bin/、obj/、samples/private/ はコミット対象に加えない。READMEにはraw overlayを含む既存3画像があり、この分割でも参照と同梱を維持する。
R-01の元PDFは固定入力群にあるが、R-02の元A4 PDFとR-03の元診断画像にはGit管理外の out/ にしかないものがある。現在のリポジトリをコミットするだけでは、これらの入力のバックアップにはならない。
今回、R-02の26 PDF、R-03の固定manifestが参照する104画像、R-03の3記録、計133ファイルのパスとハッシュを保存一覧にした。R-02の26件とR-03の3記録は過去の保存ハッシュとも一致する。R-03の104画像のハッシュは今回の保存用記録であり、104件すべてが過去の個別ハッシュと一致したという意味ではない。以前の監査の57入力とは集計対象が異なる。
一覧は機械可読記録の retained_local_evidence にも収録した。元ファイル・関連する過去の出力/ログ・復元候補は現在の場所に保持し、コミット整理時に削除しない。別媒体へのバックアップは未実施。133件の一覧だけで過去の全実験が再現できるとは扱わない。特にA4再検証ツールは過去の out/ 内の実行物・出力も利用するため、Gitからの新規取得だけで過去との比較ができる状態ではない。
分割検証とT3-1b/T3-1c別のローカルコミットを完了した。pushは完了。初回CIの失敗を修正してローカル全2,375件も成功。修正 2d7fbc5 もpushし、両OS CI成功を確認。その後、v0.1.5の対象CI・梱包・公開・公開アセット照合まで完了した。管理された別チェックアウトで行整列を組み立て、ページ送りを重ねた状態が当時の製品・テスト・固定入力544ファイルと一致することを確認した。各段階のビルド・全テストと文書リンクを確認済み。検証結果文書2件を加えた時点では765ファイルが未コミットだった。その後コミット記録1件を加え、基点から766件を履歴に記録した。上記761件や641+2件はそれぞれの工程開始時の値として保持する。
| 工程 | 今回の到達点/残る作業 |
|---|---|
| 変更の所属・分割候補 | 完了。761件を分類し、行整列段階の103件を保存ハッシュに一致する形で復元 |
| 中間状態の組み立て・検証 | 完了。146ファイルの候補を別ワークツリーに配置し、製品・RowProbeともビルド警告0・エラー0、全1,713件成功(143.308秒)。候補をハッシュ付きで保存 |
| 最終状態の検証 | 完了。643件を重ね、元の作業ツリー全1,247ファイルと一致。製品・PageFlowProbeともビルド警告0・エラー0、全2,375件成功(556.878秒)。既存の検証済み544件も不変 |
| 限定範囲の受け入れ | R-01〜R-03は承認済みの未解消保留、V-01/R-04も保留を維持。V-02完了、V-04は代理確認で概ねOK。親タスクの完了チェックは今回付けない |
| 環境別確認 | V-03は修正 2d7fbc5 の両OS CI成功を確認。Windows 2,369成功・既存6スキップ、macOS 2,375成功、両OS失敗0。配布ZIPのWindows実機手動確認は未確認。V-05はT2-7の入力・合否条件待ち。これらを新しい機能実装へ広げない |
| コミット・push・公開 | v0.1.5で限定範囲の公開・公開アセット照合まで完了。対象コミットの両OS CI、同じ確定ソース・文書からの発行と梱包、GitHubからの再取得を確認。公開結果 |
今回は製品コード・比較式・しきい値・入力・期待値を変更していない。既存の保留を再承認の条件に戻さず、T3-1dや新しい一般化にも着手しない。