{
  "schema_version": "legipro.api_partner_contract_addendum.v1",
  "generated_utc": "2026-06-28T01:20:00Z",
  "status": "bounded_active",
  "not_sla": true,
  "public_openapi_route_status": {
    "/v0/openapi": "not_publicly_reachable_on_legipro_fr_currently_404",
    "/api/v0/openapi": "static_site_shell_html_currently_not_json",
    "/openapi.json": "static_site_shell_html_currently_not_json",
    "live_openapi_route_active": false,
    "static_openapi_asset": "site/legipro-fr/assets/legipro-openapi-2026-06-27.json",
    "static_openapi_roadmap_task_id": "SAAS-0033",
    "static_openapi_status": "static_snapshot_for_reviewer_codegen_not_live_route",
    "static_openapi_url": "https://legipro.fr/assets/legipro-openapi-2026-06-27.json",
    "review_contract_artifact": "site/legipro-fr/assets/legipro-api-contract-2026-06-27.json"
  },
  "sdk_roadmap": {
    "status": "typescript_python_beta_repo_only_pre_ga",
    "roadmap_task_id": "SAAS-0032",
    "next_delivery_tasks": [
      "SAAS-0035",
      "SAAS-0036"
    ],
    "target_order": [
      "typescript_node",
      "python"
    ],
    "delivery_sequence": [
      {
        "task_id": "SAAS-0032",
        "stage": "plan_complete",
        "status": "done"
      },
      {
        "task_id": "SAAS-0035",
        "stage": "typescript_node_beta",
        "status": "done"
      },
      {
        "task_id": "SAAS-0036",
        "stage": "python_beta",
        "status": "done"
      }
    ],
    "generation_source": [
      "site/legipro-fr/assets/legipro-openapi-2026-06-27.json",
      "site/legipro-fr/assets/legipro-api-contract-2026-06-27.json",
      "graphql_contract_examples",
      "mcp_tool_contracts",
      "review_runtime_preview_schema",
      "export_bundle_preview_schema",
      "degraded_mode_behavior_schema"
    ],
    "must_not_create_second_business_logic_layer": true,
    "public_packages_active": false,
    "distribution_channel": "repo_only_server_side_beta",
    "typescript_node_beta_repo_path": "sdk/legipro-typescript-beta",
    "typescript_node_beta_task_id": "SAAS-0035",
    "typescript_node_beta_version": "0.1.0-beta.1",
    "python_beta_repo_path": "sdk/legipro-python-beta",
    "python_beta_task_id": "SAAS-0036",
    "python_beta_version": "0.1.0b1",
    "planned_example_flows": [
      "search",
      "retrieve",
      "review_preview",
      "export_bundle",
      "mcp_tool_call"
    ],
    "security_notes": [
      "server_side_usage_recommended",
      "do_not_embed_bearer_tokens_in_browser_or_mobile_clients",
      "tenant_workspace_cost_unit_headers_required",
      "product_tokens_must_not_call_rotor_control_plane_routes"
    ],
    "plan_doc": "docs/api/partner-sdk-plan-2026-06-27.md",
    "example_root": "examples/sdk-planned/",
    "example_files": [
      "examples/sdk-planned/typescript-node/server-side.ts",
      "examples/sdk-planned/python/server_side.py",
      "examples/sdk-planned/contract-tests.md"
    ],
    "contract_test_requirements": [
      "static_contract_json_parses",
      "rest_search_retrieve_smoke",
      "graphql_query_introspection_smoke",
      "mcp_tools_list_and_call_smoke",
      "review_runtime_preview_schema_validation",
      "export_bundle_schema_validation",
      "degraded_mode_schema_validation",
      "no_browser_mobile_bearer_token_examples",
      "no_rotor_or_corpus_promotion_helpers"
    ]
  },
  "partner_quickstart": {
    "status": "published_server_side_quickstart",
    "roadmap_task_id": "SAAS-0034",
    "public_asset": "https://legipro.fr/assets/legipro-partner-quickstart-2026-06-27.md",
    "local_doc": "docs/api/partner-quickstart-2026-06-27.md",
    "covered_flows": [
      "search_health",
      "v1_search",
      "v1_retrieve",
      "graphql_query",
      "mcp_tools_call",
      "no_credential_einvoicing_vat_proof_fixture"
    ],
    "proof_fixture": {
      "roadmap_task_id": "SAAS-0057",
      "status": "dry_run_fixture_public_test_data_only",
      "public_asset": "https://legipro.fr/assets/legipro-einvoicing-vat-proof-fixture-2026-06-29.json",
      "local_fixture": "data/fixtures/partner_integrations/einvoicing_vat_no_credential_proof_2026-06-29.json",
      "local_builder": "scripts/build_legipro_einvoicing_partner_proof_fixture.py",
      "requires_partner_credentials": false,
      "calls_live_partner_api": false,
      "output_includes": [
        "answerability_status",
        "cited_source_refs",
        "applicability_date_notes",
        "missing_facts",
        "risk_flags",
        "draft_dossier_export_id",
        "audit_id",
        "partner_handoff_payload"
      ]
    },
    "required_headers": [
      "Authorization",
      "X-LegiPro-Tenant",
      "X-LegiPro-Workspace",
      "X-LegiPro-Cost-Units"
    ],
    "security_notes": [
      "server_side_bearer_token_usage_only",
      "do_not_embed_bearer_tokens_in_browser_or_mobile_clients",
      "product_tokens_must_not_call_rotor_control_plane_routes",
      "worker_tokens_are_separate"
    ],
    "boundaries": {
      "scenario_ready": false,
      "answer_ready": false,
      "promotion_allowed": false,
      "human_review_complete": false,
      "client_reliance": false,
      "semantic_search_active": false,
      "professional_certification": false
    }
  },
  "smoke_receipt": "data/ops/legipro_api_interfaces_smoke_2026-06-27-saas-0009.json",
  "smoke_overall": {
    "passed": true,
    "passed_count": 9,
    "total_count": 9
  },
  "search_engine": {
    "engine": "meilisearch",
    "status": "active",
    "indexed_document_count": 59660,
    "loaded_document_count": 59660,
    "semantic_search": "planned"
  },
  "boundaries": {
    "scenario_ready": false,
    "answer_ready": false,
    "promotion_allowed": false,
    "human_review_complete": false,
    "client_reliance": false,
    "semantic_search_active": false,
    "professional_certification": false
  },
  "routes": [
    {
      "method": "GET",
      "path": "/v0/health",
      "surface": "rest",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer"
    },
    {
      "method": "GET",
      "path": "/v0/search/health",
      "surface": "rest",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer"
    },
    {
      "method": "GET",
      "path": "/v0/search",
      "surface": "rest",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer",
      "query": {
        "q": "string",
        "mode": "balanced|exact|explore",
        "strictReferences": "boolean",
        "limit": "integer"
      }
    },
    {
      "method": "POST",
      "path": "/v1/search",
      "surface": "rest",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer"
    },
    {
      "method": "POST",
      "path": "/v1/retrieve",
      "surface": "rest",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer"
    },
    {
      "method": "POST",
      "path": "/v1/review",
      "surface": "review_runtime",
      "status": "planned_preview_not_live",
      "auth": "not_active",
      "schema": "schemas/review_runtime_contract_v1.schema.json",
      "fixtures": "data/fixtures/review_runtime/review_runtime_contract_examples_v1.json"
    },
    {
      "method": "POST",
      "path": "/graphql",
      "surface": "graphql",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer",
      "supported_fields": [
        "__typename",
        "manifest",
        "search",
        "artifact",
        "assistantPrepare"
      ]
    },
    {
      "method": "GET",
      "path": "/mcp/health",
      "surface": "mcp",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer"
    },
    {
      "method": "POST",
      "path": "/mcp",
      "surface": "mcp",
      "status": "smoked_active",
      "auth": "demo_or_admin_bearer",
      "tools": [
        "list_corpus",
        "get_manifest",
        "search_sources",
        "get_artifact",
        "ask_assistant",
        "export_bundle"
      ]
    },
    {
      "method": "GET",
      "path": "/v0/rotor/status",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_read"
    },
    {
      "method": "GET",
      "path": "/v0/rotor/tasks/next",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_read"
    },
    {
      "method": "POST",
      "path": "/v0/rotor/claim",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_claim"
    },
    {
      "method": "POST",
      "path": "/v0/rotor/heartbeat",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_heartbeat"
    },
    {
      "method": "POST",
      "path": "/v0/rotor/closeout",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_closeout"
    },
    {
      "method": "POST",
      "path": "/v0/rotor/blocker",
      "surface": "rotor_control_plane",
      "status": "bounded_active",
      "auth": "admin_bearer_or_scope_rotor_blocker"
    }
  ],
  "surface_taxonomy": [
    {
      "surface": "partner_product_api",
      "primary_users": [
        "buyer_product_backends",
        "partner_qa_reviewers",
        "product_integrations"
      ],
      "routes": [
        "GET /v0/health",
        "GET /v0/search/health",
        "GET /v0/search",
        "POST /v1/search",
        "POST /v1/retrieve",
        "POST /graphql",
        "POST /v1/review"
      ],
      "status": "bounded_active_except_review_runtime_preview",
      "mutation_boundary": "no_rotor_mutation_no_corpus_promotion",
      "buyer_exposure": "yes"
    },
    {
      "surface": "ai_tool_runtime",
      "primary_users": [
        "enterprise_ai_agents",
        "assistant_integrations"
      ],
      "routes": [
        "GET /mcp/health",
        "POST /mcp"
      ],
      "status": "bounded_active",
      "mutation_boundary": "scoped_tool_calls_only_no_queue_minting",
      "buyer_exposure": "controlled"
    },
    {
      "surface": "internal_control_plane_api",
      "primary_users": [
        "legipro_operators",
        "mtl_01_worker_lanes",
        "mtl_03_worker_lanes"
      ],
      "routes": [
        "GET /v0/rotor/status",
        "GET /v0/rotor/tasks/next",
        "POST /v0/rotor/claim",
        "POST /v0/rotor/heartbeat",
        "POST /v0/rotor/closeout",
        "POST /v0/rotor/blocker"
      ],
      "status": "protected_internal_active",
      "mutation_boundary": "claim_heartbeat_closeout_blocker_only_canonical_queue_builder_mtl_01",
      "buyer_exposure": "no"
    }
  ],
  "surface_separation_note": "Partner/demo bearer tokens must not mutate rotor state; MCP tools are bounded product tools, not queue builders; rotor worker tokens are scoped to internal claim/heartbeat/closeout/blocker operations.",
  "decision_grade_evidence_contract": {
    "status": "preview_contract_only",
    "schema": "schemas/decision_grade_evidence_packet_v1.schema.json",
    "fixtures": "data/fixtures/decision_grade_evidence/decision_grade_evidence_examples_v1.json",
    "docs": "docs/api/decision-grade-evidence-contract-v1.md",
    "covered_corpus_families": [
      "bofip_tva",
      "pcg_anc",
      "urssaf_css_tns",
      "code_commerce",
      "einvoicing"
    ],
    "candidate_fields": [
      "source_id",
      "artifact_id",
      "passage_id",
      "authority_rank",
      "retrieved_by",
      "source_status",
      "date_metadata.as_of"
    ],
    "semantic_search_active": false,
    "answer_ready": false,
    "client_reliance": false
  },
  "export_bundle_contract": {
    "status": "preview_contract_only",
    "schema": "schemas/export_bundle_contract_v1.schema.json",
    "fixtures": "data/fixtures/export_bundle/export_bundle_contract_examples_v1.json",
    "docs": "docs/api/export-bundle-contract-v1.md",
    "cli_wrapper": "schema show export.bundle.preview",
    "required_trace_fields": [
      "tenant_id",
      "workspace_id",
      "buyer_brand",
      "dossier_id",
      "revision_id",
      "audit_id",
      "corpus_snapshot_id",
      "index_snapshot_id",
      "source_id",
      "artifact_id",
      "passage_id",
      "effective_date",
      "caveats",
      "export_job_id_or_retry_state"
    ],
    "failure_behavior": [
      "generated_export_is_draft_review_gated",
      "queued_export_returns_export_job_id",
      "retryable_failure_returns_clear_retry_state"
    ],
    "answer_ready": false,
    "client_reliance": false,
    "professional_certification": false
  },
  "product_observability_snapshot": {
    "status": "fixture_seed_or_live_rollup",
    "schema": "schemas/product_observability_snapshot_v1.schema.json",
    "asset": "site/legipro-fr/assets/legipro-product-observability.json",
    "published_asset": "assets/legipro-product-observability.json",
    "metrics": [
      "search_review_export_latency_p50_p95",
      "error_counts",
      "answerability_rate",
      "insufficient_evidence_rate",
      "conflicting_sources_rate",
      "citation_coverage",
      "tenant_cost_units",
      "throttle_count",
      "denied_scope_attempts",
      "mcp_tool_latency_and_errors",
      "export_success_and_queue_counts"
    ],
    "privacy": {
      "raw_prompt_stored": false,
      "prompt_text_fields_present": false,
      "private_prompt_leakage": false
    },
    "boundaries": {
      "not_revenue_claim": true,
      "not_user_traction_claim": true,
      "not_sla": true,
      "scenario_ready": false,
      "answer_ready": false,
      "promotion_allowed": false,
      "human_review_complete": false,
      "client_reliance": false,
      "semantic_search_active": false,
      "professional_certification": false
    }
  },
  "source_freshness_impact_contract": {
    "status": "preview_contract_only",
    "schema": "schemas/source_freshness_impact_v1.schema.json",
    "fixtures": "data/fixtures/source_freshness/source_freshness_impact_examples_v1.json",
    "docs": "docs/api/source-freshness-impact-v1.md",
    "cli_wrapper": "schema show source.freshness.impact.preview",
    "required_source_fields": [
      "source_id",
      "source_family",
      "source_owner",
      "source_url",
      "last_checked_at",
      "last_changed_at",
      "content_hash",
      "previous_hash",
      "freshness_status",
      "valid_from",
      "valid_until",
      "supersession_status",
      "superseded_by",
      "affected_dossiers",
      "affected_exports"
    ],
    "warning_position": "before_answer_or_export_confidence",
    "answer_ready": false,
    "client_reliance": false,
    "professional_certification": false
  },
  "degraded_mode_behavior_contract": {
    "status": "preview_contract_only",
    "schema": "schemas/degraded_mode_behavior_v1.schema.json",
    "fixtures": "data/fixtures/degraded_mode/degraded_mode_behavior_examples_v1.json",
    "docs": "docs/api/degraded-mode-behavior-v1.md",
    "cli_wrapper": "schema show degraded.mode.behavior.preview",
    "covered_dependencies": [
      "meilisearch",
      "corpus_warehouse",
      "assistant_runtime",
      "export_runtime",
      "corpus_workers",
      "index_freshness",
      "mcp_tool_runtime"
    ],
    "fallback_statuses": [
      "degraded",
      "partial",
      "queued",
      "last_known_good",
      "denied_scope"
    ],
    "status_page_asset": "site/legipro-fr/assets/legipro-status-snapshot.json",
    "warning_position": "before_answer_or_export_confidence",
    "not_sla": true,
    "review_required": true,
    "scenario_ready": false,
    "answer_ready": false,
    "promotion_allowed": false,
    "human_review_complete": false,
    "client_reliance": false,
    "semantic_search_active": false,
    "professional_certification": false
  },
  "ops_automation_map": {
    "status": "mapped_for_scheduled_admin_ci_promotion",
    "roadmap_task_id": "SAAS-0031",
    "schema": "schemas/ops_automation_map_v1.schema.json",
    "public_asset": "site/legipro-fr/assets/legipro-ops-automation-map.json",
    "cli_command": "ops automation-map",
    "operation_count": 11,
    "owner_types": [
      "admin_api",
      "admin_api_or_scheduled_job",
      "break_glass",
      "ci_gate",
      "scheduled_job"
    ],
    "canonical_queue_builder": "mtl-01",
    "remote_nodes_may_mint_queue": false,
    "manual_cli_retained_for": [
      "local_qa",
      "rollback",
      "break_glass_repair"
    ],
    "guardrails": {
      "broad_repo_scan_allowed": false,
      "fanout_subagents_allowed": false,
      "scheduled_jobs_may_promote_corpus": false,
      "scheduled_jobs_may_widen_readiness_flags": false,
      "scheduled_jobs_write_same_receipt_contracts": true
    },
    "boundaries": {
      "scenario_ready": false,
      "answer_ready": false,
      "promotion_allowed": false,
      "human_review_complete": false,
      "client_reliance": false,
      "semantic_search_active": false,
      "professional_certification": false
    }
  },
  "saas0001_einvoicing_gate": {
    "status": "active_internal_closeout_gate",
    "roadmap_task_id": "SAAS-0001",
    "cli_command": "ops saas0001-einvoicing-gate --refresh-rotor-status",
    "script": "scripts/verify_legipro_saas0001_einvoicing_gate.py",
    "latest_receipt": "data/ops/legipro_saas_0001_einvoicing_gate_verify_2026-06-27.json",
    "rotor_status_snapshot": "data/ops/legipro_saas_0001_rotor_status_latest.json",
    "current_result": "not_closable_while_lanes_active",
    "required_checks": [
      "zero_active_einvoicing_leases",
      "no_duplicate_active_einvoicing_lane_ownership",
      "legacy_queue_einvoicing_rows_closed",
      "no_einvoicing_blocker_rows",
      "warehouse_matches_local_full_index",
      "status_snapshot_canonical_control_plane_ok",
      "protected_readiness_flags_false"
    ],
    "receipt_evidence_fields": [
      "active_einvoicing_tasks",
      "queue_einvoicing_status_counts",
      "stale_lease_reap",
      "parity",
      "status_snapshot",
      "docs_surface_mentions",
      "readiness_true_flag_hits"
    ],
    "boundaries": {
      "scenario_ready": false,
      "answer_ready": false,
      "promotion_allowed": false,
      "human_review_complete": false,
      "client_reliance": false,
      "semantic_search_active": false,
      "professional_certification": false
    }
  },
  "saas0001_einvoicing_continuity": {
    "status": "active_internal_lane_continuity_refill",
    "roadmap_task_id": "SAAS-0001",
    "cli_command": "ops saas0001-einvoicing-continuity --wait-seconds 20 --max-attempts 3",
    "latest_receipt": "data/ops/legipro_saas_0001_einvoicing_continuity_latest.json",
    "rotor_status_snapshot": "data/ops/legipro_saas_0001_rotor_status_latest.json",
    "gate_receipt": "data/ops/legipro_saas_0001_einvoicing_gate_verify_2026-06-27.json",
    "expected_active_lanes": 14,
    "max_attempts_default": 3,
    "final_gate_after_last_automint": true,
    "autofill_command": "rotor automint --corpus einvoicing --autoclaim",
    "autofill_policy": "bounded canonical automint/autoclaim passes up to max_attempts only when expected e-invoicing lanes are missing, followed by a final gate readback after the last remediation",
    "boundary": "continuity refill only; not roadmap closeout, corpus promotion, Scenario unlock, answer-ready, client reliance or semantic-search activation",
    "boundaries": {
      "scenario_ready": false,
      "answer_ready": false,
      "promotion_allowed": false,
      "human_review_complete": false,
      "client_reliance": false,
      "semantic_search_active": false,
      "professional_certification": false
    }
  }
}
