- ruleRULE: Keep migration 301 redirects in place for at least 12 months; never less than 180 days (Google's explicit floor)
- ruleRULE: Lead WordPress migration sales with a $1,250 fixed-price Migration Audit. Quote the build fixed-price only after the audit completes.
- ruleSpeed/conversion stats commonly cited but NOT supported by primary evidence in 2026 — Candid will not quote these
- ruleRULE: Don't recommend Astro DB / Astro Studio as a strategic platform bet — Studio was wound down late 2024
- ruleRULE: Every Candid developer gets paid Claude Code + Cursor (or Copilot). ~$30-40/mo/person is not a real number against the productivity lift.
- ruleCandid image pipeline 2026: AVIF source / WebP fallback / JPEG last; fetchpriority="high" on LCP image only; explicit dimensions always
- ruleCandid build standard: INP ≤ 150ms target (200ms is the failing floor); LCP ≤ 2.0s; CLS ≤ 0.05
- ruleRULE: Default stack for new marketing-site work is Astro 5/6 + Tailwind v4 on Cloudflare Pages
- ruleRULE: Publish a public corrections log + retraction policy. A correction without a process change is theater.
- ruleRULE: Capture an archive snapshot (Perma.cc / archive.org) at the moment of citing any web source. Quote verbatim.
- ruleRULE: Every objective claim in Candid content carries a named source + date + verbatim quote ≤25 words + confidence label
- ruleRULE: Every public Candid artifact carries a visible "last updated" stamp. Living-document discipline beats one-shot publication.
- ruleRULE: Foundation research before article, article before marketing page. Never write the marketing page first.
- ruleRULE: Treat a deliberate data layer as a privacy-compliance accelerator, not a privacy risk. The scattered alternative is harder to comply with.
- ruleRULE: Don't bend the client's business model to a generic CRM. Either find vertical SaaS that fits, or add a custom data layer on top.
- ruleRULE: Own a single customer_id primary key that joins across your vertical SaaS + QuickBooks + email + ads.
- ruleRULE: Every Candid data product carries source attribution per the [[attribution-checklist-by-source]]. Mis-attribution terminates the licence.
- ruleRULE: Build Candid client data products on official open-data feeds — never on scraped sources
- ruleRULE: For content-heavy SEO/AI-critical clients (~$10k+ budget), default proposal is headless WordPress + Astro on Cloudflare Pages
- ruleRULE: Stop quoting Elementor / Divi / WPBakery as the default for new Candid client builds. Block themes lead the pricing menu.
- ruleRULE: The LCP image always has explicit width/height + fetchpriority="high" + no lazy-loading
- ruleRULE: Defer or delay every third-party script until user interaction, except those required for first paint
- ruleRULE: Performance budgets enforced in CI. Build fails on budget violation. Documented budgets without CI enforcement do not work.
- ruleRULE: Accessibility is architecture, not an overlay. Never sell or install an accessibility overlay widget.
- ruleRULE: Plugin count is the WordPress security surface. Audit quarterly; one-in, one-out rule.
- ruleRULE: Treat URL/slug design as a 10-year decision. Never let a slug change without a 301 redirect.
- ruleRULE: Design every Candid client site for a 10-year operational horizon. Rebuild is a choice, not a forced move.
- ruleRULE: Mega menu hover delay 500ms before show, 100ms reveal. Mobile uses accordion / sequential, not the same mega menu.
- ruleRULE: 4-15-person service businesses use hub-and-spoke IA, not enterprise matrix. Don't pretend to be Dentons.
- ruleRULE: Forms under ~7 fields stay single-step. Multi-step only when total fields cross the threshold.
- ruleRULE: One Service schema per vertical when offerings genuinely differ. Multi-audience Service when offering is identical.
- ruleRULE: Expose Industries and Services as two orthogonal axes in the top nav. Don't hide one behind the other.
- ruleRULE: Every vertical page carries substantively vertical-specific content (case studies, regulations, vocabulary). Generic content gets folded.
- ruleRULE: Don't use audience-based primary nav unless audience categories are mutually exclusive, jargon-free, with substantially unique content
- ruleRULE: Default to /industries/<slug>/ for multi-vertical service business URLs. Never /for-audience/ as primary IA.
- ruleRULE: A platform that cannot produce a clean export today is a hostage situation. Treat it as such.
- ruleRULE: Standard agency contract includes a written exit-transition clause naming deliverables and timelines
- ruleRULE: Require a working database export on Day 1 of any engagement. Test it. Re-test quarterly.
- ruleRULE: Always list the business (not the agency) as the domain Registrant. Step 1 of every engagement.
- ruleRULE: Never publish a tool or library name without a citation that can be verified by a reader.
- ruleRULE: Every non-trivial claim carries a named source with author/institution + date + URL. Confidence flag honest.
- ruleRULE: Lead paragraphs with the direct answer. Aim for 40–60 words. Make every paragraph self-contained.
- ruleRULE: Every page ships with a publish date and a last-updated date. Refresh quarterly minimum.
- ruleRULE: Always server-render or statically generate content for AI crawlers. Never ship client-side-only HTML.
- ruleRULE: Always ship schema as hygiene. Never expect it alone to move AI citations.