Rails World 2026: Harness Engineering on Rails (Quenneville)
Source: “Harness Engineering on Rails”, Joël Quenneville (thoughtbot), Rails World 2026, Track 2, 2026-09-24 15:45 https://rubyonrails.org/world/2026/sessions/harness-engineering, published on the Rails official channel 2026-10-01 as L6-3a_rwLIg https://www.youtube.com/watch?v=L6-3a_rwLIg.
Ingested: 2026-10-25, from written sources only. The video has no English caption track (checked 2026-10-25: only ar, bn, nl, fr, de, iw, hi, id, it, ja, ko, ml, pl, pt, pa, ru, es, ta, te, uk are available, and the fetch tool does not read translated tracks). No transcript of the talk is held in this vault and none is quoted below. What is filed comes from the official session abstract, the indexed talk summary https://www.rubyevents.org/talks/harness-engineering-on-rails, an attendee recap https://teloslabs.co/post/rails-world-2026-harnesses-agents-judgment, and the written conversation the talk belongs to (the corpus listed under Sources). Ryan’s own notes on the talk predate this page and were an input to filing it. See harness-engineering.
Summary
The abstract alone carries the thesis: agents have reshaped what AI can do with code, yet people still use them like ChatGPT and wonder why they disappoint. “The quest to one-shot our code with the perfect prompt is a trap.” Better results come from hooking into signals you already have: RSpec, RuboCop, a self-review. The move the abstract names is from chatbot to reactive system, and the sentence that should be tattooed on every harness is the inversion: when your reaction to mediocre code is to fix the harness rather than the mistake, agents become assistants whose output you are proud of. See environment-and-constraints and agent-verification-skill.
The talk’s structure, as recorded in the indexed summary and the recap, is an agent as a loop, and you raise the floor on its output by placing controls on both sides of that loop, feed-forward (what shapes the code before it is written: generators, domain-specific scripts, AGENTS.md) and feedback (what catches it after: custom RuboCop cops, hooks, focused review skills). Each side splits again by kind of check, computational (deterministic tools that answer the same way every time) or inferential (review by model judgment). That gives the harness 2x2 Quenneville is credited with in the recap. The line from the recap that carries the rest: “A README is a suggestion. A harness is a rule”, and an agent treats a guideline as a suggestion, so any rule that matters has to be enforced by the system, not written near it. The same recap groups this under the observation heard “in nearly every room” at the conference: harness is the new craft word.
The talk’s practical move is to shift judgment out of prose and into tools. The OpenAI post that names the same discipline describes running agent reviewers against human feedback in a loop until all reviewers are satisfied, which is the inferential-feedback quadrant built as machinery https://openai.com/index/harness-engineering. Birgitta Böckeler’s definition, cited in Daniel Demmel’s application of the frame to feedback loops, is the one the term keeps converging on: the harness is everything in an agent except the model itself, agent equals model plus harness, split into guides that steer before action and feedback that corrects after https://www.danieldemmel.me/blog/feedback-loop-engineering. Dan from the Pi Durable demo lands on the same word without the talk: “this is advanced harness engineering” (23:37). See 2026-10-12-youtube-indydevdan-pi-durable, durable-agents.
The garden as an instance
This vault’s whole gate system is an instance of what the talk names. just lint as a lefthook block on staged markdown is a feed-forward-plus-feedback, computational control; Vale tiers are the same; the citation gate is computational feedback; an agent asked to “check the prose” would be inferential feedback, and the ADR 0004 tiering is a judgment about which findings deserve to block. Quenneville’s claim that the reaction to bad output should be harness change, not mistake-fixing, is the determinism argument this garden already runs: mechanical work into a script, not prose. See determinism-extraction, wet-not-dry.
The Rust video’s reading of Matsakis is the same shape at the scale of a language. A strongly typed compiler is a computational feedback control, and telling agents to use newtypes and type-state patterns is feed-forward guidance pointing at it. See 2026-10-23-youtube-lets-get-rusty-rust-perfect-language, rust-for-agents.
Sources
- Official session page and abstract: https://rubyonrails.org/world/2026/sessions/harness-engineering (read 2026-10-25)
- Speaker page: https://rubyonrails.org/world/2026/speakers/joel-quenneville (read 2026-10-25)
- Indexed talk summary with the loop, the quadrants, and the deterministic-tool list: https://www.rubyevents.org/talks/harness-engineering-on-rails (read 2026-10-25)
- Attendee recap with the README/harness distinction: https://teloslabs.co/post/rails-world-2026-harnesses-agents-judgment (read 2026-10-25)
- OpenAI, “Harness engineering: leveraging Codex in an agent-first world”: https://openai.com/index/harness-engineering
- Daniel Demmel, “Feedback loop engineering”, 2026-01-31, citing Böckeler’s harness definition: https://www.danieldemmel.me/blog/feedback-loop-engineering
- Video (uncaptioned, not read): https://www.youtube.com/watch?v=L6-3a_rwLIg