Skip to Content

← All archived runs

Run: expert-bidpool-parity

run.md

Run: expert-bidpool-parity

  • branch: claude/expert-bidpool-parity-shxdu2
  • pr: #708

01_define/output/spec.md

Spec: Expert bid-pool table parity

  • slug: expert-bidpool-parity
  • personas: Expert
  • touches: apps/demo/components/dashboard/expert/bid-pool-table.tsx, apps/web/components/dashboard/expert/bid-pool-table.tsx
  • complexity: standard

Problem

The expert dashboard is at parity across the demo and web apps except for the bid-pool table, which diverges in both columns and copy. Demo shows Customer / Urgency / Stage / Estimated value range / Time to respond / Fit under the subtitle "Bid requests and matching work"; web shows Customer / Urgency / Value / Time to respond / Time to start / Fit under "Top matches from your bid pool". Web drops Stage and adds Time to start. This is the last open item in the demo-web-parity epic for the Expert persona, which advances Refine the Bridge / Q2 2026 O1 (vendor engagement — expert supply responsiveness): a consistent bid-pool view keeps the "what can I act on now" signal identical wherever an expert sees it.

Proposed change

Reconcile the bid-pool table to one canonical column set and subtitle across both apps.

  • Canonical columns: Customer / Urgency / Stage / Value / Time to respond / Fit (demo's set). Stage stays; Time to start is not shown.
  • Web changes: drop the Time to start column; add a Stage column derived from the lead's resolved status (e.g. "BRD ready"), rendered as a badge consistent with demo; change the subtitle to "Bid requests and matching work".
  • Demo changes: none to columns; already the canonical set. Confirm the Value header and badge wording match web's canonical labels (below).
  • Canonical copy/labels: section title "Available work"; subtitle "Bid requests and matching work"; value column header "Value"; available badge "{N} available".
  • Affordances: web keeps its row → /expert/bids/[id] link and its "View all" link (backed by a real full bid-pool page); demo stays display-only with just the available badge (it has no full page to link to). The demo column contract is unchanged.

Acceptance criteria

  • Both apps' bid-pool tables render the same column set in the same order: Customer / Urgency / Stage / Value / Time to respond / Fit.
  • Web no longer renders a "Time to start" column.
  • Web renders a "Stage" column derived from the lead's resolved status, shown as a badge matching demo's styling.
  • Both apps use the subtitle "Bid requests and matching work" and the value header "Value".
  • The available badge reads "{N} available" in both apps.
  • Web still links each row to /expert/bids/[id] and keeps its "View all" link; the demo column contract is unchanged.

Out of scope

  • The web-only bid detail page (/expert/bids/[id]) and propose/withdraw/flag-BRD actions — lean-subset, no demo model.
  • The web-only full bid-pool page (/expert/bids) behind "View all".
  • Other expert dashboard tables (already aligned).
  • Adding a "View all" affordance or a real full-list page to demo (display-only by design).

Open questions

  • none

02_build/output/notes.md

Build notes: expert-bidpool-parity

  • commits: feat: expert-bidpool-parity — reconcile bid-pool table columns + copy across demo and web

What changed

  • apps/web/components/dashboard/expert/bid-pool-table.tsx:
    • Dropped the Time to start column (header + cell; removed the relativeTime(lead.startDate) render).
    • Added a Stage column between Urgency and Value, derived from the lead's resolved status (lead.status is a StatusView after findBidPoolLeads applies withLeadStatusView). Rendered as a Badge matching demo's styling — success when the status reads as "ready", else warning; muted when a lead has no resolved status.
    • Changed the section subtitle from "Top matches from your bid pool" to "Bid requests and matching work" (both the loading and loaded states).
    • Kept the row → /expert/bids/[id] link, the "View all" link, and the "{N} available" badge unchanged.
  • apps/demo/components/dashboard/expert/bid-pool-table.tsx:
    • Renamed the value column header from "Estimated value range" to the canonical "Value". No other demo change — its column set (Customer / Urgency / Stage / Value / Time to respond / Fit), subtitle, and available badge were already canonical.

Canonical column set now identical in both apps: Customer / Urgency / Stage / Value / Time to respond / Fit.

Acceptance criteria status

  • Both apps' bid-pool tables render the same column set in the same order (Customer / Urgency / Stage / Value / Time to respond / Fit) — web reordered to add Stage + drop Time to start; demo unchanged.
  • Web no longer renders a "Time to start" column — header and cell removed.
  • Web renders a "Stage" column derived from the lead's resolved status, shown as a badge matching demo's success/warning styling.
  • Both apps use the subtitle "Bid requests and matching work" and the value header "Value" — web subtitle updated (demo already matched); demo value header renamed to "Value".
  • The available badge reads "{N} available" in both apps — unchanged (already true in both).
  • Web still links each row to /expert/bids/[id] and keeps its "View all" link; the demo column contract is unchanged (only the value header label changed).

Verify result

  • mechanical checks (format · lint · typecheck · build) run in CI + the Vercel preview, not here. Release reads them back from the PR's check runs. No check is expected to fail.

Notes for review

  • Stage badge variant uses a /ready/i test on the resolved status displayName to mirror demo's stage === "BRD ready" ? "success" : "warning" heuristic while staying resilient to the real workflow status labels (which are workflow-driven, not the demo's literal "BRD ready"/"BRD pending").
  • Demo's value cell keeps its "Estimated" caption and range formatting — only the column header label changed, per the agreed canonical labels.

03_release/output/changelog.md

Changelog entry: expert-bidpool-parity

Live entry: apps/help/app/changelog/2026-07-27-expert-bidpool-parity/page.mdx

  • title: See each bid opportunity's stage at a glance
  • personas: [expert]

Your bid pool now shows the stage of every opportunity — like whether its brief is ready to bid on — right alongside its urgency, value, time to respond, and how well it fits you. You can still open any opportunity to see its full detail. It's a small change that makes it quicker to spot the work you can act on now.

03_release/output/investor-update.md

Experts can now see each opportunity's stage in their bid pool

Who it's for: Experts What shipped: The expert bid pool now shows each opportunity's stage, with one consistent column set and wording across the live app and the demo. Why it matters: Experts spot the work they can act on faster — supporting active vendor and expert engagement (Q2 O1: establish product-market fit with vendor partners).

Dig deeper: <merged-PR URL> · <changelog entry URL>