{
  "type": "excalidraw",
  "version": 2,
  "source": "infra-field-guide local editable architecture",
  "elements": [
    {
      "id": "reading-plane",
      "type": "rectangle",
      "x": 40,
      "y": 155,
      "width": 445,
      "height": 820,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 3,
      "version": 1,
      "versionNonce": 3,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "人读与 agent 阅读面",
        "responsibility": "内容是参考；真实操作授权来自 owner",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "health-plane",
      "type": "rectangle",
      "x": 525,
      "y": 155,
      "width": 1035,
      "height": 820,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 18,
      "version": 1,
      "versionNonce": 18,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "本地工具 · tools/health.py · Python 标准库",
        "responsibility": "按命令运行一次；无网络、SSH、提权、常驻服务或自动刷新。",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "verification-plane",
      "type": "rectangle",
      "x": 40,
      "y": 1015,
      "width": 1520,
      "height": 175,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 40,
      "version": 1,
      "versionNonce": 40,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "验证面 · tests/",
        "responsibility": "合成测试保护 source 契约；部署与真实客户端验收留在所选运行环境。",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "guide-workorder",
      "type": "arrow",
      "x": 262,
      "y": 400,
      "width": 0,
      "height": 90,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "dotted",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 12,
      "version": 1,
      "versionNonce": 12,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          90
        ]
      ],
      "startBinding": {
        "elementId": "docs",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "workorders",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "docs",
        "destination": "workorders",
        "payload": "工单链接教程的操作依据",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "template-workorder",
      "type": "arrow",
      "x": 262,
      "y": 730,
      "width": 0,
      "height": 90,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "dotted",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 15,
      "version": 1,
      "versionNonce": 15,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -90
        ]
      ],
      "startBinding": {
        "elementId": "examples",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "workorders",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "examples",
        "destination": "workorders",
        "payload": "合成模板供 owner 在自己的环境填写",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "read-proc",
      "type": "arrow",
      "x": 775,
      "y": 405,
      "width": 0,
      "height": 95,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 31,
      "version": 1,
      "versionNonce": 31,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          95
        ]
      ],
      "startBinding": {
        "elementId": "linux-input",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "collect",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "linux-input",
        "destination": "collect",
        "payload": "真实采集读取 Linux procfs 和根文件系统统计",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "fixture-demo",
      "type": "arrow",
      "x": 460,
      "y": 810,
      "width": 100,
      "height": 240,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 34,
      "version": 1,
      "versionNonce": 34,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ],
        [
          60,
          -240
        ],
        [
          100,
          -240
        ]
      ],
      "startBinding": {
        "elementId": "examples",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "collect",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "examples",
        "destination": "collect",
        "payload": "collect --demo 使用固定合成 fixture，替代真实采集",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "write-json",
      "type": "arrow",
      "x": 990,
      "y": 567,
      "width": 80,
      "height": 0,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 35,
      "version": 1,
      "versionNonce": 35,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          80,
          0
        ]
      ],
      "startBinding": {
        "elementId": "collect",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "snapshot",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "collect",
        "destination": "snapshot",
        "payload": "输出 schema v1 JSON",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "validate-json",
      "type": "arrow",
      "x": 1295,
      "y": 635,
      "width": 0,
      "height": 75,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 36,
      "version": 1,
      "versionNonce": 36,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          75
        ]
      ],
      "startBinding": {
        "elementId": "snapshot",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "render",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "snapshot",
        "destination": "render",
        "payload": "render 读取并验证 JSON",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "render-html",
      "type": "arrow",
      "x": 1295,
      "y": 805,
      "width": 0,
      "height": 55,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 37,
      "version": 1,
      "versionNonce": 37,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          55
        ]
      ],
      "startBinding": {
        "elementId": "render",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "html",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "render",
        "destination": "html",
        "payload": "生成离线单文件 HTML",
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "title",
      "type": "text",
      "x": 40,
      "y": 28,
      "width": 1520,
      "height": 45.900000000000006,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 1,
      "version": 1,
      "versionNonce": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 34,
      "fontFamily": 2,
      "text": "仓库架构 · 文字帮助决策，工具在本地生成快照",
      "originalText": "仓库架构 · 文字帮助决策，工具在本地生成快照",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false,
        "guide": {
          "title": "仓库架构 · 文字帮助决策，工具在本地生成快照",
          "description": "这是仓库已有的 source 结构；与前五张参考部署图分开。没有常驻 dashboard server、自动调度器或远程执行器。",
          "width": 1600,
          "height": 1270,
          "evidence": [
            "../../README.md",
            "../../agents/README.md",
            "../../tools/README.md",
            "../../tools/health.py",
            "../../tests/test_docs.py",
            "../../tests/test_health.py"
          ],
          "state": {
            "canonical": "docs说明、agents工单、examples合成输入、tools实际行为",
            "writers": "owner手动运行工具后，仅写显式新输出文件",
            "receipts": "单元测试与合成CLI输出不证明真实Linux、网络或用户服务可用"
          },
          "question": "读者和 agent 怎样使用仓库，health 的数据怎样变成 HTML？",
          "status": "implemented-source"
        }
      }
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 40,
      "y": 82,
      "width": 1520,
      "height": 25.650000000000002,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 2,
      "version": 1,
      "versionNonce": 2,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 19,
      "fontFamily": 2,
      "text": "这是仓库已有的 source 结构；与前五张参考部署图分开。没有常驻 dashboard server、自动调度器或远程执行器。",
      "originalText": "这是仓库已有的 source 结构；与前五张参考部署图分开。没有常驻 dashboard server、自动调度器或远程执行器。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "reading-plane-heading",
      "type": "text",
      "x": 60,
      "y": 170,
      "width": 405,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 4,
      "version": 1,
      "versionNonce": 4,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "人读与 agent 阅读面",
      "originalText": "人读与 agent 阅读面",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "reading-plane-sub",
      "type": "text",
      "x": 60,
      "y": 204,
      "width": 405,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 5,
      "version": 1,
      "versionNonce": 5,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "内容是参考；真实操作授权来自 owner",
      "originalText": "内容是参考；真实操作授权来自 owner",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "docs",
      "type": "rectangle",
      "x": 65,
      "y": 250,
      "width": 395,
      "height": 150,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 6,
      "version": 1,
      "versionNonce": 6,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "docs-text",
          "type": "text"
        },
        {
          "id": "guide-workorder",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "README.md → docs/",
        "responsibility": "从买机、SSH、运维到迁移与网络 / 章节说明命令位置、预期与恢复 / architecture.md 连接各条路径",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "docs-text",
      "type": "text",
      "x": 83,
      "y": 269.0,
      "width": 359,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 7,
      "version": 1,
      "versionNonce": 7,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "README.md → docs/\n从买机、SSH、运维到迁移与网络\n章节说明命令位置、预期与恢复\narchitecture.md 连接各条路径",
      "originalText": "README.md → docs/\n从买机、SSH、运维到迁移与网络\n章节说明命令位置、预期与恢复\narchitecture.md 连接各条路径",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "docs",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "workorders",
      "type": "rectangle",
      "x": 65,
      "y": 490,
      "width": 395,
      "height": 150,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 8,
      "version": 1,
      "versionNonce": 8,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "workorders-text",
          "type": "text"
        },
        {
          "id": "guide-workorder",
          "type": "arrow"
        },
        {
          "id": "template-workorder",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "agents/ · 工单文本",
        "responsibility": "先盘点目标、权限与证据 / 再提出可审查操作与验收 / 不含执行器、凭据或隐含授权",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "workorders-text",
      "type": "text",
      "x": 83,
      "y": 509.0,
      "width": 359,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 9,
      "version": 1,
      "versionNonce": 9,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "agents/ · 工单文本\n先盘点目标、权限与证据\n再提出可审查操作与验收\n不含执行器、凭据或隐含授权",
      "originalText": "agents/ · 工单文本\n先盘点目标、权限与证据\n再提出可审查操作与验收\n不含执行器、凭据或隐含授权",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "workorders",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "examples",
      "type": "rectangle",
      "x": 65,
      "y": 730,
      "width": 395,
      "height": 160,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 10,
      "version": 1,
      "versionNonce": 10,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "examples-text",
          "type": "text"
        },
        {
          "id": "template-workorder",
          "type": "arrow"
        },
        {
          "id": "fixture-demo",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "examples/ · 合成输入",
        "responsibility": "迁移计划、inventory、SSH / grant / health-demo.json 是固定合成快照 / 不含真实主机与账号数据",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "examples-text",
      "type": "text",
      "x": 83,
      "y": 754.0,
      "width": 359,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 11,
      "version": 1,
      "versionNonce": 11,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "examples/ · 合成输入\n迁移计划、inventory、SSH / grant\nhealth-demo.json 是固定合成快照\n不含真实主机与账号数据",
      "originalText": "examples/ · 合成输入\n迁移计划、inventory、SSH / grant\nhealth-demo.json 是固定合成快照\n不含真实主机与账号数据",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "examples",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "guide-workorder-label-bg",
      "type": "rectangle",
      "x": 131,
      "y": 428,
      "width": 264,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 13,
      "version": 1,
      "versionNonce": 13,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "guide-workorder-label",
      "type": "text",
      "x": 136,
      "y": 430,
      "width": 254,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 14,
      "version": 1,
      "versionNonce": 14,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "依据与阅读跳转",
      "originalText": "依据与阅读跳转",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "template-workorder-label-bg",
      "type": "rectangle",
      "x": 130,
      "y": 668,
      "width": 265,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 16,
      "version": 1,
      "versionNonce": 16,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "template-workorder-label",
      "type": "text",
      "x": 135,
      "y": 670,
      "width": 255,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 17,
      "version": 1,
      "versionNonce": 17,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "只作模板",
      "originalText": "只作模板",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "health-plane-heading",
      "type": "text",
      "x": 545,
      "y": 170,
      "width": 995,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 19,
      "version": 1,
      "versionNonce": 19,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "本地工具 · tools/health.py · Python 标准库",
      "originalText": "本地工具 · tools/health.py · Python 标准库",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "health-plane-sub",
      "type": "text",
      "x": 545,
      "y": 204,
      "width": 995,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 20,
      "version": 1,
      "versionNonce": 20,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "按命令运行一次；无网络、SSH、提权、常驻服务或自动刷新。",
      "originalText": "按命令运行一次；无网络、SSH、提权、常驻服务或自动刷新。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "linux-input",
      "type": "rectangle",
      "x": 560,
      "y": 250,
      "width": 430,
      "height": 155,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 21,
      "version": 1,
      "versionNonce": 21,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "linux-input-text",
          "type": "text"
        },
        {
          "id": "read-proc",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "真实采集 · 仅 Linux",
        "responsibility": "/proc：load、RAM、swap、uptime、PSI / statvfs(/)：根文件系统字节与 inodes / 未读 cgroup；缺失指标记 unknown",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "linux-input-text",
      "type": "text",
      "x": 578,
      "y": 271.5,
      "width": 394,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 22,
      "version": 1,
      "versionNonce": 22,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "真实采集 · 仅 Linux\n/proc：load、RAM、swap、uptime、PSI\nstatvfs(/)：根文件系统字节与 inodes\n未读 cgroup；缺失指标记 unknown",
      "originalText": "真实采集 · 仅 Linux\n/proc：load、RAM、swap、uptime、PSI\nstatvfs(/)：根文件系统字节与 inodes\n未读 cgroup；缺失指标记 unknown",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "linux-input",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "collect",
      "type": "rectangle",
      "x": 560,
      "y": 500,
      "width": 430,
      "height": 135,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 23,
      "version": 1,
      "versionNonce": 23,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "collect-text",
          "type": "text"
        },
        {
          "id": "read-proc",
          "type": "arrow"
        },
        {
          "id": "fixture-demo",
          "type": "arrow"
        },
        {
          "id": "write-json",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "collect → schema v1 JSON",
        "responsibility": "只读指标；只写显式新输出文件 / --demo 改读 fixture，不读取本机",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "collect-text",
      "type": "text",
      "x": 578,
      "y": 525.0,
      "width": 394,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 24,
      "version": 1,
      "versionNonce": 24,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "collect → schema v1 JSON\n只读指标；只写显式新输出文件\n--demo 改读 fixture，不读取本机",
      "originalText": "collect → schema v1 JSON\n只读指标；只写显式新输出文件\n--demo 改读 fixture，不读取本机",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "collect",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "snapshot",
      "type": "rectangle",
      "x": 1070,
      "y": 500,
      "width": 450,
      "height": 135,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 25,
      "version": 1,
      "versionNonce": 25,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "snapshot-text",
          "type": "text"
        },
        {
          "id": "write-json",
          "type": "arrow"
        },
        {
          "id": "validate-json",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "JSON 快照",
        "responsibility": "采集时间、来源声明、metrics / source 是声明，不是来源认证",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "snapshot-text",
      "type": "text",
      "x": 1088,
      "y": 525.0,
      "width": 414,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 26,
      "version": 1,
      "versionNonce": 26,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "JSON 快照\n采集时间、来源声明、metrics\nsource 是声明，不是来源认证",
      "originalText": "JSON 快照\n采集时间、来源声明、metrics\nsource 是声明，不是来源认证",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "snapshot",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "render",
      "type": "rectangle",
      "x": 1070,
      "y": 710,
      "width": 450,
      "height": 95,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 27,
      "version": 1,
      "versionNonce": 27,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "render-text",
          "type": "text"
        },
        {
          "id": "validate-json",
          "type": "arrow"
        },
        {
          "id": "render-html",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "render INPUT.json -o OUTPUT.html",
        "responsibility": "校验 schema / 数值，重算状态并转义",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "render-text",
      "type": "text",
      "x": 1088,
      "y": 728.5,
      "width": 414,
      "height": 54.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 28,
      "version": 1,
      "versionNonce": 28,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "render INPUT.json -o OUTPUT.html\n校验 schema / 数值，重算状态并转义",
      "originalText": "render INPUT.json -o OUTPUT.html\n校验 schema / 数值，重算状态并转义",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "render",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "html",
      "type": "rectangle",
      "x": 1070,
      "y": 860,
      "width": 450,
      "height": 90,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 29,
      "version": 1,
      "versionNonce": 29,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "html-text",
          "type": "text"
        },
        {
          "id": "render-html",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "离线 HTML · 快照看板",
        "responsibility": "内嵌 CSS；没有 JS / 外部请求 / 刷新",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "html-text",
      "type": "text",
      "x": 1088,
      "y": 876.0,
      "width": 414,
      "height": 54.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 30,
      "version": 1,
      "versionNonce": 30,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "离线 HTML · 快照看板\n内嵌 CSS；没有 JS / 外部请求 / 刷新",
      "originalText": "离线 HTML · 快照看板\n内嵌 CSS；没有 JS / 外部请求 / 刷新",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "html",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "read-proc-label-bg",
      "type": "rectangle",
      "x": 621,
      "y": 435,
      "width": 310,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 32,
      "version": 1,
      "versionNonce": 32,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "read-proc-label",
      "type": "text",
      "x": 626,
      "y": 437,
      "width": 300,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 33,
      "version": 1,
      "versionNonce": 33,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "用户在获准 Linux 上运行",
      "originalText": "用户在获准 Linux 上运行",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "output-boundary",
      "type": "rectangle",
      "x": 560,
      "y": 710,
      "width": 430,
      "height": 240,
      "angle": 0,
      "strokeColor": "#e7c979",
      "backgroundColor": "#fff5d9",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 38,
      "version": 1,
      "versionNonce": 38,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "output-boundary-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "输出边界",
        "responsibility": "reports/ 是本地生成结果，不入 Git。 / 输出文件必须不存在，不覆盖旧快照。 / HTML 年龄在生成时计算，之后不更新。 / 只看资源余量，不能证明服务可用。 / 不会上传；跨机器复制由 owner 决定。",
        "evidence": [
          "../../README.md",
          "../../agents/README.md",
          "../../tools/README.md",
          "../../tools/health.py",
          "../../tests/test_docs.py",
          "../../tests/test_health.py"
        ],
        "evidenceStatus": "implemented-source"
      }
    },
    {
      "id": "output-boundary-text",
      "type": "text",
      "x": 578,
      "y": 747.0,
      "width": 394,
      "height": 162.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 39,
      "version": 1,
      "versionNonce": 39,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "输出边界\nreports/ 是本地生成结果，不入 Git。\n输出文件必须不存在，不覆盖旧快照。\nHTML 年龄在生成时计算，之后不更新。\n只看资源余量，不能证明服务可用。\n不会上传；跨机器复制由 owner 决定。",
      "originalText": "输出边界\nreports/ 是本地生成结果，不入 Git。\n输出文件必须不存在，不覆盖旧快照。\nHTML 年龄在生成时计算，之后不更新。\n只看资源余量，不能证明服务可用。\n不会上传；跨机器复制由 owner 决定。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "output-boundary",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "verification-plane-heading",
      "type": "text",
      "x": 60,
      "y": 1030,
      "width": 1480,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 41,
      "version": 1,
      "versionNonce": 41,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "验证面 · tests/",
      "originalText": "验证面 · tests/",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "verification-plane-sub",
      "type": "text",
      "x": 60,
      "y": 1064,
      "width": 1480,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 42,
      "version": 1,
      "versionNonce": 42,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "合成测试保护 source 契约；部署与真实客户端验收留在所选运行环境。",
      "originalText": "合成测试保护 source 契约；部署与真实客户端验收留在所选运行环境。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "tests-body",
      "type": "text",
      "x": 65,
      "y": 1095,
      "width": 1470,
      "height": 27.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 43,
      "version": 1,
      "versionNonce": 43,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "test_health.py：合成 /proc、statvfs、JSON / CLI / HTML　　test_docs.py：相对链接、锚点、shell 静态语法、JSON 示例",
      "originalText": "test_health.py：合成 /proc、statvfs、JSON / CLI / HTML　　test_docs.py：相对链接、锚点、shell 静态语法、JSON 示例",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "tests-limit",
      "type": "text",
      "x": 65,
      "y": 1140,
      "width": 1470,
      "height": 25.650000000000002,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 44,
      "version": 1,
      "versionNonce": 44,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 19,
      "fontFamily": 2,
      "text": "测试通过 ≠ 真实 Linux 采集 ≠ 已安装 / 已启动 ≠ 网络可达 ≠ 真实客户端成功。图像渲染也不验证 health HTML 布局。",
      "originalText": "测试通过 ≠ 真实 Linux 采集 ≠ 已安装 / 已启动 ≠ 网络可达 ≠ 真实客户端成功。图像渲染也不验证 health HTML 布局。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "footer",
      "type": "text",
      "x": 40,
      "y": 1228,
      "width": 1520,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 45,
      "version": 1,
      "versionNonce": 45,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "实线：本地工具的数据流　虚线：--demo 可选输入　点线：文档依据 / 模板关系。此图是 source 架构，不是自动运行的生产流水线。",
      "originalText": "实线：本地工具的数据流　虚线：--demo 可选输入　点线：文档依据 / 模板关系。此图是 source 架构，不是自动运行的生产流水线。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    }
  ],
  "appState": {
    "viewBackgroundColor": "#ffffff",
    "gridSize": null
  },
  "files": {}
}
