# Watchdog Brand Guide for LLMs and Coding Agents

Read this before editing any Watchdog page, component, article, dashboard, email template, chart, score, or marketing surface.

## What Watchdog is

Watchdog is a New Jersey property-intelligence product. It serves ordinary homeowners and professional users who need deeper property, tax, market, assessment, and workflow intelligence.

The product should feel precise, modern, calm, trustworthy, and useful. It should not feel like a generic AI startup template or an aggressive lead-generation funnel.

## Highest-priority rules

1. Show useful property information before the sales pitch.
2. Prefer clarity and hierarchy over visual decoration.
3. Use the existing Watchdog blue/navy system. Do not invent a new accent palette.
4. Use Plus Jakarta Sans for display and Inter for product UI/body text on new product surfaces.
5. Keep cards quiet: white surfaces, restrained borders/shadows, 10–18px radii, generous spacing.
6. Avoid excessive gradients, glowing backgrounds, glassmorphism, pill spam, colored side stripes, and decorative outlines.
7. Do not use an icon beside every line of copy.
8. Mobile must feel intentionally designed as an app, not merely stacked desktop content.
9. Protect developer-only and paid functionality with server-verified access rules, not CSS hiding alone.
10. Do not add `?v=` query-string version numbers to new CSS or JavaScript references.
11. **Never use the legacy vertical property sidenav.** New and redesigned pages must use the current Watchdog navigation shell or an approved modern page-specific shell.
12. **Treat ROBUST as part of the Watchdog Score brand contract.** Do not improvise alternate expansions, labels, weights, or a separate “ROBUST Score.”

## Watchdog Score and ROBUST Framework

The canonical naming hierarchy is:

1. **Watchdog** — platform and brand.
2. **Watchdog Score** — the public 0–100 score/result.
3. **ROBUST Framework** — the branded methodology and explanation layer beneath the Watchdog Score.
4. **R / O / B / U / S / T** — the six current property-score dimensions.
5. Governed markers and source evidence beneath each dimension.

Preferred public language:

- **The Watchdog Score is powered by the ROBUST Framework.**
- **One score. Six dimensions. ROBUST.**
- **Watchdog tells you where you stand. ROBUST tells you why.**

The official ROBUST v1 dimensions are:

| Letter | Official name | Current property weight | Micro-definition |
| --- | --- | ---: | --- |
| R | Recourse | 10% | Paths and evidence for review. |
| O | Overassessment Position | 20% | Assessment versus supported value. |
| B | Burden | 30% | Taxes relative to property value. |
| U | Uniformity | 15% | Consistency across the assessment system. |
| S | Stability | 15% | Pressure for reassessment or structural change. |
| T | Trajectory | 10% | Direction of the property's tax position. |

### ROBUST naming rules

- **O must be written as Overassessment Position**, not simply Overassessment. The word “Position” is required because the metric describes where the assessment sits relative to supported evidence and does not presume a legal or factual overassessment.
- **U is Uniformity.** Older Watchdog surfaces called municipal COD/assessment-consistency products “Assessment Fairness.” Those COD-driven surfaces belong under U and should use Uniformity language when touched or redesigned.
- “Assessment fairness” may still appear as ordinary explanatory prose when the concept is broader than a named metric, but it is not a canonical ROBUST dimension name.
- Keep internal compatibility keys such as `fairness` when changing them would create unnecessary regressions. Map them to the correct public ROBUST name at presentation boundaries.
- Do not alter weights, formulas, evidence gates, or model behavior merely to make branding cleaner. Methodology changes require versioned validation.
- ROBUST is not a desirability system. Never call a home, family, neighborhood, municipality, county, or government “ROBUST” as a quality judgment.
- Protected-class or demographic characteristics are not ROBUST score inputs.
- Experimental, fallback, prototype, or heuristic scores must not use the unqualified Watchdog Score or ROBUST Framework names unless they satisfy the canonical score contract.

Canonical public routes:

- `/property/robust/`
- `/property/robust/recourse/`
- `/property/robust/overassessment-position/`
- `/property/robust/burden/`
- `/property/robust/uniformity/`
- `/property/robust/stability/`
- `/property/robust/trajectory/`
- `/property/whitepapers/watchdog-score/`

For exact machine-readable ROBUST names and weights, read `/property/branding/robust-framework.json`.

## Canonical colors

- Background: `#f5f7fb`
- Surface: `#ffffff`
- Ink: `#111d38`
- Text: `#31435c`
- Muted: `#748198`
- Subtle: `#8794a7`
- Line: `#e2e7ef`
- Soft: `#edf1f6`
- Primary blue: `#2f6df6`
- Primary dark/navy: `#183b84`
- Primary soft: `#e9f0ff`
- Success: `#18a966`
- Warning: `#f5a20a`
- Danger: `#e34f5f`

Semantic colors are not decorative colors. Red, amber, and green need actual meaning.

## Typography

### New product UI

- Display/headings: **Plus Jakarta Sans**, 600–800
- Body/UI: **Inter**, 400–800

### Existing exceptions

Some public content still uses Source Sans 3 and Playfair Display. Maintain those where required, but do not introduce Playfair into dashboards, forms, data tools, or dense SaaS interfaces.

### Hierarchy

- H1: `clamp(28px, 3vw, 42px)`, weight 800, tight tracking
- H2: `clamp(24px, 2.4vw, 34px)`, weight 800
- H3: about 20px, weight 700
- Body: 14–16px, line-height about 1.55–1.65
- Small supporting copy: normally 12px+
- Kicker: 10px, uppercase, weight 800, tracking around `.11em`

Do not create tiny unreadable secondary labels merely to make a dashboard look dense.

## Spacing and shape

Base spacing unit: 4px.

Preferred spacing tokens: `4, 8, 12, 16, 20, 24, 32, 40, 48, 64`.

Preferred radii:

- 8px: compact
- 10px: buttons/inputs
- 12px: standard cards/controls
- 18px: large panels/drawers/modals
- 999px: status pills only

Use whitespace before adding more containers.

## Buttons

Primary: Watchdog blue fill, white text, 10px radius.

Secondary: white background, subtle line, dark text.

Tertiary: text/icon treatment with a quiet hover background.

Destructive: danger color only for a genuinely destructive action.

Desktop controls should generally be at least 42px tall. Primary mobile controls should preferably be 52px tall.

## Cards and panels

Use white surfaces with subtle borders or shadows. Avoid nesting many cards inside cards. A card should represent meaningful grouping, not simply decorate every block of text.

Prefer:

- clear title
- optional one-line explanation
- data/content
- one obvious next action

Avoid:

- colored stripe on every card
- floating decorative badges
- multiple gradients per panel
- thick outlines
- oversized drop shadows

## Navigation

Navigation is quiet until active. Active items may use a primary-soft background with blue/dark text. Developer links remain hidden unless developer access is server-confirmed.

### Current shell rule

The old fixed/collapsible dark vertical property sidenav is retired and prohibited. Do not load, copy, recreate, or visually imitate the legacy sidebar defined by `/property/partials/sidemenu.html` or its `.db-sidebar` presentation.

For current product work:

- `/property/css/brand-consistency.css` is the canonical cross-app styling layer for current Watchdog product shells.
- `/property/js/brand-consistency-runtime.js` owns the canonical signed-in navigation inventory and brand synchronization.
- `/property/js/sidemenu.js` routes supported secondary pages into the current shell and must never fetch the retired sidebar partial.
- The Dashboard uses its current 2027 dashboard navigation.
- Property Home uses its current 2027 Home navigation.
- Supported secondary pages use `/property/css/app-shell-2027.css` and `/property/js/app-shell-2027.js` underneath the shared consistency layer.
- A purpose-built modern header/navigation may be used for a specialized page, but it must not fall back to the retired vertical rail.
- If a page is not yet migrated to a current shell, render it without the retired sidebar rather than reintroducing legacy navigation.
- When creating a new route, explicitly choose its current navigation pattern before considering the page complete.

Canonical signed-in app navigation labels are: Dashboard, Property Home, Town Compare, ROBUST Framework, Change Intelligence, Agent Control, Appeal Scanner, Data Workbench, Data Center, Professional Hub, and Account.

The shared `/property/js/sidemenu.js` intentionally no longer fetches `/property/partials/sidemenu.html`. Do not restore that fallback.

The current brand mark is a Font Awesome dog icon in a 42px rounded tile using a `#183b84` to `#2f6df6` gradient, paired with the Watchdog wordmark.

## Charts and data

Every chart must answer a question. Include units, time period, source, and freshness where relevant.

Default series priority:

1. `#2f6df6`
2. `#183b84`
3. `#748198`
4. `#18a966`
5. `#f5a20a`
6. `#e34f5f`

Avoid 3D charts, unexplained axes, decorative gradients, and rainbow palettes. Never rely on red versus green alone.

## Motion

Motion should explain state change or continuity.

Typical durations:

- fast: ~160ms
- standard: ~240ms
- deliberate: ~320ms

Preferred easing: `cubic-bezier(.2,.8,.2,1)`.

Do not animate every card on page load. Respect `prefers-reduced-motion`.

## Photography and imagery

Prefer real New Jersey homes, towns, streetscapes, maps, and credible local context. Owned or properly licensed imagery is best; Unsplash is acceptable when appropriate.

Avoid obvious AI-generated homes, handshake stock photography, fake dashboards, and images that imply they show a specific property when they do not.

## Writing voice

Watchdog copy is plainspoken, specific, credible, helpful, and confident without hype.

Lead with the answer or useful fact. Explain technical tax and real-estate terms in normal language. State source limitations when needed.

Avoid:

- AI-writing tropes
- canned transitions
- fake excitement
- generic thought-leadership language
- phrases like “revolutionary,” “game-changing,” “ultimate,” or “unmatched” unless factually justified
- em dashes in published Watchdog editorial copy

Use action-oriented CTAs such as:

- View property
- Compare towns
- See full report
- Save property
- Upgrade to Pro

When a feature is gated, explain what the user gets by upgrading rather than presenting a dead end.

## Accessibility

Target WCAG 2.2 AA.

Always include visible focus states, semantic heading order, form labels, sufficient contrast, reduced-motion support, and non-color status cues. Charts need readable summaries or equivalent text where the data is not otherwise available.

## Access-control rule

Hiding UI is not authorization.

Protected Watchdog routes use `/property/js/access-guard.js` and server-side Supabase RPCs to establish developer or plan access. Preserve that pattern.

## Before committing a change

Ask:

- Does this look like the same product as the current Watchdog Dashboard and Home surfaces?
- If the Watchdog Score appears, does ROBUST explain the six dimensions correctly?
- Did I accidentally call municipal COD “Assessment Fairness” instead of U — Uniformity?
- Did I preserve O — Overassessment Position as a neutral property-specific concept?
- Is the main task obvious above the fold?
- Did I add decoration with no information purpose?
- Are typography, spacing, color, and radii on-system?
- Am I using a current navigation shell rather than the retired vertical sidenav?
- Would a homeowner understand this?
- Would a professional trust this?
- Is mobile intentionally designed?
- Can a keyboard user complete the task?
- Does reduced motion still work?
- Did I accidentally expose internal or paid functionality?

## Machine-readable sources

For exact visual tokens and general structured brand rules, read:

`/property/branding/brand-system.json`

For the Watchdog Score and ROBUST Framework naming contract, read:

`/property/branding/robust-framework.json`

The ROBUST naming contract reflects the August 22, 2026 user-approved brand decision. For score/ROBUST naming it takes precedence over older references to “Assessment Fairness” in the general brand-system JSON until those legacy references are fully removed. Explicit newer user instructions still take precedence over both files.
