{
  "meta": {
    "schemaVersion": "1.0.0",
    "systemVersion": "3.0-portal-candidate",
    "name": "Jessy品牌视觉与人物系统",
    "shortName": "Jessy Visual Atlas",
    "language": "zh-CN",
    "date": "2026-10-15",
    "timezone": "Asia/Shanghai",
    "status": "design_candidate",
    "presentation": "interactive_html",
    "sourceBaseline": {
      "manual": "Jessy_Visual_Identity_System_V2.3.docx",
      "manualSha256": "15cb8eba3d03d32eba9bfb1dd9e5ba84e73bc65408fcf9e91d51e11d273b5207",
      "tokens": "V2.2 / 2.2-color-1",
      "contentBaseline": "V2.2；V2.3只更改编排",
      "readMethod": "word/document.xml 中含文本框的w:t节点，结合README、tokens、素材清单",
      "sourceFiles": [
        "V2.3 DOCX",
        "README.md",
        "ASSET_MANIFEST.json",
        "design/tokens.json",
        "design/README.md",
        "design/color/README.md",
        "design/atmosphere/README.md",
        "design/VALIDATION.json",
        "design/templates/SOURCE_MAP.json"
      ]
    },
    "relatedFiles": {
      "tokens": "./tokens.json",
      "assetIndex": "../assets/asset-index.json",
      "agentGuide": "./agent-guide.md"
    },
    "notYetCompleted": [
      "角色母版精修与真侧视",
      "猫咪实照母版",
      "字标与英文字体正式定稿",
      "其他人设的流程复用实测"
    ],
    "portalRevision": "1.1",
    "applicationExport": {
      "status": "design_candidate",
      "dimensions": [
        1080,
        1440
      ],
      "formats": [
        "PNG",
        "SVG"
      ],
      "imagePolicy": "内嵌原始透明PNG，文字与人物分层；不重绘母版。",
      "validation": "静态SVG排版与纯函数检查，网页浏览器交互仍待实测。"
    }
  },
  "statuses": {
    "confirmed_reference": {
      "label": "已确认参考",
      "meaning": "原资料明确认可的特定用途；确认不外溢到图中所有元素。"
    },
    "design_candidate": {
      "label": "设计候选",
      "meaning": "可演示与评审，不自动替换主参考。"
    },
    "needs_revision": {
      "label": "待修正",
      "meaning": "已知问题必须修正后才可作为最终产物。"
    },
    "historical_reference": {
      "label": "历史参考",
      "meaning": "只保留被登记的构图或叙事价值。"
    },
    "pending": {
      "label": "待补充",
      "meaning": "证据或资产尚未完成。"
    }
  },
  "identity": {
    "naming": {
      "name": "Jessy不慌张女士",
      "englishName": "Jessy",
      "signature": "@JessyJang",
      "motto": "Respect the unknown",
      "wordmarkStatus": "design_candidate",
      "pending": [
        "正式中英文字体",
        "安全留白量",
        "最小尺寸",
        "独立矢量字标"
      ],
      "rules": [
        "单色与反白都应清楚",
        "中文名、空间名、署名不挤压",
        "演示字标不代表商标注册或最终Logo"
      ]
    },
    "masterAssetId": "M01",
    "storyAssetId": "M02",
    "fixed": [
      {
        "id": "adult",
        "rule": "以真实Jessy为原型的成年女性数字分身，保留成人气质。",
        "source": "DOCX 14"
      },
      {
        "id": "face",
        "rule": "圆脸、眼型、五官关系和头身以M01实图为准。",
        "source": "DOCX 05"
      },
      {
        "id": "hair",
        "rule": "蓝黑渐变长发，保持认可发型、发丝与细腻画法。",
        "source": "DOCX 05/15"
      },
      {
        "id": "glasses",
        "rule": "头顶墨镜是常用识别锚点；按场景处理仍须认出同一人。",
        "source": "DOCX 05及当前对话"
      },
      {
        "id": "rendering",
        "rule": "延续细腻Q版的线条、阴影和材质；不靠蓝头发和墨镜勉强认人。",
        "source": "DOCX 05/13/18"
      },
      {
        "id": "everyday-clothes",
        "rule": "日常基准为宽松黑色长袖、黑裤、无logo白鞋。",
        "source": "DOCX 15"
      }
    ],
    "changeable": [
      {
        "id": "expression",
        "rule": "自然、专注、疑惑、无语、惊讶、微笑；满意和疲惫可另行扩展。"
      },
      {
        "id": "pose",
        "rule": "动作、观看方向、重心、遮挡随任务变化。"
      },
      {
        "id": "clothing",
        "rule": "工作、网球、健身、旅行可用合理场景服装；运动可束发。"
      },
      {
        "id": "environment",
        "rule": "昼夜、天气和场景可变，脸型、比例、发色和自然肤色不随主题重置。"
      }
    ],
    "forbidden": [
      "将候选新脸、头身或甜美脸直接升级为同一人物母版",
      "把生成时间更晚或分辨率更高当作认可依据",
      "统一卖萌、幼态说话或永远成功的人设",
      "默认书包、常驻包或机器人陪伴",
      "缺少依据的品牌logo和产品细节",
      "没有猫咪实照却继承旧图黑猫、橘白猫等错误外观",
      "用座椅透视或不同尺度服装图推导精确头身比"
    ],
    "numericProportions": {
      "value": null,
      "status": "pending",
      "rule": "从M01测量并经用户确认后记录，当前不捏造比例。"
    },
    "character": {
      "description": "有营销经验、视觉设计背景和AI实践的成年女性创作者；工作之外打网球、健身、旅行，与猫生活。",
      "status": "design_candidate",
      "traits": [
        {
          "name": "外冷内热",
          "action": "说话直接，帮助具体"
        },
        {
          "name": "好奇爱试",
          "action": "观察、操作、比较、拆解"
        },
        {
          "name": "有审美和判断",
          "action": "检查结果，不因为AI生成就接受"
        },
        {
          "name": "幽默",
          "action": "克制的挑眉、无语和反差"
        },
        {
          "name": "重视实用",
          "action": "说明问题、过程和结果"
        },
        {
          "name": "真实有起伏",
          "action": "可以犹豫、疲惫、失败和重试"
        }
      ],
      "notPanicMeaning": {
        "text": "遇到问题先弄清楚，再往前做；允许焦虑与着急。",
        "status": "design_candidate"
      },
      "publicClaims": [
        "履历、客户、成果与案例可核实",
        "不自动披露私人或公司内部信息"
      ]
    },
    "companions": [
      {
        "id": "FU",
        "name": "FU",
        "breed": "英短蓝猫",
        "status": "pending",
        "requires": "真实照片校准脸、体型、毛色",
        "masterAssetId": null,
        "missingReferenceBehavior": "省略；不编造；不用生成猫替代实照母版"
      },
      {
        "id": "255",
        "name": "255",
        "breed": "英短乳白猫",
        "status": "pending",
        "requires": "真实照片校准脸、体型、毛色",
        "masterAssetId": null,
        "missingReferenceBehavior": "省略；不编造；不用生成猫替代实照母版"
      }
    ],
    "expressions": {
      "assetId": "C02",
      "status": "design_candidate",
      "core": [
        "自然",
        "专注",
        "疑惑",
        "无语",
        "惊讶",
        "微笑"
      ],
      "future": [
        "满意",
        "疲惫"
      ],
      "rule": "靠眉、眼、嘴变化区分，不能只靠问号或爱心。",
      "directionNaming": "朝画面左侧 / 朝画面右侧，不使用含糊的左侧面命名。"
    },
    "voice": {
      "shared": [
        "口语直接",
        "专业判断有依据",
        "分享试过的过程和发现",
        "不居高临下",
        "不重复人物履历"
      ],
      "avoid": [
        "幼态语气",
        "空泛励志",
        "万能承诺",
        "让机器人每次代劳"
      ],
      "bySpace": {
        "小红书": [
          "遇到什么",
          "试了什么",
          "发现什么"
        ],
        "Home": [
          "作品缘起",
          "记忆与感受",
          "个人表达"
        ],
        "Library": [
          "步骤与解释",
          "案例与边界",
          "可复用方法"
        ],
        "Studio": [
          "理解需求",
          "说明方案",
          "确认交付"
        ]
      }
    }
  },
  "palette": [
    {
      "id": "ink",
      "name": "深墨蓝",
      "hex": "#2C3148",
      "rgb": [
        44,
        49,
        72
      ],
      "roles": [
        "正文",
        "主按钮"
      ],
      "token": "color.ink",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "blue",
      "name": "识别蓝",
      "hex": "#5F73C8",
      "rgb": [
        95,
        115,
        200
      ],
      "roles": [
        "品牌识别图形",
        "日间焦点",
        "局部微光"
      ],
      "token": "color.blue",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": [
        "小号正文",
        "浅色小字按钮"
      ]
    },
    {
      "id": "lavender",
      "name": "雾紫",
      "hex": "#B9B7E8",
      "rgb": [
        185,
        183,
        232
      ],
      "roles": [
        "夜间链接",
        "夜间焦点",
        "点缀"
      ],
      "token": "color.lavender",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "lilac",
      "name": "浅丁香",
      "hex": "#D8D8F0",
      "rgb": [
        216,
        216,
        240
      ],
      "roles": [
        "浅色辅助表面"
      ],
      "token": "color.lilac",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "moon",
      "name": "月光白",
      "hex": "#F7F7FB",
      "rgb": [
        247,
        247,
        251
      ],
      "roles": [
        "日间画布",
        "阅读底",
        "日间按钮文字"
      ],
      "token": "color.moon",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "silver",
      "name": "雾银",
      "hex": "#E9EAF2",
      "rgb": [
        233,
        234,
        242
      ],
      "roles": [
        "装饰边界",
        "分区",
        "禁用表面"
      ],
      "token": "color.silver",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": [
        "必要控件边界"
      ]
    },
    {
      "id": "night",
      "name": "夜幕蓝",
      "hex": "#171B32",
      "rgb": [
        23,
        27,
        50
      ],
      "roles": [
        "夜间画布",
        "夜间按钮文字"
      ],
      "token": "color.night",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "nightText",
      "name": "夜间文字",
      "hex": "#F2F1FA",
      "rgb": [
        242,
        241,
        250
      ],
      "roles": [
        "深色底正文",
        "夜间主按钮"
      ],
      "token": "color.nightText",
      "status": "design_candidate",
      "provenance": "沿用原八个品牌基色；本系统保留候选用法",
      "notFor": []
    },
    {
      "id": "linkBlue",
      "name": "链接深蓝",
      "hex": "#42549B",
      "rgb": [
        66,
        84,
        155
      ],
      "roles": [
        "浅色底普通链接"
      ],
      "token": "color.linkBlue",
      "status": "design_candidate",
      "provenance": "V2.2新增链接候选",
      "notFor": []
    }
  ],
  "colorUsage": {
    "status": "design_candidate",
    "scope": "同一视口内界面实色区域，不含完整插画和摄影",
    "dayPercent": {
      "moon": 60,
      "lilacOrSilver": 25,
      "ink": 8,
      "blue": 5,
      "lavender": 2
    },
    "nightPercent": {
      "night": 65,
      "ink": 20,
      "nightText": 10,
      "blue": 3,
      "lavender": 2
    },
    "rules": [
      "比例是同一视口界面实色区域的建议起点，不是像素硬限制。",
      "完整插画、摄影、肤色、发丝阴影与自然灯光不纳入面积比。",
      "一个主要操作焦点；高饱和蓝紫通常控制在实色面积10%以内。",
      "数字文件以sRGB HEX/RGB为准；印刷按纸张、印机和ICC转换打样。"
    ],
    "print": {
      "cmyk": null,
      "pantone": null,
      "status": "pending",
      "reason": "未经过校色与打样，不给伪精确对应值。"
    }
  },
  "typography": {
    "status": "design_candidate",
    "bodyFamilies": [
      "Noto Sans SC",
      "Noto Sans CJK SC",
      "Source Han Sans SC",
      "PingFang SC",
      "Microsoft YaHei",
      "sans-serif"
    ],
    "displayFamilies": [
      "Georgia",
      "Times New Roman",
      "serif"
    ],
    "manualRenderingFamilies": [
      "DejaVu Serif",
      "DejaVu Sans"
    ],
    "wordmarkFont": null,
    "desktopBodyPx": [
      17,
      18
    ],
    "mobileBodyPx": [
      16,
      17
    ],
    "bodyLineHeight": 1.75,
    "readingColumnPx": [
      680,
      740
    ],
    "tokenReadingMaxPx": 720,
    "contentMaxPx": 1280,
    "typeTokens": {
      "h1": {
        "value": 40,
        "unit": "px"
      },
      "h2": {
        "value": 28,
        "unit": "px"
      },
      "body": {
        "value": 17,
        "unit": "px"
      },
      "mobileBody": {
        "value": 16,
        "unit": "px"
      },
      "meta": {
        "value": 13,
        "unit": "px"
      },
      "bodyLine": 1.75
    },
    "handwritingUse": [
      "签名",
      "小注释"
    ],
    "socialAt360Px": {
      "minimumBodyEquivalentPx": 16,
      "dialogueEquivalentPx": 18,
      "minimumTitleEquivalentPx": 28,
      "equivalentAt1080BodyPx": 48
    },
    "rules": [
      "中文活字替换后检查字宽和换行。",
      "必读信息不能降级到13px元信息。",
      "英文展示风格是候选；DOCX代用字体与token候选不同，正式字体仍待定稿。"
    ]
  },
  "themes": {
    "status": "design_candidate",
    "light": {
      "text": "{color.ink}",
      "background": "{color.moon}",
      "surface": "{color.moon}",
      "soft": "{color.lilac}",
      "border": "{color.silver}",
      "primary": "{color.ink}",
      "onPrimary": "{color.moon}",
      "primaryHover": "{color.night}",
      "focus": "{color.blue}",
      "disabled": "{color.silver}",
      "link": "{color.linkBlue}",
      "controlBorder": "{color.ink}"
    },
    "dark": {
      "text": "{color.nightText}",
      "background": "{color.night}",
      "surface": "{color.ink}",
      "soft": "{color.ink}",
      "border": "{color.blue}",
      "primary": "{color.nightText}",
      "onPrimary": "{color.night}",
      "primaryHover": "{color.lilac}",
      "focus": "{color.lavender}",
      "disabled": "{color.ink}",
      "link": "{color.lavender}",
      "controlBorder": "{color.lavender}"
    },
    "semantic": {
      "light": {
        "text": {
          "primary": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "secondary": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "inverse": {
            "$type": "color",
            "$value": "{color.moon}"
          }
        },
        "link": {
          "default": {
            "$type": "color",
            "$value": "{color.linkBlue}"
          },
          "hover": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "visited": {
            "$type": "color",
            "$value": "{color.linkBlue}"
          },
          "underline": {
            "$type": "string",
            "$value": "always"
          }
        },
        "surface": {
          "canvas": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "base": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "tint": {
            "$type": "color",
            "$value": "{color.lilac}"
          },
          "selected": {
            "$type": "color",
            "$value": "{color.lilac}"
          },
          "disabled": {
            "$type": "color",
            "$value": "{color.silver}"
          }
        },
        "border": {
          "decorative": {
            "$type": "color",
            "$value": "{color.silver}"
          },
          "control": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "selected": {
            "$type": "color",
            "$value": "{color.blue}"
          }
        },
        "focus": {
          "ring": {
            "$type": "color",
            "$value": "{color.blue}"
          },
          "inner": {
            "$type": "color",
            "$value": "{color.moon}"
          }
        },
        "action": {
          "primary": {
            "background": {
              "$type": "color",
              "$value": "{color.ink}"
            },
            "text": {
              "$type": "color",
              "$value": "{color.moon}"
            },
            "hover": {
              "$type": "color",
              "$value": "{color.night}"
            }
          },
          "secondary": {
            "background": {
              "$type": "color",
              "$value": "{color.moon}"
            },
            "text": {
              "$type": "color",
              "$value": "{color.ink}"
            },
            "border": {
              "$type": "color",
              "$value": "{color.ink}"
            }
          }
        }
      },
      "dark": {
        "text": {
          "primary": {
            "$type": "color",
            "$value": "{color.nightText}"
          },
          "secondary": {
            "$type": "color",
            "$value": "{color.nightText}"
          },
          "inverse": {
            "$type": "color",
            "$value": "{color.night}"
          }
        },
        "link": {
          "default": {
            "$type": "color",
            "$value": "{color.lavender}"
          },
          "hover": {
            "$type": "color",
            "$value": "{color.lilac}"
          },
          "visited": {
            "$type": "color",
            "$value": "{color.lavender}"
          },
          "underline": {
            "$type": "string",
            "$value": "always"
          }
        },
        "surface": {
          "canvas": {
            "$type": "color",
            "$value": "{color.night}"
          },
          "base": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "tint": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "selected": {
            "$type": "color",
            "$value": "{color.ink}"
          },
          "disabled": {
            "$type": "color",
            "$value": "{color.ink}"
          }
        },
        "border": {
          "decorative": {
            "$type": "color",
            "$value": "{color.blue}"
          },
          "control": {
            "$type": "color",
            "$value": "{color.lavender}"
          },
          "selected": {
            "$type": "color",
            "$value": "{color.lavender}"
          }
        },
        "focus": {
          "ring": {
            "$type": "color",
            "$value": "{color.lavender}"
          },
          "inner": {
            "$type": "color",
            "$value": "{color.night}"
          }
        },
        "action": {
          "primary": {
            "background": {
              "$type": "color",
              "$value": "{color.nightText}"
            },
            "text": {
              "$type": "color",
              "$value": "{color.night}"
            },
            "hover": {
              "$type": "color",
              "$value": "{color.lilac}"
            }
          },
          "secondary": {
            "background": {
              "$type": "color",
              "$value": "{color.ink}"
            },
            "text": {
              "$type": "color",
              "$value": "{color.nightText}"
            },
            "border": {
              "$type": "color",
              "$value": "{color.lavender}"
            }
          }
        }
      }
    },
    "functional": {
      "light": {
        "success": {
          "text": {
            "$type": "color",
            "$value": "#246454"
          },
          "icon": {
            "$type": "color",
            "$value": "#246454"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "border": {
            "$type": "color",
            "$value": "#246454"
          }
        },
        "warning": {
          "text": {
            "$type": "color",
            "$value": "#765700"
          },
          "icon": {
            "$type": "color",
            "$value": "#765700"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "border": {
            "$type": "color",
            "$value": "#765700"
          }
        },
        "danger": {
          "text": {
            "$type": "color",
            "$value": "#9F3B57"
          },
          "icon": {
            "$type": "color",
            "$value": "#9F3B57"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "border": {
            "$type": "color",
            "$value": "#9F3B57"
          }
        },
        "info": {
          "text": {
            "$type": "color",
            "$value": "#42549B"
          },
          "icon": {
            "$type": "color",
            "$value": "#42549B"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.moon}"
          },
          "border": {
            "$type": "color",
            "$value": "#42549B"
          }
        }
      },
      "dark": {
        "success": {
          "text": {
            "$type": "color",
            "$value": "#8FC8B5"
          },
          "icon": {
            "$type": "color",
            "$value": "#8FC8B5"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.night}"
          },
          "border": {
            "$type": "color",
            "$value": "#8FC8B5"
          }
        },
        "warning": {
          "text": {
            "$type": "color",
            "$value": "#E7CD88"
          },
          "icon": {
            "$type": "color",
            "$value": "#E7CD88"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.night}"
          },
          "border": {
            "$type": "color",
            "$value": "#E7CD88"
          }
        },
        "danger": {
          "text": {
            "$type": "color",
            "$value": "#EDA8BC"
          },
          "icon": {
            "$type": "color",
            "$value": "#EDA8BC"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.night}"
          },
          "border": {
            "$type": "color",
            "$value": "#EDA8BC"
          }
        },
        "info": {
          "text": {
            "$type": "color",
            "$value": "#B9B7E8"
          },
          "icon": {
            "$type": "color",
            "$value": "#B9B7E8"
          },
          "surface": {
            "$type": "color",
            "$value": "{color.night}"
          },
          "border": {
            "$type": "color",
            "$value": "#B9B7E8"
          }
        }
      }
    },
    "rules": [
      "取语义层的正文、链接、表面、边界、焦点与操作色。",
      "正文不通过统一降opacity实现层级。",
      "链接保持下划线；状态同时提供名称、原因及图标或形状。",
      "人物蓝黑发、黑衣与自然肤色不随主题重置。"
    ]
  },
  "materials": {
    "status": "design_candidate",
    "glass": {
      "lightBase": "#F7F7FB",
      "lightOpacity": 0.72,
      "darkBase": "#171B32",
      "darkOpacity": 0.8,
      "blurPx": 24,
      "readingOpacityStart": 0.96,
      "rules": [
        "以上是起测值，模糊本身不能保证对比。",
        "最不利合成背景逐项检查文字、控件和焦点。",
        "正文保持100%不透明；长文和关键操作优先稳定实色。",
        "关闭透明效果时用对应semantic.surface.base。"
      ]
    },
    "gradient": {
      "light": "linear-gradient(180deg, #D8D8F0 0%, #F7F7FB 100%)",
      "dark": "linear-gradient(180deg, #2C3148 0%, #171B32 100%)",
      "angleDegrees": 180,
      "use": "背景氛围层",
      "never": [
        "正文",
        "字标",
        "主按钮"
      ]
    },
    "illustration": [
      "自然肤色、细腻发丝和阴影保留层次。",
      "微光与少量暖灯为环境，不自动扩充为界面主色。",
      "C06是氛围候选，不是精确HEX色卡或连续动画帧。"
    ]
  },
  "ui": {
    "status": "design_candidate",
    "states": [
      "default",
      "hover",
      "focus-visible",
      "disabled"
    ],
    "cardRadiusPx": [
      18,
      24
    ],
    "tokenCardRadiusPx": 22,
    "controlRadiusPx": 14,
    "buttonHeightPx": 48,
    "focusOutlinePx": 2,
    "icon": {
      "viewBox": "0 0 24 24",
      "strokeWidth": 1.5,
      "fill": "none",
      "colorMode": "currentColor",
      "available": [
        "home",
        "book",
        "projects",
        "search",
        "contact",
        "settings",
        "play",
        "download"
      ]
    },
    "rules": [
      "必要边界与装饰边界分开取色。",
      "内联SVG可以继承currentColor；img加载的SVG不自动继承。",
      "装饰图标aria-hidden；独立功能控件有文字名称。",
      "禁用态例外不能用于必读信息。",
      "静态状态样张不代表实际键盘交互已通过。"
    ]
  },
  "motion": {
    "status": "design_candidate",
    "durationMs": [
      180,
      280
    ],
    "tokenDurationMs": 220,
    "hoverLiftPx": [
      2,
      4
    ],
    "tokenLiftPx": 2,
    "rules": [
      "无持续闪烁和强弹跳。",
      "雨、云、天气、3D与重粒子属于可关闭氛围。",
      "尊重prefers-reduced-motion。",
      "弱网、低性能设备降低模糊和重粒子。"
    ],
    "runtimeValidation": "not_in_source_baseline"
  },
  "layouts": {
    "status": "design_candidate",
    "spacingScalePx": [
      4,
      8,
      12,
      16,
      24,
      32,
      48,
      64
    ],
    "responsive": {
      "checkWidthsCssPx": [
        375,
        430,
        768,
        1024,
        1440
      ],
      "socialReviewWidthPx": 360,
      "targetTouchSizeCssPx": [
        44,
        44
      ],
      "rules": [
        "无横向滚动、遮挡和截断",
        "按屏幕重排，不缩小整页代替响应式",
        "键盘完成核心操作",
        "主要操作不只靠Hover出现"
      ]
    },
    "content": {
      "ratio": "3:4",
      "width": 1080,
      "height": 1440,
      "defaultImageCount": [
        4,
        6
      ],
      "sequence": [
        "封面",
        "教程或漫画内页",
        "邀请尾页"
      ],
      "templates": [
        {
          "id": "cover",
          "name": "封面",
          "status": "design_candidate",
          "purpose": "先读主题，再感知视觉气质"
        },
        {
          "id": "tutorial",
          "name": "教程",
          "status": "design_candidate",
          "purpose": "步骤、场景、结果；正文48px起测"
        },
        {
          "id": "comic",
          "name": "漫画",
          "status": "historical_reference",
          "purpose": "分镜、动作因果与读图顺序；旧整页不能直接作为新稿"
        },
        {
          "id": "invite",
          "name": "邀请尾页",
          "status": "design_candidate",
          "purpose": "开放手掌、面向读者；一个相关问题与署名"
        }
      ],
      "rules": [
        "先安排文字空间，再放人物。",
        "每页一件事；按故事增减，不删因果换留白。",
        "PNG供固定预览，SVG活字可编辑但依赖字体。",
        "正式发布替换真实文案、页码并检查手机阅读。"
      ]
    }
  },
  "spaces": {
    "Home": {
      "name": "Home",
      "domain": "jessyjang.com",
      "purpose": "个人作品、创作故事、碎碎念与个人表达",
      "experience": "感性、艺术化的数字栖居地",
      "voice": [
        "缘起",
        "记忆",
        "感受"
      ],
      "scenePercentFirstViewport": 55,
      "contentPriorityPercent": {
        "world": 40,
        "content": 45,
        "play": 15
      },
      "status": "design_candidate"
    },
    "Library": {
      "name": "Library",
      "domain": "library.jessyjang.com",
      "purpose": "方法、文章、课程和可复用知识资产",
      "experience": "连续阅读、步骤解释、案例与边界",
      "voice": [
        "如何做",
        "适用场景",
        "方法可复用"
      ],
      "scenePercentFirstViewport": 15,
      "contentPriorityPercent": {
        "world": 15,
        "content": 75,
        "play": 10
      },
      "status": "design_candidate",
      "contentTypes": [
        {
          "id": "OPEN",
          "required": [
            "摘要",
            "难度",
            "时长",
            "更新时间"
          ]
        },
        {
          "id": "PASS",
          "required": [
            "会员内容",
            "权益边界"
          ]
        },
        {
          "id": "EDITION",
          "required": [
            "内容",
            "试读",
            "版本",
            "价格",
            "退款说明"
          ]
        },
        {
          "id": "TOOL",
          "required": [
            "场景",
            "演示",
            "安装",
            "更新"
          ]
        },
        {
          "id": "1v1",
          "required": [
            "适合对象",
            "课时",
            "交付边界"
          ]
        }
      ]
    },
    "Studio": {
      "name": "Studio",
      "domain": "studio.jessyjang.com",
      "purpose": "理解企业客户问题，呈现方案、案例和交付成果",
      "experience": "让客户判断是否适合、能得到什么",
      "voice": [
        "需求",
        "方案",
        "交付证据"
      ],
      "scenePercentFirstViewport": 8,
      "contentPriorityPercent": {
        "world": 15,
        "content": 75,
        "play": 10
      },
      "status": "design_candidate"
    },
    "sharedRules": [
      "场景首屏比例是构图起点，与实色面积比例分开。",
      "内容取舍比例不是像素面积。",
      "人物不得遮正文、表单或付款操作。",
      "同一人物与品牌基础，不要求同一种卡片与页面密度。",
      "门户中的页面是应用演示，不代表对应三站已重建或上线。"
    ]
  },
  "sections": [
    {
      "id": "00",
      "title": "适用范围与决策状态",
      "titleEn": "One identity",
      "primary": "一个Jessy，多个使用空间。",
      "rules": [
        "先看效果，再按任务展开规则。",
        "Home、Library、Studio共用人物身份与基础视觉。",
        "用户最新明确指令优先；新生成图不自动成为标准。"
      ],
      "visualAssetIds": [
        "M01",
        "A01"
      ],
      "dataPath": "meta",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "01",
      "title": "品牌战略与名称组合",
      "titleEn": "The name",
      "primary": "用作品、方法和实际结果建立信任。",
      "rules": [
        "品牌名称为Jessy不慌张女士；署名@JessyJang。",
        "保留中文、英文与空间组合的呼吸空间。",
        "现有字标是设计样张；正式字体、最小尺寸、留白及独立矢量仍待定稿。"
      ],
      "visualAssetIds": [],
      "dataPath": "identity.naming",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "02",
      "title": "母视觉与场景氛围",
      "titleEn": "A world to inhabit",
      "primary": "现实生活之上，覆盖一层克制的想象。",
      "rules": [
        "柔光、云海、月夜与细腻通透材质为场景候选。",
        "不以满屏粒子、赛博网格替代品牌识别。",
        "历史板中的猫与品牌标识不可直接继承。"
      ],
      "visualAssetIds": [
        "A01",
        "C06"
      ],
      "dataPath": "materials",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "03",
      "title": "颜色与材质",
      "titleEn": "The palette",
      "primary": "每一种颜色都有分工。",
      "rules": [
        "先选昼夜，再取语义色，最后加人物与微光。",
        "界面色板不限制插画自然肤色和发丝层次。",
        "面积比例、玻璃和渐变是起测候选；真实页面仍须检查。"
      ],
      "visualAssetIds": [
        "C06"
      ],
      "dataPath": "palette",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "04",
      "title": "字体排版与阅读",
      "titleEn": "Type with a voice",
      "primary": "让内容清楚，也让文字有气质。",
      "rules": [
        "中文优先Noto Sans SC同系思源黑体。",
        "英文展示字体与正式字标仍待定稿，不把本册代用字体升格。",
        "必读正文在360px宽预览等效至少16px；对白约18px；标题28px以上。"
      ],
      "visualAssetIds": [],
      "dataPath": "typography",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "05",
      "title": "人物视角与识别锚点",
      "titleEn": "The same person",
      "primary": "换动作、换场景，仍然是同一个人。",
      "rules": [
        "M01锁定脸型、眼型、头身与画法；不只靠蓝发和墨镜。",
        "朝向按画面左右命名，避免人物自身左右混淆。",
        "现有视角含四分之三；真90度侧面与统一尺度待修。"
      ],
      "visualAssetIds": [
        "M01",
        "C01"
      ],
      "dataPath": "identity.fixed",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "06",
      "title": "UI组件与状态",
      "titleEn": "States of interaction",
      "primary": "让每个操作都有清楚的反馈。",
      "rules": [
        "默认、悬停、焦点、禁用分别实现。",
        "雾银边框作装饰；必要控件使用语义control边界。",
        "主按钮与正文保持实色，真实网页要用键盘验收。"
      ],
      "visualAssetIds": [],
      "dataPath": "ui",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "07",
      "title": "动效天气与昼夜",
      "titleEn": "A quiet rhythm",
      "primary": "氛围有节奏，阅读有控制权。",
      "rules": [
        "微交互通常180–280ms，悬停位移2–4px。",
        "天气、云、雨和3D是可关闭的氛围层。",
        "尊重减弱动态偏好；低性能设备减少粒子与模糊。"
      ],
      "visualAssetIds": [
        "C06"
      ],
      "dataPath": "motion",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "08",
      "title": "三个站点的差异化应用",
      "titleEn": "Spaces with a purpose",
      "primary": "同一个身份，服务三个不同任务。",
      "rules": [
        "Home呈现作品与创作故事。",
        "Library呈现方法、知识和连续阅读。",
        "Studio呈现客户问题、方案与交付；不要求三站同一种卡片。"
      ],
      "visualAssetIds": [
        "A01"
      ],
      "dataPath": "spaces",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "09",
      "title": "Library内容与商业界面",
      "titleEn": "The reading room",
      "primary": "先说明内容和边界，再邀请行动。",
      "rules": [
        "OPEN、PASS、EDITION、TOOL与1v1分别说明用途与权益。",
        "不虚构价格、客户、销售成绩。",
        "会员不默认包含独立专刊；真实交易与交付状态以服务端为准。"
      ],
      "visualAssetIds": [],
      "dataPath": "spaces.Library.contentTypes",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "10",
      "title": "响应式性能与无障碍",
      "titleEn": "Room to respond",
      "primary": "同一内容，按屏幕自然重排。",
      "rules": [
        "检查375、430、768、1024、1440 CSS px。",
        "避免横向溢出、遮挡和截断；核心操作能用键盘完成。",
        "购买或重要入口不只在Hover出现；失败和加载状态可见。"
      ],
      "visualAssetIds": [],
      "dataPath": "layouts.responsive",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "11",
      "title": "素材索引与文件组织",
      "titleEn": "The source of truth",
      "primary": "素材多，标准仍要清楚。",
      "rules": [
        "M01负责身份与画法；M02负责历史叙事布局。",
        "每项登记用途、尺寸、来源、版本和确认范围。",
        "C01–C06是候选；历史合集不能自动作为新母版。"
      ],
      "visualAssetIds": [
        "M01",
        "M02",
        "C01",
        "C02",
        "C03",
        "C04",
        "C05",
        "C06"
      ],
      "dataPath": "assetPolicy",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "12",
      "title": "内容版式与应用",
      "titleEn": "The first impression",
      "primary": "先分配文字空间，再让人物进入画面。",
      "rules": [
        "封面、教程、漫画与邀请尾页使用1080×1440模板。",
        "每页一件事，默认4–6张按任务调整；保留故事和行动因果。",
        "漫画历史整页不能原样当新稿发布；先验手机文字。"
      ],
      "visualAssetIds": [
        "M02",
        "C04",
        "C05"
      ],
      "dataPath": "layouts.content",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "13",
      "title": "正确参考与偏差对照",
      "titleEn": "Keep the character",
      "primary": "局部改问题，身份不漂移。",
      "rules": [
        "字小先改文字空间，换动作调整姿态与遮挡。",
        "画风失败不能只调色后声称修复。",
        "无依据的黑猫、橘白猫、机器人、书包与品牌标识不沿用。"
      ],
      "visualAssetIds": [
        "M01",
        "H01"
      ],
      "dataPath": "qa.hardFail",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "14",
      "title": "人物身份与性格",
      "titleEn": "A person in action",
      "primary": "外表冷静，始终在尝试。",
      "rules": [
        "成年女性数字分身；有营销、视觉设计与AI实践背景。",
        "外冷内热、好奇、有判断与幽默是性格建议，用行为表达。",
        "允许着急、疲惫、失败与重试；公开履历与成果须可核实。"
      ],
      "visualAssetIds": [
        "M01"
      ],
      "dataPath": "identity.character",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "15",
      "title": "外形服装与道具",
      "titleEn": "Life changes clothes",
      "primary": "衣服随生活变化，人物身份保持一致。",
      "rules": [
        "日常：宽松黑色长袖、黑裤、无logo白鞋；运动可合理束发。",
        "包不常驻，不使用书包；其他包按当次明确需求。",
        "FU是英短蓝猫，255是英短乳白猫；缺实照就省略，不编造。"
      ],
      "visualAssetIds": [
        "C01"
      ],
      "dataPath": "identity.companions",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "16",
      "title": "表达方式与人物关系",
      "titleEn": "A voice of her own",
      "primary": "说试过的事，提供具体帮助。",
      "rules": [
        "她主动提问、尝试、检查与修改，AI不是代劳的默认主角。",
        "小红书说问题与发现；Home说缘起；Library说方法；Studio说交付。",
        "口语直接，判断有依据；避免幼态语气、万能承诺和重复履历。"
      ],
      "visualAssetIds": [],
      "dataPath": "identity.voice",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "17",
      "title": "表情动作与交接",
      "titleEn": "A range of emotions",
      "primary": "情绪由五官表达，动作有具体用途。",
      "rules": [
        "自然、专注、疑惑、无语、惊讶、微笑需要眉眼嘴差异。",
        "不只靠问号、爱心等符号区分表情。",
        "C03/C04/C05是RGBA候选；边缘与比例待精修；C05不作正交比例基准。"
      ],
      "visualAssetIds": [
        "C02",
        "C03",
        "C04",
        "C05"
      ],
      "dataPath": "identity.expressions",
      "defaultExpanded": false,
      "status": "design_candidate"
    },
    {
      "id": "18",
      "title": "验收确认与版本记录",
      "titleEn": "The standard of done",
      "primary": "模型检查与用户确认分开记录。",
      "rules": [
        "分别检查人物、画风、构图、动作和文字。",
        "同类失败两次后缩小修改范围，或回到认可图。",
        "新图不等于用户认可；最终状态必须有明确确认记录。"
      ],
      "visualAssetIds": [],
      "dataPath": "qa",
      "defaultExpanded": false,
      "status": "design_candidate"
    }
  ],
  "assetPolicy": {
    "index": "../assets/asset-index.json",
    "resolveBy": "assetGroups[assetId]",
    "references": [
      {
        "id": "M01",
        "status": "confirmed_reference",
        "scope": "人物身份与细腻画法",
        "confirmationBasis": "源手册05/11与README明确记载为已认可主参考",
        "notAuthorizedAs": "新图中的错误猫咪、道具或产品标识"
      },
      {
        "id": "M02",
        "status": "confirmed_reference",
        "scope": "认可系列的历史叙事、分镜与布局参考",
        "confirmationBasis": "源手册11/12与README登记的叙事用途",
        "elementStatus": "historical_reference",
        "notAuthorizedAs": "猫咪外观、产品品牌、正式小字号和新人物母版"
      },
      {
        "id": "C01",
        "status": "design_candidate",
        "scope": "视角与服装候选",
        "limits": [
          "含四分之三，不是已验收真90度侧视",
          "比例未统一",
          "源包没有独立C01命名文件，按新索引定位板图"
        ]
      },
      {
        "id": "C02",
        "status": "design_candidate",
        "scope": "表情与动作候选",
        "limits": [
          "未逐项用户确认",
          "不能只靠符号区分表情",
          "源包没有独立C02命名文件，按新索引定位板图"
        ]
      },
      {
        "id": "C03",
        "status": "design_candidate",
        "scope": "独立正面站姿",
        "dimensions": [
          1024,
          1536
        ],
        "format": "RGBA PNG",
        "limits": [
          "细发丝边缘、五官和比例待精修"
        ]
      },
      {
        "id": "C04",
        "status": "design_candidate",
        "scope": "向画面左侧讲解",
        "dimensions": [
          1151,
          1366
        ],
        "format": "RGBA PNG",
        "limits": [
          "细发丝边缘、五官和比例待精修"
        ]
      },
      {
        "id": "C05",
        "status": "design_candidate",
        "scope": "坐姿邀请，含座椅",
        "dimensions": [
          1024,
          1536
        ],
        "format": "RGBA PNG",
        "limits": [
          "透视姿态不能作为正交比例母版",
          "边缘、五官和比例待精修"
        ]
      },
      {
        "id": "C06",
        "status": "design_candidate",
        "scope": "昼夜氛围与材质",
        "limits": [
          "不是精确HEX色卡",
          "不是连续动画关键帧",
          "不替换人物母版"
        ]
      },
      {
        "id": "A01",
        "status": "historical_reference",
        "scope": "已有网站氛围探索"
      },
      {
        "id": "H01",
        "status": "historical_reference",
        "scope": "历史角色合集的局部构图价值"
      }
    ],
    "rules": [
      "生成前实际打开M01；漫画任务再打开M02。",
      "确认必须登记对象、用途、版本与用户证据。",
      "模型自评通过或自动化检测通过不改变用户确认状态。",
      "保留原始母版；改图生成新版本，不覆盖认可源图。",
      "不把整册截图当作可编辑素材。",
      "候选可用来提案；最终定稿须逐项验收。"
    ],
    "resolutionRule": "从asset-index.json的assetGroups按ID查找；available=false的历史项不得推断或替换。"
  },
  "workflows": [
    {
      "id": "social-content",
      "title": "做一组真实内容",
      "inputs": [
        "真实选题与目标读者",
        "本次信息重点与最终文案",
        "封面/内页/尾页用途",
        "需要的人物动作",
        "是否出现两猫/真实产品",
        "尺寸与交付形式"
      ],
      "execution": [
        "读取规则、tokens和素材索引；打开M01，漫画时打开M02。",
        "选择模板与候选姿态，先分配文字空间。",
        "按动作调整姿态，按昼夜选语义配色，保留人物身份。",
        "输出1080×1440原图、可编辑稿和缩至360px的手机预览。"
      ],
      "review": [
        "依次验人物、画风、动作、构图、文字。",
        "检查字号、对比、方向、猫咪依据和品牌细节。",
        "记录用了什么、改了什么、为什么和剩余候选。"
      ],
      "outputs": [
        "可见成品",
        "使用素材清单",
        "修改说明",
        "待确认项"
      ],
      "status": "reproducible_procedure_not_completed_case"
    },
    {
      "id": "space-application",
      "title": "做一个空间的应用",
      "inputs": [
        "Home/Library/Studio",
        "一个真实页面任务",
        "真实内容和主操作",
        "日间/夜间",
        "桌面与手机尺寸"
      ],
      "execution": [
        "先决定页面任务与内容优先级。",
        "用该空间的场景密度起点组织构图，不机械换算比例。",
        "从tokens读取正文、链接、控件、状态和焦点。",
        "将人物与插画放在不遮挡内容的位置。"
      ],
      "review": [
        "在375/430/768/1024/1440宽检查。",
        "键盘完成核心操作。",
        "检查减弱动态、玻璃降级与最不利背景对比。"
      ],
      "outputs": [
        "实际页面/组件",
        "响应式预览",
        "测试记录"
      ],
      "status": "reproducible_procedure_not_claimed_deployment"
    },
    {
      "id": "other-person-test",
      "title": "换一个人的资料做复用验证",
      "inputs": [
        "对方自己的背景、气质、识别特征",
        "对方认可的视觉参考",
        "各自品牌名、颜色、字体和人物",
        "同一组头像、封面、内页、主页任务"
      ],
      "execution": [
        "保留输入—规则—应用—复核的流程。",
        "替换Jessy人物、蓝紫色、文字气质与空间选择。",
        "制作相同任务集，保留失败版本和修改依据。"
      ],
      "review": [
        "不靠换名字/换颜色伪装成不同IP。",
        "核查相同流程是否产生明显不同且稳定的识别。",
        "由各自用户确认身份，不由模型宣布成功。"
      ],
      "outputs": [
        "跨人设的结果对照",
        "失败与修改记录",
        "可复用性结论及边界"
      ],
      "status": "not_started"
    }
  ],
  "qa": {
    "statusRule": "结构检查、视觉复核和用户确认独立记录；不得将模型自评写成已确认。",
    "dimensions": [
      "人物身份/脸型/眼型/比例",
      "画风/发丝/线条/阴影/材质",
      "构图任务/信息顺序",
      "动作朝向/重心/情境",
      "文字字号/对比/手机阅读"
    ],
    "hardFail": [
      {
        "id": "identity-drift",
        "check": "脸型、眼型、比例或画法偏离M01",
        "fix": "回到认可图，局部修正，不靠调色掩盖。"
      },
      {
        "id": "invented-cat",
        "check": "未使用实照校准的猫或错误品种毛色被当标准",
        "fix": "省略猫，或补真实照片后校准。"
      },
      {
        "id": "wrong-prop",
        "check": "默认机器人、书包或无依据品牌标识",
        "fix": "移除；只保留任务明确指定且有依据元素。"
      },
      {
        "id": "text-unreadable",
        "check": "必读文字过小、缺字、遮挡、截断或不满足对比",
        "fix": "重排文字空间并重新查看手机预览。"
      },
      {
        "id": "contrast",
        "check": "普通文字<4.5:1；大字或必要图形/控件边界不满足适用3:1",
        "fix": "改语义配色，按实际合成背景未舍入值检查。"
      },
      {
        "id": "unusable-control",
        "check": "核心操作无可见焦点、不能键盘完成或仅Hover出现",
        "fix": "补语义控件和focus-visible，实测。"
      },
      {
        "id": "false-confirmation",
        "check": "候选被模型自动升级、实测未完成却声称通过",
        "fix": "还原状态，记录真实依据与待确认项。"
      },
      {
        "id": "false-claim",
        "check": "虚构客户、价格、销量、上线或跨人设实测",
        "fix": "改为明确演示，或使用可核实真实信息。"
      }
    ],
    "pending": [
      {
        "id": "true-profile",
        "item": "真90度侧视与统一尺度人物母版",
        "status": "pending"
      },
      {
        "id": "cat-masters",
        "item": "FU和255实照母版",
        "status": "pending"
      },
      {
        "id": "wordmark-type",
        "item": "字标、正式中英文展示字体和最小尺寸",
        "status": "pending"
      },
      {
        "id": "alpha-refine",
        "item": "C03/C04/C05发丝透明边缘、脸型和头身精修",
        "status": "pending"
      },
      {
        "id": "spaces-runtime",
        "item": "三个真实站点页面和手机交互",
        "status": "pending"
      },
      {
        "id": "other-person",
        "item": "同一流程的其他人设实测",
        "status": "pending"
      }
    ],
    "contrast": {
      "algorithm": "WCAG sRGB相对亮度",
      "normalTextMin": 4.5,
      "largeTextMin": 3,
      "requiredNonTextMin": 3,
      "largeTextMinRegularCssPx": 24,
      "largeTextMinBoldCssPx": 18.67,
      "compareUnrounded": true,
      "knownPairs": {
        "ink/moon": 11.98,
        "blue/moon": 4.12,
        "nightText/night": 15.12,
        "linkBlue/moon": 6.610003732517359
      },
      "unsafePairs": [
        {
          "foreground": "#5F73C8",
          "background": "#F7F7FB",
          "ratioApprox": 4.12,
          "notFor": "普通小字"
        },
        {
          "foreground": "#5F73C8",
          "background": "#2C3148",
          "ratioApprox": 2.91,
          "notFor": "必要边界"
        }
      ],
      "transparency": "必须用真实合成背景重算，静态色卡不等于实页通过"
    },
    "reviewRecord": {
      "requiredFields": [
        "assetId",
        "version",
        "task",
        "sourceReferences",
        "automatedChecks",
        "visualChecks",
        "knownIssues",
        "userConfirmationEvidence",
        "decisionScope",
        "status"
      ],
      "allowedUserConfirmationEvidence": "用户明确认可的消息或记录；没有时为null",
      "defaultNewAssetStatus": "design_candidate",
      "retryRule": "同类失败两次后缩小范围或回到认可图。"
    }
  },
  "discrepancies": [
    {
      "id": "source-fonts",
      "severity": "documented_variation",
      "detail": "V2.3正文说明英文展示用DejaVu Serif/Sans；tokens指定Georgia/Times。两者都是代用/候选，不是正式字标字体。",
      "resolution": "门户可保持候选展示；字体不标已定稿。"
    },
    {
      "id": "empty-png",
      "severity": "source_asset_error",
      "detail": "源manifest与文件均显示design/color/03g-three-spaces.png为0字节。",
      "resolution": "不用该PNG；使用有效SVG或从SVG重新渲染，另行登记新预览。"
    },
    {
      "id": "old-component-colors",
      "severity": "source_precedence",
      "detail": "components-preview.html与组件SVG属于前轮；新的semantic.control边界规则优先。",
      "resolution": "按tokens新语义层做交互，不以旧图推翻新规则。"
    },
    {
      "id": "c01-c02-files",
      "severity": "indexing_required",
      "detail": "C01/C02在源文档中是候选板，源包无同名独立文件。",
      "resolution": "由asset-index映射具体板图；不杜撰文件路径。"
    },
    {
      "id": "manifest-status",
      "severity": "source_metadata_broad",
      "detail": "源manifest对多数文件使用retained-or-updated-see-README，不能推导用户已确认。",
      "resolution": "按README和手册的用途范围拆分状态。"
    }
  ]
}