Skip to content

Specs

Specs live in the project wiki, not in this repository.

A spec is a point-in-time decision record: written once, true of a moment, read later for its conclusions. Keeping them here buried the living documentation they sat beside, so they moved. Contributor guides, engineering standards and testing conventions stay in docs/, because those change with the code.

Spec Title Status
0001 afmpeg: pure-Go FFmpeg on a virtual filesystem APPROVED
0002 the FFmpeg→WASI build pipeline REJECTED
0003 the afero ↔ wazero vfs bridge IMPLEMENTED
0004 the runtime & public API (Run / Probe) IMPLEMENTED
0005 the ffmpeg command builder IMPLEMENTED
0006 hardening roadmap (deferred) IMPLEMENTED
0007 the libav-direct engine + the ffmpeg-wasi project IMPLEMENTED
0008 performance strategy (spike) IMPLEMENTED
0009 cmd/afmpeg CLI (deferred, value unproven) DRAFT · blocked
0010 signed, release-aware module acquisition IMPLEMENTED
0011 WKD key distribution + the embedded↔WKD cross-check IMPLEMENTED
0012 feature-parity roadmap (toward a complete standalone offering) APPROVED
0013 remux & stream copy IMPLEMENTED
0014 seeking & time ranges IMPLEMENTED
0015 container coverage IMPLEMENTED
0016 native codec batch IMPLEMENTED
0017 native filter batch IMPLEMENTED
0018 LGPL encoder expansion IMPLEMENTED
0019 text & subtitles IMPLEMENTED
0020 metadata & chapters IMPLEMENTED
0021 frame extraction op IMPLEMENTED
0022 the build & distribution matrix IMPLEMENTED
0023 HEVC & AV1 (heavy codecs) IMPLEMENTED
0024 input demuxer options, forced/raw formats & stream selection IMPLEMENTED
0025 A/V sync & frame-rate control IN REVIEW
0026 engine hot-path performance IMPLEMENTED
0027 runtime security hardening IMPLEMENTED
0028 native backends (the hardware-acceleration escape hatch) IMPLEMENTED
0029 meson cross-compile toolchain IMPLEMENTED
0030 WASM threading strategy (wazero: stay single-threaded, fork for threads, or supplement) DRAFT
0031 job progress reporting IMPLEMENTED
0032 engine progress side-channel (0031 phase B) IMPLEMENTED
0033 native progress side-channel (0031 phase B for Backend B) DRAFT · blocked
0034 Fraction source precedence (progress correctness) IMPLEMENTED
0035 engine builds on a merge request (ffmpeg-wasi CI evidence before the tag) IMPLEMENTED
0036 engine test suite (the instrument for the n9 bump) IMPLEMENTED
0037 engine test suite phase D: parity and the IPC host IMPLEMENTED
0038 the engine on FFmpeg n9.0.1 IMPLEMENTED
0039 the native driver's filesystem boundary (the pre-pass; could not fail closed) REJECTED
0040 the native driver sandbox (opt-in Landlock; the case for optional did not survive review) REJECTED
0041 the IPC protocol's missing primitives (read failure, rename, and asking what exists) IMPLEMENTED
0042 fontconfig, the hls/dash demuxers, and the filesystem surface IMPLEMENTED
0043 the native driver's filesystem boundary, replacing 0039 and 0040 (patch the file protocol, Landlock on by default) IMPLEMENTED
0044 the engine must finish: liveness as a dataflow invariant rather than a deadline; read before 0043, not after IMPLEMENTED
0045 which encoder an option is for: per-kind encoder option maps, and the CLI option names the docs teach that the engine has never had IMPLEMENTED

Referring to a spec

By number and name, "0020, the explainable-cull spec", never by date. The number is a stable handle; a date is not something anyone remembers.

Writing a new one

Claim the next number first, then draft against the canonical shape. See the spec-driven-development skill in the phpboyscout marketplace.