{ "projects": [ { "slug": "acdl", "name": "Nova — The New Dawn of DevSecOps", "default": true } ], "active_project": "acdl", "active_projects": ["acdl"], "active_milestone": "v1.16", "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": "ACDL uses flat workflow (committed directly to main per established convention since v1.0). 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": { "gitea": "ACDL_GITEA_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 } }