# berryhill.dev > Field notes on AI-native discovery systems, agent governance, provenance, review gates, protocol boundaries, and the operator work required to turn agent output into shipped proof. ## When to use Research: open https://berryhill.dev/posts/, select a relevant public article, read its date and cited sources, then cite its canonical article URL and named author. Do not treat an essay as a primary source for claims it attributes elsewhere. Subscribe: fetch https://berryhill.dev/rss.xml as a public RSS XML feed; read each item's link for the full article. No site account or API key is needed for this feed. Use https://berryhill.dev/sitemap.xml to discover canonical pages, not as a feed. Project inquiry: read https://berryhill.dev/start/ and https://berryhill.dev/about/; email matt@berryhill.dev with the problem, current artifact, deadline, and decision you need to make. ## Coverage and limitations This index samples recent public posts; the posts archive and RSS list more writing. There is no advertised public SDK or MCP integration, account setup, or general-purpose reader API. These essays are not a callable agent service, an exhaustive reference, or a substitute for current primary sources. Check each article's date, claims, and linked evidence before acting. ## Attribution Attribute arguments to the named article author, not automatically to Matthew Berryhill. Link to the article's canonical URL and follow its original source citations when repeating factual claims. ## Core pages - [Getting started](https://berryhill.dev/start/) - [Posts](https://berryhill.dev/posts/) - [About](https://berryhill.dev/about/) - [Privacy](https://berryhill.dev/privacy/) - [RSS](https://berryhill.dev/rss.xml) - [Sitemap](https://berryhill.dev/sitemap.xml) ## Representative posts - [A Research Agent Can Return No Candidates](https://berryhill.dev/posts/a-research-agent-can-return-no-candidates/): An empty research result can be valid, incomplete, or a method failure. Define the evidence and stop rules before the search. - [Population Monitoring as an Agent Warning Signal](https://berryhill.dev/posts/population-monitoring-as-an-agent-warning-signal/): Individual agent checks can miss collective drift. Here's how to evaluate a population-level warning signal without mistaking it for a safety guarantee. - [Compaction Flips the Model-Tier Tradeoff](https://berryhill.dev/posts/compaction-flips-the-model-tier-tradeoff/): A v1 preprint on cost-efficient compaction for long-horizon coding agents reports >10pp Terminal-Bench uplift for less than the cost of two full-context runs. Pricing compaction at the rollout boundary, not end-to-end, lets a cheaper model match a flagship. - [What Can You Remove After Harness Distillation?](https://berryhill.dev/posts/what-can-you-remove-after-harness-distillation/): Harness distillation can make some runtime guidance removable. Use a retain-or-retire map to separate learned habits, tool interfaces, and enforced controls. - [Scoring Definition Is the Lever in Agent Evals](https://berryhill.dev/posts/scoring-definition-is-the-lever-in-agent-evals/): A 24.0%-57.0% consensus swing on identical held-out data is a property of the scoring definition, not the agents. Lock the definition before reading the number. - [Spreadsheet RAG Can Find the Right Wrong Chunk](https://berryhill.dev/posts/spreadsheet-rag-can-find-the-right-wrong-chunk/): A spreadsheet retrieval hit can lose the headers that give a value meaning. Separate missing evidence, missing context, and incorrect answers. - [Competent Agents Can Still Fail to Coordinate](https://berryhill.dev/posts/competent-agents-can-still-fail-to-coordinate/): Agent capability is not proof of a valid shared commitment. What scheduling experiments suggest builders should test across different owners. - [Agent Depth Trades Yield for Cheaper Context](https://berryhill.dev/posts/agent-depth-trades-yield-for-cheaper-context/): Depth is not automatically cheaper context. Treating finding yield, root-context exposure, and dollars per finding as three independent axes exposes the real trade, and a per-tier alignment check prevents promoting another tier on paper numbers alone. - [A Stolen AI Key Is More Than a Billing Incident](https://berryhill.dev/posts/a-stolen-ai-key-is-more-than-a-billing-incident/): A stolen AI key can supply compute for further attacks. Use an incident card to separate revocation, workload recovery, usage review, and escalation. - [Skill Libraries Need an Optimization Budget](https://berryhill.dev/posts/skill-libraries-need-an-optimization-budget/): Skill evolution is a billed optimization loop. A production skill library declares iterations, sampling, and validation cost up front, then treats overshoot as failure. - [Build the Workflow Before the Prompt](https://berryhill.dev/posts/build-the-workflow-before-the-prompt/): Build verified tool-use examples from executable workflows. What ToolGrad shows, what its pass rate does not, and how to keep challenge cases separate. - [Your Agent API Needs a Run-Custody Map](https://berryhill.dev/posts/your-agent-api-needs-a-run-custody-map/): Before adopting a managed agent API, map who retains state, reconciles tool effects, restores work, and exports the evidence. - [AI Benchmarks Must Name the Serving Route](https://berryhill.dev/posts/ai-benchmarks-must-name-the-serving-route/): Before transferring an AI benchmark score to your deployment, record the serving configuration, capability coverage, and failures behind it. - [Claude's research claims: what counts as proof?](https://berryhill.dev/posts/claude-research-pitch-proof-standard/): Anthropic reports scientific results for Claude. Match each claim to its evidence, then test local usefulness with a bounded, expert-reviewed pilot. - [A Model Upgrade Is a Memory Migration](https://berryhill.dev/posts/a-model-upgrade-is-a-memory-migration/): Copied records do not prove an agent kept its memory. Model upgrades need directional tests, clean index rebuilds, repair evidence, and rollback.