121 lines
5.0 KiB
Markdown
121 lines
5.0 KiB
Markdown
# CONTENT - Copy Standards, Image Rules, and Asset Guidelines
|
||
Author: Andre Cobham / Arising Media
|
||
Updated: 2026-06-09
|
||
|
||
## Writing Standard
|
||
|
||
Reading level: 7th to 8th grade for service businesses, 10th to 12th grade for professional/B2B.
|
||
|
||
Active voice. Short paragraphs (2 to 4 sentences max).
|
||
|
||
Lead with the customer's problem, not the business's credentials.
|
||
|
||
One clear CTA per section.
|
||
|
||
No marketing jargon (synergize, leverage, best-in-class, cutting-edge, state-of-the-art).
|
||
|
||
No filler phrases (In today's fast-paced world, Look no further, We pride ourselves on, Don't hesitate, Whether you are X or Y).
|
||
|
||
Specificity beats superlatives. A timeframe, a material, a measurable result beats any adjective.
|
||
|
||
## What We Never Write
|
||
|
||
Em dashes or en dashes. Replace with a period, comma, colon, or the word "and" or "to".
|
||
|
||
Invented numbers (satisfaction rates, years of experience, award claims) without client-verified proof.
|
||
|
||
"Licensed" for any provisionally licensed or permit-holding clinician. Use "Provisionally Licensed" instead.
|
||
|
||
Exclamation points (one per page maximum, in a CTA only).
|
||
|
||
Passive voice as the default sentence structure.
|
||
|
||
Verification check: `grep -rn '.\|–\|—\|–' . --include="*.html" --include="*.json"`. Result must be zero.
|
||
|
||
## Tone by Sector
|
||
|
||
Service businesses (trades, cleaning, home services): plain, direct, neighborhood-familiar.
|
||
|
||
Healthcare / counseling: warm, clinical accuracy required, never overpromise outcomes.
|
||
|
||
Professional / B2B / tech: peer-level, systems-oriented, results-focused.
|
||
|
||
## Healthcare Credential Rules
|
||
|
||
MHC-LP is Provisionally Licensed, not Licensed. LP stands for Limited Permit.
|
||
|
||
Any permit holder must display: "Practices under the supervision of [Name], [Credential]" in the footer, about page, and auto-response email.
|
||
|
||
Use "Provisionally Licensed" everywhere: credential row, why-cards, location page intros, section headers, auto-response emails, meta descriptions.
|
||
|
||
Run grep check before launch: `grep -r "Licensed Professional" --include="*.html"` . result must be zero.
|
||
|
||
Supervisor's credential must be accurate to the letter. LMHC not equivalent to LMHC-D. Confirm the current designation before publishing.
|
||
|
||
When a credential changes (upgrade or advancement), update the source templates first (render.py, copy_library.py), rebuild the Docker container, then re-run verification checks.
|
||
|
||
## Copy Structure
|
||
|
||
One h1 per page. h2 for major sections. h3 for cards or items within a section. Never skip levels.
|
||
|
||
Footer on every page: phone, hours, address, in identical format.
|
||
|
||
Phone format: (###) ###-####. Hours: Monday to Friday: 8:00 AM to 5:00 PM (no dashes).
|
||
|
||
Links use relative paths with .html extension for internal pages. External links include target="_blank" rel="noopener". Phone links use tel:+1 format. Email links use mailto:. Map links open in new tab.
|
||
|
||
## Image Standards
|
||
|
||
Format: WebP only in production. No JPGs or PNGs in the webroot.
|
||
|
||
Every image has descriptive alt text or alt="" if decorative.
|
||
|
||
loading="lazy" on every image except the above-the-fold hero.
|
||
|
||
width and height attributes on every img tag to prevent layout shift.
|
||
|
||
No people, no faces in any generated or stock imagery.
|
||
|
||
Show the result (clean room, finished floor, complete installation), not the process or equipment.
|
||
|
||
Hero images: unique per page, named hero-{page-slug}.webp.
|
||
|
||
## Image Generation
|
||
|
||
Preferred source: local ComfyUI (FLUX.1 Schnell) or Google Imagen API.
|
||
|
||
Every generated image passes a vision validation check for people/faces before being saved.
|
||
|
||
Prompt structure: camera angle + lens + subject + foreground detail + background + lighting + no people.
|
||
|
||
Specify lens focal length and depth of field. Vague room names produce incoherent scenes.
|
||
|
||
Never generate: people, faces, cleaning equipment, text overlaid on source, before/after states.
|
||
|
||
No cleaning machines, vacuums, steam equipment, or hoses in any image.
|
||
|
||
Show upright equipment only, not flat industrial models.
|
||
|
||
Machines must look functional and modern, not dated or commercial-scale.
|
||
|
||
## Image Size Targets
|
||
|
||
Service card / thumbnail: max 900px wide, 78% quality, 30-80KB target.
|
||
|
||
Hero image (page header): max 1400px wide, 80% quality, 50-180KB target.
|
||
|
||
OG / social share image: max 1200px wide, 85% quality, under 150KB.
|
||
|
||
Images over these targets are rejected at deploy time.
|
||
|
||
## Prompt Engineering
|
||
|
||
All prompts follow this structure: {camera angle} {lens} {subject description}, {foreground detail} sharp in foreground, {background} receding into bokeh, {lighting description}, no people, ultra-realistic {type} photography.
|
||
|
||
This pattern produces correct depth, perspective, and scene geometry because it names every surface explicitly.
|
||
|
||
Fix incoherent objects by naming every part of the frame: background walls, floor material, ceiling (if visible), and what recedes. Avoid vague room names ("office" without detail). Specify plain surfaces (cream painted wall, white drop ceiling) not implied ones.
|
||
|
||
Inline negative elements in the prompt itself (no people, no machines, no text), not in a separate negative prompt.
|
||
|
||
Do not use "wide shot" without a camera angle qualifier. |