plan-clipart-pack
activev2026.08.01.2Plan a complete clip-art THEME PACK the way successful marketplace sellers do: theme/market research, a committed style recipe (with a character bible when the theme sells better around one recurring character), a fully-compiled asset manifest with deliberate element-type variety, and the full listing kit (count-bearing titles, answer-first summary, SEO copy, 13 tags, FAQ, plain-English license, per-asset alt text, cover concept). Emits objective packFacts — the consuming storefront maps facts to tier/price. Items feed a Generation Order over generate-clip-art-asset-ref (character packs) or generate-clip-art-asset-v2.
This page renders the template’s published registry entry — the contract itself, not a description of it. Immutable versions; sealed properties exist but are not public.
What you provide — intake contract
How it runs — step topology
Ships a durable stage artifact: pack-theme-research
Ships a durable stage artifact: pack-style-recipe
Expands into parallel-safe calls of at most 40 items each (intake.count ÷ 40, rounded up). An 80-item pack plans as 2 chunks over disjoint slices; results concatenate in order on items.
Ships a durable stage artifact: pack-manifest
Model roles: packResearcher styleDirector planner copywriter bindings budgetPolicy
What you get — artifact
Version lineage
Full contract (as served)
GET /v1/catalog/workflows/plan-clipart-pack
{
"_comment": "SYNCED SNAPSHOT — do not hand-edit. Regenerate with: node scripts/sync-workflow-catalog.mjs (pulls api.esy.com GET /v1/catalog/workflows/{id}).",
"generatedAt": "2026-08-13T02:30:34.277473Z",
"id": "plan-clipart-pack",
"name": "Plan Clip Art Theme Pack",
"description": "Plan a complete clip-art THEME PACK the way successful marketplace sellers do: theme/market research, a committed style recipe (with a character bible when the theme sells better around one recurring character), a fully-compiled asset manifest with deliberate element-type variety, and the full listing kit (count-bearing titles, answer-first summary, SEO copy, 13 tags, FAQ, plain-English license, per-asset alt text, cover concept). Emits objective packFacts — the consuming storefront maps facts to tier/price. Items feed a Generation Order over generate-clip-art-asset-ref (character packs) or generate-clip-art-asset-v2.",
"shortDescription": "Research + plan a complete clip-art theme pack with listing kit.",
"artifactClass": "knowledge",
"outputType": "knowledge",
"status": "active",
"supersededById": null,
"version": "2026.08.01.2",
"stages": [
{
"name": "Research",
"description": "How this theme sells as a bundle; element mix; character decision.",
"stepCount": 1
},
{
"name": "Style",
"description": "Committed style recipe + character bible.",
"stepCount": 1
},
{
"name": "Manifest",
"description": "Fully-compiled asset prompts with element-type variety.",
"stepCount": 1
},
{
"name": "Listing",
"description": "Listing kit + objective packFacts + cover concept.",
"stepCount": 1
}
],
"intakeSchema": {
"fields": [
{
"name": "theme",
"type": "string",
"required": false,
"default": "auto",
"description": "Pack theme (e.g. 'vintage fox detective'); 'auto' = the planner chooses a fresh theme for the audience"
},
{
"name": "count",
"type": "number",
"required": false,
"description": "Assets to plan",
"default": 40
},
{
"name": "audience",
"type": "string",
"required": false,
"description": "Who this pack is for (e.g. teachers and classrooms)"
},
{
"name": "packGoal",
"type": "string",
"required": false,
"description": "What buyers make with it (e.g. classroom decor)"
},
{
"name": "style",
"type": "enum",
"required": false,
"description": "clip-art style",
"default": "flat",
"options": [
"flat",
"minimal",
"outline",
"black-and-white",
"cartoon",
"mascot",
"sticker",
"emoji",
"vintage",
"watercolor",
"storybook",
"isometric",
"clay",
"chibi",
"pixel",
"kawaii",
"3d",
"doodle"
]
},
{
"name": "styleNotes",
"type": "string",
"required": false,
"description": "Freeform style direction layered on the base style"
},
{
"name": "avoidList",
"type": "string",
"required": false,
"description": "Subjects/motifs to avoid"
},
{
"name": "recentCatalog",
"type": "string",
"required": false,
"description": "JSON snapshot of recent catalog titles (novelty context)"
},
{
"name": "brandNotes",
"type": "string",
"required": false,
"description": "Brand voice/constraints"
},
{
"name": "wantsCharacter",
"type": "enum",
"required": false,
"description": "Recurring character?",
"default": "auto",
"options": [
"auto",
"yes",
"no"
]
},
{
"name": "demandBrief",
"type": "artifactReference",
"required": false,
"artifactClass": "knowledge",
"description": "An assigned pack brief (demand-brief artifact): the query this pack answers and what it must contain"
},
{
"name": "targetQuery",
"type": "string",
"required": false,
"description": "The search query this pack must answer (from the assigned brief)"
},
{
"name": "mustInclude",
"type": "string",
"required": false,
"description": "Composition constraints the manifest must satisfy to genuinely answer the query"
}
]
},
"runtimeSteps": [
{
"id": "step-1",
"name": "Theme & market research",
"kind": "llm",
"capability": "text",
"role": "packResearcher",
"emitsArtifact": {
"artifactType": "pack-theme-research",
"title": "Pack Theme Research — {intake.theme}"
},
"jsonSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"themeAngle": {
"type": "string",
"description": "The specific angle vs the generic version of this theme"
},
"buyerUseCases": {
"type": "array",
"items": {
"type": "string"
}
},
"subMotifs": {
"type": "array",
"items": {
"type": "string"
}
},
"elementMix": {
"type": "object",
"additionalProperties": false,
"properties": {
"subjects": {
"type": "integer"
},
"poses": {
"type": "integer"
},
"props": {
"type": "integer"
},
"borders": {
"type": "integer"
},
"patterns": {
"type": "integer"
},
"scenes": {
"type": "integer"
}
},
"required": [
"subjects",
"poses",
"props",
"borders",
"patterns",
"scenes"
]
},
"wantsCharacter": {
"type": "boolean",
"description": "Does this pack sell better around one recurring character?"
},
"differentiation": {
"type": "string"
},
"titleAngles": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"themeAngle",
"buyerUseCases",
"subMotifs",
"elementMix",
"wantsCharacter",
"differentiation",
"titleAngles"
]
},
"system": "redacted",
"promptTemplate": "redacted",
"maxTokens": "redacted"
},
{
"id": "step-2",
"name": "Style recipe & character bible",
"kind": "llm",
"capability": "text",
"role": "styleDirector",
"emitsArtifact": {
"artifactType": "pack-style-recipe",
"title": "Style Recipe — {intake.theme}"
},
"jsonSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"styleName": {
"type": "string"
},
"styleFragment": {
"type": "string",
"description": "The EXACT sentence fragment appended to every asset prompt"
},
"palette": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"hex": {
"type": "string"
},
"usage": {
"type": "string"
}
},
"required": [
"name",
"hex",
"usage"
]
}
},
"linework": {
"type": "string"
},
"shading": {
"type": "string"
},
"antiCliches": {
"type": "array",
"items": {
"type": "string"
}
},
"characterSpec": {
"type": "object",
"additionalProperties": false,
"properties": {
"present": {
"type": "boolean"
},
"name": {
"type": "string"
},
"kind": {
"type": "string",
"description": "Species / creature / person kind"
},
"build": {
"type": "string"
},
"faceDetails": {
"type": "string"
},
"hair": {
"type": "string",
"description": "Hair / fur / plumage"
},
"wardrobe": {
"type": "string"
},
"signatureProps": {
"type": "array",
"items": {
"type": "string"
}
},
"expressionStyle": {
"type": "string"
},
"movementStyle": {
"type": "string"
},
"doNotChange": {
"type": "array",
"items": {
"type": "string"
}
},
"allowedChanges": {
"type": "array",
"items": {
"type": "string"
}
},
"compactBible": {
"type": "string",
"description": "Short paragraph front-loaded into every asset prompt"
}
},
"required": [
"present",
"name",
"kind",
"build",
"faceDetails",
"hair",
"wardrobe",
"signatureProps",
"expressionStyle",
"movementStyle",
"doNotChange",
"allowedChanges",
"compactBible"
]
}
},
"required": [
"styleName",
"styleFragment",
"palette",
"linework",
"shading",
"antiCliches",
"characterSpec"
]
},
"system": "redacted",
"promptTemplate": "redacted",
"maxTokens": "redacted"
},
{
"id": "step-3",
"name": "Asset manifest",
"kind": "llm",
"capability": "text",
"role": "planner",
"repeat": {
"countPath": "intake.count",
"maxPerChunk": 40,
"mergeKey": "items",
"sliceListPath": "step-1.json.subMotifs"
},
"emitsArtifact": {
"artifactType": "pack-manifest",
"title": "Asset Manifest — {intake.theme}"
},
"jsonSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string"
},
"prompt": {
"type": "string",
"description": "FULLY compiled generation prompt"
},
"elementType": {
"type": "string",
"enum": [
"subject",
"pose",
"prop",
"border",
"corner",
"pattern",
"scene"
]
},
"category": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"altText": {
"type": "string"
},
"textBearing": {
"type": "boolean",
"description": "True when the asset is designed to contain legible text"
},
"expectedText": {
"type": "string",
"description": "The EXACT text the asset must carry; empty string unless textPolicy is 'exact'"
},
"textPolicy": {
"type": "string",
"enum": [
"none",
"exact",
"freeform"
],
"description": "none = text forbidden (prompt carries a hard no-text clause); exact = expectedText verbatim; freeform = ambient text allowed, judged on legibility/spelling only"
},
"quality": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "Render tier: low only for isolated subject/pose/prop items; medium+ for patterns, scenes, borders, and any text-bearing item"
},
"matteColor": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Chroma-key color guaranteed absent from the subject's palette: '#FF00FF' default; '#00FF00' when the palette is pink/red-heavy"
}
},
"required": [
"title",
"prompt",
"elementType",
"category",
"altText",
"textBearing",
"expectedText",
"textPolicy",
"quality",
"matteColor"
]
}
},
"rationale": {
"type": "string"
}
},
"required": [
"items",
"rationale"
]
},
"system": "redacted",
"promptTemplate": "redacted",
"maxTokens": "redacted"
},
{
"id": "step-4",
"name": "Listing kit",
"kind": "llm",
"capability": "text",
"role": "copywriter",
"jsonSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"listing": {
"type": "object",
"additionalProperties": false,
"properties": {
"titleOptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Count-bearing titles (element count stated)"
},
"answerFirstSummary": {
"type": "string",
"description": "40-60 word self-contained block (AEO/PDP)"
},
"shortDescription": {
"type": "string"
},
"longDescription": {
"type": "string"
},
"whatsIncluded": {
"type": "string"
},
"useCases": {
"type": "string"
},
"faq": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"q": {
"type": "string"
},
"a": {
"type": "string"
}
},
"required": [
"q",
"a"
]
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Exactly 13 marketplace tags"
},
"licenseSummary": {
"type": "string"
}
},
"required": [
"titleOptions",
"answerFirstSummary",
"shortDescription",
"longDescription",
"whatsIncluded",
"useCases",
"faq",
"tags",
"licenseSummary"
]
},
"packFacts": {
"type": "object",
"additionalProperties": false,
"properties": {
"count": {
"type": "integer"
},
"elementTypeMix": {
"type": "object",
"additionalProperties": false,
"properties": {
"subjects": {
"type": "integer"
},
"poses": {
"type": "integer"
},
"props": {
"type": "integer"
},
"borders": {
"type": "integer"
},
"patterns": {
"type": "integer"
},
"scenes": {
"type": "integer"
}
},
"required": [
"subjects",
"poses",
"props",
"borders",
"patterns",
"scenes"
]
},
"compositionDepth": {
"type": "boolean",
"description": "True when scenes/borders/patterns exist, not only isolated objects"
},
"textBearing": {
"type": "boolean"
}
},
"required": [
"count",
"elementTypeMix",
"compositionDepth",
"textBearing"
]
},
"coverConcept": {
"type": "object",
"additionalProperties": false,
"properties": {
"instruction": {
"type": "string",
"description": "Full image-edit instruction for generate-pack-cover"
},
"heroItemTitles": {
"type": "array",
"items": {
"type": "string"
}
},
"layoutNotes": {
"type": "string"
}
},
"required": [
"instruction",
"heroItemTitles",
"layoutNotes"
]
},
"rationale": {
"type": "string"
}
},
"required": [
"listing",
"packFacts",
"coverConcept",
"rationale"
]
},
"system": "redacted",
"promptTemplate": "redacted",
"maxTokens": "redacted"
}
],
"gates": [],
"artifactSchema": {
"artifactClass": "knowledge",
"artifactType": "clipart-pack-plan",
"files": [],
"metadata": {
"items": "array",
"listing": "object",
"packFacts": "object",
"coverConcept": "object",
"rationale": "string"
}
},
"providers": {
"packResearcher": "redacted",
"styleDirector": "redacted",
"planner": "redacted",
"copywriter": "redacted"
},
"budgetPolicy": "redacted",
"versions": [
{
"version": "2026.07.14",
"revision": 1,
"contentHash": "sha256:208d8ec305206e79c481103e649fc453de46badb7fd338fef0508e4739b84d54",
"createdAt": "2026-07-15T15:18:55.617086Z"
},
{
"version": "2026.07.18",
"revision": 2,
"contentHash": "sha256:813cc731367190eaa82c14e0643e9c157411ddd0306a626d1c36d7eec51ad80a",
"createdAt": "2026-07-18T19:19:13.022052Z"
},
{
"version": "2026.07.18",
"revision": 7,
"contentHash": "sha256:bbbf0595fba744e2f10c2b822defeaa5792c36356e2b0275e633ff8de1fe1e5c",
"createdAt": "2026-07-19T02:41:47.952945Z"
},
{
"version": "2026.07.18",
"revision": 9,
"contentHash": "sha256:a08c6689cb98d5778bbbbcf3b5b6073f931768c5801eccfba65771ecbe76f8a3",
"createdAt": "2026-07-20T21:59:51.269832Z"
},
{
"version": "2026.07.18",
"revision": 10,
"contentHash": "sha256:79d3f97d3f38f1f95528e9d71574f48042478bfcc60b93cf74fe915bc98f1c93",
"createdAt": "2026-07-21T13:17:14.060739Z"
},
{
"version": "2026.07.18",
"revision": 12,
"contentHash": "sha256:34812406734e93ef97c33c5e8631f13d25db5befc339c00a08f0763d03c28742",
"createdAt": "2026-07-21T14:12:09.735480Z"
},
{
"version": "2026.07.29",
"revision": 17,
"contentHash": "sha256:713890eebc7f6821f5adcb00994dd932b24226b2915078b1159823971b10753a",
"createdAt": "2026-07-29T21:09:27.445391Z"
},
{
"version": "2026.07.29.1",
"revision": 19,
"contentHash": "sha256:37dbec98ee7754d0da40812c282d8b956bcd1ef3805c4b88a899b049ae549b5b",
"createdAt": "2026-07-29T22:54:15.810792Z"
},
{
"version": "2026.07.29.2",
"revision": 21,
"contentHash": "sha256:8ef2bbfc147c8648d881be2b56a62f695b656b1515e743b161b7b668245a495d",
"createdAt": "2026-07-30T00:05:52.988725Z"
},
{
"version": "2026.07.30",
"revision": 24,
"contentHash": "sha256:13acc8509f8267a126522551fb4e8b76d14dad5d8c0f334d5695683cd61a8dae",
"createdAt": "2026-07-30T21:21:44.380719Z"
},
{
"version": "2026.07.30",
"revision": 26,
"contentHash": "sha256:5ca776f5e7872d0bc1456324147b9d22b9c0b9eeb786128780047d638ae45bd3",
"createdAt": "2026-07-31T21:21:22.254929Z"
},
{
"version": "2026.07.31",
"revision": 28,
"contentHash": "sha256:afdea9cfd1102fcf2613d74d026c3d97d9af5b99c8396681c9ec88ca5160dbab",
"createdAt": "2026-08-01T00:18:00.832443Z"
},
{
"version": "2026.07.31.2",
"revision": 29,
"contentHash": "sha256:11d1b000a24f4f779fa17389ff9d2cad2d98b88d5bb185d52fcb0d8d123c83ad",
"createdAt": "2026-08-01T02:37:28.761723Z"
},
{
"version": "2026.08.01",
"revision": 33,
"contentHash": "sha256:0117a89f368eda6fcd61700d0d89d5da02a166789e1ea25c60e332792dc4b89f",
"createdAt": "2026-08-01T08:56:51.693390Z"
},
{
"version": "2026.08.01.2",
"revision": 35,
"contentHash": "sha256:a481b0413cfae1be86b38eb0ff8fd474222a699bd3d4a3c9d42ea899f762f0d5",
"createdAt": "2026-08-01T21:41:25.670613Z"
},
{
"version": "2026.08.01.2",
"revision": 40,
"contentHash": "sha256:aa96d021e5e0d64bb4d4fad450b3a0f2a1281a4771a266a485a466b935414406",
"createdAt": "2026-08-06T22:08:48.915644Z"
}
],
"updatedAt": "2026-08-06T22:47:28.354450Z"
}Snapshot generated 2026-08-13 from the live registry.