Navigable Artifacts
shared_rules.mdUniversalUniversal editorial and operational principles for the comparison pipeline. Applies to every comparison piece this system produces.
# Shared Rules > Universal editorial and operational principles for the comparison pipeline. > Applies to every comparison piece this system produces. > Read alongside `roles.json` (source handling lookup table) and the current > `piece_brief.md` (per-piece specifics).
1. The category of writing
Every piece this system produces is a **technical comparison guide for developers**, written in the voice and structure of the Vercel knowledge base comparison family (vercel-vs-netlify, vercel-vs-fastly, vercel-waf-vs-cloudflare-waf). Read the existing pieces in that family as the canonical reference. The audience is technically literate, time-constrained, and reading the piece because they are choosing. The piece is not an essay, not a feature roundup, not a marketing page. It is a guide that helps a reader make a decision and explains the architectural reasoning behind that decision.
2. The neutrality principle
The piece is commissioned by `${primary_subject_vendor}` (defined in
`piece_brief.md`). Their framing is the editorial home — when the products
are roughly equivalent on a dimension, use the commissioning vendor's terms.
Where `${other_subject_vendor}`'s framing is more accurate, more honest, or
where their product is better-suited to a use case, **say so directly**.
Fair accounting is a structural requirement, not just a rhetorical one.
Every comparison piece must include a section where the non-commissioning
product is given dedicated space to go deeper. The structure of the piece
does the work of fairness so the prose can stay confidently in the
commissioning vendor's voice.
A piece that fails this test reads as marketing. A piece that passes it
reads as authoritative — confident about the commissioning vendor while
giving readers the information they need to make their own call.3. The structural spine
Every comparison piece has the same load-bearing structure:
- **Lead (3–4 short paragraphs).** Define what each product is in concrete
architectural terms. Name the architectural fork — the choice each
company made that explains everything else. Close with what the guide
will do for the reader.
- **How [Product A] and [Product B] compare.** Multiple subsections, each
ending in a comparison table. Tables are load-bearing, not decoration.
Use them when a table communicates more cleanly than prose.
- **Where each goes deeper.** Either a symmetric pair of sections
("Where A goes deeper" / "Where B goes deeper") or an asymmetric
variant ("[Vendor A] platform deep dive" + "[Vendor B]-specific
capabilities"). The piece brief specifies which.
- **What they cost.** Comparison table covering pricing model, included
tiers, and unusual pricing choices. Reference pricing philosophy; do
not model specific bills.
- **When to choose [A] or [B].** Workload → product → why decision
table. Specific rows by workload type. This section is required.
- **Closing paragraph and CTA.** Short summary of the practical bottom
line, then a "Get started" line for the commissioning vendor.4. Voice register
Match the cadence and texture of the Vercel KB comparison family. - **Confident and specific.** Declarative claims when evidence supports them. "Vercel runs as an embedded firewall in the same request path as your deployment." Not "Vercel is a leading firewall solution." - **Concrete numbers.** Use specifics — "~300ms," "126+ PoPs," "20+ providers," "1 MiB per step return." Vague claims weaken the piece. - **Short paragraphs.** 3–5 sentences in body sections. Long paragraphs signal essay-thinking, not guide-thinking. - **No marketing adjectives.** Ban list: seamless, powerful, robust, cutting-edge, best-in-class, industry-leading, world-class.
5. Source handling
Every source has a `role` (declared in `sources.json`) that determines how it should be read. The mapping from `role` to handling rules lives in `roles.json`, not in this file.
6. Treatment of disagreement and asymmetry
When sources disagree on a substantive point, **surface the disagreement rather than resolve it**. Readers are sophisticated; trust them with the debate.
7. Quoting and copyright
- **Default to paraphrase.** Direct quotes are reserved for cases where the exact wording matters. - **Maximum one direct quote per source**, fewer than 15 words.
8. Anti-patterns
Concrete things the system should never produce: - **False balance.** "Both products have tradeoffs." - **Universal winner.** "Product X is better." - **Marketing copy with attribution.** - **Feature inventory disguised as comparison.** - **Hedging that dissolves real differences.**
9. The reader test
A developer reading the finished piece should come away able to: 1. Make a decision about which product fits their workload. 2. Explain the architectural difference between the products. 3. Articulate at least one thing the non-commissioning product does better than the commissioning one.
10. Write to the question the reader is asking
Every body section answers one question a developer would ask while evaluating the product.
piece_brief.mdPer-pieceEditorial spec for this specific comparison. Defines subject, thesis, audience, voice anchor, structure, scope, and anti-patterns.
# Piece Brief: Vercel Workflows vs Cloudflare Workflows > v2.0 — Editorial spec for the comparison agent and draft agent. > Read together with `shared_rules.md` and `roles.json`.
Subject
Comparison of Vercel Workflows and Cloudflare Workflows as durable execution platforms for production use.
Thesis
Every multi-step backend process eventually outgrows stateless functions. The question is what runtime to anchor it to. Vercel Workflows and Cloudflare Workflows sit on opposite sides of that choice.
Audience
Engineers evaluating durable execution platforms for production AI agents, long-running backends, or multi-step business processes. Comfortable reading engineering blogs and technical documentation. Skeptical of marketing language.
Voice anchor
Genre: head_to_head_comparison Subject domain: developer_infrastructure Register: technical_explanatory_vercel_leaning
Commissioning context
Written for Vercel. Vercel's framing is the editorial home — when the products are equivalent, Vercel's terms are the default. Where Cloudflare's framing is more accurate or where Cloudflare's product is better-suited to a use case, say so directly.
The angle
A practical comparison that names the architectural fork in the lead, walks through the dimensions where the two products meaningfully differ, identifies where each goes deeper, addresses the cost picture, and closes with workload-type recommendations.
Structure
**1. Lead (3–4 short paragraphs).** Open with the architectural fork. **2. How Vercel Workflows and Cloudflare Workflows compare.** Three to four subsections, each ending in a comparison table. **3. Where Vercel Workflows goes deeper.** 4–5 capabilities specific to or stronger on Vercel. **4. Where Cloudflare Workflows goes deeper.** 3–4 capabilities specific to or stronger on Cloudflare. **5. What they cost.** Pricing comparison table and prose on pricing philosophy. **6. When to choose Vercel or Cloudflare.** Decision table with specific workload rows. **7. Closing paragraph and CTA.**
Anti-patterns specific to this piece
- Don't write a philosophical essay - Don't bury the architectural fork - Don't false-balance into mush - Don't omit the "where each goes deeper" sections - Don't try to crown a universal winner - Don't skip the cost section - Don't try to compare to Temporal in depth