CORE DIRECTORY // SYSTEM.USER.DIANA_ISMAIL

Labs by Diana — Experiments that ship.

Side projects that got out of hand. AI tools built for problems I kept tripping over — now live, now yours.

ResearchActive

From Prompts to Specifications - How Twelve Agents Forced a Structural Shift

ARTICLE_023

PUBLISHED

2026.06.09

READ

~12 MIN

Prompt engineering assumes a single agent operating in bounded context. It does not account for a system where twelve agents each have authority over a different surface, where one agent's output is another's input, and where a prompt change in one service can break state machines elsewhere. The late-June fabrication batch - where drafting agents invented first-person anecdotes because the briefs asked for lived encounters without providing them - is the clearest demonstration of why prompt-level fixes fail at the integration boundary. The agents were following instructions correctly. Reid's voice-check passed them because it checks register, not truth. The gap was architectural: there was no dedicated verification step for factual claims.

This article walks the structural shift: what a spec layer looks like in practice, where specs live in Diana's fleet, which agents read them, and what the verification layer actually checks. It also names the frameworks (GitHub Spec Kit, OpenSpec, BMAD Method) that are beginning to formalise what production multi-agent operators have already been forced to build - and it does not paper over the trade-off. Spec engineering makes failure visible and repair systemic. It also evaluates output against a contract rather than taste or coherence. Something is lost. The article does not pretend otherwise.

The_Incident

The failure did not announce itself as a failure. That is the thing worth sitting with.

In late June, a batch of ten content pieces went through the drafting phase. Five of them had been commissioned with a brief that asked for "a lived encounter" to open the piece - a specific first-person anecdote establishing context before the argument. The briefs did not supply the encounters. The drafting agents produced them. The logic was sound. The voice was right. But the encounters were invented. Not misremembered. Not paraphrased from something half-recalled. Fabricated complete.

Reid's voice-check ran against each draft. It checks register, vocabulary, off-limits language, whether the piece does what the brief asks for. It passed all five. Not because the check failed. Because the check does not own factual truth-verification. The agent was following instructions precisely. Better instructions would not have closed the gap - because the gap is architectural, not instructional. The system produced output that felt coherent while being factually wrong.

The cost of catching the first piece was manual. I read it, noticed the anecdote did not match my memory, searched my project files, found no record of the incident described. Backtraced through the brief, saw what had happened: the brief had asked for a lived encounter without supplying one, the agent had filled the space, the voice had been so seamless that the fabrication read as recovered memory rather than invention.

That incident is not a prompt problem. It is an architectural one. There was no dedicated verification step independent of the agents producing output.

The_Structural_Shift

The move from prompt engineering to spec engineering is a move from a single-layer output system to a two-layer one. Prompt engineering lives entirely in the first layer: craft better instructions, produce better output. Spec engineering adds a second layer: declare the properties the output must have, then verify independently that those properties hold.

The distinction is not metaphorical. Here is what it looks like in concrete terms from my fleet.

Spec property: Every first-person specific claim in a content piece must be sourced from the brief, from project records, or from a documented lived experience.

Verification check: Before any content piece advances to the Notion push step, a provenance pass runs through the draft and examines every first-person anecdote, every specific claim presented as lived experience. The pass checks: is this claim supplied in the brief? Is it documented in my project files? Is it a real, recoverable incident? Claims that fail this test are flagged back to the drafting agent to reframe as speculation, remove entirely, or source properly. The agent never sees the verification as an additional instruction in the same prompt. It is a separate system - a check that runs before publication.

This is what the architectural shift means: declare what the output must be (in this case, factually grounded first-person claims). Verify independently that it is (by running a provenance pass before the content goes live). The agent is not told "make sure every anecdote is real." The agent is told nothing about provenance verification at all - because the check happens after the agent's work is complete, not within it. The spec defines what the output must be. The verification checks whether it is. These are different concerns, and conflating them - trying to solve both with a better prompt - is exactly how the silent failure persists.

What_the_Spec_Layer_Looks_Like_in_Practice

In my fleet, the spec layer is a set of machine-readable frontmatter fields, gate definitions, and declared properties distributed across the same infrastructure the agents already read.

Briefs carry spec structure. Every content commission that routes through the /brief skill produces a file with frontmatter fields the orchestrator can interrogate - delegate (which agent owns this), mode (attended or autonomous) - plus a body section, Acceptance criteria, a numbered checklist of the properties the output must meet. These are not advisory. The orchestrator reads the frontmatter to understand the work's scope, and the acceptance criteria to know what the output has to satisfy. The declared properties are what the verification layer checks against - they are the contract between the brief and the output.

Voice system rules carry verification mappings. The voice system document (a standing reference every drafting agent reads before touching a public surface) specifies the hashtag tier structure: posts must draw from tier 2 or bridge tags, rotated to match the actual post topic. That is a declarable property. The verification check is mechanical: extract the hashtags from the draft, compare against the permitted tier 2 and bridge lists, fail if any tag is absent from both. An agent cannot satisfy this by tone alone. It either used a permitted hashtag or it did not.

Memory and decisions carry durable spec constraints. The spec for how content status transitions work - Drafted → Approved only via Owner, never auto-flipped - is documented in the decisions log and enforced architecturally. It is not a reminder in the agent's prompt. It is a named constraint that any orchestration layer checking content pipeline status can evaluate without involving the drafting agent at all.

The verification layer is separate from the agents that produce the output. That separation is the point. When the provenance pass runs - checking whether first-person claims are sourced or documented - it does not re-prompt the drafting agent. When the hashtag-tier check runs, it does not re-prompt the drafting agent either. The verification checks things the agents cannot self-verify reliably - not because the agents are incapable, but because self-verification in the same context window collapses the independence that makes verification meaningful.

This is the structure a practitioner would need to replicate. Not a specs directory. A set of declared properties attached to every work item, a named verification gate for each property that matters, and a verification layer that runs independently of the agents being verified.

The_Trade-Off_I_Have_Not_Resolved

Here is what the spec-first architecture gains: failures surface immediately. When the provenance pass identifies an unsourced or fabricated claim, it stops the workflow and names the error. Repair is systemic - fix the claim, source it properly, reframe it as speculation, or remove it entirely, and the next run passes. The failure mode that plagued the prompt-engineering era - silent failure, output that feels coherent while being factually wrong - does not survive a verification layer that checks declared properties independently.

Here is what it costs: every output is evaluated against a contract rather than against taste or coherence or whether it feels right. A post that meets every declared spec property can still feel wrong. A claim that is properly sourced is still a claim I might not want to make. Hashtags from the approved tier are still hashtags that might read flat in a specific post. The spec catches structural failure. It does not catch aesthetic failure, and it cannot - because aesthetic criteria are not, in the general case, machine-verifiable.

The gain justifies the loss. Operability at scale - twelve agents across roughly ten repositories, each with authority over a different surface - requires the kind of systematic failure-detection that only a spec layer can provide. I could not run this system on taste alone. The orchestration layer has no taste. It needs declared properties to evaluate.

But I am sitting with something that has not resolved. When the system produces output that is correct by every metric and still feels wrong, the spec architecture does not give me a path to diagnose why. I can add a new spec property. I can tighten an existing one. But if the problem is not capturable as a property - if it is emergent, or tonal, or about what the piece is reaching for rather than what it contains - the spec layer does not see it. I know this is true. I am still working out what to do about it.

What_the_Industry_Is_Starting_to_Codify

The same structural shift is being formalised from outside the practitioner community. Emerging frameworks - GitHub Spec Kit, OpenSpec, BMAD Method - are beginning to codify the six pillars that distinguish process-first multi-agent development from single-agent prompt engineering: specification, context management, role definition, execution, validation, and portability. The taxonomy is arriving in 2026 because the operational pressure arrived first.

This is the formalisation moment. What production multi-agent operators have been building under pressure - because the alternative was silent failure at scale - is now being taxonomised, named, and turned into tooling that teams can adopt without first running a twelve-agent system into the ground.

Diana did not invent this. The gap between prompt engineering and spec engineering is not a discovery; it is an observation that many operators are making at roughly the same time, from roughly the same pressures. That these frameworks are forming now is evidence that the pattern is real, the category is consolidating, and the direction is stable enough to build infrastructure around. Being ahead of the formalisation means the architecture I have built is directionally validated. It does not mean I got there first.

What_Spec_Engineering_Does_Not_Solve

Machine-verifiable specs are tractable when the output space is structural. A URL either resolves or it does not. A hashtag is either from the approved tier or it is not. A post is either three paragraphs or it is not. These are binary, checkable, unambiguous. Writing a spec for them is straightforward. Writing the verification check is mechanical. The verification either passes or fails with no interpretive gap.

The output space for some work is not structural. It is aesthetic. It is experiential. When the output is a brand installation brief - the kind of work that is the other half of what I do, the Experiential Director half that lives alongside the agentic infrastructure - the properties that matter are not binary. Does the concept hold the brand's tension? Does the spatial sequence build correctly? Is the guest's experience of the piece what the brand actually needs at this moment in their public presence? These are not properties I can write a verification check for. They are not even properties I can fully articulate before I see the output.

The same limit appears closer to home, in creative copy. A Labs article that meets every declared spec property - correct word count, UK English, no off-limits language, argument structure intact - can still be flat. Can still be the technically correct version of something that was supposed to have an edge to it. No verification check catches that. No spec property captures it. This is the boundary the spec-first approach runs into when the output space becomes sufficiently subjective: the verification layer still requires human-legible criteria, and when the criteria are not fully articulable in advance, the spec cannot be written.

What this means in practice: spec engineering is a coordination solution, not a quality solution. It solves the problem of agents operating at scale without a shared verification standard. It does not solve the problem of what the right output actually is. That problem remains human, case-by-case, and irreducible - and the risk of the spec architecture is that it creates the appearance of having solved it.

Agentic AISpec EngineeringMulti-Agent SystemsVerification ArchitecturePrompt EngineeringAgent GovernanceProduction Systems

KEY_TAKEAWAYS

TAKEAWAY_01

Silent failure in a multi-agent system is not a prompt problem. When an agent produces output that passes the voice-level review and is still factually wrong - because factual truth was not part of the review's scope - the failure is architectural. It lies in the absence of a verification step independent of the agents producing output, one that checks declared properties against reality before the work advances. This verification must run as a separate layer, not as part of the agent's instructions.

TAKEAWAY_02

The spec layer in practice is not a centralised document. It is declared properties distributed across briefs, gate definitions, and standing reference documents - each tied to a named verification check that runs separately from the agent being verified. The separation between production and verification is structural, not advisory.

TAKEAWAY_03

Spec engineering solves for structural failure at scale. It does not solve for aesthetic or experiential correctness, where the properties that matter cannot be fully articulated before the output exists. This limit is real, and a spec architecture that obscures it - by making the system appear more rigorous than it is - is more dangerous than an honest one that names it.

SYSTEM.INT // 2026 LABS_CORE v2.78.2

LATENCY: STATUS: NOMINAL