Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
90833eb
大きくなってきたので、local-html-toolsから独立
igapyon Mar 28, 2026
c8b91fc
Merge pull request #1 from igapyon/tiga0328gfj
igapyon Mar 28, 2026
be76736
トップページの追加とビルド時メタデータ埋め込み対応
igapyon Mar 28, 2026
e7769bc
Merge pull request #2 from igapyon/tiga0328jbc
igapyon Mar 28, 2026
6826f31
Mermaid ランタイムの同梱と UI 再編、および Mermaid gantt への WBS 表示対応
igapyon Mar 28, 2026
bca9435
Merge pull request #3 from igapyon/tiga0328nbh
igapyon Mar 28, 2026
22b4864
mikuproject の画面を `Input / Transform / Output` タブ構成へ再編し、配色を調整
igapyon Mar 28, 2026
9d4ffb5
Merge pull request #4 from igapyon/tiga0328vfc
igapyon Mar 28, 2026
069a6fc
XLSX import/export と WBS 表示を拡張し、UI とビルド運用を整理
igapyon Mar 28, 2026
5ab53af
Merge pull request #5 from igapyon/tiga0328wci
igapyon Mar 28, 2026
c47a01a
UI をタブ内アコーディオン中心に整理し、XLSX import テストを UI 依存から分離
igapyon Mar 28, 2026
5b5515d
Merge pull request #6 from igapyon/tiga0329aad
igapyon Mar 28, 2026
99ae632
Export 操作を内部モデル基準の保存フローへ統一し、XML 再生成ボタンを廃止
igapyon Mar 28, 2026
bf18756
Merge pull request #7 from igapyon/tiga0329cdd
igapyon Mar 28, 2026
ec09b68
Transform / Output 中心に UI を再整理し、Mermaid 生成と export フローを自動化
igapyon Mar 28, 2026
cf32f04
Merge pull request #8 from igapyon/tiga0329cei
igapyon Mar 28, 2026
5c17d71
生成AI連携用 JSON 仕様と projection 出力を追加し、関連ドキュメントを `docs/` 配下へ整理
igapyon Mar 29, 2026
615fa10
Merge pull request #9 from igapyon/tiga0329dca
igapyon Mar 29, 2026
a5c3f37
UI テーマを紫系アクセントへ調整し、ヒーローに GitHub 導線と AI 仕様リンクを追加
igapyon Mar 29, 2026
22119e6
Merge pull request #10 from igapyon/tiga0329lbj
igapyon Mar 29, 2026
17eec96
miku 系テーマに合わせてヒーローと上部タブの UI を刷新
igapyon Mar 29, 2026
ac75ac5
Merge pull request #11 from igapyon/tiga0329leh
igapyon Mar 29, 2026
9552d18
CSV 入出力をファイルベースへ変更し、生成AI連携と XLSX ヘルプの UI を整理
igapyon Mar 29, 2026
02dcead
Merge pull request #12 from igapyon/tiga0329mca2
igapyon Mar 29, 2026
c562ef5
README・仕様書を現行 UI に合わせて更新し、Input / Overview / Output の見た目を整理
igapyon Mar 29, 2026
b410c1e
Merge pull request #13 from igapyon/tiga0329mfg
igapyon Mar 29, 2026
bcda304
カレンダー既定化と WBS 営業日表示を実装し、生成AI連携の full bundle 出力を追加
igapyon Mar 29, 2026
ab46ad4
Merge pull request #14 from igapyon/tiga0329ncb
igapyon Mar 29, 2026
55d0eb4
サンプルデータを `project_draft_view` ベースへ更新し、関連ビルド・テストを現行挙動に合わせて整理
igapyon Mar 29, 2026
279ec71
Merge pull request #15 from igapyon/tiga0329ofg
igapyon Mar 29, 2026
e827c57
サンプルと Mermaid 表示を改善し、`project_draft_view` の日付補完を強化
igapyon Mar 29, 2026
31759d7
Merge pull request #16 from igapyon/tiga0329rea
igapyon Mar 29, 2026
ec632d0
サンプルデータと Mermaid/WBS 表示を改善し、`project_draft_view` の取込補完を強化
igapyon Mar 29, 2026
4cce83c
Merge pull request #17 from igapyon/tiga0329sah
igapyon Mar 29, 2026
f74f593
Mermaid Overview の進捗表現と phase 背景を改善し、sample の進捗率と基準日を調整
igapyon Mar 29, 2026
e9e44ad
Merge pull request #18 from igapyon/tiga0329sce
igapyon Mar 29, 2026
9aa5cd9
生成AI連携ドキュメントの整理と既定カレンダー祝日例外のプロジェクト期間化
igapyon Mar 29, 2026
92d411d
Merge pull request #19 from igapyon/tiga0329sec
igapyon Mar 29, 2026
d54b946
workbook JSON 導入と AI 編集導線整理による single-file Web App の入出力強化
igapyon Mar 29, 2026
2e9bbed
Merge pull request #20 from igapyon/tiga0329tad
igapyon Mar 29, 2026
75873d9
生成AI連携 UI の整理と AI プロンプトのクリップボード導線追加
igapyon Mar 29, 2026
e4c300c
Merge pull request #21 from igapyon/tiga0329uca
igapyon Mar 29, 2026
b190021
XLSX Import 実運用対応と WBS / 生成AI連携 UI の整理
igapyon Mar 29, 2026
7d850ef
Merge pull request #22 from igapyon/tiga0329vbi
igapyon Mar 29, 2026
6b34092
WBS XLSX レイアウト調整と Excel 保存 `.xlsx` 再取込対応の改善
igapyon Mar 29, 2026
bfcc968
Merge pull request #23 from igapyon/tiga0329wag
igapyon Mar 29, 2026
30414f0
OSS 向け文書整備と README / architecture / notices の再編
igapyon Mar 29, 2026
4f0595a
Merge pull request #24 from igapyon/tiga0329xac
igapyon Mar 29, 2026
b291673
README・紹介ページ・OSS 基本文書の整備
igapyon Mar 29, 2026
0bc6fe5
Merge pull request #25 from igapyon/tiga0329xfg
igapyon Mar 29, 2026
e8078f0
AI JSON Prompt / Spec の再構成とプロンプト文面の整理
igapyon Mar 29, 2026
d8ff072
Merge pull request #26 from igapyon/tiga0330aaj
igapyon Mar 29, 2026
1aea856
XLSX 出力の文字列セル固定化と XML サニタイズを強化し、WBS 行高を安全側に調整
igapyon Mar 29, 2026
d2a6d31
Merge pull request #28 from igapyon/tiga0330afd
igapyon Mar 29, 2026
e2f86c9
WBS workbook の名称列とタスク詳細列を左寄せに統一
igapyon Mar 29, 2026
48c01d7
Merge pull request #29 from igapyon/tiga0330ibg
igapyon Mar 29, 2026
9b4d097
WBS Markdown 出力と native SVG プレビューを追加し、Markdown / XLSX 出力まわりを改善
igapyon Mar 30, 2026
6bab260
Merge pull request #30 from igapyon/tiga0330ied
igapyon Mar 30, 2026
db89ba3
Mermaid ランタイムを削除し、preview / SVG 出力を native SVG 前提に整理
igapyon Mar 30, 2026
eabfe53
Merge pull request #31 from igapyon/tiga0330ueh
igapyon Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.DS_Store
local-data
node_modules/
coverage/
*.log

63 changes: 63 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Code of Conduct

## Purpose

`mikuproject` aims to be a respectful and practical collaboration space for bug reports, feature requests, design discussion, documentation work, and code contributions.

The goal is not to avoid disagreement. The goal is to keep discussion specific, constructive, and safe for participants.

## Expected Behavior

- Be respectful.
- Be specific.
- Prefer concrete repro steps, fixtures, examples, and tests over vague claims.
- Critique ideas, code, assumptions, and designs without attacking people.
- Keep technical disagreement focused on behavior, tradeoffs, and evidence.
- Accept that maintainers may ask to narrow scope, add tests, or clarify intent before accepting a change.

## Unacceptable Behavior

- Harassment, intimidation, or personal attacks
- Discriminatory, hateful, or abusive language
- Repeated hostile or bad-faith argument
- Dismissing or insulting contributors instead of addressing the technical point
- Publishing private or sensitive information without permission
- Spam, trolling, or deliberately disruptive behavior

## Scope

This code of conduct applies to project spaces such as:

- Issues
- Pull requests
- Discussions and review comments
- Documentation contributions
- Other project-related public collaboration spaces managed for `mikuproject`

## Maintainer Responsibility

Project maintainers may moderate discussions and contributions to keep the project usable and collaborative.

This may include:

- Asking for clarification or tone adjustments
- Hiding, editing, locking, or closing discussions when appropriate
- Rejecting contributions that are technically unsuitable or behaviorally disruptive
- Limiting further participation in project spaces if necessary

## Reporting

If you experience or observe behavior that should be addressed, contact the project maintainer through a project channel that is appropriate for the situation.

If a public thread would make the issue worse, prefer a private contact path instead of escalating in public.

## Project Style

For `mikuproject`, the preferred collaboration style is:

- specific
- respectful
- test-oriented
- focused on reproducible behavior

Technical rigor is welcome. Personal hostility is not.
145 changes: 145 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Contributing to mikuproject

Thank you for contributing to `mikuproject`.

This project accepts bug reports, feature requests, documentation fixes, tests, and pull requests.

## Before You Open an Issue or Pull Request

- Check whether the topic is already covered by an existing issue or pull request.
- For behavior changes, describe the expected behavior and the current behavior clearly.
- For code changes, include or update tests when practical.
- Keep changes focused. Small, reviewable pull requests are preferred.

## Development Notes

- `index.html` and `mikuproject.html` are generated files.
- Edit `index-src.html`, `mikuproject-src.html`, and files under `src/` instead of editing generated output directly unless regeneration is intentionally part of the change.
- Application logic should normally be edited in `src/ts/`.
- `src/js/` is generated from `src/ts/`, but is currently committed to Git. If you change `src/ts/`, regenerate `src/js/` as part of the same change.
- When a behavior change affects project structure, input/output rules, or AI integration, update the relevant documentation as well.

Documentation roles:

- `README.md`: repository entry point and quick start
- `docs/architecture.md`: overall structure, build flow, generated files, and operational rules
- `docs/spec.md`: format and behavior specifications
- `docs/TODO.md`: incomplete work only

## Recommended Checks

Run relevant commands before submitting a pull request when possible.

```bash
npm run build:js
npm run build:html
npm test
```

If your change touches sample workbook generation, also run:

```bash
npm run build:xlsx-sample
```

## Pull Request Guidelines

- Explain what changed and why.
- Mention any user-visible behavior change.
- Mention any specification or documentation updates if they are part of the change.
- If a change is incomplete or intentionally deferred, say so explicitly.

## Contribution License

By submitting an issue, pull request, comment, documentation change, code change, or other material that is intentionally submitted for inclusion in this project, you agree that:

- Your contribution is provided under the Apache License 2.0 used by this repository.
- The project maintainer may use, modify, rewrite, adapt, edit, and redistribute your contribution as part of this project, as permitted by the project license structure.
- You have the right to submit the contribution.
- Unless you explicitly state otherwise, your contribution is treated as a "Contribution" under Section 5 of the Apache License 2.0.

If you do not want a submission to be treated as a contribution for inclusion in the project, mark that clearly and do not open it as a pull request intended to be merged.

## Attribution

Contributors may be acknowledged in project history, release notes, or other project documents at the maintainer's discretion.

## Code of Collaboration

- Be specific.
- Be respectful.
- Prefer concrete repro steps, fixtures, and tests over vague reports.

---

# mikuproject へのコントリビュート

`mikuproject` へのコントリビュートありがとうございます。

このプロジェクトでは、バグ報告、機能提案、ドキュメント修正、テスト追加、Pull Request を受け付けます。

## Issue / Pull Request の前に

- 既存の issue / pull request と重複していないか確認してください。
- 挙動変更を伴う場合は、期待する挙動と現在の挙動を明確に書いてください。
- コード変更では、可能なら対応するテストも追加または更新してください。
- 変更は小さく、レビューしやすい単位が望ましいです。

## 開発メモ

- `index.html` と `mikuproject.html` は生成物です。
- 生成物を直接編集するのではなく、通常は `index-src.html`、`mikuproject-src.html`、`src/` 配下を編集してください。
- アプリロジックの変更は、通常 `src/ts/` で行ってください。
- `src/js/` は `src/ts/` から生成されますが、現状では Git 管理しています。`src/ts/` を変更した場合は、同じ変更で `src/js/` も更新してください。
- project 構造、入出力ルール、生成AI 連携の挙動を変える場合は、関連ドキュメントも更新してください。

ドキュメントの役割:

- `README.md`: リポジトリの入口と quick start
- `docs/architecture.md`: 全体構成、ビルド、生成物、運用ルール
- `docs/spec.md`: 形式仕様と挙動仕様
- `docs/TODO.md`: 未完了作業のみ

## 推奨チェック

可能であれば、Pull Request 前に関連コマンドを実行してください。

```bash
npm run build:js
npm run build:html
npm test
```

sample workbook 生成に関わる変更では、あわせて次も実行してください。

```bash
npm run build:xlsx-sample
```

## Pull Request のガイド

- 何を変えたか、なぜ変えたかを書いてください。
- ユーザーに見える挙動変更があれば明記してください。
- 仕様書やドキュメント更新を含む場合は、その旨も書いてください。
- 未完了部分や意図的に後回しにした点があれば、明示してください。

## コントリビューションのライセンス

このプロジェクトへ取り込みを意図して issue、pull request、コメント、ドキュメント変更、コード変更、その他の素材を提出した場合、次に同意したものとして扱います。

- あなたのコントリビューションは、このリポジトリで採用している Apache License 2.0 の下で提供されます。
- プロジェクト管理者は、そのコントリビューションを本プロジェクトの一部として、プロジェクトのライセンス構造で許容される範囲で、利用、修正、書き換え、調整、編集、再配布できます。
- あなたは、そのコントリビューションを提出する権利を持っています。
- あなたが明示的に別扱いを示さない限り、その提出物は Apache License 2.0 第5条の "Contribution" として扱われます。

取り込みを意図しない連絡については、その旨を明確に示してください。マージを前提としない相談は、その前提が分かるように記述してください。

## 謝辞

コントリビューター名は、必要に応じて git 履歴、リリースノート、その他の文書で言及されることがあります。

## コラボレーション方針

- 具体的に書く
- 相手を尊重する
- 曖昧な説明より、再現手順、fixture、テストを優先する
6 changes: 6 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Contributors

This project includes contributions, feedback, and improvement suggestions from the following people. Thank you for helping improve `mikuproject`.

- Toshiki Iga
- Original author and initial maintainer.
99 changes: 99 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# mikuproject

`mikuproject` は、`MS Project XML` を基軸に、変換・可視化・限定編集を行うローカル HTML ツールです。

`mikuproject` の強みは、同じプロジェクト情報を 1 つの意味体系のまま、用途に応じて複数の形式へ出し分けられることです。`MS Project XML` を基軸に、`XLSX`、`Markdown`、`JSON`、`Mermaid`、生成AI向け表現、そして必要に応じて `MS Project` へも橋渡しできるため、資料共有・レビュー・変換・再利用のそれぞれの場面に合わせて、無理なく形を変えて届けられます。

特に、次の 3 つを重視して設計しています。

- `MS Project XML` を基軸にした変換・可視化・限定編集
- 生成AI 連携を意識した projection / 再取込
- 人が読むための `WBS Excel ブック (.xlsx)` 帳票出力

配布物は `mikuproject.html` ひとつの single-file web app で、Web ブラウザさえあればインストール不要・ネットワーク不要で利用できます。

`MS Project XML` を意味の基軸として扱い、`.xlsx` と workbook JSON は確認・可視化・限定編集のための周辺表現として扱います。生成AI 連携の編集用 JSON は、workbook JSON と区別するため当面 `.editjson` 拡張子を推奨します。

## 代表的なユースケース

- その1: 管理用の Excel ブックに必要な情報を入力し、`mikuproject` を用いて `WBS Excel ブック (.xlsx)` 形式へ変換する
- その2: 生成AI に専用プロンプトをセットして会話し、WBS 草案を作成する。生成された JSON を `mikuproject` へ入力し、`WBS Excel ブック (.xlsx)` 形式へ変換する
- その3: `MS Project` のデータを `MS Project XML` 形式でエクスポートし、それを入力として `WBS Excel ブック (.xlsx)` 形式へ変換する

## スクリーンショット

### Input

`Load from file`、`サンプル`、`生成AI連携` から入力を受け付ける。

![Input](docs/screenshots/screen01.png)

### Overview

内部モデルの確認、validation、native SVG preview をここで行う。

![Overview](docs/screenshots/screen02.png)

### Output

`MS Project XML`、`XLSX`、workbook JSON、`WBS XLSX`、Mermaid、生成AI向け `.editjson` をここから保存する。

![Output](docs/screenshots/screen03.png)

### WBS Excel ブック (.xlsx)

人が読むための帳票として出力される `WBS Excel ブック (.xlsx)` の例。

![WBS Excel ブック](docs/screenshots/excel01.png)

## できること

- `MS Project XML` の読込
- `ProjectModel` への変換と内容確認
- `MS Project XML` の再生成
- Mermaid gantt テキスト生成
- `CSV + ParentID` のファイル読込とダウンロード
- 構造忠実な `Project / Tasks / Resources / Assignments / Calendars` workbook の `XLSX Export / Import`
- 構造忠実な `Project / Tasks / Resources / Assignments / Calendars` workbook の `JSON Export / Import`
- 表示専用の `WBS XLSX Export`
- 生成AI向け `project_overview_view` / `phase_detail_view` / `full bundle` の出力
- 生成AIが返した `project_draft_view` の取込

## 使い始め方

もっとも簡単なのは、生成済みの [mikuproject.html](mikuproject.html) をブラウザで開く方法です。

画面上では主に次を行えます。

- `Load from file` からの `MS Project XML / XLSX / workbook JSON (.json) / 生成AI向け編集用 JSON (.editjson) / CSV + ParentID` の読込
- `project_draft_view` ベースで生成したサンプル XML の読込
- 生成AIが返した `project_draft_view` の JSON 貼り付け取込
- 内部モデル、validation、native SVG preview、各 preview の確認
- `MS Project XML / XLSX / WBS XLSX / workbook JSON / CSV + ParentID / Mermaid / 生成AI向け .editjson` の保存

## 開発

```bash
npm install
npm run build:js
npm run build:html
npm run build:xlsx-sample
npm test
npm run build
```

`local-data/` は確認用の再生成可能な生成物置き場として扱う。ここに出す sample や検証用出力は、Git 管理下の永続成果物ではなく、必要時に再生成できればよい前提とする。

## 関連ドキュメント

- [docs/architecture.md](docs/architecture.md)
- [docs/spec.md](docs/spec.md)
- [docs/gap-notes.md](docs/gap-notes.md)
- [docs/mikuproject-ai-json-spec.md](docs/mikuproject-ai-json-spec.md)
- [docs/msprojectxml-ai-integration.md](docs/msprojectxml-ai-integration.md)
- [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)
- [docs/TODO.md](docs/TODO.md)
- [CONTRIBUTING.md](CONTRIBUTING.md)
- [CONTRIBUTORS.md](CONTRIBUTORS.md)
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
- [LICENSE](LICENSE)
41 changes: 41 additions & 0 deletions THIRD-PARTY-NOTICES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Third-Party Notices

This document lists third-party software and reference materials used or referred to by `mikuproject`.

## Third-party software

## Reference materials

### `open-msp-viewer`

- Usage: Referred to as a temporary source of sample data for verification
- License: Apache License 2.0
- Source: https://github.com/rpbouman/open-msp-viewer/

### MicrosoftDocs Project XML Data Interchange reference

- Usage: Referred to when design decisions for `MS Project XML` handling are unclear. This reference is used together with the Microsoft-hosted Project 2007 schema endpoints such as `https://schemas.microsoft.com/project/2007/` and `mspdi_pj12.xsd`.
- License: CC-BY-4.0 for documentation and MIT for code
- Source: https://github.com/MicrosoftDocs/office-developer-msproject-xml-docs/tree/main/project-xml-data-interchange

---

# 第三者告知

この文書は、`mikuproject` が利用または参照している第三者ソフトウェアおよび参考資料を記載したものです。

## 第三者ソフトウェア

## 参考資料

### `open-msp-viewer`

- 用途: 検証用サンプルデータの一時的な参照元
- ライセンス: Apache License 2.0
- Source: https://github.com/rpbouman/open-msp-viewer/

### MicrosoftDocs Project XML Data Interchange reference

- 用途: `MS Project XML` の扱いで設計判断に迷った場合の補助資料。`https://schemas.microsoft.com/project/2007/` や `mspdi_pj12.xsd` などの Microsoft 側 schema 実体とあわせて参照する。
- ライセンス: 文書は CC-BY-4.0、コードは MIT
- Source: https://github.com/MicrosoftDocs/office-developer-msproject-xml-docs/tree/main/project-xml-data-interchange
Loading
Loading