CI / build (push) Has been cancelled
State Enforcement (v2.0):
- .state file as single source of truth for task phase
- Approval gates for research, decomposition, design, test_design
- status.py --transition refuses illegal phase transitions
- status.py --validate-folder detects out-of-order artifacts
- status.py --audit checks all tasks for violations
- status.py --create-task is the only valid way to create tasks
- Pre-v2.0 tasks without .state are UNTRACKED -- all commands refuse them
- New --upgrade command bootstraps .state files for existing tasks
Project Scoping:
- --project flag added to all status.py commands across 16+ files
- _find_project_dir errors instead of silently falling back to ~/.automaton/
- --scope-check marks framework files OUT_OF_SCOPE when working on a project
- Dashboard handlers use stored project_root instead of re-detecting from CWD
- Prompts reference ~/.automaton/scripts/vram_detect.py (not {project}/.automaton/)
Harness Integration:
- status.py --can-edit now supports project-level checks (no --task required)
- --can-edit --file checks file scope without --task
- --json output for machine-readable harness integration
- opencode plugin (plugins/automaton-guard/plugin.ts) intercepts edit/write
- Git pre-commit hook (scripts/git-hooks/pre-commit) blocks commits without task
- Formal integration contract (contracts/harness-integration.md)
Other:
- upgrade.sh delegates to status.py --upgrade instead of manual heuristics
- Phase prompts reference --project {project} for multi-project scoping
- 200 tests passing (14 new)
2.1 KiB
2.1 KiB
Framework Configuration
This file contains global framework settings that apply across all projects.
VRAM Configuration
Settings for task decomposition based on available VRAM.
- Auto-detect: Yes # Detect GPU VRAM, RAM, and model context window automatically
- Target context: 16k tokens # Override auto-detect if needed
- Headroom: 25% # Leave headroom for code, context, and reasoning
- Max peak context per sub-task: 12k tokens # Max context for any single sub-task
Auto-detection
When Auto-detect: Yes, the framework probes your system to detect:
- GPU VRAM (via
nvidia-smiorlspci) - System RAM (via
/proc/meminfoorsysctl) - Model context window (via API config or model name lookup)
- Framework overhead (by reading all loaded prompt files)
To disable auto-detection and use manual values:
## VRAM Configuration
- **Auto-detect**: No
- **Target context**: 8k
- **Headroom**: 30%
- **Max peak context per sub-task**: 5.6k
Model Configuration
Settings for the LLM model being used.
- Model: auto # Use auto-detection from API config, or specify explicitly (e.g., gpt-4o, claude-3-5-sonnet)
- Override context window: auto # Override auto-detection, or specify (e.g., 128k, 200k)
Auto-detection
When Model: auto, the framework detects the model name from:
.agent.mdin the project (if specified there)- API config files (
.env,config.yaml,config.json, etc.) - Model name lookup by name (e.g., gpt-4o → 128k, claude-3-5-sonnet → 200k)
To disable auto-detection and use manual values:
## Model Configuration
- **Model**: gpt-4o
- **Override context window**: 128k
System Requirements
Requirements for the environment the framework runs in.
- nvidia-smi: Required if NVIDIA GPU (for VRAM detection)
- lspci: Fallback if NVIDIA GPU not available (for AMD GPU VRAM detection)
- /proc/meminfo: Required for RAM detection (Linux)
- sysctl: Fallback for RAM detection (macOS)
Framework Version
- Version: 2.0
- State enforcement: enabled (
.statefile +status.py)