name: alto-configure description: Use when configuring ALTO settings including arbiter thresholds, permissions, or verification hooks. Applies during setup orchestrator "Configure ALTO" selection, build orchestrator checkpoints, or when user requests configuration changes.
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)