[
  {
    "id": "choose-and-extend-capabilities",
    "kind": "task",
    "title": "Choose, refactor, and extend BLOGE capabilities",
    "summary": "Select functions, transforms, decision tables, Operators, or subgraphs and decide extension ownership.",
    "task": "choose-and-extend-capabilities",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/choose-and-extend-capabilities.md",
    "sha256": "ea62915db2d6603918215de3de2ec3f2ec13e96d6236d95ef57f92928f0779ea",
    "approx_tokens": 1529,
    "prerequisites": [
      "choose-bloge"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/appendix-j-coding-practices",
      "/en/v/0.9.9-RC1/04-data-that-flows",
      "/en/v/0.9.9-RC1/05-branches-that-decide",
      "/en/v/0.9.9-RC1/07-designing-good-operators",
      "/en/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": "Decide whether BLOGE belongs in this system",
    "summary": "Produce a falsifiable STOP, PROBE, or ADOPT decision from the system constraints.",
    "task": "choose-bloge",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/choose-bloge.md",
    "sha256": "9313aece56f34229779682b562307903bac5642ef4babeff86485b20eab298dc",
    "approx_tokens": 847,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/01-why-bloge",
      "/en/v/0.9.9-RC1/33-migration-and-comparison"
    ]
  },
  {
    "id": "compose-time-and-recovery",
    "kind": "task",
    "title": "Compose subgraphs, batches, waits, and recovery",
    "summary": "Choose the smallest lifecycle model that preserves progress across collection, time, and restart boundaries.",
    "task": "compose-time-and-recovery",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/compose-time-and-recovery.md",
    "sha256": "325a8ecc93b42e462fb13bcddc3f6a1a060157cd55835261b125e3671affd8b3",
    "approx_tokens": 888,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/10-reuse-with-subgraphs",
      "/en/v/0.9.9-RC1/11-batch-and-iteration",
      "/en/v/0.9.9-RC1/12-waiting-for-the-world",
      "/en/v/0.9.9-RC1/13-durable-execution"
    ]
  },
  {
    "id": "create-first-graph",
    "kind": "task",
    "title": "Create and run the first BLOGE graph",
    "summary": "Add the smallest reviewable graph without hiding data flow or Operator ownership.",
    "task": "create-first-graph",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/create-first-graph.md",
    "sha256": "63d8907bfa5c2925f1a024aae04a4750a50a47ac2e5ba305127c949bd4d4215b",
    "approx_tokens": 880,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/02-your-first-graph",
      "/en/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": "Design retry, timeout, fallback, and compensation",
    "summary": "Add resilience without confusing engine control with external-effect guarantees.",
    "task": "design-resilience",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/design-resilience.md",
    "sha256": "2f589d1b6d3b7adbd40f4bdb26be8139f95a3f60b57acaa214741e91fdea7561",
    "approx_tokens": 848,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/06-resilience-by-design",
      "/en/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": "Migrate a workflow and deliver a reviewable capstone",
    "summary": "Move one bounded workflow into BLOGE with parity evidence, rollback points, and a falsifiable acceptance result.",
    "task": "migrate-and-deliver-capstone",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/migrate-and-deliver-capstone.md",
    "sha256": "e339092a9b1125b01d67e5b89f931882a4a97f44c383dae63e44019ff52fb47f",
    "approx_tokens": 859,
    "prerequisites": [
      "choose-bloge",
      "test-observe-and-wire-production"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/33-migration-and-comparison",
      "/en/v/0.9.9-RC1/34-labs"
    ]
  },
  {
    "id": "orchestrate-session-state-agent",
    "kind": "task",
    "title": "Orchestrate sessions, state machines, and bounded agents",
    "summary": "Assign one lifecycle owner and contain non-deterministic model behavior inside deterministic boundaries.",
    "task": "orchestrate-session-state-agent",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/orchestrate-session-state-agent.md",
    "sha256": "80d82f5eef720c3a63cf449dd89c450f0c7092dd2bab10ec8acf7e004aceb93d",
    "approx_tokens": 909,
    "prerequisites": [
      "compose-time-and-recovery"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/14-multi-turn-sessions",
      "/en/v/0.9.9-RC1/15-state-machines",
      "/en/v/0.9.9-RC1/16-composing-sessions-and-state-machines",
      "/en/v/0.9.9-RC1/17-agent-orchestration"
    ]
  },
  {
    "id": "test-observe-and-wire-production",
    "kind": "task",
    "title": "Test, observe, and wire BLOGE for production",
    "summary": "Match each technical claim to the correct test scope, runtime signal, Spring owner, and capacity experiment.",
    "task": "test-observe-and-wire-production",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/test-observe-and-wire-production.md",
    "sha256": "741c45ef68bfaf54cef7dba582b1ae3135618e50f9feaf2248fc45209511caa3",
    "approx_tokens": 908,
    "prerequisites": [
      "create-first-graph"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/18-testing-your-graphs",
      "/en/v/0.9.9-RC1/19-observability-in-production",
      "/en/v/0.9.9-RC1/20-spring-and-production-wiring",
      "/en/v/0.9.9-RC1/21-running-at-scale",
      "/en/v/0.9.9-RC1/22-distributed-capacity"
    ]
  },
  {
    "id": "verify-business-correctness",
    "kind": "task",
    "title": "Verify business correctness with source-bound evidence",
    "summary": "Turn an owner-approved business answer into controlled Scenario evidence without overstating the claim.",
    "task": "verify-business-correctness",
    "applies_to": [
      "0.9.9-RC1"
    ],
    "url": "/agent/en/v/0.9.9-RC1/tasks/verify-business-correctness.md",
    "sha256": "6323b1fb0eba05524d729789fdb6a72ef0bfedb158560131ca1f0427163bac7e",
    "approx_tokens": 955,
    "prerequisites": [
      "overview"
    ],
    "source_refs": [
      "/en/v/0.9.9-RC1/23-business-correctness",
      "/en/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"
    ]
  }
]
