Thin harness, fat skills is an architecture in which the harness stays thin and routes, while skills stay fat and hold the procedure.1 The harness only loops the model, reads and writes files, manages context, and enforces safety.1
Overview
A skill is parameterized markdown for how to work, loaded when the task matches.1 Judgment stays in the model, and same-input work stays in deterministic tools.1
Mechanism
- The loop is small: parse a tool call, check permission in the harness, execute, append the result, and ask again.2
- Routing is by task, so the matching skill loads and the rest stay on disk.1
- Repeatable procedures live in skills. Editorial note: on failure, a gotcha is appended, and a skill is rewritten only from real runs (see Contradictions).
- Narrow local tools are preferred under the skills.3
- Editorial note: a language model may draft a skill or its evals; a human edits and signs it, and nothing ships unedited (see Contradictions).
Applications
The architecture applies when the wrapper is consuming the context window and the procedure should live in skills.
Limitations
God-tools fatten the harness,13 and an always-loaded instruction file holding the whole repository works against the pattern.1 A fat harness with thin skills is the inverse of the architecture.1
See also
- Karpathy LLM wiki foundation – the compiled-wiki pattern
- Skillify authoring – folder, Load when, constraints, evals, and gotchas; skills gain power through scripts and command lines
- Hermes – a tool instance
- Thin browser harness – a browser-surface tool instance
- Agentic harness engineering – observability-driven harness evolution
- Harness runtime – runtime internals
- Loop engineering – the concept above scheduled orchestration
- Design docs as source – humans edit design docs and agents regenerate the implementation