Skip to content

Epic: Consolidate configuration into .waza.yaml #20

Description

@spboyer

Migrated from spboyer/waza#408

Summary

Expand .waza.yaml from 2 fields (engine, model) to a unified project configuration file covering execution defaults, cache, server, dev loop, token limits, grader defaults, and project paths.

Goal: Run waza init in any existing project, get a .waza.yaml, start running commands immediately with sensible defaults. No more typing --parallel --workers 8 --cache on every invocation.

Precedence

CLI flags > .waza.yaml > hard-coded Go const defaults

eval.yaml is untouched — each skill keeps its own.

Proposed Schema

7 sections, all optional:

  • paths — skills/, evals/, results/ (const defaults when omitted)
  • defaults — engine, model, judge_model, timeout, parallel, workers, verbose, session_log
  • cache — enabled, dir
  • server — port, results_dir
  • dev — model, target, max_iterations
  • tokens — warning_threshold, fallback_limit, limits (replaces .token-limits.json)
  • graders — program_timeout

Sub-Issues

Phase 1: Config struct + YAML parser

Phase 2: Wire commands to read config

Phase 3: Token limits migration

Phase 4: Paths + waza init

Phase 5: Schema + tests + docs

Backward Compatibility

  • Old 2-field .waza.yaml continues to work
  • .token-limits.json honored during transition
  • No behavior changes without user action

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions