Skip to content

Conventions

EIDOS.md closes with nineteen load-bearing conventions. They’re a flat, numbered list there; here they’re grouped by what they govern, with pointers into the pages that explain them.

The frontmatter is the agreement; the body is guidance. Properties are checked against the framework’s Schema. Body sections are recommended structure, not requirements.

Validation is framework-defined. A check reads that framework’s Schema and enforces it. The contract is the Schema, not a rule hardcoded in a tool.

Portability over prescription. A missing core property is surfaced and added with a note on why; a missing section is noted and offered. Never refuse the file.

The root owns its framework. Shapes and properties live in the root’s _eidos/. A skill reads the framework from the root, not from a copy of its own.

Every framework declares a framing collection. Its name, its flavors, and how many it carries are the framework’s own. Required as a declaration; never a gate — a declared frame left unwritten is a gap to surface, not a failure.

One shape family per collection, declared as flavors. What flexes is which sections appear and which flavor a blueprint uses — never their order or names within a flavor. The shape is never forked per category.

A shape names its own stable part. Every shape has a part that holds still and a part that moves, and says which is which. If the stable part changes substantially, ask whether this is a different blueprint.

Non-goals carry the most weight. Where a shape declares a section for what a blueprint deliberately will not do, that section is its strongest — it is where scope management actually happens. Still not a hard gate.

A shape documents its own conventions. Section names, their order and meaning, and any labeling a shape asks for live in the shape file. The standard governs collections, shapes, flavors, and properties; it never governs a section.

A collection’s grouping is the collection’s own. It may group its blueprints one level deep and may declare a property naming that grouping; the value then matches the folder, and an unknown value warns rather than blocks.

Properties carry a type and a meaning. Every property declares its name, its type, which collections it applies to, and what it means. Frontmatter is generated from the Schema, so a new blueprint is born conforming.

Soft labels are views, not structure. A category label a framework adds drives views and filtering, never structure. An off-list value is valid. flavor carries the structural choice.

The Eidos version is a framework fact. It lives in Framework.md, never as a per-blueprint property. Git holds the history; a framework that wants date properties declares them like any other.

Write it like a human would read it. The sections are a scaffold for a living blueprint, not a form to pour text into. If a blueprint reads like filled-in boilerplate, reshape it until it reads like someone wrote it.

Reference other blueprints with links, not bare names — in prose and in properties alike. Each blueprint’s id is still its permanent identity, sitting behind the link.

Loose prose is revised in place. A top-level doc, and any collection a framework marks as loose prose, records what is true now and is expected to change. That is revision, not work status.

Read the actor before acting. Read _eidos/me.md and the matching contract in _eidos/roles/, and respond as that role defines. The human-first principle holds for every role; only the mode changes. A blank or absent file defaults to full facilitation.

Five conventions were dropped in 4.4.2 — restated elsewhere, not relaxed. Each still holds; it just isn’t carried as a numbered rule:

Dropped Now lives in
id is permanent The Schema table
Human-facing names follow the naming convention Naming
Framework.md is the index; README.md is the door Framework & Blueprint
Each collection has a generated index Generated Leaves
Top-level docs have no shape Shapes & Flavors

The old rule mandating date_created and date_modified also went. It told frameworks how two properties must behave, while the Schema section says Eidos defines no custom properties at all. A framework already using them changes nothing — it now simply owns them outright.

The human authors. Everything else is downstream of it.

Non-goals carry the most weight. It’s where scope is actually held, and the first section to go empty when nobody owns the root.

No work-tracking fields. It’s the line between a blueprint that stays true and a ticket that rots.