Skip to content

Latest commit

 

History

History
91 lines (62 loc) · 11.6 KB

File metadata and controls

91 lines (62 loc) · 11.6 KB

D-01:行整列・ページ送りのコミット範囲

確認日: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件とは観測時点が異なる。

2コミットの候補

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件の同じパスに含まれる。

両段階で変更する26ファイル

区分 パス(リポジトリ相対)
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や新しい一般化にも着手しない。