<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="675" viewBox="0 0 1200 675" role="img" aria-labelledby="title desc">
  <title id="title">构建、测试、制品与发布四阶段全景</title>
  <desc id="desc">展示代码变更经过构建、测试、制品管理和发布控制进入生产环境的阶段边界</desc>
  <rect width="1200" height="675" fill="#f7fafc"/>
  <defs>
    <linearGradient id="g1" x1="0" x2="1" y1="0" y2="1">
      <stop offset="0" stop-color="#2563eb"/>
      <stop offset="1" stop-color="#06b6d4"/>
    </linearGradient>
    <filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
      <feDropShadow dx="0" dy="10" stdDeviation="12" flood-color="#0f172a" flood-opacity="0.14"/>
    </filter>
    <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
      <path d="M 0 0 L 10 5 L 0 10 z" fill="#2563eb"/>
    </marker>
  </defs>
  <text x="60" y="64" font-size="30" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">交付链路四阶段边界</text>
  <text x="60" y="100" font-size="16" font-family="Arial, sans-serif" fill="#475569">每个阶段都有独立输入、输出、门禁和审计记录</text>
  <g transform="translate(55 155)">
    <rect x="0" y="0" width="175" height="360" rx="24" fill="#ffffff" filter="url(#shadow)"/>
    <circle cx="88" cy="62" r="34" fill="#dbeafe"/>
    <path d="M77 60h22M82 48l-15 12 15 12M94 48l15 12-15 12" stroke="#2563eb" stroke-width="5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
    <text x="88" y="125" text-anchor="middle" font-size="24" font-family="Arial, sans-serif" font-weight="700" fill="#1e3a8a">代码变更</text>
    <text x="88" y="162" text-anchor="middle" font-size="15" font-family="Arial, sans-serif" fill="#475569">提交</text>
    <text x="88" y="188" text-anchor="middle" font-size="15" font-family="Arial, sans-serif" fill="#475569">合并请求</text>
    <text x="88" y="214" text-anchor="middle" font-size="15" font-family="Arial, sans-serif" fill="#475569">变更单</text>
    <rect x="28" y="276" width="119" height="44" rx="12" fill="#eff6ff"/>
    <text x="88" y="303" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="#1d4ed8">输入来源</text>
  </g>
  <g transform="translate(285 140)">
    <rect width="190" height="390" rx="28" fill="#ffffff" filter="url(#shadow)"/>
    <rect x="24" y="24" width="142" height="54" rx="16" fill="url(#g1)"/>
    <text x="95" y="59" text-anchor="middle" font-size="22" font-family="Arial, sans-serif" font-weight="700" fill="#ffffff">构建</text>
    <text x="32" y="120" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">目标</text>
    <text x="32" y="150" font-size="14" font-family="Arial, sans-serif" fill="#475569">生成可复现制品</text>
    <text x="32" y="195" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">动作</text>
    <text x="32" y="225" font-size="14" font-family="Arial, sans-serif" fill="#475569">编译 / 打包</text>
    <text x="32" y="252" font-size="14" font-family="Arial, sans-serif" fill="#475569">依赖锁定</text>
    <text x="32" y="279" font-size="14" font-family="Arial, sans-serif" fill="#475569">版本元数据</text>
    <rect x="28" y="326" width="134" height="42" rx="13" fill="#ecfeff" stroke="#67e8f9"/>
    <text x="95" y="353" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="#0e7490">输出：候选制品</text>
  </g>
  <g transform="translate(515 140)">
    <rect width="190" height="390" rx="28" fill="#ffffff" filter="url(#shadow)"/>
    <rect x="24" y="24" width="142" height="54" rx="16" fill="#16a34a"/>
    <text x="95" y="59" text-anchor="middle" font-size="22" font-family="Arial, sans-serif" font-weight="700" fill="#ffffff">测试</text>
    <text x="32" y="120" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">目标</text>
    <text x="32" y="150" font-size="14" font-family="Arial, sans-serif" fill="#475569">建立质量信心</text>
    <text x="32" y="195" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">门禁</text>
    <text x="32" y="225" font-size="14" font-family="Arial, sans-serif" fill="#475569">单元 / 集成</text>
    <text x="32" y="252" font-size="14" font-family="Arial, sans-serif" fill="#475569">契约 / E2E</text>
    <text x="32" y="279" font-size="14" font-family="Arial, sans-serif" fill="#475569">漏洞 / 密钥</text>
    <rect x="28" y="326" width="134" height="42" rx="13" fill="#f0fdf4" stroke="#86efac"/>
    <text x="95" y="353" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="#15803d">输出：测试证据</text>
  </g>
  <g transform="translate(745 140)">
    <rect width="190" height="390" rx="28" fill="#ffffff" filter="url(#shadow)"/>
    <rect x="24" y="24" width="142" height="54" rx="16" fill="#7c3aed"/>
    <text x="95" y="59" text-anchor="middle" font-size="22" font-family="Arial, sans-serif" font-weight="700" fill="#ffffff">制品</text>
    <text x="32" y="120" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">目标</text>
    <text x="32" y="150" font-size="14" font-family="Arial, sans-serif" fill="#475569">形成可信边界</text>
    <text x="32" y="195" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">能力</text>
    <text x="32" y="225" font-size="14" font-family="Arial, sans-serif" fill="#475569">不可变版本</text>
    <text x="32" y="252" font-size="14" font-family="Arial, sans-serif" fill="#475569">签名 / 扫描</text>
    <text x="32" y="279" font-size="14" font-family="Arial, sans-serif" fill="#475569">来源追踪</text>
    <rect x="28" y="326" width="134" height="42" rx="13" fill="#f5f3ff" stroke="#c4b5fd"/>
    <text x="95" y="353" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="#6d28d9">输出：发布版本</text>
  </g>
  <g transform="translate(975 140)">
    <rect width="170" height="390" rx="28" fill="#ffffff" filter="url(#shadow)"/>
    <rect x="22" y="24" width="126" height="54" rx="16" fill="#ea580c"/>
    <text x="85" y="59" text-anchor="middle" font-size="22" font-family="Arial, sans-serif" font-weight="700" fill="#ffffff">发布</text>
    <text x="28" y="120" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">目标</text>
    <text x="28" y="150" font-size="14" font-family="Arial, sans-serif" fill="#475569">控制上线风险</text>
    <text x="28" y="195" font-size="16" font-family="Arial, sans-serif" font-weight="700" fill="#0f172a">控制</text>
    <text x="28" y="225" font-size="14" font-family="Arial, sans-serif" fill="#475569">审批 / 灰度</text>
    <text x="28" y="252" font-size="14" font-family="Arial, sans-serif" fill="#475569">验证 / 观测</text>
    <text x="28" y="279" font-size="14" font-family="Arial, sans-serif" fill="#475569">暂停 / 回滚</text>
    <rect x="24" y="326" width="122" height="42" rx="13" fill="#fff7ed" stroke="#fdba74"/>
    <text x="85" y="353" text-anchor="middle" font-size="14" font-family="Arial, sans-serif" fill="#c2410c">输出：生产反馈</text>
  </g>
  <path d="M235 335 H276" stroke="#2563eb" stroke-width="4" marker-end="url(#arrow)"/>
  <path d="M480 335 H506" stroke="#2563eb" stroke-width="4" marker-end="url(#arrow)"/>
  <path d="M710 335 H736" stroke="#2563eb" stroke-width="4" marker-end="url(#arrow)"/>
  <path d="M940 335 H966" stroke="#2563eb" stroke-width="4" marker-end="url(#arrow)"/>
  <rect x="245" y="574" width="710" height="54" rx="18" fill="#0f172a"/>
  <text x="600" y="607" text-anchor="middle" font-size="18" font-family="Arial, sans-serif" fill="#e2e8f0">核心原则：一次构建，多处部署；质量门禁前移；发布可回滚、可审计</text>
</svg>
