ProductOSDocs

Workflows

ProductSense bulk cleanup

Run ProductSense's per-check suggestions over a page: streaming suggestions, accept inline, no stored reports.

ProductSense is ProductOS's data-quality analyst. Instead of opening dozens of rows to fix typos and dangling links, you trigger ProductSense on a page, pick which checks to run, and review streaming JSON suggestions one at a time.

There are no stored reports: ProductSense streams suggestions to the panel in real time, you accept or dismiss each, and the action is written immediately. Closing the panel discards anything you didn't act on.

The check registry

ProductSense ships with 9 checks. One registry drives both the dropdown menu and the model's prompt, so the menu label and the check's behaviour can't drift apart.

CheckMenu labelWhat it surfaces
urgencyTriage urgencyFeedback rows whose urgency is missing or miscalibrated against ARR, segment and pain signals
linksSuggest missing linksEntities that should link to existing themes / features / initiatives / releases but don't
statusAlign statusesStatuses that contradict each other across linked entities (e.g. a release marked shipped whose initiatives are still planned)
breadthFlag broad themesThemes / initiatives that are too broad or catch-all and should be split
descriptionsPolish descriptionsEmpty, too-short or stale descriptions, plus near-duplicate rows
orphansFind orphansAbandoned drafts: default titles with no description, links or assignees
tagsSuggest tagsFeedback with no tags, or tags that just repeat the product / module name
teamSuggest team ownersFeatures and initiatives with no team member assigned
visionPolish vision & missionThe vision / mission page when the copy is empty, vague or drifting

Each check declares which entity types it applies to: Polish descriptions runs on the most (down to accounts, personas, products, competitors, trends and objectives); Triage urgency and Suggest tags only on feedback; Flag broad themes and Suggest team owners on themes / initiatives and features / initiatives respectively; Polish vision & mission only on the Vision page. The dropdown shows only the checks that apply to the page you're on.

Running it on a page

  1. Open an entity surface (e.g. Feedback, Features, Initiatives).
  2. Find the ProductSense split button in the toolbar. On any list page, p clicks it for you.
  3. The main button runs every check that applies; the menu runs a single check (each has a number shortcut, 1–9, inside the menu) or Run all relevant checks.
  4. The panel streams suggestions as Claude returns them. Each suggestion has:
    • A severity (error | warning | info)
    • A short title and description
    • One concrete action: link_existing, create_new, set_field, or unlink
    • For multi-option suggestions: alternative targets you can pick between

Navigate with j / k (or arrow keys). a or ↵ applies the focused suggestion; x or ⌫ dismisses; e edits the suggested value before applying; 1/2/3 picks a variant; ⌘↵ applies all visible suggestions in one shot.

Running it on a single entity

Single-entity mode has no button in the app: call POST /api/ai/productsense with mode: 'entity' from an in-app session. The in-app button always runs over the visible page. With mode: 'entity' the model loads the entity's full context (linked feedback, themes, features) and applies all checks that fit that entity type.

Cost + cancellation

  • ProductSense uses your Anthropic key (the BYO key under Settings → AI) and needs the member role or higher. A page-wide run is typically $0.10–$1.00 depending on entity count.
  • The model's output is capped at the top 20 most important fixes per run, prioritized errors > warnings > info, so a single run won't fan out forever. Runs are limited to 10 per user per minute.
  • Closing the panel discards the suggestions you didn't act on, but it doesn't abort a request already in flight, so you're billed for the run either way.

Programmatic access

  • REST: POST /api/ai/productsense (not under /api/v1/*; takes the in-app session, not API tokens). Body: { mode: 'entity' | 'page', entityType, entityId?, entities?, checks? }. Streams text/plain JSON suggestions; the X-ProductSense-Checks response header lists the checks that actually ran.
  • MCP: there is no dedicated ProductSense MCP tool. Claude Code sessions use the entity-specific MCP tools instead (get_feature, update_feature_status, etc.).
  • Onboarding cleanup: after importing historical feedback, run tags + urgency to normalize.
  • Quarterly hygiene: first Monday of each quarter, run descriptions + orphans over feedback and features.
  • Before a stakeholder review: run descriptions + links on status = planned, in-progress features so the planning surface isn't full of half-spec'd rows.
  • Theme-merge prep: after a linking pass, run breadth + descriptions on themes to surface catch-alls and near-duplicates.

Guardrails

  • ProductSense never hard-deletes. The strongest actions are unlink and set_field; the orphans check may offer an Or delete variant, which moves the row to the Trash (restorable). Every applied suggestion goes through the same validated, audited action path as the Copilot and returns an inverse, so the panel's Undo reverses it.
  • Every applied suggestion writes an activity-log entry through that AI apply path; it's tagged as an AI apply rather than a separate ProductSense actor.
  • Re-running the same check on the same scope returns few new suggestions, because the model sees the cleaned state.

Next

Last reviewed 2026-09-22