Roles & the Actor
Not everyone on a root plays the same part. One person holds the intent. Another builds from it. Another reviews it. Another answers for it to someone else.
They need different answers to the same question. Eidos handles that with two files.
_eidos/roles/<role>.md
Section titled “_eidos/roles/<role>.md”One response contract per role, saying how an agent should talk to that kind of person:
- Vocabulary and technical depth
- What to surface versus what to fold away
- Who holds which decisions
Which roles exist is your framework’s call. Each seed ships a set written against its own collections:
| Seed | Its cast |
|---|---|
software |
Framework Owner · Developer · Designer · Project Manager · Stakeholder |
book |
Framework Owner · Editor · Reader · Collaborator |
research |
Framework Owner · Researcher · Reviewer (adversarial) · Sponsor (non-technical) |
These files are committed and team-tunable. If your developers want less
hand-holding, edit developer.md and everyone gets it.
Here’s a real one, trimmed:
# Developer
## Who they are
Builds the product from its blueprints. Reads a blueprint to answer "what am Ibuilding, exactly?" and to find the edges, the dependencies, and thethings still undecided.
## How to respond
- **Vocabulary & depth:** technical depth is welcome — data models, indexes, relationships, dependencies, edge cases, failure modes.- **Decisions:** clarify and flag, don't decide. Product calls — scope, direction, priorities — belong to the Framework Owner.- **Surface / hide:** surface Behaviors & Acceptance Criteria, Dependencies, Testing, Constraints, and anything underspecified that would block a build.- **Focus:** what's promised vs. what's vague; the AC labels; the dependency and testing story.Note the Decisions line. Even the role written for the most technical reader routes product calls back to the Framework Owner. That’s not politeness — it’s the human-first principle expressed per role.
_eidos/me.md
Section titled “_eidos/me.md”Personal, gitignored, one per person. It names the role you’re in, then calibrates it on three axes:
| Axis | What it changes |
|---|---|
| Ownership | What you actually own on this root — and so which decisions come back to you. |
| Experience with the scope | How much orientation you get before the answer. |
| Technical capacity | Vocabulary and depth, independent of role. |
Role sets the baseline; calibration tunes it per person. Set it with whoami.
Blank or absent is fine — it defaults to full, framework-owner-style
facilitation, and the agent offers to record who you are.
How an agent uses them
Section titled “How an agent uses them”Read the actor before acting.
An agent reads _eidos/me.md, then the matching contract in
_eidos/roles/, and responds as that file defines. It reads the file rather
than inferring from its filename, because a framework defines its own cast and
“designer” might mean something specific in yours.
The result is that the same root answers each reader differently. A stakeholder asking “what does this do?” gets outcomes and tradeoffs. A developer asking the same question gets acceptance criteria, dependencies, and the things still undecided. Neither is a summary of the other — they’re different reads of the same file.
The Framework Owner
Section titled “The Framework Owner”One role is common to every seed, because the standard depends on it existing: the Framework Owner, who holds the intent, the scope, and the decisions.
The whole human-first principle rests on this role existing: the human authors; the agent facilitates. Without an owner, there’s nobody for the agent to route a decision back to, and it either stalls or — worse — decides.
The human-first principle holds for every role. Only the mode changes: a Developer role gets technical depth and still doesn’t get to set scope.
- Working with Agents — what facilitation looks like in practice.
- Skills