2443909362
---ci--- project: nova-platform milestone: v1.0 status: complete requirements: covered: [REQ-01,REQ-02,REQ-03,REQ-04,REQ-05,REQ-06,REQ-07,REQ-08,REQ-09,REQ-10,REQ-11,REQ-12,REQ-13,REQ-14,REQ-15,REQ-16,REQ-17,REQ-18,REQ-19,REQ-20,REQ-21,REQ-22,REQ-23,REQ-24,REQ-25,REQ-26,REQ-27,REQ-28,REQ-29,REQ-30,REQ-31,REQ-32,REQ-33,REQ-34,REQ-35,REQ-36,REQ-37,REQ-38] partial: [] ---/ci--- v1.0 milestone complete: simplified infrastructure-delivery platform derived from Nova (acdl). 6 phases (P0-P5 + P6 final). 38 REQ-IDs. 38 decisions (D-001..D-038). 76 tests pass. Engine boundary holds. Happy paths green (check-only + CI). 13 L1 + 2 L2 modules. 5 terraform roots. Shell reproducibility. Zero OOS files. Tags: v0.1.0 (P0) → v0.1.1..v0.1.5 (P1..P5) → v0.1.6 (P6 = milestone release on v0.1 patch line).
308 lines
6.6 KiB
JSON
308 lines
6.6 KiB
JSON
{
|
|
"active_project": "nova-platform",
|
|
"active_milestone": "v1.0",
|
|
"autonomy": {
|
|
"level": "supervised",
|
|
"escalation_hooks": [
|
|
"deploy",
|
|
"delete_data",
|
|
"merge_to_main",
|
|
"verification_failure",
|
|
"ship"
|
|
],
|
|
"clarify_budget": 10,
|
|
"decision_confidence_threshold": 0.75,
|
|
"max_revision_iterations": 2,
|
|
"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",
|
|
"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",
|
|
"NOVA_FORGE_TOKEN"
|
|
]
|
|
}
|
|
},
|
|
"git": {
|
|
"branching_strategy": "phase",
|
|
"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": "nova-platform",
|
|
"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": true,
|
|
"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": "",
|
|
"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": [
|
|
"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": [
|
|
"terraform"
|
|
],
|
|
"constraints": [
|
|
"schema-first",
|
|
"type-safe",
|
|
"migration-driven"
|
|
],
|
|
"territory": [
|
|
"**/terraform/**",
|
|
"**/modules/**",
|
|
"**/schemas/**",
|
|
"**/*.tf",
|
|
"**/*.tf.json",
|
|
"**/*.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "backend-engineer",
|
|
"domain": "backend",
|
|
"frameworks": [
|
|
"python",
|
|
"fastapi"
|
|
],
|
|
"constraints": [
|
|
"api-first",
|
|
"strict-typing",
|
|
"dependency-injection"
|
|
],
|
|
"territory": [
|
|
"**/core/**",
|
|
"**/scripts/**",
|
|
"**/adapters/**",
|
|
"**/contracts/**",
|
|
"**/tests/**",
|
|
"**/*.py"
|
|
]
|
|
},
|
|
{
|
|
"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": "Nova Platform has no frontend. Deactivated."
|
|
}
|
|
]
|
|
},
|
|
"logging": {
|
|
"level": "info",
|
|
"format": "json",
|
|
"file": ".ciagent/logs/ciagent.jsonl"
|
|
},
|
|
"telemetry": {
|
|
"enabled": true,
|
|
"persist": true
|
|
}
|
|
} |