Skip to content

ADR-0010: Category scope for M1, M2, M3

Context

ADR-0005 locked a two-track use-case model: Builder (UC-9, anchored on PC components with live compat checking) and Casual (UC-13, anchored on single-item brand-first buys — laptops, prebuilts, peripherals). ADR-0005 also stated that "UC-13's catalog (laptops, prebuilts, peripherals) is M3-deferred." That phrasing leaves a gap: it commits the Casual landing surface but does not commit the M2 category roster. Every downstream ticket — #28 page design, #29 DB scale, #31 canonical catalog, #33 per-category criteria — needs to know which categories exist when, otherwise it builds against an open question.

The current state:

  • Category enum in prisma/schema.prisma carries 10 values: the 8 Builder components (CPU, GPU, MOTHERBOARD, RAM, PSU, CASE, COOLER, STORAGE) plus LAPTOP and PREBUILT pre-allocated for M3.
  • prisma/seed.ts seeds only the 8 Builder components. LAPTOP and PREBUILT exist as enum values but no seed Products carry them.
  • All three currently-scraped retailers (PCAndParts, 961Souq, Macrotronics) carry the Builder 8 plus monitors, peripherals, and laptops; PCAndParts and Macrotronics also carry prebuilts. Coverage is universal across the 8 Builder + monitors, near-universal across peripherals + laptops, partial across prebuilts. See retailers.md §2.
  • All H-tier next-wave candidates for #20 (Expert-Zone, CompuOne, Mojitech, Sbeity, Ayoub) carry the Builder 8 plus monitors and peripherals; most carry laptops; some carry prebuilts. See retailers.md §3.

Persona research (personas.md §6.2) gives a per-persona-per-category ranking. Reading across the table:

  • 8 Builder components anchor Karim and First-time builder (both primary). Already in scope.
  • Monitors anchor Karim (gaming refresh rate) as a build-completion item, and are Layla's acute (severity-3) creator pain on color accuracy (§5.6). Stocked at every audited retailer.
  • Peripherals anchor Casual customer with a brand-first ranking and Karim secondarily for performance gear. Stocked at every audited retailer. Personas §6.2 tags peripherals as "v2."
  • Laptops anchor Casual customer (acute "forced into builder UX" pain), Layla (Mac-or-Apple-line), Diaspora (gift-shaped purchases), and Office IT (employee-laptop refresh batches). #24 labels them M3.
  • Prebuilt PCs anchor Casual customer (brand + price + spec sheet) and Office IT (vendor stability + warranty + standardization). #25 labels them M3.
  • Gaming chairs, networking gear, accessories have no primary-persona anchor and weak retailer coverage. Mining hardware is restricted to Gamma's catalog (retailers.md §5) which itself is Skip. Used market is out of scope per ADR-0005 + competitive §4.2.

The decision below applies a single frame to every candidate: persona anchor + retailer coverage + track fit + spec-dictionary cost. It locks the milestone roster. Per-category profiles live in the Categories reference — this ADR is the why; that doc is the what.

Decision

M1 — already shipping. The 8 Builder components only. CPU, GPU, MOTHERBOARD, RAM, PSU, CASE, COOLER, STORAGE. No change. Builder track (UC-9). Anchored by Karim + First-time builder. Already seeded; already scraped at all three current retailers; already covered by the compat engine.

M2 — add monitors. Add MONITOR as a new Category enum value and ship a monitors catalog. Monitors are dual-track:

  • Builder track — monitors are the natural end-of-build add-on for Karim (refresh rate + resolution at the gaming tier) and a build-completion item for First-time builder. Compat checking is not required — a monitor doesn't constrain other slots — but the all-slots-at-once layout from ADR-0002 accommodates an optional monitor slot cleanly.
  • Casual track — monitors are a brand-first single-item buy for Layla (color-accurate WFH / creator monitor — severity-3 acute pain) and Casual customer (WFH peripheral). UC-13 single-item product detail with no compat panel is the right surface here.

Monitors are picked over laptops/prebuilts/peripherals for M2 because:

  • Spec dictionary is bounded and low-cost — panel type, resolution, refresh rate, response time, size, color gamut %, ports. ~7-9 dimensions, all numeric or short-enum, no hierarchical taxonomy.
  • Retailer coverage is universal across the three current scrapers and all H-tier next-wave picks.
  • Persona unlock is the strongest M2 signal not yet served — Layla's acute color-accuracy pain has no current path; monitors close it.
  • Cross-track utility maximises ROI — one new category serves Builder completion + the Casual track partially, whereas laptops or peripherals only serve Casual.

M2 also retains the Builder 8 — no Builder category is dropped. M2 is an additive milestone for monitors plus the Builder-side feature work scheduled there (#15 cart aggregator, #22 more compat rules).

M3 — laptops, prebuilts, peripherals. Per ADR-0005's framing of UC-13's deferred catalog and the existing labels on #24 and #25. Peripherals are scoped here to keyboards / mice / headsets specifically — not gaming chairs or accessories, both of which are out of scope below.

Out of scope (v1) — recorded so future tickets don't re-open silently:

  • Gaming chairs. No primary-persona anchor. Casual customer mentions chairs in gift-purchase contexts but does not rank them as a primary category. Retailer coverage is thin (PCBuildingLeb's racing-sim section is the strongest stocked surface, and PCBuildingLeb is L-tier per retailers.md §3). Comparison axis is brand + price + ergonomic claim — none of which rewards aggregation.
  • Networking gear (routers, switches, NICs). Office IT secondary persona only; no primary-persona acute pain. Office IT's wedge is Quote mode on existing categories, not networking-as-its-own-page. Stocked at CompuOne/Mojitech but secondary in their own catalogs.
  • Accessories / cables / adapters. Commodity category; no comparison value. Brand and SKU spread is dominated by no-name imports; matcher cost would dwarf user value.
  • Mining-grade hardware. Skip per retailers.md §5 Gamma findings. Gamma's mining-grade ESONIC motherboards are the only mining-specific stock observed across the audit, and Gamma is itself Skip-tier.
  • Used market. Out of scope per ADR-0005 + competitive §4.2. Olx LB is the de-facto used-parts surface; integration is a v3+ deferred.
  • Phones, POS, security cameras. Not consumer PC parts. Mentioned as candidates in the #32 ticket body for scope clarity. Out per the original spec's phased category roll-out (2026-04-25 aggregator design §3.3).

The persona-derived rule: a category ships only when at least one persona ranks it as primary or strong-secondary AND ≥2 of the 3 currently-scraped retailers carry it. Every M2/M3 placement above clears this bar. Every Out-of-scope item fails one or both halves.

Consequences

Positive

  • #28 page design gets a fixed roster. Builder landing carries 8 components + monitors-as-completion-item; Casual landing carries monitors-as-single-item now and laptops/prebuilts/peripherals when M3 ships.
  • #33 per-category criteria gets a clear M2 deliverable. One new spec dictionary (monitors) instead of three (monitors + peripherals + laptops). Bounded scope.
  • #29 DB scale and #31 canonical catalog get a known multiplier. ~9 categories at M2 (8 + monitors), ~12 at M3 (+ laptops + prebuilts + peripherals). Predictable growth, no surprise expansion.
  • Layla's acute color-accuracy pain gets a path in M2 rather than waiting for M3 alongside laptops. Strongest persona-unlock-per-category-cost ratio in the candidate set.
  • ADR-0005 is honoured. Casual track's full catalog (laptops, prebuilts, peripherals) stays M3-deferred; monitors are a cross-track category, not a Casual-track-only ship.
  • Out-of-scope decisions are explicit. Gaming chairs / networking / accessories / mining / used / phones each have a recorded rejection reason. Future tickets re-open via a supersession ADR, not by silently expanding category scope.

Negative

  • Schema migration is implied for M2. A new MONITOR enum value plus seed entries plus per-category typed columns (probably none — monitors fit the existing specs: Json blob shape) is a one-PR cost, but it must be sequenced before M2 catalog work begins. Tracked as a follow-up issue (see References).
  • Casual track's "primary landing" status from ADR-0005 is partly aspirational at M2. The homepage gives Casual the dominant surface, but the only Casual-anchored category in scope at M2 is monitors. Laptops/prebuilts/peripherals — the persona-acute Casual categories — wait for M3. #28 must design a homepage that reads honestly: the Casual surface exists, but its catalog is shallow until M3.
  • Office IT and Diaspora personas are mostly post-M2. Their acute pains (batch quoting, foreign-card payment, delivery routing) are addressed by features, not categories — but the Casual-buyer flows they share with laptops/prebuilts/peripherals are M3-deferred. Acceptable cost; both are secondary personas.
  • Peripherals defer also defers Casual-customer brand-first as a fully-served flow. Casual customer is a primary persona whose primary category (peripherals + laptops) is M3. The M2 Casual surface (monitors only) serves Layla, not Casual customer's dominant journey. This is a real cost; partly mitigated by Casual customer's brand-first decision style being applicable to monitors too.

Neutral

  • The schema enum already pre-allocates LAPTOP and PREBUILT even though seed seeds only the 8 Builder values. M3 enum work is therefore zero-cost; only MONITOR (M2) and the M3 peripheral subcategories require new enum work.
  • Spec dimensions for monitors overlap with what Karim already wants on GPU rows (refresh rate, resolution targeting). Some #33 work is shared rather than duplicated.
  • #37 i18n is unaffected. ADR-0004 holds across all categories and milestones.

Alternatives considered

Alternative A: Ship laptops in M2 instead of monitors

Pull #24 forward to M2; defer monitors and peripherals to M3.

Rejected because:

  • Spec-dictionary cost is high — laptops carry CPU + RAM + storage + screen + battery + warranty + on-site service + chassis specs. Per-laptop spec extraction is harder than per-monitor extraction (laptops also have variant pricing per RAM/SSD config).
  • Compat-engine relevance is zero — laptops have no upstream compat checks; the M1 compat code adds no value to laptop browsing. M2 is otherwise rich in Builder-track work (#15, #22) and laptops would land as a sideband.
  • Persona-cost trade is unfavourable — laptops serve four personas (Casual customer, Layla, Diaspora, Office IT) but acute pains for those personas are mostly flow-pain (Casual: forced into builder UX; Office IT: batch quoting; Diaspora: foreign-card payment) which monitors+flows can address without laptops being present. Monitors give Layla's acute color-accuracy pain a path; laptops give nobody an acute pain path that can't wait for M3.
  • ADR-0005 explicitly defers laptops + prebuilts + peripherals to M3. Pulling forward without a stronger reason than "monitors fit too" inverts the framing.

Alternative B: Drop prebuilts entirely

Make M3 = laptops + peripherals; cut prebuilts permanently.

Rejected because:

  • Casual customer ranks prebuilts as a primary category (personas.md §6.2) — brand + price + spec sheet decision style.
  • Office IT batch-laptop refresh sometimes substitutes prebuilt desktops for fixed-station roles — direct overlap with their high-LTV use case.
  • Retailer coverage is good — PCAndParts, Macrotronics carry prebuilts as primary stock; 961Souq carries them secondarily.
  • First-time builder uses prebuilts as the off-ramp when self-build anxiety wins ("Is this a good build for [game]?") — losing prebuilts loses the natural fallback flow.
  • #25 is already labelled M3 and persona research justifies it. Cutting requires evidence none of the personas+coverage matrix shows.

Alternative C: Monitors in M3 (don't add anything in M2)

Hold M2 to the Builder 8; defer all new categories to M3.

Rejected because:

  • Layla's color-accuracy pain has no other path. Severity-3 acute on monitors specifically; not addressable by Builder-flow improvements.
  • M2 retailer onboarding (#20) brings 3-5 more retailers that all stock monitors — the data is there to scrape; not indexing it leaves value on the table.
  • The Casual track's "primary landing" framing from ADR-0005 becomes increasingly hollow if M2 ships zero new Casual-track categories. Monitors are the cheapest way to make the Casual surface non-empty.
  • Spec-dictionary effort is bounded — ~7-9 dimensions, no novel typing. Doesn't displace #15 or #22 on the M2 critical path.

This is the closest-call alternative. If MASTER weights M2 capacity differently — preferring to land #15 cart aggregator + #22 more compat rules cleanly before adding any new category — push monitors to M3 and re-issue this ADR. The Casual track shape doesn't change; only the timing of its first concrete category does.

Alternative D: Add peripherals to M2 alongside monitors

Ship monitors + peripherals together at M2.

Rejected (with caveat) because:

  • Spec-dictionary cost roughly doubles. Peripherals split into kbd / mice / headsets — three sub-shapes — each with brand-line awareness ("Logitech MX vs G," "Razer DeathAdder vs Basilisk," etc.) that monitors don't need.
  • Brand-first navigation as a UI pattern is not yet built — peripherals depend on it more than monitors do (monitors fall back to specs-first comfortably; peripherals don't). Building brand-first nav for one category in M2 commits #28 earlier than ADR-0005's pacing implies.
  • Casual customer's primary acute pain ("forced into builder UX") is a flow problem, not a catalog problem. Adding peripherals to M2 doesn't resolve it any faster than adding peripherals to M3 — the Casual landing still ships at M2 either way; only its catalog depth changes.

Caveat: this is the second-closest call. If MASTER decides Casual customer's persona deserves an M2-served path (rather than waiting until M3 alongside laptops/prebuilts), peripherals should be the category to pull forward. Surface as an open question; default to M3.

Alternative E: Add gaming chairs / networking / accessories to M3

Treat these as deferred-to-M3 rather than out-of-scope.

Rejected because:

  • No primary-persona anchor for any of them. Office IT cares about networking secondarily; Casual customer about gift-purchase chairs incidentally. Deferred-to-M3 implies "we'll ship these eventually" — the persona research doesn't support that.
  • Out-of-scope is more honest. Future tickets re-open via supersession ADR if telemetry surfaces demand (anti-persona drift signals in personas.md §5.7 cover the relevant probes).

References