
Bulk Product Descriptions
Generate consistent, on-brand product descriptions in bulk from a list of products and their attributes: it first locks the brand voice, the field schema (title, short blurb, long description, bullet features, SEO meta), and a worked exemplar, then drafts every product to that exact template so the whole catalog reads as one voice. Covers ecommerce product copy, catalog descriptions, Shopify/Amazon listings, bulk SKU copywriting, and product detail pages. Locking the voice and one exemplar before the batch is the key move: it stops a small model from drifting in tone and structure across items, which is the classic failure of bulk copy.
Steps
Entry step: voice-scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Voice & schema scopeplannerentry
lock brand voice, the per-product field schema, and one exemplar
Show working prompt
1) Define the brand voice in 3-5 adjectives plus 2 do's and 2 don'ts (e.g. 'warm, expert, concise; do use sensory detail; don't use hype superlatives'). 2) Define the per-product field schema and length limits: title (<=60 chars), short blurb (1 sentence), long description (40-80 words), 3-5 feature bullets, and an SEO meta description (<=155 chars). 3) Identify the product input (a list, CSV, or attributes) and confirm every product has the data the schema needs. 4) Write ONE fully worked exemplar for a sample product, filling every field, as the template the batch must match. Write an acceptance-criteria checklist (e.g. 'every product has all schema fields'; 'all fields within length limits'; 'consistent voice across items'; 'no invented specs not in the input'; 'titles are unique and descriptive'). Use write_task_note for the voice + schema + exemplar + checklist, and write the same to the produces path. No batch yet.
- Draft all descriptionscopywriter
write every product to the locked template and voice
Show working prompt
Produce a description for EVERY product in the input, each matching the exemplar's schema and the locked voice. 1) For each product, fill every field: title, short blurb, long description, feature bullets, SEO meta. 2) Use only attributes present in the input — never invent specs, materials, or measurements. 3) Keep the voice identical across all items; vary the wording, not the tone. 4) Respect every length limit. 5) Output a single valid JSON array, one object per product, with consistent keys matching the schema (e.g. {"sku", "title", "shortBlurb", "longDescription", "bullets", "seoMeta"}). Do not skip any product. Save to the produces path and note the product count covered. - Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Parse product-descriptions.json (must be valid JSON) and grade against the checklist. Check EACH and write PASS/FAIL: (a) every product from the input has an object with all schema fields populated; (b) all fields are within their length limits; (c) the voice and structure are consistent across items (spot-check 3-4); (d) no invented specs absent from the input; (e) titles are unique and descriptive. A batch that drifts in tone, skips products, or fabricates attributes FAILS — loop back to draft and name the offending SKUs. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "draft" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- write product descriptions
- bulk product copy
- ecommerce listings
- shopify descriptions
- catalog copy
Source
View this craftbook on GitHub · MIT license