Static view over source Markdown

S2S CRM Daily Orientation

Start Here Today

Run the launch-host readiness pass: verify the deploy target and secrets, prove backup/restore, run read-only readiness checks, confirm session behavior, create approved staff access only after those gates, then complete the final real-browser smoke with representative Whistler data.

Markdown remains the source of truth. This dashboard summarizes the active orientation packet so the steward can see current state, next work, stale signals, and boundaries without reading every conceptual doc first.

Current Product Shape

What the active docs say exists now

Implemented or observed

Launch as a trusted internal staff CRM plus public quote form.

Implemented or observed

Keep the first launch practical: CRM-owned operating records, in-app invoices, invoice CSV/manual accounting, and QuickBooks only if the real tenant flow is proven before cutover.

Hybrid Project Readiness

Directional build-area signals

Readiness signals are directional orientation cues, not exact delivery percentages.

Frontend

Solid
Confidence: medium Freshness: current

Gap: Cancel deletes incomplete, uninvoiced future visits from today onward except the anchor job.

Evidence: docs/current-state.md: | npm run build | Builds Vite client and bundles server/index.ts into dist/.

View evidence
  • docs/current-state.md: | npm run build | Builds Vite client and bundles server/index.ts into dist/.
  • docs/current-state.md: | Dashboard | GET /api/dashboard/stats plus /api/jobs drive dashboard cards and upcoming jobs.
  • docs/current-state.md: | QuickBooks | Server OAuth, token refresh, customer find/create, invoice sync routes; UI hidden unless VITE_ENABLE_QUICKBOOKS=true.

Architecture

Emerging
Confidence: medium Freshness: current

Gap: Store: PostgreSQL via connect-pg-simple (server/sessionMiddleware.ts), table session (auto-created if missing).

Evidence: docs/current-state.md: Whistler Peak Cleaners can accept a trusted-staff-only model for the first launch if roles are deferred.

View evidence
  • docs/current-state.md: Whistler Peak Cleaners can accept a trusted-staff-only model for the first launch if roles are deferred.
  • docs/architecture.md: | UI | React 18, Vite, Wouter, TanStack Query, shadcn/Radix (client/src) |

Data / backend

Solid
Confidence: high Freshness: current

Gap: Completed jobs can be pulled into invoices, edited invoice line items can be persisted, and invoice CSV export is available.

Evidence: docs/current-state.md: The core CRM is real and database-backed: staff auth, clients, cleaners, jobs, schedule views, recurring schedules, quote requ...

View evidence
  • docs/current-state.md: The core CRM is real and database-backed: staff auth, clients, cleaners, jobs, schedule views, recurring schedules, quote requests, invoices, invoice CSV export, and optional Quic...
  • docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user creation, Jobber cutover rehearsal, and a final real-br...
  • docs/current-state.md: Launch-host session behavior still needs SESSION_SECRET, session table, restart/session persistence, and approved staff login verification.

Validation

Strong
Confidence: high Freshness: current

Gap: No source-backed gap was found for this area.

Evidence: docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user cr...

View evidence
  • docs/current-state.md: The primary remaining risk is launch-host readiness: target DB/schema/backup proof, production session behavior, staff-user creation, Jobber cutover rehearsal, and a final real-br...
  • docs/current-state.md: | Fixed and browser/staging-verified | Invoice edit line items, job completion/status normalization, dependent-client hard-delete guard, job address default/custom/use-client-addr...
  • docs/current-state.md: | Fixed or hardened but final host/browser check still required | Invoice CSV export is helper-tested and normal-Chromium-download verified, but still needs one deployed-host or r...

Docs / freshness

Strong
Confidence: high Freshness: current

Gap: No source-backed gap was found for this area.

Evidence: docs/: All active orientation docs were found with current review dates.

View evidence
  • docs/: All active orientation docs were found with current review dates.

Automation

Strong
Confidence: high Freshness: current

Gap: No source-backed gap was found for this area.

Evidence: docs/current-state.md: | Recurring schedules | Recurrence rules support weekly, bi-weekly, every-4-weeks, monthly; create future jobs; list/regenerat...

View evidence
  • docs/current-state.md: | Recurring schedules | Recurrence rules support weekly, bi-weekly, every-4-weeks, monthly; create future jobs; list/regenerate/cancel schedules.
  • docs/current-state.md: | QuickBooks | Server OAuth, token refresh, customer find/create, invoice sync routes; UI hidden unless VITE_ENABLE_QUICKBOOKS=true.
  • docs/session-brief.md: Keep the older file as the detailed restart source; this file exists so the local docview generator can find a predictable session brief.

Decision Radar

Important source-backed choices and missing information

Click a decision to inspect evidence; source Markdown remains authoritative.

Confidence: medium Freshness: current

| UI says "Next 30 days" while API calculates next calendar month for two cards.

The active orientation packet marks this as a decision, gap, or next-work signal.

Confidence: medium Freshness: current

Store: PostgreSQL via connect-pg-simple (server/sessionMiddleware.ts), table session (auto-...

The active orientation packet marks this as a decision, gap, or next-work signal.

Next Useful Work

Recommended steward orientation

Next move

Run the launch-host readiness pass: verify the deploy target and secrets, prove backup/restore, run read-only readiness checks, confirm session behavior, create approved staff access only after those gates, then complete the final real-browser smoke with representative Whistler data.

Next move

Do not run reset/import scripts against production.

Stale / Missing Signals

What should stay visible

Incomplete or uncertain

Production/staging launch-host DB/schema/session readiness is not proven.

Incomplete or uncertain

Backup/restore proof and rollback owner are not recorded for cutover.

Incomplete or uncertain

Jobber cutover rehearsal and final exports are still outstanding.

Incomplete or uncertain

Billing mode still needs sign-off: QuickBooks off with CSV/manual accounting, or fully proven QuickBooks before launch.

Incomplete or uncertain

No automated browser regression suite exists yet.

Incomplete or uncertain

npm audit --omit=dev --audit-level=high currently reports production dependency vulnerabilities, including high-severity findings in axios, drizzle-orm, express/path-to-regexp, glob, lodash, minimatch, and picomatch, plus lower-severity production findings such as express-session/on-headers. Triage before broader exposure, and avoid blind npm audit fix --force because the Drizzle fix is marked breaking.

Stale doc check
  • No stale or missing active docs detected by the generator.

Product / Design / Architecture

Direction to carry into work

Design

Internal CRM screens should stay efficient, data-dense, and staff-oriented.

Design

Public quote intake should feel simple, professional, and aligned with Peak Cleaners' premium local service brand.

Design

Launch UI should favor clear operating workflows over broad SaaS polish.

Architecture

React (Vite) + Express + Drizzle + Postgres (@neondatabase/serverless).

Architecture

| Layer | Tech | |-------|------| | UI | React 18, Vite, Wouter, TanStack Query, shadcn/Radix (client/src) | | API | Express (server/index.ts, server/routes.ts) | | DB | Drizzle + @neondatabase/serverless (server/db.ts, shared/schema.ts) | | OAuth | QuickBooks (server/quickbooks.ts) |

Validation

Checks named by the source docs

These checks prove structure and behavior only when freshly run. They do not prove source docs are current.

Source Map

Files behind this dashboard

README.md

Repo overview, commands, and documentation entry point.

Found - reviewed null
docs/current-state.md

What exists now, what works, what is incomplete, and stale signals.

Found - reviewed 2026-05-22
docs/next-steps.md

Recently completed work, recommended next moves, and work to avoid.

Found - reviewed 2026-05-22
docs/product-plan.md

Product north star, current product shape, and roadmap posture.

Found - reviewed 2026-05-22
docs/design-direction.md

Experience principles, visual direction, and interface guardrails.

Found - reviewed 2026-05-22
docs/architecture.md

Stack, app structure, data model, boundaries, and technical assumptions.

Found - reviewed 2026-05-22
docs/validation.md

Validation commands, QA expectations, and evidence requirements.

Found - reviewed 2026-05-22
docs/session-brief.md

Compact restart context, immediate next move, caveats, and reminders.

Found - reviewed 2026-05-22