Skip to main content
Early Access. Commands and behavior can change between releases.
The file lives at .architech/factory/factory.yaml. Both onboarding and architech factory init write this one format, architech/factory/v2.

Example

A Cloud Factory for one GitHub repository. Replace the owner, project number and repository with yours. Configure your Factory has a longer example with a comment on every key.

Keys

These are all the top-level keys. Any other top-level key is refused. Push lists the stored-but-unused fields as accepted, not applied: metadata.description, default, issues, every board except the selected one, and mode (pushing, not this field, makes a Factory a Cloud one).

Status mapping

Map only the columns you have. dropped is a canonical status too. Unknown keys, blank values and empty maps are refused.
  • An unmapped status is not mirrored to the board.
  • If you leave statusMap out, Cloud uses its default map. That is not the same as mapping nothing.
When statusMap is left out, Cloud uses: See all canonical statuses.

Labels

Each key under labels is a role; its value is the label name on your board or repository. Agents use these names instead of inventing their own. Any other key under labels is refused. “A person” means a GitHub user with write access to the repository. A label added by a bot, an app or the Factory doesn’t approve anything. See approvals by label.

Triggers

triggers is a flat list. Each trigger has exactly three keys: Give run.stage or run.command, not both. A schedule trigger needs run.command. Without a triggers key, three defaults apply; triggers: [] turns off every trigger from the file. See the Triggers and routines for what each event starts, and for routines.

Refused keys

architech factory validate and push refuse these keys and name where the setting lives instead.

Choose models per role

There are five framework roles: orchestrator, architect, developer, llm-whisperer and reviewer. A role you don’t list runs on the architech harness with your workspace’s default model. Override a role in the file:
Use the exact provider:model names your workspace lists. The dry run checks each role’s model, Environment and effort level, and reports any refusal before anything is pushed. You can’t rename or replace a framework role. agents.repoAgents.allow lists your repository’s own agents, never a framework role. To list every field with its type and default, ask the installed CLI:
The first prints the schema offline. --remote fetches Cloud’s copy and needs sign-in.

Validate and synchronize

With no argument, push and pull use .architech/factory/factory.yaml. A factory name picks .architech/factory/factory-<name>.yaml; you can also pass a path. Push and pull can commit changes, so read their result before other Git work. See configuration drift and warnings.