Skip to main content

router.yaml

actio/router.yaml is the context router. It tells agents which files to read for which domain, rule, or task.

Structure

version: 1

project:
name: my-project

domains:
connectors:
architecture: architecture/system.md
interfaces: interfaces/contracts.yaml
patterns:
- patterns/example_pattern.md

rules:
coding: rules/coding_rules.md

tasks:
example_task:
domain: connectors
guide: tasks/example_task.md

Top-level fields

FieldRequiredDescription
versionYesSchema version (must be 1 or higher).
project.nameYesProject name.
domainsYesNamed domains; each has architecture, interfaces, and optional patterns.
rulesYesAt least rules.coding pointing to a rules file.
tasksNoNamed tasks; each has a domain and a guide file.

Domains

Each domain (e.g. connectors, api, frontend) has:

  • architecture — One file (e.g. architecture/system.md or per-domain).
  • interfaces — One file (e.g. interfaces/contracts.yaml).
  • patterns — List of pattern docs (e.g. patterns/snowflake.md).

Paths are relative to actio/. The CLI validates that these files exist.

Rules

  • rules.coding — Path to the main coding/architecture rules file (e.g. rules/coding_rules.md).

Tasks

Each task links a domain to a guide:

  • domain — Must match a key under domains.
  • guide — Path to a markdown file (e.g. tasks/example_task.md) that describes how to do that task.

Agents can use tasks to load minimal context: “For task X, read this guide and the domain’s architecture/interfaces.”

Validation

Running actio validate checks:

  • router.yaml exists and is valid YAML.
  • version and project.name are set.
  • Every referenced file exists under actio/.
  • Every task’s domain exists in domains.
  • Required directories (architecture/, interfaces/, rules/, tasks/) exist.

Next