A working journal by Eric MacDougall
Notes from inside the work.
On agents, engineering judgment, infrastructure, and the gap between a convincing demo and a system you can trust.
better evidence.FIELD NOTE 01
01 / Watch
The films, in one playlist.
44 overview films. Each one has a full written essay behind it.












































02 / Latest essays
Long reads, newest first.
▶ FILMMake model failover preserve the agent contract
A fallback route changes more than a model name: tool representation, role separation, budgets, privacy and refusal behavior can all differ.
11 min read · Published Oct 20, 2026
▶ FILMDesign recovery semantics into the safety state machine
A safety gate needs to preserve evidence and conservative uncertainty while distinguishing historical observations from current authority to hold execution.
11 min read · Published Oct 20, 2026
▶ FILMDecompose work around contracts and integration costs
Use the whole-versus-pieces experiment to explain when decomposition creates useful independent boundaries and when repeated setup fragments an interdependent implementation.
12 min read · Published Oct 20, 2026
▶ FILMPersonal agents need private authority, recoverable work and measured operating budgets
Long-running personal agents need user-specific compute, storage, credentials and network authority. Multiplexed conversations alone do not create isolation.
11 min read · Published Oct 20, 2026
▶ FILMTrace agent decisions without turning telemetry into a private-content store
Keep the links needed to reconstruct decisions and reconcile effects while minimizing stored prompts, credentials and sensitive low-entropy data.
11 min read · Published Oct 20, 2026
▶ FILMPort agent controls across runtimes without assuming hook parity
Different CLIs, IDEs and operating systems expose different observation and denial points. Port the contract, then prove each runtime route.
11 min read · Published Oct 20, 2026
▶ FILMBuild the test harness around cross-system invariants
A test should encode the business or security promise across components, with an oracle independent of the actor and an outer containment boundary.
12 min read · Published Oct 20, 2026
▶ FILMSeparate probabilistic development from deterministic shipping
Models can propose changes and repairs. A narrow release controller can decide whether exact reviewed and tested artifacts meet a fixed contract, without reasoning its way around it.
11 min read · Published Oct 20, 2026
▶ FILMRegional cells need one home for mutable authority
Portable containers do not make state ownership, residency and failover portable. Define one authoritative home for mutable state before adding regions.
12 min read · Published Oct 20, 2026
▶ FILMAgent fleets need explicit ownership transfers before more workers
More workers help only when task ownership, resource admission and shared-state authority remain coherent.
12 min read · Published Oct 20, 2026
▶ FILMParallel AI checks need a release contract before they need more workers
Parallel checks help only when the release condition, ownership of output fields and behavior of late branches are defined in advance.
12 min read · Published Oct 20, 2026
▶ FILMMemory success has to confirm the requester, address and receipt
Memory changes future behavior across turns. Tenant scope, namespace, origin, current permissions and deletion semantics matter as much as retrieval relevance.
12 min read · Published Oct 20, 2026
▶ FILMA retrieval system needs to know who will read the answer
Requester authorization and answer-audience authorization are separate questions. A user may be allowed to read something that cannot be disclosed into the destination conversation.
11 min read · Published Oct 20, 2026
▶ FILMDesign agent supervision around delivery, intervention and bounded learning
Use deterministic event observation, bounded independent model judgment and a constrained intervention controller; spend review effort where it changes accepted outcomes.
13 min read · Published Oct 19, 2026
▶ FILMBudget agent work before dispatch, then reconcile what actually happened
A token counter after completion cannot enforce a hard pre-dispatch exposure bound across parallel work and ambiguous provider outcomes.
11 min read · Published Oct 19, 2026
▶ FILMRoute AI work by the cost of accepted outcomes
Choose among routes that preserve privacy, authorization, tool semantics and required quality, then optimize expected accepted-work cost under quota and latency constraints.
11 min read · Published Oct 19, 2026
▶ FILMTurn engineering standards into agent execution contracts
Agents need explicit constraints at admission, implementation, review and release, connected to the product decision that justified them.
11 min read · Published Oct 19, 2026
▶ FILMRecheck current policy authority before protected bytes leave
An immutable signed policy revision is an evidence artifact. Current authorization can change while model inference or transformations are running.
11 min read · Published Oct 19, 2026
▶ FILMUnknown is an outcome: designing agent systems around lost replies
A timeout does not determine whether an external action happened. Retrying safely requires a durable operation identity and a reconciliation path.
11 min read · Published Oct 19, 2026
▶ FILMDurable agents need agreement between delivery, ownership and effects
A workflow is more than a queue. State changes, durable delivery, worker ownership and publication authority must agree across retries and crashes.
11 min read · Published Oct 19, 2026
▶ FILMWhere JEV earned a decision—and where we replaced it
Evaluate decision systems per class and effect: dynamically constrain candidates, use JEV where measured, and replace or escalate it when deterministic scenarios or stronger models own the uncertainty better.
11 min read · Published Oct 19, 2026
▶ FILMAuthorized recall: the retrieval budget has to belong to the caller
A retrieval system must preserve authorized recall, freshness and evidence coverage while keeping token and latency costs bounded.
12 min read · Published Oct 19, 2026
▶ FILMA browser is an outbound capability: how I separate destination, data and authority
Read-looking operations can send information outward through URLs, redirects, images, unfurls and fetched resources.
12 min read · Published Oct 19, 2026
▶ FILMFourteen cuts through a streaming security boundary
A whole-response security decision cannot protect bytes already delivered. Define the protected unit and release boundary before choosing streaming UX.
11 min read · Published Oct 19, 2026
▶ FILMWe measured local safety models. The hard part was deciding what “works” means.
Secret detection, exact redaction and content classification are different jobs. A cheap classifier that finds everything can still be unsuitable because it blocks ordinary traffic or cannot identify spans.
11 min read · Published Oct 19, 2026
▶ FILMA semantic firewall needs an enforcement architecture
Semantic detection supplies a risk signal. The durable protection comes from the places that control reads, actions, disclosure and rendering even when the detector misses an attack.
11 min read · Published Oct 19, 2026
▶ FILMBuild the tool broker around the authority that survives alternate paths
A model proposes a typed action; an independently authorized executor controls credentials, object access and effectful routes.
11 min read · Published Oct 19, 2026
▶ FILMMake human approval survive changes in payload and context
A human approval becomes useful execution authority only when it commits to the action’s identity, payload and current effect context.
11 min read · Published Oct 19, 2026
▶ FILMGive each agent turn its own authority
Keep the stable bot/service identity separate from the human authority delegated for one turn. Recompute authorization as the conversation and its audience change.
11 min read · Published Oct 19, 2026
▶ FILMDesign the authority boundary between a chatbot, an assistant and an agent
Capability growth changes the system’s trust model. Public explanation, authenticated account help and autonomous action deserve distinct data paths, identities and acceptance criteria.
12 min read · Published Oct 19, 2026Name the layer before you merge the stack
MCP is tools and data. UHP draft is the product-to-harness job contract. Execution substrate is where the agent runs. Name the layer before you merge the stack.
14 min read · Published Sep 28, 2026Your hook ran. Did the forbidden action stay blocked?
How to prove an agent control protected the consequential target across tools, shells, delegation and service credentials.
15 min read · Published Sep 28, 2026
▶ FILMThe demo worked. The engineering problem began afterward.
Why a convincing agent-built demo is the beginning of product ownership and engineering evidence.
14 min read · Published Sep 25, 2026
▶ FILMThe agent timed out after the change went through
How to recover an agentic operation when the reply is lost after the effect begins.
15 min read · Published Sep 25, 2026
▶ FILMThe agent missed the one fact that mattered
A field guide to specialist memory, source-linked context packets and intervention timing when retrieval misses a consequential condition.
12 min read · Published Sep 25, 2026
▶ FILMThe schema is green. The action is wrong.
What token masks can guarantee, what typed confidence cannot prove, and where evidence, service authority and readback finish the job.
10 min read · Published Sep 25, 2026
▶ FILMThe attention drift bubble
AI can generate every plan, summary and task while a decisive condition quietly disappears. Measure attention debt and preserve source-linked decisions across every handoff.
13 min read · Published Sep 25, 2026
▶ FILMWhat computer-use agents can prove
A field guide to browser, desktop, and app agents: speed, blind spots, and outcome-level testing.
13 min read · Published Sep 25, 2026
▶ FILMThe release gate is the product
Agent-written code can pass every test for a shortened requirement. A release needs the source product decision, exact artifact, independent evidence and a bounded customer readback.
12 min read · Published Sep 25, 2026
▶ FILMHire engineers for the decisions
Architecture, attention, communication, focus, and fundamentals when agents write more of the code.
13 min read · Published Sep 25, 2026
▶ FILMYour agentic workflow depends on other people’s rules
A provider refusal or changed policy can become a silent business decision unless the workflow preserves unfinished work, evidence and an authorized fallback.
12 min read · Published Sep 25, 2026
▶ FILMAI in industrial control needs physical evidence
Where AI helps PLC engineering, and where simulation, safety review, and plant reality retain authority.
12 min read · Published Sep 25, 2026
▶ FILMThe GPU number is not the compute product
Neocloud placement, fabric topology, sharing, queue policy, utilization, and the real cost of a completed run.
10 min read · Published Sep 25, 2026
▶ FILMWhere model control actually lives
What a typed decision can actually control: full-path Jev versus small-model economics, provider-owned loops, scoped tools, context and engineering ownership.
13 min read · Published Sep 25, 2026
▶ FILMModel consensus is not engineering evidence
What model debate can reveal, what polished probing cannot supply, and how real experiments turn a design into an engineering decision.
14 min read · Published Sep 25, 2026
▶ FILMAgents need an independent exam
The practical controls that let a fast coding agent produce work you can actually sign off.
11 min read · Published Sep 25, 202602 / What I keep returning to
Questions worth
staying with.
Agents & control
Hooks, worktrees, role memory, and where instructions need to become enforceable systems.
Testing what happened
Browser and desktop agents, independent oracles, fault injection, and evidence you can sign off.
Compute in reality
Open-weight deployment, neocloud fabrics, queue policy, topology, and completed-run economics.
People & decisions
Engineering hiring, SDLC design, industrial AI, and what stays with humans as execution accelerates.
03 / Short explainers
Sixty seconds, one idea.
04 / Latest posts
What I posted this week.
▶ VIDEOOne admitted turn should not mint two live grants. One assistant can serve many people without borrowing all their permissions. Trace requester, audience, lease, approval and effect. Full architecture article on ericmacdougall.com.
Open on TikTok ↗
The shift from engineers writing every line to agents writing much of the code does not eliminate engineering decisions. It makes unclear decisions spread faster. For a new entitlement path, someone must decide the product promise, the sou…
Open on LinkedIn ↗
Agents can write the bulk of a feature. Engineers still have to decide what outcome matters, which architecture owns it, who may act, what evidence counts as acceptance and how to recover after failure. Write those five into the task contra…
Open on X ↗
▶ VIDEOA neocloud can sell one accelerator name into three incompatible expectations: a connected training group, a low-latency shared inference slice and an interruptible batch allocation. The hardware may match; the promises do not. If batch bo…
Open on LinkedIn ↗
▶ VIDEOOne assistant can serve many people without borrowing all their permissions. Trace requester, audience, lease, approval and effect. Full article on ericmacdougall.com.
Open on X ↗
▶ VIDEOGPU utilization is easy to flatter. Memory and communication wait consume the interval. Optimize accepted work per complete cost. #EricFieldNotes
Open on X ↗Replay should not mint a second live grant. I built each admitted assistant turn around the requesting person, the work lease and the answer's audience. Replaying the same claimed message returns a 409 without another live token. The assi…
Open on LinkedIn ↗
An agent handoff that says 'migration validated' is not enough. Include the invariant, source record, exact revision, injected fault, external readback and open caveat. The next agent should be able to reject the claim without replaying the…
Open on X ↗
Multi-agent systems often pass tidy summaries between roles. A tidy summary can move the work forward while dropping the one condition that made the result conditional. Take an event migration: the builder says 'replay tested.' What did it…
Open on LinkedIn ↗
Owners plan to spend $0.92 billion on pet costumes this Halloween (NRF). Every costume photo is a chance to recommend, so use a tracked link. Petfiliate is free to join for U.S. pet creators: https://t.co/EH5zg1kWjb #ad Affiliate network;…
Open on X ↗
▶ VIDEONeocloud procurement often collapses to GPU count and hourly price. For a distributed job, I would buy a placement class, start-time envelope, communication path, recovery behavior and cost per completed result. Those determine whether capa…
Open on LinkedIn ↗
A long-running agent can look reliable until the session disappears halfway between an external action and its acknowledgment. The hardest question is what the fresh session should believe happened. Use a disposable payment or provisioning…
Open on LinkedIn ↗
Stop an agent after it sends an action but before acknowledgment. Restart with fresh context. Can it recover request ID, decision version, target state and next step without repeating the effect? If not, chat persistence is not durable work…
Open on X ↗A prompt can ask for a valid answer. A grammar, mask, tool boundary, or service permission can actually constrain one. This film maps those control points. Film: https://ericmacdougall.com/journal/where-model-control-actually-lives/ #Eric…
Open on X ↗
Fastest way I know to find an engineering bottleneck: ask the team what decision they're waiting on, then follow it up the chain. The answers are rarely technical. Very often it is a reversible delivery call that needs three teams, two dir…
Open on LinkedIn ↗
Stuffing the entire organizational memory into every agent feels safe. In practice, the one condition that matters can become harder to find in a long transcript, and each new role inherits irrelevant work. Imagine a QA reviewer receiving …
Open on LinkedIn ↗
A reviewer agent needs the contract, source, unresolved condition, artifact and falsifying test—not 90 pages of build chat. Give specialists role-specific memory. Hand off a linked evidence packet the next agent can challenge. #EricFieldNot…
Open on X ↗
Your AI agent's guard hook ends in exit 1? It may not block anything. Claude Code and Grok Build docs: only exit 2 or an explicit deny blocks. Timeouts and crashes let the call run. Codex's page doesn't say for exit 1 or timeouts. Prove i…
Open on X ↗05 / Follow the work
Every channel, one place.
04 / A little context
I’m interested in what
survives contact with reality.
I have spent more than two decades in technology, from founding and exiting a software development and marketing agency to engineering leadership roles and co-founding FrameBright. This journal is where I work through what that experience is teaching me now.
More about the road here