YaOS / Platform / Developer Experience / Coding Harness / project.yaml
Project Setup
project.yaml
Canonical repository-level harness configuration.
Each onboarded repository should declare its harness contract in .harness/project.yaml. The central harness owns the schema; the repository owns its values.
Example
project:
name: catalog-iq
type: service
owner: ai-engineering
profiles:
- python
- api
- ai
- langgraph
- rag
commands:
setup: "uv sync"
test: "pytest -q"
lint: "ruff check ."
format_check: "ruff format --check ."
typecheck: "pyright"
eval: "python evals/run_evals.py"
architecture:
document: "docs/ARCHITECTURE.md"
decisions_dir: "docs/decisions"
exec_plans_dir: "docs/exec-plans"
risk:
pii: false
customer_data: true
payments: false
production_deploy: true
protected_paths:
- "migrations/**"
- "infra/**"
- ".github/workflows/**"
context:
max_always_loaded_tokens: 1200
progressive_loading: true
required_skills:
rag_changes:
- rag-eval
prompt_changes:
- write-evals
before_pr:
- pr-self-review
What does not belong here
Long coding standards, prompt recipes and framework documentation. YAML should declare facts and routing decisions, not become prose in disguise.