---
id: TASK-21.1
title: 'Update schema + parsing to use [project].args only'
status: Done
assignee:
  - codex
created_date: '2026-02-27 18:15'
updated_date: '2026-02-27 18:30'
labels: []
dependencies: []
references:
  - src/config/schema.rs
  - src/config/load.rs
parent_task_id: TASK-21
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Move global phase args into `[project].args` in schema. Remove top-level `[args]` support and add validation to reject `[args]` with a clear error message during config load/parse.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Schema defines `project.args` with phase args; top-level `args` removed
- [x] #2 Config load rejects configs containing top-level `[args]` with a clear error
- [x] #3 Any parsing/overlay logic updated to use `project.args`
<!-- AC:END -->

## Implementation Plan

<!-- SECTION:PLAN:BEGIN -->
- Update config schema to move global phase args into `ProjectCfg` (add `args: PhaseArgsCfg`).
- Remove top-level `args` from `FileConfig`.
- Add validation during config load to reject legacy top-level `[args]` with a clear error.
- Update overlay logic to merge `project.args`.
<!-- SECTION:PLAN:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
Moved global args into `ProjectCfg.args`, removed top-level `FileConfig.args`, updated schema tests/examples to use `[project.args]`, and added load-time rejection for legacy `[args]`. Updated core/config and benches initializers to compile with new schema. `just check` passes.
<!-- SECTION:NOTES:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Moved global phase args to `ProjectCfg.args` (removing top-level `[args]`), updated schema examples/tests, and added load-time rejection for legacy `[args]` with a clear error. Updated core/config and benches initializers for the new schema. Tests: `just check`.
<!-- SECTION:FINAL_SUMMARY:END -->
