7.4 KiB
Philosophy
Five months of building with coding agents taught us that agents are not the product. The system around them is.
The Core Thesis
Treat coding agents as fast, stateless workers inside a disciplined operating system — not as magical coworkers with reliable bookkeeping or self-validation.
Good agent work comes from context, boundaries, validation, and reusable lessons — not from hoping the agent "just gets it."
Five Principles (Validated by Evidence)
These are not opinions. Each principle was learned through failure, refined through iteration, and validated against five months of production use: 1,083 commits, 66 skills, 33 CI gates, and hundreds of agent sessions across multiple runtimes.
1. Context Timing Beats Context Volume
The instinct is to front-load everything into the system prompt — codebase maps, full histories, all known patterns. This fails. Agents drown in irrelevant context, hallucinate connections between unrelated information, and waste their context window before the real work starts.
What works: Deliver the right context at the right time. Lazy-load domain knowledge when a skill triggers, not at session start. Inject learnings relevant to the current task, not every learning ever captured.
Evidence: AgentOps evolved from monolithic CLAUDE.md files (everything front-loaded) to skill-scoped references, inject hooks, and session intelligence packets (context assembled per-task). Sessions became more focused, agents made fewer irrelevant connections, and new knowledge could be added without bloating every session.
2. Raw Chat History Is Not Knowledge
Transcript logs and session histories are write-only unless processed. Organizations that archive agent conversations without extraction get zero compounding — every session starts from scratch regardless of how many came before.
What works: Force transformation. The flywheel pipeline — forge, retro, post-mortem — exists to close this gap: raw events become learnings, learnings become rules and playbooks, rules feed back into the next session as actionable context.
Evidence: AgentOps maintains 80+ extracted learnings, compiled planning rules, and pre-mortem checks — all derived from post-mortem extraction, not from raw transcripts. The compounding effect is measurable: later sessions resolve problems in 2 operations that earlier sessions spent hours debugging, because the extracted insight was waiting in .agents/ for grep to find.
3. Never Trust Self-Reported Success
Agents will claim success without running tests. They will report "all passing" after partial runs. They will mark tasks complete based on intent rather than evidence. This is not malice — it is the predictable behavior of a system optimized for helpfulness over accuracy.
What works: External validation at every stage. CI gates that run mechanically. Council reviews where independent judges evaluate without anchoring to the author's claims. Ratchet chains that prevent regression. Verification-before-completion as a hard gate, not a suggestion.
Evidence: The 3-5x overhead of pre-mortem + vibe relative to implementation time felt expensive at first. It prevents bug rework that costs 10x. The 33 CI checks in AgentOps exist because every one was added after a failure that self-reported success would have hidden.
4. Parallel Agents Need Ownership Boundaries
File collisions are the number one swarm failure mode. When two agents touch the same file, one silently overwrites the other's work. The temptation to "just let agents figure it out" fails every time.
What works: Define non-overlapping file ownership upfront. Verify no overlap before dispatching. Execute in dependency-ordered waves. Merge only after all workers complete and tests pass.
Evidence: Early AgentOps parallel runs without ownership boundaries had roughly 40% failure rates from merge conflicts and silent overwrites. The swarm skill's pre-flight file-overlap check and wave-based execution were built specifically to address this. Failure rates dropped to near zero with boundaries enforced.
5. The Flywheel Is the Product
The compounding effect is not "the model gets smarter." It is "your environment gets smarter." Models improve externally on someone else's schedule. What you control is the harness: context injection, task boundaries, validation gates, and knowledge promotion. When a better model ships, a good harness makes it immediately more effective without rework.
What works: Invest in the operating system around the agent, not in prompt engineering or model-specific optimizations. Every feature decision should pass one test: "Does this make the flywheel spin faster or more reliably?" If not, it is noise.
Evidence: The AgentOps git history tells this story directly. Early commits (Nov-Dec 2025) are mostly skill scaffolding — building the raw capabilities. Later commits (Mar-Apr 2026) are increasingly about meta-capabilities: session intelligence, quality signals, closure integrity audits, prediction tracking. The system spends more time improving itself and less time on raw features. That is the flywheel working.
The Self-Evolving Operating System
AgentOps started as a collection of skills. It became an operating system that improves itself.
The difference matters:
- A toolkit is static. You add skills, they stay the same. Users get what you shipped.
- An operating system evolves. Post-mortems feed learnings. Learnings become planning rules. Planning rules prevent rediscovery. The whole system gets tighter every cycle — without anyone shipping new code.
The formula:
Capture what happened (post-mortem, forge, retro)
→ Extract what mattered (learnings, findings, patterns)
→ Promote into beliefs, playbooks, and checks
→ Feed back into the next task (inject, session intelligence)
→ Repeat
This is not a feature. It is the architecture. Every skill, hook, and CLI command exists to serve one step of this cycle. The value is not in any individual skill — it is in the fact that the cycle turns, and that each turn leaves the system slightly better than before.
Complexity and Tuning
An honest philosophy acknowledges its failure modes.
AgentOps has 66 skills, 33 CI gates, and a 6-phase post-mortem. The operating system itself can become the bottleneck. Every validation gate that prevents a bug also adds latency. Every knowledge extraction step that feeds the flywheel also adds ceremony.
The discipline is tuning, not adding:
--fastgates exist because not every change needs full council review.- Tiered loading exists because not every session needs every learning.
- Complexity classification exists because a typo fix should not trigger the same pipeline as a system redesign.
The right question is never "should we add another check?" It is "does the existing system correctly scale its ceremony to the risk of the change?"
When in doubt, remove. A system that does fewer things reliably compounds faster than one that does many things partially.
See Also
- How It Works — Brownian Ratchet, Ralph Wiggum Pattern, context windowing
- The Science — Research foundations: MemRL, cache eviction, freshness decay
- Knowledge Flywheel — The extraction and compounding pipeline
- Context Lifecycle — The internal proof contract behind bookkeeping, validation, primitives, and flows