A Blueprint for Future Software Teams
A practical guide for compounding learning across your software team with AI
Here's a claim that might make you uncomfortable: your code is ephemeral. Delete it. Regenerate it tomorrow. The design document is the asset now.
I've been building software for two decades. The last year fundamentally changed how I think about what we're actually producing. It's not the code. The code is compiled output. What matters is the thinking that produces it—and whether that thinking compounds across your team over time.
This is a blueprint for how software teams learn when the AI model itself doesn't learn from your conversations. It's the missing infrastructure between "everyone on my team uses AI" and "our team gets better at AI every week."
1. The Frozen Model Problem
Here's what most people don't fully internalise: AI doesn't learn like people think it learns.
The models take six months to bake in an AI lab. They cost millions of dollars to train. They can't learn from your chats last quarter. They can't learn from someone's clever prompt last Tuesday. When you close the session, it's gone.
Yes, you can fine-tune. Yes, you can build RAG systems. But that's not organisational learning. That's plumbing.
So the question becomes: if the model is frozen, how does your team actually learn?
The answer I've arrived at, after building this infrastructure for myself and watching what compounds: the learning happens in the scaffolding around the model, not in the model itself.
The gradient updates are happening in your repo, not in the GPU.
2. The Org Brain Architecture
When you first start prompting AI, you write a prompt, it says something mediocre, and you blame the AI. "Look how silly it is." But the real issue is almost always what you asked for—how you scoped it, what context you gave, what depth and background you provided.
Eventually, you put more effort into prompting. Outputs improve. But you can't just context-engineer every problem to death. It doesn't scale. What about the next problem?
The pattern I've found that actually compounds:
Build meta-context that persists across sessions. Instead of updating individual prompts, update shared knowledge files that get injected into every AI conversation. These files become "soft weights"—text-based conditioning that acts like fine-tuning you can read and version control.
Three Layers of Learning
This naturally organises into three levels:
learned.md — Your personal notes on what keeps going wrong. The date (currently "late 2025" so it stays valid for months). Current model versions. Things specific to how you work. Low-pressure, experimental, slightly messy on purpose.
coding.md, infrastructure.md — Shared conventions. "We use AWS, not GCP." "Our API patterns look like this." "We handle errors this way." Things that should apply to everyone working on this codebase.
security.md, architecture.md — Tim from security writes his brain into these files once. Now every developer's AI session automatically inherits Tim's security thinking. No meeting required. No training session. It just happens.
The beautiful part: knowledge flows upward. You notice something in your personal learned.md that applies to the team. You PR it into the team canon. Senior architects notice team patterns that should be org-wide. They promote it up. The system learns without meetings.
3. Design Documents as Gospel
Here's where this gets interesting for software teams specifically.
If you use Claude Code or Cursor in plan mode, you'll notice something: when the AI is not allowed to write code, it thinks harder. The world-model side of its reasoning stays online. It's not burning cycles on syntax, open braces, and tab alignment. It's focused on coherence and architecture.
This maps to how good senior/junior dynamics work:
- Bad pattern: Junior disappears for 3 days, comes back with a 2,000-line PR, and you realise they missed the point entirely.
- Good pattern: Junior brings you a design doc first. You catch the "you missed the point" in 5 minutes, not 3 days.
The same discipline applies to AI. Separate thinking from typing:
- Gather context (screenshots, business requirements, bug reports)
- Feed context + canon files into AI in plan mode
- Get a design document, not code—review this first
- Only then: tell it to implement according to the design
At this point, the coding phase is compilation. The design document is the source of truth.
The implication is radical but logical: the code is no longer the primary asset. The code is generated output. The design document is what you actually built.
If the code has bugs, you don't nurse it forever. You figure out what the design doc missed, update it, and regenerate. The design document captures the learning. The code is ephemeral.
4. Definition of Done v2.0
This is where it gets practical. If your team adopts this pattern, what actually changes in how you work?
The definition of done expands. It's no longer just "tests pass, code ships."
- Design document created and reviewed
- Code implemented per design
- AI conformance check run: "Does code match the design?"
- Tests pass
- Learnings extracted: "What went wrong? What surprised us?"
- Canon updated: Relevant learnings PRed into the appropriate level (personal, team, or org)
That last part is critical: every piece of work leaves a fossil in the team's brain.
The Learning Extraction Ritual
At the end of each ticket or feature, developers answer three questions:
- What were the sticking points? Where did the design doc fail to anticipate reality?
- What surprised you? Behaviours, edge cases, integration issues you didn't expect?
- What should we never do again? Patterns that wasted time or caused bugs?
These answers get triaged:
- Personal learning only? → Add to your
learned.md - Applies to the team? → PR into
coding.mdorinfrastructure.md - Org-wide principle? → Senior promotes to org-level canon
This is the refactoring loop. You're not just refactoring code. You're refactoring knowledge upward into more general, more reusable form.
Architect Review Bandwidth
For architects and tech leads, this changes what you review entirely.
| Old Model | New Model |
|---|---|
| Review every line of code | Review design documents |
| Catch bugs in PRs | Catch conceptual mistakes in design |
| Meeting-heavy knowledge transfer | Canon files transfer knowledge passively |
| Bottleneck on senior time | Seniors shape canon; AI enforces it |
The architect's job shifts from code reviewer to canon curator. You're not staring at diffs. You're shaping the team's shared thinking infrastructure.
An AI can check whether code matches the design document. You can have automated conformance checks. What AI can't do is decide whether the design makes sense for the business, whether it aligns with the org's architectural direction, whether it introduces technical debt worth taking on.
That's what architects should be doing. That's where the human leverage is.
5. The Model Upgrade Flywheel
Here's where the compounding really kicks in.
When a new model drops—say, Claude Opus 4.5—what happens depends entirely on whether you've built this scaffolding.
Without scaffolding: You start from zero. The new model is smarter, but it doesn't know your team's patterns, your infrastructure, your past mistakes. You get some general capability uplift, but you're still doing the same context-engineering dance every session.
With scaffolding: You plug the new, smarter model into your existing canon. All your team's accumulated knowledge—every lesson captured in learned.md, every convention in coding.md, every security rule Tim wrote into security.md—gets executed by a more capable engine.
Better model + better scaffolding + better judgment = exponential improvement, not linear.
I experienced this personally when Opus 4.5 dropped. I already had months of infrastructure and learnings baked into my workflow. When the new model showed up, my output quality jumped immediately—not because I did anything differently, but because the same scaffolding was now being run by a smarter engine.
And here's the kicker: better outputs mean I'm reading better stuff. I become more critical. I notice subtler flaws. I capture finer-grained learnings. Which feeds back into the canon. Which makes the next model upgrade even more powerful.
This is the flywheel. Every model release becomes a phase change, not just an upgrade.
6. Making It Concrete
What Goes in Each File
# learned.md (Personal)
- Current date: late 2025
- Current models: Claude Opus 4.5, GPT-5.1
- Things that go wrong in my AI sessions:
- Forgets to handle null cases unless reminded
- Overcomplicates simple solutions
- Doesn't know about recent AI developments
# coding.md (Team)
- We use TypeScript strict mode everywhere
- API handlers follow this pattern: [example]
- Error responses always include request_id
- Database queries use the repository pattern
- Tests: unit for logic, integration for API boundaries
# security.md (Org)
- Never log PII fields (email, phone, SSN)
- All external API calls go through the gateway
- Auth tokens expire after 24 hours
- SQL parameters always use prepared statements
The PR Template for Canon Updates
## Canon Update: [learned.md | coding.md | security.md]
### What triggered this update?
[Ticket/feature that surfaced the learning]
### What did we learn?
[The specific insight or convention]
### Why does this belong at [personal/team/org] level?
[Justification for scope]
### How would this have helped if we'd had it earlier?
[Concrete example of time/bugs saved]
Design Document Template
# Feature: [Name]
## Context
[What canon files are relevant: coding.md, security.md, etc.]
## Problem
[What are we trying to solve]
## Constraints
[What can't change: existing APIs, data formats, etc.]
## Proposed Design
[How we'll solve it]
## Testing Strategy
[Unit tests, integration tests, smoke tests]
## What Could Go Wrong
[Edge cases, failure modes, known risks]
## Open Questions
[Things we're uncertain about]
7. Cross-Pollination Without Meetings
One of the most powerful effects: specialist knowledge spreads automatically.
Traditional pattern:
- Security expert: "We need to follow these guidelines."
- Everyone else: "That's Tim's job. I'll half-listen in this meeting and forget it in two days."
- Result: Security doc rots in Confluence. Reality drifts.
New pattern:
- Tim writes his security brain into
security.md - That file gets injected into plan mode for every security-relevant design
- Every developer's AI session automatically applies Tim's rules
- No meeting. No training. No forgetting.
Tim's leverage goes through the roof. He writes the canon once, maybe updates it occasionally, and his thinking gets replayed thousands of times through the AI. Same for performance experts, ops experts, anyone with specialist knowledge the team needs.
This solves the oldest problem in software teams: how do you share what's in the senior engineers' heads without burning all their time in meetings?
8. Why Design Docs Work Better for AI
There's a deeper reason why design documents outperform code as the primary artifact for AI-assisted development.
Code is detail-first: lots of tokens, lots of boilerplate, semantics scattered and implicit. AI has to read all of it and infer what you're trying to do.
Design docs are meaning-first: "This module does X. It takes inputs Y. It guarantees Z. The scary bits are W."
Even with massive context windows, AI's attention is finite. When you feed it 50,000 tokens of code, a lot of that attention goes to braces, variable names, and syntax. When you feed it 5,000 tokens of design docs, most of that attention is on actual meaning.
Same model, same context window, dramatically higher signal-to-noise ratio.
This is why plan mode feels "smarter"—the model operates in a world of meaning, not syntax. Design documents are that same trick, frozen into the repo.
9. Getting Started This Week
You don't need to implement the entire system to start capturing value. Here's a minimal viable starting point:
- Create one shared file:
coding.mdin your team's repo - Seed it: Add 5-10 conventions your team already follows but aren't documented
- Require it: When using AI for any design or implementation, include this file as context
- Update it: When something goes wrong that the file would have prevented, add it
That's it. One file. One week. Watch what happens.
After a month, you'll have a file that captures dozens of learnings. After a quarter, you'll wonder how you worked without it. And when the next model upgrade drops, you'll feel the compounding effect firsthand.
The pattern generalises beyond code. Anywhere you want organisational knowledge to condition AI behaviour—marketing, operations, customer support—the same three-layer canon applies. The same learning extraction ritual works. The same flywheel spins.
But for software teams specifically, this is the infrastructure that turns "everyone uses AI" into "we compound as a team."
The code is ephemeral. The design documents are gospel. The canon is how your team learns.
Build the scaffolding now. Harvest the compounding later.
