Rules and tasks
Actio separates rules (what must always be true) from tasks (how to do a specific thing). Both are referenced from index.yaml.
Rules
Rules are global constraints agents must follow. The only required one in the schema is coding.
rules.coding
Points to a single file (e.g. rules/coding_rules.md) that describes:
- Architecture boundaries and allowed dependencies
- Naming and style expectations
- What not to do (e.g. no cross-domain imports without a documented interface)
Example content:
# Coding Rules
- Follow the architecture in `actio/architecture/system.md`.
- Do not introduce new domains without updating `actio/index.yaml`.
- Prefer interfaces documented under `actio/interfaces/`.
- Avoid cross-domain imports that bypass documented boundaries.
Agents should load this file whenever they are about to generate or modify code.
Tasks
Tasks are named procedures tied to a domain and a guide.
Structure
tasks:
add_connector:
domain: connectors
guide: tasks/add_connector.md
deploy_staging:
domain: platform
guide: tasks/deploy_staging.md
- domain — Must match a key under
domains. Provides which architecture/interfaces/patterns apply. - guide — Path to a markdown file (relative to
act/) that describes the steps.
How agents use tasks
- User says: “Do the add_connector task.”
- Agent reads
index.yaml, finds taskadd_connector. - Agent loads the domain
connectors(architecture, interfaces, patterns). - Agent reads the guide
tasks/add_connector.md. - Agent follows the guide and respects the domain context.
This gives minimal, deterministic context per task instead of “read the whole repo.”
Example guide
act/tasks/add_connector.md:
# Add New Connector
1. Read `act/architecture/system.md` for existing domains.
2. Add a contract in `act/interfaces/contracts.yaml` if needed.
3. Document the pattern in `act/patterns/` if reusable.
4. Implement following `act/rules/coding_rules.md`.
Validation
- rules.coding must be set and the file must exist.
- Every task’s domain must exist in domains.
- Every task’s guide file must exist.
Run act validate to check.