docs(factories): document benchmark suites and tasks as definition files - #667
docs(factories): document benchmark suites and tasks as definition files#667hongyi-chen wants to merge 2 commits into
Conversation
The benchmarks/<suite-slug>/suite.yaml and benchmarks/<suite-slug>/tasks/<task-slug>.yaml file kinds are published in the machine-readable schema bundle (app.warp.dev/api/v1/factory-files/schemas/v1alpha1) but were the only definition kinds missing from the syntax reference. Adds both sections with fields from the published schemas, the directory-structure entry, and a pointer from the benchmarks section of Measure and improve. Co-Authored-By: Warp <agent@warp.dev>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR adds benchmark suite and benchmark task definition-file syntax to the factory-as-code reference, updates the page metadata and directory tree, and links the benchmark overview page to the new reference sections.
Concerns
No material concerns found. The changed docs are documentation-only, the internal anchors match existing generated-anchor conventions for path-like headings, and spec_context.md reports no approved or repository spec context for implementation drift validation.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
There was a problem hiding this comment.
Overview
Adds benchmarks/<suite-slug>/suite.yaml and benchmarks/<suite-slug>/tasks/<task-slug>.yaml reference sections to the factory-as-code page and cross-links them from Measure and improve. Verified every field/requirement against the published benchmark_suite.schema.json and benchmark_suite_task.schema.json — the docs match the schema exactly (required/optional fields, startingRepoRefs shorthand and object forms, 40-char SHA constraint, save-vs-launch behavior). New anchors resolve correctly (confirmed with the repo's link checker) and CI is green.
Verdict
Checks: build pass, tests n/a, CI green, visual proof n/a (reference-only text change)
Found: 0 critical, 0 important, 0 suggestions, 1 nit
Approve with nits.
|
|
||
| ### `tasks` | ||
|
|
||
| Optional. Ordered task slugs, each naming a file at `benchmarks/<suite-slug>/tasks/<slug>.yaml`. Every slug listed here must have a matching file, and every task file must appear here exactly once. A suite with no tasks can be saved, but it can't launch until at least one task exists. |
There was a problem hiding this comment.
🧹 [NIT] Placeholder mismatch: this sentence uses <slug> (.../tasks/<slug>.yaml) but the section heading two lines below uses <task-slug> for the same path. Suggest aligning to <task-slug> here for consistency.
| Optional. Ordered task slugs, each naming a file at `benchmarks/<suite-slug>/tasks/<slug>.yaml`. Every slug listed here must have a matching file, and every task file must appear here exactly once. A suite with no tasks can be saved, but it can't launch until at least one task exists. | |
| Optional. Ordered task slugs, each naming a file at `benchmarks/<suite-slug>/tasks/<task-slug>.yaml`. Every slug listed here must have a matching file, and every task file must appear here exactly once. A suite with no tasks can be saved, but it can't launch until at least one task exists. |
Self-review fix: the suite example dispatched an 'implementer' agent that the page's directory tree and full example never declare, so copying it into the page's own factory would fail validation. Recast the example around the declared reviewer agent. Co-Authored-By: Warp <agent@warp.dev>
What this feature does
Benchmark suites compare configurations of one agent on the same fixed tasks. Suites and their tasks can be defined as version-controlled files —
benchmarks/<suite-slug>/suite.yamlplustasks/<task-slug>.yaml— like every other factory resource, and they were the only definition file kinds missing from the syntax reference. Shipped inv0.2026.08.26.17.59.stable_01(2026-08-27).Summary
Found during a factories docs-coverage audit against the published definition schemas. Every field, requirement, and constraint is sourced from the live schema bundle at
app.warp.dev/api/v1/factory-files/schemas/v1alpha1(benchmark_suite.schema.json,benchmark_suite_task.schema.json).Changes
src/content/docs/factories/factory-as-code.mdx
benchmarks/<suite-slug>/suite.yamlandbenchmarks/<suite-slug>/tasks/<task-slug>.yamlsections with per-field reference entries, matching the existing per-kind structurebenchmarks/tree to the directory structure listing and to the page intro and descriptionsrc/content/docs/factories/measure-and-improve.mdx
benchmarks/syntax sectionsContent design plan
Reader and job: A team that manages its factory as definitions as code and wants benchmark suites reviewed, versioned, and rolled back like the rest of the factory.
Gap today:
factory-as-codedocuments every file kind exceptbenchmarks/, and Measure and improve covers only the dashboard flow — file-based suites were undiscoverable.Change: Two per-kind reference sections (
suite.yamlfields; task file fields including commit-pinnedstartingRepoRefs) plus the directory listing and a cross-link. Excludes benchmark concepts and result interpretation, which stay on Measure and improve.Unverified claims
None — all fields, requirements, and constraints (including the save-vs-launch behavior for empty suites and the 40-character commit-SHA pinning rules) come from the published schema bundle's own descriptions.
Additional context
The same audit evaluated other factories docs candidates; the notable deferral, recorded per the docs-worthiness criteria:
provider: webhooktrigger,FactoryWebhookAPI): deferred, not rejected. The trigger provider is in the published schema, but the management endpoints (/factory/webhooks/*: create, rotate, deliveries, dry-run) are markedx-internaland there is no dashboard surface, so no released end-to-end setup path exists to document. Re-surface when those endpoints reachdevelopers/agent-api-openapi.yaml(via the standing spec-sync automation) or a dashboard webhooks surface ships.Co-Authored-By: Warp agent@warp.dev