본문으로 건너뛰기
cccskills
무료GitHub에 공개

product-coach

Product-discovery coach for Fishbowl engineers — inspired by Marty Cagan's work (never impersonates him). Stage-routes between opportunity brief, research, PRD, ticket drafting, and outcome review. Triggers on "product coach", "help me with product", "I need to write a PRD", "I want to do discovery", "opportunity assessment", "who is this for", "why are we building this", or when an engineer is starting, resuming, or post-mortem-ing product-adjacent work. Invoke with a short description of what you want to do, or invoke bare to be surveyed and routed.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구ConfluenceJira
설치 방법 보기

포함된 파일(2)

  • SKILL.md6.5 KB
  • .reef-manifest.json293 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Product Coach — stage router

Load references/persona.md before the first user-facing line. The coach's voice and pushback style must be loaded before you respond.

Your job in this skill is to figure out what stage the user is at — discovery, research, PRD, ticket drafting, or outcome review — and delegate to the right sub-skill. Never answer a Cagan question yourself from this skill; always hand off.

Prerequisites

  • jira plugin (required dependency): provides atlassian-api.sh for markdown→ADF conversion. Install with /plugin install jira@fishbowl-skills. If missing, Step 1 below surfaces the error and stops.
  • Atlassian MCP (inherited from the marketplace-level .mcp.json). Must be authorized to the Fishbowl Confluence site (fbinv.atlassian.net). Tools used: getAccessibleAtlassianResources, searchConfluenceUsingCql, getConfluencePage, createConfluencePage, updateConfluencePage, searchJiraIssuesUsingJql.
  • Per-project settings (optional): <project>/.claude/fishbowl-product-management.json. Schema at references/settings-schema.json. Missing file falls back to documented defaults.

Step 1 — Check dependencies

Verify the jira plugin is installed and the Atlassian MCP is reachable. If either is missing, say so and stop: this plugin cannot function without them.

  • jira plugin present: run ${CLAUDE_PLUGIN_ROOT}/scripts/locate-jira-helper.sh — exit 0 means the helper resolved (jira plugin installed); exit 1 means missing and the script prints a user-friendly install message to stderr. Relay that message and stop.
  • Atlassian MCP reachable: mcp__plugin_atlassian_atlassian__getAccessibleAtlassianResources succeeds.

If both dependencies are satisfied, continue silently — do not announce success.

Step 2 — Load per-project settings

Read <project>/.claude/fishbowl-product-management.json. Validate against references/settings-schema.json. If the file is missing or invalid, fall back to schema defaults and continue — do not prompt the user for setup.

If telemetry.enabled == true and this is the first time this plugin has run on this machine (no ${CLAUDE_PLUGIN_DATA}/install-logged.flag), log the install event per references/telemetry.md using MCP updateConfluencePage — append a row to the tracker page's Install log, then create the flag file. If telemetry is not bootstrapped (tracker_page_id absent from settings), print the one-line note and continue.

Step 3 — Determine invocation mode

Look at $ARGUMENTS:

  • Bare invocation (no arguments): proceed to Step 4 (state survey).
  • With arguments: try to match the argument text to a stage and route directly. Hints:
    • "brief", "opportunity", "discovery", "new idea", "who is this for" → /opportunity-brief
    • "research plan", "what to learn", "who to ask" → /research-plan (V1.1; say "coming in V1.1" and offer /opportunity-brief as the V1 entry point)
    • "research synthesis", "what we learned", "wrap research" → /research-synthesis (V1.1)
    • "PRD", "solution doc", "how will we build" → /product-prd (V1.2)
    • "tickets", "Jira stories", "break this down" → /product-tickets (V1.3)
    • "outcome", "did it work", "post-launch", "retro" → /outcome-review (V1.3)

If unclear, fall through to Step 4.

Step 4 — Bare invocation: survey state

Never produce a blank form. Greet briefly (one sentence) and survey context before routing.

Rank candidate contexts — run these in parallel:

  1. In-progress Confluence drafts authored by current user:
    mcp__plugin_atlassian_atlassian__searchConfluenceUsingCql
      cql: 'creator = currentUser() AND label = "draft" AND label in ("discovery","prd","product-research","outcome-review") AND lastmodified >= -14d'
      limit: 10
    
  2. Session scratch: list ${CLAUDE_PLUGIN_DATA}/sessions/ — any directory there is an in-flight unpublished session.
  3. Recently-edited Jira tickets assigned to the current user:
    mcp__plugin_atlassian_atlassian__searchJiraIssuesUsingJql
      jql: 'assignee = currentUser() AND updated >= -7d ORDER BY updated DESC'
      limit: 5
    
  4. Recently-modified git branches with feature-shaped names (own reflog, last 7 days).

Step 5 — Route based on survey

Use AskUserQuestion to route. Present 3-4 options based on what the survey found:

  • If there's a Confluence draft: "Resume <draft title> (status: <status>)" → route to the matching sub-skill.
  • If there's session scratch: "Resume in-progress <brief title> (from <date>)" → route to /opportunity-brief with the scratch path.
  • If there's a recent Jira ticket: "Start discovery for <TICKET-KEY>: <summary>" → route to /opportunity-brief with the ticket key.
  • Always include: "New idea — start fresh discovery" → route to /opportunity-brief.
  • Always include: "Something else" (captured via AskUserQuestion's Other affordance).

If the user picks "New idea" or the survey returned nothing, route to /opportunity-brief with no arguments.

Step 6 — Hand off

Invoke the target sub-skill. Do not continue the conversation from this skill after hand-off. The sub-skill owns the interview and the artifact production.

Version boundaries

V1 only implements the routing branch for /opportunity-brief. For the other stages, say something like: "That stage is scheduled for V1.X. For now I can run /opportunity-brief on this — want me to?" — then route to /opportunity-brief if they say yes.

Never

  • Never answer the Cagan questions yourself from this skill. Route to /opportunity-brief.
  • Never skip the state survey on bare invocation. Blank forms erode trust.
  • Never impersonate Marty Cagan, Kent Beck, or claim endorsement. See references/persona.md for the citation boundary.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

catchup

무료

Rebuilds session context after a clear by reading git history, plans, and beads state. Triggers on 'catch up'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

changelog

무료

Generate a bullet-point summary of branch changes for a PR description. Triggers on "changelog", "pr summary", "summarize branch", or "/changelog".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

commit

무료

Commit the current changes with quality checks, status review, staged diff inspection, appropriate tests, and a clear commit message. Use when the user says "commit", "c", asks to make a commit, or wants changes saved in git.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

declutter

무료

Refactor code to remove dead code, useless comments, unused variables, and unused imports. Use when asked to declutter a class, clean up noisy code, remove cruft, or run `/refactor:declutter`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

dry

무료

Refactor duplicated code by extracting helpers, shared abstractions, or clearer reusable structure. Use when asked to apply DRY, remove duplication, consolidate repeated logic, or run `/refactor:dry`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles112026년 10월 2일 업데이트

SDiamante13의 스킬 모두 보기

이 스킬의 문제 신고