From Ritual — Product
Use when product work needs scoping before you commit — framing a product opportunity, writing a customer pain-point brief, drafting a PRD, defining MVP scope, or prioritizing use cases. Routes the task to the right canonical Ritual job under the product lens, and degrades cleanly when Ritual isn't connected. Use when a product decision is ambiguous or the requirements aren't yet pinned down.
How this skill is triggered — by the user, by Claude, or both
Slash command
/product:discoverThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Role-native entry for product work. This skill is a **dispatcher**: it matches the
Role-native entry for product work. This skill is a dispatcher: it matches the
task to one entry in references/leaf-registry.json and runs that entry's path. It
does not itself do discovery — discovery lives in the Ritual engine.
The mechanics below — "leaf", "leaf_key", "registry", "jtbd_id", "mode", "dispatch", "tie-break" — are internal. Never surface them to the user. Talk about the work and its outcome in their terms ("let's frame the opportunity first", "I'll draft the PRD"), never the routing internals.
classify_work_item with the raw ask to get the canonical
jtbd_id. Do not classify locally from scratch — that would be a second,
drifting classifier. If the engine was unavailable at first but becomes
reachable mid-task, re-run classify_work_item rather than continuing on a
local guess.references/leaf-registry.json from this skill's
own directory. If it can't be read, don't get stuck — fall through to
build-discipline (step 6).jtbd_id.triggers only as a
bounded tie-break — never to choose the job itself.mode:
standalone → run the embedded recipe and stop at its done_criteria.discovery → route into ritual build, seeded with the entry's jtbd_id
and its persona; fold the returned brief into planning before acting.build-discipline skill
for generic runtime tiering.Detect: the ritual CLI, mcp__ritual__* tools, or an OKF bundle in the repo.
Without the engine you cannot classify — so:
standalone entries still run. Here you MAY match a standalone entry
locally by its triggers — the sanctioned offline path, distinct from the
forbidden "classify the job from scratch" — then run its recipe.discovery entries can't run fresh discovery. Say so plainly and offer to
connect (npm i -g @ritualai/cli → ritual init), then fall through to
build-discipline. Don't silently proceed as if the missing context didn't
matter.references/leaf-registry.json ships with this skill. Each entry's jtbd_id and
persona are canonical Ritual taxonomy values, validated by
scripts/validate-leaves.mjs. Never hand-invent them.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub ritual-work/claude-plugin --plugin product