diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index a783ee06..90a13e7d 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,5 +1,12 @@ # Self Current Task — Now (main) +## 2025‑12‑17:Phase 99 完了 ✅ + +**Phase 99: Trim/escape 実コード寄り強化(VM+LLVM EXE)** +- next_non_ws を3ケース固定(`2`, `-1`, `3`)— 改行/CR/Tab混在パターン追加 +- escape 末尾バックスラッシュを best-effort として固定(`hello\` そのまま出力) +- VM+LLVM EXE parity 完全対応、integration smoke で検証済み + ## 2025‑12‑15:Phase 132 完了 ✅ **Phase 132: LLVM Exit PHI=0 根治修正 完了!** diff --git a/docs/development/current/main/phases/phase-95/README.md b/docs/development/current/main/phases/phase-95/README.md index 7aabe10d..27637441 100644 --- a/docs/development/current/main/phases/phase-95/README.md +++ b/docs/development/current/main/phases/phase-95/README.md @@ -1,3 +1,4 @@ - Phase 95: json_loader escape loopを Phase 94 基盤(BodyLocalDerivedEmitter + p5b_escape_derived_policy)でE2E固定する。 - 新規フィクスチャ: apps/tests/phase95_json_loader_escape_min.hako(hello" world を出力) - ガード: HAKO_JOINIR_STRICT=1 で fail-fast 維持。smoke (integration) で VM 出力を検証。 +- Phase 99追加: 末尾バックスラッシュは best-effort(そのまま出力)として固定。apps/tests/phase99_json_loader_escape_trailing_backslash_min.hako で検証。 diff --git a/docs/development/current/main/phases/phase-96/README.md b/docs/development/current/main/phases/phase-96/README.md index 299e8bc0..ab805d9e 100644 --- a/docs/development/current/main/phases/phase-96/README.md +++ b/docs/development/current/main/phases/phase-96/README.md @@ -1,3 +1,4 @@ - Phase 96: MiniJsonLoader の next_non_ws ループを Trim policy/SSOT で固定。 -- フィクスチャ: apps/tests/phase96_json_loader_next_non_ws_min.hako(期待: `2` と `-1` を出力) -- smoke: tools/smokes/v2/profiles/integration/apps/phase96_json_loader_next_non_ws_vm.sh(VM, strict、出力一致チェック) +- フィクスチャ: apps/tests/phase96_json_loader_next_non_ws_min.hako(期待: `2`, `-1`, `3` を出力、Phase 99で3ケース目追加) +- smoke: tools/smokes/v2/profiles/integration/apps/phase96_json_loader_next_non_ws_vm.sh(VM, strict、3行出力一致チェック) +- smoke: tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh(LLVM EXE parity、Phase 99で3行対応) diff --git a/docs/development/current/main/phases/phase-99/README.md b/docs/development/current/main/phases/phase-99/README.md new file mode 100644 index 00000000..1d1a968e --- /dev/null +++ b/docs/development/current/main/phases/phase-99/README.md @@ -0,0 +1,26 @@ +# Phase 99: Trim/escape 実コード寄り強化(VM+LLVM EXE) + +## ゴール +Phase96/97 の Trim/escape を "実コード寄り" に1段上げ、実アプリ側(MiniJsonLoader 相当)の失敗形を先に捕まえる状態にする。 + +## 実施内容 + +### P0-1: next_non_ws 3ケース固定(VM+LLVM) +- **拡張**: apps/tests/phase96_json_loader_next_non_ws_min.hako に3つ目のケース追加(`\n\r\tX` → 期待値 `3`) +- **smoke更新**: phase96_json_loader_next_non_ws_vm.sh と phase97_next_non_ws_llvm_exe.sh を3行比較に対応 + +### P0-2: escape 末尾バックスラッシュ固定(VM+LLVM) +- **新規fixture**: apps/tests/phase99_json_loader_escape_trailing_backslash_min.hako(`"hello\\` → 期待値 `hello\`) +- **現行仕様**: 末尾バックスラッシュは **best-effort**(そのまま出力)として固定 +- **新規smoke**: phase99_escape_trailing_backslash_vm.sh と phase99_escape_trailing_backslash_llvm_exe.sh で検証 + +## 検証 +- cargo test --lib +- bash tools/smokes/v2/profiles/integration/apps/phase96_json_loader_next_non_ws_vm.sh +- bash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh +- bash tools/smokes/v2/profiles/integration/apps/phase99_escape_trailing_backslash_vm.sh +- bash tools/smokes/v2/profiles/integration/apps/phase99_escape_trailing_backslash_llvm_exe.sh + +## 原則 +- **pattern増殖なし**: 既存の Policy/Recipe/Emitter で表現できる範囲だけを追加 +- **integration smokeのみ**: LLVM不足/plugins不足はSKIP