/**
 * 共享契约骨架 — 扩展、平台兼容、治理、决策、架构、编码、验收、模板和演进。
 *
 * 包含问题: 16, 19, 26, 27, 39, 40, 41, 49, 50, 51, 52, 53, 54。
 */
export type ExtensionLifecycleStatus = "draft" | "installed" | "active" | "disabled" | "deprecated" | "blocked";
export type ExtensionEnforcementStatus = "advisory" | "experimental" | "enforced_by_host" | "blocked";
export type ExtensionGrantStatus = "requested" | "granted" | "denied" | "revoked" | "expired";
export type ExtensionPermission = "read_project" | "read_soloforge_state" | "write_artifact" | "write_knowledge" | "write_config" | "execute_command" | "network_access" | "external_write" | "delivery_action" | "contract_state_update";
export interface ExtensionManifest {
    extension_id: string;
    name: string;
    version: string;
    provider: string;
    extension_type: "workflow" | "template_pack" | "guard" | "verifier" | "adapter" | "knowledge_source" | "command_runner" | "reporter";
    contract_ids: string[];
    capability_ids: string[];
    permissions: ExtensionPermission[];
    entrypoints: string[];
    outputs: string[];
    default_state: "disabled" | "experimental" | "advisory";
    language_policy?: "zh_first" | "source_preserving" | "en_allowed";
    compatibility: {
        min_soloforge_version: string;
        max_soloforge_version?: string;
        contract_registry_version?: string;
    };
}
export interface ExtensionGrant {
    extension_id: string;
    granted_permissions: ExtensionPermission[];
    granted_by: string;
    purpose: string;
    granted_at: string;
    expires_at?: string;
    revoked: boolean;
    extension_grant_status: ExtensionGrantStatus;
}
export interface ExtensionAuditReport {
    extension_id: string;
    audited_at: string;
    lifecycle_status: ExtensionLifecycleStatus;
    enforcement_status: ExtensionEnforcementStatus;
    permissions_used: ExtensionPermission[];
    contract_registry_entries: string[];
    violations: string[];
    findings: string[];
}
export interface ExtensionCapabilityDeclaration {
    extension_id: string;
    claimed_capabilities: string[];
    claimed_enforcement: ExtensionEnforcementStatus;
    third_party: boolean;
}
export type PlatformCompatibilityStatus = "compatible" | "needs_normalization" | "blocked" | "manual_required";
export type PathSafetyStatus = "safe" | "outside_scope" | "symlink_escape" | "case_conflict" | "ambiguous" | "blocked";
export interface PlatformContext {
    os: "darwin" | "linux" | "win32";
    arch: string;
    shell: "bash" | "zsh" | "fish" | "powershell" | "cmd" | "unknown";
    path_case_sensitive: boolean;
    path_separator: "/" | "\\";
    line_ending: "lf" | "crlf" | "mixed";
    supports_symlink: boolean;
    workspace_realpath: string;
}
export interface NormalizedPathRef {
    original: string;
    normalized: string;
    realpath?: string;
    is_within_workspace: boolean;
    case_normalized: boolean;
    symlink_resolved: boolean;
    platform: string;
    path_safety_status: PathSafetyStatus;
}
export interface PlatformCompatibilityReport {
    platform_context: PlatformContext;
    path_refs_checked: number;
    issues_found: string[];
    platform_compatibility_status: PlatformCompatibilityStatus;
}
export interface PathSafetyCheck {
    path_ref: NormalizedPathRef;
    scope_boundary: string;
    passes: boolean;
    reason: string;
}
export type MetricStatus = "active" | "deprecated" | "invalid" | "quarantined";
export type GovernanceActionStatus = "suggested" | "queued" | "manual_required" | "approved" | "executed" | "rejected" | "blocked";
export interface MetricContract {
    id: string;
    metric_type: "runtime" | "cost" | "quality" | "knowledge" | "escape" | "governance";
    owner_component: string;
    definition: string;
    numerator?: string;
    denominator?: string;
    collection_source: string[];
    sampling_window: string;
    thresholds: {
        healthy?: number;
        warning?: number;
        critical?: number;
    };
    action_binding: string[];
    metric_status: MetricStatus;
}
export interface MetricSample {
    metric_id: string;
    value: number;
    sampled_at: string;
    sample_status: "passed" | "skipped" | "manual_required" | "degraded" | "plan_only";
}
export interface GovernanceFinding {
    id: string;
    severity: "info" | "warning" | "critical";
    component_id: string;
    metric_id: string;
    evidence_refs: string[];
    recommended_action: "keep" | "warn" | "downgrade" | "disable" | "require_human_review" | "require_contract_fix" | "require_test_addition";
    requires_human_confirmation: boolean;
    governance_action_status: GovernanceActionStatus;
}
export interface GovernanceActionBinding {
    finding_id: string;
    action: string;
    action_status: GovernanceActionStatus;
    evidence_ids: string[];
    confirmed_by?: string;
}
export type DecisionStatus = "recommended" | "human_required" | "approved" | "rejected" | "expired" | "implemented";
export interface DecisionEvidence {
    source_type: "project_fingerprint" | "existing_code" | "project_policy" | "knowledge_base" | "official_doc" | "industry_baseline" | "user_constraint" | "heuristic";
    source_ref: string;
    confidence: number;
    freshness?: string;
}
export interface TechnologyDecisionContract {
    decision_id: string;
    decision_scope: "local_implementation" | "library_choice" | "architecture" | "infrastructure" | "data_store" | "external_service" | "security_or_compliance";
    options: Array<{
        option_id: string;
        title: string;
        description: string;
    }>;
    recommended_option: string;
    rejected_options: Array<{
        option: string;
        reason: string;
    }>;
    evidence: DecisionEvidence[];
    falsification: string[];
    failure_conditions: string[];
    validation_plan: string[];
    rollback_or_exit_plan: string[];
    human_gate_required: boolean;
    human_gate_reason?: string;
    human_gate_evidence?: string | {
        confirmed_by?: string;
        timestamp?: string;
        confirmation_ref?: string;
        rationale?: string;
    };
    executable_without_human: boolean;
}
export interface TechnologyDecisionRecord {
    decision_id: string;
    selected_option?: string;
    decision_status: DecisionStatus;
    approved_by?: string;
    evidence_ids: string[];
    expires_at?: string;
    implementation_scope?: string[];
}
export type BrainstormStatus = "not_required" | "exploring" | "options_ready" | "selected" | "human_required" | "rejected";
export interface OptionExplorationRecord {
    option_id: string;
    title: string;
    description: string;
    pros: string[];
    cons: string[];
    applicable_when: string[];
    not_applicable_when: string[];
    failure_conditions: string[];
    verification_method: string[];
    estimated_risk: "low" | "medium" | "high";
    reversibility: "reversible" | "partially_reversible" | "irreversible";
    required_human_decisions: string[];
}
export interface OptionTradeoffMatrix {
    matrix_id: string;
    criteria: string[];
    option_scores: Array<{
        option_id: string;
        scores: Record<string, number | "unknown">;
        rationale_zh: string;
    }>;
    selected_option_id: string;
    why_selected_zh: string;
    why_rejected_zh: Array<{
        option_id: string;
        reason: string;
    }>;
}
export interface BrainstormSession {
    session_id: string;
    trigger: "high_impact_change" | "mechanism_design" | "technology_choice" | "user_project_architecture" | "migration_plan" | "ambiguous_goal" | "rework_risk";
    problem_statement: string;
    first_principles_ref?: string;
    options: OptionExplorationRecord[];
    recommended_option_id: string;
    rejected_option_ids: string[];
    human_gate_required: boolean;
    decision_record_ref?: string;
    evidence_refs: string[];
    brainstorm_status: BrainstormStatus;
}
export type DetailCheckStatus = "passed" | "failed" | "warning" | "not_applicable";
export interface DetailRiskItem {
    dimension: string;
    description: string;
    severity: "blocking" | "warning";
}
export interface DetailDisciplineContract {
    contract_id: string;
    target_types: string[];
    required_dimensions: string[];
}
export interface DetailDisciplineCheck {
    target_id: string;
    target_type: "design" | "implementation" | "workflow" | "prompt" | "template" | "artifact" | "verification" | "documentation" | "user_delivery";
    checked_dimensions: Array<"edge_cases" | "defaults" | "failure_paths" | "cleanup" | "idempotency" | "overwrite_behavior" | "rollback" | "evidence" | "manual_confirm" | "user_visible_message" | "language_policy">;
    missing_details: string[];
    blocking: boolean;
    detail_check_status: DetailCheckStatus;
}
export type FirstPrinciplesStatus = "framed" | "insufficient_context" | "contradicted" | "passed" | "failed";
export interface FundamentalNeed {
    need_id: string;
    description: string;
    non_negotiable: boolean;
}
export interface FirstPrinciplesFrame {
    problem_id: string;
    user_goal: string;
    fundamental_need: string;
    known_facts: string[];
    assumptions: string[];
    non_negotiable_constraints: string[];
    candidate_solutions: string[];
    simplest_viable_solution: string;
    falsification_questions: string[];
    chosen_solution: string;
    why_not_legacy_path: string;
    first_principles_status: FirstPrinciplesStatus;
}
export interface FirstPrinciplesCheck {
    frame: FirstPrinciplesFrame;
    passed: boolean;
    failures: string[];
}
export type ArchitectureDesignStatus = "draft" | "awaiting_user_confirmation" | "template_checked" | "verification_failed" | "completed" | "delivered";
export type ArchitectureOutputDirectoryStatus = "recommended" | "awaiting_confirmation" | "confirmed" | "rejected" | "manual_required";
export interface ArchitectureInputSet {
    task_ids: string[];
    required_source_artifacts: Array<"prototype_description" | "requirements_document" | "all_client_prototype_descriptions" | "business_flow" | "api_or_field_description" | "existing_technology_constraints">;
    consumed_files: string[];
    missing_required_files: string[];
    all_clients_covered: boolean;
}
export interface ArchitectureOutputDirectoryDecision {
    recommended_name: string;
    recommendation_reason_zh: string;
    architecture_output_directory_status: ArchitectureOutputDirectoryStatus;
    confirmed_name?: string;
    user_confirmation_ref?: string;
}
export interface FrontendDefaultStackPolicy {
    framework: "latest_stable_vue";
    language: "typescript";
    build_tool: "vite";
    router: "vue_router";
    state_management: "pinia";
    unit_test: "vitest";
    e2e_test: "playwright";
    lint_format: "eslint_prettier" | "biome";
    api_client: "openapi_generated_client" | "typed_fetch_client";
    ui_library_policy: "recommend_by_project_type";
}
export interface ArchitectureTechnologyPolicy {
    backend_preferred: "java";
    frontend_preferred: "latest_stable_vue_ecosystem";
    frontend_default_stack: FrontendDefaultStackPolicy;
    allow_override: boolean;
    override_reason?: string;
    override_evidence_refs: string[];
}
export interface FrontendRepositoryPolicy {
    default_strategy: "separate_repo_per_client";
    clients: string[];
    repository_plan: Array<{
        client_name: string;
        repository_name: string;
        app_boundary: string;
        shared_packages: string[];
    }>;
    merge_requires_user_confirmation: boolean;
    merge_confirmation_ref?: string;
}
export interface ArchitectureUncertaintyDecision {
    decision_id: string;
    question_zh: string;
    recommended_option: string;
    recommendation_reason_zh: string;
    alternatives: string[];
    risks: string[];
    user_confirmation_required: boolean;
    brainstorm_ref?: string;
    decision_sovereignty_ref?: string;
    user_confirmation_ref?: string;
}
export interface MermaidDiagramRequirement {
    diagram_id: string;
    diagram_type: "sequenceDiagram" | "flowchart" | "stateDiagram" | "erDiagram";
    required_for: string;
    mermaid_source: string;
    render_check_status: "passed" | "failed" | "not_checked";
}
export interface ArchitectureDesignReview {
    review_status: "passed" | "failed" | "manual_required";
    missing_sections: string[];
    missing_inputs: string[];
    failed_rules: string[];
    manual_required_items: string[];
    repair_required: boolean;
}
export interface ArchitectureDesignContract {
    contract_id: string;
    workflow_id: "architecture_design";
    architecture_design_status: ArchitectureDesignStatus;
    input_set: ArchitectureInputSet;
    output_directory_decision: ArchitectureOutputDirectoryDecision;
    template_id: "architecture_design";
    technology_policy: ArchitectureTechnologyPolicy;
    frontend_repository_policy: FrontendRepositoryPolicy;
    uncertainty_decisions: ArchitectureUncertaintyDecision[];
    mermaid_diagram_requirements: MermaidDiagramRequirement[];
    review: ArchitectureDesignReview;
    evidence_refs: string[];
}
export type ProjectContextType = "existing_system" | "empty_project" | "new_system" | "unknown";
export type ExistingSystemAnalysisStatus = "not_required" | "pending" | "in_progress" | "evidence_insufficient" | "completed" | "manual_required";
export type GapAnalysisStatus = "not_required" | "pending" | "completed" | "failed" | "manual_required";
export interface ProjectContextDetection {
    project_context_type: ProjectContextType;
    detection_evidence_refs: string[];
    confidence: "high" | "medium" | "low";
    user_override_ref?: string;
}
export interface EvidenceBackedFact {
    claim: string;
    source_type: "fact" | "inference" | "assumption" | "unknown";
    confidence: "high" | "medium" | "low";
    evidence_refs: string[];
}
export interface ClassifiedUnknown {
    unknown_type: "business_unknown" | "technical_unknown" | "data_unknown" | "permission_unknown" | "integration_unknown" | "deployment_unknown" | "test_unknown";
    question: string;
    resolution_strategy: "read_code" | "run_check" | "ask_user" | "defer_with_risk";
}
export interface ExistingSystemAnalysisContract {
    project_type: ProjectContextType;
    existing_system_analysis_status: ExistingSystemAnalysisStatus;
    analysis_depth: "L1_project_fingerprint" | "L2_related_domain" | "L3_impact_surface";
    detected_tech_stack: EvidenceBackedFact[];
    module_boundaries: EvidenceBackedFact[];
    business_flows: EvidenceBackedFact[];
    data_models: EvidenceBackedFact[];
    api_contracts: EvidenceBackedFact[];
    auth_and_permission_model: EvidenceBackedFact[];
    existing_tests: EvidenceBackedFact[];
    reusable_assets: EvidenceBackedFact[];
    unknowns: ClassifiedUnknown[];
    evidence_refs: string[];
}
export interface RequirementGapAnalysis {
    gap_analysis_status: GapAnalysisStatus;
    requirement_summary: string;
    existing_capabilities: string[];
    missing_capabilities: string[];
    reusable_modules: string[];
    required_changes: string[];
    optional_changes: string[];
    out_of_scope: string[];
    compatibility_risks: string[];
    data_risks: string[];
    permission_risks: string[];
    integration_risks: string[];
    frontend_impact: string[];
    backend_impact: string[];
    test_regression_scope: string[];
    user_confirmation_required: string[];
    recommended_implementation_strategy: string;
    alternatives: string[];
    evidence_refs: string[];
}
export interface BusinessGoalAnalysis {
    business_goals: string[];
    users_and_roles: string[];
    core_flows: string[];
    non_functional_requirements: string[];
    constraints: string[];
    unknowns: ClassifiedUnknown[];
}
export interface RequirementBoundaryAnalysis {
    in_scope: string[];
    out_of_scope: string[];
    assumptions: string[];
    risks: string[];
    confirmation_required: string[];
}
export interface MainlineIntegrationPlan {
    entry_points: string[];
    route_bindings: string[];
    api_bindings: string[];
    service_calls: string[];
    data_bindings: string[];
    ui_navigation: string[];
    permission_bindings: string[];
    test_bindings: string[];
    post_implementation_consumption_checks: string[];
}
export interface ExistingSystemDevelopmentReview {
    review_status: "passed" | "failed" | "manual_required";
    failed_rules: string[];
    missing_evidence_refs: string[];
    missing_integration_points: string[];
    manual_required_items: string[];
    repair_required: boolean;
}
export type CodingReadinessStatus = "blocked" | "ready_for_test_first" | "ready_for_verification_first" | "manual_required";
export type TestFirstStatus = "not_required" | "planned" | "written" | "expected_failure_recorded" | "passed_after_implementation" | "failed" | "manual_required";
export interface TestFirstPlan {
    test_first_status: TestFirstStatus;
    test_mode: "failing_test_first" | "regression_test_first" | "verification_case_first" | "manual_acceptance_first" | "not_applicable_with_reason";
    task_type: string;
    test_targets: string[];
    acceptance_cases: string[];
    must_not_break_cases: string[];
    expected_failures_before_implementation: string[];
    test_files_to_create_or_update: string[];
    verification_commands: string[];
    manual_acceptance_steps: string[];
    not_applicable_reason?: string;
}
export interface TestFirstEvidence {
    test_files: string[];
    test_intent_zh: string;
    expected_failure_output?: string;
    cannot_run_reason?: string;
    requirement_refs: string[];
    gap_item_refs: string[];
    mainline_entry_refs: string[];
}
export interface CodingReadinessGate {
    coding_readiness_status: CodingReadinessStatus;
    missing_preconditions: string[];
    consumed_constraints: string[];
    test_first_plan_ref: string;
    mainline_integration_plan_ref?: string;
    verification_plan_ref: string;
}
export interface CodingReadinessContract {
    task_id: string;
    project_context_type: ProjectContextType;
    task_type: string;
    consumed_constraints: string[];
    required_preconditions: string[];
    test_first_plan: TestFirstPlan;
    implementation_scope: string[];
    mainline_integration_plan_ref?: string;
    gap_analysis_ref?: string;
    architecture_design_ref?: string;
    detail_discipline_ref?: string;
    verification_plan_ref: string;
    coding_readiness_status: CodingReadinessStatus;
}
export interface ConstraintConsumptionReport {
    consumed_constraints: Array<{
        constraint_id: string;
        source: string;
        consumption_status: "consumed" | "not_required_with_reason" | "manual_required" | "missing";
        evidence_refs: string[];
    }>;
    blocking_missing_constraints: string[];
}
export interface MainlineConsumptionCheck {
    new_files_imported: string[];
    components_routed_or_rendered: string[];
    api_bound_to_client_or_router: string[];
    services_called_by_controller_or_job: string[];
    dto_or_model_used_by_interface_or_data_layer: string[];
    config_loaded: string[];
    tests_cover_real_path: string[];
    orphan_findings: string[];
}
export interface CodingCompletionReview {
    review_status: "passed" | "failed" | "manual_required";
    test_first_satisfied: boolean;
    implementation_done: boolean;
    mainline_integration_satisfied: boolean;
    verification_plan_executed: boolean;
    relevant_tests_passed_or_justified: boolean;
    manual_required_items_resolved: boolean;
    orphan_implementation_findings: string[];
    delivery_readiness_passed: boolean;
}
export type LocalAcceptanceStatus = "not_applicable" | "environment_preparing" | "building" | "deploying" | "healthchecking" | "browser_testing" | "repairing" | "passed" | "failed" | "manual_required";
export interface ServiceRuntimeSpec {
    service_name: string;
    service_type: "frontend" | "backend_api" | "database" | "cache" | "queue" | "object_storage" | "auth_service" | "mock_service" | "reverse_proxy";
    start_command?: string;
    docker_service?: string;
    ports: Array<{
        internal: number;
        external: number;
    }>;
    health_check: string;
    required_env: string[];
}
export interface BrowserAcceptancePlan {
    target_urls: string[];
    user_flows: string[];
    viewport_matrix: string[];
    auth_strategy?: string;
    required_assertions: string[];
    screenshot_or_trace_required: boolean;
}
export interface RepairLoopPolicy {
    max_iterations: number;
    rebuild_required_after_fix: boolean;
    redeploy_required_after_fix: boolean;
    retest_required_after_fix: boolean;
    stop_conditions: Array<"retry_budget_exhausted" | "same_error_repeated" | "missing_secret_or_account" | "scope_insufficient" | "external_service_unavailable" | "high_risk_fix_requires_confirmation" | "install_or_pull_failed">;
}
export interface LocalRuntimeEvidence {
    build_command: string;
    image_ids: string[];
    build_artifacts: string[];
    compose_project_name?: string;
    container_ids: string[];
    service_urls: string[];
    health_check_outputs: string[];
    logs_summary_zh: string[];
}
export interface BrowserAcceptanceEvidence {
    target_url: string;
    flow_name: string;
    browser_steps: string[];
    assertion_results: string[];
    screenshot_refs: string[];
    trace_refs: string[];
    console_errors: string[];
    network_failures: string[];
    acceptance_status: "passed" | "failed" | "manual_required";
}
export interface FinalLocalReviewAccess {
    frontend_urls: string[];
    backend_urls: string[];
    docs_or_swagger_urls: string[];
    login_or_demo_account_notes?: string;
    start_commands: string[];
    stop_commands: string[];
    running_status: string;
    manual_review_steps_zh: string[];
    known_limits_zh: string[];
}
export interface LocalDockerAcceptanceContract {
    project_run_mode: "docker_compose" | "dockerfile" | "local_dev_server" | "not_applicable";
    local_acceptance_status: LocalAcceptanceStatus;
    required_services: ServiceRuntimeSpec[];
    build_artifacts: string[];
    browser_acceptance_plan: BrowserAcceptancePlan;
    repair_loop_policy: RepairLoopPolicy;
    local_runtime_evidence: LocalRuntimeEvidence;
    browser_acceptance_evidence: BrowserAcceptanceEvidence[];
    final_access: FinalLocalReviewAccess;
}
export type TemplateConsumptionStatus = "missing" | "file_created" | "indexed" | "registered" | "injected" | "consumed" | "verified" | "drifted";
export interface WorkflowTemplateEntry {
    workflow_id: "architecture_design" | "existing_system_gap_analysis" | "test_first_coding" | "local_browser_acceptance";
    template_path: string;
    owner_mechanism_ids: string[];
    consumed_contracts: string[];
    required_sections: string[];
    hard_rules: string[];
    acceptance_checks: string[];
    applies_to: Array<"soloforge_self" | "user_project">;
    project_context: Array<"existing_system" | "new_system" | "empty_project" | "unknown">;
    not_applicable_conditions: string[];
}
export interface MechanismConsumptionMap {
    template_path: string;
    consumed_mechanism_id: string;
    consumption_type: "route_trigger" | "workflow_instruction" | "hard_rule" | "acceptance_check" | "回退" | "user_feedback" | "delivery_gate";
    evidence_required: boolean;
}
export interface TemplateConsumptionEvidence {
    template_path: string;
    template_consumption_status: TemplateConsumptionStatus;
    workflow_template_refs: string[];
    adapter_prompt_refs: string[];
    route_trigger_refs: string[];
    sync_migration_refs: string[];
    scenario_refs: string[];
}
export interface WorkflowTemplatePackContract {
    pack_id: string;
    workflows: WorkflowTemplateEntry[];
    mechanism_consumption_map: MechanismConsumptionMap[];
    adapter_injection_points: string[];
    registry_entries: string[];
    scenario_coverage: string[];
}
export type EvolutionGateStatus = "pending" | "duplicate_found" | "impact_analyzed" | "template_checked" | "accepted" | "rejected" | "manual_required";
export interface DuplicateIssueCheck {
    possible_duplicates: string[];
    can_merge_into_existing_issue: boolean;
    merge_target_issue_id?: string;
    why_new_issue_required?: string;
}
export interface ExistingBatchImpactAnalysis {
    touched_batches: string[];
    touched_contracts: string[];
    touched_workflows: string[];
    touched_templates: string[];
    required_regression_gates: string[];
    release_gate_impact: string[];
}
export interface TemplateEvolutionImpact {
    template_update_required: boolean;
    affected_templates: string[];
    new_templates_required: string[];
    workflow_template_update_required: boolean;
    adapter_prompt_update_required: boolean;
    manifest_update_required: boolean;
    sync_migration_required: boolean;
    user_project_update_required: boolean;
    not_required_reason?: string;
}
export interface NewIssueRegressionGate {
    issue_candidate_id: string;
    candidate_title: string;
    duplicate_check: DuplicateIssueCheck;
    batch_impact_analysis: ExistingBatchImpactAnalysis;
    contract_impact: Array<{
        contract_id: string;
        impact: string;
    }>;
    template_evolution_impact: TemplateEvolutionImpact;
    scenario_impact: Array<{
        scenario_id: string;
        impact: string;
    }>;
    migration_impact: Array<{
        migration_path: string;
        impact: string;
    }>;
    user_project_impact: Array<{
        project_type: string;
        impact: string;
    }>;
    decision: "merge_into_existing_issue" | "add_to_existing_batch" | "create_new_batch" | "defer" | "reject";
    evolution_gate_status: EvolutionGateStatus;
}
export interface BatchScenarioCase {
    id: string;
    name: string;
    fixture?: string;
    command_or_entry: string;
    expected_evidence: string[];
    pass_fail_rules: string[];
}
export interface IssueDetailAcceptance {
    issue_id: string;
    contract_id: string;
    must_keep_details: string[];
    required_entrypoints: string[];
    required_contract_fields: string[];
    required_mechanism_hooks: string[];
    required_template_or_adapter_updates: string[];
    required_evidence_refs: string[];
    required_diagnostics: string[];
    regression_cases: string[];
    cross_scenario_coverage: string[];
    user_project_impact: string[];
    soloforge_self_impact: string[];
    owner_files: string[];
    mainline_consumption_check: string[];
    not_done_if_missing: string[];
}
export interface ScenarioRunResult {
    scenario_id: string;
    scenario_name: string;
    status: "PASS" | "FAIL";
    evidence: string[];
    failures: string[];
}
export interface IssueAcceptanceFinding {
    issue_id: string;
    rule: string;
    severity: "hard_fail" | "warning";
    message_zh: string;
}
export declare const EXTENSION_PLATFORM_INVARIANTS: readonly ["第三方扩展不得自称 enforced", "扩展不能绕过 Contract Registry、Guard、Tool Invocation、Language Policy", "扩展权限必须显式授权、最小权限、可撤销", "metrics 不得把 skipped / manual_required / degraded / plan_only 算 passed", "governance action 不得由指标自动触发高风险动作", "destructive / irreversible 技术决策必须 human gate", "技术推荐不等于可执行决策", "high impact 机制变更必须有 fundamental_need", "detail discipline 不能停留在 checklist，必须接入验证与交付 gate", "first principles 不能停留在口号，必须能阻断错误前提和表面修复", "brainstorm 不能停留在闲聊，必须形成候选方案、取舍、反证、推荐与非目标", "architecture design 必须按 Architecture Design Contract、架构设计模板和验收 gate 产出", "existing_system + new_requirement 必须先做 ExistingSystemAnalysis + RequirementGapAnalysis", "coding 不能作为第一步，必须先通过 CodingReadinessGate 和 TestFirstPlan", "readiness_status=blocked/manual_required 时不得写实现代码", "有可运行前端/全栈服务时不得只停在单测、静态检查或报告", "workflow template pack 不得只新增文件，必须 indexed、registered、injected、consumed、verified", "新增问题/Batch/workflow 必须经过 DuplicateIssueCheck 和 TemplateEvolutionImpact", "symlink / case sensitivity / path separator / shell 差异不得绕过 scope", "跨平台兼容不得以降低安全边界为代价", "中文语义优先或项目 LanguagePolicy 必须遵守", "脑暴推荐不得绕过 Decision Sovereignty human gate", "输出目录名必须用户确认，未确认不得 delivered", "后端默认优先 Java，前端默认优先最新稳定 Vue 生态 + TypeScript", "多端前端默认不同项目仓库或独立应用边界", "Mermaid sequenceDiagram 必须可渲染", "VerificationPlan 必须从 RequirementGapAnalysis 生成", "有测试框架且行为可断言时必须先写失败测试或回归测试", "浏览器验收失败必须 capture/classify/map/repair/rebuild/redeploy/rerun", "最终必须给用户本地可访问 URL，否则不得 delivered", "模板文件存在但未被消费不得 completed", "没有 NewIssueRegressionGate 的新增问题不得 accepted"];
//# sourceMappingURL=extension_platform_contracts.d.ts.map