ALTO Configuration
Shared configuration procedures for setup and build orchestrators.
Arbiter Thresholds
Use AskUserQuestion:
- Header: "Autonomy"
- Question: "How much autonomy should ALTO have before checkpoints?"
- Options:
- Label: "Conservative", Description: "500 lines, 20 files, checkpoint every 2 tasks"
- Label: "Balanced (Recommended)", Description: "2000 lines, 50 files, checkpoint every 3 tasks"
- Label: "Autonomous", Description: "5000 lines, 100 files, checkpoint every 5 tasks"
After user answers, read alto.json, update the arbiter section, and write back:
| Selection | max_lines | max_files | task_interval |
|---|---|---|---|
| Conservative | 500 | 20 | 2 |
| Balanced | 2000 | 50 | 3 |
| Autonomous | 5000 | 100 | 5 |
Procedure:
- Read
alto.json - Update
arbiter.max_lines_changed_without_human,arbiter.max_files_changed_without_human,arbiter.task_checkpoint_interval - Write back
alto.json
Example updated arbiter section for "Balanced":
"arbiter": {
"max_lines_changed_without_human": 2000,
"max_files_changed_without_human": 50,
"task_checkpoint_interval": 3,
...
}
Permissions
Use AskUserQuestion:
- Header: "Permissions"
- Question: "What permission level for bash commands?"
- Options:
- Label: "Supervised (Recommended)", Description: "Prompt for git, npm, docker"
- Label: "Autonomous", Description: "Auto-approve most commands"
- Label: "Locked", Description: "Prompt for everything"
If NOT "Supervised": Tell user to update devenv.nix:
alto.permissions.profile = "autonomous"; # or "locked"
Then alto-restart. (Permissions require Nix change - orchestrator cannot modify at runtime.)
Verification (Existing Projects Only)
Read alto.json, display the verification section, then use AskUserQuestion:
- Header: "Verification"
- Question: "How would you like to adjust verification?"
- Options:
- Label: "Keep current", Description: "No changes"
- Label: "Add pattern", Description: "Add verification for new file type"
- Label: "Edit command", Description: "Change existing command"
- Label: "Remove pattern", Description: "Remove file type verification"
Procedure: Read alto.json, update the verification section, write back alto.json.
Format for verification section:
"verification": {
"<glob-pattern>": {
"<check-type>": "<command>"
}
}
Example:
"verification": {
"*.ts": { "typecheck": "npx tsc --noEmit", "lint": "npm run lint" },
"*.py": { "lint": "ruff check {file}" },
"*.test.ts": { "test": "npm test -- --related" }
}
Check types: lint, typecheck, test, format
New Projects
Skip verification. Say: "Verification starts empty. QA agent configures it when tooling is set up."
Key Rules
- Orchestrator writes JSON files - never ask user to edit JSON manually
- Orchestrator confirms changes after writing
- Only permissions require user edit (devenv.nix + alto-restart)