Files
acobham 5eb4426d30 Update SOPs: consolidate index, clean client data, set Imagen as default
- README: rewrite index to reflect actual files (STACK/CONTENT/OPTIMIZATION);
  remove 15 dead links to old numbered SOPs; add subdirectory table; update
  image gen to Google Imagen as default
- STACK: fix wp-divi-pipeline script paths; genericize vibrantyou/domain
  examples; strip pre-existing em dashes throughout
- CONTENT: update image generation default to Google Imagen API with allotted quota
- image-gen-workflow: remove client-specific cobhamtech data; generalize
  brand palette step; update date
- wp-divi-pipeline-to-am-stack: remove vibrantyou.yoga client data block;
  fix Related SOPs links to current files
2026-06-09 18:54:57 +02:00

121 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
Default source: Google Imagen API (imagen-4.0-generate-001) with allotted quota per project.
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.