# Sprint Contract Template
# Generated by the Planner skill in the ProductTeam pipeline.
# Save to: .claude/sprints/sprint-NNN.yaml
#
# The sprint contract is the single source of truth for what gets built
# (by the Builder) and how it gets judged (by the Evaluator).

sprint:                    # Sequential sprint number (integer)
title: ""                  # Descriptive title for this sprint
source: ""                 # PRD filename or feature request summary
created: ""                # Date in YYYY-MM-DD format
scope:                     # small | medium | large
                           #   small:  1-3 files, < 200 lines
                           #   medium: 4-10 files, 200-800 lines
                           #   large:  10+ files, 800+ lines

dependencies:              # What must exist before this sprint starts
  # - "package-name >= 1.0"
  # - "src/config.py must already exist"

deliverables:
  # Each deliverable is a file (or set of files) with a clear purpose.
  # Every acceptance criterion must be testable with a yes/no answer.
  #
  # - file: "path/to/file.py"            # Exact path relative to repo root
  #   description: "What this file does"  # One sentence
  #   action: create                      # create | modify
  #   acceptance:
  #     - "function_name() returns expected type when given valid input"
  #     - "CLI exits with code 1 when file not found"
  #     - "Minimum N test cases covering all branches"

constraints:               # Architectural constraints and patterns to follow
  # - "Use existing framework/library conventions"
  # - "Follow the pattern established in src/existing_module.py"
  # - "All data classes must use Pydantic v2 BaseModel"

notes: |
  # Any additional context the Builder needs that doesn't fit above.
  # Architectural decisions, rationale for choices, warnings about gotchas.
