A system has: a system prompt, an LLM call, and free-text output. No loop, no tools, no safety layer. Is this a harness? "No. It is a prompt. A harness requires all three of loop + tools + safety; missing any one means it is not a harness." harness-engineering::m0.1::recall What are the THREE mandatory jobs of any production harness? 1) Run the model in a loop. 2) Provide the model with tools. 3) Enforce safety/permission boundaries. harness-engineering::m0.1::recall "The model is approximately what percentage of a production agent system's code/decision logic?" ~1.6% (MBZUAI, May 2026). The harness is the other ~98.4%. harness-engineering::m0.1::recall "In a typical production session, tool outputs make up approximately what share of what the model sees in context?" ~67.6%. (Tool definitions ~10.7%, system prompt ~3.4%, history+rest ~18%.) harness-engineering::m0.1::recall "A team spends its time polishing the system prompt but ignores how tool outputs are formatted. What fraction of context are they optimizing, and what fraction are they neglecting?" "Optimizing ~3.4% (system prompt); neglecting ~67.6% (tool outputs). The classic senior-engineer trap." harness-engineering::m0.1::application "Does the model execute tools directly?" "No. The model emits a structured tool-call REQUEST. The harness intercepts it, executes the tool, and returns the result. This indirection is a security boundary." harness-engineering::m0.1::recall "Why is the model→tool indirection a security boundary rather than an implementation detail?" "Because the model never touches the filesystem, network, or external systems directly. The harness controls all execution, so it can enforce permission, sandboxing, and trust boundaries at the interception point." harness-engineering::m0.1::analysis "Pi has ~4 tools and <1,000-token system prompt. Claude Code has 40+ tools and ~40,000-token prompt. Which is the better design?" "Neither — they are differently optimized. Pi optimizes for model-co-evolution (personal assistant); Claude Code for enterprise control, multi-tenancy, auditability. Thickness is a design decision, not a quality score." harness-engineering::m0.1::analysis "What is the single most useful mental model for comparing harnesses?" "The thickness spectrum — a continuum from thin (Pi: 4 tools, <1k-token prompt) to thick (Claude Code: 40+ tools, ~40k-token prompt, 40 permission flags)." harness-engineering::m0.1::recall "What design question does the thickness spectrum force you to answer?" "How thick does THIS harness need to be for ITS use case? (An engineering question — every layer adds capability/safety/observability AND code/failure-modes/attack-surface.)" harness-engineering::m0.1::application "Name the four independent teams that converged on the same harness architecture in 2025-2026." "Anthropic (Claude Code / Pi), OpenAI (Codex CLI / Agents SDK), Google DeepMind (Gemini CLI), and the open-source community (Aider, oh-my-opencode)." harness-engineering::m0.1::recall "Four teams independently built structurally identical harness architectures. What is the invariant, and what is the variable?" "Invariant: the three-layer structure (loop + tool registry + safety layer + context mgmt + sandbox). Variable: thickness — how much complexity each layer has." harness-engineering::m0.1::analysis "Is a harness the same thing as a framework (LangChain, Agents SDK, etc.)?" "No. Frameworks HELP YOU BUILD harnesses. The harness is what you build — with or without a framework. Treating the framework as a black box = the anti-pattern of not being able to debug/audit/secure it." harness-engineering::m0.1::recall "Is a harness the same thing as an agent?" "No. 'Agent' = the goal-directed BEHAVIOR of the combined system. The harness is the MACHINERY that produces that behavior." harness-engineering::m0.1::recall "In the 6-step outside-in harness reading method, what do you look for first?" "The entry point — package.json's main field (or pyproject.toml scripts.start). Everything begins there." harness-engineering::m0.1::recall "In the 6-step method, step 2 is 'find the loop'. What specifically do you search for?" "The while loop or recursive function around model.complete() / anthropic.messages.create(). The surrounding code is the loop controller." harness-engineering::m0.1::recall "In the 6-step method, step 3 is 'find the tool registry'. What do you search for?" "JSON schema objects with name, description, and input_schema fields. The list of registered tools defines the capability surface." harness-engineering::m0.1::recall "Step 4 of the 6-step method is 'find the safety layer'. Why is it often the hardest step?" "Because safety logic is the least centralized part of a harness — it tends to be scattered across the loop, the tool executor, and the entry point, rather than in one place." harness-engineering::m0.1::analysis "What does step 6 (the verdict) of the 6-step method require you to state?" "Loop architecture, tool count, permission model, position on the thickness spectrum — and most importantly, WHY the designers put it there." harness-engineering::m0.1::application "Anti-pattern: a very long, highly engineered system prompt with instructions for every scenario. Why does this fail as tasks grow complex?" "Because a prompt has no loop (each call independent), no tools (only text output), no safety enforcement (model refusal is the only guardrail). It cannot retry, recover, or call external systems. It is a prompt, not a harness." harness-engineering::m0.1::analysis "Anti-pattern: using LangChain/Assistants API as a black box with a thin interface on top. Why is this dangerous?" "Because the engineer doesn't understand what the framework is doing, so cannot debug, audit, or secure it. Using frameworks is fine; treating them as black boxes is not." harness-engineering::m0.1::analysis "Stop conditions are owned by the harness, not the model. Name at least 3 categories of stop condition covered in Module 0.1's loop discussion." "(Any 3 of) max-iterations cap; model emits end_turn (no tool call); error threshold; human interrupt; budget exhaustion; fatal error." harness-engineering::m0.1::application "In the n8n loop workflow from Module 0.1, what is 'the turn boundary' and why does it matter?" "It is the back-edge from 'Append Tool Result to History' back into the 'Loop' node — the place where one turn ends and the next begins. Seeing it travel once = watching one turn of the loop execute." harness-engineering::m0.1::analysis "You are auditing a 'harness' that has a loop and tools but no permission, sandbox, or approval layer. What is it, strictly by the Module 0.1 definition?" "A loop with tools and no safety. Per the definition, that is 'a loaded weapon pointed at your filesystem' — not a production harness. The three jobs are loop + tools + safety; missing safety disqualifies it." harness-engineering::m0.1::analysis