[
  {
    "id": "choose-and-extend-capabilities",
    "kind": "task",
    "title": "选择、重构与扩展 BLOGE 能力",
    "summary": "在函数、transform、决策表、Operator 与子图之间选择，并判断扩展归属。",
    "task": "choose-and-extend-capabilities",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/choose-and-extend-capabilities.md",
    "sha256": "30b4ea3dac48eb56256881132d30075dec996cb81c1f3c2dde157da2484f65d0",
    "approx_tokens": 681,
    "prerequisites": [
      "choose-bloge"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/appendix-j-coding-practices",
      "/zh-CN/v/0.9.9-RC1/04-data-that-flows",
      "/zh-CN/v/0.9.9-RC1/05-branches-that-decide",
      "/zh-CN/v/0.9.9-RC1/07-designing-good-operators",
      "/zh-CN/v/0.9.9-RC1/34-labs",
      "/assets/v/0.9.9-RC1/chapters/34-labs/assets/coding-practices/README.md"
    ]
  },
  {
    "id": "choose-bloge",
    "kind": "task",
    "title": "判断系统是否应该使用 BLOGE",
    "summary": "根据系统约束形成可证伪的 STOP、PROBE 或 ADOPT 决策。",
    "task": "choose-bloge",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/choose-bloge.md",
    "sha256": "a1166c3893340a8608d6f7d606ce7dfc5889dbc260eafb0eb13dc7a6805573ba",
    "approx_tokens": 406,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/01-why-bloge",
      "/zh-CN/v/0.9.9-RC1/33-migration-and-comparison"
    ]
  },
  {
    "id": "compose-time-and-recovery",
    "kind": "task",
    "title": "组合子图、批量、等待与恢复",
    "summary": "选择足以覆盖集合、时间和重启边界的最小生命周期模型。",
    "task": "compose-time-and-recovery",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/compose-time-and-recovery.md",
    "sha256": "19aee30ce9c8e39c6ba07fab8a0c967d26492e35df0c14be3e4771c4de2c7cfe",
    "approx_tokens": 448,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/10-reuse-with-subgraphs",
      "/zh-CN/v/0.9.9-RC1/11-batch-and-iteration",
      "/zh-CN/v/0.9.9-RC1/12-waiting-for-the-world",
      "/zh-CN/v/0.9.9-RC1/13-durable-execution"
    ]
  },
  {
    "id": "create-first-graph",
    "kind": "task",
    "title": "创建并运行第一个 BLOGE Graph",
    "summary": "在不隐藏数据流和 Operator 责任的前提下添加最小可审查 Graph。",
    "task": "create-first-graph",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/create-first-graph.md",
    "sha256": "eae7a16118d5e194633b3fa887c95cfb6e793d78aaa28ad61cf96f4140b65994",
    "approx_tokens": 538,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/02-your-first-graph",
      "/zh-CN/v/0.9.9-RC1/03-thinking-in-dependencies",
      "/assets/v/0.9.9-RC1/chapters/02-your-first-graph/assets/head-first-bloge-examples/src/main/resources/bloge/ch02/hello-world.bloge"
    ]
  },
  {
    "id": "design-resilience",
    "kind": "task",
    "title": "设计 Retry、Timeout、Fallback 与 Compensation",
    "summary": "增加韧性，同时不把引擎控制误写成外部 Effect 保证。",
    "task": "design-resilience",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/design-resilience.md",
    "sha256": "ded475606373566cf71f295f6e82d7835372b0c3beb10066052f959041c958b9",
    "approx_tokens": 509,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/06-resilience-by-design",
      "/zh-CN/v/0.9.9-RC1/07-designing-good-operators",
      "/assets/v/0.9.9-RC1/chapters/06-resilience-by-design/assets/bloge/bloge-conformance/fixtures/snippets/basic/retry-fallback-output.bloge"
    ]
  },
  {
    "id": "migrate-and-deliver-capstone",
    "kind": "task",
    "title": "迁移工作流并交付可审查的毕业项目",
    "summary": "用等价证据、回滚点和可证伪验收结果迁移一个有边界的工作流。",
    "task": "migrate-and-deliver-capstone",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/migrate-and-deliver-capstone.md",
    "sha256": "ea82aaaecfe013e199787ef6e1cc041c1d7d58df7286047bf17e8bd6910f812f",
    "approx_tokens": 411,
    "prerequisites": [
      "choose-bloge",
      "test-observe-and-wire-production"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/33-migration-and-comparison",
      "/zh-CN/v/0.9.9-RC1/34-labs"
    ]
  },
  {
    "id": "orchestrate-session-state-agent",
    "kind": "task",
    "title": "编排 Session、状态机与受限 Agent",
    "summary": "指定唯一生命周期所有者，并把非确定性模型行为限制在确定性边界内。",
    "task": "orchestrate-session-state-agent",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/orchestrate-session-state-agent.md",
    "sha256": "e1bfa49e90f91f4622ab70ea84a03223434f5cc7c307fed07c8e85b07f02f90a",
    "approx_tokens": 449,
    "prerequisites": [
      "compose-time-and-recovery"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/14-multi-turn-sessions",
      "/zh-CN/v/0.9.9-RC1/15-state-machines",
      "/zh-CN/v/0.9.9-RC1/16-composing-sessions-and-state-machines",
      "/zh-CN/v/0.9.9-RC1/17-agent-orchestration"
    ]
  },
  {
    "id": "test-observe-and-wire-production",
    "kind": "task",
    "title": "测试、观测并完成 BLOGE 生产接线",
    "summary": "让技术 claim 与正确的测试范围、运行信号、Spring 所有者和容量实验对应。",
    "task": "test-observe-and-wire-production",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/test-observe-and-wire-production.md",
    "sha256": "faef0f281af430bba7503df80c3b0f8fe51aff5dfcc02684b72a6756bd65357f",
    "approx_tokens": 478,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/18-testing-your-graphs",
      "/zh-CN/v/0.9.9-RC1/19-observability-in-production",
      "/zh-CN/v/0.9.9-RC1/20-spring-and-production-wiring",
      "/zh-CN/v/0.9.9-RC1/21-running-at-scale",
      "/zh-CN/v/0.9.9-RC1/22-distributed-capacity"
    ]
  },
  {
    "id": "verify-business-correctness",
    "kind": "task",
    "title": "使用 Source-bound Evidence 验证业务正确性",
    "summary": "把业务 Owner 批准的答案变成受控 Scenario 证据，同时不夸大 Claim。",
    "task": "verify-business-correctness",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/zh-CN/v/0.9.9-RC1/tasks/verify-business-correctness.md",
    "sha256": "65906bd4d7c35b130cbabdea0cd0733f1c6679946a062bdd715e0d92e3216edf",
    "approx_tokens": 636,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/zh-CN/v/0.9.9-RC1/23-business-correctness",
      "/zh-CN/v/0.9.9-RC1/24-first-loan-verification",
      "/assets/v/0.9.9-RC1/chapters/24-first-loan-verification/assets/bloge/bloge-starter-loan-approval/src/test/bloge/scenarios/loan-approval.scenario.yaml",
      "/assets/v/0.9.9-RC1/chapters/24-first-loan-verification/assets/bloge/bloge-starter-loan-approval/src/test/bloge/verification-policy.yaml"
    ]
  }
]
