{
  "schema_version": "1.0",
  "ok": true,
  "generated_at": "2026-07-02T06:33:07Z",
  "skill_dir": ".",
  "source_patterns": "reports/user_patterns.json",
  "pattern_count": 5,
  "proposal_count": 5,
  "apply_supported": true,
  "failure_count": 0,
  "proposal_only": true,
  "approval_required": true,
  "writes_repository_files": false,
  "allowlisted_targets_required": true,
  "target_file_sha256_required_for_apply": true,
  "approval_draft_supported": true,
  "rollback_required_for_apply": true,
  "apply_command_available": true,
  "summary": {
    "pattern_count": 5,
    "proposal_count": 5,
    "apply_supported": true,
    "failure_count": 0
  },
  "proposal_contract": {
    "proposal_only": true,
    "approval_required": true,
    "writes_repository_files": false,
    "allowlisted_targets_required": true,
    "target_file_sha256_required_for_apply": true,
    "approval_draft_supported": true,
    "rollback_required_for_apply": true,
    "apply_command_available": true
  },
  "report_contract": {
    "schema_version": "1.0",
    "contract": "adaptation-proposals",
    "top_level_mirrors_summary": true,
    "top_level_mirrors_proposal_contract": true,
    "summary_fields": [
      "pattern_count",
      "proposal_count",
      "apply_supported",
      "failure_count"
    ],
    "proposal_contract_fields": [
      "proposal_only",
      "approval_required",
      "writes_repository_files",
      "allowlisted_targets_required",
      "target_file_sha256_required_for_apply",
      "approval_draft_supported",
      "rollback_required_for_apply",
      "apply_command_available"
    ],
    "source_of_truth": [
      "summary",
      "proposal_contract"
    ]
  },
  "proposals": [
    {
      "proposal_id": "adapt-18c7517f3d",
      "pattern_id": "language_default",
      "title": "Keep reports Chinese-first with optional English",
      "change_type": "report-default-language",
      "status": "proposal-only",
      "requires_approval": true,
      "write_allowed_without_approval": false,
      "risk_level": "low",
      "reason": "2 redacted records matched repeated report-language signals.",
      "support_count": 2,
      "target_files": [
        "scripts/render_skill_overview.py",
        "references/artifact-design-doctrine.md"
      ],
      "suggested_changes": [
        "Keep user-facing report copy Simplified Chinese by default.",
        "Expose English through the existing language switch instead of mixing languages in the default view."
      ],
      "verification_commands": [
        "python3 tests/verify_skill_overview.py"
      ],
      "rollback_plan": "Revert report language template changes and rerun the overview verifier.",
      "evidence_refs": [
        {
          "record_id": "line-1",
          "excerpt": "新生成的 Skill 报告默认使用中文简体，并在右上角提供英文切换。"
        },
        {
          "record_id": "line-2",
          "excerpt": "HTML 报告需要双语能力，但默认内容应该保持中文简体。"
        }
      ]
    },
    {
      "proposal_id": "adapt-fbfe921ba5",
      "pattern_id": "report_ui",
      "title": "Improve report layout, visual hierarchy, and chart readability",
      "change_type": "artifact-ui-polish",
      "status": "proposal-only",
      "requires_approval": true,
      "write_allowed_without_approval": false,
      "risk_level": "medium",
      "reason": "5 redacted records matched repeated artifact-design signals.",
      "support_count": 5,
      "target_files": [
        "scripts/render_skill_overview.py",
        "references/artifact-design-doctrine.md",
        "tests/verify_skill_overview.py"
      ],
      "suggested_changes": [
        "Prefer vertical narrative sections with limited two-column layouts only when content has enough width.",
        "Keep charts inline SVG, with captions and stable responsive constraints."
      ],
      "verification_commands": [
        "python3 tests/verify_skill_overview.py",
        "python3 tests/verify_skill_report_charts.py"
      ],
      "rollback_plan": "Restore the previous report renderer and regenerate the demo report.",
      "evidence_refs": [
        {
          "record_id": "line-1",
          "excerpt": "新生成的 Skill 报告默认使用中文简体，并在右上角提供英文切换。"
        },
        {
          "record_id": "line-2",
          "excerpt": "HTML 报告需要双语能力，但默认内容应该保持中文简体。"
        },
        {
          "record_id": "line-3",
          "excerpt": "报告排版采用白底 Kami 风格，图表、模块和导航都要清晰。"
        }
      ]
    },
    {
      "proposal_id": "adapt-59d219a1fb",
      "pattern_id": "approval_safety",
      "title": "Keep adaptive iteration approval-gated",
      "change_type": "privacy-governance",
      "status": "proposal-only",
      "requires_approval": true,
      "write_allowed_without_approval": false,
      "risk_level": "low",
      "reason": "2 redacted records matched repeated governance signals.",
      "support_count": 2,
      "target_files": [
        "references/user-memory-policy.md",
        "references/autonomous-adaptation.md",
        "schemas/adaptation-proposal.schema.json"
      ],
      "suggested_changes": [
        "Require explicit source paths for memory scans.",
        "Generate proposals before any source patching.",
        "Reserve automatic apply for a future approval ledger and rollback implementation."
      ],
      "verification_commands": [
        "python3 tests/verify_adaptation_safety.py"
      ],
      "rollback_plan": "Remove the adaptive proposal artifacts and keep feedback/adoption drift as the only iteration inputs.",
      "evidence_refs": [
        {
          "record_id": "line-5",
          "excerpt": "自适应升级必须先生成提案，不能直接自动修改源文件。"
        },
        {
          "record_id": "line-6",
          "excerpt": "用户偏好扫描必须由用户提供明确路径，不要默认扫描私人日志。"
        }
      ]
    },
    {
      "proposal_id": "adapt-457baca160",
      "pattern_id": "delivery_format",
      "title": "Make generated artifact paths explicit in CLI output",
      "change_type": "artifact-discoverability",
      "status": "proposal-only",
      "requires_approval": true,
      "write_allowed_without_approval": false,
      "risk_level": "low",
      "reason": "2 redacted records matched repeated artifact-format signals.",
      "support_count": 2,
      "target_files": [
        "scripts/yao.py",
        "README.md"
      ],
      "suggested_changes": [
        "Include stable report paths in command output.",
        "Document which artifacts are meant for human review."
      ],
      "verification_commands": [
        "python3 tests/verify_yao_cli.py"
      ],
      "rollback_plan": "Revert CLI copy/documentation changes and keep artifact paths unchanged.",
      "evidence_refs": [
        {
          "record_id": "line-2",
          "excerpt": "HTML 报告需要双语能力，但默认内容应该保持中文简体。"
        },
        {
          "record_id": "line-6",
          "excerpt": "用户偏好扫描必须由用户提供明确路径，不要默认扫描私人日志。"
        }
      ]
    },
    {
      "proposal_id": "adapt-abfee25d3a",
      "pattern_id": "evidence_testing",
      "title": "Attach tests and evidence refresh to each upgrade",
      "change_type": "quality-gate",
      "status": "proposal-only",
      "requires_approval": true,
      "write_allowed_without_approval": false,
      "risk_level": "medium",
      "reason": "2 redacted records matched repeated quality-gate signals.",
      "support_count": 2,
      "target_files": [
        "tests/verify_adaptation_safety.py",
        "scripts/render_skill_os2_coverage.py",
        "reports/skill_os2_coverage.json"
      ],
      "suggested_changes": [
        "Add focused verifier coverage for every new adaptive behavior.",
        "Refresh Skill OS 2.0 coverage so planned, partial, and covered states remain visible."
      ],
      "verification_commands": [
        "python3 tests/verify_adaptation_safety.py",
        "python3 tests/verify_skill_os2_coverage.py"
      ],
      "rollback_plan": "Revert the new verifier and coverage status updates, then regenerate coverage reports.",
      "evidence_refs": [
        {
          "record_id": "line-7",
          "excerpt": "每次升级都需要测试、覆盖报告和可审计证据，推送前要跑 CI。"
        },
        {
          "record_id": "line-8",
          "excerpt": "涉及 GitHub 推送时，要保留证据链，避免把计划当作完成证明。"
        }
      ]
    }
  ],
  "failures": [],
  "artifacts": {
    "json": "reports/adaptation_proposals.json",
    "markdown": "reports/adaptation_proposals.md"
  }
}
