The structured data, exactly as delivered
{
"oqsVersion": "1.2.0",
"profile": "written",
"deterministic": [
{
"id": "TEXT_OVERFLOW_RISK",
"hard": false,
"passed": false,
"detail": "Copy is long enough to overflow its layout slot.",
"evidence": [
"535 characters (budget 420 for invitation)"
]
},
{
"id": "BUDGET_SUM_MISMATCH",
"hard": true,
"passed": true,
"detail": "Not a budget.",
"evidence": []
},
{
"id": "CONTRAST_LOW",
"hard": false,
"passed": true,
"detail": "A generated md carries no lettering (Occestra never renders type into imagery), so there is no contrast to measure.",
"evidence": []
},
{
"id": "DATE_INVALID",
"hard": true,
"passed": true,
"detail": "Not a plan; no date to check.",
"evidence": []
},
{
"id": "DIM_ASPECT_MISMATCH",
"hard": true,
"passed": true,
"detail": "Not an image.",
"evidence": []
},
{
"id": "FILE_TOO_LARGE",
"hard": false,
"passed": true,
"detail": "Not an image.",
"evidence": []
},
{
"id": "LINK_DEAD",
"hard": false,
"passed": true,
"detail": "No links asserted.",
"evidence": []
},
{
"id": "PALETTE_DRIFT",
"hard": false,
"passed": true,
"detail": "Not an image.",
"evidence": []
},
{
"id": "PLACEHOLDER_TEXT",
"hard": true,
"passed": true,
"detail": "No placeholder text survives in the finished copy.",
"evidence": []
},
{
"id": "POLICY_VIOLATION",
"hard": true,
"passed": true,
"detail": "Final copy is clean.",
"evidence": []
},
{
"id": "SCHEDULE_CONSTRAINT",
"hard": true,
"passed": true,
"detail": "Not a schedule.",
"evidence": []
},
{
"id": "SCHEDULE_OVERLAP",
"hard": true,
"passed": true,
"detail": "Not a schedule.",
"evidence": []
},
{
"id": "SCHEMA_INVALID",
"hard": true,
"passed": true,
"detail": "Artifact and payload satisfy their schemas.",
"evidence": []
},
{
"id": "SOURCE_MISSING",
"hard": true,
"passed": true,
"detail": "Not a plan; no grounded claims.",
"evidence": []
}
],
"axes": {
"voice": 48,
"specificity": 52,
"factual_support": 42,
"structure": 62,
"platform_fit": 55
},
"issues": [
"The artifact uses exclamation marks throughout ('Join us for our annual Harvest Supper!', 'puddings especially welcome!', 'We can't wait to see you there!') — the brief explicitly forbids them.",
"The brief requires the dietary contact to be stated unambiguously; no dietary contact appears anywhere in the copy.",
"The brief requires the RSVP deadline to be stated unambiguously; 'by the end of August' is vague — no specific date is given.",
"The brief states the hall licence does not permit implying the event is ticketed or that food is being sold; 'Tickets £8 on the door' directly violates this.",
"The brief asks for copy that reads like a neighbour wrote it, not a committee — 'Join us for our annual Harvest Supper! A wonderful evening of food, friendship and music for all the family' is committee-hall boilerplate that fails the substitution test entirely.",
"The raffle and bar are asserted as features of the event; neither appears in the brief. These are invented facts.",
"'Dancing until late' is asserted; this detail does not appear in the brief and is invented.",
"The place is named only as 'Llanfihangel Village Hall' — the brief specifies Llanfihangel, Powys, and the county should appear to disambiguate (there are multiple Llanfihangels in Wales).",
"The structure has no clear landing — the closing line is a filler sentiment rather than a functional close (RSVP instruction, contact, deadline).",
"TEXT_OVERFLOW_RISK: Copy is long enough to overflow its layout slot."
],
"pass": false,
"failedOn": "both",
"repairs": 0,
"notes": [
"Critique by claude-sonnet-4-6, written profile."
],
"coverageGaps": [],
"repairBrief": "Rewrite the copy from scratch against the brief. Specific instructions:\n\n1. REMOVE all exclamation marks. The brief forbids them. Use plain declarative sentences throughout.\n2. REMOVE 'Tickets £8 on the door, children go free.' entirely. The hall licence prohibits implying the event is ticketed or that food is sold. Do not replace it with any pricing language.\n3. REMOVE the raffle, bar, and dancing claims. They are not in the brief. Do not invent event features.\n4. ADD the dietary contact, stated unambiguously — the brief requires it. If a name or email was not supplied, flag this as a gap to the requester rather than inventing one.\n5. ADD a specific RSVP deadline date. 'By the end of August' is not unambiguous. Use '31 August 2027' or the exact date the requester confirms.\n6. ADD 'Powys' to the location line so it reads 'Llanfihangel Village Hall, Powys' — there are multiple Llanfihangels in Wales.\n7. REWRITE the opening in a neighbour's voice — plain, warm, no committee phrasing. 'Join us for our annual Harvest Supper! A wonderful evening of food, friendship and music for all the family' must go. Something like: 'We're having a harvest supper at the village hall and we'd love you to come.' Set the register there and hold it.\n8. STRUCTURE the copy so functional details (date, time, place, what to bring, dietary contact, RSVP deadline) are each clearly present and easy to find. Close on the RSVP/contact line, not on a sentiment."
}