From onex
Brainstorm gaps, loopholes, and improvement ideas across an entire module or app, reviewed through a product manager's lens. Always confirms scope first by asking which module to review (with a detected list to pick from) unless the user already named one. Returns a thematic, severity-marked, continuously-numbered list and ends with a prioritized "top 5 this week" pick, then offers to phase implementation. Use when the user says "ideate", "ideate on X", "what are we missing", "review this as a PM", "what could we improve", "brainstorm gaps", "loopholes in this", "what's next on this module/app", or asks for a numbered list of refinements at the module or product level. Do NOT use for bug fixes, one-line changes, pure code reviews, or architectural decisions — this is product-thinking scope at the module/app level, not engineering scope.
How this skill is triggered — by the user, by Claude, or both
Slash command
/onex:ideateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Brainstorm gaps and improvement ideas across an **entire module or app**, reviewed as a senior product manager. The goal is to surface what a heads-down engineer most likely missed across the whole surface — security, activation, billing, ops, growth, polish — then let the user pick which items to implement next.
Brainstorm gaps and improvement ideas across an entire module or app, reviewed as a senior product manager. The goal is to surface what a heads-down engineer most likely missed across the whole surface — security, activation, billing, ops, growth, polish — then let the user pick which items to implement next.
Scope is module- or app-level, not a single feature or recent diff. This is intentionally broader than a code review or a feature retrospective.
You MUST establish which module/app you are ideating on before generating any ideas. Run this decision in order:
To detect candidate modules, inspect the working tree without reading source code line-by-line:
apps/*, top-level app/ route segments (e.g. app/dashboard, app/admin, app/[slug]), and large components/ or lib/ clusters.git ls-files | head -200, ls -la apps/, ls -la app/, or equivalent — fast surface scan, no deep reads.Then ask the user with AskUserQuestion (or a clear question if the tool isn't available), offering 3–5 detected candidates plus an "entire app" option. Example:
Which module should I ideate on?
- auth — sign-in/sign-up flows, sessions, password reset (
lib/auth.ts,app/(auth)/*)- dashboard — owner-facing profile editor (
app/dashboard/*)- admin — operator UI for managing users/profiles (
app/admin/*)- public profile —
/[slug]rendering, vCard, OG image, agent chat (app/[slug]/*)- billing — Stripe checkout, webhooks, entitlements (
app/api/stripe/*,lib/billing.ts)- entire app — cross-cutting review across everything above
Wait for the answer. Do not generate ideas until scope is confirmed.
Once scope is set, build a quick mental map (5–10 minutes of reading max) so the review is grounded in what actually exists:
You are mapping the surface area — not auditing every line. If the module is large, skim. If it's tiny, you'll know within a minute.
Apply a senior product manager's lens — not a code reviewer's. Skip naming, lint, micro-refactors. The review must span these themes (omit any theme that genuinely doesn't apply, but check each one):
Use lettered thematic sections (A, B, C…) with continuous numbering across all sections (1, 2, 3… running through every section). Each item is one sentence (occasionally two if the fix needs to be named). Reference concrete file paths where you can — they make items actionable instead of abstract.
Severity markers — prefix every item with one:
Open with a one-line scoping statement ("Putting on the PM hat and reviewing the X module…"). Then the lettered sections. Aim for 25–50 items for a real module review — this is intentionally broader than a feature ideate; if you only find 10, either the module is tiny or you didn't look hard enough.
Then close with two required sections:
A short numbered list (3–5 items) calling out the highest-leverage picks from the full list, referencing them by their numbers. Each pick gets a one-line "why this one" rationale.
End with exactly this line (do not paraphrase):
Let me know which numbers you want to pursue (and any reordering) and I'll work them in slices.
When the user replies with numbers — or says "do all the red and yellow items", or "phase out the top 10" — implement them as a normal task. Default behavior:
docs/ (or wherever the project keeps plans) detailing each phase before executing, and commit after each phase before moving on. Confirm the plan location with the user if unclear.Putting on the PM hat and reviewing the **billing** module (`app/api/stripe/*`, `lib/billing.ts`, `app/pricing/*`, the upgrade flow in `app/dashboard/upgrade/`). Findings grouped by theme — numbered continuously so you can reference them. Severity markers: 🔴 ship-blocker · 🟡 strong-recommend · 🟢 next-quarter.
**A. Security & correctness**
1. 🔴 Stripe webhook signature isn't verified in `app/api/stripe/webhook/route.ts` — any caller can post fake checkout-completed events and grant entitlements. Use `stripe.webhooks.constructEvent` with `STRIPE_WEBHOOK_SECRET`.
2. 🔴 Entitlement is written from the client success-page redirect in `app/checkout/success/page.tsx` rather than the webhook — a user can refresh that page after refund and re-grant themselves access.
3. 🟡 No idempotency key on the Checkout Session create call; a double-click on "Upgrade" creates two sessions and two charges.
**B. Billing & monetization**
4. 🟡 No Stripe Customer Portal wired up — users can't update payment method, download receipts, or cancel. One server action + one link.
5. 🟡 No upgrade path Personal → Pro at the price delta; today the user would re-pay full Pro price.
6. 🟢 Annual SKU isn't offered — Stripe supports it natively; ~15% revenue lift typical.
**C. Admin / operator UX**
7. 🟡 No way to issue a refund from `app/admin` — operators currently jump into the Stripe dashboard. Add a "Refund" button on the order row with confirm + reason.
8. 🟢 Audit log of admin billing actions (refunds, comp upgrades, manual entitlement grants) doesn't exist.
… (sections D–J, items 9–40+)
---
**My pick for "if you do 5 things this week"**
1. **Items 1, 2** — webhook signature + move entitlement to webhook. Anything else is moot if entitlements aren't trustworthy.
2. **Item 4** — Stripe Customer Portal. The first refund request is coming; this is one server action.
3. **Item 7** — refund button in admin. Removes the "jump into Stripe dashboard" tax on the team.
4. **Item 3** — idempotency. Cheap; prevents the support tickets nobody wants to debug.
5. **Item 5** — upgrade path. Currently blocking a real user request.
> Let me know which numbers you want to pursue (and any reordering) and I'll work them in slices.
app/foo/bar.ts beats "the billing service" — every time.npx claudepluginhub onextech/skills --plugin onexProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.