# Phase 20.21 — チェックリスト(Manual Memory Management / C‑ABI) 開始前 - [ ] 既定OFF/Fail‑Fast/SSOT 方針の合意 - [ ] libc 既定/hakmem 切替は ENV のみ(実装は次) 実装 - [x] hako_alloc/hako_free(libc)+ ABI名 `hako_mem_alloc/free` エイリアス - [ ] (任意)hako_realloc(安全に提供できる条件を満たす場合) - [x] HakoHandle retain/release(atomic;handle_registry 実装) - [ ] ENV: HAKO_C_ABI_ALLOC={libc|hakmem} テスト/スモーク - [x] alloc→write→free 正常(cabi_mem_alloc_free_vm.sh) - [x] unknown handle → Fail(cabi_handle_unknown_fail_vm.sh) - [x] retain→release の基本(0→free)(cabi_handle_retain_release_vm.sh) - [ ] double free(handle)→ Fail(任意で追加) - [ ] (任意)ASan/Valgrind ガイド+実行 ドキュメント - [ ] abi/README.md に Memory Ownership Rules 追記 - [ ] 失敗時の安定文言(unknown handle/double release/allocator mismatch)を明記 受入基準 - [x] スモーク緑/回帰なし(quick 既定) - [x] ENV 既定OFFで既存経路の挙動不変(メモリAPIはC側で独立・default=libc) - [x] SSOTが最新の実装・CLIと一致(abi/README.md / env-variables)