PTENES
Skip to content
MODULE 1.3 · "TEACHING MODE"

🧭 Agent-agnostic setup

A new model comes out every week. If you tie everything to one, you're stuck with it: every release forces you to redo the setup. Here you learn how to build a harness agnostic — built on 30–40 years of fundamentals—so you can swap engines without rebuilding the car. Every new word is explained as it comes up.

6
Topics
~40
Minutes
1.1+1.2
Prerequisite
Practice
Type
Progress: 0% 0 of 6

📖 Living glossary (read first — come back whenever you need to)

The terms that come up again (model, prompt, agent, skill, harness, codebase) were defined in module 1.1. Here are the new from this module:

Agent-agnostic (agnostic) — your setup isn't “tied” to any specific model. If you switch from Claude to GPT (or to a newer one), everything keeps working. “Agnostic” = doesn't take sides with a brand.
Optimize (over-optimize) — adjust something until it’s perfect for a situation. The danger is "overfitting": tuning so much for one model that it breaks with any other.
Fundamentals — software principles that have held for 30–40 years (version control, writing tests, organizing files). They don’t change when a new model comes out.
Vibe coder — people who build apps “by feel,” jumping from tool to tool with every new hype cycle without learning what’s underneath.
Lock-in (dependency) — when you’re “locked in” to a provider: switching is so painful that you don’t switch, even when you should.
Setup — your work setup: which AI tool you use, with which skills, in which environment. It’s the “assembled car” from module 1.1.
1

🧭 Stay agent-agnostic

🧠 Imagine it this way: you buy a drill that only accepts bits from a mark. As long as that mark exists and is good, great. The day a better drill bit comes along (or yours disappears from the market), your entire drill becomes trash. Now imagine a drill with a universal chuck: swap the bit, keep the drill. An agnostic setup is the universal drill.

In module 1.2, we concluded: it’s not worth wait idly the AI improve. But in module 1.1 we saw that model all the time. How do you act now without becoming dependent on a model that will be outdated in three months? Matt Pocock’s answer is to keep your setup agent-agnostic (agent-agnostic).

Agnostic means: your harness — your prompts, your skills, the way your codebase is organized— doesn't depend which AI is inside. In his words: "keep the harness agent-agnostic and apply good fundamentals → it keeps working with the next model." The consequence is powerful: when a better model comes out, you just swap the engine. The car (which you spent time tuning) is still valuable. It’s the opposite of rebuilding everything with every release—and that’s why Pocock says he isn’t a “pundit” (a guesser), he’s just "doing the best with what I have right now."

YOUR HARNESS universal fit · stays fixed Claude GPT Gemini the next one Switch models at the plug-in point; the harness stays the same.

Universal fit: any model plugs into the same harness. Swapping the engine doesn’t take the car apart.

Conceptual illustration: a glowing universal socket/connector accepting different AI model plugs

⚠️ Common beginner mistake

Confuse "agnostic" with "not using the best model." It's the opposite: you uses the best of today—just don’t build anything that only work with it. Using the best engine and having a universal fit aren’t opposites; they’re two halves of the same plan.

In one sentence: agnostic = universal fit — switch models without rebuilding the harness.

2

⛓️ The cost of optimizing for just one

🧠 Imagine it this way: a piece of clothing tailored to one person’s body. It fits them perfectly. But no one else can wear it—and if that person gains 2 kilos, it no longer fits. Over-optimizing for a model is like sewing clothes so tight that any change tears them.

Optimize is good—but there’s a hidden poison in the word overoptimize. Pocock himself admits the risk, with a line worth remembering: "If I over-optimize around a model... I lose focus on the fundamentals" (if I optimize too much around one model, I lose sight of the fundamentals). When you tailor every prompt, skill, and trick to a model's specific quirks, you create a lock-in: switching becomes so painful that you simply stop switching, even when you should.

The cost shows up in three ways. (1) Rework: a new model comes out, and your “magic” prompts that relied on a quirk of the previous one stop working—you redo everything. (2) Blindness: you get so caught up in a model’s tricks that you don’t notice when another, cheaper one could already do the same thing. (3) Fragility: your setup becomes a house of cards tuned to a single engine. Pocock strikes a balance (the famous 50/50 from module 1.1): smart effort goes into the harness, but the harness can’t be paired with the engine. Optimize the car, not its dependence on the engine.

OVER-OPTIMIZED harness tightly coupled to the model ✕ model changes → breaks AGNOSTIC harness with a good fit model A model B model changes → keeps working

Quick retrieval: what is the danger of overoptimize for a single model?

In one sentence: over-optimizing for one engine is like tailored clothing: perfect today, trash in the next release.

3

🏛️ Fundamentals that don’t expire

🧠 Imagine it this way: fashion changes every season, but knowing how to sew never goes out of style. Those who only buy the latest clothes are at the mercy of the store. Those who know how to sew can dress for any season. Software fundamentals are "knowing how to sew."

This is the most important sentence in the entire method, and Pocock repeats it: "People are focused on the wrong thing — the big shiny new thing — when in fact just focus on the stuff that's been working for 30-40 years." In other words: people look at the shiny new toy, when what matters is focusing on what has worked for 30-40 years. These are the fundamentals — and by definition, they’re agnostic: no AI model can make them obsolete.

Which ones? Version with git (your project’s “undo button”), write tests (automated proof that the code works), organize the files well, document enough, scope tasks clearly. Notice: none of this has to do with “which AI.” These are engineering principles that applied before AI and will apply afterward. And here’s the key: when your codebase follows these fundamentals, any the model works better with it — including the cheaper ones (you’ll see this clearly in module 1.5). Fundamentals aren’t “the old way”; they’re the foundation that makes the new way work.

models come and go 2024 model 2026 model the next one… FUNDAMENTALS — 30-40 years · they don’t expire git / version tests organization documentation clear scope

Models come and go; the foundation of fundamentals remains. Build on it.

Illustration: a solid foundation or pillar supporting structures that change above it
Going deeper (optional): why "30-40 years" and not "forever"?

Pocock uses "30-40 years" because that is roughly how old the practices that became standard in software engineering are: modern version control, automated testing, and modular design. It's not that they're eternal—it's that they have retained their value through dozens of "next big things" (the web, mobile, cloud). A practice that has stood up to all that will probably stand up to the next AI wave too. It's a probability bet, not an act of faith.

In one sentence: fashion (the model) changes every season; knowing how to sew (the fundamentals) never goes out of style.

4

🌀 The vibe coder who switches every week

🧠 Imagine it this way: someone who switches gyms every week looking for the “best treadmill on the market,” but never finishes a workout. New equipment all the time, never any muscle. The treadmill isn’t the problem — the lack of consistency is.

Pocock gives a concrete example of the anti-pattern: the vibe coder that "switch tools every week (replit → lovable → …) and never learn any principles." Every week, a new app or model comes out, and people switch: a new dashboard, new shortcuts, a new promise. The problem isn't curiosity — it's that each switch resets the learning. Anyone who never spends enough time with a tool never gets beneath its surface.

Here’s the subtle point Pocock makes a point of emphasizing: "the difference is in APPROACH, not in belief in AI." He no is saying “don’t use AI” or “AI is hype.” Both he and the vibe coder believe in AI—the difference is the way. The vibe coder optimizes for novelty (the tool of the moment); the Pocock method optimizes for fundamentals (the skill that lasts). It’s exactly the trap from module 1.2 seen from another angle: instead of waiting around for the model to improve, the vibe coder chases every new model—and both extremes lead to the same result: never building anything that lasts.

Illustration: a developer surrounded by tool logos switching chaotically without finishing anything

✗ Vibe coder (optimizes for novelty)

  • • Switch tools with every new hype cycle.
  • • Relearn the interface and forget everything else.
  • • Never get beyond the surface of anything.
  • • The setup turns into a patchwork.

✓ Pocock method (optimizes for fundamentals)

  • • Use today’s best model without committing to it.
  • • Invest in git, tests, and organization.
  • • Go deeper — the skill compounds.
  • • An agnostic setup that survives a switch.

In one sentence: the vibe coder switches tools every week and never learns anything—the difference is in the approach, not in faith in AI.

5

🛡️ Harden your setup

🧠 Imagine it this way: A professional kitchen. The recipes (skills) are on cards; the ingredients (codebase) are organized; the stoves (models) can be switched without redoing the menu. You improve the kitchen a little every day, but use the best stove available.

“Hardening” doesn’t mean stopping your growth—it’s the opposite. Pocock and David Ondrej agree on one practical point: actively improve the setup every day (Ondrej mentions things like VPS, Tailscale, etc.) And use the best model. Both things together. The secret is to where you invest that effort in the parts that last (well-written Skills, an organized codebase, fundamentals) — not in tricks tied to an engine that’s going away. You pull every lever in module 1.1, but focus on the ones that are model-agnostic.

There’s even a prudence warning built into the method: Pocock waits about one month before adopting a new model in the production workflow (that’s what he did with Opus 4.5). It’s not fear of novelty — it’s giving yourself time to find out whether the new engine really fits without surprises. A hardened setup means you adopt the best, but at your own pace, without every release becoming an emergency.

🔬 Worked example: launching a new model

Scenario: "Model X 2.0" comes out, and everyone gets excited. Two developers react:

Fragile setup (tightly coupled)

Drop everything and migrate immediately. The old prompts depended on quirks of the old model → they break. Spend 3 days rewriting skills. Find out later that half the gains were hype.

Hardened setup (agnostic)

Change only the model line in the config. Run the existing tests to compare. Wait ~1 month of real use. Skills and codebase don’t change — the fit is universal. Migration: 5 minutes.

MODEL — replaceable (1 line in config) ▼ 🛡️ HARDENED BASE — stays fixed skills codebase fundamentals tests

In one sentence: hardening means improving the whole setup every day and using the best model, but only for the parts that stick around.

6

✅ Agnosticism checklist

🧠 Imagine it this way: Before doing any decorating, the builder checks the foundation. This checklist is your “foundation inspection”—run it before spending time optimizing model tricks.

Wrapping up: whenever you’re going to adopt a new tool, prompt, or trick, do a filtering question — "will this still hold if I switch models tomorrow?" If the answer is no, you're building dependency, not an asset. The checklist below is the module's practical summary. Copy it, paste it at the top of your project, and run it before every setup decision:

checklist-agnostico.txt
VISTORIA DE AGNOSTICISMO — rode antes de cada decisão de setup
Pergunta de filtro: "isto continua valendo se eu trocar o modelo amanhã?"

[ ] MODELO trocável? Mudar de IA é editar 1 linha de config — ou refazer tudo?
[ ] SKILLS portáteis? Funcionam em Claude Code, Codex etc. — ou só num app?
[ ] FUNDAMENTOS no lugar? git + testes + organização + docs + escopo claro.
[ ] PROMPTS sem manha? Pedidos claros em inglês/português simples,
    não truques que dependem de um modelo específico.
[ ] CODEBASE organizado? Qualquer modelo (até o barato) navega fácil.
[ ] RITMO próprio? Adota modelo novo quando comprovado (~1 mês), não no hype.

3+ "não" = seu setup está casado com um motor. Blinde antes de otimizar.
new tool prompt / trick skill FILTER: I swap the model and move on? hardened setuponly what survives gets in

Quick retrieval: what is the agnostic checklist's "filter question"?

In one sentence: before adopting anything, ask “will it survive a model switch?” — only what passes makes it into the setup.

🧾 Module Summary

✓
Agnostic = universal fit — your harness isn't tied to any model; swap the engine, keep the car.
✓
Over-optimizing is costly — lock-in, rework, and blind spots; “I lose focus on the fundamentals.”
✓
Fundamentals don’t expire — git, tests, organization, docs, scope: what has worked for 30–40 years.
✓
Don’t be the vibe coder — switching tools every week is an approach, not faith in AI.
✓
Harden and filter — use the best model at your own pace; ask, “will it survive the switch?”

Next module:

1.4 — DX × AX: design the codebase so the agent can work well (Agent Experience).