{"components":{"schemas":{"DependencyMatrix":{"properties":{"architectural_edges":{"items":{"type":"object"},"type":"array"},"commercial_edges":{"items":{"type":"object"},"type":"array"},"deprovisioning_rules":{"items":{"type":"object"},"type":"array"},"expansion_paths":{"items":{"type":"object"},"type":"array"},"products":{"items":{"type":"object"},"maxItems":22,"minItems":22,"type":"array"},"schema":{"const":"aivaon.section16.9.catalog_dependencies.v1","type":"string"},"section":{"const":"16.9","type":"string"}},"required":["schema","section","products","architectural_edges","commercial_edges"],"type":"object"},"DoctrinePrinciple":{"properties":{"enforcement_hook":{"type":"string"},"id":{"pattern":"^RP[0-9]+_","type":"string"},"name":{"type":"string"},"normative_statement":{"type":"string"},"ordinal":{"maximum":14,"minimum":1,"type":"integer"}},"required":["id","ordinal","name","normative_statement","enforcement_hook"],"type":"object"},"EvaluationResult":{"properties":{"all_satisfied":{"type":"boolean"},"evaluated_at":{"format":"date-time","type":"string"},"evaluator":{"type":"string"},"evidence":{"type":"object"},"per_criterion":{"additionalProperties":{"type":"boolean"},"type":"object"},"wave_id":{"type":"string"}},"required":["wave_id","all_satisfied","per_criterion","evidence","evaluated_at","evaluator"],"type":"object"},"HTTPError":{"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"},"Manifest":{"properties":{"last_updated":{"type":"string"},"principle_count":{"type":"integer"},"schema":{"type":"string"},"section":{"type":"string"},"version":{"type":"string"},"wave_count":{"type":"integer"},"well_known":{"type":"object"}},"required":["schema","section","version","last_updated","well_known","wave_count","principle_count"],"type":"object"},"PostureSummary":{"properties":{"as_of":{"format":"date-time","type":"string"},"counts":{"properties":{"active":{"type":"integer"},"blocked":{"type":"integer"},"completed":{"type":"integer"},"exiting":{"type":"integer"},"planned":{"type":"integer"},"total":{"const":12,"type":"integer"}},"required":["total","completed","active","exiting","blocked","planned"],"type":"object"},"headline":{"type":"string"},"headline_color":{"type":"string"},"last_updated":{"type":"string"},"section":{"const":"16.9","type":"string"},"version":{"type":"string"}},"required":["section","version","headline","counts","as_of"],"type":"object"},"RoadmapEnvelope":{"properties":{"doctrine_principles":{"items":{"$ref":"#/components/schemas/DoctrinePrinciple"},"maxItems":14,"minItems":14,"type":"array"},"governance":{"type":"object"},"last_updated":{"format":"date","type":"string"},"legacy_replacements":{"items":{"type":"object"},"type":"array"},"schema":{"const":"aivaon.section16.9.execution_roadmap.v1","type":"string"},"section":{"const":"16.9","type":"string"},"version":{"pattern":"^16\\.9\\.[0-9]+$","type":"string"},"waves":{"items":{"$ref":"#/components/schemas/WaveStatic"},"maxItems":12,"minItems":12,"type":"array"},"well_known_manifest":{"type":"object"}},"required":["schema","section","version","last_updated","doctrine_principles","waves","governance","legacy_replacements","well_known_manifest"],"type":"object"},"ShieldsBadge":{"properties":{"cacheSeconds":{"type":"integer"},"color":{"type":"string"},"label":{"type":"string"},"message":{"type":"string"},"schemaVersion":{"const":1,"type":"integer"}},"required":["schemaVersion","label","message","color"],"type":"object"},"TransitionIn":{"properties":{"evidence_refs":{"default":[],"items":{"type":"string"},"type":"array"},"rationale":{"minLength":10,"type":"string"},"to_state":{"enum":["planned","active","exiting","completed","extended","blocked"],"type":"string"}},"required":["to_state","rationale"],"type":"object"},"TransitionOut":{"properties":{"from":{"type":"string"},"to":{"type":"string"},"wave_id":{"type":"string"}},"required":["wave_id","from","to"],"type":"object"},"WaveDeliverable":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"verification_artifact":{"type":"string"}},"required":["id","name","verification_artifact"],"type":"object"},"WaveDetail":{"properties":{"deliverables":{"items":{"type":"object"},"type":"array"},"last_evaluation":{"nullable":true,"type":"object"},"static":{"$ref":"#/components/schemas/WaveStatic"},"status":{"$ref":"#/components/schemas/WaveStatus"}},"required":["static","status","deliverables"],"type":"object"},"WaveExitCriterion":{"properties":{"binary_check":{"type":"string"},"criterion":{"type":"string"},"id":{"type":"string"}},"required":["id","criterion","binary_check"],"type":"object"},"WaveListResponse":{"properties":{"as_of":{"format":"date-time","type":"string"},"waves":{"items":{"$ref":"#/components/schemas/WaveStatus"},"type":"array"}},"required":["as_of","waves"],"type":"object"},"WaveStatic":{"properties":{"commercial_outcome":{"type":"string"},"deliverables":{"items":{"$ref":"#/components/schemas/WaveDeliverable"},"type":"array"},"depends_on":{"items":{"type":"string"},"type":"array"},"exit_criteria":{"items":{"$ref":"#/components/schemas/WaveExitCriterion"},"type":"array"},"id":{"pattern":"^W(0[1-9]|1[0-2])_","type":"string"},"initial_state":{"enum":["planned","active","exiting","completed","extended","blocked"],"type":"string"},"name":{"type":"string"},"objective":{"type":"string"},"ordinal":{"maximum":12,"minimum":1,"type":"integer"},"owner":{"type":"string"},"section_doctrine_anchor":{"type":"string"}},"required":["id","ordinal","name","objective","owner","deliverables","exit_criteria","depends_on","commercial_outcome","section_doctrine_anchor"],"type":"object"},"WaveStatus":{"properties":{"blocked_on_dependencies":{"items":{"type":"string"},"type":"array"},"deliverables_completed":{"type":"integer"},"deliverables_total":{"type":"integer"},"exit_criteria_satisfied":{"type":"integer"},"exit_criteria_total":{"type":"integer"},"name":{"type":"string"},"ordinal":{"type":"integer"},"owner":{"type":"string"},"state":{"enum":["planned","active","exiting","completed","extended","blocked"],"type":"string"},"wave_id":{"type":"string"}},"required":["wave_id","ordinal","name","owner","state","deliverables_total","deliverables_completed","exit_criteria_total","exit_criteria_satisfied","blocked_on_dependencies"],"type":"object"},"WaveTransitionViolation":{"properties":{"message":{"type":"string"},"violation":{"properties":{"depends_on":{"items":{"type":"string"},"type":"array"},"from":{"type":"string"},"kind":{"enum":["invalid_target_state","illegal_state_transition","rp1_wave_sequencing","rp2_binary_exit_discipline"],"type":"string"},"last_evaluation":{"type":["object","null"]},"legal_targets_from_current_state":{"items":{"type":"string"},"type":"array"},"remediation":{"type":"string"},"target":{"type":"string"},"to":{"type":"string"},"unmet_predecessors":{"items":{"type":"string"},"type":"array"},"valid":{"items":{"type":"string"},"type":"array"},"wave_id":{"type":"string"}},"required":["kind"],"type":"object"}},"required":["message","violation"],"type":"object"}},"securitySchemes":{"BearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"description":"Public + operator HTTP surface for the §16.9 Twelve-Wave Execution Roadmap. Doctrine envelope, per-wave status, cross-product dependency matrix, well-known manifest, plus authenticated operator endpoints for binary-gate evaluation, wave transitions, and artifact hot-reload. The canonical artifact lives at backend/artifacts/aivaon-section16.9-execution-roadmap.json; mutations land via PR + the §16.9 CI gate. The frontend mirror at frontend/lib/section16-9/_artifact-mirror.json is byte-for-byte identical (drift gate: scripts/section16_9/check_frontend_mirror_drift.py).","title":"AIVAON Section 16.9 — Twelve-Wave Execution Roadmap","version":"16.9.0"},"openapi":"3.1.0","paths":{"/api/v1/aivaon/roadmap":{"get":{"description":"Returns the complete §16.9 doctrine artifact (14 principles, 12 waves with deliverables + exit criteria + dependencies, governance cadences, legacy_replacements ledger, well_known_manifest). Public, ISR-cacheable.","operationId":"get_roadmap_envelope","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoadmapEnvelope"}}},"description":"Doctrine envelope","headers":{"Cache-Control":{"description":"public, max-age=300, s-maxage=300, stale-while-revalidate=86400","schema":{"type":"string"}}}},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Artifact missing or invalid"}},"summary":"Get full doctrine envelope","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/admin/reload":{"post":{"description":"Forces the runtime to re-read the canonical artifact. Useful immediately after a roadmap PR merges and the artifact file changes on the operator instance. Authenticated operator surface.","operationId":"reload_artifact","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"example":"reloaded","type":"string"},"version":{"example":"16.9.8","type":"string"}},"required":["status","version"],"type":"object"}}},"description":"Reloaded"},"401":{"description":"Authentication required"}},"security":[{"BearerAuth":[]}],"summary":"Hot-reload the roadmap artifact from disk","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/badge.svg":{"get":{"description":"Returns a CORS-open SVG badge that prospects, partners, and the AIVAON README itself can `<img>`-embed without JavaScript. Cacheable for 5 minutes; rendered server-side with the lowest-ordinal active/exiting wave headlining the badge.","operationId":"roadmap_badge_svg","parameters":[{"in":"query","name":"style","schema":{"default":"dark","enum":["dark","light"],"type":"string"}}],"responses":{"200":{"content":{"image/svg+xml":{"schema":{"type":"string"}}},"description":"SVG badge","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}}}},"summary":"Embeddable SVG badge (live execution posture)","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/badge/posture.json":{"get":{"description":"Externally-disclosable posture only: counts by state + headline. No tenant data, no operator identifiers, no per-wave evaluation evidence.","operationId":"roadmap_badge_posture","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostureSummary"}}},"description":"Posture summary"}},"summary":"Anonymized posture summary (for embeds + analyst dashboards)","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/badge/shield.json":{"get":{"description":"Drop into a README via: `![AIVAON §16.9](https://img.shields.io/endpoint?url=https://api.aivaon.com/api/v1/aivaon/roadmap/badge/shield.json)`","operationId":"roadmap_badge_shield","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldsBadge"}}},"description":"Shields.io endpoint badge"}},"summary":"Shields.io endpoint-badge JSON","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/dependencies":{"get":{"description":"Returns the 22-product architectural + commercial dependency matrix with deprovisioning rules and expansion paths. Backed by backend/artifacts/aivaon-section16.9-catalog-dependencies.json.","operationId":"get_dependency_matrix","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DependencyMatrix"}}},"description":"Dependency matrix"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Artifact missing"}},"summary":"Get cross-product dependency matrix","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/manifest.json":{"get":{"operationId":"get_manifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manifest"}}},"description":"Manifest"}},"summary":"Well-known manifest summary","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/waves":{"get":{"description":"Returns the 12 waves with deliverable progress, exit-criteria satisfaction, and blocked_on_dependencies. Projected from aivaon_xrm_wave_states.","operationId":"list_waves","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaveListResponse"}}},"description":"Wave list"}},"summary":"List all waves with current state","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/waves/{wave_id}":{"get":{"operationId":"get_wave","parameters":[{"example":"W02_UNIFIED_SHELL_AND_NAVIGATION","in":"path","name":"wave_id","required":true,"schema":{"pattern":"^W(0[1-9]|1[0-2])_","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaveDetail"}}},"description":"Wave detail"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Unknown wave"}},"summary":"Get wave detail","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/waves/{wave_id}/evaluate-exit":{"post":{"description":"Runs each binary check for the named wave, persists the per-criterion outcome to aivaon_xrm_wave_exit_evaluations, returns the result. Authenticated operator surface.","operationId":"evaluate_wave_exit","parameters":[{"in":"path","name":"wave_id","required":true,"schema":{"pattern":"^W(0[1-9]|1[0-2])_","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationResult"}}},"description":"Evaluation result"},"401":{"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Unknown wave"}},"security":[{"BearerAuth":[]}],"summary":"Evaluate wave exit criteria (binary gates)","tags":["AIVAON §16.9 Roadmap"]}},"/api/v1/aivaon/roadmap/waves/{wave_id}/transition":{"post":{"description":"Records a wave state transition into aivaon_xrm_wave_transitions with actor identity, rationale, and evidence refs. Authenticated operator surface.","operationId":"transition_wave","parameters":[{"in":"path","name":"wave_id","required":true,"schema":{"pattern":"^W(0[1-9]|1[0-2])_","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionIn"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionOut"}}},"description":"Transition recorded"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Invalid target state"},"401":{"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Unknown wave"},"422":{"content":{"application/json":{"schema":{"properties":{"detail":{"$ref":"#/components/schemas/WaveTransitionViolation"}},"required":["detail"],"type":"object"}}},"description":"RP1/RP2 doctrine violation OR illegal state transition. The `violation.kind` field discriminates between the four enforcement reasons; the operator console renders the unmet preconditions inline."}},"security":[{"BearerAuth":[]}],"summary":"Transition a wave to a new state","tags":["AIVAON §16.9 Roadmap"]}}},"servers":[{"description":"Production","url":"https://api.aivaon.com"},{"description":"Staging","url":"https://api.staging.aivaon.com"}],"tags":[{"description":"Twelve-Wave Execution Roadmap surfaces","name":"AIVAON §16.9 Roadmap"}]}