Skip to content

devel 成果を main に反映#32

Merged
igapyon merged 60 commits intomainfrom
devel
Mar 30, 2026
Merged

devel 成果を main に反映#32
igapyon merged 60 commits intomainfrom
devel

Conversation

@igapyon
Copy link
Copy Markdown
Owner

@igapyon igapyon commented Mar 30, 2026

devel 成果を main に反映

igapyon added 30 commits March 28, 2026 09:11
大きくなってきたので、local-html-toolsから独立
## 概要

この変更では、`mikuproject` の紹介用トップページを追加し、ビルド時に `index.html` を生成する導線を追加しました。あわせて、ビルド時に `{{BUILD_DATE}}` を日付文字列へ置換する処理を追加し、`TODO.md` を現状の課題に合わせて整理しています。

## 変更内容

- `index-src.html` を新規追加
  - `mikuproject` の概要、機能、利用例、使い方、補足事項をまとめた紹介ページを追加
  - `mikuproject.html`、`README.md`、`mikuproject-spec.md` への導線を追加
  - スクリーンショット用のプレースホルダ枠を追加
- `index.html` を生成物として追加
- `scripts/build-project.mjs` を更新
  - `index-src.html -> index.html` をビルド対象に追加
  - `{{BUILD_DATE}}` を `YYYY-MM-DD` 形式の日付へ置換する処理を追加
- `TODO.md` を整理
  - 既存の長い項目群を整理し、現時点の課題に絞った内容へ更新

## 影響範囲

- トップページとして `index.html` が追加されます
- 既存のビルド処理で `mikuproject.html` に加えて `index.html` も生成されます
- `TODO.md` の内容が大きく整理されます

## 確認ポイント

- `build-project.mjs` 実行時に `index.html` が生成されること
- `index.html` 内の `Updated:` 表示に `{{BUILD_DATE}}` ではなく日付が埋め込まれること
- `index-src.html` の導線が `mikuproject.html`、`README.md`、`mikuproject-spec.md` を指していること
- `TODO.md` が現状の課題一覧として読める内容になっていること

## 補足

- スクリーンショットは実画像ではなく、差し込み用のプレースホルダ枠です
トップページの追加とビルド時メタデータ埋め込み対応
## 概要

single-file WebApp として `mikuproject.html` 単体で `Mermaid Preview` を再現できるように、`Mermaid` ランタイムをリポジトリへ同梱しました。あわせて、画面上の補助情報とデバッグ向け表示を整理し、`Mermaid gantt` のタスク表示へ WBS を含めるよう更新しています。

## 変更内容

### 1. Mermaid ランタイムの同梱と single-file 化の明確化

- `src/vendor/mermaid/mermaid.min.js` を追加
- `src/vendor/mermaid/README.md` を追加し、取得元 URL・バージョン・更新手順を記載
- `mikuproject-src.html` から vendored Mermaid を読み込む構成へ変更
- `README.md` に、`build:app` が `src/vendor/mermaid/mermaid.min.js` を含めて single-file HTML を生成することを追記
- `TODO.md` の Mermaid 関連項目を、方針検討から運用整理寄りの内容へ更新

### 2. Mermaid gantt 出力への WBS 表示追加

- `src/ts/msproject-xml.ts` / `src/js/msproject-xml.js` を更新
- Mermaid gantt の task label と section 名に、`wbs` または `outlineNumber` を含めるよう変更
- これにより、`1.1 Design` のような WBS 付き表記で gantt を確認できるように変更

### 3. 画面 UI の整理

- `XLSX 編集の扱い` を常設カードから `(i)` ヘルプへ移動
- `設定` コーナーを新設し、`祝日設定` をそのサブコーナーへ再配置
- `設定` コーナーをアコーディオンで開閉できるよう変更
- `デバッグ` コーナーを新設し、以下を集約
  - `MS Project XML`
  - `内部モデル(JSON)`
  - `CSV + ParentID`
  - `CSV + ParentID 入力`
  - `Mermaid gantt`
- `Mermaid Preview` は主画面に残し、生成テキストは `デバッグ` へ移動

### 4. テスト追加・更新

- `tests/mikuproject-single-html.test.js` を追加
  - `mikuproject-src.html` から生成した HTML に vendored Mermaid が内包されることを確認
  - 外部 `src` 参照が残らないことを確認
- `tests/mikuproject-main.test.js` を更新
  - UI 再編後の DOM 構造と文言に追随
  - Mermaid gantt の WBS 付き出力期待値に追随

## 影響範囲

- `mikuproject.html` の生成物
- Mermaid preview の配布形態
- Mermaid gantt の表示内容
- 画面上の情報配置と操作導線

## 確認観点

- `mikuproject.html` 単体で `Mermaid Preview` が再現できること
- Mermaid gantt のタスク名・section 名に WBS が含まれること
- `設定` / `デバッグ` アコーディオン配下へ各 UI が移動していること
- `XLSX 編集の扱い` が `(i)` ヘルプとして参照できること
Mermaid ランタイムの同梱と UI 再編、および Mermaid gantt への WBS 表示対応
## 概要

`mikuproject` の画面構成を見直し、操作を `Input / Transform / Output` の3つのタブで切り替えられるように変更しました。あわせて、`Settings` / `Debug` の位置づけを整理し、画面配色も調整しています。

## 変更内容

### 画面構成の再編

- `Input / Transform / Output` の上部タブを追加
- 各タブに対応するパネルを分離し、選択中の内容のみ表示する構成へ変更
- `Settings` と `Debug` はタブ外の独立アコーディオンとして配置
- `Settings` 見出しを `4 Settings`、`Debug` 見出しを `5 Debug` に変更

### 各タブへの機能再配置

- `Input`
  - サンプル読込
  - `XML Import`
  - `XLSX Import`
  - `CSV を解析`
- `Transform / Inspect`
  - `XML を解析`
  - `再読込テスト`
  - `Mermaid を生成`
  - サマリー表示
  - `Mermaid Preview`
- `Output`
  - `XML を再生成`
  - `XML Export`
  - `CSV を生成`
  - `XLSX Export`
  - `WBS XLSX Export`
  - `SVG保存`

### タブ切り替え処理の追加

- タブ選択時に対応パネルのみ表示する処理を追加
- 初期表示タブを `Input` に設定
- 非表示パネルに `hidden` を適用した際、CSS 側で確実に非表示になるよう調整

### スタイル調整

- タブ、ボタン、カード、背景などの見た目を更新
- 配色を紫系・淡色ベースへ調整
- タブのアクティブ状態や番号バッジの見た目を追加

### テスト更新

- 画面初期表示の DOM 構造を新しいタブ構成に合わせて更新
- 初期表示時に `Input` が表示され、他タブが非表示であることを確認する内容へ更新

## 影響範囲

- 画面レイアウト
- タブ切り替え UI
- 初期表示時の見え方
- テストコード

## 確認観点

- `Input / Transform / Output` タブで表示内容が切り替わること
- 初期表示が `Input` であること
- `Settings` / `Debug` が独立アコーディオンとして表示されること
- `Mermaid を生成` が `Transform / Inspect` に配置されていること
mikuproject の画面を `Input / Transform / Output` タブ構成へ再編し、配色を調整
## 概要

`mikuproject` の UI、ビルド運用、XLSX import/export、WBS workbook 表示、仕様ドキュメントをまとめて更新する変更です。

## 変更内容

### ドキュメントと運用ルールの整理

- `README.md` にドキュメントの役割分担を追記
- `README.md` に `build:js` / `build:html` / `build:xlsx-sample` / `build:app` の役割を追記
- `README.md` に `src/ts/` を正本、`src/js/` を生成物として扱う運用ルールを追記
- `TODO.md` に「未完了の作業だけを書く」方針を追記し、タスク内容を更新
- `mikuproject-spec.md` に README / TODO との役割分担を追記

### ビルドとテスト実行まわりの整理

- `package.json` に `build:js` と `build:html` を追加
- `build` スクリプトに `build:xlsx-sample` を含めるよう更新
- `scripts/build-project.mjs` で `--js-only` / `--html-only` をサポート
- `scripts/run-tests.mjs` を追加し、テストをグループ分けして実行できるよう追加

### UI の整理

- 画面を `Input / Transform / Export` のタブ構成に整理
- 各タブ内に操作ボタンと関連表示を集約
- `WBS XLSX` 用の祝日設定 UI を出力系の画面に整理
- `main.ts` / `main.js` にタブ切り替え制御を追加
- 各操作後に関連タブへ遷移する挙動を追加

### XLSX import/export の拡張

- `mikuproject-spec.md` 上の import 対象列を更新
- `Tasks` シートの import 対象に `Notes` を追加
- `NonWorkingDays` シートを import 対象として追加
- `Calendars.Exceptions` は `NonWorkingDays` シートとして限定的に扱う方針へ更新
- `excel-io` に列の `hidden` とセルの `verticalAlign` を追加

### WBS workbook 表示の見直し

- WBS workbook の表頭、凡例、日付帯、タスク表示まわりを調整
- タスク詳細列や一部列の非表示制御を追加
- 進捗表示、祝日表示、基準日まわりのレイアウトを更新
- 長い値の表示や行高に関するテストを更新

### サンプルデータと XML 仕様の更新

- `SAMPLE_XML` の `Calendars.Exceptions` を拡充
- 祝日名として `公式` / `推定` を含む例外データを追加
- `mikuproject-spec.md` に WBS ステータスを `Task.ExtendedAttribute` で扱う方針を追記

## テスト

### 追加・更新されたテストコード

- `tests/mikuproject-excel-io.test.js`
- `tests/mikuproject-main.test.js`
- `tests/mikuproject-project-xlsx.test.js`
- `tests/mikuproject-wbs-xlsx.test.js`
XLSX import/export と WBS 表示を拡張し、UI とビルド運用を整理
## 概要

- `Input / Transform / Export` の各タブで、説明・設定・デバッグ向け情報の配置を整理します。
- `XLSX 編集の扱い` をヘルプアイコン `(i)` に集約し、デバッグ情報や設定をアコーディオンで開閉できるようにします。
- `XLSX import` まわりの重い UI テストの一部を、`project-xlsx` 側の単体テストへ移します。

## 変更内容

### UI の整理

- `Input` タブの操作ボタン順を `XML Import / XLSX Import / CSV を解析 / サンプル読込` に変更
- `Input` タブの primary ボタンを `XML Import` に変更
- `XLSX 編集の扱い` の説明本文を `(i)` ヘルプアイコン内へ移動
- `Input` タブに `デバッグ情報` アコーディオンを追加し、`MS Project XML` と `CSV + ParentID 入力` を格納
- `XML 保存状態` を `デバッグ情報` の下へ移動
- `Transform` タブに `デバッグ情報` アコーディオンを追加し、`内部モデル(JSON)`、`Mermaid gantt`、`Project / Tasks / Resources / Assignments / Calendars` の詳細表示を格納
- `Transform` タブの `取込結果` を末尾へ移動
- `Export` タブに `設定` アコーディオンを追加し、`WBS XLSX の祝日指定` を格納
- `Export` タブに `デバッグ情報` アコーディオンを追加し、`CSV + ParentID` 出力を格納
- 各アコーディオンはデフォルトで閉じる構成

### スタイル調整

- アコーディオン用スタイルを追加
- `XLSX 編集の扱い` タイトル行のレイアウトを追加
- ツールチップ内の説明文・箇条書きの文字色とマーカー色を調整

### テスト整理

- `main.ts` に `__mikuprojectMainTestHooks` を追加し、summary / validation 表示のテスト用フックを公開
- `tests/mikuproject-main.test.js` の UI モックを新しいレイアウトへ更新
- `tests/mikuproject-main.test.js` から、一部の `xlsx import` 検証・XML export 確認を外して軽量化
- `tests/mikuproject-project-xlsx.test.js` に、`xlsx import` 後の差分・検証・XML export を UI 起動なしで確認するテストを追加
- `TODO.md` に、テスト実行時間や `main.test.js` 分割に関する追加タスクを追記

## テスト

- `tests/mikuproject-main.test.js` を更新
- `tests/mikuproject-project-xlsx.test.js` にテストを追加

## 補足

- `index.html` と `mikuproject.html` は生成物更新を含みます
UI をタブ内アコーディオン中心に整理し、XLSX import テストを UI 依存から分離
## 概要

- `XML Export` を含む export 系操作の前に、現在の内部モデルから XML テキストを同期するよう変更します。
- `XML を再生成` ボタンを削除し、保存前の暗黙再生成へ挙動を整理します。
- `SVG保存` も内部モデルからの再生成を前提に、単独で保存できるよう調整します。

## 変更内容

### Export フローの整理

- `XML Export` 実行時に、`xmlInput` の現在値ではなく、内部モデルから再生成した XML を保存対象に変更
- `CSV を生成` 実行前に、内部モデルから XML テキストを同期
- `XLSX Export` 実行前に、内部モデルから XML テキストを同期
- `WBS XLSX Export` 実行前に、内部モデルから XML テキストを同期
- `SVG保存` 実行前に、内部モデルから XML テキストを同期し、`Mermaid gantt` と SVG を再生成してから保存するよう変更

### UI の整理

- `Export` タブから `XML を再生成` ボタンを削除

### 実装整理

- `syncXmlTextFromModel` を追加し、内部モデルから `xmlInput` を同期する処理を共通化
- `downloadMermaidSvgBtn` の有効化条件を `currentMermaidSvg` 依存から `currentModel` 依存へ変更
- `SVG保存` の click ハンドラを非同期処理前提に変更

## テスト

- `tests/mikuproject-main.test.js` を更新
- `XML Export` が手編集テキストではなく再生成 XML を保存することを確認するテストを追加
- `CSV を生成`、`XLSX Export`、`WBS XLSX Export`、`SVG保存` の各操作で、手編集した XML コメントが保存・生成処理へ残らないことを確認するテストを追加
- 既存の `exports xml from the current model` テストは、`XML を再生成` ボタンではなく `XML Export` を通す形へ更新

## 補足

- `mikuproject.html` は生成物更新を含みます
Export 操作を内部モデル基準の保存フローへ統一し、XML 再生成ボタンを廃止
## 概要

- `Input / Transform / Output` の各タブで、操作ボタン、説明、デバッグ情報の配置を見直します。
- `Transform` タブ表示時に `XML` 解析と `Mermaid` 生成を暗黙実行するよう変更します。
- export 系操作の前に、内部モデルから `XML` を暗黙再生成する挙動へ統一します。

## 変更内容

### タブと操作導線の整理

- タブ名を `Input / Transform / Output` に整理
- `Input` のボタン順を `MS Project XML / XLSX / CSV / サンプル` に変更
- `Input` の primary を `MS Project XML` に変更
- `Output` のボタン順を `MS Project XML / XLSX / WBS XLSX / SVG / CSV` に変更
- `Output` のボタン名を短い表記へ変更

### Transform の自動処理

- `Transform` タブを開くタイミングで、暗黙に `XML` 解析と `Mermaid` 生成を実行するよう変更
- その前提で `XML を解析` と `Mermaid を生成` ボタンを削除
- `XML` 読込、`XLSX` 取込、`CSV` 解析から `Transform` へ遷移した場合でも、初回表示で `Mermaid Preview` が表示されるよう修正
- 自動実行時は silent 扱いにして、取込結果のステータス表示を不要に上書きしないよう調整

### Export フローの整理

- `XML Export` 実行時に、テキストエリアの手編集内容ではなく、内部モデルから再生成した `XML` を保存するよう変更
- `SVG`、`CSV`、`XLSX`、`WBS XLSX` についても、クリック時に内部モデルから `XML` を同期してから出力するよう変更
- `SVG` 保存時は `Mermaid gantt` と SVG も再生成してから保存するよう変更
- `XML を再生成` ボタンを削除

### 情報配置の見直し

- `XLSX 編集の扱い` の説明一式を `(i)` ヘルプ内へ集約
- `Input` に `デバッグ情報` アコーディオンを追加し、`MS Project XML` と `CSV + ParentID` 入力を格納
- `XML 保存状態` を `デバッグ情報` の下へ移動
- `Transform` に `デバッグ情報` アコーディオンを追加し、`内部モデル(JSON)`、`Mermaid gantt`、`Project / Tasks / Resources / Assignments / Calendars`、`再読込テスト` を格納
- `Transform` の `取込結果` を末尾へ移動
- `Output` に `設定` アコーディオンを追加し、`WBS XLSX の祝日指定` を格納
- `Output` に `デバッグ情報` アコーディオンを追加し、`CSV + ParentID` 出力を格納
- 各アコーディオンはデフォルトで閉じる構成

### Mermaid Preview の見直し

- `Mermaid Preview` の見出し文言を除去
- `Mermaid Preview` を囲っていた角丸の枠を除去
- 要約カード群を `Mermaid` 表示の下へ移動

### テストと生成物

- `tests/mikuproject-main.test.js` の DOM 構造と挙動確認を新レイアウトへ追従
- `XML` 読込と `CSV` 解析後に、初回の `Transform` 表示で `Mermaid` が生成済みであることを確認するテストを追加
- `mikuproject.html` は生成物更新を含む

## テスト

- `npm run build:js`
- `npm run build:html`
- `npx vitest run tests/mikuproject-main.test.js tests/mikuproject-single-html.test.js`
Transform / Output 中心に UI を再整理し、Mermaid 生成と export フローを自動化
## 概要

`mikuproject` に対して、生成AI連携用の JSON 仕様・設計メモ・UI 出力機能を追加します。あわせて、既存ドキュメントを `docs/` 配下へ整理し、WBS XLSX / Excel IO 周辺の改善も行います。

## 変更内容

### ドキュメント整理

- `mikuproject-spec.md` を `docs/spec.md` へ移動
- `mikuproject-gap-notes.md` を `docs/gap-notes.md` へ移動
- `TODO.md` を `docs/TODO.md` へ移動
- `README.md` の関連ドキュメント参照を更新
- 生成AI連携の設計メモとして `docs/msprojectxml-ai-integration.md` を追加
- 生成AIへ読ませる前提の仕様として `docs/mikuproject-ai-json-spec.md` を追加

### 生成AI連携の追加

- `project_overview_view` の JSON 出力を追加
- `phase_detail_view` の JSON 出力を追加
- `phase_detail_view` に `full` / `scoped` の切り替えを追加
- `phase_detail_view scoped` では `phase UID` / `root UID` / `max depth` 相当の指定で部分木を切り出せるように変更
- `project_draft_view` JSON を取り込んで内部モデルへ変換する入口を追加
- 生成AI連携用の UI を `mikuproject-src.html` / `mikuproject.html` に追加・整理

### WBS XLSX / Excel IO の改善

- Excel IO に `fontSize` の読書きを追加
- Project XLSX / WBS XLSX の見出しセルなどで `fontSize` を利用する変更を追加
- WBS XLSX にレイアウト補助 (`WbsSheetLayoutHelper`) を追加
- WBS XLSX のセル参照・結合範囲生成を補助関数ベースへ整理
- WBS シートの週帯やサマリーブロック周辺の生成処理を調整

### テスト更新

- 生成AI連携の JSON 出力に関するテストを追加
- `project_draft_view` 取り込みに関するテストを追加
- Excel IO の `fontSize` 対応に関するテストを追加
- WBS XLSX / Project XLSX 関連テストを更新

## 主なファイル

- `docs/msprojectxml-ai-integration.md`
- `docs/mikuproject-ai-json-spec.md`
- `src/ts/msproject-xml.ts`
- `src/ts/main.ts`
- `src/ts/wbs-xlsx.ts`
- `src/ts/excel-io.ts`
- `mikuproject-src.html`
- `tests/mikuproject-main.test.js`
- `tests/mikuproject-excel-io.test.js`
生成AI連携用 JSON 仕様と projection 出力を追加し、関連ドキュメントを `docs/` 配下へ整理
## 概要

UI の HTML/CSS を調整し、画面全体の見た目を更新します。あわせて、ヒーロー領域から GitHub リポジトリへ遷移できる導線と、新規生成AI連携で参照する `mikuproject-ai-json-spec.md` の公開リンクを追加します。

## 変更内容

### UI / HTML

- ヒーロー領域に GitHub アイコンを追加
- GitHub アイコンから `igapyon/mikuproject` リポジトリへ遷移するリンクを追加
- `mikuproject-ai-json-spec.md` への案内を、公開 URL を使うリンクに変更
- ページ全体を `md-shell` で囲む構造へ変更
- GitHub アイコン用の SVG symbol 定義を追加

### CSS / テーマ

- アクセントカラーを紫系へ調整
- `PRIMARY` ボタンを紫系グラデーションへ変更
- アクティブなタブ表示を紫系へ変更
- `md-outlined-text-field` / `md-outlined-select` のフォーカス色を紫系へ変更
- ヘルプアイコン、メニュー、リンクなどの色味を紫系へ調整
- ヒーロー内の GitHub アイコンリンク用スタイルを追加
- `.md-shell` と `.md-icons` のスタイルを追加

## 変更ファイル

- `mikuproject-src.html`
- `mikuproject.html`
- `src/css/app.css`
UI テーマを紫系アクセントへ調整し、ヒーローに GitHub 導線と AI 仕様リンクを追加
## 概要

`mikuproject` の UI について、ヒーロー領域と上部タブを中心に見た目を更新します。`miku` 系の色味を取り入れつつ、GitHub への導線と生成AI連携の案内文も整理します。

## 変更内容

### ヒーロー領域の更新

- `lht-page-hero` ベースの構成をやめ、独自の `ms-hero` ヘッダーへ変更
- ヒーロー右側に GitHub リポジトリへのリンクを追加
- タイトル右のヘルプツールチップ文言を更新
- ヒーロー本文は削除し、説明はツールチップ側へ集約
- `README` へのリンクは削除

### 上部タブの見た目調整

- 上部タブに `ms-top-tab` 系クラスを追加
- タブの見た目を `mikuscore` 風の接続線つきデザインへ変更
- アクティブタブの配色を紫系アクセントへ調整
- モバイル幅では接続線を消し、横幅に応じて崩れるよう調整
- ホバー時に上側が欠けないよう、タブ列に余白を追加

### 色・スタイルの調整

- `miku` 系のミント色ヒーロー用変数を追加
- ヒーロー背景、境界線、文字色を `miku` 系の配色へ調整
- `PRIMARY` ボタン、フォーカス色、ヘルプアイコンなどを紫系アクセントへ調整
- GitHub アイコン表示用のスタイルを追加
- `生成AIプロンプト` への案内リンク文言を更新

## 変更ファイル

- `mikuproject-src.html`
- `mikuproject.html`
- `src/css/app.css`
miku 系テーマに合わせてヒーローと上部タブの UI を刷新
## 概要

`mikuproject` の Input / Output UI を整理し、CSV の扱いをテキストエリア中心からファイルベースへ変更します。あわせて、`新規生成AI連携` と `XLSX` ヘルプの表示位置を見直し、関連テストも更新します。

## 変更内容

### CSV 入出力の変更

- Input の `CSV` ボタンを、CSV ファイル選択と読込の入口に変更
- `importCsvInput` を追加
- Output の `CSV` ボタンを、内部モデルから生成した CSV のダウンロードに変更
- `csvOutput` への出力を廃止
- `csvInput` テキストエリアを廃止
- CSV 保存時のステータス文言を更新
- CSV 読込時のステータス文言とトースト文言を更新

### 生成AI連携 UI の整理

- `新規生成AI連携` の説明を、カード本文からヘルプツールチップへ移動
- `生成AIプロンプト` リンクをタイトル行へ配置
- `projectDraftImportInput` をデバッグ領域から `新規生成AI連携` カード内へ移動
- JSON 取込ボタンの近くで、そのまま JSON を貼り付けられる構成へ変更

### XLSX ヘルプ表示の整理

- `XLSX 編集の扱い` の独立カードを廃止
- `XLSX` ボタン横のヘルプ導線へ集約
- `XLSX 編集の扱い` の説明は `lht-help-tooltip` で表示する構成に変更

### レイアウト調整

- `statusMessage` を上部タブの下へ移動
- ボタン群とフォーム/カードの間隔を追加
- ヘルプアンカー用スタイルを追加

### テスト更新

- CSV 取込テストを、テキストエリア入力からファイル入力前提へ変更
- CSV 出力テストを、テキストエリア確認からダウンロード前提へ変更
- `XLSX 編集の扱い` の表示確認を、独立カード前提からツールチップ存在確認へ変更

## 変更ファイル

- `mikuproject-src.html`
- `mikuproject.html`
- `src/css/app.css`
- `src/js/main.js`
- `src/ts/main.ts`
- `tests/mikuproject-main.test.js`
CSV 入出力をファイルベースへ変更し、生成AI連携と XLSX ヘルプの UI を整理
## 概要

ドキュメントを現行の UI / 生成AI連携 / CSV 運用に合わせて更新します。あわせて、`mikuproject` の画面について `Input / Overview / Output` のカード階層やボタン強弱を見直し、`miku` 系テーマの統一感を高めます。

## 変更内容

### ドキュメント更新

- `README.md` を現行の機能と画面構成に合わせて更新
- `README.md` のリンクを相対リンクへ修正
- `README.md` に生成AI連携の説明を追加
- `docs/spec.md` に現行 UI の 3 画面構成 (`Input / Overview / Output`) を追記
- `docs/spec.md` に `CSV + ParentID` がファイルベースの補助入出力であることを追記
- `docs/msprojectxml-ai-integration.md` に現行 UI 上の生成AI連携の扱いを追記
- `docs/mikuproject-ai-json-spec.md` の example JSON で `uid` / `parent_uid` / `task_uid` を string に統一
- `docs/mikuproject-ai-json-spec.md` の出力ルールを、既存編集モードと新規生成モードの違いが分かる形へ更新
- `docs/gap-notes.md` の CSV UI 文言を現行表現へ更新
- `docs/TODO.md` に CLI 対応、`phase_detail_view scoped` の UX、UI 微調整に関する TODO を追加

### UI 調整

- `Transform` 表示を `Overview` に変更
- `Input / Overview / Output` の各カードの余白と見出しの階層を調整
- `Input` と `Output` の一部ボタンを `tonal` に変更して主操作との差を明確化
- `新規生成AI連携` と `生成AI連携` のカードをアクセント面へ調整
- `phase_detail_view scoped` を一段弱いサブカードへ整理
- `Overview` の Mermaid 領域を feature card 風に調整
- `Output` の設定カードを `mikuscore` 風の settings card に変更
- `Output` の設定はデフォルトで閉じるように変更
- `Output` の `MS Project XML` ボタンを `PRIMARY` 色に変更

## 変更ファイル

- `README.md`
- `docs/TODO.md`
- `docs/gap-notes.md`
- `docs/mikuproject-ai-json-spec.md`
- `docs/msprojectxml-ai-integration.md`
- `docs/spec.md`
- `mikuproject-src.html`
- `mikuproject.html`
- `src/css/app.css`
README・仕様書を現行 UI に合わせて更新し、Input / Overview / Output の見た目を整理
## 概要

`mikuproject` に対して、`MS Project XML` 中心の方針に沿った calendar 補完と WBS 表示改善を加えます。あわせて、生成AI連携では `project_overview_view` と全 phase の `phase_detail_view full` をまとめて出力する `full bundle` を追加します。

## 変更内容

### calendar の既定補完

- `project_draft_view` 取込時に、calendar が存在しない場合は既定 calendar `Standard` を自動補完
- XML 読込時に、calendar が存在しない場合は既定 calendar `Standard` を自動補完
- CSV 読込時に、calendar が存在しない場合は既定 calendar `Standard` を自動補完
- 既定 calendar は `MS Project XML` に自然な形で 1 つにまとめる
- 土日非稼働は `WeekDays` に設定
- 日本祝日は `Exceptions` に設定
- `Project.CalendarUID` も既定 calendar の `UID` に設定

### WBS XLSX の営業日基準化

- WBS の非稼働日判定を、ハードコードした土日判定から project calendar の `WeekDays` ベースへ変更
- WBS の祝日判定に、model 内 calendar の `Exceptions` を反映
- WBS の期間帯と進捗帯で、非稼働日はタスク帯を描かないように変更
- `表示期間を営業日ベースで数える` と `進捗帯を営業日ベースで計算する` は、選択式ではなく営業日固定に変更
- WBS 設定から、画面上の追加祝日編集導線を削除
- `Calendars / Exceptions` は画面で直接編集せず、`MS Project XML` または `XLSX Import` 側で扱う方針へ整理

### `project_draft_view` 取込の UID 正規化

- `project_draft_view` の `draft-*` 仮 UID を、取込時に整数 UID へ再採番
- 親子関係と predecessor 参照も、再採番後の UID に引き直す
- `MS Project XML` 出力には仮 UID を残さない

### 生成AI連携の追加

- `Output > 生成AI連携` に `full bundle` ボタンを追加
- `full bundle` は
  - `project_overview_view`
  - 全 phase の `phase_detail_view full`
  を 1 つの JSON にまとめて保存
- 保存ファイル名は `mikuproject-full-bundle.json`

### ドキュメント更新

- `docs/spec.md` に、calendar 補完方針と `Calendars / Exceptions` の read-only 方針を追記
- `docs/TODO.md` に、calendar / WBS / UI に関する方針を反映

## テスト

- `tests/mikuproject-main.test.js` を更新
- `tests/mikuproject-wbs-xlsx.test.js` を更新
- 確認結果: `75 passed / 75`
カレンダー既定化と WBS 営業日表示を実装し、生成AI連携の full bundle 出力を追加
## 概要

サンプルデータを、今回整理した `project_draft_view` ベースの内容へ更新します。あわせて、既定 calendar / WBS / XLSX / 生成AI連携まわりの現行挙動に合わせて、ビルドとテストの期待値も整理します。

## 変更内容

### サンプルデータの更新

- 既存の XML サンプルを見直し、`project_draft_view` ベースのサンプルを利用する方向へ更新
- サンプル project は `mikuproject開発`
- サンプル task 構成に phase / task / milestone を持たせる形へ変更
- `架空検討フェーズ【架空】` を含むサンプルを追加
- 1 日 task と milestone を区別できる内容へ整理

### 生成AI連携サンプルの整理

- `新規生成AI連携` の `サンプル` ボタン位置を調整
- `サンプル` ボタン押下時は、`生成AIが返した JSON` テキストエリアへサンプル JSON を入れる形に整理
- `full bundle` のボタン文言へ変更
- `full bundle` の保存ファイル名を `mikuproject-full-bundle.json` に変更

### `project_draft_view` 取込まわりの改善

- `draft-*` UID を取込時に整数 UID へ再採番
- `is_milestone: true` のときだけ milestone として扱うよう修正
- `planned_finish` のみが与えられた場合は、同日 `planned_start` を補完
- Mermaid gantt で task 名が日付扱いされるケースを避けるための安全化を追加

### calendar / WBS の整理

- calendar が無い draft / XML / CSV 読込時に、既定 calendar `Standard` を補完
- `WeekDays` と `Exceptions` を使う `MS Project XML` 中心の方針へ整理
- WBS は営業日ベース固定に変更
- 非稼働日は基本的に帯を描かず、開始日または終了日が非稼働日にかかる場合のみ端点表示するよう変更
- 画面上の `Calendars / Exceptions` 直接編集導線を外し、`MS Project XML` / `XLSX Import` 側で扱う方針へ整理

### テスト・ビルドの更新

- 新しい sample data に合わせて
  - `tests/mikuproject-main.test.js`
  - `tests/mikuproject-project-xlsx.test.js`
  - `tests/mikuproject-wbs-xlsx.test.js`
  を更新
- `npm run build` が通る状態まで修正
- 確認結果: `147 passed / 147`
サンプルデータを `project_draft_view` ベースへ更新し、関連ビルド・テストを現行挙動に合わせて整理
igapyon added 29 commits March 29, 2026 18:07
サンプルと Mermaid 表示を改善し、`project_draft_view` の日付補完を強化
## 概要

`mikuproject` の sample data を `project_draft_view` ベースで見直し、Mermaid / WBS / XLSX での見え方を揃えます。あわせて、`project_draft_view` 取込時の日付・進捗補完を強化し、sample の基準日と進捗率も調整します。

## 変更内容

### sample data の見直し

- sample project を `mikuproject開発` の `project_draft_view` ベースに更新
- phase / task / milestone を含む構成へ整理
- `架空検討フェーズ【架空】` とその配下 task を sample に追加
- 既存 XML sample は、この sample draft から生成する形へ整理
- sample の基準日 (`CurrentDate` / `StatusDate`) を `2026-03-23T09:00:00` に変更
- sample の進捗率を調整
  - `1 / 1.1 / 1.2 / 1.3` を 100%
  - `2` を 25%
  - `2.1` を 50%

### `project_draft_view` 取込補完の強化

- `draft-*` UID を取込時に整数 UID へ再採番
- `is_milestone: true` のときだけ milestone として扱うよう修正
- `planned_finish` のみ指定された場合は、同日 `planned_start` を補完
- 通常 task で日付だけ指定された場合は、
  - 同日 task だけでなく複数日 task でも
  - `start = 09:00:00`
  - `finish = 18:00:00`
  に補完するよう変更
- `percent_complete` を読み取り、内部 `percentComplete` へ反映するよう追加

### Mermaid / SVG 表示の改善

- task 名の安全化を維持しつつ、Mermaid gantt の通常 task バーが見えるよう調整
- Mermaid preview と SVG ダウンロードで同じレンダリング設定を使うよう整理
- Mermaid が返す SVG に共通 CSS を注入し、
  - section 背景
  - 通常 task バー
  - milestone
  - grid / today line
  の見た目を固定
- `架空検討フェーズ【架空】` 配下の multi-day task が preview / SVG でも見えるよう改善

### UI の整理

- `新規生成AI連携` の `サンプル` ボタン位置を調整
- `サンプル` ボタン押下時は、`生成AIが返した JSON` のテキストエリアへ sample JSON を入れるよう整理
- `WBS 既定祝日` の read-only 欄を通常の `textarea` に変更
- `readonly + rows` による `translateY(NaNpx)` エラーを回避

### テスト・ビルド更新

- `tests/mikuproject-main.test.js` を更新
- `tests/mikuproject-project-xlsx.test.js` を更新
- `tests/mikuproject-wbs-xlsx.test.js` を更新
- sample の基準日・進捗率・Mermaid・WBS・XLSX の期待値を現行挙動へ追随
- 確認結果: `npm run build` 通過、`147 passed / 147`

## 変更ファイル

- `mikuproject-src.html`
- `mikuproject.html`
- `src/ts/main.ts`
- `src/ts/msproject-xml.ts`
- `tests/mikuproject-main.test.js`
- `tests/mikuproject-project-xlsx.test.js`
- `tests/mikuproject-wbs-xlsx.test.js`
サンプルデータと Mermaid/WBS 表示を改善し、`project_draft_view` の取込補完を強化
## 概要

`Overview` の Mermaid gantt について、進捗状態が視覚的に分かるよう色分けを追加し、phase ごとの背景差も見えるように調整します。あわせて、sample data の進捗率と「当日」の基準日を見直します。

## 変更内容

### Mermaid Overview の改善

- `percentComplete >= 100` を `done` 表現に変更
- `0 < percentComplete < 100` を `active` 表現に変更
- 未着手 task は通常 task 表現のまま維持
- Mermaid preview と SVG ダウンロードで同じレンダリング設定を使うよう整理
- Mermaid が返す SVG に共通 CSS を注入し、task / milestone / grid / today line の見た目を固定
- phase 背景に交互の薄い着色を追加
- phase 背景の着色が実際の SVG 要素に届くよう、section 背景用セレクタを拡張
- 背景色の濃さを再調整し、`ほんのり見える` レベルまで改善

### sample data の調整

- sample の「当日」を `2026-03-23` に変更
- sample の進捗率を見直し
  - `1 / 1.1 / 1.2 / 1.3` を 100%
  - `2` を 25%
  - `2.1` を 50%
- `project_draft_view` 取込時に `percent_complete` を読み取り、内部 `percentComplete` に反映

## テスト・ビルド

- `npm run build` 通過
- 確認結果: `147 passed / 147`
Mermaid Overview の進捗表現と phase 背景を改善し、sample の進捗率と基準日を調整
## 概要

生成AI連携まわりのドキュメントを、現時点の実装範囲と将来構想が区別しやすい形に整理しました。
あわせて、`calendar` 未設定時に自動補完される既定カレンダーの祝日 `Exceptions` を、プロジェクト期間内に限定するよう調整しています。

## 変更内容

- `README.md` を更新
  - `Input` / `Overview` の説明を現状に合わせて調整
  - 生成AI連携について、現時点で UI から実装済みの範囲を明記
- `docs/mikuproject-ai-json-spec.md` を更新
  - 現時点の実装状況を追記
  - `task_edit_view`、Patch JSON、`project_draft_request` が未実装または設計メモ段階であることを明記
  - `project_draft_view` の補完挙動に関する説明を追加
- `docs/msprojectxml-ai-integration.md` を更新
  - 現時点の実装範囲を明記
  - Patch JSON を将来案として位置付け直し
- `docs/spec.md` を更新
  - 生成AI連携の現状実装範囲を明記
  - 既定カレンダーの祝日 `Exceptions` をプロジェクト期間内に限定する方針を反映
  - Mermaid 出力方針と `project_draft_view` の補完メモを追記
- `docs/TODO.md` を更新
  - AI 連携の未実装項目を追加
  - 既定カレンダー祝日 `Exceptions` のプロジェクト期間化を TODO に反映
- `src/ts/msproject-xml.ts` を更新
  - `calendar` 未設定時に自動補完する既定カレンダーの祝日 `Exceptions` を、プロジェクト期間内に限定
- 生成物とテストを更新
  - `mikuproject.html`
  - `src/js/msproject-xml.js`
  - `tests/mikuproject-main.test.js`
  - `tests/mikuproject-project-xlsx.test.js`
  - `tests/mikuproject-wbs-xlsx.test.js`

## 影響

- 生成AI連携のドキュメント上で、実装済み機能と未実装機能の境界が明確になります
- サンプルや既定カレンダーの祝日 `Exceptions` 件数は、プロジェクト期間に応じた内容になります
- WBS / Project XLSX / main テストの前提値もこの変更に合わせて更新しています
生成AI連携ドキュメントの整理と既定カレンダー祝日例外のプロジェクト期間化
## 概要

`XLSX` の写し身として扱う `mikuproject_workbook_json` の import/export を追加し、`XLSX` と `JSON` の workbook 系入出力をそろえました。
あわせて、AI 向け JSON を `.editjson` として整理し、`Input`/`Output` の導線とドキュメントを見直しています。

## 変更内容

- `mikuproject_workbook_json` を追加
  - `src/ts/project-workbook-json.ts`
  - `src/js/project-workbook-json.js`
  - `format: "mikuproject_workbook_json"` / `version: 1`
  - `Project / Tasks / Resources / Assignments / Calendars / NonWorkingDays` を workbook の写し身として扱う
- `XLSX` と `workbook JSON` の共通 schema 層を追加
  - `src/ts/project-workbook-schema.ts`
  - `src/js/project-workbook-schema.js`
  - sheet 名、header、`Project` field 順、import 対象列を共通化
- `Input` の file import 導線を整理
  - `Load from file` 1 ボタンで `.xml / .xlsx / .json / .editjson / .csv` を受け付ける形に変更
  - `Workbook JSON` の専用貼り付けセクションを削除
  - `.json` は `mikuproject_workbook_json`、`.editjson` は `project_draft_view` などの AI 向け編集用 JSON として整理
- `Output` の保存導線を整理
  - AI 向け JSON の保存拡張子を `.editjson` に統一
  - `full bundle`
  - `project_overview_view`
  - `phase_detail_view`
- `Output` に `Mermaid` ボタンを追加
  - `WBS XLSX` と `SVG` の間に配置
  - `mermaid-YYYYMMDD.md` を保存
  - 中身は fenced code block の Mermaid 構文
- `Output` ボタン配置を調整
  - 1 行目: `MS Project XML / XLSX / JSON / CSV`
  - 2 行目: `WBS XLSX / SVG`
- ドキュメントを更新
  - `README.md`
  - `docs/spec.md`
  - `docs/mikuproject-ai-json-spec.md`
  - `docs/msprojectxml-ai-integration.md`
  - `.json` と `.editjson` の役割分担を明文化
  - single-file Web App 方針を明記
- ビルド/テスト資産を更新
  - `mikuproject.html`
  - `scripts/build-project.mjs`
  - `scripts/build-project-xlsx-sample.mjs`
  - `testdata/workbook-import-sample.json`
  - `tests/mikuproject-main.test.js`
  - `tests/mikuproject-project-workbook-json.test.js`
  - `tests/mikuproject-project-xlsx.test.js`

## 影響

- workbook 系の `XLSX` と `JSON` が、同じ schema と限定反映ルールに寄るため、今後の機能追加や修正の追従漏れを減らしやすくなります。
- AI 向け JSON と workbook JSON の用途が拡張子レベルでも区別しやすくなります。
- `Input`/`Output` の導線が整理され、single-file Web App としての UI は維持したまま操作数を減らせます。

## 確認状況

- `vitest` は `156` 件通過
workbook JSON 導入と AI 編集導線整理による single-file Web App の入出力強化
## 概要

生成AI連携まわりの UI を整理し、`project_draft_view` を扱う導線を分かりやすくしました。
あわせて、`mikuproject` 用の生成AIプロンプトをクリップボードへコピーできるようにし、関連する説明やアコーディオン構成、余白を調整しています。

## 変更内容

- `Input` 側の生成AI連携 UI を整理
  - セクション名を `新規生成AI連携` から `生成AI連携` に変更
  - デフォルトで閉じるアコーディオンに変更
  - `(i)` の位置をタイトル行から操作ボタン付近へ移動
  - ボタン列と JSON テキストエリアの間に専用余白を追加
- `mikuproject 用の生成AIプロンプト` を外部リンクからコピー用ボタンへ変更
  - `docs/mikuproject-ai-json-spec.md` の内容をビルド時に埋め込み
  - ボタンクリックでクリップボードへコピーする処理を追加
  - クリップボード用途を示すアイコンを追加
- `Output` 側の生成AI連携 UI を整理
  - `生成AI連携` セクションをデフォルトで閉じるアコーディオンに変更
  - 説明文を本文から `(i)` に移動
  - `(i)` を `full bundle` ボタンの右へ移動
- 補助的な UI 調整
  - `Input / Overview / Output` の説明文整理
  - ステータスメッセージの文字サイズ・太さ調整
  - ボタン配置や余白の微調整
- ドキュメント更新
  - `docs/TODO.md` に、現状 `.editjson` import は `project_draft_view` のみであり、将来は他の `view_type` にも対応する予定があることを追記

## 主な対象

- `mikuproject-src.html`
- `mikuproject.html`
- `src/css/app.css`
- `src/ts/main.ts`
- `src/js/main.js`
- `scripts/build-project.mjs`
- `docs/TODO.md`
- `tests/mikuproject-main.test.js`
生成AI連携 UI の整理と AI プロンプトのクリップボード導線追加
## 概要

この変更では、`XLSX Import` の実運用寄りの不具合修正と、`WBS XLSX` および生成AI連携まわりの UI 整理を行っています。
この会話で確認できた範囲では、特に Excel で保存し直した `.xlsx` の再取込、`Notes` の取込、`WBS XLSX` の project 情報表示、生成AI連携 UI の導線改善が含まれます。

## 変更内容

- `XLSX Import` の実運用対応
  - Excel が保存した `deflate` 圧縮の `.xlsx` を読めるように修正
  - `sharedStrings` を読むようにして、`Notes` など文字列セルの取込を改善
  - 同じファイル名を保存し直した `.xlsx` を再選択しやすいように、file input の値リセットを追加
  - 読込中ステータスと失敗時の `console.error` を追加
- `Project XLSX` の editable 表示改善
  - 空の editable セルでも罫線と editable 色が分かるように調整
  - `Resources` / `Assignments` が 0 件でも、どこが反映対象か分かるようにダミー行を追加
- `WBS XLSX` の表示調整
  - `タスク詳細` が `Tasks.Notes` を参照する前提で確認を進めた
  - project 情報ブロックの先頭項目を `project.title` ではなく `project.name` 参照に変更
  - ラベルを `題名` ではなく `プロジェクト名` に変更
- 生成AI連携 UI の整理
  - `Input` / `Overview` / `Output` の説明文を縮小し、`(i)` tooltip に整理
  - `生成AI連携` をアコーディオン化し、デフォルトで閉じるように変更
  - `mikuproject 用の生成AIプロンプト` を外部リンクではなくクリップボードコピーのボタンに変更
  - AI 連携ボタン列とテキストエリアの余白や配置を調整
- ドキュメント更新
  - `docs/TODO.md` に、`.editjson` import が現状 `project_draft_view` のみ対応であることを追記
  - `docs/TODO.md` に、`XLSX Import` の実地回帰観点を追記
  - `docs/spec.md` に `Tasks` シートの `import 可 / 表示のみ` の整理を追記
XLSX Import 実運用対応と WBS / 生成AI連携 UI の整理
## 概要

この変更では、`WBS XLSX` のレイアウトと見た目を集中的に調整しつつ、`XLSX Import` の実運用寄りの不具合にも対応しています。
この会話で確認できた範囲では、特に `Notes` の取込確認、Excel 保存後 `.xlsx` の再取込、`WBS XLSX` の project 情報ブロック・サマリ・曜日帯の見直しが含まれます。

## 変更内容

- `XLSX Import` の改善
  - Excel が保存した `deflate` 圧縮 `.xlsx` を読めるように修正
  - `sharedStrings` を読むようにして、`Notes` など文字列セルの取込を改善
  - 同じファイル名で保存し直した `.xlsx` の再選択対策を追加
  - 読込中ステータスと失敗時の `console.error` を追加
- `Project XLSX` の見た目改善
  - 空の editable セルでも罫線と editable 色が分かるように調整
  - `Resources` / `Assignments` が 0 件でも、反映対象列が分かるようにダミー行を追加
- `WBS XLSX` のレイアウト調整
  - project 情報ブロックの見出しを `プロジェクト情報` に変更
  - `project.title` ではなく `project.name` を表示するように変更
  - `基準 / 開始基準` 行を削除
  - `サマリ` ブロックを `凡例` の下へ移動
  - `タスク / リソース / 割当 / カレンダ` を `基準日` の下に縦並びで配置
  - `サマリ` ヘッダを `A:C` 結合、各データ行を `A` ラベル + `B:C` 値結合に変更
  - `プロジェクト情報` ブロックを `A:E`、各データ行を `A:B` ラベル + `C:E` 値結合に変更
  - 冒頭の不要行を削除し、先頭から `プロジェクト情報` ブロックを開始
  - `J2` に出力日時を追加
  - 曜日行の `Sat` を濃い青、`Sun` を濃い赤に変更
  - 指定列のセル幅を調整
- ドキュメント更新
  - `docs/spec.md` に `Tasks` シートの `import 可 / 表示のみ` の整理を追記
  - `docs/TODO.md` に `.editjson` import の今後対応予定と `XLSX Import` の実地回帰観点を追記
WBS XLSX レイアウト調整と Excel 保存 `.xlsx` 再取込対応の改善
## 概要

`README.md` を入口文書として整理し直し、設計・運用寄りの説明を別文書へ分離しました。
あわせて、公開 OSS としての基本文書を追加し、第三者告知の置き場所と内容も整理しています。

## 変更内容

- `README.md` を再構成
  - 冒頭で `mikuproject` の 3 本柱を明示
    - `MS Project XML` を基軸にした変換・可視化・限定編集
    - 生成AI 連携を意識した projection / 再取込
    - 人が読むための `WBS Excel ブック (.xlsx)` 帳票出力
  - `single-file web app` としての性格を明記
  - 代表的なユースケースを追加
  - `Input / Overview / Output / WBS Excel ブック` のスクリーンショットを追加
  - 入口として必要な内容に絞り、設計・運用寄りの説明を縮小
- `docs/architecture.md` を新設
  - 全体構成
  - `MS Project XML -> ProjectModel -> 各表現` の位置づけ
  - single-file web app 構成
  - 画面構成
  - build / generated files / 運用ルール
  - 制約
- OSS 向け文書を追加
  - `CONTRIBUTING.md`
  - `CONTRIBUTORS.md`
  - `CODE_OF_CONDUCT.md`
- 第三者告知を整理
  - `Mermaid`
  - `open-msp-viewer`
  - MicrosoftDocs Project XML Data Interchange reference
  を記載
  - Microsoft schema 実体の説明は MicrosoftDocs 項目へ寄せて整理
- `README.md` の関連ドキュメント導線を更新
  - `architecture`
  - `third-party notices`
  - `contributing`
  - `contributors`
  - `code of conduct`
  を追加

## 主な追加・更新ファイル

- `README.md`
- `docs/architecture.md`
- `CONTRIBUTING.md`
- `CONTRIBUTORS.md`
- `CODE_OF_CONDUCT.md`
- `THIRD-PARTY-NOTICES.md`
OSS 向け文書整備と README / architecture / notices の再編
## 概要

`README.md`、紹介ページ、OSS 向け基本文書を整理し、`mikuproject` の入口体験と公開リポジトリとしての体裁を整えました。
この会話で確認できた範囲では、README の再構成、`docs/architecture.md` の追加、`CONTRIBUTING.md` / `CONTRIBUTORS.md` / `CODE_OF_CONDUCT.md` / `THIRD-PARTY-NOTICES.md` の追加、`index-src.html` の紹介内容更新が含まれます。

## 変更内容

- `README.md` を入口文書として再構成
  - `mikuproject` の 3 本柱を明示
  - `single-file web app` としての特徴を明記
  - 代表的なユースケースを追加
  - `Input / Overview / Output / WBS Excel ブック` のスクリーンショットを追加
  - 設計・運用寄りの説明を別文書へ分離
- `docs/architecture.md` を追加
  - 全体構成
  - `MS Project XML -> ProjectModel -> 各表現`
  - single-file web app 構成
  - 画面構成
  - build / generated files / 運用ルール
  - 制約
- OSS 向け文書を追加
  - `CONTRIBUTING.md`
  - `CONTRIBUTORS.md`
  - `CODE_OF_CONDUCT.md`
  - `THIRD-PARTY-NOTICES.md`
- 第三者告知を整理
  - `docs/third-party-notices.md` ではなく repo ルートの `THIRD-PARTY-NOTICES.md` へ移動
  - `Mermaid`
  - `open-msp-viewer`
  - MicrosoftDocs Project XML Data Interchange reference
  を記載
  - Microsoft schema 実体の説明は MicrosoftDocs 項目へ寄せて整理
- 紹介ページを README と同じトーンへ更新
  - `index-src.html`
  - `index.html`
  - 3 本柱
  - 代表ユースケース
  - 実際のスクリーンショット表示
  - `Architecture` への導線追加
  - 不要になった `Project Notes` セクションを削除

## 主な追加・更新ファイル

- `README.md`
- `docs/architecture.md`
- `CONTRIBUTING.md`
- `CONTRIBUTORS.md`
- `CODE_OF_CONDUCT.md`
- `THIRD-PARTY-NOTICES.md`
- `index-src.html`
- `index.html`
README・紹介ページ・OSS 基本文書の整備
## 概要

`docs/mikuproject-ai-json-spec.md` を、仕様書であると同時に生成AI向けプロンプトとしても読みやすい形に整理しました。
この会話で確認できた範囲では、導入文の見直し、README と整合する説明の追加、見出し構造の整理、出力ルールの明確化が含まれます。

## 変更内容

- 文書タイトルを更新
  - `mikuproject AI JSON Spec / Prompt` ではなく `mikuproject AI JSON Prompt / Spec` に整理
- 導入文を見直し
  - `mikuproject` とやりとりしながら変更提案を返す文脈から
  - 取り組むプロジェクトを理解し、WBS の観点で必要な `マイルストーン / フェーズ / タスク` を整理し、`mikuproject` に設定するための入力へ落とし込む文脈へ変更
- README と整合する説明を追加
  - `mikuproject` は `MS Project XML` を基軸に、変換・可視化・限定編集を行う single-file web app であることを明記
  - 次の 3 本柱を追記
    - `MS Project XML` を基軸にした変換・可視化・限定編集
    - 生成AI 連携を意識した projection / 再取込
    - 人が読むための `WBS Excel ブック (.xlsx)` 帳票出力
- プロンプト受領時の返答ルールを追加
  - このプロンプトを読んだ直後は `OK` とだけ回答する旨を追記
- 文書構造を見出しベースへ整理
  - `現時点の実装状況`
  - `前提`
  - `重要方針`
  - `Projection JSON の代表例`
  - `ファイル拡張子の運用`
  - `補足`
  - `出力ルール`
  - `改善候補`
  を `##` 見出しへ整理
  - `phase_detail_view` の範囲指定、`phase の定義`、`UID`、`日付・期間`、`依存関係`、`rules`、各種例などを `###` 見出しへ整理
- 用語を整理
  - `mikuproject` と生成AIだけでなく、`mikuproject` と私たち(生成AIを含む)のやり取りとして表現を拡張
- 補足段落を整理
  - `phase_detail_view` の使い方や新規生成モード説明を `## 補足` 配下へ移動

## 主な更新ファイル

- `docs/mikuproject-ai-json-spec.md`
AI JSON Prompt / Spec の再構成とプロンプト文面の整理
### 概要

XLSX 出力時のセル解釈まわりを見直し、文字列セルを既定で text として扱うように調整しました。あわせて、XML 禁止文字のサニタイズを追加し、WBS workbook の長文セルで行高が不足しにくいように行高計算を安全側へ寄せています。

### 変更内容

- `excel-io` に `text` の number format を追加し、`formula` ではない値付きセルを既定で text 扱いに変更
- `inlineStr` 出力時に先頭・末尾空白や改行を保持するため、必要に応じて `xml:space="preserve"` を付与
- XML 1.0 で不正となる制御文字を、セル文字列の出力前に除去するサニタイズを追加
- `project-xlsx` / `wbs-xlsx` のセル値を文字列化し、数値や真偽値が Excel 側で再解釈されにくいよう調整
- WBS workbook の行高計算を、単純な文字数閾値ではなく折り返し行数ベースへ変更
- WBS workbook の将来検討事項として、表示専用列と Excel 再利用向け hidden 列の分離検討を `docs/TODO.md` に追記
- 関連するテストを更新し、文字列セルの text 出力、XML 禁止文字サニタイズ、WBS 行高調整を検証

### 期待する効果

- `-` 始まりや先頭空白付きの文字列が、Excel 上で数式や別型として再解釈されにくくなる
- XML 禁止文字を含む文字列が混入しても、壊れた XLSX を出力しにくくなる
- WBS workbook の長いタスク名やノートで、表示が見切れにくくなる

### テスト

- `tests/mikuproject-excel-io.test.js`
- `tests/mikuproject-project-xlsx.test.js`
- `tests/mikuproject-wbs-xlsx.test.js`
XLSX 出力の文字列セル固定化と XML サニタイズを強化し、WBS 行高を安全側に調整
### 概要

WBS workbook の本文レイアウトを調整し、名称列とタスク詳細列のセル配置を左寄せへ変更しました。

### 変更内容

- `src/ts/wbs-xlsx.ts` を更新
  - WBS workbook の F列(名称)で使用する `taskCell(...)` の配置を `left` に変更
  - WBS workbook の J列(タスク詳細)で使用する `detailCell(...)` の配置を、プレースホルダ `-` を含めて `left` に変更
- 生成物を更新
  - `src/js/wbs-xlsx.js`
  - `mikuproject.html`
- テストを更新
  - `tests/mikuproject-wbs-xlsx.test.js` の期待値を、左寄せに合わせて更新

### 期待する効果

- WBS workbook の名称列とタスク詳細列が、本文として読みやすい左寄せレイアウトになる
- プレースホルダ `-` を含むタスク詳細列も、同じ列内で配置方針が揃う

### テスト

- `tests/mikuproject-wbs-xlsx.test.js`
WBS workbook の名称列とタスク詳細列を左寄せに統一
### 概要

`WBS Markdown` 出力を追加し、`native SVG` によるプレビュー / 保存を導入しました。あわせて、Markdown escape の共通化、`MS Project XML` 取込時の task 並び順 warning、XLSX style の fill 定義改善、関連ドキュメント整理を行いました。

### 変更内容

- `WBS Markdown` 出力を追加
  - `wbs-markdown.ts` を追加
  - `プロジェクト情報`、`WBS ツリー`、`WBS テーブル`、`サマリ` を 1 つの Markdown として出力
  - `Task.Notes` の複数行表示、Markdown table 向け escape、fence-safe な tree 出力に対応
- Markdown escape 共通 module を追加
  - `markdown-escape.ts` を追加
  - literal text 用 escape と table cell 用 escape を分離
- native `SVG` 描画を追加
  - `native-svg.ts` を追加
  - `ProjectModel` から `phase / task / milestone / today line / task label / 日付軸` を描画
  - `WBS XLSX` と同じ日付帯 / holiday / business day ロジックを利用
  - preview と `SVG` 保存の両方で利用
- `main.ts` を更新
  - `WBS Markdown` 保存ボタンを追加
  - `SVG` preview / 保存で native `SVG` を使うよう変更
- `MS Project XML` 取込 / validation を更新
  - `OutlineNumber` 順と task 並び順が食い違う場合に warning を追加
  - `project_draft_view` / CSV import では `project.title` に `project.name` を設定
  - `MS Project XML` round-trip では `Title` 未設定を維持
- `excel-io.ts` を更新
  - `fills` に既定の `none` / `gray125` を明示
  - custom fill の前に required default fills を出すよう修正
- sample 生成を更新
  - `build-project-xlsx-sample.mjs` で `WBS Markdown` sample も生成
  - `rich` sample 用の長い名称 / 深い階層 / 複数行 Notes ケースを追加
- ドキュメント更新
  - `README.md` にプロダクト価値の説明を追加
  - `docs/spec.md` にプロダクトの立ち位置と `WBS Markdown` / `WBS記述書 Markdown` の仕様を追記
  - `docs/native-svg-spec.md` を新規追加
  - `docs/architecture.md` に `local-data/` の扱いを追記
  - `docs/TODO.md` を整理 / 拡張

### テスト

- `tests/mikuproject-wbs-markdown.test.js` を新規追加
- `tests/mikuproject-main.test.js` を更新
  - `WBS Markdown` 保存
  - native `SVG` 保存
  - task 並び順 warning
  - `project.title` の扱い
- `tests/mikuproject-excel-io.test.js` を更新
  - required default fills の出力確認
WBS Markdown 出力と native SVG プレビューを追加し、Markdown / XLSX 出力まわりを改善
### 概要

Mermaid ランタイムへの依存を削除し、`Overview` の preview と `SVG` 保存を native `SVG` 前提の実装・文言へ整理しました。あわせて、関連ドキュメント、単一 HTML ビルド、テスト、UI 命名を現在の挙動に合わせて更新しています。

### 変更内容

- Mermaid ランタイム資産を削除
  - `src/vendor/mermaid/mermaid.min.js`
  - `src/vendor/mermaid/README.md`
- third-party notice から Mermaid ランタイム記載を削除
  - `THIRD-PARTY-NOTICES.md`
- single-file app の前提を更新
  - `docs/architecture.md` から `src/vendor/mermaid/mermaid.min.js` 同梱前提を削除
  - `mikuproject.html` はローカル CSS / JS をインライン展開する説明へ更新
- Overview / Output の表現を native SVG 前提へ更新
  - `README.md`
  - `docs/spec.md`
  - `index-src.html`
  - `mikuproject-src.html`
- UI / 実装上の命名を整理
  - `mermaidSvgPreview` → `nativeSvgPreview`
  - `md-mermaid-preview-stage` → `md-svg-preview-stage`
  - `downloadMermaidSvgBtn` → `downloadSvgBtn`
  - `downloadCurrentMermaidSvg()` → `downloadCurrentSvg()`
  - `renderMermaidPreview()` → `renderSvgPreview()`
  - `updateMermaidSvgButton()` → `updateSvgButton()`
- `Mermaid` はテキスト出力として残しつつ、status 文言を native `SVG` preview 前提へ更新
- native `SVG` の近接ラベル配置まわりを調整
  - `src/ts/native-svg.ts`
  - `src/js/native-svg.js`

### テスト

- `tests/mikuproject-main.test.js`
  - native `SVG` preview / 保存前提へ更新
  - `downloadSvgBtn` 参照へ更新
- `tests/mikuproject-single-html.test.js`
  - Mermaid runtime 内包確認を削除
  - removed Mermaid runtime を参照しないことを確認する形へ更新

### 補足

- `Mermaid` テキスト出力自体は残しています。
Mermaid ランタイムを削除し、preview / SVG 出力を native SVG 前提に整理
@igapyon igapyon merged commit ca62dcc into main Mar 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant