Part 1 — Foundations
Where is my team on the spectrum, what is an agentic harness, and why does it take months to build?
6 min · Updated June 2026
If you’ve been handed an AI coding tool and told to “make it enterprise-grade,” this is where to start. Before you touch a config file, you need two mental models: where your team sits today, and what you’re actually building. Neither answer is a config file.
1.1 — Where is my team on the spectrum, and does this whole guide apply to me?
Think of AI-assisted development as a spectrum, not a switch. The axis that matters is how outputs get verified — not how clever your prompts are.
| Vibe coding | Structured AI-assisted | Agentic engineering | |
|---|---|---|---|
| Intent | Casual prompts | Detailed prompts + constraints | Specs, architecture docs, memory files |
| Verification | “Seems to work” | Manual testing, spot checks | Automated tests + evals, CI gates |
| Codebase understanding | Minimal | Review of critical paths | Full architecture review; AI handles detail |
| Right scope | Prototypes, scripts | Features in known codebases | Production systems at team scale |
| Risk | High (disposable code) | Moderate | Low (systematic verification) |
Where are you on the spectrum? AI coding maturity runs from casual prompting to governed agentic engineering — and the right setup for a weekend prototype is reckless for a payment system. Start by placing yourself: before building anything, map where you sit on the AI coding maturity spectrum.
Score your team across the five maturity dimensions before reading further. Takes about ten minutes and tells you exactly which parts of this guide apply to you.
1.2 — Everyone keeps telling me to build a 'harness,' but I think it's just a good CLAUDE.md file. Help me understand what it actually is and why it's more than configuration.

An agentic harness is the engineered environment around a coding agent that determines whether the code it produces is safe, consistent, compliant, and aware of how your organization actually works. The model is the engine; the harness is the car, the road, and the traffic laws.
The trap most teams fall into is thinking the harness is “a good CLAUDE.mdfile.” It isn’t. The 2026 consensus is blunt: successful deployments invest weeks to months of dedicated engineering time building the harness before broad rollout, and keep investing as the codebase and models evolve. The harness is a platform-team product with a backlog, an owner, and a release cycle.
Think of it as a layered stack, not a file:
- Context layer — what the agent knows about your project every session (instruction files)
- Capability layer — what the agent can do and look up (skills, MCP servers, code-intelligence tools)
- Control layer — specialized personas and deterministic gates (subagents, hooks, event-driven workflows)
- Governance layer — what the agent is allowed to do and how you prove it afterward (managed policy, enterprise controls, audit pipelines)
1.3 — I'm running both Claude Code and Copilot and don't want to build everything twice. What the core building blocks and whether they line up across the two.
Yes — and that symmetry is the single most important fact for building one reusable harness. There are seven primitives, and they map almost 1:1 across the two vendors.
| Primitive | What it does | Claude Code | GitHub Copilot |
|---|---|---|---|
| Instruction memory | Persistent project context loaded every session | CLAUDE.md (hierarchical, @import) | .github/copilot-instructions.md, *.instructions.md, AGENTS.md |
| Custom agents | Specialized personas with scoped tools/model/prompt | .claude/agents/*.md | .github/agents/*.agent.md |
| Skills | On-demand, progressively-disclosed task playbooks | .claude/skills/<name>/SKILL.md | .github/skills/<name>/SKILL.md (same standard) |
| Plugins | Bundle of skills + commands + agents + hooks + MCP | .claude-plugin/plugin.json via marketplaces | Org Copilot marketplace from a private repo |
| Hooks / events | Deterministic gates on the agent’s lifecycle | 21 lifecycle events, 4 handler types | Agent hooks (preview) + Actions + Agentic Workflows |
| Tools / MCP servers | External tool and data access via MCP | claude mcp add (stdio/HTTP/SSE) | mcp-config.json, .vscode/mcp.json, GitHub MCP Registry |
| Settings / policy | Enterprise enforcement users can’t override | managed-settings.json + MDM | GitHub Enterprise AI Controls + Copilot policies |

Because the primitives line up, you can author most assets once in a vendor-neutral form and compile them to both targets. That’s the core thesis of Part 7.
1.4 — I keep hearing 'context engineering' is the thing that matters now. Why the bottleneck moved into context engineering instead of the model itself.
The core reason:a model’s raw capability is fixed the moment you pick it, but what you feed it changes on every single call — and that input now determines success more than the model’s ceiling does. Two forces created this flip.
First, models got good enough that they stopped being the constraint. For routine engineering work, today’s frontier models can already do the task. So the failures you actually hit in practice aren’t “the model wasn’t smart enough” — they’re “the model didn’t know our auth pattern,” “it grepped the wrong file,” “it followed a stale convention from a 300-line instruction file.” Those are all input failures, not intelligencefailures. Upgrading the model doesn’t fix any of them.
Second — and this is the counterintuitive part — feeding the model more doesn’t help and usually hurts. A bigger model with a bloated context loses to a smaller model with a clean one. That’s why context is the lever: it’s the input you control on every call, it’s where the real failures originate, and adding more is actively harmful past a point. Here’s the relationship:

1.5 — I want to install dozens of capabilities (instructions, skills, MCP etc.) from my organization assets library and from other teams. How to make this possible without bloating the context and why it matters when I'm building this.
Progressive disclosure is the loading model Anthropic formalized with Agent Skills, now the dominant context-engineering pattern across the industry. Three layers:
- 1.Discovery — always loaded, tiny. At startup the agent scans the YAML frontmatter of every installed skill — roughly 80 tokens each. With 40+ skills installed, that’s only ~1,500 tokens total.
- 2.Activation — loaded when relevant. When the agent decides a skill applies, it reads the full SKILL.md body — a median of ~2,000 tokens across Anthropic’s official skills.
- 3.Reference — loaded only when a step demands it. Supporting files (references/, scripts/, assets/) are read only when the agent actually executes a step that needs them.

Why it matters: it’s what makes a large harness viable. You ship a deep library of organizational knowledge without paying for all of it on every prompt. It also tells you exactly where to put things — always-relevant knowledge in the (lean) instruction file, situational knowledge in skills, bulky material (long checklists, code templates, scripts) in skill reference files.
You’ll make this three-tier routing decision for every piece of organizational knowledge you encode. Get it right and the harness scales. Get it wrong and you pay for context you don’t need while the agent ignores what you paid for — which, as 1.4 showed, is not a hypothetical risk but a measured one.