sdd-layer 0.24.3

Spec-Driven Development CLI and agent harness
project:
  name: python-api-project
  type: backend
  lifecycle: brownfield
  primary_language: python
  stack: [python, fastapi, api]

systems:
  work_tracker: jira
  docs: confluence
  repo: github
  ci: github-actions
  chat: slack

paths:
  source: [app, src]
  tests: [test, tests]
  docs: [docs, adr]
  migrations: [migrations, alembic/versions]

commands:
  install: uv sync
  lint: ruff check .
  typecheck: mypy .
  test: pytest
  build: ""

quality:
  require_tests: true
  require_ci: true
  require_review_evidence: true
  require_memory: true
  min_acceptance_criteria: 1

risk_policy:
  require_refinement_for: [migration, external_dependency, data_sensitive, auth, payment]
  require_agent_team_for: [security_sensitive, data_contract, performance_sensitive, brownfield_unknowns]
  require_deploy_checkpoint_for: [production, migration, infra]

adapters:
  canonical_artifacts:
    idea: jira
    prd: confluence
    techspec: confluence
    tasks: jira
    refinement: confluence
    execution: github
    review: github
    qa: confluence
    memory: confluence
  traceability_field: Rastreabilidade

artifact_store:
  enabled: true
  mode: fallback
  base_path: docs
  directory_pattern: "{orchestration_slug}"
  save_when: approved
  index_file: traceability-map.yaml
  files:
    project-discovery: "00-project-discovery.md"
    risk: "00-risk-classification.md"
    idea: "01-idea.md"
    prd: "02-prd.md"
    techspec: "03-techspec.md"
    tasks: "04-tasks.md"
    refinement: "05-refinement.md"
    execution: "06-execution.md"
    review: "07-review.md"
    qa: "08-qa.md"
    memory: "09-memory.md"

providers:
  default: codex
  model: gpt-5.5
  effort: xhigh
  offline: true
  registry:
    codex:
      kind: openai-compatible
      auth_env: OPENAI_API_KEY
      auth_methods:
        - id: codex-cli
          label: Codex CLI
          kind: cli
          command: codex
          check_command: codex login status
          check_success_text: Logged in
          login_command: codex login
        - id: openai-api
          label: OpenAI API
          kind: env
          env: OPENAI_API_KEY
      model: gpt-5.5
      models:
        - id: gpt-5.4
          label: Codex / GPT-5.4
        - id: gpt-5.5
          label: Codex / GPT-5.5
      effort: xhigh
      efforts: [medium, high, xhigh]
      stage_models:
        idea: gpt-5.4
        prd: gpt-5.4
        techspec: gpt-5.5
        tasks: gpt-5.4
        refinement: gpt-5.4
        execution: gpt-5.5
        review: gpt-5.5
        memory: gpt-5.4
      stage_efforts:
        idea: medium
        prd: high
        techspec: xhigh
        tasks: high
        refinement: high
        execution: high
        review: xhigh
        memory: medium
      capabilities: [chat, tools, code]
      timeouts:
        request_ms: 30000
      retries:
        max_attempts: 1
      token_budget: 12000
      enabled: true
    claude:
      kind: anthropic
      auth_env: ANTHROPIC_API_KEY
      auth_methods:
        - id: claude-code
          label: Claude Code
          kind: cli
          command: claude
          check_command: claude auth status
          check_success_text: "\"loggedIn\": true"
          login_command: claude auth login
        - id: anthropic-api
          label: Anthropic API
          kind: env
          env: ANTHROPIC_API_KEY
      model: claude-sonnet-4-6
      models:
        - id: claude-haiku-4-5
          label: Claude Haiku 4.5
        - id: claude-sonnet-4-6
          label: Claude Sonnet 4.6
        - id: claude-opus-4-8
          label: Claude Opus 4.8
      effort: xhigh
      efforts: [medium, high, xhigh]
      stage_models:
        idea: claude-sonnet-4-6
        prd: claude-sonnet-4-6
        techspec: claude-opus-4-8
        tasks: claude-sonnet-4-6
        refinement: claude-sonnet-4-6
        execution: claude-sonnet-4-6
        review: claude-opus-4-8
        memory: claude-sonnet-4-6
      stage_efforts:
        idea: medium
        prd: high
        techspec: xhigh
        tasks: high
        refinement: high
        execution: high
        review: xhigh
        memory: medium
      capabilities: [chat, tools]
      enabled: true
    antigravity:
      kind: local-cli
      auth_env: GEMINI_API_KEY
      auth_methods:
        - id: antigravity-cli
          label: Antigravity CLI
          kind: cli
          command: agy
          check_command: agy models
          login_command: agy
        - id: google-ai-api
          label: Google AI API
          kind: env
          env: GEMINI_API_KEY
      model: gemini-3.1-pro
      models:
        - id: gemini-3.5-flash
          label: Gemini 3.5 Flash
        - id: gemini-3.1-pro
          label: Gemini 3.1 Pro
        - id: claude-opus-4.6
          label: Claude Opus 4.6 via Antigravity
      effort: high
      efforts: [medium, high, xhigh]
      stage_models:
        idea: gemini-3.5-flash
        prd: gemini-3.1-pro
        techspec: gemini-3.1-pro
        tasks: gemini-3.1-pro
        refinement: gemini-3.1-pro
        execution: gemini-3.1-pro
        review: gemini-3.1-pro
        memory: gemini-3.5-flash
      stage_efforts:
        idea: medium
        prd: high
        techspec: xhigh
        tasks: high
        refinement: high
        execution: high
        review: xhigh
        memory: medium
      capabilities: [chat]
      enabled: true
    opencode:
      kind: local-cli
      auth_env:
      auth_methods:
        - id: opencode-cli
          label: opencode CLI
          kind: cli
          command: opencode
          check_command: opencode providers list
          check_success_regex: '\b[1-9][0-9]* credentials?\b'
          login_command: opencode providers login
        - id: opencode-provider
          label: opencode Go/Zen credential
          kind: cli
          command: opencode
          check_command: opencode providers list
          check_success_regex: '\b[1-9][0-9]* credentials?\b'
          login_command: opencode providers login
      model: opencode-go/deepseek-v4-pro
      models:
        - id: opencode/deepseek-v4-flash
          label: Zen / DeepSeek v4 Flash
        - id: opencode/kimi-k2.7
          label: Zen / Kimi K2.7
        - id: opencode/minimax-m3-free
          label: Zen / MiniMax M3
        - id: opencode/mimo-v2.5-free
          label: Zen / MiMo v2.5
        - id: opencode/glm-5.1
          label: Zen / GLM 5.1
        - id: opencode-go/deepseek-v4-flash
          label: Go / DeepSeek v4 Flash
        - id: opencode-go/deepseek-v4-pro
          label: Go / DeepSeek v4 Pro
        - id: opencode-go/kimi-k2.7
          label: Go / Kimi K2.7
        - id: opencode-go/minimax-m3
          label: Go / MiniMax M3
        - id: opencode-go/mimo-v2.5
          label: Go / MiMo v2.5
        - id: opencode-go/glm-5.1
          label: Go / GLM 5.1
        - id: opencode-go/qwen3.7-plus
          label: Go / Qwen 3.7 Plus
        - id: opencode-go/qwen3.7-max
          label: Go / Qwen 3.7 Max
      effort: xhigh
      efforts: [medium, high, xhigh]
      stage_models:
        idea: opencode-go/deepseek-v4-flash
        prd: opencode-go/deepseek-v4-pro
        techspec: opencode-go/kimi-k2.7
        tasks: opencode-go/qwen3.7-plus
        refinement: opencode-go/qwen3.7-plus
        execution: opencode-go/kimi-k2.7
        review: opencode-go/glm-5.1
        memory: opencode-go/minimax-m3
      stage_efforts:
        idea: medium
        prd: high
        techspec: xhigh
        tasks: high
        refinement: high
        execution: high
        review: xhigh
        memory: medium
      capabilities: [chat, code]
      enabled: true
    cursor:
      kind: local-cli
      auth_env:
      auth_methods:
        - id: cursor-cli
          label: Cursor CLI
          kind: cli
          command: cursor
          check_command: cursor agent status
          check_success_text: Logged in
          login_command: cursor agent login
      model: composer-2.5
      models:
        - id: composer-2.5-fast
          label: Composer 2.5 Fast
        - id: composer-2.5
          label: Composer 2.5
        - id: sonnet-4.6
          label: Sonnet 4.6
        - id: haiku
          label: Haiku
      effort: high
      efforts: [medium, high, xhigh]
      stage_models:
        idea: composer-2.5-fast
        prd: composer-2.5
        techspec: sonnet-4.6
        tasks: composer-2.5
        refinement: composer-2.5
        execution: composer-2.5
        review: sonnet-4.6
        memory: haiku
      stage_efforts:
        idea: medium
        prd: high
        techspec: xhigh
        tasks: high
        refinement: high
        execution: high
        review: xhigh
        memory: medium
      capabilities: [chat, tools, code]
      enabled: true
runtime:
  node_effect_bridge:
    enabled: false
    command: pnpm effect-orchestration

memory:
  learning_enabled: true
  index_path: .sdd/memory/learnings.jsonl
  redact_secrets: true

intelligence:
  enabled: true
  index_dir: .sdd/intelligence
  context_pack_dir: .sdd/intelligence/context-packs
  max_context_chars: 24000
  redact_secrets: true
  context_materialization:
    enabled: true
    mode: proposal
    targets: [agents, claude, cursor, antigravity]
    local_agents: false
    max_boundaries: 4
    excludes: [.agents, .codex, .claude, .cursor, .devin, .kiro, .opencode, .trae, .git, .sdd, .codegraph, .cache, target, node_modules, dist, build, .next, coverage, tmp, temp, vendor]
  code_intelligence:
    enabled: true
    preferred: auto
    providers:
      codegraph:
        command: codegraph
        index_marker: .codegraph/
      lexa:
        command: lexa
        index_marker: .lexa/graph.lexa

optimization:
  enabled: true
  codegraph:
    mode: adaptive
    command: codegraph
    index_marker: .codegraph/
    auto_index: true
  rtk:
    enabled: auto
    command: rtk
  caveman:
    enabled: auto
    command: caveman
    apply_to: [trace, handoff, memory-derived]
  ignored_paths:
    - .git
    - .codegraph
    - .sdd
    - .sdd-execution
    - .sdd-parallel
    - target
    - node_modules
    - dist
    - build
    - .next
    - .cache
    - coverage
    - tmp
    - temp
    - vendor