{
  "projects": [
    {
      "slug": "acdl",
      "name": "Nova — The New Dawn of DevSecOps",
      "default": true
    },
    {
      "slug": "nova-blockchain-exchange",
      "name": "Nova Pilot Consumer — Blockchain Stock Exchange",
      "default": false
    }
  ],
  "active_project": "acdl",
  "active_projects": ["acdl", "nova-blockchain-exchange"],
  "active_milestone": "v1.27",
  "autonomy": {
    "level": "full",
    "escalation_hooks": ["deploy", "delete_data", "merge_to_main"],
    "clarify_budget": 10,
    "decision_confidence_threshold": 0.6,
    "max_revision_iterations": 3,
    "max_verification_retries": 2,
    "escalation_timeout_ms": 300000
  },
  "model_profile": "quality",
  "parallelization": {
    "enabled": true,
    "max_concurrent_agents": 5,
    "min_plans_for_parallel": 2,
    "max_concurrent_projects": 3
  },
  "verification": {
    "automated_only": true,
    "escalate_visual": true,
    "escalate_external_integration": true,
    "test_first": false
  },
  "security": {
    "auto_accept_low_severity": true,
    "auto_mitigate_medium_severity": true,
    "escalate_high_severity": true,
    "bash_allowlist": {
      "allowed_commands": [
        "git", "ls", "cat", "head", "tail", "wc",
        "echo", "mkdir", "cp", "mv", "rm", "touch",
        "pwd", "which", "env", "printenv",
        "python3", "pytest", "pip",
        "terraform", "checkov",
        "curl", "wget",
        "docker", "docker-compose"
      ],
      "max_output_bytes": 1048576,
      "timeout_ms": 30000,
      "blocked_env_vars": [
        "HOME", "PATH", "USER", "SHELL",
        "AWS_*", "*_TOKEN", "*_KEY", "*_SECRET",
        "*_PASSWORD", "*_CREDENTIAL",
        "GITHUB_TOKEN", "GITHUB_API_KEY",
        "OPENAI_API_KEY", "ANTHROPIC_API_KEY",
        "OLLAMA_CLOUD_API_KEY"
      ]
    }
  },
  "git": {
    "branching_strategy": "flat",
    "_branching_strategy_note": "Nova uses flat workflow (committed directly to main per established convention since v1.0; renamed ACDL→Nova in v1.15). The 'phase' strategy is advisory; CIAgent uses milestone/phase branches for v1.14 but the project convention is flat.",
    "auto_commit": true,
    "auto_push": true
  },
  "secrets": {
    "sources": [".env", ".env.secrets", ".env.*"],
    "disallow": ["shell_env", "netrc", "keychain", "rc_files", "global_config"],
    "scopes": {
      "forge": "NOVA_FORGE_TOKEN",
      "gitea": "NOVA_FORGE_TOKEN",
      "github": "GITHUB_TOKEN",
      "gitlab": "GITLAB_TOKEN",
      "openai": "OPENAI_API_KEY",
      "anthropic": "ANTHROPIC_API_KEY",
      "ollama_cloud": "OLLAMA_CLOUD_API_KEY"
    }
  },
  "release": {
    "forge": "gitea",
    "gitea": {
      "base_url": "https://git.cloudinit.dev",
      "owner": "continuous-intelligence",
      "repo": "acdl",
      "token_scope": "gitea"
    },
    "github": {
      "owner": "",
      "repo": "",
      "token_scope": "github"
    },
    "gitlab": {
      "base_url": "",
      "owner": "",
      "repo": "",
      "token_scope": "gitlab"
    }
  },
  "ship": {
    "per_phase": true,
    "require_release": true,
    "allow_skip": false,
    "confirm_before_ship": false,
    "max_release_retries": 3,
    "release_blocking": false
  },
  "backend": {
    "provider": "auto",
    "agent_backends": {
      "opencode": { "enabled": true },
      "codex": { "enabled": true },
      "claude-code": { "enabled": true },
      "hermes": { "enabled": true }
    },
    "llm_backends": {
      "openai": {
        "base_url": "https://api.openai.com/v1",
        "api_key_env": "OPENAI_API_KEY",
        "model": "gpt-4o",
        "model_profile": "quality",
        "timeout_ms": 60000
      },
      "ollama-local": {
        "base_url": "http://localhost:11434",
        "model_profile": "balanced"
      },
      "ollama-cloud": {
        "base_url": "",
        "_base_url_note": "Intentionally unset. The runtime uses the glm-5.2 model via the opencode backend (not the llm_backends config). This entry is for reference only.",
        "api_key_env": "OLLAMA_CLOUD_API_KEY",
        "model_profile": "quality",
        "timeout_ms": 60000
      },
      "anthropic": {
        "base_url": "https://api.anthropic.com",
        "api_key_env": "ANTHROPIC_API_KEY",
        "model": "claude-sonnet-4-20250514",
        "api_version": "2023-06-01",
        "model_profile": "quality",
        "timeout_ms": 60000
      }
    }
  },
  "ideation": {
    "enabled": true,
    "categories": ["security", "quality", "architecture", "coverage", "improvement"],
    "confidence_threshold": 0.6,
    "max_ideas": 20,
    "external_signals": {
      "npm_audit": true,
      "osv_advisories": true,
      "dependency_staleness": true
    },
    "cross_project": {
      "enabled": false,
      "similarity_weight": 0.5
    },
    "chaos": {
      "enabled": true,
      "scenarios": ["backend_unavailable", "requirement_change", "test_coverage_drop"]
    }
  },
  "sessions": {
    "max_concurrent_sessions": 3,
    "session_timeout_ms": 3600000,
    "session_isolation": "branch"
  },
  "personas": {
    "enabled": true,
    "territory_enforcement": "warn",
    "personas": [
      {
        "name": "lead-developer",
        "domain": "coordination",
        "frameworks": [],
        "constraints": ["pragmatic", "battle-tested defaults"],
        "territory": []
      },
      {
        "name": "data-engineer",
        "domain": "data",
        "frameworks": ["drizzle", "postgresql"],
        "constraints": ["schema-first", "type-safe ORM", "migration-driven"],
        "territory": ["**/migrations/**", "**/schema/**", "**/models/**", "**/db/**", "prisma/schema.prisma", "drizzle/**", "**/*.sql"]
      },
      {
        "name": "backend-engineer",
        "domain": "backend",
        "frameworks": ["fastify", "hono"],
        "constraints": ["api-first", "strict-typing", "dependency-injection"],
        "territory": ["**/api/**", "**/routes/**", "**/services/**", "**/middleware/**", "**/controllers/**", "**/auth/**"]
      },
      {
        "name": "frontend-engineer",
        "domain": "frontend",
        "active": false,
        "frameworks": ["react", "next.js"],
        "constraints": ["component-first", "server-components", "minimal-client-js"],
        "territory": ["**/components/**", "**/pages/**", "**/hooks/**", "**/styles/**", "**/*.tsx", "**/*.css", "**/*.vue"],
        "reason": "ACDL has no frontend (no package.json); decks are markdown (lead-developer territory). Deactivated per PERSONAS.md:80."
      }
    ]
  },
  "logging": {
    "level": "info",
    "format": "json",
    "file": ".ciagent/logs/ciagent.jsonl"
  },
  "telemetry": {
    "enabled": true,
    "persist": true
  },
  "strategic_direction_file": ".ciagent/NORTH_STAR.md",
  "policy": {
    "engine": "kyverno-json",
    "policy_root": "adapters/kyverno-json/policies"
  }
}
