diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index ee27aec..82ad6d3 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -116,32 +116,32 @@ Which phases cover which requirements. Updated during roadmap creation. | Requirement | Phase | Status | |-------------|-------|--------| -| PUBL-01 | — | Pending | -| PUBL-02 | — | Pending | -| PUBL-03 | — | Pending | -| PUBL-04 | — | Pending | -| PUBL-05 | — | Pending | -| DISC-01 | — | Pending | -| DISC-02 | — | Pending | -| DISC-03 | — | Pending | -| DISC-04 | — | Pending | -| DISC-05 | — | Pending | -| CATL-01 | — | Pending | -| CATL-02 | — | Pending | -| CATL-03 | — | Pending | -| CATL-04 | — | Pending | -| CATL-05 | — | Pending | -| SEED-01 | — | Pending | -| SEED-02 | — | Pending | -| SEED-03 | — | Pending | -| INFR-01 | — | Pending | -| INFR-02 | — | Pending | +| PUBL-01 | Phase 24 | Pending | +| PUBL-02 | Phase 24 | Pending | +| PUBL-03 | Phase 24 | Pending | +| PUBL-04 | Phase 24 | Pending | +| PUBL-05 | Phase 24 | Pending | +| INFR-01 | Phase 24 | Pending | +| CATL-01 | Phase 25 | Pending | +| CATL-02 | Phase 25 | Pending | +| CATL-03 | Phase 25 | Pending | +| CATL-04 | Phase 25 | Pending | +| CATL-05 | Phase 25 | Pending | +| SEED-01 | Phase 25 | Pending | +| SEED-02 | Phase 25 | Pending | +| SEED-03 | Phase 25 | Pending | +| DISC-01 | Phase 26 | Pending | +| DISC-02 | Phase 26 | Pending | +| DISC-03 | Phase 26 | Pending | +| DISC-04 | Phase 26 | Pending | +| DISC-05 | Phase 26 | Pending | +| INFR-02 | Phase 26 | Pending | **Coverage:** - v2.1 requirements: 20 total -- Mapped to phases: 0 -- Unmapped: 20 +- Mapped to phases: 20 +- Unmapped: 0 --- *Requirements defined: 2026-04-09* -*Last updated: 2026-04-09 after initial definition* +*Last updated: 2026-04-09 after roadmap creation* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 6275bea..989c3ce 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -7,6 +7,7 @@ - ✅ **v1.2 Collection Power-Ups** — Phases 7-9 (shipped 2026-03-16) - ✅ **v1.3 Research & Decision Tools** — Phases 10-13 (shipped 2026-04-08) - ✅ **v2.0 Platform Foundation** — Phases 14-23 (shipped 2026-04-08) +- 🚧 **v2.1 Public Discovery** — Phases 24-26 (in progress) ## Phases @@ -63,6 +64,54 @@ +### 🚧 v2.1 Public Discovery (In Progress) + +**Milestone Goal:** Transform GearBox from a login-first tool into a public-first discovery platform with always-on catalog search and a browsable feed of community content. + +- [ ] **Phase 24: Public Access & Infrastructure** - Remove the login wall from read-only routes and add rate limiting to public endpoints +- [ ] **Phase 25: Catalog Enrichment & Agent Tools** - Add attribution fields to global items, bulk import API, and MCP tools for agent-powered seeding +- [ ] **Phase 26: Discovery Landing Page** - Replace the dashboard with a public-first landing page featuring catalog search and community feed + +## Phase Details + +### Phase 24: Public Access & Infrastructure +**Goal**: Anyone can browse the catalog, public setups, and user profiles without logging in +**Depends on**: Phase 23 (v2.0 complete) +**Requirements**: PUBL-01, PUBL-02, PUBL-03, PUBL-04, PUBL-05, INFR-01 +**Success Criteria** (what must be TRUE): + 1. Visiting the app without a session shows the app content immediately — no auth spinner, no redirect to login + 2. An unauthenticated visitor can browse the global item catalog and open a catalog detail page + 3. An unauthenticated visitor can view a public setup and see its items and totals + 4. An unauthenticated visitor can view a user's public profile page + 5. Attempting to create, edit, or delete any item/setup/thread while unauthenticated redirects to login +**Plans**: TBD +**UI hint**: yes + +### Phase 25: Catalog Enrichment & Agent Tools +**Goal**: Global items carry attribution metadata and can be bulk-populated by an MCP agent swarm +**Depends on**: Phase 24 +**Requirements**: CATL-01, CATL-02, CATL-03, CATL-04, CATL-05, SEED-01, SEED-02, SEED-03 +**Success Criteria** (what must be TRUE): + 1. A catalog item detail page displays image credit and a link to the image source + 2. Attempting to import two items with the same brand and model updates the existing record rather than creating a duplicate + 3. A single API call with an array of items imports them all, upserting on (brand, model) conflict + 4. An MCP agent can call `upsert_catalog_item` with attribution fields and the item appears in the catalog + 5. An MCP agent can call `bulk_upsert_catalog` with a batch of items and all are persisted with attribution +**Plans**: TBD + +### Phase 26: Discovery Landing Page +**Goal**: The app opens to a public discovery feed with prominent catalog search, not a personal dashboard +**Depends on**: Phase 25 +**Requirements**: DISC-01, DISC-02, DISC-03, DISC-04, DISC-05, INFR-02 +**Success Criteria** (what must be TRUE): + 1. The root URL shows a landing page with a catalog search bar at the top, visible without logging in + 2. Below the search bar, a feed of popular public setups is visible with titles, creator names, and item counts + 3. The landing page shows a section of recently added catalog items + 4. The landing page shows a section of trending categories + 5. A logged-in user sees a "Go to Collection" link or button on the landing page that navigates to their personal collection +**Plans**: TBD +**UI hint**: yes + ## Progress | Phase | Milestone | Plans Complete | Status | Completed | @@ -90,6 +139,9 @@ | 21. Item & Catalog Detail Pages | v2.0 | 3/3 | Complete | 2026-04-06 | | 22. Add-from-Catalog & Thread Integration | v2.0 | 2/2 | Complete | 2026-04-06 | | 23. Manual Entry Fallback | v2.0 | 1/1 | Complete | 2026-04-06 | +| 24. Public Access & Infrastructure | v2.1 | 0/TBD | Not started | - | +| 25. Catalog Enrichment & Agent Tools | v2.1 | 0/TBD | Not started | - | +| 26. Discovery Landing Page | v2.1 | 0/TBD | Not started | - | ## Backlog diff --git a/.planning/STATE.md b/.planning/STATE.md index 111ece7..985ddf7 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,12 +2,12 @@ gsd_state_version: 1.0 milestone: v2.1 milestone_name: Public Discovery -status: defining-requirements -stopped_at: Milestone v2.1 started, defining requirements +status: ready-to-plan +stopped_at: Roadmap created — 3 phases (24-26) mapped, ready to plan Phase 24 last_updated: "2026-04-09" last_activity: 2026-04-09 progress: - total_phases: 0 + total_phases: 3 completed_phases: 0 total_plans: 0 completed_plans: 0 @@ -21,14 +21,14 @@ progress: See: .planning/PROJECT.md (updated 2026-04-09) **Core value:** Help people make better gear decisions — discover what others use, compare real-world data, and see how a potential buy affects your setup before committing. -**Current focus:** v2.1 Public Discovery — public-first platform with discovery feed and catalog enrichment +**Current focus:** v2.1 Public Discovery — Phase 24: Public Access & Infrastructure ## Current Position -Phase: Not started (defining requirements) +Phase: 24 of 26 (Public Access & Infrastructure) Plan: — -Status: Defining requirements -Last activity: 2026-04-09 — Milestone v2.1 started +Status: Ready to plan +Last activity: 2026-04-09 — Roadmap created for v2.1 Progress: [░░░░░░░░░░] 0% @@ -46,22 +46,20 @@ Progress: [░░░░░░░░░░] 0% ### Decisions -Key decisions resolved during v2.0 (carried forward): +Key decisions carried forward from v2.0: -- Platform pivot: single-user to multi-user with discovery-first approach — RESOLVED - External auth provider: Logto (self-hosted OIDC) — RESOLVED -- SQLite to Postgres migration — COMPLETE -- Structured UGC only — ratings and predefined fields, no freeform text until moderation — ACTIVE +- Structured UGC only — ratings and predefined fields, no freeform text — ACTIVE - Separate globalItems table — not a flag on user items table — RESOLVED -- COALESCE merge for reference items (global base + personal overlay) — RESOLVED -- Catalog-first add flow with manual fallback — RESOLVED +- COALESCE merge for reference items — RESOLVED - Detail pages replacing slide-out panels — RESOLVED v2.1 decisions: -- Product images: use manufacturer images with attribution and source link, honor takedown requests — RESOLVED -- Catalog data: open datasets + manufacturer specs + agent-powered enrichment via MCP — RESOLVED -- Public-first: build access model and page structure before content features (reviews, personalization) — RESOLVED +- Product images: manufacturer images with attribution and source link, honor takedown requests — RESOLVED +- Catalog data: open datasets + manufacturer specs + agent MCP enrichment — RESOLVED +- Public-first: auth model rework before content features — RESOLVED +- Phase 999.3 (Public Access Auth Model backlog item) is now Phase 24 — PROMOTED ### Pending Todos @@ -74,5 +72,5 @@ None. ## Session Continuity Last session: 2026-04-09 -Stopped at: Milestone v2.1 started, defining requirements +Stopped at: Roadmap created — ready to plan Phase 24 Resume file: None