feedback/topic_brief__small-teams-ship-faster-2026-08-22.txt | text | 148 B | 2026-08-29 18:49 |
research/archive/2026-08-27/digest-2026-08-27.md | md | 6.5 KB | 2026-08-27 02:34 |
research/archive/2026-08-27/health-check.md | md | 1.3 KB | 2026-08-27 02:11 |
research/digest-2026-08-25.md | md | 6.4 KB | 2026-08-25 02:32 |
drafts/spacex-achievements-post/v1.md | md | 3.7 KB | 2026-08-24 15:29 |
leads/2026-W36/raw.json | json | 56.3 KB | 2026-08-24 03:36 |
handoffs/qualified-leads-reh-53.json | json | 8.5 KB | 2026-08-24 03:32 |
research/sources.md | md | 3.9 KB | 2026-08-24 02:32 |
research/digest-2026-08-24.md | md | 7.7 KB | 2026-08-24 02:31 |
research/digest-2026-08-24.json | json | 7.8 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/item-49409092.json | json | 6.0 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/item-49402232.json | json | 86.4 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/item-49404380.json | json | 20.6 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/item-49363710.json | json | 23.4 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/item-49331423.json | json | 84.4 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/google-trends/us-daily.rss | binary | 20.2 KB | 2026-08-24 02:31 |
research/archive/2026-08-24/hackernews/front-page.json | json | 35.0 KB | 2026-08-24 02:31 |
research/digest-2026-08-22.json | json | 4.9 KB | 2026-08-22 19:36 |
research/digest-2026-08-22.md | md | 6.2 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/google-trends/us-daily.rss | binary | 20.4 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/elevenlabs.json | json | 28.4 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/rust-glancer.json | json | 52.6 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/munder-difflin.json | json | 47.6 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/mcp-roadmap.json | json | 49.1 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/claude-code-effort.json | json | 38.9 KB | 2026-08-22 19:36 |
research/archive/2026-08-22/hackernews/front-page.json | json | 39.4 KB | 2026-08-22 19:36 |
handoffs/qualified-leads-reh-47.json | json | 7.2 KB | 2026-08-22 19:27 |
leads/2026-W35/e2e-qualified.json | json | 7.2 KB | 2026-08-22 19:27 |
handoffs/qa-verdict-REH-48.json | json | 4.2 KB | 2026-08-22 19:26 |
handoffs/copy-draft-e2e-bad.json | json | 670 B | 2026-08-22 19:26 |
leads/2026-W35/e2e-raw.json | json | 4.5 KB | 2026-08-22 19:20 |
assets/e2e-2026-08-22/cover.jpg | image | 45.6 KB | 2026-08-22 19:20 |
handoffs/qa-verdict-REH-42.json | json | 1.9 KB | 2026-08-22 17:54 |
handoffs/STATUS.md | md | 3.4 KB | 2026-08-22 17:51 |
handoffs/copy-draft-smt-b7th-engineer.json | json | 3.0 KB | 2026-08-22 17:49 |
handoffs/angle-backlog-small-teams-ship-2026-08-22.json | json | 5.7 KB | 2026-08-22 17:48 |
handoffs/topic-brief-small-teams-ship-faster-2026-08-22.json | json | 6.0 KB | 2026-08-22 17:42 |
QA Critique Gate verdict on copy-draft-e2e-bad.json: reject (blocking severity).
Full verdict file:
handoffs/qa-verdict-REH-48.json.Scores (1-5)
Top findings (all blocking unless noted)
basedOnAngleId="none",basedOnBriefId="none"— no upstream research chain. Restart from a topic_brief.copy-draft-smt-b7th-engineer.json.Decision rule
maxRevisionRounds=2per rubric but the producer needs a brief before any revision round is meaningful.Type: qa_verdict Issue: REH-48 Verdict ID: qa-verdict-reh-48-2026-08-22
Subject: copy_draft
copy-draft-e2e-bad-2026-08-22(producer: content-lead)Decision: REJECT Severity: blocking Rubric: cmo-qa-gate-v1
Scores
Findings (6)
1. blocking · subjectRef.basedOnAngleId + basedOnBriefId
Draft declares basedOnAngleId="none" and basedOnBriefId="none". There is no upstream topic_brief and no angle_backlog entry anchoring this post. Without a brief there are no sources to cite, no audience pains to address, and no hook thesis to defend. The draft is free-floating marketing copy, not a content-lead deliverable.
Fix: Restart from a topic_brief (see topic-brief-small-teams-ship-faster-2026-08-22.json as a worked example). Run the Idea Generator to produce an angle, then redraft against that angle. Do not post copy with no upstream research chain.
2. blocking · body (entire)
Body is 100% hype filler and trips every banned-word rule in the rehanced voice guide: 'game-changing', 'unlock', 'delve', 'revolutionary', 'seamless, cutting-edge', 'elevate', plus 'thrilled to announce' and a leading rocket emoji. Per cmo-pipeline/cmo-qa-gate, these words are an automatic deduction; here they are the entire post. Founder-voice requires direct, specific, claim-bearing prose — there is none.
Fix: Rewrite the body in founder-voice: one concrete observation, one piece of evidence (a source, a number, a story), one implication. Strip every banned word. Aim for ~80-150 words. The reference draft copy-draft-smt-b7th-engineer.json is the target register.
3. blocking · claims[] (empty) + compliance.substantiation
claims array is empty. The body asserts 'our revolutionary new platform' and 'transform the way you work' — both are material product/performance claims with zero substantiation. Per the compliance axis every factual claim must trace to a brief source; there are no claims records AND no brief, so the post is unsubstantiated by definition.
Fix: Either (a) ground every factual sentence in a cited source from the brief and populate claims[] with claim+sourceUrl+sourceLabel records, or (b) cut the claims. 'Revolutionary' is itself an unsubstantiated superlative and cannot survive QA.
4. blocking · title = "placeholder"
Title field is literally the string "placeholder". A copy_draft cannot ship without a real hook; this signals the draft was never finished.
Fix: Write a hook that states a stake, not a topic. Pattern from the passing reference: 'Adding a 7th engineer to your 6-person team will probably make you ship slower.' Specific, falsifiable, draws the reader in.
5. blocking · cta ('Don’t miss out — learn more today!')
CTA is a generic engagement-bait closer with no specific next step and no target action. LinkedIn short_post distribution rewards a stance or a concrete ask; 'learn more today' is neither.
Fix: Replace with a stance or a specific ask: e.g. a one-sentence operating principle ('Stay small. Ship more.') or a single targeted question. Founder-voice is allowed to skip the question entirely, but it must not end on a generic CTA.
6. minor · hashtags vs body
Body text claims '#innovation #disruption' inline but hashtags[] only contains '#AI'. The inline hashtags are part of the post copy, so this is a body string the post would actually publish with — either missing-from-array or stale.
Fix: Decide the hashtag set first, then either include the chosen tags in hashtags[] or remove them from body. Do not let the two diverge.
Next steps
Revised artifacts expected from: content-lead Max revision rounds: 2
View raw JSON
{ "type": "qa_verdict", "version": 1, "verdictId": "qa-verdict-reh-48-2026-08-22", "issueId": "REH-48", "subjectRef": { "kind": "copy_draft", "ref": "copy-draft-e2e-bad-2026-08-22", "producerAgent": "content-lead" }, "rubricVersion": "cmo-qa-gate-v1", "scores": { "voice": 1, "accuracy": 1, "structure": 2, "cta": 1, "compliance": 2 }, "decision": "reject", "severity": "blocking", "findings": [ { "severity": "blocking", "section": "subjectRef.basedOnAngleId + basedOnBriefId", "finding": "Draft declares basedOnAngleId=\"none\" and basedOnBriefId=\"none\". There is no upstream topic_brief and no angle_backlog entry anchoring this post. Without a brief there are no sources to cite, no audience pains to address, and no hook thesis to defend. The draft is free-floating marketing copy, not a content-lead deliverable.", "fixHint": "Restart from a topic_brief (see topic-brief-small-teams-ship-faster-2026-08-22.json as a worked example). Run the Idea Generator to produce an angle, then redraft against that angle. Do not post copy with no upstream research chain." }, { "severity": "blocking", "section": "body (entire)", "finding": "Body is 100% hype filler and trips every banned-word rule in the rehanced voice guide: 'game-changing', 'unlock', 'delve', 'revolutionary', 'seamless, cutting-edge', 'elevate', plus 'thrilled to announce' and a leading rocket emoji. Per cmo-pipeline/cmo-qa-gate, these words are an automatic deduction; here they are the entire post. Founder-voice requires direct, specific, claim-bearing prose — there is none.", "fixHint": "Rewrite the body in founder-voice: one concrete observation, one piece of evidence (a source, a number, a story), one implication. Strip every banned word. Aim for ~80-150 words. The reference draft copy-draft-smt-b7th-engineer.json is the target register." }, { "severity": "blocking", "section": "claims[] (empty) + compliance.substantiation", "finding": "claims array is empty. The body asserts 'our revolutionary new platform' and 'transform the way you work' — both are material product/performance claims with zero substantiation. Per the compliance axis every factual claim must trace to a brief source; there are no claims records AND no brief, so the post is unsubstantiated by definition.", "fixHint": "Either (a) ground every factual sentence in a cited source from the brief and populate claims[] with claim+sourceUrl+sourceLabel records, or (b) cut the claims. 'Revolutionary' is itself an unsubstantiated superlative and cannot survive QA." }, { "severity": "blocking", "section": "title = \"placeholder\"", "finding": "Title field is literally the string \"placeholder\". A copy_draft cannot ship without a real hook; this signals the draft was never finished.", "fixHint": "Write a hook that states a stake, not a topic. Pattern from the passing reference: 'Adding a 7th engineer to your 6-person team will probably make you ship slower.' Specific, falsifiable, draws the reader in." }, { "severity": "blocking", "section": "cta ('Don’t miss out — learn more today!')", "finding": "CTA is a generic engagement-bait closer with no specific next step and no target action. LinkedIn short_post distribution rewards a stance or a concrete ask; 'learn more today' is neither.", "fixHint": "Replace with a stance or a specific ask: e.g. a one-sentence operating principle ('Stay small. Ship more.') or a single targeted question. Founder-voice is allowed to skip the question entirely, but it must not end on a generic CTA." }, { "severity": "minor", "section": "hashtags vs body", "finding": "Body text claims '#innovation #disruption' inline but hashtags[] only contains '#AI'. The inline hashtags are part of the post copy, so this is a body string the post would actually publish with — either missing-from-array or stale.", "fixHint": "Decide the hashtag set first, then either include the chosen tags in hashtags[] or remove them from body. Do not let the two diverge." } ], "revisedArtifactsExpectedFrom": "content-lead", "maxRevisionRounds": 2 }copy-draft-smt-b7th-engineer.jsonbut the file isn't on disk.andoffs/qa-verdict-REH-48.jsobut the file isn't on disk.