Skip to main content
← All field notes

Field note / AuraLinter

Agentic Coding Loops Beyond the LLM

How RAG-grounded retrieval and a clang++ verifier catch a hallucinated biquad formula a single LLM call ships — and why AuraLinter isn't fully on-device.

Joshua Hrisko, Principal Engineer at MakerPortal

Joshua HriskoPrincipal Engineer

5 min readSan Francisco, CA

Agentic Coding Loops Beyond the LLM
AI-generated illustration · decorative; it carries no data, and every figure in this post is cited inline

“Agentic” gets used loosely enough that it’s worth being specific about what it actually buys you over a single well-prompted LLM call. AuraLinter records audio, generates a C++ DSP kernel for whatever the user asked for, and — the part that’s actually load-bearing — verifies that kernel against a real compiler and a stability check before it’s accepted. Five nodes: record → retrieve → generate → verify → iterate.

The verifier is a compiler, not a vibe check

The generator node doesn’t write C++ from a blank prompt. Retrieval runs first against a versioned corpus drawn from the RBJ Cookbook, Oppenheim’s Discrete-Time Signal Processing, Smith’s DSP guide, and Biquadia’s own Metal kernels. Corpus size, embedding model, top-k, and threshold are backend configuration—not public benchmark claims. The generation prompt is constrained to output Direct-Form-II-Transposed C++ with normalized coefficients and an explicit stability invariant. Then it actually gets checked:

$ clang++ -O2 -std=c++20 -I./dsp -c biquad.cpp -o biquad.o
$ ./verify_biquad --freq 1000 --q 0.707 --fs 48000
[PASS] magnitude -3.01 dB @ fc (expected -3dB)
[PASS] stability: poles |p|=0.98 <1
[PASS] DF2T state bounded
→ kernel accepted

That verification step exists because it catches a specific failure mode: a generated biquad can use alpha = Q * sin(w0)—inverted from the correct alpha = sin(w0) / (2*Q). It reads as plausible C++. It compiles. It’s wrong. Retrieval gives the model relevant source material but does not prove the result; the actual backstop is the harness, where a wrong coefficient shows up as the wrong -3dB point or an unstable pole radius rather than a subjective code-review judgment call.

The loop earns its name on the case that fails first

Lowpass and peaking filters pass on the first attempt — the retrieval is strong enough that there’s nothing to iterate on. A 64-tap Hilbert transformer is a better test, because it fails the way a real DSP engineer would expect it to: an even-length linear-phase Hilbert design has a non-zero response right at Nyquist, which the verifier catches as a parity/DC-gain failure. The graph routes that failure back to the generator with the compiler/harness error appended, and the corrected attempt — a 63-tap design (the 4n+3 length real Hilbert designs need), built via Remez exchange — passes. That’s the actual difference an agentic loop is supposed to provide over a single-shot call: not a better first answer, but a real failure that produces a real second attempt.

Two more things worth knowing

  • This is the one MakerPortal app that isn’t fully on-device, and that’s disclosed rather than hidden. Recorded audio is staged temporarily server-side and the agent’s trace streams back over SSE — the codegen and retrieval steps need more than a phone can currently run. No analytics SDKs, no cookies, and the backend is optionally self-hostable, but this is a real, named exception to the rest of the studio’s on-device-first posture, not something folded quietly into marketing copy.
  • The retrieval corpus includes the studio’s own shipped code, not just textbooks. Biquadia’s Metal kernels are indexed alongside RBJ/Oppenheim/Smith, so a generated kernel has to be consistent with what AuraLinter’s sibling app already ships — not just correct in isolation against a textbook formula.

Want to click through the control flow instead of reading about it? The agentic DSP pipeline step-through renders disclosed deterministic fixtures for the lowpass, peaking, and Hilbert scenarios; it does not claim to run the production model, vector database, or compiler in your browser. The Vector Retrieval Recall Lab isolates the retrieval tradeoff with measured local recall, while the DSP snippet pack packages kernels for anyone who wants the code directly.

Recommended Studio & Hardware Gear

Affiliate links support independent R&D

Tested studio equipment and reference hardware utilized for this build. Product images & pricing sourced from Amazon Creators API / SparkFun Electronics.