Java CLI 配布物整備と Node upstream parity 強化
Java CLI 配布物整備と Node upstream parity 強化
Release Body
概要
Java CLI の配布成果物を固定し、CLI / workbook / report / SVG / XLSX 出力の実用性と Node upstream 追従性を強化しました。
主な内容は、fat jar / dist.zip の生成、CLI command と batch command の拡充、workbook import/export の編集対象拡張、AI JSON 仕様 Markdown の JAR 内リソース化、SVG タイムライン基準日の修正、WBS SVG / WBS XLSX / report ZIP / OOXML の Node upstream parity 強化です。
主な変更
Java CLI 配布物
mvn packageで runtime 用の単一 fat jar を生成するように変更target/mikuproject.jar
- 配布用 zip を生成するように変更
target/mikuproject-dist.zip
target/mikuproject-dist.zipに以下を同梱mikuproject.jarREADME.mdLICENSEdocs/runtime-java-cli.md
- Java CLI の正規実行経路を
java -jar <bundled-jar>として文書化
CLI / batch command
- CLI entrypoint を主要 Java runtime 機能へ拡張
- report / workbook / patch / AI JSON / XLSX 系の batch command を追加・整理
- usage error / command failed / I/O error の出力方針を整理
- README の CLI command 一覧を更新
- CLI test を拡充し、未知 command、usage error、batch command の pair 不整合などを確認
workbook import/export
- workbook JSON / XLSX の編集対象列を拡張
Tasksに以下の export / import / merge 対応を追加TypePriorityConstraintTypeConstraintDateDeadline
Resourcesに以下の export / import / merge 対応を追加CostActualCostRemainingCostPercentWorkCompleteWorkGroupStandardRateFormatOvertimeRateFormat
Assignmentsに以下の export / import / merge 対応を追加StartVarianceFinishVarianceDelayMilestoneWorkContourCostActualCostRemainingCostOvertimeWorkActualOvertimeWork
- assignment の日時更新用処理を追加
- calendar 系の真偽値列取り込み確認を追加
Calendars.IsBaseCalendarNonWorkingDays.DayWorking
AI JSON 仕様 Markdown
CoreApiAiJson#getAiJsonSpecText()を classpath / JAR 内リソース読み込みに変更- 実行時に
vendor/mikuproject/docs/mikuproject-ai-json-spec.mdを相対パスで直接読まないように変更 - Maven の
process-resourcesで AI JSON 仕様 Markdown を classpath へコピー export-ai-json-specが working directory にvendor/...を持たない状態でも動くことを確認する CLI test を追加
SVG / report 出力
- daily / weekly SVG のタイムライン基準日を、固定日付ではなくモデル内の最初の task 開始日に基づくように変更
- サンプル月以外の日付を持つ task が SVG viewBox 外へ配置される問題を修正
- daily / weekly / monthly SVG の日付軸、背景、bar、milestone、summary、月次カレンダー構造を Node upstream に近づける修正を追加
- weekly SVG の viewport trim、label placement、dependency connector routing を補強
- report bundle の entry 順を Node upstream に合わせて変更
wbs.xlsxwbs.mdmermaid.mmddaily.svgweekly.svgmonthly-calendar/*.svg
XLSX / OOXML
- report / CLI / Core API の主要導線を、独自 workbook byte 形式から実 OOXML ZIP 出力へ切り替え
- deterministic stored ZIP writer を追加
- report bundle / monthly SVG ZIP / OOXML workbook ZIP の決定性を強化
- XLSX style 生成を、固定 style から動的 style book 生成へ拡張
- fill
- alignment
- number format
- wrap
- border
- worksheet の data validation build / parse を追加
- trailing empty cell 保持を追加
XlsxCellLikeにformulaを追加XlsxSheetLikeにfreezePaneを追加XlsxFreezePaneLikeを追加- worksheet XML の build / parse で formula cell と freeze pane を扱うように変更
- inline string の
xml:space、空セル、数値表現、worksheet XML 整形を調整 - package XML の出力整形を調整
WBS XLSX
- WBS 表示で
WBSが空の場合にOutlineNumberを使うよう修正 - row height、hidden columns、date band、progress band、legend / summary、predecessor 表示、calendar 表示を Node upstream に近づける修正を追加
- UID / ID / WBS / outline level 用の identifier cell を追加
- task label に summary / milestone / task の prefix と outline level に応じた indent を反映
- progress / detail / task cell の wrap や null 表現を調整
- header / title / legend / reference cell の style を upstream 寄りに調整
Project XLSX
- Project / Tasks / Resources / Assignments / Calendars / NonWorkingDays / Options sheet の列幅を追加
- boolean 入力用の data validation を追加
- Options sheet を
BooleanChoice/Meaning形式へ変更 - Project sheet の
ScheduleFromStartに boolean data validation を追加 - Project XLSX のテストで列幅、data validation、Options sheet の内容を確認
Patch JSON
delete_resource/delete_calendarで、削除拒否時の blocker 情報を warning に含めるよう改善
Node upstream parity / テスト
- Java CLI 出力の決定性を確認するテストを追加
- Node upstream の report directory と byte 比較する opt-in テストを追加
- Node upstream report directory 生成用のテストスクリプトを追加
- Node upstream report bundle ZIP 生成用のテストスクリプトを追加
- Node upstream monthly SVG ZIP 生成用のテストスクリプトを追加
MikuprojectNodeParityTestに以下を追加- report directory の byte-level parity
- report bundle ZIP の byte-level parity
- monthly SVG ZIP の byte-level parity
ExcelIoTestに formula / freezePane の OOXML package export / import 確認を追加ProjectXlsxTestに Project XLSX の列幅、boolean data validation、Options sheet の確認を追加
ドキュメント
README.mdを更新- Java CLI の配布成果物を明記
- CLI command 一覧を更新
- Development Docs の導線を追加
- Java 版の現在地を
coreとCLI / reportに分けて整理
docs/runtime-java-cli.mdを追加- runtime 配布物
- dist.zip の内容
- 正規実行経路
- CLI 利用前提
- AI JSON 仕様 Markdown の JAR 内リソース化
- report SVG の注意点
docs/development.mdを更新- focused test command
- upstream 追随時の確認フロー
- docs-only 更新時の運用メモ
docs/remaining-migration-items.mdを更新- Java 版の現在地、残件、保守フェーズの論点を整理
docs/upstream-class-mapping.md,docs/upstream-test-mapping.md,docs/upstream-followup-log.mdを追加・更新- upstream file と Java class / test の対応
- upstream 追随時の確認単位
- report / workbook / import / AI view などの follow-up 記録
TODO.mdを整理- Java 版と upstream 側 TODO の役割を分離
- straight conversion が薄い箇所と byte-level parity 方針を整理
- 再開ポイントを追加
vendor/mikuproject/docs/配下に workbook / calendar / report / regression plan 関連文書を追加・更新
確認状況
確認状況は以下です。
mvn package -DskipTests- 実行済み
target/mikuproject.jarとtarget/mikuproject-dist.zipの生成確認済み
mvn test- セッション内で成功確認済み
mvn package- TODO 上で通過済みとして記録
- opt-in Node parity
- TODO 上で通過済みとして記録
dependency.xmlの report directory / report bundle ZIP / monthly SVG ZIP- Node upstream と byte-level parity 済みとして記録
注意点
- Node upstream 比較テストは opt-in です。
- Node upstream 比較には以下が必要です。
MIKUPROJECT_RUN_NODE_PARITY=truevendor/mikuproject/node_modules
既知の残課題
ProjectXlsxExport*の editable cell styling- sheet theme
- Project sheet の Settings section / merged range
projectpatchjsonの warning / blocker details の upstream 構造比較- 各 report の option 契約と比較粒度をどこまで細かく保守するか