DEV Community

Cover image for Intents, Runs, and Roles
James Sargent
James Sargent

Posted on • Originally published at open.substack.com

Intents, Runs, and Roles

People keep asking me what Trail actually looks like in action. The philosophy makes sense, but eventually you want to see the machine.

Trail consists of three structural concepts and four roles. That’s the entire system.

The structure

Meta is your project’s reality anchor. It stores global operating instructions, shared inputs, and a baseline that describes what exists today. It changes slowly and intentionally. If a rule applies everywhere, it’s kept here. If it doesn’t, it doesn’t belong here.

Intents are bounded units of work. Each intent defines the problem, constraints, what is explicitly out of scope, and what “done” means. You write the intent before anything gets built. Once execution starts, it is immutable. You don’t go back and edit it. If the work changes, you create a new intent. If the Reviewer identifies something that requires a different scope, that’s a new intent. Old intents are always kept.

That’s how Trail keeps history honest. You can see what was actually decided at the time, not what someone later claims was decided.

An intent isn’t a ticket or a user story. It’s more like a project brief, but one that is enforceable. It includes the intent itself, manager instructions that guide how planning is carried out, and operating instruction overrides for any specific details related to that work. Collectively, these files make up the intent package. Nothing gets executed without it.

Runs are execution containers. A single intent might require one run or several. Each run answers “how,” never “what.” The Manager decides how many runs are needed and what each one covers.

Runs are disposable. They can fail, pause, or be abandoned—that’s normal. What matters is the artifacts they generate, not the run itself.

Within each run, the Manager creates an execution bundle: operational instructions (fully written), a task list, a developer prompt, and a results file. That bundle constitutes the entire execution context. The Developer does not depend on anything outside of it.

The roles

Architect defines the “what.” Produces the intent package. Owns scope. This role is always performed by a human. Trail’s highest-leverage constraint is that the entity defining the problem is never the same as the one executing it.

Manager translates intent into execution. It reads the intent and creates the run bundle. It does not add scope. It does not fill gaps. If the intent is incomplete or contradictory, the Manager stops. That’s not a failure; it’s a control point. It reports what is missing and returns the issue to the Architect.

Developer executes the Run artifacts and produces output, either human or AI. The constraint is strict: the Developer’s context must match the file context. No chat memory allowed. No references to previous talks. If it’s not listed as an input, it does not exist.

That constraint cuts both ways. The Developer is not allowed to guess. If something is missing, such as a file, a dependency, or a clear instruction, the Developer stops and reports it. Trail prefers to halt rather than produce output based on assumptions.

Reviewer verifies the output against the intent and Run artifacts, then accepts or rejects it. If the output is incorrect, it is rejected. If the scope is wrong, a new intent is created. Always performed by a human. In smaller projects, the Architect and Reviewer are often the same person.

Why should I care?

Most AI-assisted work combines all these roles into one person in a conversation. You define the problem, plan the solution, carry out the work, and judge the results, all in the same place. That works until it doesn’t. And when it breaks, there’s no way to separate what went wrong from who decided it.

Trail forces those boundaries to exist whether you like it or not.

When AI fills the roles of Manager or Developer, the Architect and Reviewer stay human. That’s not about preference; it’s about governance. The human defines what should be built and confirms whether it was built correctly. AI works within boundaries it did not set and cannot change.

Trail doesn’t slow down work; it makes the system visible. When something goes wrong, you don’t have to debug the whole project. Instead, you check the boundary: was the intent unclear, did the Manager misplan, did the Developer deviate, or did the Reviewer miss something?

Every failure has a location.

That’s the point. Not to prevent mistakes, but to make them traceable and recoverable.

Web: trail.venturanomadica.com
GitHub: github.com/Ventura-Nomadica/trail-framework

Top comments (0)