abc/ is core and just-touched by URI-002/003/004, so this ticket is a behavior-preserving refactor whose diff is surfaced for human review — never autoland (CLAUDE.md "abc changes need review"). The 2026-06-15 audit found four hot spots where typed slices are ripped into raw cursors or bytes are hand-parsed, both forbidden by CLAUDE.md §1/§10 and ABC.
abc/BSD.c:196-345 — BSDDiff rips old/neu/patch into ob/out/outend cursors and drives the algorithm on out+=8, outend-out, ob[scsc+lastoffset]; the boundary slice API is discarded (S.md "very very bad" mode-switch). Helpers at :88/:131/:140 take u8cp + i64 size pairs.abc/URI.c:301-374 — URIMergePath hand-implements RFC-3986 remove_dot_segments with in/in_end/out cursors (in+=3, *out++, out[-1], out--) plus two static module-global u8 Buf[4096] (forbidden fixed buffer, non-reentrant); slices built by Buf+len.abc/TLV.c:169,181,205,229 — *(u32*)(start+1)=len / *(u64*)(1+*outer)=tl-9 unaligned pointer-cast writes (UB) plus ptr-arith on *outer/start.abc/ANSI.c:217-234 — OSC-11 reply hand-parsed: p=buf,end=buf+n; p+=2; p++; end-p; p[0], with ansi_parse_hex16(&p,end) a consumed-ptr + end out-param.BSDDiff data as slices: emit via u8sFeed/u8sFed, bound with $len/u8sUsed; helper sigs take u8csc.URIMergePath cursors with a PATH-segment walk into an a_carve/gauge; delete both static Buf[4096].u8sFeed32/u8sFeed16 (memcpy-backed, alignment-safe), as the rest of the module already does.u8cs + u8sUsed/u8sFind.ctest -j16 --timeout 10 stay green.URIMergePath over a cursor rewrite (ABC "never manual parsing in C").URIMergePath → segment walk; drop the two static buffers — SPLIT OUT to PTR-009, which LANDED b0455595 (abc 5f84502a): PATHu8sDrain walk, static Buf[4096] gone from abc/URI.c.BSD.c:219-327 still out/outend cursors, out += 8; no BSDi64sFeedOff anywhere) and no PTR-001 worktree exists under SRC_ROOT — recover the diff or REDO against trunk.TLV.c still *(u32*)(1+*outer) = tl-5 / *(u64*)(1+*outer) = tl-9 (unaligned UB); the surrounding u8sFeed32/64 calls predate this ticket ("new RDX LSM architecture").ANSI.c:141 ansi_parse_hex16(u8c **pp, u8c *end) keeps the consumed-ptr + end out-param shape.abc/URI.c.call()) → carved to PTR-009; abc/URI.c here is UNTOUCHED./home/gritzko/src (same fate as PTR-008's discarded tangle). Treat the old "done" claims as lost work.b0455595) survives. Remaining scope needs a fresh worktree against trunk.