Skip to content

project.yaml Pydantic schema and fail-fast loader #4

Description

@Ryan-Atkinson87

Spec: §16 (full project.yaml schema), §8 (project configuration), §16.1 (design rules).

Load and validate the single declarative per-project config at startup. A malformed config must fail fast before any wave begins (§16: "Loaded and validated (Pydantic) at startup").

Acceptance criteria

  • Pydantic models cover every §16.2 top-level key: project, integrations, branches, waves, repos, provider, usage, egress, notifications, limits, secrets.
  • Field detail per §16.3, with defaults: integration branch dev; agent pattern code-runner/<wave-slug>; sync merge; waves milestone-name; provider claude; threshold_percent 80; peak-hour throttle on; Telegram on / email off; test_fix_attempts 3 / review_cycles 2.
  • Required keys enforced (project, integrations, repos, secrets); missing → clear validation error.
  • secrets accepts env-var names only (§16.3, §10); the loader never resolves values itself (resolution is Secrets-by-reference resolution and .env.example #5).
  • Loads the §16.4 minimal example and §16.5 Trive example successfully (committed as fixtures).
  • Invalid configs fail fast with actionable messages; tests cover valid and malformed cases.

Notes

execution-profile.yaml (§17.5) is a separate generated file planned with the instruction-rendering work in Phase 3 — not part of this issue.

Dependencies

Depends on: #1

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions