2026-09-01 - Porthole scaffold + the encoder-reachability section (D280)

Scaffolded the Porthole payload in porthole/ (tracer-style isolated subtree): the wire contract is real (24-byte PPAD input record + host self-test), the three real operations are gated stubs. Builds: make -C porthole check (host contract) and make -C porthole skeleton (freestanding target) both green. Added 106-encoder, a presence-only reachability section for libSceVencCore's key entry points - the first half of Porthole's go/no-go - following 105-record's discipline (declare as data, never call an unconfirmed arity; the harness's skip-if-unresolved is the measurement). Runs on host: three skips, correct (no encoder there). encoder.c + registry both compile clean.

Surprise worth recording: make host is currently broken, but not by any of this - the untracked src/common/ (the D278 injector's freestd helpers) includes "common/freestd.h", which -Iinclude cannot find. Verified my additions build in isolation and under an -Isrc override; left src/common/ alone as the injector workstream's. Flagged in D280.