Byte-match ONE function for the Brave Fencer Musashi matching decomp. Repo: /home/musashi/bfm-decomp (run every command from there). Target: func_800CD558 in binary md_MAIN_009 (24 instructions, never drafted). Arm: haiku. READ FIRST, in order: .run/P32/t3/BRIEF.md, .run/P32/t3/SYS.md, .run/P32/t3/packs/func_800CD558.md. Target asm (read IN FULL): asm/md_MAIN_009/nonmatchings/md_MAIN_009/func_800CD558.s. Destination TU: src/md_MAIN_009/md_MAIN_009.c (read its banked siblings for house style; if the TU already declares a symbol you need, copy that declaration EXACTLY). sub = md_MAIN_009. Write your best draft to .run/P32/t3/haiku/func_800CD558.c. Check with `.venv/bin/python tools/match_one.py func_800CD558 --c <draft> --asm-subdir asm/md_MAIN_009/nonmatchings/md_MAIN_009 --work .run/P32/t3/work/func_800CD558`, then `.venv/bin/python tools/rtu_match.py func_800CD558 --split md_MAIN_009 --source md_MAIN_009 --c <draft> --asm-subdir asm/md_MAIN_009/nonmatchings/md_MAIN_009 --work .run/P32/t3/rtu/func_800CD558`. Two integration rules the coordinator hit today: (1) if your target .s carries a `dlabel D_xxx` block in its `.rodata` section, your draft must DEFINE that data at file scope (e.g. `const char D_xxx[] = "...";` from the .s bytes, cookbook §304) — an `extern` for it fails at LINK because the stub .s was its only owner; (2) declare shared globals with the exact type the TU or its banked siblings already use. Scratch ONLY under .run/P32/t3/work/func_800CD558/ and .run/P32/t3/rtu/func_800CD558/; NEVER run find/rm/mv or a glob over .run/P32/t3/haiku/ or any directory you did not create (it holds other agents' deliverables). Do NOT edit anything under src/ or config/. Your FINAL message is EXACTLY the single-line JSON verdict specified in BRIEF.md and nothing else.
