[
  {
    "productId": "dbos",
    "storyId": "agentic-agent-docs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "A direct probe confirms an llms.txt file exists at https://docs.dbos.dev/llms.txt following the llmstxt.org standard, and DBOS also maintains extensive agent-oriented docs (e.g., docs.dbos.dev/ai/* pages) explicitly targeting AI agent use cases. Missing for 10: independent/community confirmation that agents successfully consume the llms.txt file in practice.",
    "evidenceIds": [
      "dbos-probe-1",
      "dbos-docs-11",
      "dbos-docs-12",
      "dbos-docs-13"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-ai-insights",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "DBOS is a durable-execution/workflow library for building reliable agentic applications, not a data platform that itself surfaces AI-generated insights or suggestions to end users. The MCP integration (dbos-docs-14) only lets an external LLM query/manage workflow execution data, which is not evidence of the product proactively generating insights or suggestions from a user's data.",
    "evidenceIds": [
      "dbos-docs-14"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS supports scheduled/cron workflows, background workflow starting, queues, durable checkpointing/recovery, and human-in-the-loop waiting, enabling autonomous background automations that survive crashes and restarts. Community evidence corroborates the durability/recovery mechanics (though with some architectural caveats unrelated to this story). missing for 10: independent hands-on validation specifically of long-running autonomous 'automation' use cases (vs. workflow/agent examples), and no evidence of built-in alerting/monitoring for autonomous runs outside Conductor.",
    "evidenceIds": [
      "dbos-docs-7",
      "dbos-docs-5",
      "dbos-docs-6",
      "dbos-docs-25",
      "dbos-docs-4",
      "dbos-docs-12",
      "dbos-docs-28",
      "dbos-comm-13",
      "dbos-comm-14"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-builtin-assistant",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "DBOS is a durable-execution library/platform for building and orchestrating workflows and agents, not a product with a built-in AI assistant to delegate tasks to; its MCP server lets external LLMs manage DBOS workflows, which is the opposite (DBOS being controlled, not offering an assistant). This story is a category error for this type of product.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS is a library/CLI (`dbos init`, `dbosctl`, `DBOSClient`) that runs as plain Python/TypeScript code with no GUI dependency, making it natively usable in CI/headless pipelines; it supports unit testing via pytest/unittest, programmatic workflow control, and scriptable Conductor API/CLI for automation. missing for 10: no explicit CI pipeline example (e.g., GitHub Actions) or independent report of running DBOS in CI, and no confirmation of headless operation for the Conductor dashboard beyond API/CLI.",
    "evidenceIds": [
      "dbos-docs-9",
      "dbos-docs-24",
      "dbos-docs-33",
      "dbos-docs-42",
      "dbos-docs-17",
      "dbos-gh-1"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-mcp-client",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence only shows DBOS shipping an MCP *server* that exposes DBOS's own workflow-management tools to an LLM (dbos-docs-14, dbos-probe-3) — the opposite direction from the story, which asks whether the product can consume/plug in external MCP servers as a client to gain their tools. No evidence shows DBOS or DBOS-based agents connecting to third-party MCP servers.",
    "evidenceIds": [
      "dbos-docs-14",
      "dbos-probe-3"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-mcp-server",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS documents an official MCP server ([dbos-docs-14]) that lets an LLM/agent connect and use tools to analyze and manage DBOS workflows, confirmed by probe evidence ([dbos-probe-3]). This is first-party, on-topic documentation directly matching the story. Missing for 10: independent/hands-on third-party corroboration of the MCP server working in practice, and more detail on the full tool surface exposed.",
    "evidenceIds": [
      "dbos-docs-14",
      "dbos-probe-3"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-nl-commands",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "DBOS ships an official MCP server that lets an LLM/agent 'analyze and manage your DBOS workflows,' which enables natural-language operation indirectly through an AI agent, but DBOS itself has no chat/NL interface — operation is otherwise via code, CLI (dbosctl), or the Conductor dashboard. Missing for 10: a first-party conversational/NL interface, evidence of end-to-end NL command execution, and independent confirmation the MCP server actually supports full workflow management in practice.",
    "evidenceIds": [
      "dbos-docs-14",
      "dbos-probe-3",
      "dbos-docs-18",
      "dbos-docs-33"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS ships official CLIs: the `dbos` CLI for project init and running workflows (dbos-docs-24, dbos-docs-41), and `dbosctl` for managing Conductor-hosted workflows/queues/schedules (dbos-docs-18, dbos-docs-33, dbos-probe-4), both well documented with concrete commands. missing for 10: independent/hands-on community confirmation of CLI usage specifically (most community evidence discusses SDK ergonomics, not CLI), and no evidence of AI-native features (e.g., natural-language or agent-oriented CLI commands) beyond standard devops commands.",
    "evidenceIds": [
      "dbos-docs-18",
      "dbos-docs-24",
      "dbos-docs-33",
      "dbos-docs-41",
      "dbos-probe-4"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-public-api",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS exposes a documented, scriptable Conductor API (OpenAPI-described HTTP API) plus dbosctl CLI and a Python DBOSClient for programmatic control of workflows/queues/schedules, and an official MCP server for LLM/agent access — strong evidence of a documented public API surface. However, the core DBOS library itself is primarily an in-process annotation-based SDK rather than a standalone public API, and probes show no discoverable OpenAPI/swagger spec at the docs root, and Conductor's API management features are tied to a hosted/paid product rather than the core OSS library. missing for 10: a first-party standalone REST/OpenAPI spec for the core library (not just Conductor), independent hands-on confirmation of API completeness, and clarity that Conductor API access isn't gated behind paid tiers.",
    "evidenceIds": [
      "dbos-docs-17",
      "dbos-docs-18",
      "dbos-docs-32",
      "dbos-docs-33",
      "dbos-docs-42",
      "dbos-probe-3",
      "dbos-probe-4",
      "dbos-probe-2"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-scoped-keys",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "DBOS's Conductor API/CLI mentions managing 'members, roles, and API keys' and dbosctl managing API keys, implying some access-control primitives, but there is no documentation of issuing scoped/least-privilege credentials specifically for an AI agent's use of external APIs or tools. Missing for 10: explicit scoped-credential issuance workflow, per-agent least-privilege token minting, and any documentation tying API keys to agent identity or permission scoping.",
    "evidenceIds": [
      "dbos-docs-32",
      "dbos-docs-33"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS ships official Python and TypeScript SDKs with extensive first-party docs, plus AI-native integrations (OpenAI Agents SDK drop-in runner, Vercel AI SDK, MCP server, DBOSClient) that let developers build agents directly against the library's APIs, corroborated by a community user praising the Python SDK's ergonomics. Missing for 10: broader language SDK coverage (a complaint notes no .NET support) and independent hands-on validation of the AI-specific integrations beyond docs.",
    "evidenceIds": [
      "dbos-docs-15",
      "dbos-docs-30",
      "dbos-docs-14",
      "dbos-docs-38",
      "dbos-docs-42",
      "dbos-comm-5",
      "dbos-comm-4"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "agentic-webhooks",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "DBOS provides durable workflows, messaging, queues, and an MCP server, but no evidence anywhere in the pack describes a webhook subscription mechanism for external events; this is an applicable axis for a workflow/agentic platform but no capability is documented.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 7,
    "confidence": "medium",
    "rationale": "DBOS ships first-party wrappers for at least two agent stacks — the OpenAI Agents SDK (DBOSRunner.run/run_sync as drop-in replacements, dbos-docs-15, dbos-docs-30) and the Vercel AI SDK (dbos-docs-38) — plus an MCP server for tool integration (dbos-docs-14, dbos-probe-3), all giving durability without hand-rolled checkpointing code. However coverage is narrow (only two named agent frameworks, no broad set of model-provider SDKs like OpenAI/Anthropic/LangChain explicitly wrapped) and there's no independent/hands-on confirmation of these specific integrations working in production. Missing for 10: broader roster of first-party model-provider/agent-framework integrations, and independent corroboration of the OpenAI/Vercel AI wrappers actually working end-to-end.",
    "evidenceIds": [
      "dbos-docs-15",
      "dbos-docs-30",
      "dbos-docs-38",
      "dbos-docs-14",
      "dbos-probe-3",
      "dbos-docs-11",
      "dbos-docs-22"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "No evidence of an interactive, runnable API reference; the probe for OpenAPI/Swagger endpoints returned 404 on all candidate paths, and while docs mention an OpenAPI-described Conductor API, there's no indication of an in-browser 'try it' console or runnable code playground.",
    "evidenceIds": [
      "dbos-probe-2",
      "dbos-docs-17"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "api-machine-spec",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Docs explicitly state Conductor's workflow/queue/schedule management is available over an 'OpenAPI-described HTTP API' (dbos-docs-17), implying a machine-readable spec exists, but no direct link or confirmed downloadable spec file was found — a probe for openapi.json/swagger.json at the docs site returned 404s. Missing for 10: a verifiable, directly downloadable OpenAPI/swagger file or public spec URL, and independent confirmation that the Conductor API's OpenAPI description is accessible to end users.",
    "evidenceIds": [
      "dbos-docs-17",
      "dbos-probe-2"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "api-sandbox",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "DBOS docs mention unit testing workflows with pytest/unittest (dbos-docs-9) and local self-hosting via Docker Compose (dbos-docs-34), but there is no evidence of a dedicated sandbox/staging environment feature that isolates test runs from production data. missing for 10: explicit sandbox/staging environment, data isolation guarantees, environment-switching tooling, or a documented test-mode that avoids touching production data.",
    "evidenceIds": [
      "dbos-docs-9",
      "dbos-docs-34"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "api-versioning-policy",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence only covers strategies for versioning application *workflow code* (patching/versioning) via dbos-docs-10, not a documented policy for DBOS's own library/API versioning or deprecation. No changelog, semver commitment, or deprecation policy for the DBOS SDK/APIs themselves is evidenced.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "automatic-step-retries",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "DBOS's checkpointing and automatic workflow/step recovery (dbos-docs-4, dbos-docs-25, dbos-docs-23, dbos-docs-38) means failures are handled without manual try/catch scaffolding, and dbos-docs-30 mentions surviving 'transient API failures.' However, the evidence pack never documents configurable per-step retry counts, backoff strategies, or timeout policies (e.g., a retries_allowed/backoff/interval API), which the story explicitly asks for. Missing for 10: documentation of configurable retry counts, backoff intervals, and per-step timeout/failure policy settings, plus independent confirmation that this granular retry config works as advertised.",
    "evidenceIds": [
      "dbos-docs-4",
      "dbos-docs-23",
      "dbos-docs-25",
      "dbos-docs-30",
      "dbos-docs-38"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "automation-bulk-operations",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS queues let users run many workflows at once with managed concurrency and flow control (dbos-docs-6/26), and Conductor/dbosctl provide bulk workflow management (list, cancel, fork, restart) across many workflows (dbos-docs-17, 32, 33, 41). However, this is developer/infra-level bulk operation over workflows, not an end-user-facing 'bulk operate on many items' feature, and there's no first-party UI or API specifically framed for ai-native bulk item operations. missing for 10: a dedicated bulk-operations API/UI for end-user items (vs. workflow-level queue management), independent hands-on evidence of bulk operation at scale, and clarity on limits/performance for very large batch runs.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-docs-17",
      "dbos-docs-32",
      "dbos-docs-33",
      "dbos-docs-41",
      "dbos-comm-9"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "automation-rules-engine",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "DBOS supports automatic triggering of workflows via cron-style schedules (dbos-docs-7) and via message-based signals with DBOS.send/recv (dbos-docs-8, dbos-docs-27, dbos-docs-28), which can act as event-driven triggers for actions, and queues can auto-start workflows on enqueue (dbos-docs-6). However, there's no evidence of a declarative 'rules' definition mechanism (conditional logic tied to arbitrary events like webhooks or external event buses) — it's closer to workflow scheduling/messaging than a rules engine. Missing for 10: explicit rule/condition definition syntax, generic external event source integration, and documented event-trigger examples beyond cron/messaging.",
    "evidenceIds": [
      "dbos-docs-7",
      "dbos-docs-8",
      "dbos-docs-27",
      "dbos-docs-28",
      "dbos-docs-6"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "automation-scheduled-jobs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS explicitly supports scheduled/cron workflows stored in the database, which can be created, paused, resumed, and deleted at runtime, plus queues for managing many concurrent workflow runs — directly matching recurring job scheduling. This is well documented first-party with clear API mechanics; missing for 10: independent hands-on validation specifically of the scheduling feature (community evidence covers durability/architecture broadly but not scheduled workflows specifically).",
    "evidenceIds": [
      "dbos-docs-7",
      "dbos-docs-6",
      "dbos-docs-26"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "automation-versioned-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS documents explicit workflow versioning strategies (patching/versioning), fork/replay to reproduce and audit workflow steps, and a Conductor console that lets you 'Monitor, version, fork, replay, and observe' workflows plus pause/restart from any step for incident response. However, this is oriented toward code-version safety and workflow-execution recovery rather than a full audit/review/rollback UI for 'automations' as end-user artifacts, and community feedback notes the web UI/observability console isn't open-source or self-hostable for all users, limiting review access. Missing for 10: independent hands-on confirmation of the Conductor versioning/rollback UI in practice, and a clearer non-technical review/rollback workflow beyond developer-level fork/replay.",
    "evidenceIds": [
      "dbos-docs-10",
      "dbos-docs-21",
      "dbos-docs-13",
      "dbos-docs-16",
      "dbos-docs-29",
      "dbos-comm-11",
      "dbos-comm-8"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "code-first-workflows",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS workflows are written as ordinary Python/TypeScript functions with annotations, not YAML/DSL, and steps are automatically checkpointed to Postgres for durable recovery, confirmed by docs and community reports of ergonomic, low-code integration. missing for 10: independent third-party benchmark/audit of checkpointing correctness beyond vendor/community anecdotes, and broader language coverage evidence (only Python/TS confirmed).",
    "evidenceIds": [
      "dbos-docs-1",
      "dbos-docs-3",
      "dbos-docs-4",
      "dbos-docs-9",
      "dbos-docs-20",
      "dbos-gh-1",
      "dbos-comm-5",
      "dbos-comm-13"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "concurrency-rate-controls",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "DBOS queues explicitly provide 'managed concurrency' and 'flow control' to cap how many workflows run at once or how often they start, which covers per-workflow/queue concurrency and rate limiting (dbos-docs-6, dbos-docs-26). However, there is no evidence of first-class per-key or per-tenant rate-limit/concurrency scoping (e.g., a tenant-id dimension), and a community critique raises unresolved concerns about coordinating rate limits globally across workers (dbos-comm-6). Missing for 10: documented per-tenant/per-key limiting semantics, worked examples of multi-tenant fairness, and independent verification that limits hold under contention.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-comm-6"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "crash-resume-checkpointing",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS's core architecture is built around checkpointing every workflow step to Postgres and automatically resuming from the last completed step after a crash, restart, or deploy, documented extensively (dbos-docs-3,4,23,25,31) and explained by co-founders on HN (dbos-comm-1,13,14). Community testimony corroborates real-world use of this durability model at scale (dbos-comm-9,15), with one nuanced caveat that guarantees depend on Postgres's own replication durability settings (dbos-comm-3), which is a configuration caveat rather than a contradiction of the core recovery mechanism. Missing for 10: independent third-party benchmark or incident report specifically validating crash-recovery behavior in production beyond vendor/community anecdote.",
    "evidenceIds": [
      "dbos-docs-3",
      "dbos-docs-4",
      "dbos-docs-23",
      "dbos-docs-25",
      "dbos-docs-31",
      "dbos-comm-1",
      "dbos-comm-13",
      "dbos-comm-14",
      "dbos-comm-3",
      "dbos-comm-9"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "cron-scheduled-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS documents cron-based scheduled workflows stored in the database that can be created, paused, resumed, and deleted at runtime, and Conductor adds pause/restart/fork controls plus schedule inspection via dashboard, API, and dbosctl CLI. However, there's no explicit mention of overlap policies (e.g., skip/allow-overlap behavior for cron runs) or a dedicated 'upcoming runs' forecast view — visibility is framed around workflow/queue/schedule management rather than a forward-looking schedule calendar. missing for 10: explicit overlap-policy configuration for cron schedules, dedicated upcoming-run preview/forecast UI, independent hands-on confirmation of pause/resume behavior in practice.",
    "evidenceIds": [
      "dbos-docs-7",
      "dbos-docs-16",
      "dbos-docs-17",
      "dbos-docs-32",
      "dbos-docs-33"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "DBOS queues provide 'flow control' letting you limit how many workflows run at once or how often they are started, which can throttle bursty event streams, but there is no documented debounce, dedup, or batching primitive that collapses multiple noisy triggers into a single run. Scheduled workflows (cron) and pub/sub messaging (send/recv) address timing and signaling, not trigger coalescing. Missing for 10: explicit debounce/coalesce API, batch-trigger aggregation, or dedup-by-key mechanism, and any hands-on evidence of collapsing noisy streams into one run.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-docs-7",
      "dbos-docs-27"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS has an explicit AI-agent-focused doc set showing durable workflow checkpointing for agent loops (model/tool calls as steps), crash recovery mid-run, human-in-the-loop waits, durable streaming, and integrations with OpenAI Agents SDK/Vercel AI SDK that preserve progress across restarts. This is corroborated by core architecture docs on checkpointing/recovery and independent community confirmation of the durability mechanism (transactional step logging) and real-world usage. Missing for 10: no independent hands-on benchmark specifically for agent-loop workloads (only generic durable-execution HN discussion), and some community concerns about long-running steps holding transactions open.",
    "evidenceIds": [
      "dbos-docs-11",
      "dbos-docs-22",
      "dbos-docs-28",
      "dbos-docs-30",
      "dbos-docs-36",
      "dbos-docs-38",
      "dbos-docs-4",
      "dbos-comm-13",
      "dbos-comm-14",
      "dbos-comm-5"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "event-driven-triggers",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS supports queue-based fan-out (many workflows run concurrently with managed flow control), cron-scheduled workflows, external triggering via DBOSClient/HTTP endpoints, and community evidence of a Kafka-consumer pipeline processing events exactly-once — covering the 'trigger from queues/events, fan out to many functions' pattern. However, there's no explicit declarative webhook/event-trigger decorator shown (e.g., an @DBOS.webhook or built-in Kafka trigger annotation), and fan-out is implemented via manual queue.enqueue calls rather than a single declarative trigger-to-many mapping. Missing for 10: explicit declarative webhook trigger primitive, native queue/broker trigger decorators (e.g. Kafka consumer decorator), and independent hands-on confirmation of fan-out from a single event.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-docs-7",
      "dbos-docs-42",
      "dbos-comm-15",
      "dbos-docs-24"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "external-signal-injection",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS provides DBOS.send()/recv() with topic-based queuing to send messages/signals into a specific running workflow from outside, explicitly documented for human-in-the-loop scenarios (e.g., waiting hours/days for approval), plus DBOSClient for interacting with workflows from external code or another DBOS application, and workflow handles for retrieving results. This directly matches the story of signaling a running workflow via API/webhook/another workflow. Missing for 10: independent/hands-on corroboration specifically of the send/recv mechanism (community evidence covers durability/performance but not this exact feature).",
    "evidenceIds": [
      "dbos-docs-8",
      "dbos-docs-27",
      "dbos-docs-28",
      "dbos-docs-42",
      "dbos-docs-12"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "fanout-child-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS docs show the building blocks for this pattern — DBOS.start_workflow to launch child/background workflows and get a handle to wait on results (fan-in), and Queues for running many workflows concurrently with managed concurrency (fan-out over batches) — all without a separate orchestrator, per dbos-docs-5, dbos-docs-6, dbos-docs-26. However, the evidence never explicitly documents parallel-step composition, a dedicated child-workflow API/pattern, or dynamic-batch fan-out/fan-in as a named recipe. missing for 10: explicit child-workflow documentation/pattern, explicit parallel-steps-within-a-workflow guidance, and a concrete fan-out/fan-in-over-dynamic-batches tutorial or example.",
    "evidenceIds": [
      "dbos-docs-5",
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-docs-8",
      "dbos-docs-27"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "horizontal-worker-scaling",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS's queues provide managed concurrency/flow control across many workflows (dbos-docs-6/26), and Conductor explicitly detects when a workflow's executor disconnects or crashes and recovers it onto another healthy executor (dbos-docs-31), which directly supports fleet-wide load-balancing and worker-loss tolerance. However, community critique raises concerns about worker contention using FOR UPDATE SKIP LOCKED and potential Postgres bottlenecks at scale (dbos-comm-6, dbos-comm-7), suggesting real-world scaling limits are not fully proven. Missing for 10: independent benchmarks or case studies showing throughput actually scaling linearly with added workers, and resolution/rebuttal of the contention/lock-based scaling concerns.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26",
      "dbos-docs-31",
      "dbos-comm-6",
      "dbos-comm-7"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "human-approval-waits",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS explicitly documents a human-in-the-loop pattern where DBOS.recv(timeout_seconds=...) lets a workflow pause and wait hours or days for a human response, surviving crashes/restarts via checkpointed state, and resuming exactly where it left off once the message arrives (DBOS.send). This is backed by a dedicated HITL guide, a worked agent-inbox example, and general durable-execution/recovery docs plus community corroboration of the checkpointing mechanism. Missing for 10: independent hands-on validation specifically of the long-duration pause/resume behavior (community evidence covers general durability but not this exact HITL scenario).",
    "evidenceIds": [
      "dbos-docs-12",
      "dbos-docs-28",
      "dbos-docs-8",
      "dbos-docs-27",
      "dbos-docs-39",
      "dbos-docs-4",
      "dbos-docs-25",
      "dbos-comm-13"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "hybrid-managed-workers",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "DBOS's architecture is exactly this split: the DBOS library runs as workers inside the customer's own application/infrastructure, checkpointing all workflow state to the customer's own Postgres (code and data stay in-network) [dbos-docs-2, dbos-docs-4, dbos-docs-23], while DBOS Conductor is a separate control-plane service (vendor-hosted by default, but also self-hostable) that provides orchestration/observability, workflow management, and recovery routing via a dashboard, HTTP API, and dbosctl CLI [dbos-docs-16, dbos-docs-17, dbos-docs-18, dbos-docs-19, dbos-docs-31, dbos-docs-33, dbos-docs-34]. Community corroboration confirms the no-central-orchestrator, Postgres-in-your-infra execution model [dbos-comm-1, dbos-comm-14], though one user noted observability/self-hosting was initially incomplete before being added [dbos-comm-8]. Missing for 10: independent/hands-on verification that Conductor never touches actual business payload data (only orchestration metadata), and more detail on network/security boundaries between self-hosted workers and the vendor control plane.",
    "evidenceIds": [
      "dbos-docs-2",
      "dbos-docs-4",
      "dbos-docs-16",
      "dbos-docs-17",
      "dbos-docs-18",
      "dbos-docs-19",
      "dbos-docs-31",
      "dbos-docs-33",
      "dbos-docs-34",
      "dbos-comm-1",
      "dbos-comm-14",
      "dbos-comm-8"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "idempotency-exactly-once",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS's checkpointing and @DBOS.Transaction step semantics deliver exactly-once step execution and automatic recovery, and a co-founder explicitly states transactions provide exactly-once execution (dbos-comm-2, dbos-docs-4/23/25). However, the evidence never explicitly documents an 'idempotency key' API for deduplicating external triggers (e.g., webhook/payment retries), and community discussion notes durability is bounded by Postgres's own replication guarantees (dbos-comm-3), a real caveat for exactly-once claims under failure. missing for 10: explicit idempotency-key API/documentation for deduping external triggers, and stronger evidence addressing the sync-replication durability caveat.",
    "evidenceIds": [
      "dbos-docs-4",
      "dbos-docs-23",
      "dbos-docs-25",
      "dbos-comm-2",
      "dbos-comm-3",
      "dbos-comm-13"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "local-dev-testing-loop",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "DBOS clearly delivers the 'one command locally' half of the story: it's a Postgres-backed library with no separate orchestration server, so you just run `python3 main.py` (or `dbos start`) and it seamlessly recovers on restart (dbos-docs-2, dbos-docs-3, dbos-docs-24). However, the testing-utilities half is only thinly evidenced — docs merely state workflows/steps are ordinary Python functions testable with pytest/unittest (dbos-docs-9), with no mention of built-in time-skipping or step-mocking utilities. Missing for 10: documented time-travel/time-skipping test helpers, documented step-mocking/stubbing API, and any hands-on confirmation of these specific testing features.",
    "evidenceIds": [
      "dbos-docs-2",
      "dbos-docs-3",
      "dbos-docs-24",
      "dbos-docs-9"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "long-sleeps-without-compute",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "DBOS docs explicitly describe workflows waiting hours-to-days for human input via DBOS.recv(timeout_seconds=...) surviving process restarts and server upgrades, backed by Postgres checkpointing rather than any held server/connection (dbos-docs-12, dbos-docs-28, dbos-docs-39, dbos-docs-2, dbos-docs-4). The architecture is confirmed as a library with no dedicated orchestration server, only Postgres, so a sleeping workflow consumes no compute (dbos-docs-2, dbos-docs-20, dbos-docs-35). missing for 10: explicit mention of multi-month sleep durations (only 'hours or days' is documented), and independent/third-party confirmation of zero billable compute during long sleeps.",
    "evidenceIds": [
      "dbos-docs-12",
      "dbos-docs-28",
      "dbos-docs-39",
      "dbos-docs-2",
      "dbos-docs-4",
      "dbos-docs-23",
      "dbos-docs-20"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "DBOS's Conductor exposes workflow/queue metrics and audit logs via an OpenAPI-described HTTP API and CLI (dbosctl), which could be scripted into external tooling for incident response, and lists 'read metrics and audit logs' as a capability. However, there's no documented native integration with standard observability stacks (Prometheus, OpenTelemetry, Datadog) or any alerting/threshold configuration, and a community user explicitly noted 'the observability isn't self hostable yet' as a blocker before self-hosting was added. Missing for 10: explicit metrics/log export format compatible with common observability backends, documented alerting rules or integrations, and independent confirmation that failure-rate/latency dashboards work as claimed.",
    "evidenceIds": [
      "dbos-docs-16",
      "dbos-docs-17",
      "dbos-docs-32",
      "dbos-docs-33",
      "dbos-comm-8"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "DBOS ships and documents both a Python SDK (dbos-transact-py, extensive Python tutorials) and a TypeScript SDK, and its docs show consistent workflow/queue/schedule/communication primitives across at least those two languages, suggesting some cross-language design consistency. However, a community comment explicitly states 'Languages that are supported: Typescript and Python' with no Go or .NET support, directly contradicting the story's expectation of Go (or broader) language coverage, and no evidence documents explicit feature-parity guarantees between the SDKs. missing for 10: Go/other language SDKs, explicit cross-SDK feature-parity documentation, independent confirmation of parity between TS and Python APIs.",
    "evidenceIds": [
      "dbos-gh-1",
      "dbos-docs-5",
      "dbos-docs-6",
      "dbos-docs-7",
      "dbos-docs-8",
      "dbos-comm-4"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "openness-api-parity",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "DBOS explicitly documents that everything doable in the Conductor UI (pause/restart/fork workflows, manage queues/schedules, view metrics/audit logs) is also available via an OpenAPI-described HTTP API and the dbosctl CLI, enabling scripting and external tooling parity with the dashboard. Additional programmatic access is provided via DBOSClient and the Python CLI for listing/managing workflows. Missing for 10: independent verification of full UI/API feature parity (the OpenAPI schema wasn't discoverable at standard endpoints per probe) and no hands-on/community confirmation that every UI action is exactly mirrored in the API.",
    "evidenceIds": [
      "dbos-docs-16",
      "dbos-docs-17",
      "dbos-docs-32",
      "dbos-docs-33",
      "dbos-docs-41",
      "dbos-docs-42",
      "dbos-probe-2"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "openness-full-export",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS's core value proposition is that it's an open-source, Postgres-backed library with no proprietary orchestration server — all workflow/checkpoint state lives in the user's own Postgres database, which is inherently open and exportable via standard SQL tooling (dbos-docs-2, dbos-docs-20, dbos-docs-23, dbos-comm-13). The CLI can list workflows in JSON (dbos-docs-41), and Conductor (the hosted management layer) can also be self-hosted (dbos-docs-19, dbos-docs-34), reducing lock-in risk. However, there is no explicit documented 'export all your data' feature/guide, no migration tooling, and community comments note some hosted pieces (observability) were not self-hostable at points in time (dbos-comm-8), so full data portability for the managed/Cloud tier isn't concretely evidenced. Missing for 10: explicit data-export documentation/tooling, confirmation that Conductor/Cloud-hosted metadata is fully exportable, and independent verification of a clean 'leave' path from the hosted service.",
    "evidenceIds": [
      "dbos-docs-2",
      "dbos-docs-20",
      "dbos-docs-23",
      "dbos-docs-41",
      "dbos-docs-19",
      "dbos-docs-34",
      "dbos-comm-8",
      "dbos-comm-13"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "openness-open-license",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS's core library is explicitly described as open-source and its source is published on GitHub (dbos-transact-py), with docs repeatedly calling it an 'open-source Postgres-backed library' ([dbos-docs-2],[dbos-docs-20],[dbos-docs-35],[dbos-gh-1]). However, no evidence specifies the actual license type/terms, and community feedback notes the web UI/Conductor management console is NOT open-sourced ([dbos-comm-11]), limiting full openness to the core library only. Missing for 10: explicit license name/terms (e.g., MIT/Apache) citation, and confirmation that all product components (not just the core library) are open-source.",
    "evidenceIds": [
      "dbos-docs-2",
      "dbos-docs-20",
      "dbos-docs-35",
      "dbos-gh-1",
      "dbos-comm-11"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "The core DBOS product is an open-source, Postgres-backed library with no separate orchestration server, so self-hosting is inherent — you just install the library and point it at your own Postgres instance (dbos-docs-2, dbos-docs-20, dbos-docs-35, dbos-gh-1). Docs also describe self-hosting the optional Conductor/DBOS Console on your own infrastructure via Docker Compose (dbos-docs-19, dbos-docs-34). Missing for 10: independent hands-on confirmation of self-hosted Conductor/observability working smoothly — community reports (dbos-comm-8, dbos-comm-11) note the web UI/observability layer historically wasn't open-source self-hostable, a caveat around the full platform even though the core library itself is trivially self-hostable.",
    "evidenceIds": [
      "dbos-docs-2",
      "dbos-docs-20",
      "dbos-docs-35",
      "dbos-gh-1",
      "dbos-docs-19",
      "dbos-docs-34",
      "dbos-comm-8",
      "dbos-comm-11"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "privacy-data-residency",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "DBOS is Postgres-backed and self-hostable, meaning users could theoretically control data location by choosing their own Postgres deployment region, but no evidence pack item mentions region selection, data residency controls, or compliance features for DBOS Cloud/Conductor hosting.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "privacy-no-training",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "DBOS is a durable execution/workflow orchestration library for building reliable applications, not an AI model provider or data-processing service that trains models on user data; the question of opting out of AI training data usage does not apply to this category of product.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "privacy-retention-controls",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "DBOS is a durable-execution/workflow library storing checkpoints in Postgres, but the evidence pack contains no documentation of data retention policies, TTL/expiry settings, or user-facing deletion/erasure controls for workflow state or checkpoints. No mention of GDPR-style deletion, retention configuration, or data lifecycle management is present. Missing for 10: retention/TTL configuration docs, deletion/erasure APIs or commands, data lifecycle policy documentation.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence pack item mentions telemetry, usage data collection, analytics, or any opt-out/opt-in privacy control for DBOS; this is an applicable axis for a developer library/platform but no documentation or community evidence addresses it.",
    "evidenceIds": []
  },
  {
    "productId": "dbos",
    "storyId": "queue-priority-fairness",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "DBOS documents queues with concurrency limits and flow control (rate limiting, max concurrent workflows) but the evidence pack contains no mention of assigning priorities to individual runs or fair-share scheduling across tenants — only global concurrency/rate controls are described.",
    "evidenceIds": [
      "dbos-docs-6",
      "dbos-docs-26"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "realtime-run-streaming",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "DBOS explicitly documents 'durable streaming' for streaming agent/model output as it's generated, with persistence guarantees so a reader keeps receiving values without dropping output even mid-restart, directly matching the streaming-progress-into-frontend story. This is backed by first-party docs on streaming plus related agent-progress/checkpoint features, though there's no independent/hands-on corroboration of this specific streaming feature. Missing for 10: independent or community verification of the streaming feature specifically, and concrete frontend integration example.",
    "evidenceIds": [
      "dbos-docs-22",
      "dbos-docs-37",
      "dbos-docs-36",
      "dbos-docs-11"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "replay-failed-runs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "DBOS explicitly documents workflow fork to restart/reproduce a workflow from a specific completed step using checkpointed history (dbos-docs-13), plus checkpoint-based auditing of failure causes (dbos-docs-29) and Conductor UI/CLI/API support to 'restart any workflow from a specific step' for incident response and debugging (dbos-docs-16, dbos-docs-21, dbos-docs-32). This directly matches the replay/rerun-from-step story with both library-level and management-console support. Missing for 10: independent/hands-on community confirmation specifically of the fork/replay-from-step feature (community evidence covers durability/recovery broadly but not this specific fork workflow).",
    "evidenceIds": [
      "dbos-docs-13",
      "dbos-docs-29",
      "dbos-docs-16",
      "dbos-docs-21",
      "dbos-docs-32"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "run-timeline-observability",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "DBOS's Conductor dashboard provides workflow-level observability — search, filter, audit logs, metrics, pause/restart/fork from specific steps, and CLI/API listing of workflows (dbos-docs-16,17,32,41) — and checkpointing lets teams 'review these checkpoints to see the cause of failure and audit every step' (dbos-docs-29). However, community reports note the dashboard/web UI was not open-source or self-hostable for a period ('observability isn't self hostable yet', 'doesn't have opensource release of web ui') even though later docs claim self-hosting is now possible (dbos-docs-19,34), and no evidence explicitly shows a UI rendering per-step inputs/outputs in a searchable timeline view. Missing for 10: explicit UI screenshots/evidence of input/output per step, independent confirmation that search/filter works well in production, and resolution of the self-host maturity complaint.",
    "evidenceIds": [
      "dbos-docs-16",
      "dbos-docs-17",
      "dbos-docs-29",
      "dbos-docs-32",
      "dbos-docs-41",
      "dbos-comm-8",
      "dbos-comm-11",
      "dbos-docs-19",
      "dbos-docs-34"
    ]
  },
  {
    "productId": "dbos",
    "storyId": "safe-workflow-versioning",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "DBOS docs explicitly describe versioning and patching as supported strategies for safely upgrading workflow code, and Conductor's console lets you 'version' and 'fork' workflows, directly addressing deploying new code while in-flight workflows continue on their original version. Missing for 10: independent/hands-on confirmation that in-flight runs deterministically finish on the original code version after a deploy, and more detail on how version pinning is enforced at runtime.",
    "evidenceIds": [
      "dbos-docs-10",
      "dbos-docs-21",
      "dbos-docs-4",
      "dbos-docs-16"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-agent-docs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "A direct probe confirms llms.txt is live at https://docs.hatchet.run/llms.txt returning HTTP 200 with structured documentation content, which an agent could be pointed at directly. Missing for 10: no independent/community corroboration of agents actually consuming it in practice.",
    "evidenceIds": [
      "hatchet-probe-1"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-ai-insights",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Hatchet is a task-queue/workflow orchestration platform for building and running background jobs and agent workflows, not a data-analytics product that surfaces AI-generated insights/suggestions from a user's own data; this story asks about an end-user analytics/insight feature which is a category error for this infra tool.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Hatchet is fundamentally a background task/workflow orchestration engine with cron triggers, scheduled runs, durable retries, concurrency control, and explicit support for orchestrating AI agents autonomously (docs-16, docs-26, docs-27, docs-25, docs-11, gh-2, gh-3), and community evidence confirms real production use as a background job/workflow runner replacing Celery. Cookbooks show integration with Claude/OpenAI Agents SDKs for agentic workflows (hatchet-docs-34/36/37).\n\nmissing for 10: no independent hands-on account of a fully autonomous multi-day agent running unattended, and some community reports note scaling/reliability caveats under heavy load (hatchet-comm-11) rather than confirming flawless long-running autonomy.",
    "evidenceIds": [
      "hatchet-docs-11",
      "hatchet-docs-16",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-25",
      "hatchet-docs-34",
      "hatchet-docs-36",
      "hatchet-docs-37",
      "hatchet-gh-2",
      "hatchet-gh-3",
      "hatchet-comm-2",
      "hatchet-comm-8"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-builtin-assistant",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Hatchet is a task/workflow orchestration engine for background jobs and AI agents built by developers — it exposes workflows as tools for external agent frameworks (Claude Agent SDK, OpenAI Agents SDK) but does not itself embed a built-in AI assistant persona for users to delegate tasks to. This is a category mismatch: Hatchet is agent-orchestration infrastructure, not a user-facing product with a built-in assistant.",
    "evidenceIds": [
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-docs-36",
      "hatchet-docs-37",
      "hatchet-gh-2"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Hatchet is a headless orchestration engine by design: workers run as background processes (hatchet worker dev / production worker run), SDKs exist for Python/TypeScript/Go/Ruby for scripted automation, and self-hosting/control-plane docs plus cron/scheduled runs support CI-driven and unattended execution. missing for 10: explicit CI pipeline examples (e.g., GitHub Actions integration) and independent confirmation of headless CI usage beyond docs.",
    "evidenceIds": [
      "hatchet-docs-1",
      "hatchet-docs-13",
      "hatchet-docs-33",
      "hatchet-docs-24",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-8",
      "hatchet-gh-2"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-mcp-client",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Hatchet's MCP-related evidence (hatchet-docs-7, hatchet-docs-34, hatchet-docs-36, hatchet-docs-37) describes the opposite integration direction: exposing Hatchet's own workflows/tasks as tools that external agent frameworks (Claude Agent SDK, OpenAI Agents SDK) can invoke via MCP. There is no evidence that Hatchet itself can plug in external MCP servers to consume their tools within its workflows or workers.",
    "evidenceIds": [
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-docs-36",
      "hatchet-docs-37"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-mcp-server",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Hatchet's official docs describe an MCP integration cookbook that exposes Hatchet workflows and standalone tasks as tools invocable by agent frameworks like the Claude Agent SDK and OpenAI Agents SDK, i.e. an official MCP server surface for connecting agents. This is first-party documented but only via a cookbook page rather than a deeply spec'd MCP server reference, and there's no independent/hands-on corroboration. Missing for 10: dedicated MCP server reference docs beyond the cookbook, and independent verification of it working end-to-end.",
    "evidenceIds": [
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-docs-36",
      "hatchet-docs-37"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-nl-commands",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Hatchet's evidence shows a structured CLI, TUI, and API/SDKs, plus the ability to expose Hatchet workflows as tools *for* external AI agents (Claude Agent SDK, OpenAI Agents SDK) — but nothing shows a user operating Hatchet itself via natural-language commands (e.g., a chat interface or NL-to-command translation). The MCP/agent-tools integration is about agents consuming Hatchet, not about a human issuing NL commands to Hatchet.",
    "evidenceIds": [
      "hatchet-docs-2",
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-probe-3"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Hatchet ships an official CLI documented with multiple subcommands (worker dev, tui, quickstart, profile) for local dev, observability, scaffolding, and environment management, confirmed by docs and a dedicated CLI reference page. Missing for 10: independent hands-on community review specifically of the CLI's agentic/AI-native workflows and broader third-party validation beyond docs.",
    "evidenceIds": [
      "hatchet-docs-1",
      "hatchet-docs-2",
      "hatchet-docs-3",
      "hatchet-docs-4",
      "hatchet-probe-3"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-public-api",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet documents multi-language SDKs (Python, TypeScript, Go, Ruby) with detailed API surfaces (retry policies, cron, concurrency, rate limits, webhooks, OpenTelemetry, embedded mode) and a CLI, giving AI-native users multiple documented ways to drive the product programmatically, including MCP/agent-tool integrations. However, a probe for a standard public REST/OpenAPI spec returned 404s across all expected paths, suggesting no first-class REST API doc is discoverable, only SDK/CLI-level docs. Missing for 10: a discoverable OpenAPI/REST API reference, and independent hands-on confirmation that the documented API surface is complete/accurate.",
    "evidenceIds": [
      "hatchet-docs-24",
      "hatchet-docs-25",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-28",
      "hatchet-docs-29",
      "hatchet-docs-30",
      "hatchet-docs-31",
      "hatchet-docs-32",
      "hatchet-docs-7",
      "hatchet-probe-2",
      "hatchet-probe-3"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-scoped-keys",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "No evidence of scoped or least-privilege API credential/token issuance for agents — the pack covers CLI tooling, concurrency, self-hosting, and pricing tiers (SSO/audit logs) but never describes API key scoping or credential minimization features.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Hatchet ships official SDKs for Python, TypeScript, Go, and Ruby, confirmed both in docs and independently by community members who verified multi-language SDK support, and these SDKs are the basis for building AI agent workflows (including cookbooks integrating Claude Agent SDK and OpenAI Agents SDK). missing for 10: no independent quality/maturity comparison across SDKs and a community complaint that SDK/doc specs are sometimes incomplete or have broken links.",
    "evidenceIds": [
      "hatchet-docs-24",
      "hatchet-gh-2",
      "hatchet-comm-15",
      "hatchet-docs-36",
      "hatchet-docs-37",
      "hatchet-comm-13"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "agentic-webhooks",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "There is a dedicated docs page titled \"Webhooks\" indicating Hatchet supports webhook functionality, but no detail is given on whether this covers subscribing to Hatchet's own workflow/task events (vs. using webhooks as workflow triggers), and no independent confirmation of this specific direction. missing for 10: description of webhook event subscription semantics, example payloads/config, and community/hands-on confirmation of outbound event webhooks.",
    "evidenceIds": [
      "hatchet-docs-30"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet documents first-party cookbooks/integrations for the Claude Agent SDK and OpenAI Agents SDK (exposing Hatchet workflows/tasks as durable tools these frameworks can invoke) plus an MCP-based agent-tools pattern and a support-agent cookbook, directly supporting durability for agent steps without custom glue code for those specific frameworks.  However, coverage is limited to two named agent SDKs and MCP — there's no evidence of broader first-party wrappers for other AI SDKs (e.g., LangChain, LlamaIndex) or direct model-provider clients (OpenAI/Anthropic APIs) beyond the agent-SDK cookbooks. Missing for 10: integrations/cookbooks for additional AI SDKs and model providers, and independent confirmation of ease-of-use/durability in production for these integrations.",
    "evidenceIds": [
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-docs-36",
      "hatchet-docs-37",
      "hatchet-docs-35"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "No evidence of an interactive API reference or runnable-example explorer; probes for OpenAPI/Swagger endpoints returned 404s and docs only reference CLI/SDK references and cookbooks, not an interactive API console.",
    "evidenceIds": [
      "hatchet-probe-2",
      "hatchet-docs-24",
      "hatchet-probe-1"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "api-machine-spec",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "A direct probe for OpenAPI/swagger spec files at all standard locations returned 404s, and no evidence pack item points to a downloadable API spec; Hatchet does expose an llms.txt but that is not a machine-readable API spec.",
    "evidenceIds": [
      "hatchet-probe-2",
      "hatchet-probe-1"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "api-sandbox",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet supports local development via `hatchet worker dev` for local execution and `hatchet profile` for switching between separate named environments/tenants, which could be used to isolate a sandbox from production, but there is no explicit documentation of a dedicated sandbox/staging environment or test-data isolation feature. missing for 10: explicit sandbox/test-environment documentation, isolation guarantees between environments, and any hands-on confirmation that switching profiles avoids touching production data.",
    "evidenceIds": [
      "hatchet-docs-4",
      "hatchet-docs-13",
      "hatchet-docs-15",
      "hatchet-docs-33"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "api-versioning-policy",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "No evidence of API versioning scheme or a documented deprecation policy; the OpenAPI spec probe returned 404s and no changelog/deprecation policy content is present, only a v1 docs path exists without explanation of versioning/deprecation guarantees.",
    "evidenceIds": [
      "hatchet-probe-2",
      "hatchet-docs-25"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "automatic-step-retries",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet has a dedicated 'Retry Policies' docs page and GitHub explicitly touts 'automatic retries' as part of the platform, and the founder's HN comments describe a declarative workflow model that avoids try/catch scaffolding for step execution. However, the evidence pack gives only page titles for retries/rate-limits/concurrency without concrete detail on configurable backoff curves, per-step timeouts, or failure-policy semantics. Missing for 10: explicit documentation of backoff configuration options, timeout settings per step, and failure-policy examples beyond a bare page title.",
    "evidenceIds": [
      "hatchet-docs-25",
      "hatchet-gh-1",
      "hatchet-comm-5",
      "hatchet-docs-29"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "automation-bulk-operations",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Hatchet is a workflow/task orchestration engine that supports bulk-style operations via concurrency rules across many workflow runs, cron-triggered batch scheduling, and per-key concurrency limits (e.g., letting many tasks/workflows run concurrently up to a limit), which indirectly supports bulk processing of many items. However, there is no explicit evidence of a bulk API/CLI operation (e.g., bulk-cancel, bulk-retry, batch-trigger-many-runs-at-once) designed for an AI-native user to invoke as a single bulk action. missing for 10: explicit bulk-operation API/CLI (batch trigger, bulk cancel/retry across many runs), documentation or examples showing an AI agent invoking such bulk operations, and independent confirmation of bulk operation reliability at scale.",
    "evidenceIds": [
      "hatchet-docs-5",
      "hatchet-docs-6",
      "hatchet-docs-16",
      "hatchet-docs-18"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "automation-rules-engine",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Hatchet's docs describe core event-driven automation: workflows can be triggered on schedules (cron, scheduled runs), via webhooks, and filtered/gated with CEL-based event filters and concurrency rules, all managed by a control plane that automatically dispatches tasks to workers on these triggers. This directly matches 'define rules that trigger actions automatically on events' for an orchestration/automation platform. Missing for 10: explicit first-party documentation of arbitrary custom event triggers (e.g., pub/sub event names beyond cron/webhook) and independent hands-on confirmation that event-triggered rules work reliably in production.",
    "evidenceIds": [
      "hatchet-docs-16",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-30",
      "hatchet-docs-10",
      "hatchet-docs-28",
      "hatchet-gh-2"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "automation-scheduled-jobs",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Hatchet explicitly documents Cron Runs and Scheduled Runs as first-class workflow trigger types, alongside concurrency/rate-limit controls, giving clear support for scheduling recurring jobs/workflows (hatchet-docs-16, hatchet-docs-26, hatchet-docs-27). This is corroborated by the general orchestration platform framing in GitHub docs and self-hosting control plane description.\nMissing for 10: independent/hands-on community confirmation specifically of cron/scheduled run reliability at scale, and more detail on failure/edge-case handling for recurring jobs.",
    "evidenceIds": [
      "hatchet-docs-16",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-gh-2",
      "hatchet-docs-8"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "automation-versioned-workflows",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "No evidence in the pack describes versioning, review, or rollback of workflows/automations — the docs cover CLI tools, concurrency, retries, cron/scheduled runs, and self-hosting, but nothing about workflow version history, diff/review workflows, or rollback to a prior version. This is a fair axis for a workflow orchestration platform, so absence of evidence yields 'none' rather than 'na'.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "code-first-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet's SDKs (Python, TypeScript, Go, Ruby) and cookbooks show workflows/tasks defined as ordinary code rather than YAML, and 'durability'/retry features are documented, implying step-level state persistence, and a founder comment confirms multi-step execution paths are declared in code ahead of time. However, there's no explicit documentation of 'automatic checkpointing' semantics or a direct contrast against YAML/DSL approaches, and no independent hands-on report specifically validating this authoring model works smoothly in production. Missing for 10: explicit automatic-checkpointing mechanics, explicit no-DSL/no-YAML framing, independent developer confirmation of code-first authoring experience.",
    "evidenceIds": [
      "hatchet-docs-24",
      "hatchet-gh-1",
      "hatchet-comm-5",
      "hatchet-docs-25"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "concurrency-rate-controls",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs explicitly cover per-key concurrency limits via CEL expressions (e.g., premium vs standard tiers), shared concurrency rules across workflows per user, configurable queue-depth strategies (CANCEL_QUEUED_EXCEPT_NEWEST/OLDEST), and a dedicated Rate Limits reference page alongside a Concurrency reference page, directly matching the per-workflow/per-key/per-tenant throttling story. missing for 10: no independent/hands-on validation of rate-limit or per-tenant isolation behavior under real load, and no explicit doc example scoping limits strictly 'per tenant' as opposed to per-key/user.",
    "evidenceIds": [
      "hatchet-docs-5",
      "hatchet-docs-6",
      "hatchet-docs-18",
      "hatchet-docs-28",
      "hatchet-docs-29",
      "hatchet-docs-10"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "crash-resume-checkpointing",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet is explicitly marketed as a 'durable workflow' engine with automatic retries and durability built into the queuing layer (gh-1, gh-2, gh-3), and has a dedicated Retry Policies doc (hatchet-docs-25) plus separate control-plane architecture (hatchet-docs-8/17) that decouples worker crashes from task state. However, there is no first-party or community evidence detailing exact step-level checkpointing/resume semantics after a crash, deploy, or infra failure, and no hands-on confirmation from users that a workflow actually resumes mid-execution rather than restarting. Missing for 10: explicit documentation of step-level state persistence/checkpointing, and independent/hands-on evidence confirming resume-from-last-step behavior after real crashes or deploys.",
    "evidenceIds": [
      "hatchet-gh-1",
      "hatchet-gh-2",
      "hatchet-gh-3",
      "hatchet-docs-25",
      "hatchet-docs-8",
      "hatchet-docs-17"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "cron-scheduled-workflows",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Hatchet documents cron triggers, scheduled runs, and concurrency strategies (including queue-depth overlap-like policies such as CANCEL_QUEUED_EXCEPT_NEWEST/OLDEST) plus TUI/dashboard observability into tasks and workflows, giving partial coverage of scheduling and visibility. However, there is no explicit documentation tying overlap policies specifically to cron jobs, and no evidence of a pause/resume feature for scheduled workflows. Missing for 10: explicit cron-specific overlap/skip policy docs, pause/resume of cron schedules, and independent confirmation of upcoming-run visibility UI.",
    "evidenceIds": [
      "hatchet-docs-16",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-18",
      "hatchet-docs-14"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Hatchet's concurrency strategies (e.g. CANCEL_QUEUED_EXCEPT_NEWEST/OLDEST) and per-key concurrency limits can approximate collapsing noisy triggers into a single desired run, and rate limits/cron/scheduled runs give some control over trigger cadence, but there is no explicit debounce, batching-window, or delay-trigger primitive described in the evidence. missing for 10: explicit debounce/delay trigger API, event batching/aggregation over a time window, and any hands-on confirmation these concurrency strategies are actually used for debounce-style use cases.",
    "evidenceIds": [
      "hatchet-docs-18",
      "hatchet-docs-5",
      "hatchet-docs-6",
      "hatchet-docs-28",
      "hatchet-docs-29",
      "hatchet-docs-16",
      "hatchet-docs-27"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Hatchet is explicitly positioned as an orchestration engine for AI agents and durable workflows, with first-party docs on retry policies, durability, concurrency, cron/scheduled runs, and dedicated cookbooks showing Claude Agent SDK / OpenAI Agents SDK integration and a support-agent workflow example, matching the checkpointed/retried step model for agent loops. Missing for 10: independent/hands-on evidence of crash-mid-run recovery specifically for LLM tool-call loops, and more detail on how model/tool call state is checkpointed rather than just task-level retries.",
    "evidenceIds": [
      "hatchet-gh-1",
      "hatchet-gh-2",
      "hatchet-docs-25",
      "hatchet-docs-7",
      "hatchet-docs-34",
      "hatchet-docs-35",
      "hatchet-docs-36",
      "hatchet-docs-37",
      "hatchet-docs-28"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "event-driven-triggers",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet's docs show declarative workflow triggering via webhooks, event filters (CEL expressions), and cron/scheduled runs, and its DAG-based workflow model with shared concurrency rules across multiple workflows (docs-6) implies coordinated multi-workflow execution from shared triggers. However, there's no explicit worked example or documentation of a single event fanning out to multiple distinct functions/workflows, and no independent hands-on confirmation of this exact pattern. missing for 10: concrete example/doc of one event triggering multiple downstream workflows/functions, independent verification of fan-out behavior.",
    "evidenceIds": [
      "hatchet-docs-30",
      "hatchet-docs-10",
      "hatchet-docs-16",
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-6",
      "hatchet-gh-2"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "external-signal-injection",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Docs reference 'Webhooks' and CEL-based 'event filters' for triggering workflows externally, implying some external event-to-workflow capability, but there is no concrete documentation of sending a signal/event into a specific *already-running* workflow instance (e.g., a signal API) as opposed to triggering new runs. Missing for 10: explicit signal-to-running-workflow API docs, examples of external systems pushing data into an in-flight workflow, and independent confirmation this works in practice.",
    "evidenceIds": [
      "hatchet-docs-30",
      "hatchet-docs-10"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "fanout-child-workflows",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence pack contains no documentation or discussion of Hatchet's DAG/parallel-step syntax, fan-out/fan-in over dynamic batches, or child-workflow composition — only a general founder comment that 'the execution path of a multi-step workflow ... is declared ahead of time' (hatchet-comm-5), which does not demonstrate these specific coordination primitives. Missing for 10: docs/examples of parallel step definitions, fan-out/fan-in over dynamic batch sizes, and child workflow invocation/spawning.",
    "evidenceIds": [
      "hatchet-comm-5"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "horizontal-worker-scaling",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet's architecture (separate control-plane service, Postgres-backed queue, retries/durability, concurrency-key limits) implies workers can be added to a fleet and tasks distributed/retried on failure (hatchet-gh-1, hatchet-gh-2, hatchet-docs-5/6/18), and the founder describes the control plane as coordinating worker execution independently of client polling (hatchet-comm-6). However, the founder's own account of a scaling pathology at ~25k queries/s with many workers long-polling causing 'runaway CPU deterioration' (hatchet-comm-11) shows real limits to clean horizontal scaling that aren't fully resolved in the evidence, and there's no explicit documentation of automatic failover/rebalancing when a worker dies. Missing for 10: explicit docs on worker-loss recovery/rebalancing, independent throughput benchmarks confirming linear scaling with added workers, and confirmation the 25k qps bottleneck is fully resolved.",
    "evidenceIds": [
      "hatchet-gh-1",
      "hatchet-gh-2",
      "hatchet-docs-5",
      "hatchet-docs-6",
      "hatchet-docs-18",
      "hatchet-comm-6",
      "hatchet-comm-11"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "human-approval-waits",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "No evidence describes a durable pause/resume mechanism for human approval or external event input (e.g., a wait-for-event or signal API); the pack covers retries, cron, scheduling, concurrency, webhooks, and AI-agent tool integrations but never a human-in-the-loop pause/resume pattern.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "hybrid-managed-workers",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet's architecture separates a 'worker' component (run via `hatchet worker dev`) from a central control plane, and `hatchet profile` lets you connect a local worker to different named Hatchet instances/tenants, which is consistent with running workers in your own infra against a vendor-hosted control plane; pricing tiers also imply a hosted/Cloud offering distinct from self-hosting. However, the evidence never explicitly states that when using the hosted (Cloud) control plane, task code/data stays inside the customer's network — the only explicit control-plane documentation describes full self-hosting (running your own control plane), not the hybrid vendor-managed-plane/self-hosted-worker model the story describes. Missing for 10: explicit vendor statement or docs describing the hybrid 'Cloud control plane + self-hosted workers, data stays in your network' architecture, and any data-residency/security claims tied to that specific topology.",
    "evidenceIds": [
      "hatchet-docs-1",
      "hatchet-docs-4",
      "hatchet-docs-17",
      "hatchet-docs-21",
      "hatchet-docs-33"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "idempotency-exactly-once",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence pack covers retries, concurrency limits, cron/scheduled runs, and rate limits, but nowhere mentions idempotency keys or exactly-once step execution guarantees to prevent duplicate side effects like double-charging. Missing for 10: any documentation of idempotency key APIs, deduplication mechanisms, or exactly-once semantics guarantees.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "local-dev-testing-loop",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Docs show `hatchet worker dev` for running a worker locally with auto-reload and mention an 'Embedded Mode' page, which partially supports a lightweight local run, but there is no evidence of a single command spinning up the full engine (control plane) locally, nor any documented unit-testing utilities, time-skipping, or step mocking for workflows. Missing for 10: dedicated single-command full-engine local runner, workflow unit-testing framework, time-skipping/mocked-step utilities, and any independent confirmation of these testing features.",
    "evidenceIds": [
      "hatchet-docs-1",
      "hatchet-docs-13",
      "hatchet-docs-32",
      "hatchet-docs-33"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "long-sleeps-without-compute",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet's docs reference Scheduled Runs and Cron Runs, which imply workflows can be deferred to future times without an always-on process, and the control-plane architecture persists workflow state in Postgres rather than in worker memory. However, no evidence explicitly documents a 'durable sleep' primitive, confirms sleeps can span months, or states that no billable compute/connection is held during a sleep. Missing for 10: explicit sleep/durable-execution API docs, confirmation of long-duration (weeks/months) sleeps, and any statement about compute/connection cost during sleep.",
    "evidenceIds": [
      "hatchet-docs-26",
      "hatchet-docs-27",
      "hatchet-docs-8",
      "hatchet-gh-1"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet documents an OpenTelemetry integration page and its GitHub README claims 'real-time monitoring, alerting, and logging' as part of the platform, plus a TUI for real-time observability into tasks/workflows/workers. However, there is no concrete detail on which metrics (failure rates, latencies, queue depths) are exported, no evidence of alert rule configuration, and no independent confirmation that alerting actually fires as described. Missing for 10: detailed OpenTelemetry metrics/export documentation, explicit failure-rate/latency/queue-depth metric definitions, documented alerting configuration/integration with observability stacks (Grafana/Datadog/PagerDuty), and hands-on or community confirmation that alerts work in practice.",
    "evidenceIds": [
      "hatchet-docs-31",
      "hatchet-gh-1",
      "hatchet-docs-14"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Hatchet officially ships Python, TypeScript, Go and Ruby SDKs (hatchet-gh-2, hatchet-docs-24) and community members confirm using it across multiple languages (hatchet-comm-15), supporting the core 'author in your language' claim. However, several documented features (CEL expression debugging, cron creation via Python reference) are only shown in Python-specific docs, and there is no explicit cross-SDK feature-parity matrix or changelog confirming equal capabilities across all four SDKs. Missing for 10: explicit feature-parity documentation/matrix across SDKs, confirmation that newer features (e.g., CEL debug tools, concurrency strategies) are available uniformly in Go/Ruby/TypeScript, and independent hands-on validation of parity beyond basic usability.",
    "evidenceIds": [
      "hatchet-gh-2",
      "hatchet-docs-24",
      "hatchet-comm-15",
      "hatchet-docs-10",
      "hatchet-docs-16"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "openness-api-parity",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Hatchet offers SDKs (Python/TS/Go/Ruby) and CLI tools for managing workflows, tasks, cron, concurrency, etc., implying broad API-driven access, but there is no explicit documentation or OpenAPI spec confirming full parity between API/SDK capabilities and the web UI, and the openapi probe returned 404s. missing for 10: a published OpenAPI/API reference confirming API parity, explicit statement or evidence that every UI action (e.g., dashboards, tenant/user management, alerting config) is achievable via API/SDK, and independent confirmation of this parity.",
    "evidenceIds": [
      "hatchet-docs-24",
      "hatchet-probe-2",
      "hatchet-docs-8",
      "hatchet-docs-4",
      "hatchet-comm-15"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "openness-full-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet is open-source and self-hostable, meaning users control their own Postgres-backed control plane and inherently retain access to underlying data (hatchet-docs-8, hatchet-docs-17, hatchet-docs-23), which supports an exit path. However, there is no explicit documented data-export feature, open-format export tooling, or migration/export API mentioned anywhere in the evidence. Missing for 10: explicit data export command/API, documentation on open-format export (e.g. JSON/CSV dumps), and independent confirmation that a full data export is possible beyond raw DB access.",
    "evidenceIds": [
      "hatchet-docs-8",
      "hatchet-docs-17",
      "hatchet-docs-23"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "openness-open-license",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "The product's source is publicly hosted on GitHub (hatchet-dev/hatchet), which lets users read the code, but the evidence pack never states or documents an explicit open-source license (e.g., MIT/Apache) for that repository. missing for 10: explicit license text/badge, license file reference, confirmation the full engine (not just SDKs) is open-licensed.",
    "evidenceIds": [
      "hatchet-gh-1",
      "hatchet-gh-2",
      "hatchet-gh-3"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Hatchet has dedicated self-hosting docs explicitly stating you can run your own Hatchet Control Plane instance, with a full self-hosting guide and 'Run Hatchet yourself' section, and is open-source on GitHub. Missing for 10: independent hands-on confirmation of a successful self-hosted deployment (community discussion focuses on managed/product feedback rather than self-host experience) and more detail on infra requirements/HA in self-hosted mode.",
    "evidenceIds": [
      "hatchet-docs-8",
      "hatchet-docs-17",
      "hatchet-docs-23",
      "hatchet-gh-1",
      "hatchet-gh-2"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "privacy-data-residency",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Hatchet supports full self-hosting of its Control Plane, which lets an operator choose the physical location/region of their own infrastructure and thus control data residency indirectly, but there is no documented cloud-based region-selection feature or explicit data-residency guarantee. Missing for 10: an explicit region/residency selector for Hatchet Cloud, documentation of where hosted data is stored, and compliance certifications tied to specific regions.",
    "evidenceIds": [
      "hatchet-docs-8",
      "hatchet-docs-17",
      "hatchet-docs-19",
      "hatchet-docs-20"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "privacy-no-training",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Hatchet is a background task/workflow orchestration engine, not an AI model provider or consumer-facing AI product that trains models on user data; 'preventing data from being used for AI training' is not an applicable axis for this category of infrastructure tool.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "privacy-retention-controls",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Evidence shows fixed data-retention windows tied to pricing tiers (3-day/7-day retention) and the option to self-host the control plane, which gives an operator ultimate control over their own Postgres-backed data including deletion. However, there is no documented user-facing deletion API, configurable retention policy, or GDPR-style erasure workflow for the hosted product. missing for 10: explicit data-deletion/purge API, user-configurable retention settings, compliance documentation (e.g., GDPR erasure) beyond generic 'Audit logs & HIPAA' mention.",
    "evidenceIds": [
      "hatchet-docs-19",
      "hatchet-docs-22",
      "hatchet-docs-8",
      "hatchet-docs-23",
      "hatchet-docs-20"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence pack item mentions telemetry, usage tracking, or any opt-out mechanism for Hatchet; this is a self-hostable orchestration platform where such a privacy control is a fair question but unaddressed in the evidence.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "queue-priority-fairness",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Hatchet documents per-key concurrency limits driven by CEL expressions that can differentiate tenants/tiers (e.g., premium users get 10 concurrent runs vs 1 for others) and multiple concurrency strategies, which gives some tenant-level fairness/resource allocation. However, there is no documented 'priority' field or priority-based scheduler for runs, nor explicit anti-starvation FIFO-replacement mechanism — the evidence only covers concurrency caps, not priority assignment. Missing for 10: explicit run/task priority attribute, priority-aware scheduler documentation, and independent confirmation that concurrency limits actually produce fair scheduling across tenants under load.",
    "evidenceIds": [
      "hatchet-docs-5",
      "hatchet-docs-6",
      "hatchet-docs-18",
      "hatchet-docs-28"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "realtime-run-streaming",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Hatchet's evidence covers real-time observability via its TUI/dashboard and general monitoring/logging, but nothing describes a mechanism for streaming step updates or model tokens into a consumer's own frontend as a workflow executes (no SSE/websocket API, event-stream docs, or token-streaming cookbook is cited). Given Hatchet explicitly targets AI-agent orchestration, this is a fair axis to expect evidence for, but none is present.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "replay-failed-runs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence pack covers retries, concurrency, scheduling, and TUI-based observability, but nothing describes replaying or rerunning a failed workflow from recorded history, let alone from a specific step. Retry Policies (hatchet-docs-25) is only a title with no detail confirming step-level replay/rerun-from-history semantics.",
    "evidenceIds": []
  },
  {
    "productId": "hatchet",
    "storyId": "run-timeline-observability",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Hatchet's docs and GitHub description claim 'real-time monitoring, alerting, and logging' and a TUI/dashboard for observability into tasks and workflows, and community feedback confirms a 'flow-based UI' seen as an improvement over Celery's observability. However, no evidence explicitly describes a searchable/filterable dashboard showing per-step inputs, outputs, retries, and errors in a timeline view — retry policies and OpenTelemetry integration are documented separately but not tied to a unified searchable timeline UI. Missing for 10: explicit documentation or screenshots of a step-level timeline view, confirmation of search/filter capability in the dashboard, and independent hands-on verification of this specific UI feature.",
    "evidenceIds": [
      "hatchet-gh-1",
      "hatchet-docs-2",
      "hatchet-docs-14",
      "hatchet-docs-25",
      "hatchet-docs-31",
      "hatchet-comm-2",
      "hatchet-comm-8"
    ]
  },
  {
    "productId": "hatchet",
    "storyId": "safe-workflow-versioning",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "No evidence describes workflow-version pinning for in-flight runs, deterministic replay guarantees, or any mechanism to keep already-started runs on the code version they began with while new versions roll out — the docs cover retries, concurrency, cron, self-hosting, and CLI tooling but never versioning/determinism semantics. This is a reasonable axis for a durable workflow engine, so absence of evidence means 'none' rather than 'na'.",
    "evidenceIds": []
  },
  {
    "productId": "inngest",
    "storyId": "agentic-agent-docs",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "A confirmed live llms.txt exists at inngest.com/llms.txt returning HTTP 200 with structured agent-friendly summary content, directly satisfying the core ask. However, docs.md (markdown docs endpoint) returns 404, and there's no broader agent-oriented docs.md/site-wide markdown mirror confirmed, only the single llms.txt file. Missing for 10: verified docs.md or per-page markdown mirrors, independent confirmation that agents successfully consume the llms.txt for grounding, and broader agent-oriented documentation format beyond the single root file.",
    "evidenceIds": [
      "inngest-probe-1",
      "inngest-probe-2"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-ai-insights",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Inngest's 'AI Overview' dashboard surfaces usage/cost/performance metrics from gen_ai telemetry, but this is a metrics visualization, not AI-generated insights or suggestions derived from the user's own data. No evidence of natural-language summaries, anomaly detection, or recommendation-style AI outputs inside the product.",
    "evidenceIds": [
      "inngest-docs-3",
      "inngest-docs-27"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest is built specifically for durable, autonomous background execution: scheduled/cron functions, event-triggered functions, durable steps with automatic retries and checkpointing, wait-for-event/human-in-loop pausing, and dedicated durable-agent patterns (agent loops, sub-agent delegation) that resume execution exactly where they left off after failures or long waits. Community reviews corroborate reliable use for background job/video-processing pipelines running unattended for months.  Missing for 10: no independent third-party benchmark of a fully unsupervised long-running AI agent in production beyond vendor docs and general background-job testimonials.",
    "evidenceIds": [
      "inngest-docs-17",
      "inngest-docs-18",
      "inngest-docs-21",
      "inngest-docs-33",
      "inngest-docs-34",
      "inngest-docs-35",
      "inngest-docs-15",
      "inngest-comm-5",
      "inngest-comm-8"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-builtin-assistant",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Inngest offers AgentKit (a framework for building external AI agents) and an MCP server so coding agents can inspect/operate Inngest, but there is no evidence of a built-in AI assistant inside the Inngest product itself that a user can delegate tasks to.",
    "evidenceIds": [
      "inngest-docs-5",
      "inngest-docs-6",
      "inngest-docs-8"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest functions are plain code triggered by events/cron/CLI/API and run on your own infra or self-hosted servers, with a REST API and CLI for invoking functions, fetching traces, and running tests headlessly in CI (inngest-docs-7, inngest-docs-8, inngest-docs-9, inngest-docs-14, inngest-gh-1). Community reports confirm production use in automated background/queue pipelines. Missing for 10: no explicit CI pipeline example/GitHub Actions integration doc, and no independent benchmark of headless CI runs.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-docs-8",
      "inngest-docs-9",
      "inngest-docs-14",
      "inngest-gh-1",
      "inngest-comm-5",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-mcp-client",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The only MCP evidence shows Inngest exposing itself as an MCP server so external coding agents (Claude Code, Cursor, etc.) can inspect/operate Inngest — the reverse direction of this story. There is no evidence that Inngest or its AgentKit framework can act as an MCP client, ingesting external MCP servers' tools for its own agents to use.",
    "evidenceIds": [
      "inngest-docs-5",
      "inngest-probe-4",
      "inngest-docs-6"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-mcp-server",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Inngest documents an official MCP server (inngest.com/docs/ai-dev-tools/mcp) explicitly designed to let MCP clients like Claude Code, Codex, and Cursor connect and inspect/operate Inngest, confirmed via a live probe. As Inngest is a workflow platform rather than an agent itself, this axis applies and is met by first-party documentation. Missing for 10: independent/hands-on confirmation that the MCP server works reliably in practice.",
    "evidenceIds": [
      "inngest-docs-5",
      "inngest-probe-4"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-nl-commands",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Inngest ships an official MCP server so natural-language coding agents (Claude Code, Codex, Cursor) can inspect and operate the platform, and its CLI is documented as agent-accessible for run inspection/invocation — enabling NL-driven operation indirectly through third-party AI clients rather than a built-in NL command interface. Missing for 10: a first-party chat/NL interface within Inngest itself, and independent hands-on evidence of the MCP server actually being used to operate Inngest via natural language.",
    "evidenceIds": [
      "inngest-docs-5",
      "inngest-probe-4",
      "inngest-docs-8",
      "inngest-probe-5"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest ships an official CLI documented at /docs/cli that lets users inspect runs, fetch traces, invoke functions, and even give coding agents access to Inngest data from the terminal, plus a dedicated guide on debugging failed runs entirely from the CLI — directly serving AI-native/agentic workflows. missing for 10: independent hands-on community confirmation of the CLI specifically (community quotes reference dev server/DX generally, not the CLI by name).",
    "evidenceIds": [
      "inngest-docs-8",
      "inngest-docs-37",
      "inngest-probe-5"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-public-api",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest publishes a documented REST API (api-docs.inngest.com) covering events, function runs, and environments, plus a CLI and MCP server for programmatic/agent-driven operation, and an llms.txt for AI-native discovery. Missing for 10: a public OpenAPI spec was not found (probe returned 404s) and no independent third-party corroboration of API usage exists.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-probe-1",
      "inngest-probe-3",
      "inngest-docs-8",
      "inngest-probe-5"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-scoped-keys",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "No evidence of scoped/least-privilege API credential issuance for agents; Inngest docs cover encryption middleware, SOC2 compliance, and webhooks but nothing about generating restricted-scope API keys or tokens for agent identities.",
    "evidenceIds": []
  },
  {
    "productId": "inngest",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest ships official SDKs for TypeScript, Python, and Go with full documentation for building durable functions, agent workflows (AgentKit), step orchestration, and AI-specific tooling (step.ai.wrap, durable agents, agent evals), plus a REST API and CLI for programmatic access — directly supporting AI-native builders. Community feedback corroborates good developer experience building against the SDKs in production. Missing for 10: independent third-party benchmarking of SDK completeness/quality across all three languages and a public OpenAPI spec (probe found 404s).",
    "evidenceIds": [
      "inngest-docs-24",
      "inngest-docs-6",
      "inngest-docs-21",
      "inngest-docs-22",
      "inngest-docs-23",
      "inngest-docs-35",
      "inngest-docs-36",
      "inngest-docs-7",
      "inngest-docs-8",
      "inngest-comm-9",
      "inngest-comm-7",
      "inngest-probe-3"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "agentic-webhooks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest explicitly documents creating unique webhook consumer URLs for any third-party service (e.g. Stripe, Github, Clerk), which act as event sources triggering functions/agents, directly matching the story of subscribing to events via webhooks. This is well-documented first-party capability, though missing for 10: independent hands-on verification of webhook subscription specifically (community evidence covers other features, not webhooks directly).",
    "evidenceIds": [
      "inngest-docs-11",
      "inngest-docs-30"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Inngest ships concrete first-party wrapping of AI SDKs (step.ai.wrap for OpenAI, Anthropic, Vercel AI SDK) and its own AgentKit framework, plus durable-agent patterns (checkpointing, human-in-the-loop, sub-agent delegation) that give agent steps durability without manual glue code. However, coverage of other agent frameworks (LangChain, LlamaIndex, CrewAI, etc.) and model providers beyond the three named is not evidenced, and no independent/hands-on corroboration of these specific AI integrations exists beyond vendor docs. missing for 10: broader agent-framework integrations beyond AgentKit/step.ai.wrap, more model-provider coverage, and independent verification of these AI-specific wrappers.",
    "evidenceIds": [
      "inngest-docs-22",
      "inngest-docs-6",
      "inngest-docs-21",
      "inngest-docs-23",
      "inngest-docs-33",
      "inngest-docs-35"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Inngest documents a REST API (api-docs.inngest.com) but the evidence pack shows explicit probe failures for an OpenAPI/Swagger spec and a docs.md, with no mention of interactive 'try it' examples or runnable API console; nothing indicates an explorable, runnable API reference exists.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-probe-2",
      "inngest-probe-3"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "api-machine-spec",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Probes explicitly checked for an OpenAPI/swagger spec (openapi.json, swagger.json, etc.) and all returned 404, and no docs.md/machine-readable spec was found; while a REST API is documented (api-docs.inngest.com), there is no evidence of a downloadable OpenAPI or equivalent spec.",
    "evidenceIds": [
      "inngest-probe-3",
      "inngest-probe-2",
      "inngest-docs-7"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "api-sandbox",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Inngest provides a local/dev server and Jest-compatible testing utilities (inngest-docs-14) plus community reports of a 'local mode'/development server that eases debugging without touching production (inngest-comm-7, inngest-comm-9), and REST API/self-hosting docs reference distinct 'environments' (inngest-docs-7, inngest-docs-9). However there is no first-party documentation explicitly describing a dedicated sandbox/staging environment isolated from production data. Missing for 10: explicit docs on environment isolation/branching for safe testing, and independent verification that dev-server tests never touch production data.",
    "evidenceIds": [
      "inngest-docs-14",
      "inngest-comm-7",
      "inngest-comm-9",
      "inngest-docs-7",
      "inngest-docs-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "api-versioning-policy",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "While Inngest exposes a REST API (inngest-docs-7) and SDK version paths (e.g. /v4/ in inngest-docs-14), the evidence pack contains no documented API versioning scheme or deprecation policy; the closest doc (inngest-docs-19) actually describes avoiding explicit version markers for function changes, not an API deprecation policy. No changelog, migration guide, or deprecation timeline is evidenced.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-docs-19",
      "inngest-docs-14"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "automatic-step-retries",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Docs confirm automatic step-level retries (default 4 attempts) with configurable retry counts, plus concurrency, rate limiting, timeouts via waitForEvent, and memoized/checkpointed step execution that resumes without try/catch scaffolding. Community reviews corroborate reliability in production use. missing for 10: independent hands-on verification of configurable backoff policies specifically (only default retry count and general retry behavior documented explicitly).",
    "evidenceIds": [
      "inngest-docs-15",
      "inngest-docs-2",
      "inngest-docs-26",
      "inngest-docs-12",
      "inngest-docs-13",
      "inngest-docs-18",
      "inngest-comm-4",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "automation-bulk-operations",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Inngest is a workflow/event orchestration engine, not a data-record management tool, so 'bulk operations across many items' isn't a native concept, but its event-driven fan-out (events trigger many function runs), concurrency keys, and REST API could plausibly support batch-style processing across many items. There's no explicit documentation of a bulk-operation API, batch invoke, or multi-item selection/action feature. missing for 10: explicit bulk/batch operation API or UI, evidence of processing many items in a single user-triggered action, and independent confirmation of bulk-scale usage patterns.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-docs-12",
      "inngest-docs-24",
      "inngest-docs-11"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "automation-rules-engine",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Inngest is fundamentally an event-driven automation engine: functions are triggered by events, cron schedules, or waits, and can pause/resume on incoming events (step.waitForEvent), webhooks act as event sources, and rate limiting/concurrency rules govern execution — directly matching 'rules that trigger actions on events'. Community reports corroborate reliable production use of these event/trigger workflows. Missing for 10: no independent benchmark of complex rule-conditioning logic (e.g. multi-condition rule matching beyond simple event names/waits) and no evidence of a declarative 'if X and Y then trigger Z' rule builder beyond code-based triggers.",
    "evidenceIds": [
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-11",
      "inngest-docs-17",
      "inngest-docs-13",
      "inngest-docs-12",
      "inngest-comm-1",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "automation-scheduled-jobs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest explicitly supports cron-based scheduled functions with timezone support (inngest-docs-17/31) plus recurring/triggered workflows via durable steps, retries, and wait-for-event orchestration (inngest-docs-2, -18, -32), and community reports confirm real-world use for scheduling/queueing needs (inngest-comm-1). missing for 10: independent hands-on verification specifically of recurring cron scheduling (most community evidence is about general job/queue use, not cron recurrence specifically).",
    "evidenceIds": [
      "inngest-docs-17",
      "inngest-docs-31",
      "inngest-docs-2",
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-comm-1"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "automation-versioned-workflows",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Inngest supports versionless function deployment (docs-19) and observability/tracing/debugging via CLI (docs-37, docs-20) which give some ability to inspect and review automation runs, but there is no evidence of explicit version history, diffing, approval workflows, or a rollback mechanism for automations/functions themselves. missing for 10: explicit version control/history for functions, a documented rollback capability, review/approval workflow for changes to automations, and independent confirmation of these features.",
    "evidenceIds": [
      "inngest-docs-19",
      "inngest-docs-20",
      "inngest-docs-37",
      "inngest-docs-8"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "code-first-workflows",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest lets developers write ordinary TypeScript, Python, or Go functions with steps that are automatically checkpointed/memoized and resumed from the last successful point, with no YAML or proprietary DSL — supported by docs and corroborated by community devs praising the natural, code-first DX versus alternatives like Temporal. missing for 10: independent third-party benchmark or deeper multi-language proof beyond docs claims.",
    "evidenceIds": [
      "inngest-docs-24",
      "inngest-docs-25",
      "inngest-docs-26",
      "inngest-docs-2",
      "inngest-comm-9",
      "inngest-comm-3"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "concurrency-rate-controls",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs explicitly support per-key concurrency limits (e.g., per user id) via step concurrency keys, and separate hard rate-limiting on function runs within a time period, directly enabling per-tenant/per-key throttling to prevent one hot customer from starving others. Missing for 10: no independent/hands-on evidence validating multi-tenant fairness at scale, and no explicit combined example of concurrency+rate-limit used together per tenant in production.",
    "evidenceIds": [
      "inngest-docs-12",
      "inngest-docs-13",
      "inngest-docs-24"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "crash-resume-checkpointing",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest's core value proposition is durable execution: steps are memoized/checkpointed so a crashed process resumes from the last successful step rather than restarting, explicitly documented with the 'step 7 of 12' example and backed by retry, state persistence, and observability docs; community reports corroborate reliability in production use. Missing for 10: independent third-party benchmark or incident report specifically confirming crash-recovery behavior in production (only vendor docs and general reliability praise are available).",
    "evidenceIds": [
      "inngest-docs-2",
      "inngest-docs-21",
      "inngest-docs-33",
      "inngest-docs-25",
      "inngest-docs-15",
      "inngest-comm-4",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "cron-scheduled-workflows",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Inngest documents cron-based scheduled functions with timezone support (docs-17/31) and generic concurrency controls with keys (docs-12) that could prevent overlapping runs, plus wait-for-event pause/resume semantics (docs-18/32) and run-level observability/traces (docs-20/37). However, there is no explicit documentation of a cron-specific 'overlap policy' (e.g. skip/queue/replace on overlap) or of a dashboard view showing upcoming scheduled run times. Missing for 10: explicit overlap-policy configuration for scheduled functions, ability to pause/resume a cron schedule itself (not just a run), and a documented view of upcoming/future cron executions.",
    "evidenceIds": [
      "inngest-docs-17",
      "inngest-docs-31",
      "inngest-docs-12",
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-20",
      "inngest-docs-37"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Inngest documents adjacent flow-control primitives — rate limiting to skip excess runs (inngest-docs-13), keyed concurrency limits (inngest-docs-12), and event-driven pausing/waiting via step.waitForEvent (inngest-docs-18, inngest-docs-32) — which can help collapse noisy triggers, but the evidence pack contains no explicit mention of debounce or batching functions, the specific mechanisms typically used for this exact use case. Missing for 10: explicit debounce configuration docs, batch/batchEvents documentation, and any hands-on confirmation that noisy streams are collapsed as intended.",
    "evidenceIds": [
      "inngest-docs-13",
      "inngest-docs-12",
      "inngest-docs-18",
      "inngest-docs-32"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest has dedicated docs for durable agent loops: checkpointed steps that resume from the last successful point mid-run (docs-21, docs-33), a ReAct-style agent-tool-loop guide with retriable steps (docs-23), step.ai.wrap() for wrapping model calls as durable/observable steps (docs-22), sub-agent delegation and human-in-the-loop pause/resume patterns (docs-34, docs-35), plus general durable-execution/retry/memoization mechanics (docs-2, docs-15, docs-26). Community feedback corroborates reliability of the underlying durable execution engine in production use (inngest-comm-1, inngest-comm-5, inngest-comm-9). Missing for 10: independent hands-on validation specifically of agent-loop crash recovery (not just general durable functions) and more detail on tool-call-level retry semantics distinct from generic step retries.",
    "evidenceIds": [
      "inngest-docs-21",
      "inngest-docs-33",
      "inngest-docs-23",
      "inngest-docs-22",
      "inngest-docs-34",
      "inngest-docs-35",
      "inngest-docs-2",
      "inngest-docs-15",
      "inngest-comm-1",
      "inngest-comm-5",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "event-driven-triggers",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest natively triggers functions from events, webhooks, or crons declaratively (event-driven SDK, unique webhook URLs, cron scheduling), and multiple functions can subscribe to the same event for fan-out, with community reports confirming reliable production use for exactly this pattern (queueing, scheduling, triggers). Missing for 10: no explicit first-party example showing many functions bound to a single event name in the evidence pack (fan-out is documented for events generally but not shown with a concrete multi-function example), and no independent benchmark of fan-out scale.",
    "evidenceIds": [
      "inngest-docs-11",
      "inngest-docs-30",
      "inngest-docs-17",
      "inngest-docs-31",
      "inngest-docs-24",
      "inngest-docs-1",
      "inngest-comm-1",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "external-signal-injection",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest explicitly supports sending events into a running workflow via step.waitForEvent() to pause and resume based on an external event, with documented human-in-the-loop patterns (waiting for approval), plus REST API and webhook consumers to inject events from external sources like APIs or third-party services, and event/invoke propagation across child runs. missing for 10: independent hands-on confirmation specifically of the waitForEvent/signal pattern (community evidence is about general reliability, not this specific capability).",
    "evidenceIds": [
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-34",
      "inngest-docs-33",
      "inngest-docs-7",
      "inngest-docs-11",
      "inngest-docs-4"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "fanout-child-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Inngest's step model supports composing durable steps, invoking/deferring child functions/workflows, and waiting for events for fan-in-like coordination (inngest-docs-2, inngest-docs-4, inngest-docs-18, inngest-docs-35), all without manual queue/worker coordination (inngest-docs-1, inngest-docs-24). However, the evidence pack lacks explicit documentation of parallel step execution primitives (e.g., Promise.all across steps) or fan-out over dynamic batches specifically, so the 'parallel steps' and 'dynamic batch fan-out/fan-in' parts of the story are only inferred, not directly evidenced. missing for 10: explicit docs on parallel step execution syntax, explicit fan-out/fan-in over dynamic batch sizes, independent hands-on example of composing these three patterns together.",
    "evidenceIds": [
      "inngest-docs-2",
      "inngest-docs-4",
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-35",
      "inngest-docs-1",
      "inngest-docs-24"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "horizontal-worker-scaling",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Inngest's docs describe a serverless model where the platform handles queueing, scaling, and concurrency without users managing workers (docs-1, docs-24), and step-level checkpointing/retries (docs-2, docs-15, docs-21) imply resilience if an executing process dies. Self-hosted mode also supports syncing functions across your own infra (inngest-gh-1), suggesting a worker-fleet model. However, no evidence explicitly documents load-balancing algorithms across a worker fleet or explicit fault-tolerance to worker-node loss (as opposed to step/function-level retries), and no community reports confirm this at scale. Missing for 10: explicit load-balancing/fleet-distribution docs, documented behavior when a worker node goes down mid-execution, and independent benchmarks/community confirmation of horizontal scaling behavior.",
    "evidenceIds": [
      "inngest-docs-1",
      "inngest-docs-2",
      "inngest-docs-15",
      "inngest-docs-21",
      "inngest-docs-24",
      "inngest-gh-1"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "human-approval-waits",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Inngest's step.waitForEvent() explicitly pauses a function run until a matching event is received, with no polling or held resources, and docs specifically describe waiting hours/days for human approval before resuming exactly where it left off (e.g. 'wait three hours for a human to approve something, it suspends entirely, holding zero resources, and resumes when the approval arrives'), plus a dedicated human-in-the-loop pattern guide. Missing for 10: independent/hands-on community verification specifically of long-duration human-approval waits (community evidence covers general reliability but not this exact scenario).",
    "evidenceIds": [
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-33",
      "inngest-docs-34",
      "inngest-docs-21"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "hybrid-managed-workers",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Inngest's core architecture explicitly separates execution (your functions run on your own infra/servers) from the managed control plane: 'Deploy your functions to your own infrastructure. Sync your application's functions with the Inngest Platform' (inngest-gh-1), and self-hosting is documented as a supported option since 1.0 (inngest-docs-9, inngest-docs-28) alongside encryption middleware for extra data control (inngest-docs-10). This matches the platform-engineer story of workers-in-your-network with vendor-managed orchestration. Missing for 10: independent/hands-on verification of data-residency guarantees in the hybrid (non-fully-self-hosted) mode, and more detail on network isolation/security posture of the control-plane-to-worker connection.",
    "evidenceIds": [
      "inngest-gh-1",
      "inngest-docs-9",
      "inngest-docs-28",
      "inngest-docs-10"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "idempotency-exactly-once",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Inngest provides step memoization, retries, and checkpointed resumption (docs-2, docs-15, docs-26) which help avoid re-executing already-completed side effects on retry, and rate limiting/concurrency keys (docs-12, docs-13) reduce duplicate trigger risk. However, there is no explicit documentation of idempotency keys for event deduplication or a guarantee of exactly-once step execution semantics — Inngest's model is at-least-once with retries plus memoization, not a documented idempotency-key API for dedup. missing for 10: explicit idempotency-key/event-deduplication feature docs, explicit 'exactly-once' guarantee language, and hands-on/community confirmation that duplicate triggers are prevented from double-charging or double-sending.",
    "evidenceIds": [
      "inngest-docs-2",
      "inngest-docs-15",
      "inngest-docs-26",
      "inngest-docs-12",
      "inngest-docs-13"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "local-dev-testing-loop",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Inngest documents a local dev server run via CLI (community confirms 'enabling a local mode' and a 'development server' that 'makes debugging jobs very easy'), and a Jest-compatible testing API for mocking function state, step tooling, and inputs. However, there is no explicit evidence of time-skipping/time-travel test utilities, and the 'one command runs the whole engine' claim is only indirectly evidenced via CLI docs and community mentions rather than a dedicated doc citation. missing for 10: explicit single-command local engine startup docs, explicit time-skipping/clock-mocking test utility documentation, independent hands-on confirmation of the testing API itself.",
    "evidenceIds": [
      "inngest-docs-14",
      "inngest-docs-8",
      "inngest-comm-7",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "long-sleeps-without-compute",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Docs explicitly describe step.sleep/waitForEvent suspending execution while holding zero resources, resuming from checkpoint after arbitrarily long waits (e.g., 'suspends entirely, holding zero resources, and resumes when the approval arrives'), and this is corroborated by community usage reports of reliable long-running background jobs. missing for 10: independent benchmark/hands-on confirmation of multi-month sleeps specifically (only human-in-the-loop/hour-scale examples shown).",
    "evidenceIds": [
      "inngest-docs-2",
      "inngest-docs-18",
      "inngest-docs-32",
      "inngest-docs-33",
      "inngest-docs-34",
      "inngest-comm-4",
      "inngest-comm-9"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Inngest documents built-in observability — metrics, traces, event logs, and per-step timing captured automatically for every run (docs-20), and OpenTelemetry-derived gen_ai.* metadata is surfaced in an AI Overview dashboard (docs-3/27). This shows internal capture and some OTel-based data, but there's no documented mechanism for exporting these metrics/traces to an external observability stack (Prometheus, Datadog, Grafana) or for configuring alerts that fire on failure rates, latency thresholds, or queue depth anomalies.  missing for 10: explicit metrics/traces export integration to third-party observability platforms, native alerting/alert-rule configuration for failure or latency thresholds, queue-depth metric documentation.",
    "evidenceIds": [
      "inngest-docs-20",
      "inngest-docs-3",
      "inngest-docs-27",
      "inngest-docs-22"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Docs confirm SDKs for TypeScript, Python, and Go with steps, retries, and flow control (inngest-docs-24, inngest-docs-25), showing multi-language support. However, there is no evidence addressing feature parity across these SDKs — most detailed docs, testing tools (Jest-compatible testing, ESLint plugin) and community feedback (inngest-comm-3) reference TypeScript specifically, suggesting Python/Go may lag behind. Missing for 10: explicit parity documentation across SDKs, Python/Go-specific testing and tooling evidence, independent confirmation of equal capabilities in non-TS SDKs.",
    "evidenceIds": [
      "inngest-docs-24",
      "inngest-docs-25",
      "inngest-docs-14",
      "inngest-docs-38",
      "inngest-comm-3"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "openness-api-parity",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Inngest ships a documented REST API (events, function runs, environments) and a CLI that can inspect runs, fetch traces, and invoke functions, giving reasonable programmatic coverage of core operational tasks. However, there's no evidence of an OpenAPI spec (docs.md and openapi.json probes both 404) and no explicit claim that UI-only surfaces like AI Overview or Agent Evals dashboards are fully API-accessible, so full UI/API parity is unconfirmed. Missing for 10: OpenAPI/spec discoverability, explicit parity statement covering dashboard-specific features (AI Overview, Agent Evals, session management), and independent confirmation that API can replicate every UI action.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-docs-8",
      "inngest-probe-3",
      "inngest-docs-3",
      "inngest-docs-36"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "openness-full-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Inngest offers self-hosting (own your infra/data) and a REST API to programmatically pull events, runs, and traces, which gives some data portability, but there is no documented bulk 'export all data' feature or explicit open-format export tool, and the platform's license is Source Available/SSPL rather than fully open, which the community flags as limiting true openness. missing for 10: explicit bulk data-export feature, documented open-format export tool, and independent confirmation that self-hosted/API data covers 100% of stored history.",
    "evidenceIds": [
      "inngest-docs-7",
      "inngest-docs-9",
      "inngest-docs-28",
      "inngest-gh-1",
      "inngest-comm-2",
      "inngest-comm-11"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "openness-open-license",
    "verdict": "disputed",
    "quality": 3,
    "confidence": "high",
    "rationale": "Inngest's source is publicly viewable on GitHub (inngest-gh-1), but community evidence explicitly states the license (SSPL) is not OSI-approved open source, calling it 'source available' and 'fauxpen source' rather than truly open licensed (inngest-comm-2, inngest-comm-11, inngest-comm-12). Missing for 10: an actual OSI-approved open-source license, first-party confirmation of licensing terms, and any docs evidence rebutting the community's characterization.",
    "evidenceIds": [
      "inngest-gh-1",
      "inngest-comm-2",
      "inngest-comm-11",
      "inngest-comm-12"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Inngest documents self-hosting as officially supported since its 1.0 release, with GitHub confirming you can deploy functions to your own infrastructure and sync with a self-hosted Inngest server. Community discussion notes the project uses a source-available (SSPL) license rather than pure open source, which tempers the 'openness' framing even though self-hosting itself is functional and documented. Missing for 10: independent hands-on report of running the self-hosted server successfully, and clarity on feature parity between self-hosted and cloud versions.",
    "evidenceIds": [
      "inngest-docs-9",
      "inngest-docs-28",
      "inngest-gh-1",
      "inngest-comm-2",
      "inngest-comm-11"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "privacy-data-residency",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Inngest doesn't document any hosted-platform region/residency selection, but self-hosting (inngest-docs-9, inngest-docs-28, inngest-gh-1) lets a user deploy Inngest's own infrastructure anywhere, which indirectly gives control over data location. Missing for 10: explicit hosted-service region selection, data residency guarantees/certifications, or documentation addressing where event/state data is stored by default.",
    "evidenceIds": [
      "inngest-docs-9",
      "inngest-docs-28",
      "inngest-gh-1"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "privacy-no-training",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Inngest is a durable workflow/execution engine for developers, not an AI model provider or consumer-facing AI tool that trains models on user data; the 'prevent my data from being used to train AI models' story is a category error for this product type.",
    "evidenceIds": []
  },
  {
    "productId": "inngest",
    "storyId": "privacy-retention-controls",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Inngest offers self-hosting and bring-your-own-encryption-key middleware, which give some indirect control over data, but there is no documented data retention policy, deletion API/workflow, or explicit user-facing controls for purging stored events/run state. missing for 10: explicit data retention configuration, a documented deletion/purge API or UI control, retention period settings for events/traces/state, and any independent confirmation of these controls working.",
    "evidenceIds": [
      "inngest-docs-9",
      "inngest-docs-10",
      "inngest-gh-1"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence in the pack addresses telemetry/usage-tracking opt-out settings for Inngest itself; self-hosting and SOC2 docs discuss data control and infrastructure but do not mention any telemetry opt-out mechanism.",
    "evidenceIds": []
  },
  {
    "productId": "inngest",
    "storyId": "queue-priority-fairness",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Inngest documents concurrency limiting with per-key scoping (e.g., per user id) and rate limiting, which can approximate fair resource allocation across tenants, but there is no evidence of an explicit run-priority mechanism or documentation describing 'fair scheduling' across tenants as such. Missing for 10: explicit priority assignment API/config for runs, documentation of a fairness/anti-starvation scheduling algorithm across tenants, and any benchmark or hands-on evidence showing priority-based scheduling in practice.",
    "evidenceIds": [
      "inngest-docs-12",
      "inngest-docs-13",
      "inngest-docs-24"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "realtime-run-streaming",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence covers durability, step checkpointing, observability dashboards, and AI-call tracing, but nothing describes a mechanism (e.g., websockets, SSE, pub/sub API) for streaming step updates or model tokens live into a user-facing frontend during execution.",
    "evidenceIds": []
  },
  {
    "productId": "inngest",
    "storyId": "replay-failed-runs",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Inngest documents automatic retries and step-level checkpointing that let a function resume from the last successful step (inngest-docs-2, inngest-docs-15), plus CLI/dashboard tooling for finding a failed run, pulling its trace, and identifying the broken step (inngest-docs-37, inngest-docs-20). However, this covers automatic retry/resume and diagnosis, not an explicit manual 'replay/rerun from history, optionally from a chosen step' action initiated by an operator. Missing for 10: explicit documentation of a manual replay/rerun feature (e.g., a dashboard 'rerun' button or API endpoint) that lets an engineer restart a completed/failed run from an arbitrary recorded step, and independent confirmation it works as described.",
    "evidenceIds": [
      "inngest-docs-2",
      "inngest-docs-15",
      "inngest-docs-20",
      "inngest-docs-37"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "run-timeline-observability",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs describe capturing metrics, traces, event logs, and per-step timing for every run without instrumentation, plus a CLI workflow for finding a failed run, pulling its trace, and identifying which step broke — matching the searchable, filterable step-by-step timeline story. Community feedback corroborates the dev/monitoring experience (local dev server, easy debugging) as reliable in practice. Missing for 10: explicit documentation of dashboard search/filter UI mechanics (e.g., filter by input/output values) and independent hands-on screenshots of the dashboard timeline itself.",
    "evidenceIds": [
      "inngest-docs-20",
      "inngest-docs-37",
      "inngest-comm-9",
      "inngest-docs-8"
    ]
  },
  {
    "productId": "inngest",
    "storyId": "safe-workflow-versioning",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Inngest has a dedicated versioning doc stating deployments don't require explicit version markers or migration logic, and durable step/state execution means in-flight runs resume from checkpointed state so new code doesn't retroactively alter their execution path. This is corroborated by the broader durable-execution model (memoized steps, resumption from last checkpoint) which underlies deterministic replay across deploys. Missing for 10: independent/hands-on verification of the exact in-flight-run-vs-new-deploy behavior, and more detail on edge cases (e.g., changed step signatures mid-run).",
    "evidenceIds": [
      "inngest-docs-19",
      "inngest-docs-2",
      "inngest-docs-26",
      "inngest-docs-25"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-agent-docs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Restate has a confirmed live llms.txt file (HTTP 200) at docs.restate.dev/llms.txt, plus a dedicated AI-assistant/coding-agent plugin page teaching agents how to build with Restate, satisfying the agent-oriented docs story. missing for 10: no independent/community confirmation that agents actually consume llms.txt successfully in practice.",
    "evidenceIds": [
      "restate-probe-1",
      "restate-docs-25",
      "restate-docs-86"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-ai-insights",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Restate is a durable-execution/workflow-orchestration infrastructure product for building resilient services and AI agents, not a data product that surfaces AI-generated insights or suggestions from a user's own data. The evidence is entirely about building agentic workflows, retries, and observability of invocations, not about analyzing user data to produce insights — this is a category mismatch, not a missing feature.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Restate's docs explicitly support durable background automation: durable timers/sleep/schedule, waiting for external events and webhooks, long-running process coordination, and human approvals, plus dedicated AI-agent durability guarantees (persisted LLM/tool calls, automatic recovery) that let agents run autonomously without babysitting. Missing for 10: independent/hands-on corroboration specifically of long-running autonomous background automations (community evidence is about general architecture, not this specific capability).",
    "evidenceIds": [
      "restate-docs-5",
      "restate-docs-6",
      "restate-docs-15",
      "restate-docs-16",
      "restate-docs-17",
      "restate-docs-20",
      "restate-docs-21"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-builtin-assistant",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Restate is a durable-execution runtime/infrastructure platform; the evidence pack's 'AI assistant' references (restate-docs-25, -35, -86) describe a plugin that teaches EXTERNAL coding agents (Claude Code, Cursor, Codex) how to build Restate apps — the reverse of a built-in assistant inside Restate that a user delegates tasks to. No evidence shows any embedded assistant/chatbot within the product itself for task delegation.",
    "evidenceIds": [
      "restate-docs-25",
      "restate-docs-35",
      "restate-docs-86"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate is distributed as a single self-contained binary with no external dependencies, deployable to containers, VMs, Kubernetes, serverless, and can be invoked via HTTP/CLI/typed clients without any UI, making it well-suited for headless/CI automation; it also has a documented CLI for introspection and management. missing for 10: no explicit CI pipeline example/tutorial or independent hands-on report confirming headless CI usage.",
    "evidenceIds": [
      "restate-docs-13",
      "restate-docs-26",
      "restate-docs-34",
      "restate-docs-7",
      "restate-docs-43",
      "restate-docs-9",
      "restate-docs-8"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-mcp-client",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Restate documents an MCP server it exposes to teach coding agents (Claude Code, Cursor, etc.) how to build Restate apps, but this is Restate acting as an MCP *server* for external agents, not Restate itself consuming/plugging in external MCP servers to use their tools. No evidence shows Restate agents built on the platform connecting to arbitrary MCP servers as a client.",
    "evidenceIds": [
      "restate-docs-25",
      "restate-docs-35",
      "restate-docs-86",
      "restate-probe-3",
      "restate-docs-55",
      "restate-docs-89"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-mcp-server",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate documents a 'Restate plugin' that integrates with coding agents (Claude Code, Codex, Cursor) and a probe confirms an official MCP server is documented at the ai-assistant page, so the axis is met. However, the docs mostly describe it as teaching the agent Restate's SDK/patterns rather than exposing full tool/service invocation via MCP, and there's no independent hands-on confirmation of the MCP server's behavior. Missing for 10: detailed MCP tool schema/spec, independent/hands-on validation of the MCP server working end-to-end, and clarity on what tools/capabilities are exposed beyond coding guidance.",
    "evidenceIds": [
      "restate-docs-25",
      "restate-docs-35",
      "restate-docs-86",
      "restate-probe-3"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-nl-commands",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Restate is developer infrastructure (durable execution server, CLI, SDKs, typed HTTP APIs) with no evidence of a natural-language command interface for operating the product itself; the MCP server and CLI are for programmatic/coding-agent integration, not NL control of Restate's own operations.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate ships an official CLI used to interact with the server, manage services/deployments/invocations, and inspect state (restate-docs-10, restate-docs-43, restate-probe-4), which is core to its agentic/durable-execution workflows for AI-native users. Missing for 10: no independent/hands-on community corroboration specifically praising the CLI, and no detail on AI-native-specific CLI features (e.g., natural-language or agent-invocation commands).",
    "evidenceIds": [
      "restate-docs-10",
      "restate-docs-43",
      "restate-probe-4"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-public-api",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate documents multiple ways to drive the product programmatically: HTTP invocation, typed SDK/ingress clients across languages, a CLI, an Admin API, and an Introspection SQL API, plus per-service OpenAPI 3.1 specs for handlers — all first-party documented and usable by an AI-native/agentic consumer. Missing for 10: no global top-level OpenAPI spec was found (probe shows 404s at common paths) and no independent/hands-on corroboration of API completeness beyond vendor docs.",
    "evidenceIds": [
      "restate-docs-8",
      "restate-docs-9",
      "restate-docs-10",
      "restate-docs-28",
      "restate-docs-39",
      "restate-docs-43",
      "restate-docs-66",
      "restate-docs-69",
      "restate-docs-76",
      "restate-probe-2",
      "restate-probe-4"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-scoped-keys",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Restate's security docs describe request identity verification and restricting network access to services (proxying), but there is no evidence of issuing scoped/least-privilege API credentials or tokens specifically for AI agents (e.g., per-agent API keys, OAuth-style scopes, or permission policies).",
    "evidenceIds": [
      "restate-docs-12",
      "restate-docs-33",
      "restate-docs-68"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate ships official SDKs for TypeScript, Java/Kotlin, Python, Go, and Rust (restate-gh-2), with extensive first-party documentation on building AI agents, durable agent patterns, and direct integrations with AI-specific SDKs like OpenAI Agents SDK and Vercel AI SDK (restate-docs-88, restate-docs-89, restate-docs-15-17). Community evidence corroborates real-world SDK usage (restate-comm-1, restate-comm-3) though feedback is general rather than AI-specific; missing for 10: hands-on independent review of the AI-agent-specific SDK ergonomics and broader third-party corroboration beyond a single HN thread.",
    "evidenceIds": [
      "restate-gh-2",
      "restate-docs-88",
      "restate-docs-89",
      "restate-docs-17",
      "restate-docs-15",
      "restate-comm-1",
      "restate-comm-3"
    ]
  },
  {
    "productId": "restate",
    "storyId": "agentic-webhooks",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Restate explicitly documents durable webhooks: 'Any handler can be a durable webhook endpoint. No need to do anything special or extra!' with automatic exactly-once processing and idempotency-key deduplication of incoming events, plus broader signal/event handling for agent coordination and human approvals. This directly satisfies subscribing to events via webhooks for AI-native agentic workflows. Missing for 10: independent/hands-on corroboration of webhook subscription setup, and detail on webhook-specific security/verification beyond generic request-identity docs.",
    "evidenceIds": [
      "restate-docs-37",
      "restate-docs-38",
      "restate-docs-47",
      "restate-docs-81",
      "restate-docs-6",
      "restate-docs-20"
    ]
  },
  {
    "productId": "restate",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Restate documents explicit first-party integrations for AI stacks: the Vercel AI SDK (\"excellent fit for Restate integration\"), the OpenAI Agents SDK (\"fault-tolerant agent execution with automatic retries and durable state\"), and observability integration with Langfuse for tracing LLM calls/tool executions, plus a library of durable agent patterns (multi-agent, human-in-the-loop, tools-as-services) that wrap durability around agent workflows without extra glue code. However, this is limited to a small named set of frameworks/providers (no broad list of model providers or other popular agent frameworks like LangChain/LlamaIndex/CrewAI), and all evidence is vendor docs with no independent/hands-on confirmation of how seamless these specific SDK integrations are in practice. Missing for 10: broader roster of first-party model-provider/framework integrations, independent hands-on reports validating these SDK integrations work glue-code-free.",
    "evidenceIds": [
      "restate-docs-88",
      "restate-docs-89",
      "restate-docs-87",
      "restate-docs-49",
      "restate-docs-55"
    ]
  },
  {
    "productId": "restate",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence shows Restate can generate an OpenAPI 3.1 spec per service (restate-docs-76) and has admin API docs, but there is no evidence of an interactive, runnable API reference/playground on the docs site — in fact the probe explicitly found openapi.json/swagger.json endpoints returning 404 (restate-probe-2). No mention of a Swagger UI, try-it-now console, or embedded runnable examples anywhere in the pack.",
    "evidenceIds": [
      "restate-docs-76",
      "restate-probe-2"
    ]
  },
  {
    "productId": "restate",
    "storyId": "api-machine-spec",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Restate exposes HTTP invocation and introspection APIs, but a direct probe for an OpenAPI/Swagger spec at all standard locations returned 404s, and no documentation mentions a downloadable machine-readable API spec.",
    "evidenceIds": [
      "restate-probe-2",
      "restate-docs-8",
      "restate-docs-10"
    ]
  },
  {
    "productId": "restate",
    "storyId": "api-sandbox",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate's TypeScript SDK ships a testing library that uses Testcontainers to spin up an isolated Restate Server in Docker for testing handlers, and docs describe local dev environment setup — both let a user test app logic without touching a production Restate deployment. However, this is generic developer testing tooling, not something framed or documented specifically as an AI-agent 'sandbox vs production' workflow, and there's no mention of test data isolation, staging environments, or independent corroboration of the testing experience. Missing for 10: explicit sandbox/staging environment guidance distinct from local Docker testing, AI-agent-specific sandbox framing, and community/hands-on validation of the testing workflow.",
    "evidenceIds": [
      "restate-docs-23",
      "restate-docs-31",
      "restate-docs-79",
      "restate-docs-75"
    ]
  },
  {
    "productId": "restate",
    "storyId": "api-versioning-policy",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Restate documents versioning support for user services (immutable deployments, requests pinned to a single code version) via restate-docs-24/41, and SDK changelogs show incremental API evolution (restate-docs-44,73,74), but there is no documented deprecation policy for Restate's own APIs/SDKs that an AI-native consumer could rely on. missing for 10: an explicit deprecation policy or versioning guarantees for Restate's public APIs/SDKs, timeline for API sunset, and independent confirmation of long-term API stability.",
    "evidenceIds": [
      "restate-docs-24",
      "restate-docs-41",
      "restate-docs-44",
      "restate-docs-73",
      "restate-docs-74"
    ]
  },
  {
    "productId": "restate",
    "storyId": "automatic-step-retries",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate's ctx.run wraps arbitrary steps with automatic retries, configurable backoff/retry policies, and terminal errors to bypass retries, plus durable timers/timeouts, all without manual try/catch scaffolding (restate-docs-18, restate-docs-19, restate-docs-22, restate-docs-5, restate-docs-15). missing for 10: independent hands-on validation of the retry/backoff configuration specifically (community evidence is general product sentiment, not focused on retry policy behavior), and no explicit example of a configured failure-policy edge case in the evidence pack.",
    "evidenceIds": [
      "restate-docs-18",
      "restate-docs-19",
      "restate-docs-22",
      "restate-docs-5",
      "restate-docs-15",
      "restate-docs-1"
    ]
  },
  {
    "productId": "restate",
    "storyId": "automation-bulk-operations",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "Restate is a durable-execution/workflow engine; while it supports concurrency limits and orchestrating many invocations (restate-docs-4, restate-docs-11), there is no evidence of a bulk/batch operation API or UI for acting on many items at once as a single operation.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "automation-rules-engine",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate supports event-triggered automation via durable webhooks, external events, timers/cron, and workflow patterns (human-in-the-loop, orchestrator, multi-agent) that react to signals and trigger durable actions, but this is a developer-defined-code framework rather than a declarative 'rules engine' for non-developers to define trigger-action rules. missing for 10: a declarative rule-definition UI/DSL for non-coders, independent hands-on evidence of rule-based automation working end-to-end, and explicit 'if-this-then-that' style rule authoring rather than SDK code.",
    "evidenceIds": [
      "restate-docs-5",
      "restate-docs-6",
      "restate-docs-20",
      "restate-docs-37",
      "restate-docs-38",
      "restate-docs-48",
      "restate-docs-29",
      "restate-docs-63"
    ]
  },
  {
    "productId": "restate",
    "storyId": "automation-scheduled-jobs",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate provides durable timers to sleep/schedule/wait for events (restate-docs-5, restate-docs-21), which can be composed into recurring workflows (e.g., a handler that re-schedules itself), and supports human/webhook triggers (restate-docs-6, restate-docs-20). However, there's no explicit first-class 'recurring job' or cron-style scheduler documented — recurrence would require custom loop/timer logic rather than a built-in feature. Missing for 10: explicit cron/interval scheduling API, dashboard/UI for managing recurring jobs, and independent evidence of recurring-job use cases in production.",
    "evidenceIds": [
      "restate-docs-5",
      "restate-docs-21",
      "restate-docs-6",
      "restate-docs-20"
    ]
  },
  {
    "productId": "restate",
    "storyId": "automation-versioned-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate documents immutable/versioned deployments that pin invocations to a single code version (restate-docs-24, restate-docs-41), an observability/control surface to inspect invocation journals and cancel/kill stuck agents (restate-docs-64, restate-docs-65), and explicit compensation/rollback patterns to undo partial agent work on failure (restate-docs-59, restate-docs-85). This covers the core of version/inspect/rollback for automations at the infrastructure level, but it's developer-facing (CLI/API/journal inspection) rather than a reviewable, user-facing change-history or diff UI. Missing for 10: a UI/dashboard for comparing or reviewing automation versions side-by-side, self-service 'rollback to previous deployment' action, and any independent/community corroboration that versioning or rollback works as documented in practice.",
    "evidenceIds": [
      "restate-docs-24",
      "restate-docs-41",
      "restate-docs-59",
      "restate-docs-85",
      "restate-docs-64",
      "restate-docs-65"
    ]
  },
  {
    "productId": "restate",
    "storyId": "code-first-workflows",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate lets developers write handlers as ordinary code (TypeScript, Java/Kotlin, Python, Go, Rust) using constructs like ctx.run for automatic checkpointing of steps, with no YAML/DSL involved — confirmed by docs on durable steps, durable execution, and SDK support. missing for 10: independent hands-on developer testimony specifically praising 'no DSL/code-first' authoring (community evidence focuses on other aspects like cloud setup and architecture), and no direct comparison showing absence of any config-based workflow definition.",
    "evidenceIds": [
      "restate-docs-1",
      "restate-docs-18",
      "restate-docs-19",
      "restate-gh-2",
      "restate-docs-83"
    ]
  },
  {
    "productId": "restate",
    "storyId": "concurrency-rate-controls",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate's flow-control docs explicitly support concurrency limits 'per scope' (service, virtual object/key) to protect downstream services and control cost (restate-docs-4, restate-docs-11, restate-docs-32, restate-docs-67), which covers the per-workflow/per-key concurrency-capping part of the story. However there's no explicit evidence of rate limiting (requests/sec throttling) as distinct from concurrency caps, nor any documented per-tenant scoping/isolation construct. Missing for 10: explicit rate-limit (not just concurrency) primitives, and documented per-tenant multi-tenancy fairness controls.",
    "evidenceIds": [
      "restate-docs-4",
      "restate-docs-11",
      "restate-docs-32",
      "restate-docs-67"
    ]
  },
  {
    "productId": "restate",
    "storyId": "crash-resume-checkpointing",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Restate's core durable execution model persists completed steps and journal entries so invocations resume exactly from the last completed step after crashes, deploys, or infra failures, with strong first-party documentation across retries, versioning-safe redirects, and state durability (restate-docs-1, restate-docs-15, restate-docs-18, restate-docs-24, restate-docs-30, restate-docs-37). Community feedback corroborates the durable execution model works in practice for real apps (restate-comm-1, restate-comm-9). Missing for 10: independent third-party benchmarking or incident-report evidence specifically confirming resume-after-crash behavior in production at scale beyond vendor docs and anecdotal HN comments.",
    "evidenceIds": [
      "restate-docs-1",
      "restate-docs-15",
      "restate-docs-18",
      "restate-docs-24",
      "restate-docs-30",
      "restate-docs-37",
      "restate-comm-1",
      "restate-comm-9"
    ]
  },
  {
    "productId": "restate",
    "storyId": "cron-scheduled-workflows",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Restate offers durable timers/sleep and states you can 'implement patterns like cron jobs' (restate-docs-29), plus general invocation introspection, but there is no evidence of native cron-expression scheduling, overlap policies, pause/resume controls, or a view of upcoming scheduled runs — these are DIY patterns built on timers, not a documented scheduler feature.",
    "evidenceIds": [
      "restate-docs-29",
      "restate-docs-5",
      "restate-docs-10",
      "restate-docs-65"
    ]
  },
  {
    "productId": "restate",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Restate offers building blocks that could be used to approximate debounce/batch/delay behavior—durable timers for delayed messages and cron-like scheduling (restate-docs-29), idempotency-key deduplication of duplicate events (restate-docs-37, restate-docs-81), and concurrency-limiting flow control to shape bursty traffic (restate-docs-4, restate-docs-32, restate-docs-67)—but there is no documented first-class debounce or batching primitive that collapses a noisy stream of triggers into a single consolidated run. missing for 10: explicit debounce/coalescing API, windowed batching of events, and any hands-on example showing noisy triggers collapsed into one run.",
    "evidenceIds": [
      "restate-docs-29",
      "restate-docs-37",
      "restate-docs-81",
      "restate-docs-4",
      "restate-docs-32",
      "restate-docs-67"
    ]
  },
  {
    "productId": "restate",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Restate's docs extensively document durable execution for agent loops: ctx.run checkpoints LLM/tool calls, automatic retries with exponential backoff, crash recovery, durable timers, human-in-the-loop, and dedicated AI-agent patterns (sequential, parallel, orchestrator, rollback/compensation) explicitly built for agentic workflows. Independent HN commentary corroborates real-world usage of durable execution, though not agent-loop-specific. missing for 10: independent/hands-on evidence specifically validating agent-loop crash recovery in production (community evidence is about general durable execution, not LLM agent loops specifically).",
    "evidenceIds": [
      "restate-docs-15",
      "restate-docs-17",
      "restate-docs-18",
      "restate-docs-30",
      "restate-docs-48",
      "restate-docs-51",
      "restate-docs-53",
      "restate-docs-54",
      "restate-docs-59",
      "restate-comm-9"
    ]
  },
  {
    "productId": "restate",
    "storyId": "event-driven-triggers",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate supports webhook-triggered handlers (any handler can be a durable webhook endpoint, exactly-once processing) and Kafka topic invocation as a trigger mechanism, plus explicit fan-out patterns ('Fan out work to multiple agents, then combine the results') and parallel tool-call execution. However, triggering is code-based (write a handler, wire up webhook/Kafka), not a declarative trigger-definition config, and there's no explicit mention of generic app-event buses beyond webhooks/Kafka fanning out to many arbitrary functions declaratively. Missing for 10: a declarative trigger/rule definition mechanism (e.g. YAML/config-based event routing), explicit multi-function fan-out from a single generic app event (not just AI-agent patterns), and independent/community validation of this specific flow.",
    "evidenceIds": [
      "restate-docs-37",
      "restate-docs-38",
      "restate-docs-47",
      "restate-docs-28",
      "restate-docs-52",
      "restate-docs-84",
      "restate-docs-6"
    ]
  },
  {
    "productId": "restate",
    "storyId": "external-signal-injection",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate provides durable coordination primitives explicitly for external signals/events/human approvals (restate-docs-6, restate-docs-20, restate-docs-48), supports invoking handlers via HTTP, typed clients, or Kafka from outside services (restate-docs-8, restate-docs-9, restate-docs-28, restate-docs-39), and documents durable webhook endpoints with exactly-once processing for external event delivery into running workflows (restate-docs-37, restate-docs-38, restate-docs-81). This directly covers sending signals/events/messages from APIs, webhooks, or other workflows into a running workflow. missing for 10: independent/hands-on confirmation of this specific external-signal delivery pattern (community evidence only covers general SDK setup, not event/webhook injection into running workflows).",
    "evidenceIds": [
      "restate-docs-6",
      "restate-docs-20",
      "restate-docs-48",
      "restate-docs-8",
      "restate-docs-9",
      "restate-docs-28",
      "restate-docs-37",
      "restate-docs-38",
      "restate-docs-81"
    ]
  },
  {
    "productId": "restate",
    "storyId": "fanout-child-workflows",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Restate's docs describe durable async/sync service invocation, coordination primitives, and event-based signaling that could underlie fan-out patterns, but none of the evidence explicitly documents parallel-step composition, fan-out/fan-in over dynamic batches, or child-workflow invocation as first-class constructs. missing for 10: explicit fan-out/fan-in APIs, dynamic batch parallelism, child/sub-workflow spawning and joining semantics, and any example or docs page dedicated to this composition pattern.",
    "evidenceIds": [
      "restate-docs-3",
      "restate-docs-20",
      "restate-docs-6",
      "restate-gh-1"
    ]
  },
  {
    "productId": "restate",
    "storyId": "horizontal-worker-scaling",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate documents that services can run as many replicas across containers/VMs/k8s (restate-docs-7, restate-docs-34), that the server proxies/routes invocations to services (restate-docs-33, restate-comm-9), and that failures/retries are handled automatically so worker crashes don't lose progress (restate-docs-1, restate-docs-15, restate-docs-30). Concurrency/flow-control primitives (restate-docs-4, restate-docs-32, restate-docs-67) let engineers shape traffic across a scope, implying multi-worker fairness. However, there's no explicit documentation of a load-balancing algorithm distributing tasks across a worker fleet or any benchmark/independent evidence of horizontal throughput scaling as workers are added. Missing for 10: explicit load-balancing mechanism across worker replicas, and independent/hands-on evidence of throughput scaling with added workers.",
    "evidenceIds": [
      "restate-docs-7",
      "restate-docs-33",
      "restate-docs-34",
      "restate-docs-1",
      "restate-docs-15",
      "restate-docs-30",
      "restate-docs-4",
      "restate-docs-32",
      "restate-comm-9"
    ]
  },
  {
    "productId": "restate",
    "storyId": "human-approval-waits",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate docs explicitly describe durable coordination primitives for human approvals, external events, and durable timers/sleep that can span hours or days, with suspension freeing resources on FaaS while waiting, and automatic resumption when signals arrive (restate-docs-6, restate-docs-20, restate-docs-5, restate-docs-21). This directly matches pausing for human approval/input and resuming on response. Missing for 10: no independent/hands-on case study specifically demonstrating a multi-day human-approval pause in production, and no detail on UI/notification mechanisms for prompting the human.",
    "evidenceIds": [
      "restate-docs-6",
      "restate-docs-20",
      "restate-docs-5",
      "restate-docs-21",
      "restate-docs-18"
    ]
  },
  {
    "productId": "restate",
    "storyId": "hybrid-managed-workers",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Restate explicitly offers a BYOC model where the vendor runs a managed orchestration control plane inside the customer's own cloud account while worker code executes separately, and community confirmation notes 'we don't host the code ourselves ... it is really easy to deploy it wherever you wish' — matching the exact split described in the story. Additional docs reinforce that services can run anywhere (containers, serverless, VMs, k8s) while the server handles the durable execution journal/orchestration.\n\nmissing for 10: independent/hands-on validation of BYOC specifically (only vendor docs + one community comment), and no detail on data-residency/network isolation guarantees for BYOC deployments.",
    "evidenceIds": [
      "restate-docs-14",
      "restate-docs-7",
      "restate-comm-9",
      "restate-docs-13"
    ]
  },
  {
    "productId": "restate",
    "storyId": "idempotency-exactly-once",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Restate's docs explicitly describe idempotency-key deduplication and exactly-once processing for events/invocations (restate-docs-37, restate-docs-47, restate-docs-81), plus guaranteed exactly-once service calls (restate-docs-3) and durable step persistence/retry semantics (restate-docs-15, restate-docs-18, restate-docs-30) that together prevent duplicate side effects like double-charging or double-sending. Missing for 10: independent/hands-on verification specifically of idempotency-key deduplication behavior in production (community evidence is about general product experience, not this feature).",
    "evidenceIds": [
      "restate-docs-37",
      "restate-docs-47",
      "restate-docs-81",
      "restate-docs-3",
      "restate-docs-15",
      "restate-docs-18",
      "restate-docs-30"
    ]
  },
  {
    "productId": "restate",
    "storyId": "local-dev-testing-loop",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate ships as a single self-contained binary with no external dependencies that can run a local dev environment (restate-docs-26, restate-docs-13, restate-docs-75), and it provides testing utilities/companion libraries (Testcontainers-based) to test handler logic against a real Restate server (restate-docs-23, restate-docs-31, restate-docs-79). However, the evidence never mentions time-skipping/simulated clocks for durable timers in tests, nor explicit mocking of steps within unit tests — testing appears to rely on spinning up a real container rather than in-memory time-travel mocks. Missing for 10: explicit time-skipping/clock-mocking test utility, explicit mocked-step/unit-test isolation feature, and an explicit single 'one command' CLI invocation for the whole engine.",
    "evidenceIds": [
      "restate-docs-26",
      "restate-docs-13",
      "restate-docs-75",
      "restate-docs-23",
      "restate-docs-31",
      "restate-docs-79"
    ]
  },
  {
    "productId": "restate",
    "storyId": "long-sleeps-without-compute",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Restate's durable timers let handlers sleep, schedule, or wait for events, and docs explicitly state that on FaaS platforms like AWS Lambda the handler is suspended while sleeping to free up resources, and idle agents are suspended to save cost — directly matching the 'no held server/compute' requirement. This is documented across sleep/timer, AI-agent, and FaaS-specific pages, covering days-scale patterns like cron jobs and delayed messages. Missing for 10: independent/hands-on verification of multi-month sleep durations in production and explicit confirmation of zero billable compute during suspension on non-serverless deployments.",
    "evidenceIds": [
      "restate-docs-5",
      "restate-docs-21",
      "restate-docs-29",
      "restate-docs-36",
      "restate-docs-78"
    ]
  },
  {
    "productId": "restate",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Restate exposes invocation status, journals, and traces via CLI, Introspection SQL API, and admin API, and docs mention 'export traces' for observability-control, which supports building metrics/alerts pipelines, but there is no concrete evidence of native export to standard observability stacks (Prometheus/OpenTelemetry metrics, Grafana dashboards) or built-in alerting on failure rates/latencies/queue depths. missing for 10: documented Prometheus/OTel metrics export, native alerting integration, queue-depth/latency dashboards, and independent confirmation these integrations work in practice.",
    "evidenceIds": [
      "restate-docs-10",
      "restate-docs-64",
      "restate-docs-65",
      "restate-docs-66",
      "restate-docs-69",
      "restate-docs-87"
    ]
  },
  {
    "productId": "restate",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Restate officially lists five supported SDKs (TypeScript, Java/Kotlin, Python, Go, Rust) covering the mainstream backend languages, and shows some cross-language evidence (Go/Rust client docs, Rust SDK typed ingress clients) alongside deep TypeScript-specific guides for durable steps, timers, error handling, and testing. However, most detailed capability documentation (ctx.run, error handling, testing, AI-assistant integration) is TypeScript-centric, with only shallow mentions for Go/Rust and none for Python/Java, and a community comment notes Go SDK was a later addition, suggesting the SDKs haven't always had lockstep parity. Missing for 10: explicit feature-parity statement across SDKs, equally deep Python/Java/Go documentation, and independent verification that all SDKs support the same primitives (workflows, virtual objects, timers) equivalently.",
    "evidenceIds": [
      "restate-gh-2",
      "restate-docs-72",
      "restate-docs-74",
      "restate-docs-40",
      "restate-docs-18",
      "restate-docs-23",
      "restate-comm-3"
    ]
  },
  {
    "productId": "restate",
    "storyId": "openness-api-parity",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Restate explicitly states that all information available in its UI (invocation status, application state) is also exposed via the CLI and Introspection SQL API, and all core operations (invoking, managing, deploying) are done via HTTP/typed-client APIs rather than requiring the UI — a strong API-first design consistent with AI-native/programmatic use. Missing for 10: no exhaustive UI-feature-by-feature parity confirmation or independent hands-on report explicitly verifying no UI-only functionality exists.",
    "evidenceIds": [
      "restate-docs-10",
      "restate-docs-8",
      "restate-docs-9",
      "restate-docs-13"
    ]
  },
  {
    "productId": "restate",
    "storyId": "openness-full-export",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Restate documents introspection (CLI, SQL API) and self-hosting/BYOC options, but there is no evidence of an explicit data-export mechanism or open-format export/backup tooling that would let a user extract all their data and migrate away. Community commentary even disputes the 'open source' framing due to the BSL license, further undercutting an openness/exit narrative. Missing for 10: documented bulk data export feature, explicit open-format (e.g. JSON/SQL dump) export tooling, and confirmation that self-hosted state is portable without vendor lock-in.",
    "evidenceIds": [
      "restate-docs-10",
      "restate-docs-43",
      "restate-docs-14",
      "restate-comm-5"
    ]
  },
  {
    "productId": "restate",
    "storyId": "openness-open-license",
    "verdict": "disputed",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Restate's source is publicly viewable on GitHub (restate-gh-1, restate-gh-2), suggesting readability, but a hands-on community comment explicitly disputes that it qualifies as open license: 'calling it Open Source is misleading. BSL is not minimal Amazon defense. It effectively prevents any meaningful dynamic functionality to be built on top of it without a commercial subscription' (restate-comm-5). This is a concrete, specific contradiction of an open-license claim rather than mere skepticism. Missing for 10: no first-party confirmation of license terms in the evidence pack, no independent legal/OSI-approval analysis, no rebuttal from Restate addressing the BSL concern.",
    "evidenceIds": [
      "restate-gh-1",
      "restate-gh-2",
      "restate-comm-5"
    ]
  },
  {
    "productId": "restate",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate is distributed as a single self-contained binary with no external dependencies, explicitly designed to be run yourself (self-hosted) as an alternative to Restate Cloud/BYOC, deployable on your own infra, containers, VMs, or Kubernetes. Community evidence (restate-comm-9) corroborates that the server/orchestration runs independently of any vendor-hosted service. Missing for 10: independent hands-on report of a full production self-hosted deployment, and clarity on licensing terms (BSL concerns raised in community comments) that could affect what 'self-host' fully entails commercially.",
    "evidenceIds": [
      "restate-docs-7",
      "restate-docs-13",
      "restate-docs-14",
      "restate-docs-26",
      "restate-comm-9",
      "restate-comm-5"
    ]
  },
  {
    "productId": "restate",
    "storyId": "privacy-data-residency",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate lets users fully control data location by self-hosting anywhere or running BYOC (bring-your-own-cloud) in their own infrastructure/region, and it's a single dependency-free binary that can run in any datacenter (restate-docs-7, restate-docs-13, restate-docs-14, restate-docs-26). However, there is no explicit documentation of a region-selection mechanism or formal data-residency guarantee for the managed Restate Cloud offering itself. Missing for 10: explicit region-picker/residency policy for Restate Cloud, documented compliance/residency guarantees, independent confirmation of BYOC regional isolation.",
    "evidenceIds": [
      "restate-docs-14",
      "restate-docs-7",
      "restate-docs-13",
      "restate-docs-26"
    ]
  },
  {
    "productId": "restate",
    "storyId": "privacy-no-training",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Restate is a durable execution/workflow orchestration engine, not an AI model provider or consumer-facing AI product with a data-training policy; a training-data opt-out setting is a category error for this infrastructure tool.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "privacy-retention-controls",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Restate persists state, invocation journals, and execution history (restate-docs-2, restate-docs-10, restate-docs-64-66), and offers self-hosted/BYOC deployment (restate-docs-14, restate-docs-70) which implies some infrastructure-level control, but the evidence pack contains no explicit documentation of data retention policies, TTL/expiration settings, or deletion/purge APIs for stored state or journals.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence pack material addresses telemetry collection or an opt-out mechanism for Restate; since Restate is a self-hostable durable execution server, this privacy-posture question is a fair one to ask but is simply unanswered. Missing for 10: any mention of telemetry collection, data sent to Restate Inc., or an opt-out/disable-telemetry flag or setting.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "queue-priority-fairness",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Restate's flow-control docs mention shaping concurrency 'per scope' to 'control cost, protect downstream services, and keep scheduling fair,' which gestures at fairness but never describes assigning priorities to runs or multi-tenant fair queuing as an explicit scheduler feature. Missing for 10: documented priority levels/weights for invocations, explicit multi-tenant fair-scheduling algorithm (vs. simple concurrency caps), and any independent/hands-on evidence that scheduling is fair across tenants rather than FIFO-per-scope.",
    "evidenceIds": [
      "restate-docs-4",
      "restate-docs-11",
      "restate-docs-32",
      "restate-docs-67"
    ]
  },
  {
    "productId": "restate",
    "storyId": "realtime-run-streaming",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence pack covers durable execution, retries, state, timers, and human-approval signals, but nothing describes streaming live step updates or model tokens from a running workflow to a frontend (e.g., SSE/WebSocket support or streaming handler responses). Missing for 10: any documentation of streaming outputs, live progress push to clients, or token-by-token delivery mechanisms.",
    "evidenceIds": []
  },
  {
    "productId": "restate",
    "storyId": "replay-failed-runs",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate automatically persists completed steps and resumes execution from the point of failure (restate-docs-1, restate-docs-15, restate-docs-18), and introspection tools (CLI/SQL API) expose invocation history (restate-docs-10). However, there is no documented explicit 'replay from a specific step' or manual rerun/time-travel debugging feature — recovery is automatic on retry/crash rather than an operator-triggered replay from an arbitrary chosen step. missing for 10: explicit support for manually triggering a replay/rerun of a completed or failed workflow from a chosen step, UI/CLI commands for selective replay, and independent/hands-on evidence of this debugging workflow in practice.",
    "evidenceIds": [
      "restate-docs-1",
      "restate-docs-15",
      "restate-docs-18",
      "restate-docs-10"
    ]
  },
  {
    "productId": "restate",
    "storyId": "run-timeline-observability",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Restate documents strong introspection: an invocations list showing running/suspended/completed invocations, journal inspection, trace export, and a SQL Introspection API plus CLI for querying invocation/service state (restate-docs-64,65,66,10,43), which supports searchable, filterable visibility into steps, retries, and errors. However, a hands-on community comment explicitly notes Restate lacks the diagram/visualization of execution history that competitors like Step Functions provide (restate-comm-4), and no evidence describes a polished, purpose-built dashboard UI (only CLI/SQL API), so the 'dashboard' framing of the story is only partly substantiated. Missing for 10: explicit dashboard UI screenshots/documentation, confirmation of per-step input/output display in a UI, and independent corroboration that search/filter works well in practice.",
    "evidenceIds": [
      "restate-docs-64",
      "restate-docs-65",
      "restate-docs-66",
      "restate-docs-10",
      "restate-docs-43",
      "restate-comm-4"
    ]
  },
  {
    "productId": "restate",
    "storyId": "safe-workflow-versioning",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Restate documents immutable deployments and versioning explicitly: in-flight invocations continue running on the code version they started with, and retries are always routed to the same endpoint version, directly addressing safe versioning without breaking determinism (restate-docs-24, restate-docs-41). This is corroborated by broader durable execution guarantees (journal replay, exactly-once) that make this safe. missing for 10: independent/hands-on verification of version-pinning behavior in production, and detail on how new versions are rolled out/deprecated operationally.",
    "evidenceIds": [
      "restate-docs-24",
      "restate-docs-41",
      "restate-docs-13",
      "restate-docs-7"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-agent-docs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "A direct probe confirms https://docs.temporal.io/llms.txt returns HTTP 200 and is a structured llms.txt index of Temporal's docs, plus Temporal has dedicated agent-oriented docs (docs.temporal.io/ai) for AI-native use cases. Missing for 10: independent third-party confirmation that agents successfully consume this file in practice.",
    "evidenceIds": [
      "temporal-probe-1",
      "temporal-docs-9",
      "temporal-docs-41"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-ai-insights",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal's evidence covers using its platform to build AI agent workflows (e.g., temporal-docs-9, temporal-docs-33, temporal-docs-25), but there is no evidence of Temporal itself surfacing AI-generated insights or suggestions from a user's workflow/execution data inside its Web UI or product surface — the axis is plausible for an observability platform but unevidenced.",
    "evidenceIds": [
      "temporal-docs-8",
      "temporal-docs-9",
      "temporal-docs-33"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal provides durable Workflows, Schedules, Activities with automatic retries, and crash-proof execution that resumes exactly where it left off — the core primitives for autonomous background automation — and has dedicated docs/cookbooks for long-running agentic loops that call LLMs, wait on humans, and survive worker restarts. Community reports corroborate that Workflows run cross-machine and long-running without manual orchestration, though docs quality complaints exist on other issues. Missing for 10: independent hands-on validation specifically of the AI-agent autonomous background use case (current AI-specific evidence is vendor docs only).",
    "evidenceIds": [
      "temporal-docs-5",
      "temporal-docs-9",
      "temporal-docs-41",
      "temporal-docs-25",
      "temporal-docs-47",
      "temporal-docs-33",
      "temporal-docs-1",
      "temporal-docs-4",
      "temporal-comm-7",
      "temporal-comm-8"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-builtin-assistant",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal is a durable-execution orchestration platform/infrastructure for building workflows (including AI agent workflows), not a product with a built-in assistant UI a user delegates tasks to; it provides SDKs/primitives for developers to build such agents themselves rather than shipping one. This is a category mismatch, not a missing feature.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal ships an official CLI (available on macOS/Linux/Windows/Docker) and a local dev server ('temporal server start-dev'), plus Workers/Workflows that run headlessly as background processes with no UI requirement, making it well-suited for CI/automation pipelines; docs also describe a test server for CI-friendly integration testing with time-skipping. missing for 10: no explicit CI pipeline example (e.g., GitHub Actions) or independent hands-on report confirming CI usage.",
    "evidenceIds": [
      "temporal-docs-10",
      "temporal-docs-11",
      "temporal-gh-1",
      "temporal-docs-15",
      "temporal-docs-42",
      "temporal-docs-24"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-mcp-client",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal is a durable execution/workflow orchestration platform, not an MCP client/agent product; the evidence shows integrations with LLM SDKs (e.g. OpenAI Agents SDK) for building agents as workflows, but no mention of Temporal itself consuming MCP servers as a tool-using client. This is a category mismatch rather than a missing feature.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "agentic-mcp-server",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal is a durable execution/orchestration platform, not an agent, and no evidence shows it exposing an official MCP server for connecting AI agents; its AI-related docs describe using Temporal to orchestrate agent loops, not an MCP integration.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "agentic-nl-commands",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal's documented interfaces are code-based SDKs, a structured CLI, and a Web UI dashboard for workflow state — there is no evidence of any natural-language command interface, chat-based control, or AI copilot for operating Temporal itself. The AI-related docs (temporal-docs-9, -25, -33, -47) describe using Temporal to orchestrate LLM/agent workflows, not letting users control Temporal via natural language.",
    "evidenceIds": [
      "temporal-docs-42",
      "temporal-docs-8",
      "temporal-docs-9",
      "temporal-docs-25"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal ships an official, well-documented CLI (temporal) available on macOS/Linux/Windows/Docker, including a local dev server, batch/query commands, and coverage of core operations (start/query/signal workflow executions), making it usable for scripting and automating agentic workflows. missing for 10: independent/hands-on confirmation of CLI usage, and explicit AI-native automation features like structured JSON output or agent-specific CLI subcommands.",
    "evidenceIds": [
      "temporal-docs-10",
      "temporal-docs-11",
      "temporal-docs-42",
      "temporal-docs-26",
      "temporal-gh-1",
      "temporal-probe-3"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-public-api",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal exposes a well-documented client API (start/query/signal/list workflow executions) plus a documented CLI and multi-language SDKs, and even publishes an llms.txt AI-friendly doc index, making it programmatically drivable and discoverable by AI agents. However, probes show no machine-readable OpenAPI/REST spec is published (all openapi.json/swagger paths 404), so 'documented public API' relies on prose docs/SDK references rather than a formal spec. Missing for 10: a machine-readable OpenAPI/gRPC spec exposed publicly, and independent community confirmation of API completeness/stability for AI-driven use.",
    "evidenceIds": [
      "temporal-docs-50",
      "temporal-docs-42",
      "temporal-docs-14",
      "temporal-probe-1",
      "temporal-probe-2",
      "temporal-docs-9"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-scoped-keys",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Temporal Cloud documents 'Service Accounts & API Keys' and 'User Roles' as pricing-tier features, implying some capability to issue scoped credentials, and Temporal is positioned for building AI agent workflows (docs-9, docs-25, docs-33). However, there is no documentation describing fine-grained, least-privilege credential issuance specifically scoped to an individual AI agent's actions or tools. Missing for 10: agent-specific credential scoping, least-privilege policy examples for agents, documentation tying API keys/service accounts to agent identity rather than general platform access control.",
    "evidenceIds": [
      "temporal-docs-20",
      "temporal-docs-30",
      "temporal-docs-9",
      "temporal-docs-25",
      "temporal-docs-33"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal ships official SDKs (TypeScript, Python, etc.) with dedicated AI-agent integration docs (OpenAI Agents SDK, Claude tool-calling cookbook) showing agentic loops built directly against the SDK primitives (Workflows/Activities) with durable retries and state survival. This directly supports building AI-native agent applications on official SDKs rather than community wrappers.\nMissing for 10: independent/hands-on developer reports specifically building AI agents with the SDK, and a complete list of all officially supported languages beyond TS/Python in the AI context.",
    "evidenceIds": [
      "temporal-docs-9",
      "temporal-docs-14",
      "temporal-docs-25",
      "temporal-docs-33",
      "temporal-docs-47",
      "temporal-docs-48",
      "temporal-docs-3",
      "temporal-docs-4"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "agentic-webhooks",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "No evidence Temporal offers webhook subscriptions for events; its messaging model is Signals/Queries/Updates and client polling, not outbound webhooks, and no docs mention webhook subscription support.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal ships a first-party integration with the OpenAI Agents SDK (Python) that runs agents as Workflows with durable, non-repeated model calls, plus a cookbook for durable agent loops with Claude and raw OpenAI API calls, showing genuine glue-code elimination for those specific stacks. Missing for 10: broader first-party SDK coverage beyond OpenAI Agents SDK/Anthropic cookbook, evidence of framework integrations (LangChain, LlamaIndex, Vercel AI SDK), and independent/hands-on confirmation of these integrations working in production.",
    "evidenceIds": [
      "temporal-docs-25",
      "temporal-docs-47",
      "temporal-docs-33",
      "temporal-docs-48",
      "temporal-docs-9",
      "temporal-docs-41"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence shows only standard prose documentation and CLI/SDK guides; explicit probes for an OpenAPI/Swagger spec all returned 404, and no interactive API reference or runnable-example sandbox is mentioned anywhere in the pack.",
    "evidenceIds": [
      "temporal-probe-2",
      "temporal-docs-14",
      "temporal-probe-1"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "api-machine-spec",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "A direct probe for OpenAPI/swagger spec files at docs.temporal.io returned 404 on all candidate paths, and no evidence pack item shows a published machine-readable API spec (Temporal's API surface is documented via gRPC/proto and SDKs, not OpenAPI). The axis is applicable since Temporal exposes a Client/Cloud API, but no evidence shows a downloadable spec exists.",
    "evidenceIds": [
      "temporal-probe-2"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "api-sandbox",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal ships a CLI-based local development service and a dedicated test server (with time-skipping) explicitly for running end-to-end/integration tests without needing a production Temporal Service, effectively providing a sandbox for testing workflows and activities. This directly supports testing without touching production data, though the evidence doesn't explicitly discuss data isolation or seeding sandbox data. missing for 10: explicit documentation on production-data isolation/mocking, independent hands-on confirmation of sandbox fidelity, and any data-masking or synthetic-data tooling.",
    "evidenceIds": [
      "temporal-docs-10",
      "temporal-docs-15",
      "temporal-docs-32",
      "temporal-docs-24",
      "temporal-gh-1"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "api-versioning-policy",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence shows Temporal has 'Worker Versioning' features for versioning Workflow code (temporal-docs-7, temporal-docs-39), but this is about workflow-definition compatibility, not a documented deprecation policy for Temporal's own SDK/gRPC/HTTP APIs. No OpenAPI spec or API changelog with deprecation timelines was found (temporal-probe-2 shows all openapi.json paths 404), and no docs reference an API deprecation policy.",
    "evidenceIds": [
      "temporal-docs-7",
      "temporal-docs-39",
      "temporal-probe-2"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "automatic-step-retries",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal Activities have automatic retry policies with configurable backoff, timeouts, and failure/non-retryable error policies built into the platform, explicitly removing app-level retry/try-catch scaffolding, and community users confirm retrying units on failure with non-retryable error specification works in practice. missing for 10: independent hands-on benchmark of backoff/timeout tuning edge cases, and one community report notes error/anomaly handling can be confusing in practice which slightly tempers the polish.",
    "evidenceIds": [
      "temporal-docs-4",
      "temporal-docs-36",
      "temporal-docs-18",
      "temporal-docs-46",
      "temporal-comm-7",
      "temporal-comm-5"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "automation-bulk-operations",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal's CLI includes a documented 'batch' command for tracking bulk job progress, and the client API supports listing/signaling many workflow executions at once, indicating built-in bulk-operation support across workflows. However, evidence is thin — only one CLI reference to batch jobs with no detail on how batch signal/cancel/terminate operations are invoked or scoped, and no independent/hands-on confirmation of this specific capability. Missing for 10: fuller documentation of batch operation types (signal/cancel/terminate/query by visibility filter), examples of large-scale batch usage, and community validation of bulk operations at scale.",
    "evidenceIds": [
      "temporal-docs-26",
      "temporal-docs-50"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "automation-rules-engine",
    "verdict": "partial",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal supports event-driven automation via Signals/Queries/Updates for external events, Schedules for time-based triggers, and automatic retries on failure events, and explicitly targets AI agent loops that react to events and resume after failures (temporal-docs-6, temporal-docs-5, temporal-docs-4, temporal-docs-9, temporal-docs-41). However, this is developer-defined workflow code rather than a declarative 'rules' interface, and no evidence shows a no-code/rule-authoring UI for defining event-trigger conditions. Missing for 10: a declarative rule-definition mechanism (vs. code-based signal handlers), independent hands-on validation of event-triggered automation specifically for AI use cases.",
    "evidenceIds": [
      "temporal-docs-5",
      "temporal-docs-6",
      "temporal-docs-4",
      "temporal-docs-9",
      "temporal-docs-41",
      "temporal-docs-38"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "automation-scheduled-jobs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Temporal has a first-class Schedules feature (and legacy Cron Jobs) explicitly documented for starting Workflow Executions at specific times, with recurring/repeated execution, retries, and durable state, plus CLI/UI/Web tooling to manage them — directly enabling scheduled/recurring AI workflows (e.g., agent loops per temporal-docs-9/25/33). missing for 10: independent hands-on validation specifically of the Schedules feature (community evidence is about general durability, not scheduling specifically).",
    "evidenceIds": [
      "temporal-docs-5",
      "temporal-docs-23",
      "temporal-docs-34",
      "temporal-docs-37",
      "temporal-docs-9",
      "temporal-docs-25",
      "temporal-docs-33"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "automation-versioned-workflows",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Temporal's Worker Versioning feature lets teams declare Pinned vs Auto-Upgrade behavior per Workflow type, giving a real mechanism for managing multiple code versions of an automation (temporal-docs-7, temporal-docs-39), and the Web UI exposes execution state/history useful for reviewing runs (temporal-docs-8, temporal-docs-40). However, there's no documented explicit 'rollback' UI/action or version diff/review tooling analogous to a no-code automation platform's version history — it's a developer-code versioning mechanism rather than a click-to-review/rollback feature. Missing for 10: explicit rollback UI/CLI command, workflow-definition diff/audit trail, and independent evidence of using versioning for rollback in practice.",
    "evidenceIds": [
      "temporal-docs-7",
      "temporal-docs-39",
      "temporal-docs-8",
      "temporal-docs-40"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "code-first-workflows",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Temporal's core model is Workflows and Activities written as ordinary functions/methods in supported languages (TypeScript, Python, etc.), with automatic checkpointing/durable execution and crash recovery built into the runtime, corroborated by community users describing it as modeling business logic as ordinary code with side effects in Activities. This directly matches the story of code-based workflow authoring versus YAML/DSL. Missing for 10: no independent benchmark or critique specifically addressing 'no DSL' claim beyond community anecdotes, and some community feedback notes friction with error/anomaly handling in practice.",
    "evidenceIds": [
      "temporal-docs-3",
      "temporal-docs-4",
      "temporal-docs-1",
      "temporal-docs-14",
      "temporal-comm-1",
      "temporal-comm-7"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "concurrency-rate-controls",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Temporal exposes Worker/Task Queue tuning to control concurrent Activity/Workflow task execution (docs-29, docs-49) and Temporal Cloud enforces its own rate limits (docs-45), which platform engineers could leverage (e.g., separate task queues per tenant) to approximate concurrency capping. However, there is no documented first-class primitive for per-workflow, per-key, or per-tenant rate limiting/quota configuration exposed to application teams. Missing for 10: explicit per-tenant/per-key rate-limiting API or policy, tenant isolation guarantees, and any hands-on evidence of using it to stop a 'hot customer' from starving others.",
    "evidenceIds": [
      "temporal-docs-29",
      "temporal-docs-49",
      "temporal-docs-45"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "crash-resume-checkpointing",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Temporal's core value proposition is crash-proof durable execution: docs explicitly state workflows resume exactly where they left off after crashes, network failures, or infrastructure outages, with automatic Activity retries and state preserved via event history/replay. Community evidence corroborates real-world use for long-running, cross-machine reliable orchestration, though one user noted difficulty debugging certain stuck/erroring workflow states. Missing for 10: independent third-party benchmark or incident post-mortem specifically validating recovery after a real deploy/crash scenario beyond vendor docs and general community sentiment.",
    "evidenceIds": [
      "temporal-docs-1",
      "temporal-docs-4",
      "temporal-docs-18",
      "temporal-docs-41",
      "temporal-docs-46",
      "temporal-comm-7",
      "temporal-comm-8",
      "temporal-comm-5"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "cron-scheduled-workflows",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Temporal's Schedule feature (docs-5, docs-23, docs-37) explicitly supports cron-based workflow starts and is positioned as more flexible than plain Cron Jobs (docs-34 lists both Schedules and Cron Job as workflow-start mechanisms), and the Web UI (docs-8/40) and CLI (docs-42) give execution-state visibility/debugging. However, the evidence pack never explicitly documents overlap policies, pause/resume controls, or a view of upcoming scheduled runs — these specific sub-capabilities are asserted by the story but not directly cited in the pack. Missing for 10: explicit documentation of overlap policy configuration, pause/resume schedule actions, and next-run/upcoming-run listing UI or CLI output.",
    "evidenceIds": [
      "temporal-docs-5",
      "temporal-docs-23",
      "temporal-docs-34",
      "temporal-docs-37",
      "temporal-docs-8",
      "temporal-docs-42"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Temporal provides the primitives a backend developer would use to build debounce/batch/delay logic — Signals for event ingestion, Workflow-as-stateful-service message handlers, and Schedules/timers for delayed execution — but there is no documented first-class 'debounce' or 'batch trigger' feature; developers must hand-roll the coalescing logic inside Workflow code. missing for 10: an explicit debounce/coalescing primitive or documented pattern for collapsing noisy signal streams, and independent evidence of teams successfully using it for this exact use case.",
    "evidenceIds": [
      "temporal-docs-6",
      "temporal-docs-38",
      "temporal-docs-5",
      "temporal-docs-23",
      "temporal-docs-37",
      "temporal-docs-50"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Temporal has a dedicated AI/agent page describing exactly this use case — long-running agent loops calling LLMs and tools, wrapped as Workflows/Activities with automatic checkpointing, retries, and crash/Worker-restart recovery — plus a concrete OpenAI Agents SDK integration and a durable agentic-loop cookbook with Claude tool calling. Community evidence corroborates durable execution and retry semantics in production use, though one report notes rough edges in error/anomaly handling and documentation quality. Missing for 10: independent hands-on verification specifically of an LLM-agent workflow (vs. general workflow durability) and no third-party benchmark of failure-recovery behavior in agent loops.",
    "evidenceIds": [
      "temporal-docs-9",
      "temporal-docs-41",
      "temporal-docs-25",
      "temporal-docs-47",
      "temporal-docs-33",
      "temporal-docs-48",
      "temporal-docs-4",
      "temporal-comm-7",
      "temporal-comm-8"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "event-driven-triggers",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal's Client API lets application code start or signal Workflow Executions in response to app events (temporal-docs-50, temporal-docs-6/38), and Activities/child workflows let a single Workflow fan out to many functions (temporal-docs-3, temporal-docs-35); Schedules cover time-based triggers (temporal-docs-5, temporal-docs-23). However this is done via imperative SDK calls in your own event/webhook/queue handler, not a native declarative trigger binding, and no first-party webhook/queue-connector or explicit fan-out pattern documentation is present. Missing for 10: documented native webhook/queue ingestion connectors, a declarative event-trigger config (vs code-driven client calls), and explicit fan-out-to-many-activities examples/docs.",
    "evidenceIds": [
      "temporal-docs-50",
      "temporal-docs-6",
      "temporal-docs-38",
      "temporal-docs-3",
      "temporal-docs-35",
      "temporal-docs-5",
      "temporal-docs-23"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "external-signal-injection",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal explicitly documents Signals, Queries, and Updates as first-class message types for sending data into running workflows, describes workflows as 'stateful web services that can receive messages' with handler endpoints, and the client API/CLI exposes 'Signal a Workflow Execution' plus batch signal capability — directly enabling external API calls, webhooks, or other workflows to inject events into a running workflow. missing for 10: no independent/hands-on evidence specifically validating signal delivery reliability or webhook-triggered signal patterns beyond docs.",
    "evidenceIds": [
      "temporal-docs-6",
      "temporal-docs-38",
      "temporal-docs-50",
      "temporal-docs-41",
      "temporal-docs-26"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "fanout-child-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal's docs establish the core primitives (Workflows as ordinary code, Activities, automatic retries, worker/task-queue tuning) that back parallel/fan-out patterns, and a CLI batch-job feature (temporal-docs-26) plus 'why Temporal' messaging about eliminating hand-rolled coordination (temporal-docs-18, temporal-docs-46) support the theme. Missing for 10: explicit documentation or examples of child workflow APIs, parallel/fan-out-fan-in composition patterns, and dynamic batch workflow orchestration are not directly cited in this evidence pack, so the story is only partially substantiated.",
    "evidenceIds": [
      "temporal-docs-3",
      "temporal-docs-4",
      "temporal-docs-18",
      "temporal-docs-26",
      "temporal-docs-29",
      "temporal-docs-46"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "horizontal-worker-scaling",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal's task-queue model lets any number of Workers poll the same queue, and docs explicitly describe tuning Worker fleets for throughput and efficient resource use (temporal-docs-29, temporal-docs-49), plus serverless autoscaling Worker options (temporal-docs-22, temporal-docs-28). Community users confirm the core promise: 'distribute work across machines without worrying about orchestration... retry any unit easily on failure' and 'full scheduling of work and queues that's cross-machine' (temporal-comm-7, temporal-comm-8), which implies load-balancing and worker-loss tolerance via retries/task requeueing. Missing for 10: explicit documentation/benchmarks of task-queue rebalancing when a worker dies mid-task, and independent throughput-scaling benchmarks beyond anecdotal community reports.",
    "evidenceIds": [
      "temporal-docs-29",
      "temporal-docs-49",
      "temporal-docs-22",
      "temporal-docs-28",
      "temporal-comm-7",
      "temporal-comm-8"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "human-approval-waits",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal explicitly documents Signals/Updates for external input, durable state that survives multi-day waits, and directly states workflows resume after 'a multi-day wait for a human to approve a step' (temporal-docs-41, temporal-docs-6, temporal-docs-38, temporal-docs-9). Community evidence corroborates long-running, stateful workflow execution in production use. missing for 10: no hands-on/independent case study specifically demonstrating a human-approval pause-and-resume in production, and no mention of timeout/escalation handling for indefinite waits.",
    "evidenceIds": [
      "temporal-docs-41",
      "temporal-docs-6",
      "temporal-docs-38",
      "temporal-docs-9",
      "temporal-docs-1",
      "temporal-comm-8"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "hybrid-managed-workers",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Temporal Cloud is explicitly a managed control plane where customers run their own Workers connecting over mTLS, with data encryption designed so Temporal Cloud never accesses sensitive workflow data (temporal-docs-31, temporal-docs-13/44). This matches the exact 'bring your own workers, vendor manages orchestration, data stays in your network' architecture. Missing for 10: no independent/hands-on verification of the network-isolation claim, and no detailed architecture diagram or third-party audit confirming Workers-only-outbound connectivity model.",
    "evidenceIds": [
      "temporal-docs-31",
      "temporal-docs-13",
      "temporal-docs-44",
      "temporal-docs-20",
      "temporal-docs-19"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "idempotency-exactly-once",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Temporal's docs show relevant building blocks — automatic Activity retries (temporal-docs-4/36), deterministic replay that avoids re-executing side-effecting calls (temporal-docs-25: 'model calls are executed as Activities, so they retry durably and are not repeated during Workflow replay'), and crash-proof resume semantics (temporal-docs-1, temporal-docs-41) — which together reduce duplicate-trigger risk. However, the pack never explicitly documents Workflow ID uniqueness/reuse policies or an 'idempotency key' concept for external side effects like payments, and community feedback (temporal-comm-5) notes real-world difficulty handling anomalous workflow states, suggesting exactly-once guarantees for external actions still require developer diligence. Missing for 10: explicit documentation of Workflow ID-based deduplication/idempotency keys, guidance on making Activities idempotent for financial-grade exactly-once side effects, and independent verification that double-charging/double-sending is prevented in practice.",
    "evidenceIds": [
      "temporal-docs-4",
      "temporal-docs-25",
      "temporal-docs-1",
      "temporal-docs-41",
      "temporal-comm-5"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "local-dev-testing-loop",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal's CLI provides a one-command local dev server (`temporal server start-dev`) that spins up a complete Temporal Service with Web UI, and the TypeScript testing suite explicitly supports a test server with time-skipping for unit/integration testing workflows and workers. Mocked activities/steps are implied by the testing-suite framework but not explicitly detailed in the pack. Missing for 10: explicit documentation of mocking individual activities/steps in unit tests, and independent/hands-on confirmation of the testing workflow experience.",
    "evidenceIds": [
      "temporal-docs-10",
      "temporal-gh-1",
      "temporal-docs-24",
      "temporal-docs-15",
      "temporal-docs-32"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "long-sleeps-without-compute",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal's durable execution model explicitly supports workflows resuming after multi-day waits (e.g., human approval) without holding compute, backed by Activities/retries, timers, and crash-proof resumption docs, plus AI agent examples citing extended-period runs without losing state. missing for 10: independent/hands-on verification of long-duration (months-scale) sleep with zero billable compute claim, and no third-party benchmark confirming server/connection is not held during sleep.",
    "evidenceIds": [
      "temporal-docs-1",
      "temporal-docs-9",
      "temporal-docs-41",
      "temporal-docs-25",
      "temporal-docs-18",
      "temporal-docs-4"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal Cloud explicitly supports streaming metrics (including failure/latency-type signals) into Prometheus, Datadog, Grafana Cloud, New Relic, Elastic via an OpenMetrics/Prometheus endpoint, and separate docs cover task-queue/worker performance metrics for tuning. However, there's no first-party documentation of alerting rules or thresholds being configured within Temporal itself (alerting is presumably left to the downstream observability tool), and self-hosted metrics/alerting setup isn't detailed. Missing for 10: explicit alerting configuration/integration guidance, self-hosted metrics export details, and independent confirmation that queue-depth/latency dashboards work as advertised in production.",
    "evidenceIds": [
      "temporal-docs-27",
      "temporal-docs-29",
      "temporal-docs-49",
      "temporal-docs-40"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Docs confirm dedicated TypeScript (temporal-docs-14) and Python (temporal-docs-25,47,48) developer guides with core Workflow/Activity primitives, and a community comment references additional SDKs like Ruby/PHP existing (though it mistakenly claims no JS, contradicted by the TypeScript docs). However, there's no explicit evidence of a Go SDK guide or any statement that SDKs maintain true feature parity across languages. Missing for 10: Go SDK documentation, an explicit cross-SDK feature-parity statement, and independent verification that all SDKs support identical capabilities.",
    "evidenceIds": [
      "temporal-docs-14",
      "temporal-docs-25",
      "temporal-docs-47",
      "temporal-docs-48",
      "temporal-comm-2"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "openness-api-parity",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Temporal's client API (Start/Get Result/List/Query/Signal Workflow Executions) and CLI (`temporal` command for manage/monitor/debug) mirror much of what the Web UI shows for workflow execution state and debugging, and the CLI even ships the Web UI itself. However, there's no explicit documentation asserting full API/UI parity, and a probe for a public OpenAPI/REST spec returned 404s, leaving ambiguity about whether all UI-surfaced admin/account features (e.g., Cloud user roles, project org) are equally scriptable via API. missing for 10: explicit parity statement, public OpenAPI/REST spec, evidence that Cloud-console-only settings (users, projects, billing) are API-accessible.",
    "evidenceIds": [
      "temporal-docs-50",
      "temporal-docs-42",
      "temporal-docs-8",
      "temporal-docs-40",
      "temporal-probe-2",
      "temporal-docs-30"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "openness-full-export",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Temporal is open-source and self-hostable, meaning operators can run their own persistence layer (Docker/Kubernetes/manual deployment) rather than being locked into Temporal Cloud, which implies some data ownership/portability, but no evidence shows a documented data-export feature or open-format export of workflow histories/event logs. Missing for 10: explicit export/import tooling, documented open data formats (e.g., JSON/event-history export), and independent confirmation that self-hosted data is portable without vendor lock-in.",
    "evidenceIds": [
      "temporal-docs-12",
      "temporal-docs-24",
      "temporal-gh-1"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "openness-open-license",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal's server and CLI are open-source on GitHub (temporalio/temporal), confirming source is readable under an open license, and self-hosted guide explicitly refers to it as 'open source infrastructure software.' missing for 10: explicit license file/name citation (e.g., MIT/Apache-2.0 text) and confirmation that all SDKs (not just server) are open source.",
    "evidenceIds": [
      "temporal-gh-1",
      "temporal-gh-2",
      "temporal-docs-43"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Temporal explicitly documents self-hosting the open-source core: 'self-host open source infrastructure software that orchestrates your durable applications' with deployment options (Docker, Kubernetes, manual), and the CLI/GitHub repo provide 'temporal server start-dev' for local runs. This is corroborated by the public GitHub repo itself, showing it's a genuine open, self-hostable product, not just SaaS-only. Missing for 10: independent hands-on production self-hosting reports beyond dev-server usage.",
    "evidenceIds": [
      "temporal-docs-43",
      "temporal-docs-12",
      "temporal-docs-24",
      "temporal-gh-1",
      "temporal-gh-2",
      "temporal-docs-11"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "privacy-data-residency",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Temporal's self-hosted deployment guide (Docker/K8s/manual) lets a customer run the Temporal Service in any region they choose, and Temporal Cloud advertises 'Multi-Cloud & Multi-Region' plus SOC2/GDPR/HIPAA/CCPA compliance, implying some data-locality control, but there is no explicit documentation of a residency/region-selection feature for Temporal Cloud namespaces or data storage. Missing for 10: explicit Cloud region-selection UI/API, data residency guarantees, and independent confirmation that region choice is enforced.",
    "evidenceIds": [
      "temporal-docs-12",
      "temporal-docs-20",
      "temporal-docs-19",
      "temporal-docs-43"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "privacy-no-training",
    "verdict": "na",
    "quality": 0,
    "confidence": "high",
    "rationale": "Temporal is a durable execution/workflow orchestration platform, not an AI model provider or chat product; it has no data-training relationship with users' data, so an 'opt out of AI training' control is a category error for this product type.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "privacy-retention-controls",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Evidence shows Temporal claims GDPR/CCPA/SOC2/HIPAA compliance and 'provable security' without accessing customer data, which implies some data-handling and deletion controls exist, but no docs specify workflow history retention periods, data deletion APIs, or user-controlled purge mechanisms. Missing for 10: explicit namespace/history retention configuration docs, a documented data-deletion or right-to-be-forgotten workflow, and independent confirmation that these controls work as described.",
    "evidenceIds": [
      "temporal-docs-19",
      "temporal-docs-31"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence pack item discusses telemetry, usage tracking, or opt-out settings for Temporal (CLI, SDKs, or Cloud). While self-hosting implies some data control, there's no documented telemetry disclosure or opt-out mechanism, so this cannot be credited as delivered.",
    "evidenceIds": []
  },
  {
    "productId": "temporal",
    "storyId": "queue-priority-fairness",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence covers Task Queues, worker performance tuning, and retries, but nothing about assigning per-run priorities or fair/weighted scheduling across multiple tenants sharing a queue. missing for 10: priority assignment API, fair-share/weighted scheduling across tenants, multi-tenant isolation guarantees for queue fairness.",
    "evidenceIds": [
      "temporal-docs-29",
      "temporal-docs-49"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "realtime-run-streaming",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Temporal supports Signals/Queries/Updates and Web UI state visibility, which can be used to relay step updates from a workflow (e.g. via Query polling or Signal-based push), and its AI docs mention agent loops calling LLMs/tools, but there is no documented mechanism for streaming token-level or real-time push updates directly to a frontend — Queries are pull-based and Updates/Signals are not designed for continuous streaming. missing for 10: a documented real-time streaming/push API (e.g. websockets/SSE) to a frontend, token-level streaming support, and any hands-on example of live UI progress updates from a running workflow.",
    "evidenceIds": [
      "temporal-docs-6",
      "temporal-docs-38",
      "temporal-docs-8",
      "temporal-docs-9",
      "temporal-docs-25"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "replay-failed-runs",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Temporal's docs confirm durable execution history that lets workflows 'resume exactly where they left off' after failures (temporal-docs-1, temporal-docs-41), and the CLI/Web UI are positioned for managing, monitoring, and debugging workflow executions (temporal-docs-8, temporal-docs-40, temporal-docs-42, temporal-docs-26 batch job commands). However, the evidence pack never explicitly documents the specific 'replay' or 'reset workflow to a step' feature/CLI command that lets an engineer manually rerun a failed workflow from a chosen point in its history — the closest is generic resume-after-crash and debugging-via-UI language. Missing for 10: explicit documentation of a replay/reset-to-event command, guidance on selecting a specific historical step to resume from, and independent/hands-on confirmation that this workflow works as described.",
    "evidenceIds": [
      "temporal-docs-1",
      "temporal-docs-41",
      "temporal-docs-8",
      "temporal-docs-40",
      "temporal-docs-42",
      "temporal-docs-26"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "run-timeline-observability",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Temporal's Web UI shows Workflow Execution state and metadata for debugging, and the CLI/visibility APIs let you list and query executions, which points toward a searchable dashboard with retry/error visibility per Activity (retries are automatic and Activities are the per-step unit). However, the evidence never explicitly documents fine-grained search/filter UI features or explicit per-step input/output display, and a hands-on community report notes that error/anomaly details can be 'buried in the event log' and hard to act on, undercutting the smoothness of the debugging experience. Missing for 10: explicit docs on search/filter capabilities in the Web UI, clear per-step input/output rendering evidence, and resolution of the community-reported difficulty surfacing errors.",
    "evidenceIds": [
      "temporal-docs-8",
      "temporal-docs-40",
      "temporal-docs-42",
      "temporal-docs-50",
      "temporal-docs-4",
      "temporal-comm-5"
    ]
  },
  {
    "productId": "temporal",
    "storyId": "safe-workflow-versioning",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Temporal's Worker Versioning feature explicitly supports declaring Pinned vs Auto-Upgrade Versioning Behavior per Workflow type, with Worker Deployments and Worker Deployment Versions concepts letting in-flight workflows continue on their starting version while new workflows use new code — directly addressing safe deployment without breaking determinism. Docs detail the underlying mechanics (deployment versions, versioning behaviors) precisely for this use case. Missing for 10: independent/hands-on community validation of the versioning feature specifically (community evidence in the pack discusses determinism generally but not this exact versioning workflow), and no evidence of edge-case failure handling during version transitions.",
    "evidenceIds": [
      "temporal-docs-7",
      "temporal-docs-39",
      "temporal-comm-7"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-agent-docs",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "A probe confirms llms.txt is live and returns 200 with a proper agent-oriented summary of the product, and there's also a llms-full.txt referenced in docs, plus agent skills files for coding assistants. missing for 10: no docs.md fallback (404), no independent third-party confirmation that agents actually consume/parse this llms.txt successfully in practice.",
    "evidenceIds": [
      "trigger-dev-probe-1",
      "trigger-dev-docs-43",
      "trigger-dev-docs-15",
      "trigger-dev-probe-2"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-ai-insights",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Trigger.dev's evidence shows infrastructure for building AI agents/tasks and an MCP server letting external AI assistants interact with the platform, but there is no evidence the product itself surfaces AI-generated insights or suggestions from a user's run/data dashboard (e.g., anomaly detection, usage recommendations, auto-summaries of traces). The observability dashboard (docs-28, docs-29) is purely manual/alert-based, not AI-driven analysis.",
    "evidenceIds": [
      "trigger-dev-docs-28",
      "trigger-dev-docs-29",
      "trigger-dev-docs-12",
      "trigger-dev-docs-19"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-autonomous-automation",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev is purpose-built for autonomous background automation: scheduled/cron tasks, durable long-running executions with no timeouts, retries, queues/concurrency control, waitpoints for pausing/resuming, and real-time monitoring, explicitly marketed for building AI agents. Community evidence confirms production use for autonomous background jobs (e.g. screenshot pipeline, AI automation platform) running reliably without manual intervention. Missing for 10: independent long-term reliability benchmarks and more detail on fully autonomous multi-step agent orchestration beyond single-task/chat use cases.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-docs-5",
      "trigger-dev-docs-25",
      "trigger-dev-docs-26",
      "trigger-dev-docs-6",
      "trigger-dev-docs-8",
      "trigger-dev-gh-1",
      "trigger-dev-comm-9",
      "trigger-dev-comm-17",
      "trigger-dev-comm-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-builtin-assistant",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Trigger.dev provides infrastructure (tasks, MCP server, agent skills) to help users BUILD AI agents/chat assistants and lets external AI coding tools (Claude Code, Cursor) connect via MCP, but there is no evidence of a built-in AI assistant embedded inside the Trigger.dev product itself that a user can delegate tasks to.",
    "evidenceIds": [
      "trigger-dev-docs-12",
      "trigger-dev-docs-13",
      "trigger-dev-docs-14",
      "trigger-dev-docs-33"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-headless",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev is inherently a headless background-jobs platform: tasks run via SDK/CLI with no UI required, deploys are triggered from CI via a documented GitHub Actions workflow, and the CLI supports local dev, build, and cloud deploy commands suitable for automation pipelines. Community evidence corroborates real production/CI usage (e.g. long-term customers running it as an async backend for their apps).  Missing for 10: no explicit third-party proof of arbitrary CI providers beyond GitHub Actions, and no example of fully non-interactive CLI use for run-triggering/testing in CI.",
    "evidenceIds": [
      "trigger-dev-docs-18",
      "trigger-dev-docs-16",
      "trigger-dev-docs-34",
      "trigger-dev-docs-35",
      "trigger-dev-docs-17",
      "trigger-dev-comm-15",
      "trigger-dev-comm-17",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-mcp-client",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Trigger.dev documents an official MCP *server* that lets external AI coding tools (Claude Code, Cursor, Windsurf) call into Trigger.dev projects — the reverse direction from this story. The story asks whether Trigger.dev, as a platform for building AI agents/tasks, lets its own agents plug in external MCP servers to use their tools; no evidence in the pack shows any MCP-client capability for Trigger.dev-built tasks or agents.",
    "evidenceIds": [
      "trigger-dev-docs-12",
      "trigger-dev-docs-14",
      "trigger-dev-docs-33",
      "trigger-dev-probe-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-mcp-server",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev is not itself an AI coding agent but a background-jobs/agent-building platform, so the MCP-server axis applies directly, and it documents an official MCP server enabling AI assistants to interact with Trigger.dev projects, including tools for Claude Code, Cursor, and Windsurf to converse with chat agents and manage tasks without code. This is corroborated by a dedicated probe confirming the server's existence. Missing for 10: independent/hands-on community verification of the MCP server itself (community evidence is about the core platform, not MCP usage specifically).",
    "evidenceIds": [
      "trigger-dev-docs-12",
      "trigger-dev-docs-14",
      "trigger-dev-docs-33",
      "trigger-dev-probe-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-nl-commands",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev ships an official MCP server that lets AI assistants (Claude Code, Cursor, Windsurf) interact with projects and chat agents via natural language, and 'agent skills' teach coding assistants to write tasks — this enables natural-language operation indirectly through AI coding tools rather than a built-in NL interface in the product itself. missing for 10: no evidence of a native chat/NL command interface within Trigger.dev's own dashboard or CLI, no independent hands-on validation of the MCP server's reliability for full task lifecycle control via natural language.",
    "evidenceIds": [
      "trigger-dev-docs-12",
      "trigger-dev-docs-14",
      "trigger-dev-docs-15",
      "trigger-dev-docs-33",
      "trigger-dev-probe-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-official-cli",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev ships an official CLI documented at cli-introduction with commands for local dev, self-hosting, and deployment (docs-16, docs-34, docs-35), corroborated by a probe confirming the docs page. This CLI is core to the developer/agentic workflow (deploy via GitHub Actions, etc.), though evidence doesn't show AI-native-specific CLI features (e.g., natural-language CLI commands) beyond standard dev tooling. Missing for 10: independent hands-on confirmation of CLI usage, and explicit AI-native CLI extensions beyond the general dev CLI.",
    "evidenceIds": [
      "trigger-dev-docs-16",
      "trigger-dev-docs-34",
      "trigger-dev-docs-35",
      "trigger-dev-probe-5"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-public-api",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Trigger.dev documents a public Management API/SDK (trigger, list runs, cancel, retry) with scoped API keys, plus a v3 SDK reference and MCP server for AI assistants to interact with projects — enabling programmatic, AI-native control of the platform. Missing for 10: a formal OpenAPI/REST spec (probe shows 404s for openapi.json/swagger.json) and independent third-party corroboration of automated API-driven usage specifically.",
    "evidenceIds": [
      "trigger-dev-docs-19",
      "trigger-dev-docs-36",
      "trigger-dev-docs-42",
      "trigger-dev-docs-12",
      "trigger-dev-probe-3",
      "trigger-dev-probe-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-scoped-keys",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev supports creating multiple API keys per environment with distinct access scope, task restrictions, and expiration dates, which is a form of scoped/least-privilege credentialing (docs-42). However, this is documented only briefly in a blog post rather than a dedicated security/credentials doc, and there's no evidence of fine-grained per-agent or per-tool scoping, role-based permission granularity, or agent-specific credential issuance workflows. missing for 10: dedicated documentation on scoped credential creation, evidence of granular per-tool/per-agent permission models, independent/hands-on confirmation of least-privilege enforcement.",
    "evidenceIds": [
      "trigger-dev-docs-42",
      "trigger-dev-docs-20"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-sdks",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev ships an official @trigger.dev/sdk (TypeScript/JavaScript, plus Python via build extension) that underpins all task, queue, realtime, and management functionality, with extensive first-party docs and code samples, and community evidence confirms developers build production AI agent workloads directly against it. missing for 10: no official OpenAPI spec or multi-language SDK beyond TS/Python, and no independent third-party SDK quality audit.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-docs-36",
      "trigger-dev-docs-43",
      "trigger-dev-gh-1",
      "trigger-dev-comm-9",
      "trigger-dev-probe-3"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "agentic-webhooks",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence shows Trigger.dev can send outbound webhook alerts when tasks fail (docs-29) and supports many trigger types (scheduled, API calls, waitpoint tokens), but there is no documentation of an inbound webhook subscription mechanism that lets a task be triggered by external events via webhooks. This is a fair axis for a background-jobs/workflow platform, but no evidence shows it delivers 'subscribe to events via webhooks' as a capability.",
    "evidenceIds": [
      "trigger-dev-docs-29",
      "trigger-dev-docs-3",
      "trigger-dev-docs-19"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "ai-framework-integrations",
    "verdict": "partial",
    "quality": 5,
    "confidence": "low",
    "rationale": "Trigger.dev shows generic AI-agent durability primitives — durable multi-turn chat agents (docs-13), tool-calling with human-approval pauses that mirrors AI SDK tool() conventions (docs-22), prompt/model overrides (docs-32), and realtime streaming 'from any AI providers' (docs-30) — but there is no evidence of named first-party integration packages wrapping specific AI SDKs, agent frameworks (LangChain, LlamaIndex, CrewAI, AutoGen) or model providers (OpenAI, Anthropic) the way the story describes. Support is more 'framework-agnostic durability layer' than 'first-party wrapped integrations.' Missing for 10: explicit first-party SDK/framework integration packages, a documented compatibility list of supported AI providers/agent frameworks, and independent hands-on confirmation of glue-code-free integration.",
    "evidenceIds": [
      "trigger-dev-docs-13",
      "trigger-dev-docs-22",
      "trigger-dev-docs-30",
      "trigger-dev-docs-32",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "api-interactive-docs",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Trigger.dev docs contain static code snippets (e.g. docs-19, docs-36) but there is no evidence of an interactive API reference with runnable/executable examples, and probes explicitly show no OpenAPI/swagger spec exists (trigger-dev-probe-3) and no machine-readable docs.md (trigger-dev-probe-2).",
    "evidenceIds": [
      "trigger-dev-probe-3",
      "trigger-dev-probe-2",
      "trigger-dev-docs-19",
      "trigger-dev-docs-36"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "api-machine-spec",
    "verdict": "none",
    "quality": 0,
    "confidence": "high",
    "rationale": "A direct probe found no OpenAPI/Swagger spec at any standard location (all 404s), and no documentation references a downloadable machine-readable API spec despite an SDK/management API existing.",
    "evidenceIds": [
      "trigger-dev-probe-3",
      "trigger-dev-docs-19",
      "trigger-dev-docs-36"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "api-sandbox",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev supports separate environments (dev/staging/prod) with the CLI 'dev' mode for local testing and community praise calling Dev mode 'an absolute gem' for testing/iterating without touching production, plus API keys scoped per environment. However, there is no explicit documentation of a dedicated 'sandbox' environment type or built-in data isolation/masking guarantees separating test runs from production data. missing for 10: explicit sandbox environment documentation, data isolation guarantees between environments, independent verification that dev/test runs cannot touch production data.",
    "evidenceIds": [
      "trigger-dev-docs-16",
      "trigger-dev-docs-34",
      "trigger-dev-docs-42",
      "trigger-dev-comm-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "api-versioning-policy",
    "verdict": "disputed",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Trigger.dev documents version-locking of task runs (docs-7) and references its v3 SDK module (docs-36), implying some notion of API versioning, but there is no explicit documented deprecation policy page, and a direct hands-on report describes the v3→v4 migration as 'rushed' with docs/examples still showing deprecated v3 code (comm-13), contradicting the idea of a well-managed, documented deprecation process. missing for 10: an explicit versioned-API/deprecation-policy document, evidence of advance-notice or migration guides, and independent confirmation the v3→v4 transition was smooth.",
    "evidenceIds": [
      "trigger-dev-docs-7",
      "trigger-dev-docs-36",
      "trigger-dev-comm-13"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "automatic-step-retries",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs explicitly show configurable retry with exponential backoff ('retry 10 times with exponential backoff'), no-timeout long-running task support, concurrency/queue controls, and failure alerting via email/Slack/webhooks — all without requiring manual try/catch scaffolding since retries are declarative task config. GitHub repo tagline also highlights 'durable tasks, retries, queues and idempotency' as core primitives. Missing for 10: explicit documentation of per-step (vs per-task) granular failure policies and more detailed backoff/timeout configuration options beyond the single example, plus independent hands-on verification of retry behavior under real failures.",
    "evidenceIds": [
      "trigger-dev-docs-4",
      "trigger-dev-docs-24",
      "trigger-dev-docs-23",
      "trigger-dev-docs-8",
      "trigger-dev-docs-29",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "automation-bulk-operations",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Trigger.dev's SDK and dashboard support querying/filtering many runs at once (runs.list with status filters) and infrastructure like concurrency limits/keys and queues allows large numbers of items to be processed in parallel, which indirectly enables bulk-style automation. However, there is no explicit documentation of a dedicated 'batch trigger' or bulk cancel/update API for operating on many items in a single call. Missing for 10: explicit bulk/batch trigger API, bulk cancel/retry/update operations across many runs, and independent confirmation of bulk-scale usage.",
    "evidenceIds": [
      "trigger-dev-docs-19",
      "trigger-dev-docs-8",
      "trigger-dev-docs-27",
      "trigger-dev-docs-9"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "automation-rules-engine",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev supports event/schedule-triggered task execution (cron schedules, triggering via SDK, webhooks, waitpoints for external confirmation) and automates actions like retries, approvals, and AI agent workflows, but this is developer-defined trigger-and-task code rather than declarative 'if event then action' rule authoring aimed at non-developer AI-native users. missing for 10: a declarative rule/condition-builder UI or natural-language rule definition interface, and independent evidence of end-to-end 'rule triggers action' automation beyond scheduled/event-based task invocation.",
    "evidenceIds": [
      "trigger-dev-docs-5",
      "trigger-dev-docs-25",
      "trigger-dev-docs-26",
      "trigger-dev-docs-6",
      "trigger-dev-docs-22",
      "trigger-dev-docs-3",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "automation-scheduled-jobs",
    "verdict": "full",
    "quality": 9,
    "confidence": "high",
    "rationale": "Trigger.dev has first-class scheduled/recurring tasks using cron syntax, with dashboard management (create/edit/disable without redeploy) and syncing on deploy, plus community corroboration that the scheduled task feature 'just works exactly as expected'. missing for 10: independent hands-on evidence specifically stress-testing recurring schedule reliability at scale beyond the single community quote.",
    "evidenceIds": [
      "trigger-dev-docs-5",
      "trigger-dev-docs-25",
      "trigger-dev-docs-26",
      "trigger-dev-comm-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "automation-versioned-workflows",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Trigger.dev documents a versioning concept where task runs lock to the code version deployed at trigger time (trigger-dev-docs-7), and deployment is managed via git/GitHub Actions (trigger-dev-docs-18), which implies git-based version history. However, there is no documented in-dashboard review UI, diffing, or explicit rollback mechanism to revert a deployed automation to a prior version. Missing for 10: explicit rollback/revert capability in the dashboard or CLI, a change-review workflow, and any audit trail for reviewing prior automation versions before promoting them.",
    "evidenceIds": [
      "trigger-dev-docs-7",
      "trigger-dev-docs-18",
      "trigger-dev-docs-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "code-first-workflows",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev workflows are written as plain async TypeScript/JavaScript (and Python via extension) functions with no YAML/DSL, using checkpoint-resume for durability (no determinism constraints), retries, and waitpoints — validated by both docs and community devs who moved from GUI/DSL tools (n8n) to code. missing for 10: independent hands-on benchmark of 'automatic checkpointing' correctness at scale, and broader language support beyond TS/Python.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-docs-38",
      "trigger-dev-docs-4",
      "trigger-dev-docs-6",
      "trigger-dev-docs-43",
      "trigger-dev-comm-2"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "concurrency-rate-controls",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev documents concurrencyLimit per task/queue and 'concurrency keys' explicitly designed to create bespoke per-user/tenant queue logic so one hot customer can't starve others, plus a dashboard Limits page showing usage and the ability to buy extra concurrency. However, evidence only shows concurrency capping, not a distinct configurable rate-limit (requests/time-window) mechanism per key or tenant—'rate limit usage' is only mentioned as a viewable metric, not a settable policy. Missing for 10: explicit rate-limit (throughput/time-window) configuration API per key/tenant, independent hands-on confirmation of multi-tenant isolation under load.",
    "evidenceIds": [
      "trigger-dev-docs-8",
      "trigger-dev-docs-27",
      "trigger-dev-docs-9",
      "trigger-dev-docs-21"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "crash-resume-checkpointing",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Trigger.dev's architecture is explicitly built on checkpoint-resume durability so tasks 'run normal TypeScript with no determinism constraints' and survive infrastructure issues; docs describe automatic retries with backoff, waitpoint tokens that pause/resume runs, version-locking so in-flight runs aren't affected by new deploys, and durable AI chats explicitly 'surviving refreshes, deploys, and crashes.' A community reference (Magic Patterns) also confirms real-world resilience where a custom process crashed under load but Trigger.dev jobs 'just worked.' Missing for 10: independent/hands-on verification of an actual mid-run crash-and-resume test and more detail on exactly how much step-level state is preserved versus re-executed.",
    "evidenceIds": [
      "trigger-dev-docs-38",
      "trigger-dev-docs-13",
      "trigger-dev-docs-6",
      "trigger-dev-docs-31",
      "trigger-dev-docs-4",
      "trigger-dev-docs-7",
      "trigger-dev-comm-9"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "cron-scheduled-workflows",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev documents cron-based scheduled tasks and dashboard controls to create, activate, disable, edit and delete schedules without redeploying (functionally pause/resume), plus a runs list and lifecycle states for visibility into execution. However, there is no evidence of explicit 'overlap policy' controls (e.g., skip/queue/cancel overlapping runs) or a dedicated 'upcoming runs' preview/calendar view. Missing for 10: documented overlap-policy configuration for cron schedules, and a specific upcoming-runs forecast/preview feature.",
    "evidenceIds": [
      "trigger-dev-docs-5",
      "trigger-dev-docs-25",
      "trigger-dev-docs-26",
      "trigger-dev-docs-10",
      "trigger-dev-comm-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "debounce-batching-controls",
    "verdict": "partial",
    "quality": 3,
    "confidence": "low",
    "rationale": "Trigger.dev has concurrency limits and per-key queueing (docs-8, docs-27) that can throttle noisy invocations, and a 'Delayed' run state (docs-10) hints at delay support, but there is no explicit documentation of a debounce or event-batching primitive that collapses multiple triggers into a single run as the story describes. missing for 10: explicit debounce/collapse API, batch-trigger documentation, and independent confirmation these mechanisms achieve event collapsing rather than just concurrency throttling.",
    "evidenceIds": [
      "trigger-dev-docs-8",
      "trigger-dev-docs-27",
      "trigger-dev-docs-10"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "durable-agent-loops",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev's docs explicitly target durable AI agent loops: checkpoint-resume execution with no determinism constraints, durable multi-turn AI chat tasks that survive refreshes/deploys/crashes, waitpoint tokens for human-approval pauses mid-run, tool-level needsApproval pausing, retries with exponential backoff, and streaming/realtime updates from AI providers — closely matching the story's checkpointed/retried agent-loop pattern, corroborated by GitHub positioning ('rock solid agents') and community usage for chained OpenAI calls. missing for 10: no independent hands-on benchmark specifically demonstrating a multi-step tool-calling agent loop surviving a mid-run crash, and one community comment notes wait/resume was previously a wishlist gap suggesting maturity is still evolving.",
    "evidenceIds": [
      "trigger-dev-docs-38",
      "trigger-dev-docs-13",
      "trigger-dev-docs-6",
      "trigger-dev-docs-22",
      "trigger-dev-docs-4",
      "trigger-dev-docs-30",
      "trigger-dev-gh-1",
      "trigger-dev-comm-4",
      "trigger-dev-comm-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "event-driven-triggers",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev supports declarative task definitions triggered via SDK calls, scheduled cron tasks, webhooks-style event triggering via the SDK's trigger()/batchTrigger(), and fan-out is achievable via triggering multiple tasks or using batch triggers, with concurrency/queue controls. However, the evidence pack lacks explicit documentation of native webhook ingestion endpoints, queue-consumer triggers (e.g., SQS/Kafka), or a built-in event-bus/pub-sub fan-out primitive — fan-out is implied via code composition (calling multiple tasks) rather than a first-class declarative one-event-to-many-functions construct. missing for 10: native webhook trigger endpoints, direct queue/broker integration triggers, and a first-class declarative fan-out/event-routing primitive (vs. manual invocation of multiple tasks).",
    "evidenceIds": [
      "trigger-dev-docs-3",
      "trigger-dev-docs-5",
      "trigger-dev-docs-25",
      "trigger-dev-docs-26",
      "trigger-dev-docs-8",
      "trigger-dev-docs-27",
      "trigger-dev-gh-1",
      "trigger-dev-comm-2"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "external-signal-injection",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev supports waitpoint tokens to pause a running task until an external API call completes them (commonly used for human approval/webhook confirmation), management API/SDK calls like runs.list to trigger, cancel, or interact with runs externally, and realtime/streaming APIs to push updates into or out of running tasks. This directly covers sending signals/events from outside (API, webhook, or another workflow) into a running workflow. missing for 10: no explicit example of triggering a waitpoint token from a webhook payload end-to-end, and no independent/hands-on confirmation of external signal delivery beyond docs.",
    "evidenceIds": [
      "trigger-dev-docs-6",
      "trigger-dev-docs-31",
      "trigger-dev-docs-19",
      "trigger-dev-docs-11",
      "trigger-dev-docs-22",
      "trigger-dev-docs-3"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "fanout-child-workflows",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Trigger.dev's task model supports triggering sub-tasks with returned handles (docs-3), waitpoints for pausing/resuming (docs-6), and per-queue concurrency limits (docs-8), which are coordination primitives useful for workflow composition, and it's positioned as a background-jobs framework for complex workflows (docs-2, gh-1). However, the evidence pack never explicitly documents batch/fan-out-fan-in triggering, parallel step orchestration, or nested child-workflow patterns as first-class constructs. Missing for 10: explicit docs on batchTrigger/fan-out over dynamic collections, fan-in aggregation of results, and child-workflow nesting patterns; independent hands-on confirmation of these specific patterns.",
    "evidenceIds": [
      "trigger-dev-docs-3",
      "trigger-dev-docs-6",
      "trigger-dev-docs-8",
      "trigger-dev-docs-2",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "horizontal-worker-scaling",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev's managed platform docs claim 'elastic scaling' with 'nothing to provision' and auto-scaling managed infrastructure, plus concurrency limits/keys and queue-based load distribution across runs, and a customer testimonial (Magic Patterns) describes Trigger spinning up jobs reliably without crashing under load. However there's no explicit documentation of worker-fleet load-balancing mechanics or worker-loss/failover tolerance from a platform-engineer's infra perspective — the docs focus on task-level retries/durability rather than describing how the underlying worker fleet is scaled or how it tolerates node failure. missing for 10: explicit docs on horizontal worker fleet scaling mechanics, load-balancing algorithm details, and documented behavior/guarantees when a worker node is lost mid-execution.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-docs-38",
      "trigger-dev-docs-39",
      "trigger-dev-docs-8",
      "trigger-dev-docs-27",
      "trigger-dev-comm-9"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "human-approval-waits",
    "verdict": "full",
    "quality": 8,
    "confidence": "medium",
    "rationale": "Docs explicitly describe waitpoint tokens that pause task runs until manually completed, used commonly for approval workflows, plus a tool-level `needsApproval` example showing the run stays alive awaiting human input. This directly matches the described story of long-duration human-in-the-loop pausing and resuming. Missing for 10: independent/hands-on confirmation of multi-day pause durations in production (older community comments from before this feature shipped wished for 'wait/resume' but don't contradict the current documented capability).",
    "evidenceIds": [
      "trigger-dev-docs-6",
      "trigger-dev-docs-31",
      "trigger-dev-docs-22"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "hybrid-managed-workers",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "Evidence shows only two deployment modes: fully managed cloud (trigger.dev Cloud) and fully self-hosted (docs-17, run and manage the entire platform yourself). There is no documentation of a hybrid model where the vendor retains the orchestration control plane while workers execute in the customer's own infrastructure.",
    "evidenceIds": [
      "trigger-dev-docs-17",
      "trigger-dev-docs-16",
      "trigger-dev-docs-38"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "idempotency-exactly-once",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "The GitHub README explicitly claims idempotency alongside durable tasks, retries, and queues, and the docs pack shows adjacent reliability primitives (retry/backoff, run locking/versioning, concurrency limits, waitpoint tokens for pausing on external confirmation) that support building exactly-once-like workflows. However, there is no dedicated documentation snippet showing an idempotencyKey API, how duplicate triggers are deduped, or explicit 'exactly-once step semantics' guarantees, and no independent/hands-on confirmation of dedupe behavior. Missing for 10: idempotency-key API docs/examples, explicit exactly-once semantics documentation, and community/hands-on validation of duplicate-trigger prevention.",
    "evidenceIds": [
      "trigger-dev-gh-1",
      "trigger-dev-docs-4",
      "trigger-dev-docs-7",
      "trigger-dev-docs-6"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "local-dev-testing-loop",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "The CLI clearly supports running the whole engine locally with one command (`trigger dev`), and community feedback praises 'Dev mode' for smooth local testing/iteration, but there is no evidence of dedicated unit-testing utilities, time-skipping, or step-mocking APIs for workflows. Missing for 10: documented unit-test/testing framework integration, time-travel/time-skip simulation, and mocked-step APIs.",
    "evidenceIds": [
      "trigger-dev-docs-16",
      "trigger-dev-docs-34",
      "trigger-dev-probe-5",
      "trigger-dev-comm-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "long-sleeps-without-compute",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Trigger.dev's checkpoint-resume execution model explicitly decouples a paused run from server/connection compute ('no determinism constraints, processing millions of tasks... with checkpoint-resume'), tasks have no timeouts, and waitpoint tokens let a run pause indefinitely for external confirmation/approval without holding compute. This directly matches sleeping/waiting workflows without billable compute held.\nmissing for 10: explicit documentation of maximum sleep/wait duration (days-to-months) and independent/hands-on confirmation that long waits don't accrue compute billing.",
    "evidenceIds": [
      "trigger-dev-docs-6",
      "trigger-dev-docs-31",
      "trigger-dev-docs-38",
      "trigger-dev-docs-23",
      "trigger-dev-docs-10",
      "trigger-dev-docs-22"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "metrics-alerts-export",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Trigger.dev provides built-in observability (run traces, states, Limits/concurrency usage page) and can alert via email, Slack, and webhooks when tasks fail, which covers the alerting half of the story. However, there is no evidence of exporting metrics (failure rates, latencies, queue depths) to external observability stacks like Prometheus, Datadog, or via OpenTelemetry — only proprietary dashboard views and webhook-based alerts are documented, and no OpenAPI/metrics export endpoint was found by probes. missing for 10: OpenTelemetry or Prometheus-compatible metrics export, documented integration with third-party observability stacks (Datadog/Grafana), independent confirmation that webhook alerts feed into external monitoring pipelines.",
    "evidenceIds": [
      "trigger-dev-docs-28",
      "trigger-dev-docs-29",
      "trigger-dev-docs-9",
      "trigger-dev-docs-10",
      "trigger-dev-probe-3"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "multi-language-sdk-parity",
    "verdict": "partial",
    "quality": 2,
    "confidence": "medium",
    "rationale": "Trigger.dev's own docs describe TypeScript/JavaScript (Node.js and Bun) as the core language, with Python support only 'via build extension' and no mention of Go or other languages at all — this is far from 'real feature parity' across multiple SDKs as the story requires. Missing for 10: native first-class Go SDK, native first-class Python SDK with parity (not a build-extension workaround), and any evidence of equivalent feature sets across languages.",
    "evidenceIds": [
      "trigger-dev-docs-43",
      "trigger-dev-docs-36",
      "trigger-dev-docs-2"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "openness-api-parity",
    "verdict": "partial",
    "quality": 6,
    "confidence": "medium",
    "rationale": "Trigger.dev exposes a substantial Management SDK/API (trigger, cancel, retry, runs.list, waitpoints) and a CLI/MCP server for AI-native workflows, giving strong programmatic parity for core task operations. However, several UI-only capabilities are explicitly documented as dashboard-exclusive (e.g., purchasing extra concurrency 'via the dashboard' and schedule management 'without having to deploy code' implying UI as primary path), and no public OpenAPI/REST spec was discoverable (404s on all probed endpoints), suggesting the API surface may not fully mirror every UI action. Missing for 10: documented API/SDK equivalents for concurrency purchasing and full schedule CRUD parity, a public OpenAPI spec, and independent confirmation that all dashboard actions are scriptable.",
    "evidenceIds": [
      "trigger-dev-docs-19",
      "trigger-dev-docs-3",
      "trigger-dev-docs-6",
      "trigger-dev-docs-21",
      "trigger-dev-docs-26",
      "trigger-dev-docs-36",
      "trigger-dev-docs-16",
      "trigger-dev-probe-3",
      "trigger-dev-probe-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "openness-full-export",
    "verdict": "partial",
    "quality": 5,
    "confidence": "medium",
    "rationale": "Trigger.dev is open source (GitHub) and self-hostable, giving strong platform-level openness — a cloud user can move their entire task/queue definitions and infrastructure to self-hosted without lock-in, and the Management SDK/API (`runs.list`) exposes run data programmatically. However there's no documented bulk data-export feature, no mention of open standard export formats (e.g. JSON/CSV dump of all historical runs, logs, traces) for cloud users, and no explicit account/data portability or migration tooling beyond self-hosting the runtime itself. Missing for 10: dedicated data-export/portability docs, open-format bulk export of run history/logs, and independent confirmation that cloud data can be fully extracted.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-docs-17",
      "trigger-dev-docs-19",
      "trigger-dev-docs-36",
      "trigger-dev-gh-1",
      "trigger-dev-docs-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "openness-open-license",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Trigger.dev is explicitly described as an 'open source background jobs framework' with its source hosted publicly on GitHub (triggerdotdev/trigger.dev), satisfying the ability to read the source under an open license. Missing for 10: explicit mention of the specific license name (e.g., MIT/Apache) and independent confirmation of license terms beyond the 'open source' label.",
    "evidenceIds": [
      "trigger-dev-docs-2",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "openness-self-host",
    "verdict": "full",
    "quality": 7,
    "confidence": "medium",
    "rationale": "Trigger.dev is explicitly open source and documents a dedicated self-hosting overview describing full control over infrastructure, deployment, and URLs, plus CLI support for self-hosting and deployment via GitHub Actions. Missing for 10: independent/hands-on community reports specifically confirming successful self-hosting deployments (comm-19 only mentions considering self-hosting alternatives, not actually running Trigger.dev self-hosted) and deeper detail on self-hosted feature parity/limitations.",
    "evidenceIds": [
      "trigger-dev-docs-17",
      "trigger-dev-docs-16",
      "trigger-dev-docs-18",
      "trigger-dev-gh-1"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "privacy-data-residency",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "The evidence pack shows self-hosting is possible (giving implicit control over infrastructure location) and mentions a BAA add-on for PHI compliance, but there is no documentation of selectable data regions, residency guarantees, or region choice for the managed cloud offering.",
    "evidenceIds": [
      "trigger-dev-docs-17",
      "trigger-dev-docs-41"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "privacy-no-training",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "Trigger.dev's evidence pack covers self-hosting, MFA, and general security features, but nothing addresses whether user code, task payloads, or AI-chat data are used to train AI models or how such use might be opted out of. Missing for 10: any explicit data-training opt-out policy, AI model training disclosure, or contractual language on this topic.",
    "evidenceIds": []
  },
  {
    "productId": "trigger-dev",
    "storyId": "privacy-retention-controls",
    "verdict": "none",
    "quality": 0,
    "confidence": "medium",
    "rationale": "The evidence pack covers security features like MFA, BAA for PHI, and self-hosting for infrastructure control, but contains no documentation of data retention policies, configurable retention periods, or deletion controls/APIs for run data, payloads, or logs. Self-hosting (trigger-dev-docs-17) implies infrastructure control but is not itself evidence of a retention/deletion feature.",
    "evidenceIds": []
  },
  {
    "productId": "trigger-dev",
    "storyId": "privacy-telemetry-optout",
    "verdict": "none",
    "quality": 0,
    "confidence": "low",
    "rationale": "No evidence pack item discusses telemetry, usage tracking, or an opt-out setting; self-hosting is mentioned but not tied to any telemetry disclosure/control. This is a fair axis for a dev platform/CLI product, so absence of evidence yields 'none'. Missing for 10: any mention of telemetry collection, an opt-out flag/env var, or privacy documentation addressing usage tracking.",
    "evidenceIds": [
      "trigger-dev-docs-17",
      "trigger-dev-docs-16"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "queue-priority-fairness",
    "verdict": "partial",
    "quality": 4,
    "confidence": "medium",
    "rationale": "Trigger.dev supports concurrency keys to create 'bespoke queue logic for each of your users' (docs-27) and per-task concurrency limits (docs-8), which enables per-tenant queue isolation rather than a single global FIFO queue, addressing the 'fair scheduling across tenants' part of the story. However, there is no documented run-level priority field or priority-based scheduling mechanism in the evidence pack. Missing for 10: explicit run priority assignment/API, documentation of priority-based ordering within or across queues, and independent confirmation of fairness under contention.",
    "evidenceIds": [
      "trigger-dev-docs-27",
      "trigger-dev-docs-8",
      "trigger-dev-docs-21"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "realtime-run-streaming",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Trigger.dev's Realtime API is explicitly documented for streaming live run updates and token/data streams from background tasks directly to a frontend without polling, including forwarding AI provider streams for real-time UI updates, and community feedback confirms hooks are used for returning progress updates to the UI during OpenAI calls. Missing for 10: independent hands-on frontend integration examples/demos beyond docs and one community mention, and no discussion of latency/scale limits of the realtime stream in practice.",
    "evidenceIds": [
      "trigger-dev-docs-11",
      "trigger-dev-docs-30",
      "trigger-dev-comm-4"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "replay-failed-runs",
    "verdict": "partial",
    "quality": 4,
    "confidence": "low",
    "rationale": "Docs confirm a task run can be retried/cancelled via its handle (trigger-dev-docs-3) and that automatic retries with backoff exist (trigger-dev-docs-4), but there is no evidence of a dashboard/API 'replay from history' feature or of rerunning from a specific intermediate step. missing for 10: explicit replay-from-recorded-history UI/API, step-level resume/rerun capability, independent confirmation of this workflow.",
    "evidenceIds": [
      "trigger-dev-docs-3",
      "trigger-dev-docs-4",
      "trigger-dev-docs-10"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "run-timeline-observability",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs describe a per-run trace view showing each step executing in real-time with logs (docs-28), explicit run lifecycle states (docs-10), configurable retries with backoff (docs-4), a searchable/filterable runs list with custom 'smart columns' pulled from payload/metadata/output via JSON path (docs-1), a management API to query runs by status (docs-19), and failure alerting via email/Slack/webhooks (docs-29) — together covering inputs, outputs, retries, errors, search and filter in a dashboard. Missing for 10: independent/hands-on confirmation of per-step input/output granularity in the trace UI and no community citation specifically validating the timeline/search UX beyond vendor docs.",
    "evidenceIds": [
      "trigger-dev-docs-28",
      "trigger-dev-docs-10",
      "trigger-dev-docs-4",
      "trigger-dev-docs-1",
      "trigger-dev-docs-19",
      "trigger-dev-docs-29"
    ]
  },
  {
    "productId": "trigger-dev",
    "storyId": "safe-workflow-versioning",
    "verdict": "full",
    "quality": 8,
    "confidence": "high",
    "rationale": "Docs explicitly state runs lock to the code version active at start and never change versions even after new deploys, directly addressing deterministic in-flight execution across deployments; run lifecycle states and deployment/CLI docs corroborate this workflow. missing for 10: independent/hands-on community confirmation specifically of version-locking behavior during a live deploy, and no detail on how long old versions remain servable/rollback edge cases.",
    "evidenceIds": [
      "trigger-dev-docs-7",
      "trigger-dev-docs-10",
      "trigger-dev-docs-16",
      "trigger-dev-docs-18"
    ]
  }
]
