Skip to content

devel の成果を main に反映 - #15

Merged
igapyon merged 12 commits into
mainfrom
devel
May 8, 2026
Merged

igapyon merged 12 commits into
mainfrom
devel

Conversation

@igapyon

@igapyon igapyon commented May 8, 2026

Copy link
Copy Markdown
Owner

devel の成果を main に反映

igapyon added 12 commits April 25, 2026 15:48
## 概要

`miku` で始まるソフトウェアシリーズに共通する設計上の特徴を整理した設計メモを追加します。

## 変更内容

- `docs/miku-software-hontai-design.md` を新規追加
- mikuシリーズの対象範囲を整理
  - Node版
  - Javaストレートコンバージョン版
  - Agent Skills版
- 本体アプリの位置づけ、基本理念、共通原則を文書化
- local-first、Single-file Web App、CLI、Web UI、diagnostics、summary、companion output などの設計方針を整理
- canonical format、primary output、sidecar asset、manifest、debug trace の考え方を整理
- `miku-docx2md` 固有の気づきとして、Wordレイアウト再現を主目的にしない方針や、Markdown、sidecar asset、manifest、debug trace の扱いを記載
- `workplace/` ディレクトリの扱いと、標準 build/test/lint/release check 対象に含めない方針を記載
mikuシリーズ本体アプリの設計原則ドキュメントを追加
## 概要

mikuシリーズの設計方針を整理したドキュメントを追加しました。

## 変更内容

- `docs/miku-soft-10-mainapp-design-v20260425.md` を追加
  - mikuシリーズのメインアプリケーションに共通する設計方針、推奨規約、製品別メモを整理
- `docs/miku-soft-20-javaapp-design-v20260425.md` を追加
  - mikuシリーズのJavaアプリケーション版に求められる設計方針、CLI/Maven/パッケージング/テスト方針を整理
- `docs/miku-soft-30-straight-conversion-v20260425.md` を追加
  - Node.js / TypeScript upstream から Java へ straight conversion する際の方針と手順を整理

## 補足

- 変更はドキュメント追加のみです。
- 追加行数は合計 2911 行です。
mikuシリーズの設計方針ドキュメントを追加
## 概要

`miku-docx2md` の CLI に `--version` を追加し、パッケージバージョンを入力ファイルなしで確認できるようにしました。

あわせて、GitHub Release 公開時または手動実行時に single-file Web App と source archive を Release asset として生成・アップロードする workflow を追加しました。

## 変更内容

- `package.json` / `package-lock.json` のバージョンを `0.8.2` に更新
- CLI に `--version` オプションを追加
  - `package.json` の `version` を読み取り、`miku-docx2md <version>` を出力
  - 通常の `.docx` 入力や core runtime load を要求しないメタ情報コマンドとして処理
- `smoke:version` npm script を追加
- CLI テストに `--version` の確認を追加
  - 出力バージョンが `package.json` と同期していることを確認
- README と `docs/usage.md` に `--version` の説明を追加
- `.github/workflows/release-assets.yml` を追加
  - Release published / workflow dispatch で実行
  - tag version と `package.json` version の整合性を確認
  - `npm run build` で single-file Web App を生成
  - `npm run test:unit` と `npm run smoke:version` を実行
  - `miku-docx2md-<version>.html`
  - `miku-docx2md-index-<version>.html`
  - `miku-docx2md-sources-<version>.tgz`
  - 上記を GitHub Release asset としてアップロード

## 確認

- `npm run smoke:version`
- `npm run build`
- `npm run test:unit -- tests/docx2md-cli.test.js`
CLI の `--version` と Release asset workflow を追加
## 概要

`miku-docx2md` の CLI metadata、Release asset workflow、実文書検証の記録と fixture を追加しました。

あわせて、Word-authored な `BasicSample01.docx` を committed fixture として取り込み、見出し・段落の変換を regression test で確認するようにしました。

## 変更内容

- CLI の `--help` を拡張
  - usage / contract / options / outputs / examples / exit codes を含めるように更新
  - `--help` / `--version` は単独指定のみ許可する契約に整理
- CLI の `--version` を追加
  - `package.json` の version を読み取り、入力 `.docx` なしで表示
- `smoke:version` npm script を追加
- Release asset workflow を追加・強化
  - release published / workflow dispatch に対応
  - release tag と `package.json` version の整合性を確認
  - build / test / version smoke を実行
  - build 後の generated artifact 差分を検出
  - versioned HTML と source archive を release asset としてアップロード
- `vitest.config.ts` を追加
  - `workplace/**` を標準テスト対象から除外
- 実文書検証関連 docs を追加
  - real document validation template
  - v0.8.2 validation memo
  - v0.8.2 release notes
- `BasicSample01.docx` を `tests/fixtures/docx/` に追加
  - Word-authored fixture として repo に取り込み
  - 見出し 1〜5、`Image Validation`、周辺段落の変換を regression test 化
- TODO を更新
  - Phase 13 の実文書検証進捗を反映
  - `BasicSample01.docx` の画像未抽出を follow-up として記録
  - 追加すべき Word-authored fixture パターンを Phase 13.5 に整理
  - fixture 追加後の refactoring 方針を Phase 13.6 に追加

## 確認

- `npm run test:unit`
- `npm run build`
- `npm run smoke:version`
- `git diff --exit-code -- index.html miku-docx2md.html src/js`

## 確認事項

- `BasicSample01.docx` 内の embedded JPEG は package と relationship 上は存在しますが、現時点では converter が `images: 0` / `imageAssets: 0` として扱っています。これは follow-up bug candidate として TODO と validation memo に記録済みです。
実文書検証と CLI metadata / Release asset 整備を追加
## 概要

DOCX変換の実文書対応を進め、Wordで作成した focused fixture と回帰テストを追加しました。あわせて、インライン書式・リンク・画像アセット出力まわりを分割し、Web UI ではファイル選択後の自動変換、画像リンク出力のON/OFF、箇条書きの空行抑制を追加しています。

## 変更内容

- Word-authored fixture を追加し、見出し、箇条書き、番号付きリスト、ネストリスト、リンク、結合セル、インライン書式、インライン画像、画像 alt text の回帰テストを拡充
- `document-inline-parser` からテキスト書式解決、ハイパーリンク解決、ブラウザ向け画像アセットZIP生成を分離
- `w:proofErr` を無視対象にし、run 内の `w:t` / `w:br` / drawing 系要素の順序処理を改善
- Markdown renderer で連続する list item の区切りを詰め、箇条書きの過剰な空行を抑制
- 画像アセットの Markdown リンク出力に対応し、Web UI からスイッチとフォルダ名入力でON/OFF可能に変更
- Web UI で `.docx` ファイル選択後に自動変換するよう変更
- ファイル選択ボタンの表示を読みやすくするため、`lht-file-select` の native button fallback を調整
- ブラウザ smoke checklist と実文書検証メモを更新
- Release assets workflow を `v*` タグ push 起動に変更
- package version を `0.8.3` に更新
- 生成済み JS / HTML artifact を同期

## 検証

- `npm run build`
- `npm run test:unit`
- `npm run smoke:version`
- `npx tsc --noEmit`
- `git diff --check`

## 確認事項

- TODO 上では、ブラウザで validation set 全体を変換する確認が未完了として残っています。
DOCX変換品質とWeb UIの出力操作を改善
## 概要

DOCX 変換 CLI の診断性と asset export の安全性を強化し、browser asset ZIP の再現性と Web UI 経由の変換テストを追加します。

あわせて README / usage docs の役割分担を整理し、Phase 18 の follow-up TODO を完了状態に更新します。

## 変更内容

- CLI に `--verbose` option を追加
  - `verbose:` prefix 付きで進捗と処理時間を stderr に出力
  - primary output の Markdown / summary と混ざらない形で診断情報を出力
  - CLI help と README / usage docs に利用例を追加

- CLI option parsing を整理
  - flag option と value option の定義を分離
  - `--summary`, `--debug`, `--include-unsupported-comments`, `--verbose`
  - `--out`, `--assets-dir`, `--summary-out`

- CLI error message を stage-aware に改善
  - read / parse / asset write / summary write / markdown write の stage を含める
  - 例: `[sample.docx] read failed: ...`

- 画像 asset export path を安全化
  - `word/media/...` 配下の package path のみを export / link 対象にする `asset-path` module を追加
  - 空 segment、`.`、`..`、絶対 path、`word/media` 外の path を拒否
  - CLI、browser asset ZIP、browser Markdown image link で同じ safe path 判定を使用

- browser asset ZIP の再現性を改善
  - ZIP entry timestamp を `2025-01-01 00:00:00` に固定
  - 同じ entry から byte-stable な ZIP が作られることをテストで確認

- browser Web UI path の自動テストを追加
  - committed validation fixtures を Web UI 経由で変換
  - auto-conversion、image link toggle、image link folder 変更、download button enabled/disabled state を検証
  - Playwright 追加なしで `jsdom` ベースのテストとして実装

- `.docx` fixture hygiene test を追加
  - `docProps/core.xml` の creator / lastModifiedBy / created / modified が残っていないことを確認
  - `docProps/app.xml` の Application / AppVersion を確認
  - comments、embedded objects、macro、未文書化 external relationship の混入を検出

- README / usage docs を整理
  - README は概要と最短手順に寄せる
  - CLI option、asset manifest、debug 出力などの詳細は `docs/usage.md` に集約
  - docs の役割分担を明記

- generated artifact / module order を更新
  - `asset-path` module を TypeScript / JavaScript module order に追加
  - generated single-file Web app に反映

## 確認済み

- `npm run build`
- `npm run test:unit`
- `npx tsc --noEmit`
- `npm run smoke:version`
- `git diff --check`
CLI diagnostics and asset export safety hardening
@igapyon
igapyon merged commit 39cfdaa into main May 8, 2026
3 checks passed

This branch was previously deployed

1 inactive deployment
github-pages — 35a904c3 Deployed May 8, 2026 by igapyon via deploy #8
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