f2a12f9fed
v0.4 (Operator Tier — Cohort Dashboard + Auth + Postgres) milestone complete. Phases: ✓ P0 pre-execution (planning) → v0.1.6 ✓ P1 operator foundation (Postgres+auth+VC migration) → v0.1.7 ✓ P2 cohort dashboard + aggregation → v0.1.8 ✓ P3 final review + ship → v0.1.9 (= v0.4 milestone release) Requirements covered (8/8): REQ-MT-01 (Postgres store), REQ-MT-02 (aggregation pipeline), REQ-AUTH-01 (operator auth), REQ-DASH-01 (cohort dashboard), REQ-NFR-AUTH-01 (auth NFRs), REQ-NFR-MT-01 (Postgres-in-LXC), REQ-NFR-DASH-01 (k-anonymity ≥10), REQ-NFR-DASH-02 (freshness ≤24h) Grill MUSTs honored (6/6): G-008, G-011, G-027, G-031, G-038, G-041 Tests: 317 pytest pass, 36 skip (Postgres-requiring), 0 fail; 17/17 vitest pass Review: APPROVE_WITH_NOTES (6/6 personas, 0 P0, 8 P1+ carry-forward) Audit: HEALTHY (reconstruction PASS, 8/8 REQ, 6/6 grill) ---ci--- project: praxis phase: 3 milestone: v0.4 status: complete phase_role: final milestone_complete: true milestone_merged_to_main: true tag: v0.1.9 requirements: covered: [REQ-MT-01, REQ-MT-02, REQ-AUTH-01, REQ-DASH-01, REQ-NFR-AUTH-01, REQ-NFR-MT-01, REQ-NFR-DASH-01, REQ-NFR-DASH-02] partial: [] ---/ci---
114 lines
3.0 KiB
JSON
114 lines
3.0 KiB
JSON
{
|
|
"projects": [
|
|
{
|
|
"slug": "praxis",
|
|
"name": "Praxis",
|
|
"milestone": "v0.4",
|
|
"status": "active"
|
|
}
|
|
],
|
|
"active_project": "praxis",
|
|
"active_projects": ["praxis"],
|
|
"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
|
|
},
|
|
"git": {
|
|
"branching_strategy": "phase",
|
|
"auto_commit": true,
|
|
"auto_push": false
|
|
},
|
|
"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": "backend-engineer",
|
|
"domain": "backend",
|
|
"frameworks": [],
|
|
"constraints": ["api-first", "type-safe", "latency-budget-aware"],
|
|
"territory": ["**/server/**", "**/api/**", "**/services/**"]
|
|
},
|
|
{
|
|
"name": "frontend-engineer",
|
|
"domain": "frontend",
|
|
"frameworks": [],
|
|
"constraints": ["component-first", "voice-first-ui"],
|
|
"territory": ["**/client/**", "**/ui/**", "**/components/**"]
|
|
},
|
|
{
|
|
"name": "data-engineer",
|
|
"domain": "data",
|
|
"frameworks": [],
|
|
"constraints": ["schema-first", "type-safe", "migration-driven"],
|
|
"territory": ["**/migrations/**", "**/schema/**", "**/models/**", "**/db/**"]
|
|
}
|
|
]
|
|
},
|
|
"release": {
|
|
"forge": "gitea",
|
|
"base_url": "https://git.cloudinit.dev",
|
|
"owner": "coreci",
|
|
"repo": "praxis"
|
|
},
|
|
"secrets": {
|
|
"scopes": [
|
|
{
|
|
"name": "release",
|
|
"env_vars": ["GITEA_TOKEN"]
|
|
},
|
|
{
|
|
"name": "proxmox",
|
|
"env_vars": ["PROXMOX_API_URL", "PROXMOX_API_TOKEN", "PROXMOX_NODE", "PROXMOX_STORAGE", "PROXMOX_TEMPLATE_VOLID", "PROXMOX_TLS_SKIP_VERIFY"]
|
|
},
|
|
{
|
|
"name": "voice",
|
|
"env_vars": ["DEEPGRAM_API_KEY", "CARTESIA_API_KEY", "OLLAMA_API_KEY"]
|
|
},
|
|
{
|
|
"name": "operator",
|
|
"env_vars": ["PRAXIS_PG_PASSWORD", "PRAXIS_COOKIE_SECRET", "PRAXIS_BOOTSTRAP_OPERATOR_USER", "PRAXIS_BOOTSTRAP_OPERATOR_PASS", "PRAXIS_VC_ISSUER_KEY"]
|
|
}
|
|
]
|
|
},
|
|
"ship": {
|
|
"per_phase": true,
|
|
"allow_skip": false,
|
|
"max_release_retries": 3
|
|
}
|
|
} |