# Project profile for the skills plugin. # # Drop a copy of this file at /.claude/dev-cycle-profile.yml # and edit. See ~/dev/skills/docs/profile-schema.md for the full schema # and per-key documentation. paths: spec_dir: docs/specs plan_dir: docs/plans # design_ledger: design/INDEX.md # optional # design_contracts: design/contracts # optional # design_models: design/models # optional code_roots: [src] # bench_dir: bench # optional naming: counter_dirs: [] policy: flat # stable_per_directory_4digit | date_prefix | flat slug_separator: "-" commands: build: "" # REQUIRED — e.g. "cargo build" or "npm run build" test: "" # REQUIRED — e.g. "cargo test" or "npm test" # lint: "" # optional regression: [] # list of shell commands run by audit; non-zero exit = regress vocabulary: cycle: cycle # what a top-level work unit is called subcycle: iteration # what a sub-unit is called ledger_entry: contract # what one design-ledger entry is called standing_reading: always: - CLAUDE.md - "git log -10 --format=full" by_role: # architect: [design/contracts] # debugger: ["git log -5 --format=full"] git: main_sacrosanct: true only_orchestrator_commits: true protected_branches: [main] issue_tracker: kind: none # gitea | github | linear | none close_marker: "closes #N" # url: "" # human-browsable issue list URL # list_cmd: "" # e.g. "tea issues ls --repo X/Y --state open" notifications: # command: "" # e.g. "~/.claude/notify.sh"; boss falls back to chat if empty pipeline: brainstorm: { gates: [planner] } planner: { gates: [implement] } implement: {} audit: { mandatory_at: cycle_close } debug: { trigger: bug, red_first: true } # boss: { user_invoked: true } # autonomous orchestrator mode, /boss # fieldtest: { boss_only: true, when: surface_touch } # docwriter: { boss_only: true, when: api_stable_across_n_cycles }