{"oqsVersion":"1.2.0","passRule":"Within its profile, every axis scores >= 70 of 100, AND zero hard deterministic checks fail.","maxRepairs":2,"profiles":[{"id":"visual","title":"Visual","description":"Images: invitations, keepsakes, heroes, marks, moodboards.","axes":[{"id":"composition","class":"craft","title":"Composition","threshold":70,"description":"Deliberate structure and hierarchy — a focal point, balance, breathing room; not a centred blob.","guidance":"85+ a clear focal point and deliberate ordering. 70 a reader finds what matters without hunting. 50 flat or centred. 30 actively disordered."},{"id":"legibility","class":"correctness","title":"Legibility","threshold":70,"description":"Any text present is readable at its intended size and contrast; nothing crushed, clipped, or ambiguous.","guidance":"Occestra images carry NO lettering by design — type is set separately. Absent copy is CORRECT: score 70 and say the axis does not apply. Only fail if text that IS present is unreadable, and quote it."},{"id":"style_fidelity","class":"craft","title":"Style fidelity","threshold":70,"description":"Unmistakably the requested House Style — its palette, type direction, and material language.","guidance":"85+ unmistakably this House Style. 70 recognisably in it with minor drift. 40 generic AI-default, however pretty."},{"id":"subject_fidelity","class":"correctness","title":"Subject fidelity","threshold":70,"description":"The artifact DEPICTS what the brief commissioned, independent of style. The right subject, rendered in the House Style — not the House Style rendering the wrong subject.","guidance":"Ask ONE question, ignoring how good it looks: is this a picture of the thing that was asked for? A brand mark for a software product that renders as a map, a compass, or a ledger FAILS — that is the House Style's motif substituted for the subject. 85+ the subject is unmistakable and correct. 70 the subject is present and recognisable. <70 ONLY IF you can name what it depicts instead of what was asked; quote the mismatch."},{"id":"platform_fit","class":"craft","title":"Platform fit","threshold":70,"description":"Right for where it will live — dimensions, aspect, length, tone appropriate to the medium and audience.","guidance":"85+ exactly right for the medium. 70 usable without rework. 50 wrong shape, length, or register."},{"id":"defects","class":"correctness","title":"Defects","threshold":70,"description":"Free of rendering defects — no warped anatomy, no melted or duplicated elements, no garbled pseudo-lettering.","guidance":"85+ clean. 70 minor, forgivable imperfection. <70 ONLY IF you can point to the specific defect — a sixth finger, a smeared face, gibberish text-like marks. Quote where it is."}]},{"id":"written","title":"Written","description":"Copy and documents: toasts, threads, story pages, landing specs.","axes":[{"id":"voice","class":"craft","title":"Voice","threshold":70,"description":"The right register for the moment and audience — human, intentional, never boilerplate.","guidance":"85+ a distinct, apt voice. 70 appropriate and clean. 50 generic or off-register."},{"id":"specificity","class":"craft","title":"Specificity","threshold":70,"description":"Concrete and earned. Every sentence carries information a reader could not have guessed.","guidance":"THE SUBSTITUTION TEST: could this sentence be pasted, unchanged, into copy about a completely different subject? If yes it is filler and it fails. 'Elevate your special occasion' scores below 45. BUT judge only against what the brief PROVIDED. Do NOT deduct for omitting a detail that was never given — a venue address, a time, an RSVP line the writer was not handed. The writer cannot invent it, and penalising its absence is faulting the artifact for obeying the brief. Ceremonial copy (an invitation) may use warm convention; it fails only when it says nothing the given facts do not already say."},{"id":"factual_support","class":"correctness","title":"Factual support","threshold":70,"description":"Every factual claim is true, and nothing is asserted with more certainty than the text has earned.","guidance":"It is not a measure of how thorough the text FEELS. Honesty about a gap IS support: 'nothing here is booked' is grounded, not a deduction. <70 ONLY IF you can quote a claim that is invented, unsourced, or overclaimed."},{"id":"structure","class":"craft","title":"Structure","threshold":70,"description":"A clear shape — an entry point, ordered parts, a landing. Not one undifferentiated run of text.","guidance":"85+ a reader is guided through it. 70 navigable. 50 a wall of text with no hierarchy."},{"id":"platform_fit","class":"craft","title":"Platform fit","threshold":70,"description":"Right for where it will live — dimensions, aspect, length, tone appropriate to the medium and audience.","guidance":"85+ exactly right for the medium. 70 usable without rework. 50 wrong shape, length, or register."}]},{"id":"plan","title":"Plan","description":"Grounded, structured occasion work: plans, schedules, budgets, guides.","axes":[{"id":"source_coverage","class":"correctness","title":"Source coverage","threshold":70,"description":"Every grounded claim — venue, hours, weather, price — carries a real source and a retrieval time.","guidance":"The deterministic SOURCE_MISSING check is the hard floor. This axis judges breadth: are the claims that COULD be sourced actually sourced? <70 only if you can name a sourceable claim left bare."},{"id":"date_validity","class":"correctness","title":"Date validity","threshold":70,"description":"Every date is a real calendar date, consistent with the occasion and with the other artifacts.","guidance":"DATE_INVALID is the hard floor. <70 only if you can quote a date that is impossible or contradicts the brief."},{"id":"schedule_feasibility","class":"correctness","title":"Schedule feasibility","threshold":70,"description":"The running order is physically possible — no overlaps, no impossible travel between venues.","guidance":"SCHEDULE_OVERLAP is the hard floor. <70 only if you can quote two items that cannot both happen as timed."},{"id":"budget_consistency","class":"correctness","title":"Budget consistency","threshold":70,"description":"Line items sum to the total, the currency fits the place, and per-head figures are sane.","guidance":"BUDGET_SUM_MISMATCH is the hard floor. <70 only if you can quote a figure that is wrong or a currency that does not belong."},{"id":"contingency","class":"craft","title":"Contingency","threshold":70,"description":"Real fallbacks keyed to the actual forecast and constraints — not a generic 'have a backup plan'.","guidance":"85+ specific, forecast-aware fallbacks. 70 present and usable. 50 vague or boilerplate. This is craft: judge it, do not demand a citation."},{"id":"uncertainty_disclosure","class":"correctness","title":"Uncertainty disclosure","threshold":70,"description":"What is not known is stated plainly. Nothing is presented as booked, confirmed, or certain when it is not.","guidance":"A plan that says 'this is not booked' is doing this RIGHT. <70 only if you can quote something asserted as settled that is not."}]},{"id":"pack","title":"Pack","description":"The whole delivery, graded once — computed, not model-judged.","axes":[{"id":"completeness","class":"correctness","title":"Completeness","threshold":70,"description":"Every deliverable the brief asked for was produced and delivered — nothing silently dropped.","guidance":"Computed, not judged: the fraction of requested deliverables that shipped as real artifacts (not undelivered stubs)."},{"id":"cross_artifact_consistency","class":"correctness","title":"Cross-artifact consistency","threshold":70,"description":"The artifacts agree with each other — the same date, city, and names throughout the pack.","guidance":"Computed, not judged: the artifacts are checked for contradicting each other on the facts of the occasion."},{"id":"brief_satisfaction","class":"craft","title":"Brief satisfaction","threshold":70,"description":"The pack, as a whole, is a good answer to what was asked — not just a set of individually-passing parts.","guidance":"Computed from the per-artifact verdicts: the fraction of delivered artifacts that passed their own profile."}]}],"checks":[{"id":"SCHEMA_INVALID","scope":"all","hard":true,"description":"The artifact does not satisfy its own published schema."},{"id":"POLICY_VIOLATION","scope":"all","hard":true,"description":"Final copy re-screened by the PolicyGate: third-party IP, real-person likeness, or unsafe content."},{"id":"SOURCE_MISSING","scope":"grounded claims in plans","hard":true,"description":"A factual claim (venue, hours, weather, price) ships without a source and a retrieval timestamp."},{"id":"BUDGET_SUM_MISMATCH","scope":"budget","hard":true,"description":"Line items do not sum to the stated total (tolerance $0.01)."},{"id":"SCHEDULE_OVERLAP","scope":"schedule","hard":true,"description":"Two schedule items overlap in time, or two venues are separated by an impossible gap (under 5 minutes to travel)."},{"id":"SCHEDULE_CONSTRAINT","scope":"schedule","hard":true,"description":"The running order crosses a timing bound the client stated in the brief — starting before guests can arrive, or still running after the stated finish."},{"id":"DATE_INVALID","scope":"plan","hard":true,"description":"A date is not a real calendar date, or contradicts the occasion date."},{"id":"DIM_ASPECT_MISMATCH","scope":"images","hard":true,"description":"Rendered pixel dimensions do not match the dimensions the artifact was specified at."},{"id":"PLACEHOLDER_TEXT","scope":"all copy (md, html, json)","hard":true,"description":"Finished copy still contains a placeholder — [BRACKETS], YOUR X HERE, TBD, TK, XXX, or lorem ipsum. A placeholder that reaches a buyer ships looking deliberate, which is worse than an omission."},{"id":"CONTRAST_LOW","scope":"invites/cards","hard":false,"description":"Body text falls below a 4.5:1 WCAG contrast ratio against its background."},{"id":"PALETTE_DRIFT","scope":"images","hard":false,"description":"Dominant colours drift away from the declared House Style palette."},{"id":"LINK_DEAD","scope":"launch kit","hard":false,"description":"A referenced link does not resolve."},{"id":"TEXT_OVERFLOW_RISK","scope":"invites/cards","hard":false,"description":"Copy is long enough to overflow or crush its layout slot."},{"id":"FILE_TOO_LARGE","scope":"images","hard":false,"description":"A PNG exceeds 4 MB, which is too heavy to share comfortably."}],"thresholds":{"budgetToleranceUsd":0.01,"minTravelGapMinutes":5,"minContrastRatio":4.5,"maxPaletteDistance":70,"maxPngBytes":4194304,"textBudgets":{"invitation":420,"guest_guide":3000,"toast":1200,"carousel":1800,"launch_thread":2400,"story_page":6000,"og_image":120,"landing_spec":9000,"demo_script":4000}}}