GitHub: https://github.com/igapyon/mikuproject
mikuproject は、MS Project XML を意味の基軸に、生成AIとの往復を支えるために設計されたローカル HTML ツールです。WBS の草案作成から再編集・再取込、人向けの可視化・帳票化までを、ひとつの流れとして扱えます。
mikuproject の強みは、MS Project XML を意味の基軸として保ちながら、生成AIと人のあいだを往復できることです。WBS 草案の作成、生成AI が扱いやすい形への表現変換、生成AI から返った内容の再取込、人による確認と修正、そして可視化・帳票化までを、同じプロジェクト情報の流れとして扱えます。XLSX、Markdown、JSON、Mermaid、生成AI向け表現、そして必要に応じた MS Project への橋渡しは、それぞれの用途に応じた周辺表現として無理なく出し分けられます。
特に、次の 3 つを重視して設計しています。
MS Project XMLを意味の基軸として保つこと- 生成AIと人の往復に適した表現変換 / 再取込 / 介在を支えること
- 人が読むための可視化と、WBS 帳票・SVG を含む成果物出力を提供すること
配布物は mikuproject.html ひとつの single-file web app で、Web ブラウザさえあればインストール不要・ネットワーク不要で利用できます。
MS Project XML を意味の基軸として扱い、.xlsx と workbook JSON は確認・可視化・限定編集のための周辺表現として扱います。生成AI 連携の編集用 JSON は、workbook JSON と区別するため当面 .editjson 拡張子を推奨します。
- その1: 生成AI との対話で WBS 草案を作成し、
mikuprojectに取り込んで、人と生成AIが確認・修正しながら、帳票や可視化成果物として仕上げる - その2: 既存の
MS Project XMLをmikuprojectに取り込み、内容を確認しながら、WBS Excel ブック (.xlsx)や日次・週次のガント表現や月次カレンダーのSVG、Markdownなどの人向け成果物へ展開する - その3:
mikuprojectで扱う WBS やプロジェクト情報を生成AI向けに表現変換し、生成AIが返した結果を再び取り込みながら、人と生成AIがレビュー・調整・再利用しやすい形へ整える
Load from file、サンプル、生成AI連携 から入力を受け付ける。
Daily / Weekly / Monthly Calendar preview をここで行う。
Overview では Monthly Calendar preview も確認できる。
MS Project XML、XLSX、workbook JSON、CSV、WBS XLSX、WBS Markdown、Daily / Weekly / Monthly Calendar SVG、Mermaid、生成AI向け .editjson、ALL ZIP をここから保存する。
人が読むための帳票として出力される WBS Excel ブック (.xlsx) の例。
WBS ツリー と WBS テーブル を含む Markdown 出力の例。
- 生成AIに渡すためのプロジェクト概要・工程詳細・一式データの出力(
project_overview_view/phase_detail_view/full bundle) - 生成AIが返した WBS 素案の取込(
project_draft_view) - 生成AI向けの task 単位編集ビューの出力(
task_edit_view) - 生成AIが返した Patch JSON の取込と反映
MS Project XMLの読込ProjectModelへの変換と内容確認- 日次・週次のガント表現、および月次カレンダー可視化の
SVG出力 Project / Tasks / Resources / Assignments / Calendarsworkbook の構造を保ったまま、XLSX / JSONでExport / ImportCSV + ParentIDのファイル読込とダウンロードMS Project XMLの再生成- 表示専用の
WBS XLSX Export - Mermaid gantt テキスト生成
もっとも簡単なのは、生成済みの mikuproject.html をブラウザで開く方法です。
画面上では主に次を行えます。
Load from fileからのMS Project XML / XLSX / workbook JSON (.json) / 生成AI向け編集用 JSON (.editjson) / CSV + ParentIDの読込- 生成AIによる WBS 草案(
project_draft_view)をもとに生成したMS Project XMLの読込 - 生成AIが返した WBS 草案(
project_draft_view)の JSON 貼り付け取込 - 内部モデル、validation、
Daily / Weekly / Monthly Calendarpreview の確認 MS Project XML / XLSX / WBS XLSX / workbook JSON / CSV + ParentID / Daily SVG / Weekly SVG / Monthly Calendar SVG / Mermaid / 生成AI向け編集用 JSON (.editjson)の保存- 主要成果物をまとめた
ALLZIP の保存
主な保存名の例:
Daily SVG:mikuproject-wbs-daily-<YYYYMMDDHHmm>.svgWeekly SVG:mikuproject-wbs-weekly-<YYYYMMDDHHmm>.svgMonthly Calendar SVG:mikuproject-monthly-wbs-calendar-<YYYYMMDDHHmm>.zipALL:mikuproject-all-<YYYYMMDDHHmm>.zip
Monthly Calendar SVG の ZIP 内では、月別ファイルを monthly-calendar/YYYY-MM.svg の形で格納します。
Monthly Calendar SVGは、月ごとのSVGをまとめたZIPとして保存されるALLも、複数の成果物をまとめたZIPとして保存されるWindows 11では、ダウンロードしたZIPやSVGが「危険なファイル」として警告される場合がある- これは
mikuproject固有の独自拡張ではなく、ZIPやSVGを Windows 側が外部由来ファイルとして慎重に扱う場合があるため - 少なくとも
Monthly Calendar SVGとALLのZIPは、アプリ内で生成した成果物をまとめたもの - 警告の有無や表示文言は、利用するブラウザや Windows の設定に依存する可能性がある
npm install
npm run build
npm testnpm run build には build:web、build:cli-bundle、test:fast が含まれる。開発用コマンドの詳細、テスト運用、local-data/ の扱いは docs/development.md を参照してください。
single-file web app 向けの既存 globalThis.__mikuproject* 群は維持しつつ、Agent Skills / CLI / MCP から使いやすい集約入口として globalThis.__mikuprojectCoreApi を公開しています。
getAiJsonSpec()/getAiJsonSpecText():mikuproject-ai-json-specの安定取得parseAiJsonText()/importAiJsonDocument()/importAiJsonText():project_draft_view/ Patch JSON / workbook JSON の UI 非依存な共通入口importExternal():MS Project XML / XLSX / workbook JSON / project_draft_view / patch JSONの format-aware な共通 import 入口projectModel,msProject,aiViews,workbookJson,xlsx,patchJson,report:ProjectModel周りの import / export / validate の集約 entrypoint
xlsx では次を公開する。
decodeWorkbook()/encodeWorkbook(): workbook binary と workbook object の相互変換exportWorkbook():ProjectModelから構造忠実 workbook を生成importAsProjectModel()/importIntoProjectModel(): workbook object をProjectModelへ replace / merge import
report では次を公開する。
all.export():report成果物一式 ZIP の生成wbsXlsx.exportWorkbook()/wbsXlsx.exportBytes():WBS XLSXworkbook と.xlsxbytes の生成svg.exportDaily()/svg.exportWeekly()/svg.exportMonthlyCalendar():Daily / Weekly / Monthly Calendar SVGの生成wbsMarkdown.export():WBS Markdownの生成mermaid.exportGantt(): Mermaid gantt text の生成
importExternal() の最小例:
const api = globalThis.__mikuprojectCoreApi;
const replaceResult = api.importExternal({
source: { format: "xlsx", bytes },
mode: "replace"
});
const mergeResult = api.importExternal({
source: { format: "workbook_json", document },
mode: "merge",
baseModel
});first cut の対応は次のとおり。
ms_project_xml:replaceのみxlsx:replace/mergeworkbook_json:replace/mergeproject_draft_view:replaceのみpatch_json:patchのみ
Node 側から core API を起動する最小 helper は scripts/lib/core-api-loader.mjs に置いている。CLI ではこの loader が globalThis.__mikuprojectXmlDom を初期化し、XML 系の DOMParser / XMLSerializer / XML document 生成を環境非依存に扱う。importExternal() の利用例は scripts/core-api-import-external-example.mjs を参照。
AI JSON spec 単体の取得用には globalThis.__mikuprojectAiJsonSpec も公開しています。
Node 側から core API を薄く包む最小 CLI first cut として、次の入口を追加している。
mikuproject ai specmikuproject state from-draftmikuproject state apply-patchmikuproject export workbook-jsonmikuproject export xmlmikuproject export xlsxmikuproject report wbs-xlsxmikuproject report daily-svgmikuproject report weekly-svgmikuproject report monthly-calendar-svgmikuproject report allmikuproject report wbs-markdownmikuproject report mermaid
主成果物は stdout、warning / diagnostics は stderr を基本とする。
例:
mikuproject ai spec
mikuproject state from-draft --in draft.json --out workbook.json
mikuproject state apply-patch --state workbook.json --in patch.json --out workbook.next.json
mikuproject export xml --in workbook.json --out project.xml
mikuproject export xlsx --in workbook.json --out project.xlsx
mikuproject report wbs-xlsx --in workbook.json --out project-wbs.xlsx
mikuproject report daily-svg --in workbook.json --out project-daily.svg
mikuproject report weekly-svg --in workbook.json --out project-weekly.svg
mikuproject report monthly-calendar-svg --in workbook.json --out project-monthly.zip
mikuproject report all --in workbook.json --out project-report-bundle.zip
mikuproject report wbs-markdown --in workbook.json --out project-wbs.md
mikuproject report mermaid --in workbook.json --out project.mmdreport monthly-calendar-svg は月別 SVG 一式をまとめた ZIP を出力する。
report all は wbs.xlsx / wbs.md / mermaid.mmd / daily.svg / weekly.svg / monthly-calendar/YYYY-MM.svg をまとめた ZIP を出力する。
mikuproject 側で CLI 実行に必要な runtime をまとめた自己完結ディレクトリ bundle を出力できるようにしている。
npm run build:cli-bundle既定の出力先は bundle/mikuproject-cli-bundle/ で、主に次を含む。
bundle/
mikuproject-cli-bundle/
README.md
package.json
scripts/
src/
node_modules/
この bundle は追加の npm install なしで、そのまま CLI 実行に使える first cut を狙っている。たとえば次で動く。
node bundle/mikuproject-cli-bundle/scripts/mikuproject-cli.mjs ai spec
node bundle/mikuproject-cli-bundle/scripts/mikuproject-cli.mjs export xml --in workbook.json --out project.xmlbundle 生成時は、repo root の node_modules にある CLI runtime 依存を取り込む。現時点では @xmldom/xmldom を CLI の優先 XML DOM 実装として使い、jsdom は HTML / Blob / File など XML 以外の Web API 補完のために同梱する。そのため、bundle 生成前には一度 npm install 済みであることを前提とする。






