{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "upstream-gate.schema.json",
  "title": "Upstream Understanding-Analysis Gate Artifact",
  "description": "支柱④ 上游理解-分析 gate 产出物字段契约。x-gate-layer 标注每字段由机校（deterministic）还是 owner PR review（human）验收。validator 运行时只读 required + properties.type 做浅校验（zero-dep，不依赖 ajv）。",
  "type": "object",
  "required": [
    "feature",
    "understanding",
    "sources_read",
    "competitive",
    "persona_ia",
    "data_feasibility",
    "mvp_scope"
  ],
  "additionalProperties": true,
  "properties": {
    "feature": {
      "type": "string",
      "x-gate-layer": "deterministic",
      "description": "本次产品设计任务标识（kebab slug）。artifact 文件名应为 upstream-gate.<feature>.md。"
    },
    "understanding": {
      "type": "string",
      "x-gate-layer": "human",
      "description": "需求复述（front-matter 放摘要，正文放完整复述）。owner PR review 确认复述是否正确。"
    },
    "sources_read": {
      "type": "array",
      "items": { "type": "string" },
      "x-gate-layer": "deterministic",
      "description": "读过的真源，每条 'path#anchor' 或 'path'。validator 校锚点存在（复用 stale-anchors 机制）。"
    },
    "competitive": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["vendor", "url", "finding"],
        "properties": {
          "vendor": { "type": "string" },
          "url": { "type": "string" },
          "finding": { "type": "string" }
        }
      },
      "x-gate-layer": "deterministic+human",
      "description": "竞品实时检索结果。validator 校 URL 合法 + 域名合理 + HTTP 可达；owner 核相关性。"
    },
    "persona_ia": {
      "type": "string",
      "x-gate-layer": "human",
      "description": "persona + 信息架构（front-matter 摘要，正文详述）。owner PR review。"
    },
    "data_feasibility": {
      "type": "object",
      "required": ["fields"],
      "properties": {
        "fields": { "type": "array", "items": { "type": "string" } }
      },
      "x-gate-layer": "deterministic",
      "description": "数据可行性：本设计消费的数据字段。有 product-context 时 validator 校 fields ⊆ context.available_data_fields；缺 context 则 SKIP + degradation_note，不 FAIL。"
    },
    "mvp_scope": {
      "type": "string",
      "x-gate-layer": "human",
      "description": "MVP 范围界定（front-matter 摘要，正文详述）。owner PR review。"
    },
    "degradation_note": {
      "type": "string",
      "x-gate-layer": "machine-written",
      "description": "哪些检因缺 context/工具降级。validator 运行时生成到 stdout；artifact 里此字段可选（不回写文件）。"
    }
  }
}
