{
  "schema_version": "v1",
  "generated_by": "msg_whitepaper_pipeline_v1",
  "quickstart_id": "contract_and_dapp_minimal",
  "title": "外部 AI 开发 Contract + dApp Quick Start",
  "goal": "Give an external AI developer agent a short path for MSG contract and dApp onboarding without losing fail-closed production boundaries.",
  "recommended_read_order": [
    "developer_entry.json",
    "quickstart/contract_and_dapp_minimal.json",
    "chain_config/developer_sandbox_strategy.json",
    "contract_reference/core_contracts.json",
    "api_specs/formal_contracts.json",
    "contract_templates/index.json",
    "examples/index.json",
    "recipes/contract_minimal.json",
    "recipes/dapp_minimal.json",
    "release_pack/developer_dapp_starter_e2e_manifest.json"
  ],
  "steps": [
    {
      "step": 1,
      "action": "read capability + sandbox boundaries",
      "consumes": [
        "developer_entry.json",
        "chain_config/developer_sandbox_strategy.json"
      ],
      "purpose": "先判断 public sandbox 是否可用，默认按 local fail-closed 路径起步。"
    },
    {
      "step": 2,
      "action": "read contract interface pack",
      "consumes": [
        "contract_reference/core_contracts.json",
        "api_specs/formal_contracts.json"
      ],
      "purpose": "先拿到核心合约 schema、msg.rs、OpenAPI 与 tool manifest，而不是只看模块叙事。"
    },
    {
      "step": 3,
      "action": "scaffold contract",
      "consumes": [
        "contract_templates/index.json",
        "recipes/contract_minimal.json"
      ],
      "purpose": "从 starter template 进入，再按核心合约 interface pack 补业务消息模型。"
    },
    {
      "step": 4,
      "action": "scaffold dapp",
      "consumes": [
        "examples/index.json",
        "recipes/dapp_minimal.json",
        "chain_config/network_presets.json"
      ],
      "purpose": "生成钱包、query、execute adapter 与最小前端结构。"
    },
    {
      "step": 5,
      "action": "bind source-backed API and schema contracts",
      "consumes": [
        "api_specs/formal_contracts.json"
      ],
      "purpose": "把 request/response、receipt/event、contract schema 与 error code 统一到正式索引。"
    },
    {
      "step": 6,
      "action": "follow local starter and E2E boundary",
      "consumes": [
        "quickstart/ai_agent_dapp_starter_README.md",
        "release_pack/developer_dapp_starter_e2e_manifest.json"
      ],
      "purpose": "先走 local verified path，不把 local starter 误当 public E2E。"
    },
    {
      "step": 7,
      "action": "prepare guarded release plan",
      "consumes": [
        "release_pack/index.json",
        "execution_pack/index.json",
        "e2e_fixtures/index.json"
      ],
      "purpose": "形成命令、验收、receipt/query/log 证据计划。"
    }
  ],
  "command_entry_points": [
    {
      "command_id": "deps",
      "path": "execution_pack/command_registry.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/command_registry.json",
      "when_to_use": "初始化依赖与本地开发环境"
    },
    {
      "command_id": "lint",
      "path": "execution_pack/command_registry.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/command_registry.json",
      "when_to_use": "进入质量门禁前先做静态检查"
    },
    {
      "command_id": "test",
      "path": "execution_pack/command_registry.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/command_registry.json",
      "when_to_use": "验证 Go 主体功能"
    },
    {
      "command_id": "ci_contracts",
      "path": "execution_pack/command_registry.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/command_registry.json",
      "when_to_use": "统一跑合约构建与 cargo test"
    },
    {
      "command_id": "build_linux",
      "path": "execution_pack/command_registry.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/command_registry.json",
      "when_to_use": "需要生成节点二进制或部署制品时"
    }
  ],
  "workflow_entry_points": [
    {
      "workflow_id": "contract_delivery_guarded_v1",
      "path": "execution_pack/delivery_workflows.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/delivery_workflows.json"
    },
    {
      "workflow_id": "dapp_delivery_guarded_v1",
      "path": "execution_pack/delivery_workflows.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/delivery_workflows.json"
    },
    {
      "workflow_id": "product_launch_guarded_v1",
      "path": "execution_pack/delivery_workflows.json",
      "public_url": "https://msgchain.org/whitepaper/execution_pack/delivery_workflows.json"
    }
  ],
  "minimal_local_command_sequence": [
    {
      "order": 1,
      "command_id": "deps",
      "why": "准备依赖环境"
    },
    {
      "order": 2,
      "command_id": "lint",
      "why": "尽早发现静态错误"
    },
    {
      "order": 3,
      "command_id": "test",
      "why": "验证主仓库逻辑"
    },
    {
      "order": 4,
      "command_id": "ci_contracts",
      "why": "验证合约 build 与测试闭环"
    }
  ],
  "local_starter_assets": [
    {
      "id": "ai_agent_dapp_starter_readme",
      "path": "quickstart/ai_agent_dapp_starter_README.md",
      "public_url": "https://msgchain.org/whitepaper/quickstart/ai_agent_dapp_starter_README.md"
    },
    {
      "id": "ai_agent_dapp_starter_env",
      "path": "quickstart/ai_agent_dapp_starter.env.example",
      "public_url": "https://msgchain.org/whitepaper/quickstart/ai_agent_dapp_starter.env.example"
    }
  ],
  "boundary": [
    "Quick Start 的目标是让外部 AI 更快进入正确入口，不是替代正式生产契约、公共测试网或最终上线审批。",
    "当前 public sandbox 默认为 disabled/fail-closed；没有显式 public proof 前，AI 必须使用 local-only 路径并保留 No-Go 边界。"
  ],
  "metadata_profile": "public_stable"
}