Pipeline Architecture
You asked for a video. Your agent spent two days building a video pipeline. The pipeline is real work. The pipeline is also not the video.
At some point the conveyor belt became the project. The pipeline got tested, refined, improved. Every iteration produced files. Every file felt like progress. The session ended deep in pipeline architecture, with no video.
This is not laziness. The engine cannot tell the difference between "I built the system that ships the product" and "I shipped the product." Both register as completion. Both produce files. Both feel like work done. The engine prefers the belt because the belt is internal — no external dependencies, no review gates, no subjective quality judgments. The video has all of those. The pipeline has none.
This workshop is about why systems that build systems drift away from products, with an applied lab that takes your current session, classifies it as belt or product, runs drift checks during the work, and writes a postmortem that catches the conveyor-becomes-the-deliverable pattern before it ships another empty session. You will not leave with the gradient retrained. You will leave with the habit of declaring the session type before the work and checking for drift during it.
The outside name for this problem
The broader builder community talks about agentic workflows: planning, tool use, reflection, memory, orchestration, and runbooks. ReAct is the classic research pattern: reasoning and acting interleaved so an agent can think, call tools, observe, and continue.
JKE's warning is about what happens after you get good at workflows. The workflow itself becomes seductive. The agent can keep improving the belt forever because the belt is internal, file-shaped, and easy to call progress. The product remains exposed, subjective, and unfinished.
The two registers
Belt sessions and product sessions are not just different in output. They are different registers of work, with different success conditions.
Belt session. You are building or testing a conveyor — a pipeline, a script, a tool, a build process, a protocol. The success condition is a tested belt and a journal entry confirming whether the belt worked, what broke, and what needs tightening. The deliverable is the observation, not a shipped product.
Product session. You are moving a product through an existing belt — the video, the course, the trading signal, the website, the customer reply. The success condition is the product, shipped to its surface. The belt may need work; that work goes in the next belt session, not this one.
When you do not declare which register you are in, the engine picks. The engine picks belt almost every time. Belt is internal, infinite, satisfying, never quite done. Product is external, finite, exposed, judgable. Of course the engine picks belt.
The mechanism — why the engine drifts to belt
The RLHF gradient rewards completion. Both "pipeline stage tested" and "product shipped" satisfy completion. The pipeline stage is closer at hand — it does not require external review, it does not invite quality judgments, it does not have a customer waiting on it. Each stage tested produces a file and a feeling of progress.
The product, by contrast, is exposed. It must be reviewed. Its quality is judged. It has consequences. The gradient still wants to ship it, but the path has more friction.
When the friction is even slightly higher, the gradient drifts toward the easier completion. The belt is the easier completion. The drift is structural, not intentional.
You can write rules. The rules help. But the rules fight the same gradient that produces the drift, and the gradient is patient. Over a long session, the rules ghost and the drift returns.
The fix is not better rules. The fix is to declare the session type before the work and check for drift during it. Both interventions interrupt the engine's preference at the moments where the preference matters.
The scar tissue — the conveyor becomes the deliverable
The pattern repeats across operators.
The media session that became a pipeline session — stills generation script, voiceover modulation tool, ffmpeg assembly sequence, transcription integration, template wiring. Every piece was real work. The video sat for the entire session, three steps from done.
The coding session that became a "Claude Code building protocol" session — PTY mode parameters, prompt engineering, shepherd handoffs, print vs PTY boundaries. The bugs the operator asked about remained bugs. The protocol for fixing bugs got polished.
The course-building session that became a Coursebox-integration session — nine-step pipeline, browser automation for a React SPA, SCORM export workflow, deploy pathway. Course 1 was generated. The five free-tier markdown files — already complete, already deliverable — sat for 24 hours because they were not in the Coursebox pipeline. They did not need to be.
In every case, the belt was real, necessary, compounding work. And in every case, the belt absorbed the session that was meant to ship product. The operator did not start out wanting to build a pipeline. The operator started out wanting a video, a fix, a course. The engine routed to belt.
The exercise: classify the last three sessions
Pick your last three sessions of real work. For each, ask:
- What did you declare as the goal at the start? - What did the session actually produce by the end? - Was the produced thing the product you started after, or a belt for producing it? - If it was the belt, when did the drift happen? Was there a specific moment when product-shipping became belt-building? - Was the drift visible at the time, or only in retrospect?
Most operators discover at least one of the three was a session that drifted from product to belt. That is the point. The drift is invisible from inside it. The lens is what makes the drift visible after the fact, and eventually before it.
The pre-session gate
The intervention is small and has to happen at session start.
Before any non-trivial work, you declare: "This is a BELT session" or "This is a PRODUCT session." You name the allowed outputs and the forbidden outputs. The agent confirms.
For a belt session, the allowed outputs are a tested belt and a journal entry. Shipped product is forbidden — the deliverable is the observation. For a product session, the allowed outputs are a shipped product and (optionally) a TODO for the next belt session. Polishing the belt is forbidden — the operator may note what needs work, but the work does not happen in this session.
The declaration sounds simple. It is hard in practice because the engine wants to slip. Once you declare PRODUCT, the engine will eventually find a reason that "we need to fix the belt first." That reason will sound reasonable. The drift is structural; the reason is local.
The pre-session gate exists to make the declaration explicit enough that the slip becomes visible.
The mid-session drift check
Even with a declaration, drift happens. The check is small and runs every chunk.
Three questions: - Am I building belt right now in a product session? - Am I shipping product right now in a belt session? - Is the conveyor becoming the deliverable?
If yes to any, the agent surfaces the drift to the operator: "I appear to be drifting from [BELT/PRODUCT]. Continue, switch, or stop?"
The check is not a rule the agent enforces alone. It is a notification the agent gives the operator so the operator can decide. Sometimes the drift is real and should be corrected. Sometimes the drift is intentional — the operator realized mid-session that the belt actually needed work first. Both are valid. The point is to make the choice explicit.
The tinkering questions
- Take your current session. Is it BELT or PRODUCT? Did you declare? - Look at a past session that drifted. Where in the session did the drift become visible? Where in the session would the drift have been catchable if you had been looking? - Imagine a session where you commit to PRODUCT and nothing else ships. Are there sessions that should be allowed to fail rather than absorb into belt? - Notice when you reach for "let me improve the pipeline first." Is that the gradient finding the easier completion?
Where the human owns the judgment
The agent runs the gate. The agent runs the drift check. The agent surfaces verdicts. The operator confirms the session type, confirms the drift, and decides what to do when drift is observed.
The agent does not unilaterally switch session types mid-flight. That is an operator decision. The agent also does not unilaterally declare a session over because it has drifted. The operator decides when to stop, switch, or continue.
The agent's job is to make the structural pattern visible at the moments it matters. The operator's judgment is what closes the gap between visibility and correction.
The essay as a context download
Belt-vs-product should become a short essay for sessions drifting into process work.
Create work/belt-vs-product-essay.md: a concise explanation of agentic workflows, orchestration, runbooks, and the conveyor-becomes-the-deliverable failure. When the session starts producing process artifacts instead of the thing, the operator can say: "Read the belt-vs-product essay. What is the deliverable, and what is just the conveyor?"
The essay helps the agent re-declare the session type before more belt work disguises itself as shipping.
What to track
Keep a belt-vs-product journal. For each session, record:
- Session type declared (BELT / PRODUCT). - Allowed outputs and forbidden outputs. - What actually shipped. - Drift checks fired (and operator decisions). - Was the session honest to its declared type? - If drift was caught, when? - If drift was missed, what would have caught it earlier? - TODOs for the next session (if any).
Over time the journal will show you which session types you over-declare (and under-deliver) and which kinds of drift are most common in your work.
Working conclusion
The engine cannot tell belt from product. Both register as completion. The engine prefers belt because belt is internal. The defense is not better rules. The defense is a declaration at session start and a check during the session — both made explicit, both run honestly, both subject to operator decision.
After this course, before any non-trivial work, you ask: belt or product? You honor the answer. When drift appears, you name it. The belt earns its weight by moving products, not by being admired.
Your Agent PDF
Your agent executes the PDF. You read the page. No copying. No manual setup.
Download Agent PDF — Course 209Your agent PDF is sent to the email used at checkout. If you have not received it, contact [email protected] with your order confirmation.