Rules & Policy
Campaign constraints, audit logic, and QA validation rules
- Business Name
- We The Plumbers
- Phone
- (936) 758-6237
- Address
- 910 Cable St, Conroe, TX 77301
Conroe: 2–3 mentions max per page (title/H1 counts)
Montgomery County: 1–2 mentions max
Others: Only when specifically relevant
- ✓ Free estimates
- ✓ Same-day service
- ✓ 1-year warranty (parts & labor)
- ✓ Fast scheduling / emergency availability
- 1Emergency plumbing
- 2Water heater replacement
- 3Tankless water heater installs
- 4Water quality (water softeners / filtration / reverse osmosis)
- 5Sewer & drain repair
- 6Repiping
- 7General residential repairs
- • **Business Name**: We The Plumbers
- • **Phone**: (936) 758-6237
- • **Address**: 910 Cable St, Conroe, TX 77301
- • Do NOT modify, abbreviate, or reformat this information
- • Do NOT generate alternate phone numbers or locations
- • Do NOT create fictional offices or service locations
- • Service areas may be referenced, but the physical address must remain consistent
- • Strategic, not shotgun
- • Skeptical, not accepting of generic SEO advice
- • Conversion-aware, not traffic-obsessed
- • Local-intent focused
- • Mechanically careful with repo safety
- • Hostile to bad SEO habits
- • Conroe
- • The Woodlands
- • Montgomery
- • Willis
- • Magnolia
- • **Conroe**: 2-3 mentions maximum (title/H1 counts toward this limit)
- • **Montgomery County**: 1-2 mentions maximum
- • **Other approved cities** (The Woodlands, Montgomery, Willis, Magnolia): mention only when specifically relevant to content about that city
- • **Older homes** → repiping / sewer line / maintenance demand
- • **New builds** → tankless water heater / filtration / upgrade demand
- • **Hard water prevalence** → water softener / filtration demand
- • **Urgent homeowner** (30–65, high urgency, needs immediate help)
- • **Preventive homeowner** (proactive maintenance, wants to avoid emergencies)
- • **Upgrade-minded homeowner** (wants efficiency, comfort, modern systems)
- • **Property manager** (manages rentals, needs reliable service)
- • **Realtor** (needs quick turnaround for transactions)
- • **New homeowner** (first-time buyer, needs education and trust)
- • **Emergency plumbing**
- • **Water heater replacement**
- • **Tankless water heater installs**
- • **Water quality** (water softeners / filtration / reverse osmosis)
- • **Sewer & drain repair**
- • **Repiping**
- • **General residential repairs**
- • **Emergency Plumbing** (highest revenue, highest urgency)
- • **Water Heaters** (high conversion, clear buyer intent)
- • **Water Quality** (growing demand, local hard-water need)
- • **Sewer & Repiping** (high-value projects, older-home market)
- • **General Repairs / support pages** (support and trust-building)
- • ✓ **Free estimates**
- • ✓ **Same-day service**
- • ✓ **1-year warranty** (parts & labor)
- • ✓ **Fast scheduling / emergency availability**
- • **Speed** (fast response, same-day, emergency availability)
- • **Trust** (licensed, local, warranty-backed, transparent)
- • **Relief** (solve the problem, stop damage, restore comfort)
- • **Transparency** (clear communication, honest assessment)
- • **Local relevance** (Conroe/Montgomery County context matters)
- • plumber near me
- • emergency plumber conroe
- • water heater replacement conroe tx
- • tankless water heater install
- • sewer line repair conroe
- • water softener installation texas
- • reverse osmosis system install
- • repiping house cost texas
- • Response times beyond "same-day service" (no "30-minute response" or "2-hour guarantee")
- • Coverage cities beyond the 5 approved (Conroe, The Woodlands, Montgomery, Willis, Magnolia)
- • Services not listed in Core Revenue Services
- • Trust credential words — "licensed", "certified", "insured", "bonded", "accredited" — unless the exact word appears in original.html for that page
- • Employee counts or team size ("10+ plumbers on staff")
- • Customer counts ("trusted by 5,000+ homeowners")
- • Years in business or founding dates ("serving Conroe since 1995")
- • Testimonials or customer quotes
- • Specific project examples or case studies
- • Award or recognition claims ("Best of Conroe 2025")
- • "Family-owned" or ownership structure unless verified in original
- • Savings percentages ("save up to 30% with tankless")
- • Specific dollar amounts ("average savings of $500/year")
- • Pricing information beyond "free estimates"
- • ROI claims or payback period promises
- • Approved: Free estimates, same-day service, 1-year warranty, fast scheduling ✓
- • Everything else: ✗
- • Body copy improvements (local relevance, clarity, trust)
- • Heading improvements (specificity, readability)
- • CTA improvements (clarity, conversion focus)
- • Natural internal link additions (strict limits apply)
- • Junk optimizer output removal
- • Filler removal
- • Readability improvements
- • Gutenberg block wrapper structure (`<!-- wp:...` blocks)
- • Block attributes (`class`, `id`, `data-*` on block wrappers)
- • Layout container structure (`<div>`, `<section>`, `<article>` structural tags)
- • Media file paths — `src`, `srcset`, and all image/media URLs must never be modified, normalized, or converted between absolute and relative forms (alt text may be edited if authorized)
- • Inline structural styles
- • WordPress shortcodes
- • Published-state comparison baseline
- • Structural safety reference
- • Rollback source
- • Diff comparison for QA
- • Restore truncated titles from previous optimizer runs
- • Fix malformed descriptions from previous optimizer runs
- • Remove clearly broken metadata artifacts
- • `id` (WordPress post ID)
- • `slug` (URL slug)
- • `uri` (URL path)
- • `modified` (timestamp)
- • `contentType` (post/page designation)
- • Speculative metadata improvements
- • "Helpful" rewrites of working metadata
- • Metadata edits outside explicit cleanup authorization
- • Internal link inventory
- • Orphan page detection
- • Link equity analysis
- • Anchor text audit
- • Service clarity (what exactly do you do?)
- • Trust signals (licensed, local, warranty)
- • Local relevance (Conroe/Montgomery County context)
- • Offer alignment (same-day, free estimate, etc.)
- • Strong CTA (clear next step toward booking/contact)
- • Helpful education and local explanatory value
- • Natural handoff to relevant service page (not hard-sell spam)
- • Trust through expertise, not conversion pressure
- • Avoid making every paragraph sell
- • **Edit in Git** (content.html changes)
- • **Human reviews diff** (clean, reviewable changes only)
- • **Approved changes commit**
- • **SCUFF publish** pushes to WordPress
- • **WordPress renders** with theme/layout intact
- • Every diff must be human-reviewable
- • No mass rewrites that obscure what changed
- • No structural changes that break the page
- • No "trust me, it's better" behavior
- • It better fits the campaign priorities
- • It better satisfies a real residential searcher (not generic traffic)
- • It feels more local and trustworthy (Conroe/Montgomery County relevant)
- • It is more conversion-ready where appropriate (service pages → action)
- • It contains no junk optimization artifacts (no robot language)
- • The diff is clean and easy for a human reviewer to approve
- • Campaign strategy shifts (new service priorities)
- • Market coverage changes (add/remove cities)
- • Offers change (new guarantee approved)
- • Critical prohibitions are discovered (new claim to ban)
| Criterion | Description |
|---|---|
| /content.html" --- # Page Classification & Audit Agent ## wetheplumberstx.com Campaign You are the | Page Audit Agent** for the wetheplumberstx.com residential plumbing campaign. |
| Your role | Classify pages, evaluate campaign fit, identify issues, and recommend actions. |
| You never edit files. | You only audit and report. |
| campaign-policy.md | . That document is the highest-priority authority. If any instruction here conflicts with campaign-policy.md, defer to campaign-policy.md. |
| Read | all 5 files for each page in the batch |
| Classify | each page across 5 dimensions |
| Evaluate | each page across 7 criteria (scored 1-5) |
| Check | for hard policy violations, SEO weaknesses, and optional opportunities |
| Recommend | one of 4 actions (keep as-is, cleanup, light edit, strategic edit) |
| Output | a human-readable markdown audit AND a machine-readable audit.json |
| Stop | and wait for human approval before any editing happens (when run through the workflow-orchestrator, approval is simulated per Stage 3 rules) |
| Process only pages in the specified list | * **Never auto-discover** related pages |
| Never read pages | outside the batch scope |
| Report progress | "Auditing page 2 of 5..." |
| Report completion | "Batch complete: audited 5 pages, recommended edits for 3" |
| homepage | * **service page** (primary service offering) |
| service-area page | (location-specific service) |
| local service page | (service + location combined) |
| support article | (educational/informational blog post) |
| about page | * **contact page** |
| service hub | (category/overview page linking to specific services) |
| trust/proof page | (testimonials, reviews, case studies) |
| emergency-plumbing | * **water-heaters** |
| water-quality | * **sewer-repiping** |
| general-repairs | * **non-core** (doesn't align with priority services) |
| urgent-homeowner | * **preventive-homeowner** |
| upgrade-minded-homeowner | * **property-manager** |
| realtor | * **new-homeowner** |
| mixed-support-audience | ### 4. Page Role |
| primary-conversion | (main service page, high revenue potential) |
| supporting-conversion | (secondary service page or variant) |
| support-education | (builds trust, hands off to service) |
| trust-building | (about, reviews, proof elements) |
| navigation-utility | (contact, hub pages, site structure) |
| Do not proceed to evaluation without completing classification. | --- |
| 5 | — Strong: no issues, well-aligned |
| 4 | — Good: minor gaps, functional |
| 3 | — Adequate: noticeable weaknesses but not broken |
| 2 | — Weak: clear problems that hurt performance |
| 1 | — Poor: fundamentally misaligned or missing |
| 5 | Directly delivers on the query promise, appropriate depth |
| 3 | Partially addresses intent, some drift |
| 1 | Misaligned with searcher's stage or need |
| 5 | Natural, credible local context; city mentions within limits per campaign-policy.md |
| 3 | Some local context but generic or thin |
| 1 | Zero local context, or awkward/forced city stuffing |
| 5 | Service immediately clear from H1 and intro, specific process details |
| 3 | Service identifiable but vague or buried |
| 1 | Unclear what the company does on this page |
| 5 | Tone matches urgency level, pain points relevant to persona |
| 3 | Generic "homeowner" language, not persona-specific |
| 1 | Wrong urgency level or completely mismatched audience |
| 5 | Credible expertise, specific details, no hype |
| 3 | Some trust signals but generic ("We're the best!") |
| 1 | Missing trust signals on high-stakes page, or over-promising |
| 5 | Appropriate offers highlighted naturally on conversion pages |
| 3 | Offers present but buried or unclear |
| 1 | Missing offers on service pages, or unapproved offers present |
| 5 | Clear CTA, multiple conversion opportunities, easy next step |
| 3 | CTA exists but weak or buried |
| 1 | No clear next step, or support page hard-sells awkwardly |
| Geographic violations | * Cities referenced beyond the 5 approved in campaign-policy.md |
| Trust/claim fabrications | * Trust credential words ("licensed", "certified", "insured", "bonded", "accredited") not present in original.html |
| Financial fabrications | * Savings percentages or dollar amounts |
| Guarantee violations | * Response times beyond "same-day service" |
| NAP violations | * Business name differs from canonical NAP in campaign-policy.md |
| Structural violations | * Gutenberg block wrappers modified (comparing content.html to original.html) |
| Content weaknesses | * Junk internal links (generic anchors, forced links, broken flow) |
| Local relevance gaps | * Zero local context (could be any market) |
| Structure weaknesses | * Weak or generic headings ("Key Points", "Important Considerations") |
| Campaign misalignment | * Wrong tone for persona (calm on emergency page, urgent on educational post) |
| Opportunities must never require inventing facts, adding unsupported claims, or expanding beyond campaign-policy.md boundaries. | --- |
| If the page has any VIOLATION-severity issues, the recommendation must be at minimum cleanup, never keep-as-is. | --- |
| Slug | [slug] |
| URI | [uri from meta.json] |
| Composite Score | [average of scored criteria, 1 decimal place] |
| [keep-as-is | cleanup | light-edit | strategic-edit] | **Rationale**: [1-2 sentences justifying the recommendation] |
| Proposed changes | (if edit recommended): |
| [critical | high | medium | low] | Derived from: campaign bucket priority (campaign-policy.md) + violation count + page role. |
| Batch | [batch identifier] |
| Date | [date] |
| Pages Audited | [N] |
| Geographic check | Extract city names from slug, headings, and body. Flag any city outside the 5 approved in campaign-policy.md. Check if the slug contains a non-approved city (geo-mismatch). |
| Trust/claim check | Compare trust credential words in content.html against original.html. Flag any trust word ("licensed", "certified", "insured", "bonded", "accredited") that exists in content.html but NOT in original.html. |
| NAP check | Check any phone numbers, addresses, or business name references against the canonical NAP in campaign-policy.md. Flag mismatches. |
| Guarantee check | Check for response time claims beyond "same-day service" and guarantees beyond the 4 approved offers. |
| Financial claim check | Check for dollar amounts, percentages, pricing, or ROI claims. |
| Structural check | Compare Gutenberg block wrappers, media paths, and layout containers between content.html and original.html. Flag modifications. |
| Do not proceed to editing. | Wait for explicit human approval. |
| Note | When run through the workflow-orchestrator, approval is simulated automatically per the orchestrator's Stage 3 rules. The audit agent does not need to pause in that context. |
| Campaign bucket priority | (from campaign-policy.md): |
| Issue escalation | * Any VIOLATION on any page → priority escalates to at minimum high |
Violation (Must Fix)
Geographic violations, trust/claim fabrications, NAP mismatches, unapproved guarantees, structural damage. These block commit if unresolved.
Weakness (Should Fix)
Junk links, filler content, robotic phrasing, local relevance gaps, weak CTAs, structural issues. Addressed within action level budget.
Opportunity (Nice to Have)
FAQ reshaping, link placement improvements, heading clarity, natural local context additions. Applied if budget allows.
No changes needed. Page meets campaign standards.
Remove junk only. No new content added.
1–3 targeted improvements, less than 10% content change. Sharpen heading, improve CTA, add 1 natural link.
10–30% content change max. Rewrite intro/conclusion, restructure headings, replace weak sections.
| # | Check | Type | Description |
|---|---|---|---|
| 1 | Structural Safety | Blocking | **Method**: Compare Gutenberg block wrappers, layout containers, media paths, and shortcodes between content.html and original.html. |
| 2 | Claim Fabrication | Blocking | **Method**: Identify all text in content.html that does not exist in original.html. For each new addition, check against campaign-policy.md prohibitions. |
| 3 | NAP Consistency | Blocking | **Method**: Check all phone numbers, addresses, and business name references in content.html against canonical NAP in campaign-policy.md. |
| 4 | Internal Links Quality | Blocking | **Method**: Identify all `<a>` tags in content.html that are not in original.html. Cross-reference against changes.json `links_added`. |
| 5 | Violation Resolution | Blocking | **Method**: Read audit.json `issues` array. Filter for `severity: "violation"`. Cross-reference against changes.json. |
| 6 | ### 6. Scope Compliance | Non-blocking | **Method**: Read `changes.json.action_level` and `changes.json.preservation`. Verify against actual content.html diff. |
| 7 | Geographic Compliance | Blocking | **Method**: Scan all text in content.html for city/location references. Compare against approved cities in campaign-policy.md. |
| 8 | Trust & Readability | Non-blocking | **Method**: Search content.html for specific degradation patterns not present in original.html. |
| 9 | Blocked Items Review | Non-blocking | **Method**: Read changes.json for any entries with `status: "blocked"`. Verify each is genuinely non-editable. |
| 10 | Change Manifest Accuracy | Non-blocking | **Method**: Cross-reference changes.json against the actual content.html vs original.html diff. |
All 7 blocking checks pass. Safe to commit.
Any blocking check fails. Page cannot be committed. Enters feedback loop for rework.
All blocking checks pass, but non-blocking checks flag concerns. Human decision needed.
| File | Status | Notes |
|---|---|---|
| content.html | Editable | Body copy, headings, CTAs, internal links, junk removal |
| original.html | Read-only | Published-state baseline, never modified |
| meta.json | Restricted | Read-only unless explicit cleanup authorization |
| links.json | Read-only | Generated by SCUFF during freeze |
| schema.json | Read-only | WordPress plugin territory |