1---2name: product-health3description: Product health checks, investigations, and reports.4---56## Workflow781. Establish the scope and comparison window from `PRODUCT_SETUP.md`, recent git history, project documentation, and available health sources.92. Apply the evaluation and source-routing rules below, then query only the sources relevant to the product and requested scope.103. Deliver the ranked health report after every relevant finding is supported, dismissed as noise, or recorded as an evidence gap.1112## Evaluation1314- Report missing or stale `PRODUCT_SETUP.md` context as an observability gap.15- Compare the current window with both the previous window and usual baseline. Treat recent commits as investigation leads, not proof.16- Assess only relevant product journeys, jobs, data integrity, performance, observability, AI usage, and cost or capacity.17- Prefer structured CLI or API output over dashboards. Apart from the permitted Sentry cleanup below, stop on production mutations, destructive18 queries, long exports, or ambiguous targets.19- Investigate each material signal until its cause, impact, baseline change, and confidence are supportable or the missing evidence is explicit.2021## Source routing2223- **Sentry:** Use $sentry-cli and its current help. Verify the organization and project, then inspect full issue details and representative events.24- **PostHog:** Use $cli-tools for PostHog source access, $investigate-metric for material metric changes, and $diagnosing-sdk-health for SDK health.25- **Queues, schedulers, and servers:** Discover deployed surfaces from code and configuration. Use documented read-only application commands,26 $cli-tools for Laravel Forge, or SSH as applicable. Measure live backlog, age, retries, failures, execution, services, and capacity.27- **Databases and managed services:** Use $service-access, the provider's current CLI or API help, and live schema or telemetry. Keep queries28 read-only and never report credentials.29- **Redis:** Determine whether it serves cache, sessions, queues, or another role from project configuration before querying relevant read-only30 telemetry.31- **AI features:** Locate the product's conversation, run, step, usage, tool-call, credit, proposal, and safety evidence. Assess adoption, repeat use,32 outcomes, latency, unresolved sessions, action follow-through, cost pressure, safety blocks, and user friction.33- **Search:** Discover the active provider and integration before querying its current read-only health, metrics, and index state.3435## Sentry cleanup3637- Resolve an issue during the report only after evidence confirms it is fixed, inactive, superseded, or known noise.38- Do not bulk-resolve or change active or ambiguous issues.39- Record every resolved issue with a green status emoji, linked identifier, title, stale evidence, and why resolution was safe.4041## Report contract4243- Lead with findings and analysis, then place pure statistics in a table.44- End with a ranked **Action items** section as the final substantive section. Map every material finding or observability gap to a concrete next45 action, its urgency, and the evidence that will confirm completion. Distinguish required fixes from recommended follow-up and monitoring. If no46 action is warranted, state that explicitly and give the condition that would trigger action.47- Prefix every statistics table row with exactly one interpretation marker: 🟢 for healthy or improved, 🟡 for warning, uncertain, or worth watching,48 and 🔴 for failed, severely regressed, or requiring action.49- Rank findings by affected users or tenants, critical-flow impact, revenue risk, and operational risk. Use colored status emojis and include50 observability gaps.51- For each finding, state cause, severity, baseline change, impact, confidence, suspicious evidence, and any false alarm or ignorable noise.52- Link opaque identifiers with their titles: `[APP-123](https://issue-url) - issue description`.