Use program.md as the canonical autonomous experiment workflow.
Use this file for project facts and guardrails.
If they differ, program.md wins for workflow and this file wins for codec context.
gopusis a pure Go implementation of Opus (RFC 6716).- The pinned reference implementation is
tmp_check/opus-1.6.1/(libopus 1.6.1). - The main public API target remains zero-allocation caller-owned buffers:
func (d *Decoder) Decode(data []byte, pcm []float32) (int, error)func (e *Encoder) Encode(pcm []float32, data []byte) (int, error)
- Run mixed quality+feature work by default.
- Keep quality as the primary score, using libopus parity and compliance as the reference.
- Treat throughput as optional unless the current change is explicitly performance-facing.
- Preserve zero-allocation guarantees in encoder and decoder hot paths.
Do not start by re-debugging these without new evidence:
- SILK decoder correctness path.
- Resampler parity path used for SILK and Hybrid downsampling.
- CWRS sign handling, MDCT/IMDCT roundtrip, and energy coding roundtrip.
- NSQ constant-DC amplitude behavior (~0.576 RMS ratio).
- Cross-check codec math and bitstream decisions against
tmp_check/opus-1.6.1/before trying heuristic fixes. - If behavior is uncertain, align to libopus 1.6.1 first and only diverge with explicit fixture evidence.
- Preserve zero allocations in real-time encode/decode hot paths.
- When a loop benefits from parallel scouting, prefer one read-only quality/compliance scout and one read-only unimplemented-feature scout.
- Do not turn raw
ErrUnimplementedstubs into loop targets unless they have a pinned judge; the current safe unimplemented seed isogg-seek. - During an experiment loop, treat these as fixed judge surfaces unless you are intentionally changing the workflow itself:
program.mdtools/autoresearch.shtools/benchguard/main.gotools/bench_guardrails.jsontestvectors/testdata/tmp_check/
- Read
program.md,AGENTS.md, andREADME.md. - Run
make autoresearch-init. - Run
make autoresearch-preflight. - Run
make autoresearch-eval DESCRIPTION=baseline. - Before proposing merge-ready codec changes, run
make verify-production.