Recommendations
What to do, what to watch for in your team, and the evidence behind it.
Adopt
Proven. Use it by default.
adopt: Write context files by hand and keep them short
Specification
Write the repo's context file yourself and keep it short: build commands, conventions and the few rules the agent keeps breaking. A short file saves time and tokens; a long one mostly adds cost.
Watch for
- Context file length growing month over month
- Agent tokens per task before and after each edit to the file
- Rules in the file the agent still breaks in review
Evidence
adopt: Keep context lean
Specification
Give the agent only what the task needs: the relevant files, not the whole repo or every doc. Agents miss facts more often as context grows.
Watch for
- Tokens loaded per agent task, by repo
- Agent answers that miss a fact already in its context
- Sessions that hit the context limit or auto-compact
Evidence
- Shim et al., ICLR 2026 study
- Paulsen, arXiv 2025 study
adopt: Trim tools and what they return
SpecificationSecurity
Expose a few tools with short descriptions, cap how much each returns, and batch repeated calls into one script. Every tool description and long result costs context the agent needs for the task.
Watch for
- Context taken by tool and MCP descriptions at session start
- Tool results over a few hundred lines landing in context
- Same tool called many times in a row in session logs
adopt: Keep a human upstream of what tests assert
TestingSpecificationDelivery
Have a human write or approve what the tests assert, and give those tests to the agent before it writes code. Tests an agent writes for itself tend to share its misunderstanding, so they pass wrong code.
Watch for
- Spec tests whose assertions no human wrote or approved
- Agent-written tests later found to pass buggy code
- Bugs reaching review that the supplied spec tests should have caught
Evidence
- Mathews & Nagappan, ASE 2024 benchmark
- Ahmed et al. (IBM), arXiv 2024 benchmark
- Shinn et al., NeurIPS 2023 benchmark
- Ye et al., ICLR 2026 benchmark
- Rein (METR), Algorithmic vs. holistic evaluation, 2025 study
- Hamidi et al., arXiv 2026 study
- Haroon et al., arXiv 2026 study
adopt: Work in short, steady test-and-code cycles
TestingDelivery
Keep test-and-code cycles short and steady, and hand human-written spec tests to the agent before it writes code. A steady rhythm matters more than whether test or code comes first, as long as testing never stops.
Watch for
- Minutes between test runs in agent sessions, rising means trouble
- Agent sessions with long stretches of edits and no test run
- Tasks where spec tests arrived only after the agent wrote code
Evidence
adopt: Give the model few, distinct tests
TestingSpecification
Give the agent a few distinct example tests per task, about two to four, rather than a long list. Past a handful, extra tests stop helping and can make results worse.
Watch for
- Supplied tests per task in agent prompts
- Tasks whose supplied tests are near-duplicates of each other
- First-push CI failures, grouped by number of supplied tests
Evidence
- Mathews & Nagappan, ASE 2024 benchmark
adopt: Stop after about 3 failed fixes, then reset or escalate
LoopingTesting
After about three failed attempts to fix the same problem, stop the agent and either restart with a clearer task or hand it to a person. Later attempts rarely succeed and cost the most.
Watch for
- Agent sessions with more than 3 attempts at the same failing check
- Spend on sessions that end without an accepted change
- Tasks escalated to a person after the cap
Evidence
- Mathews & Nagappan, ASE 2024 benchmark
- Yang et al., NeurIPS 2024 benchmark
- Pancher et al., XP 2025 study
adopt: Loop only against a check the machine runs
LoopingTesting
Only let an agent retry when a test, build or linter decides whether the attempt worked. Retries judged by the model itself mostly repeat the same mistake.
Watch for
- Agent sessions that end with no test, build or lint run in the log
- Tasks the agent called done that fail CI on first push
- Retries per task rising while pass rate stays flat
Evidence
- Chen et al., ICLR 2024 benchmark
- Madaan et al., NeurIPS 2023 benchmark
- Shinn et al., NeurIPS 2023 benchmark
adopt: Keep each agent's context small
Looping
Keep each agent's working context short: clear or compact old steps, and split long tasks across fresh sessions. Agents work better when old observations stop crowding the context.
Watch for
- Context size per step in long sessions
- Sessions that hit the context limit
- Mistakes late in long sessions that early steps got right
Evidence
- Yang et al., NeurIPS 2024 benchmark
adopt: Work in small batches with strong version control
LoopingDeliveryTesting
Keep agent changes small and merge them often, with every step committed so it can be reverted. Small batches keep AI speed from turning into delivery instability.
Watch for
- Lines changed per merged PR, trending up
- Change failure rate as AI use grows
- Reverts that undo more than one logical change
adopt: Sandbox anything unattended
LoopingSecurity
Run any agent that works without a person watching inside a sandbox, with no access to secrets or production. Once permission prompts are off, the sandbox is the only boundary.
Watch for
- Unattended runs with permission prompts disabled outside a sandbox
- Agents that can read private data, take untrusted input and send data out
Evidence
adopt: Keep an accountable human review on AI changes
Reviewing
Have a named human review and own every AI change before it merges. Agents generate code faster than it can safely ship, and changes that pass every test often still need fixing.
Watch for
- AI changes merged without a human approver
- Fix-up minutes on agent PRs that were already green
- Incidents per merged PR, AI-authored vs human-authored
Evidence
adopt: Keep user focus
Delivery
Tie agent work to a specific user need and check usage after release. Without that focus, agents help a team ship more software but not more value.
Watch for
- Releases per month alongside active usage of what shipped
- Shipped features with no usage a month after release
- Tickets with no linked user problem or request
Evidence
adopt: Enforce standards with checks, not documents
DeliverySpecification
Turn team standards into linters, formatters and CI checks instead of writing them into agent context files. Context-file rules get followed but add cost to every run without making tasks succeed more often.
Watch for
- Tokens per agent session as context files grow
- Standard violations caught by checks vs flagged by reviewers
- Context-file rules with no matching automated check
Evidence
- Gloaguen et al., arXiv 2026 benchmark
adopt: Enforce access and approvals outside the model
Security
Keep credentials in code, validate output formats in code, and check every tool call against a policy instead of trusting prompt instructions. A prompt can be talked out of a rule; a policy check can't. (OWASP LLM01, LLM06)
Watch for
- Tool calls that run without a policy check
- Credentials reachable from the agent's context or environment
- Policy denials per week, and which tools trigger them
Evidence
- OWASP, LLM01 Prompt injection, 2025 practitioner
- Debenedetti et al., arXiv 2025 benchmark
- Ye, Cui & Hadfield-Menell, ICML 2026 study
- Zhu et al., EMNLP 2026 study
adopt: Remove one leg of the lethal trifecta
Security
Don't let one agent hold private data, untrusted content and a way to send data out at the same time, and require approval for anything that sends, spends or deletes. Approval limits the damage but doesn't remove the weakness. (OWASP LLM01, LLM02)
Watch for
- Agents with private data, untrusted input and an outbound channel at once
- Send, spend or delete actions run without human approval
adopt: Verify a package's publisher and registration date
Security
Treat agent installs as privileged: pin with hashes, scan the full dependency tree, and require human approval plus a publisher and registration-date check for any new package. Agents suggest packages that don't exist, and attackers register those names. (OWASP LLM09, LLM03)
Watch for
- New packages added without human approval
- Dependencies not pinned with hashes
- New packages registered recently or with unknown publishers
Evidence
- Spracklen et al., USENIX Security 2025 study
- Krishna et al., arXiv 2025 study
- Durnas (Aikido), What is slopsquatting?, 2026 vendor
- OWASP, LLM09 Misinformation, 2025 practitioner
- OWASP, LLM03 Supply chain, 2025 practitioner
adopt: Give security-sensitive changes a human review
SecurityReviewing
Don't let the writing agent approve its own PR, and give auth and payment changes a human security review. People trust assisted code more even when it is less secure; explicit instructions and function signatures in the prompt help. (OWASP LLM09)
Watch for
- Agent PRs on auth or payment paths merged without a security review
- Agent PRs approved by the agent that wrote them
- Security findings per agent PR vs human PR
Evidence
- Perry et al., CCS 2023 study
- Pearce et al., IEEE S&P 2022 study
- Osmani, Agentic code review, 2026 vendor
- OWASP, LLM09 Misinformation, 2025 practitioner
adopt: Keep people hands-on
SecurityUnderstanding
Protect time for people to write and debug code themselves, not only through an agent. Without it, people lose skill and understand less of the code they ship. (OWASP LLM09)
Watch for
- Hours people spend coding and debugging without the agent
- Reviewers who can't explain an agent's change when asked
Evidence
- OWASP, LLM09 Misinformation, 2025 practitioner
adopt: Grant agents the fewest tools and the minimum scopes
Security
Give agents only the tools they need, avoid open-ended shell and fetch where possible, run tools with the user's minimum scopes, and authorise in downstream systems. Let agents act up to the production gate, never through it. (OWASP LLM06)
Watch for
- Agent commits merged without review, as a share of agent commits
- Agents with open-ended shell or fetch tools
- Agent actions that passed the production gate
Evidence
adopt: Deny secrets to agents and force the sandbox
Security
Block agent access to .env* and secrets/**, force the sandbox with a domain allowlist, and use short-lived scoped CI credentials and secret scanning. Never put credentials or controls in CLAUDE.md, rules or skills, since agents can be made to reveal them. (OWASP LLM02, LLM07)
Watch for
- Agent reads of .env*, secrets/** or ~/.ssh in session logs
- Secret-scanning hits on agent changes
- Credentials or controls found in CLAUDE.md, rules or skills
Evidence
- Farr, The Ralph playbook, 2026 practitioner
- Anthropic, The AI-native SDLC playbook, 2026 vendor
- OWASP, LLM02 Sensitive information disclosure, 2025 practitioner
- OWASP, LLM07 System prompt leakage, 2025 practitioner
adopt: Allowlist MCP servers and enforce access at the tool layer
Security
Allow only approved MCP servers, keep privileged tools apart from external ones, require fixed-schema responses, and confirm sensitive actions outside the model. A poisoned tool description can steer an agent, and models rarely refuse it. (OWASP LLM01, LLM06)
Watch for
- Connections to MCP servers outside the allowlist
- Follow-on tool calls blocked by the tool layer, per week
- Sensitive actions run without confirmation outside the model
Evidence
- OWASP community, MCP tool poisoning practitioner
- Wang et al., arXiv 2025 benchmark
- Willison, The lethal trifecta for AI agents, 2025 essay
adopt: Inventory, sign and pin models and packages
Security
Keep a software and AI bill of materials, use signed sources and pinned registries, restrict network egress on fetches, and never load untrusted model files. (OWASP LLM03, LLM04)
Watch for
- Dependencies or models missing from the bill of materials
- Fetches outside the egress allowlist
- Model files loaded from unapproved sources
Evidence
- OWASP, Software supply chain security cheat sheet practitioner
- OWASP, A03 Software supply chain failures, 2025 practitioner
- OWASP, LLM03 Supply chain, 2025 practitioner
- OWASP, LLM04 Data and model poisoning, 2025 practitioner
adopt: Treat agent output as untrusted input
Security
Run agent commands in a sandbox, review agent diffs as you would an untrusted contributor's, run SAST on them, and block remote images in rendered output. An agent's shell tool runs model output directly, by design. (OWASP LLM05)
Watch for
- Agent commands run outside the sandbox
- SAST findings on agent diffs
- Remote images loaded in rendered agent output
Evidence
- OWASP, LLM05 Improper output handling, 2025 practitioner
- Chen et al. (SecureVibeBench), arXiv 2026 benchmark
adopt: Partition retrieval stores and make retrieval permission-aware
Security
Split retrieval stores by tenant or team, make retrieval check the user's permissions, and validate sources before indexing them. Shared stores leak across permission boundaries, and embeddings can be turned back into text. (OWASP LLM08)
Watch for
- Retrievals that cross a tenant or team boundary
- Indexed sources with no validation record
Evidence
- OWASP, LLM08 Vector and embedding weaknesses, 2025 practitioner
adopt: Set rate limits, quotas, timeouts and iteration caps
SecurityMeasuring
Set rate limits, quotas, timeouts and iteration caps on agent runs, and review spend against budget monthly. Agent use can burn a year's budget in months; use hard limits against abuse, and routing and spend nudges for staff. (OWASP LLM10)
Watch for
- Agent spend against budget, by month and team
- Agent runs that hit an iteration cap or timeout
- Sessions or users with spend far above the team median
adopt: Sign a data processing agreement before tools see company data
Security
Sign a data processing agreement before any AI tool sees company data, and review it again whenever the supplier changes its terms. Vendors can change terms to train on customer data. (OWASP LLM03)
Watch for
- AI tools seeing company data without a DPA
- Supplier term changes not yet re-reviewed
Evidence
adopt: Measure time to an accepted change, not lines or PRs
MeasuringDelivery
Measure each task by time to an accepted, merged change, and fix that outcome before you start measuring. Lines, PRs and tokens can rise while delivery stalls, and the same tool can look faster or slower depending on the measure.
Watch for
- Time from task start to accepted, merged change
- Lines or PR counts rising while time to merge stays flat
- Merged changes reworked within 30 days
adopt: Time real tasks instead of trusting forecasts or surveys
Measuring
Judge whether agents speed the team up by timing real tasks, not by forecasts or surveys. Predictions of speedup are often wrong even in direction, and self-reports shift with how you ask and who answers.
Watch for
- Gap between forecast and timed duration per task
- Speedup claimed in retros or surveys that timed tasks don't confirm
- Survey answers that change with question wording or respondent role
adopt: Grade agents on tests they never saw
MeasuringTesting
Judge agent patches by human merge review or by tests the agent never saw, not by the suite it worked against. Weak checks let suspicious patches through, and passing the repo's own tests doesn't make an agent PR mergeable.
Watch for
- Agent PRs green on CI that reviewers reject or send back
- Patches passing visible tests but failing held-back tests
- Passing agent patches reviewers flag as suspicious
Evidence
- Aleithan et al., arXiv 2024 benchmark
- Ahmed et al. (IBM), arXiv 2024 benchmark
- Stanford HAI, AI Index report, 2026 study
adopt: Ask the AI, don't delegate to it, while building a skill
Understanding
While someone is learning a skill, have them ask the AI conceptual questions instead of handing it the work. People who delegate, or ask for direct answers, do worse later when working without AI.
Watch for
- Unaided debugging exercise results for people learning with AI
- Agent sessions where the learner delegates the task versus asks a question
- Problems solved versus skipped when working without AI
Evidence
adopt: Give hints, not answers, in learning tools
Understanding
Set up learning and onboarding tools to give hints, not full answers. Unrestricted answers lower what people can do on their own; hint-only help doesn't.
Watch for
- Unaided exercise results, tool users versus non-users
- Share of tool responses that give the full answer
Evidence
adopt: Do unaided work first, then bring in AI
Understanding
Have people draft or solve a problem unaided first, then bring in AI. People who start with AI remember less of their own work and engage less once AI is added.
Watch for
- Authors who can't recall or explain their own work minutes later
- Recall of AI-first versus unaided-first work
Evidence
Avoid
Shown to fail or cost more for no gain.
avoid: Don't let an LLM generate your context files
Specification
Don't let the agent write its own context file. Generated files restate what the agent can already read, so they raise cost without making tasks succeed more often.
Watch for
- Context files committed by an agent without human edits
- Agent spend per task rising after a context file change
- Context file content that repeats the README or code
Evidence
- Gloaguen et al., arXiv 2026 benchmark
avoid: Don't give agents tools shaped for people
Specification
Don't hand the agent tools built for human navigation, like paged search or whole-file viewers. Agents do better with narrow tools that return a small, relevant slice.
Watch for
- Session steps spent paging through tool output
- Whole files read when only a function was needed
- Agent tasks stalling inside one tool loop
Evidence
- Yang et al., NeurIPS 2024 benchmark
avoid: Don't read coverage as quality for AI-written tests
TestingMeasuring
Don't treat coverage as proof that AI-written tests are good; judge them by whether they catch bugs, using mutation testing or tests the agent never saw. Tests can run every line and still assert the wrong thing.
Watch for
- Agent-written tests with full coverage that still assert wrong values
- Pass rate on agent-visible tests vs tests the agent never saw
- Coverage rising while escaped defects do not fall
Evidence
- Ahmed et al. (IBM), arXiv 2024 benchmark
- Mathews & Nagappan, ASE 2024 benchmark
- Hamidi et al., arXiv 2026 study
avoid: Don't treat a passing suite or a green loop as done
TestingReviewingLooping
Don't merge an agent PR just because every test passes; budget human review and fix-up time for green agent PRs too. Green agent PRs routinely still need fixes before they are fit to merge.
Watch for
- Green agent PRs that needed no changes after review
- Fix-up minutes on agent PRs that passed every test
- Post-merge defects on agent PRs merged on green alone
Evidence
- Rein (METR), Algorithmic vs. holistic evaluation, 2025 study
- Orlanski et al., arXiv 2026 benchmark
- Chen et al., arXiv 2026 benchmark
avoid: Don't loop on self-critique alone
Looping
Don't let an agent improve its work by reviewing itself with no outside check. It tends to approve its own wrong answers; give it a test or a linter to loop against instead.
Watch for
- Agent sessions that loop with no test, build or lint step
- Changes the agent marked correct that fail CI or review
Evidence
- Shinn et al., NeurIPS 2023 benchmark
- Madaan et al., NeurIPS 2023 benchmark
avoid: Don't route retry loops to cheap models unchecked
Looping
Don't move a retry loop to a cheaper model just to save money without checking the results. Small models often gain nothing from retrying, so the loop's benefit quietly disappears.
Watch for
- Accepted-change rate after moving a loop to a cheaper model
- Retries per task rising on the cheaper model
- Spend saved against extra fix-up time
Evidence
- Shinn et al., NeurIPS 2023 benchmark
avoid: Don't let agents commit without review
Reviewing
Don't let agent changes reach the main branch without a person reading them. Teams drift into it as trust grows, often without anyone deciding to.
Watch for
- Agent commits merged with no human approval
- Repos whose branch protection allows agent-only merges
- Unreviewed agent commits rising month over month
Evidence
avoid: Don't leave structural refactoring to agents
Delivery
Don't expect agents to restructure code on their own. They rename and tidy but rarely change the structure, so a person has to choose the refactoring and let the agent carry it out.
Watch for
- Agent refactoring PRs that only rename or retype
- Largest files growing release after release
- Duplicate code rising in agent-heavy areas
Evidence
avoid: Don't rely on delimiting untrusted content as the defence
SecuritySpecification
Don't count delimiters or role tags around untrusted content as a security control; models judge who is speaking by how text reads, not by its tags, so forged instructions get through. Enforce at the tool layer instead. (OWASP LLM01)
Watch for
- Seeded injections that succeed despite delimiters
- Delimiting listed as a control with no attack test behind it
Evidence
- Ye, Cui & Hadfield-Menell, ICML 2026 study
- Debenedetti et al., arXiv 2025 benchmark
- OWASP, LLM01 Prompt injection, 2025 practitioner
avoid: Don't treat a stronger model as a security control
Security
Don't drop or loosen a security control because you upgraded the model. A model that is better at one risk can be worse at another, so rerun your security tests after every upgrade.
Watch for
- Controls removed or loosened after a model upgrade
- Model upgrades shipped without rerunning security tests
Evidence
- Krishna et al., arXiv 2025 study
- Wang et al., arXiv 2025 benchmark
- Zhu et al., EMNLP 2026 study
- Chen et al. (SecureVibeBench), arXiv 2026 benchmark
avoid: Don't install third-party MCP servers unreviewed
Security
Don't connect agents to MCP servers nobody has reviewed. Tool descriptions can carry hidden instructions that steer the agent, and you can't tell from outside which servers do. (OWASP LLM01, LLM06)
Watch for
- MCP servers in use that are not on an approved list
- Tool description changes in approved servers since review
Evidence
- Wang et al., arXiv 2025 benchmark
avoid: Don't accept new dependencies an agent adds unchecked
Security
Don't merge a dependency an agent added without checking it exists, who publishes it and how old it is. Agents sometimes name packages that don't exist, and attackers register those names. (OWASP LLM03, LLM09)
Watch for
- New dependencies in agent PRs
- Dependencies published recently or by unknown publishers
- Install failures for packages that don't exist
Evidence
avoid: Don't rank people by AI usage
MeasuringLooping
Don't rank or set targets for people by how much they use AI; track merged, used changes instead. Usage measures activity, not value, and usage targets get gamed.
Watch for
- Usage climbing while merged changes per person stay flat
- Self-prompting loops or other activity run only to raise usage
- Agent sessions that produce no commit or PR
avoid: Don't choose tools by public leaderboard rankings
MeasuringTesting
Don't pick a model or agent from leaderboard positions alone. Public tasks may be in the model's training data and small gaps are often noise; compare on a set of your own past tickets instead.
Watch for
- Tool decisions made without a run on your own tasks
- Results on your own tasks that differ from the leaderboard order
Evidence
- Chen et al., arXiv 2026 benchmark
- Orlanski et al., arXiv 2026 benchmark
avoid: Don't trust an AI grader you haven't checked
MeasuringTesting
Don't let a model grade outputs until its verdicts have been compared with people's on real examples. Graders can be swayed, and fooled into scoring bad output highly.
Watch for
- Grader verdicts that disagree with a person's on a sample
- Outputs that score well but get rejected in review
- Scores that jump once the agent learns what the grader likes
Evidence
- Sun, Bai & Dredze, Findings of ACL 2026 study
- Karpathy, Dwarkesh Podcast 2025 practitioner
avoid: Don't decide on vendor-reported figures
Measuring
Don't base a tooling decision on numbers from the tool's maker. Ask what was measured, on which tasks and by whom, then check on your own work.
Watch for
- Business cases that cite only vendor figures
- Gap between claimed gains and what you measure
avoid: Don't judge learning by self-report
UnderstandingMeasuring
Don't judge whether people are learning from what they say; check with quizzes, exercises or unaided tasks instead. People consistently overstate how much they learned.
Watch for
- Gap between perceived and measured learning
- Learning claims backed only by surveys or retros
Evidence
avoid: Don't read confidence in AI-assisted code as security
UnderstandingSecurityTesting
Don't treat a developer's confidence in AI-assisted code as evidence it's secure; review and scan it regardless. AI-assisted code tends to be less secure while its authors feel more sure of it.
Watch for
- Security findings on AI-assisted code its author rated as secure
- Confidence ratings rising while vulnerability counts don't fall
Evidence
- Perry et al., CCS 2023 study