oops-sdk documentation

What target-side payloads in OOPS share: the display, the controller, sound, memory the GPU can see, the clock, threads and sockets - behind one set of headers, in freestanding C.

Not one of the four. This is infrastructure underneath them, and a repository rather than a project. Its Rust counterpart is oops-libs, which is what the host-side tools share; nothing links both.

New here? The root README has the subsystems, the two display backends, and how a consumer wires it into a Makefile.

Guide

Project memory

Shared rules - provenance, naming, decision logs, honest failure, gates - are in the OOPS conventions and not restated here.

The words

Vocabulary is the collection's, not this repository's. Nothing here defines a term of its own:

payload, target and host are defined for all repositories in CONVENTIONS.md section 2 and are not repeated here. They are the three words this repository turns on: it is built for the target, linked into a payload, and its host display backend is the one that runs nowhere near either.

Adding to a log

The long-running documents are directories with a generated index. Add a file under decisions/, then regenerate the table:

tools/split-decisions.sh --index oops-sdk

Do not edit the index by hand - it is overwritten. The split exists because two sessions appending to one file collide, and because a log past half a megabyte stops rendering on GitHub entirely.