Listing criteria — agentic workflows

What earns a workflow a card

A picture of an agentic workflow is a good place to start adapting one to your own needs. So a listing here has one job — show you the shape, honestly. Every word on a card is computed from the artifact. None of it is taken from what the file, its repository, or its published index says about itself.

Sibling page: plugin and skill listing criteria. Different artifacts, different checks, same floor.

A listing is a recipe, not a file

609 agentic workflows survive the checks below. They do not make 609 cards. They make 299 — because 50.9% of them are the same idea drawn differently.

A recipe is the tuple of things that determine what a workflow is: its kind, its model, its memory, its tool set, its vector store, its embeddings, its chains, and its trigger. Two workflows with the same recipe are two people solving the same problem with the same parts. Sixteen of them, in one case — laid out sixteen different ways, under sixteen different names, 268 of the 609 carrying no name at all.

Not one file in this corpus is a byte-for-byte copy of another, and canonical hashing removes only 3.6%. The 50.9% collapse appears at the recipe layer and nowhere else. These are duplicates of an idea, not of an artifact. No file hash will ever see them.

The four checks

Check 1 — Parse and identify. Read the file, identify which tool wrote it, and record the adapter and version that read it. A file no adapter claims is recorded as unread rather than guessed at. Nothing is executed at any point; the artifact is read, never run.

Check 2 — Wiring integrity. Resolve both endpoints of every declared connection against the node table and record how many resolve. This is the check that decides whether a listing is possible, and it is the one nothing else in this ecosystem performs.

Check 3 — Anatomy. Classify the resolved graph by what it actually contains: model, memory, tool set, vector store, embeddings, output parser, and the ordinary services it touches. The kind — retrieval agent, tool agent, chat agent, chain — falls out of that classification rather than being asserted.

Check 4 — Recipe assignment. Hash the artifact four ways — raw bytes, canonical form, wiring, recipe — and place it in the directory relative to what is already listed. New recipe, new card. Everything else attaches to an existing one.

Check 2 is the one that matters, and it is why this page exists. The corpus these listings come from parses perfectly — every file is valid JSON with a valid node array. At its current published HEAD, 27,525 of 27,544 connection endpoints name nodes that are not in the file, leaving 4 of 2,061 workflows with a graph anyone could read. Every tool that has looked at that repository — its own search API, its published index, its README — reports it as healthy, because none of them resolves an edge.

What gets in

Each candidate runs the ladder below, cheapest test first, and stops at the first hit.

Raw hash seen before — excluded. An exact copy.
Canonical hash seen before — excluded. The same workflow re-exported from another instance: node ids, canvas coordinates, webhook ids and timestamps stripped, keys sorted.
Graph does not resolve — not-assessed. Never listed, and the reason is recorded rather than the file being quietly dropped.
Fewer than 3 resolved edges — held back as a stub. A card has to show a shape. 3 of the 612 agentic workflows found sit below this floor.
Wiring hash seen before — attaches to that card as another wiring of the same recipe.
Recipe seen before — attaches to that card as another file.
Otherwise — admitted, with its own card.

The two hash steps do almost nothing inside a single repository that has already been deduplicated upstream — 2.7% and 3.6% here. Across mirrors they do the heavy lifting, because a canonical hash survives a reformat between forks where a raw file hash does not.

Verdicts

VerdictWhat it means
LISTEDThe graph resolves, the anatomy classifies, and the recipe is new to the directory. It gets a card, and the card names the file it was derived from.
VARIANTThe graph resolves but the recipe already exists. It attaches to that card and contributes to its file count, its wiring count, and its variance summary. It is not discarded, because what differs between members of a recipe is frequently the most useful thing about them.
NOT-ASSESSEDThe file parses but the graph does not resolve — connections absent, or endpoints that name nodes the file does not contain. Never listed, never counted as a pass, never silently dropped. The reason is recorded.
EXCLUDEDA byte-identical or canonically identical copy of something already read. Discarded before any further check runs.

Variants attach; they are not thrown away. If fifteen members of a recipe handle a failure branch and one does not, collapsing to a single representative and discarding the rest erases the only interesting thing in the group. The card keeps the summary of what differs — how many distinct wirings, what range of node counts, which services appear across members — and drops only the duplicate payloads.

What a card is allowed to say

Everything above the rule on a card is computed from the graph: the pattern string, the kind, the model, the memory, the tool set, the store, the node counts. Everything below it is quoted, attributed, and marked unverified.

Derived. Node types and resolved edges, read from the artifact.
Claimed. The name the file gives itself, shown under a rule and labelled upstream name — unverified. It is displayed because it is sometimes informative and never because it is trusted.
Never used. Repository README text, a published index’s description, a badge, a star count, or a category assigned by anything other than the artifact.
That last line is not caution for its own sake. On this corpus the published index describes workflows as orchestrating models that are not present in the file, and 268 of 609 agentic workflows self-report no name at all. An index, a README and a file’s own name field are three claims about an artifact. This directory reads the artifact.

What is not assessed

A card tells you the shape of a workflow. It does not tell you whether the workflow is any good, and nothing here should be read as saying so.

Whether it runs. Nothing is imported, installed, or executed. A resolvable graph is a readable graph, not a working one.
Whether the output is correct or useful. No workflow here has been run against real input and no result has been judged.
Credential safety. Credentials live outside these files by design, so their absence is expected and proves nothing about how the original was operated.
What the agent’s tools can reach. 45 of the 609 carry an arbitrary HTTP tool and 9 carry a code tool — network and execution surface handed to a model rather than to a developer. Those are recorded and displayed. They are not yet audited.

The behavioural gate that would close the last two has not been built. Until it is, the fields it would fill stay absent rather than being filled with a default that reads like a finding.

What you can take away

Each card offers a canonical JSON description of the workflow — its steps, its edges, and a provenance block naming the file it came from, the executable-versus-annotation split, and the unverified name claim — alongside a prompt written to hand that shape to a coding agent.

The canonical form is deliberately not an n8n file. n8n is a good notation for an agentic workflow and a poor runtime for one, and the point of a starter is the shape, not the vendor. Converters back out to specific tools are intended and do not exist yet. When one ships it will be named here, and until then this sentence is the whole status.

Where the listings come from

Everything currently listed is read from Zie619/n8n-workflows at commit c4885eee (2025-08-05) — last commit where the connection graph resolves — and cross-checked against an uncorrupted public mirror, Danitilahun/n8n-workflow-templates. The comparison with that repository’s current HEAD is the reason the wiring check exists at all.

at c4885eeeat HEAD (2026-06-24)
workflows with a readable graph2,000 of 2,0554 of 2,061
connection endpoints that resolve21,488 of 21,55719 of 27,544
LLM and agent nodes present3,9571

Two further properties of this corpus are worth stating because they bear on what any listing built from it can honestly claim. 53 files ship a node array and no connections object whatsoever — those are not workflows and are recorded as not-assessed. And 25.2% of all nodes in the corpus are sticky notes and no-ops, which is why node counts on a card separate executable nodes from annotation rather than reporting one number that flatters the artifact.

The numbers, and where they come from

LevelKeyDistinctCollapsed
filesha256 of bytes1,9992.7%
canonicalstrip id, position, webhookId, credentials, timestamps; sort keys1,9813.6%
wiringnode-type multiset + edge set, annotation nodes removed1,69415.3% of 2,000
KindWorkflowsRecipes
chain20583
chat agent17482
tool agent14475
RAG agent8659
Every figure on this page is read at build time from data/workflows/corpus.ts, which is regenerated from the artifacts by scripts/gen-workflow-corpus.py. None of them is typed into this file by hand. A page whose entire argument is “we publish what the artifacts show” should read the artifacts, and the counts on it should go stale only when the corpus does.

Corpus generated 2026-08-21. A number here that a re-read of the artifacts does not reproduce is a defect — report it and it gets corrected in public, with the correction kept.