Contributing to the SavvyDealer Product Portfolio¶
This repo is the master inventory of SavvyDealer products. Its value depends on staying current and accurate. If it drifts, it stops being useful — and teams go back to duplicating work.
When to update this repo¶
Update immediately when any of these happen:
- A product ships (moves from
Active dev/PrototypetoLive) - A product is archived or deprecated (moves to
Dormant, or gets a "superseded by X" note) - A product's deployed URL changes
- A product changes scope materially (purpose rewrite, new strategy slot)
- A new product is created in
savvydealer-adam - A product is retired in favor of another (merge the 1-pagers, note the consolidation in "What NOT to duplicate")
Structure¶
mkdocs.yml # Site config + nav
docs/
index.md # Coordinated-strategy landing page (what the site is)
inventory.md # Master inventory — update the row for any change
contributing.md # This file
products/<category>/ # One markdown 1-pager per product
teams/ # Team-specific onboarding pages
assets/ # Hero imagery and generated infographics
Dockerfile # nginx-based static site build for Cloud Run
1-pager template¶
Copy this when adding a new product. Keep it ≤80 lines.
# <Product Name>
**Repo:** [savvydealer-adam/<repo>](https://github.com/savvydealer-adam/<repo>) · **Path:** `C:/Users/adam/<path>` · **Owner:** <name>
**Status:** <Live|Active dev|Prototype|Dormant> · **% Done:** <n> · **Last commit:** <YYYY-MM-DD>
**Deployed:** <URL or "not deployed">
## What it is
1–2 sentences. Plain English. Dealer-focused.
## Why it exists
Business reason. What gap in the market or in our stack this fills.
## How it works
Stack + 3–5 bullets on architecture. No code — enough that a new dev clones it and knows what they're looking at.
## What's done
- Bullet list of delivered capabilities.
## What's next
- Known gaps / planned work.
## Where the code lives
- Key entry points, deploy config paths.
## Integrations
Other SavvyDealer products this reads from / writes to.
## Don't rebuild this — extend it
One actionable sentence telling a new team member what category of work belongs IN this repo vs. what should live elsewhere.
Workflow¶
- Make the change — either edit the 1-pager, the README table row, or both.
- Update "What NOT to duplicate" in the README if the change affects what teams should/shouldn't build elsewhere.
- Update team onboarding pages (
teams/*.md) if the change affects a team's scope of work (e.g., a new source for the warehouse team, a new strategy for the India team). - Commit with a clear message. Example:
"Lease scraper: status → Live, add Charlotte Nissan dealer". - Push to
main. No PR process for now — this is an internal reference doc, not production code.
House rules¶
- No emoji in 1-pagers (Adam doesn't use them).
- No vendor-filler vocabulary in any copy: "optimize / leverage / best practices / move the needle" and similar. Adam rejects this in dealer-facing content — keep the habit here too.
- Link, don't copy. If a project already has detailed docs in its own repo (CLAUDE.md, PROJECT-STATUS.md), link to them instead of duplicating.
- Facts only. If you don't know a field, leave it blank or write "unknown — needs audit" rather than guessing.
- Keep the 1-pager short. 80 lines is a hard cap. If you need more, the detail belongs in the project's own repo.
Gaps in v1¶
- Several 1-pagers are skeletons flagged "clone locally to confirm" — repos that weren't cloned on Adam's main machine at inventory time. When a skeleton 1-pager gets audited, replace the flag with real facts.
- Team placeholders (Kat's notes tool, Kat's slides tool, Brian's Google Ads work, Lucas's form pages) need repo URLs to become real 1-pagers.
% Doneestimates are rough. When a product ships, replace with a real status.
Who to ask¶
Adam (support@savvydealer.com). This is his portfolio — when in doubt, ask before adding or renaming.