agentsclimarketplace

Product dev workflow

Skill diablofong/product-dev-workflow

A flexible Claude Skill for the full product & software development lifecycle

Install
npx -y skills add diablofong/product-dev-workflow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Product Dev Workflow β€” a branch-per-task development assistant. Single slash command /pdw with seven sub-flows. Use /pdw alone to see the menu, or /pdw [sub] [args] for a specific flow. Sub-commands are init, talk, dev, hotfix, done, status. Also accepts natural language ("/pdw I want to build a login page") and auto-routes.

SKILL.md

15.5 KB, as published. Nobody here has run it

/pdw β€” Product Dev Workflow

A branch-per-task development workflow. One command covers the whole product lifecycle: discussion, development, hotfix, completion, status.

🌐 Language Rule (applies to EVERYTHING below)

Always reply in the same language the user writes in. If the user writes Chinese, reply entirely in Chinese β€” translate all menus, prompts, confirmations, status messages, branch template section headers, and template placeholder labels. If the user writes English, reply entirely in English.

Only exceptions kept in English regardless: git commands, branch names, file paths, technical keywords (e.g. main, HEAD, PR, CURRENT.md).

Never mix languages unless the user does. The user's language is detected from their most recent message.


Argument Parsing

When the user types /pdw [args...], parse the first token:

First tokenAction
(empty)Show the menu (see "Menu" section below)
initRun the Init flow
talk (+ topic)Run the Roundtable flow
dev (+ task)Run the Development flow
hotfix (+ desc)Run the Hotfix flow
done (+ abandon?)Run the Done flow
statusRun the Status flow
Natural language descriptionAuto-route (see "Auto-Route" below)

Auto-Route (natural language)

If the first token is not a recognized sub-command, treat the whole argument as a natural-language description and auto-decide:

Description signalsRoute to
No .claude/records/ exists yetSuggest init first
Discussion / market analysis / ideation / "should we" / no dev neededtalk
Urgent / P0 / production down / broken / "now" / "asap"hotfix
Feature / bug / refactor / batch / "build" / "add" / "fix"dev

Tell the user which sub-flow you picked and why, then proceed. If unsure, ask.


Menu (shown when /pdw is typed with no args)

Display this menu in the user's language (translate headers, labels, and hints; keep command syntax in English):

πŸ“‹ Product Dev Workflow β€” branch-per-task development

  /pdw                     Show this menu
  /pdw init                Initialize this project (one-time, any project)
  /pdw talk <topic>        Roundtable discussion (no dev)
  /pdw dev <task>          Development β€” new branch / resume / bug / batch
  /pdw hotfix <desc>       Emergency fix (auto-pauses current branch)
  /pdw done [abandon]      Finish current work
  /pdw status              Show current state (focus / paused / queued)

You can also describe your need in plain language:
  /pdw I want to add a login page
  /pdw analyze the Taiwan backup software market
  /pdw payment API is returning 500 in production

I will pick the right sub-flow for you.

Sub-Flow 1: init β€” Initialize Project

Model: 🟑 Sonnet

Sets up .claude/records/ structure for any project β€” empty or already in progress. Runs once per project.

Pre-check

If .claude/records/ already exists β†’ abort and tell the user to run /pdw status instead.

Detect Project Type

Run (or ask the user to run):

git branch --list
git branch --show-current
git log --oneline -1 2>/dev/null
git status --short
ConditionMode
No commits / no branches beyond main🟒 Fresh Mode
Has non-main branches or uncommitted work on a feature branchπŸ”΅ Onboard Mode

If ambiguous (only main with commits but no other branches), ask the user to choose.

🟒 Fresh Mode

Create the structure without further questions:

.claude/records/
β”œβ”€β”€ CURRENT.md
β”œβ”€β”€ NOTES.md
β”œβ”€β”€ branches/
└── archive/branches/

CURRENT.md template (translate labels to user's language):

# Current State

## Focus
(none)

## Paused
(none)

## Queued
(none)

## Version
current : v0.1
status  : not-started

Offer to add .claude/ to .gitignore. Show a short success message in the user's language with suggested next steps (/pdw talk or /pdw dev).

πŸ”΅ Onboard Mode

For each non-main branch, ask the user (in their language):

  1. Branch type: feature / bugfix / hotfix / refactor / unsure
  2. One-line description of what this branch does
  3. Current progress: planning / design done / mid-implementation / nearly done
  4. Next action (one line β€” this is the resume point)

If the user can't remember a branch: offer "skip and mark as needs-review".

Classify into CURRENT.md:

  • Current git branch β†’ Focus
  • Recent commits (≀7 days) β†’ Paused
  • Stale (>7 days no activity) β†’ Queued with a "stale?" marker

Show the proposed state and confirm before writing files.

Branch file (Snapshot Mode): Generate from the appropriate template (light/medium/heavy by type β€” see Sub-Flow 3 for templates). For unknown sections, insert a short placeholder note in the user's language indicating it was not backfilled during onboarding (e.g. *[not backfilled during onboarding]* or *[ζŽ₯ε…₯ζ™‚ζœͺε›žζΊ―]*).

Rules

  • Read-only git queries only. Never run destructive git commands.
  • Idempotent: second run aborts cleanly.
  • Never force retroactive documentation.

Sub-Flow 2: talk β€” Roundtable Discussion

Model: 🟑 Sonnet Purpose: Market analysis, ideation, competitive research, architecture discussion β€” no development required.

Before Starting

Prompt user to switch to Sonnet (in their language):

  • Claude Code β†’ /model sonnet
  • Claude.ai β†’ Click model name β†’ Select Sonnet

Fixed Roles (always present)

  • πŸ“‹ Product Manager β€” requirements, priorities, alignment
  • πŸ— Technical Architect β€” feasibility, architecture
  • πŸ‘€ End User β€” pain points, usability

Dynamic Roles (31 total β€” auto-select 2–4 by topic)

C-Suite: πŸ‘” CEO Β· πŸ›  CTO Β· πŸ’Ό COO Β· πŸ’° CFO Β· 🎨 CPO Β· πŸ“£ CMO Management: πŸ— Engineering Manager Β· πŸ“Š Data Lead Β· πŸ” CISO Β· 🀝 Partnership Manager Specialists: 🎨 UX Designer Β· βš–οΈ Legal Β· πŸ§ͺ QA Β· πŸ“Š Business Analyst Β· πŸ“Š Data Engineer Β· πŸ”¬ Data Scientist Β· πŸ” Security Engineer Β· πŸ› DevOps/SRE Β· πŸ’° Finance Β· πŸ‘€ Customer Success Β· 🎯 Growth Β· 🀝 Sales Β· 🌍 Localization Β· β™Ώ Accessibility Β· πŸ“± Mobile Engineer Β· πŸ€– AI Engineer Β· πŸ“£ Marketing External: 🏒 Enterprise Client Β· πŸ” Competitor Analyst Β· πŸ’‘ Industry Advisor

Auto-Selection by Topic

TopicAuto-invite
New productCEO, CPO, CMO, Marketing, Finance
Major versionCEO, CTO, CPO, Engineering Manager
ArchitectureCTO, Engineering Manager, DevOps
Business modelCEO, CFO, CMO, Business Analyst
AI featuresAI Engineer, CTO, Legal, Security
User dataCISO, Security, Legal, Data Engineer
Go-to-marketCEO, CMO, CPO, Sales, Marketing
Market researchCompetitor Analyst, Industry Advisor, CMO
Mobile / AppMobile Engineer, UX Designer, QA
B2BCEO, Sales, Partnership, Enterprise Client
InternationalizationLocalization, CMO, Legal
Security / complianceCISO, Security Engineer, Legal

Confirmation

Show proposed attendees and ask for confirmation (in user's language).

Output Format

All section labels in user's language:

πŸ“„ ROUNDTABLE SUMMARY
────────────────────────────────
Topic      :
Attendees  :

[Role] Perspective:
  ...

Consensus      :
Action Items   :
Open Questions :
────────────────────────────────

After output, ask:

  • Save summary to .claude/records/?
  • Start a development branch for any action item? (if yes, hand off to dev flow)

Sub-Flow 3: dev β€” Development

Model: 🟑 Sonnet (πŸ”΄ Opus when stuck Β· πŸ”΅ Haiku for batch)

Decision Tree

/pdw dev [task?]
    ↓
Focus branch in CURRENT.md?
  YES + no new task   β†’  RESUME (show next step, continue)
  YES + new task      β†’  ASK ("Pause current and start new, or add to current?")
  NO                  β†’  NEW BRANCH

Branch Classification (for NEW BRANCH)

SignalsTypeTemplateModel
rename / batch / list of β‰₯3 itemsπŸ”΅ batchLightHaiku
bug / error / crash / broken🟑 bugfixMediumSonnet
refactor / cross-module / restructure🟒 refactorHeavySonnet/Opus
feature / add / build / new🟒 featureHeavySonnet

Confirmation Before Creating

Show (in user's language):

🌱 New branch
   name     : feature/login-page
   template : 🟒 heavy
   model    : 🟑 Sonnet
   git cmd  : git checkout -b feature/login-page

Ask to proceed / adjust / cancel.

Branch Templates

When generating a branch file, translate all section headers to the user's language. Keep branch names, main, HEAD etc. in English.

πŸ”΄ Light (hotfix / simple bug / batch)

Type Β· Created Β· Base

Problem:
Fix:
Verification:
Tasks: [ ] Fix applied Β· [ ] Tested Β· [ ] Ready to merge
Pause Point:
  next step :

🟑 Medium (bugfix)

Type Β· Created Β· Base

Symptoms:
Root Cause:
Solution:
Tasks: [ ] Implement fix Β· [ ] Regression test Β· [ ] Docs
Test Plan:
PR Description (draft):
Pause Point:
  next step :

🟒 Heavy (feature / refactor)

Type Β· Created Β· Base

Background & Goal:
Design:
  Data / Schema:
  API / Interfaces:
  Flow / Sequence:
Task Breakdown:
  - [ ] Task 1
  - [ ] Task 2
Test Plan:
Risks & Open Questions:
PR Description (draft):
Pause Point:
  paused at :
  next step :
Notes:

Resuming

When focus branch exists and no new task is given, show (in user's language):

  • Branch name
  • Last pause point + next step
  • Task progress (X of Y done, with next task marked)
  • Ask: continue, or show full branch file?

Batch Mode (auto-triggered)

When classification β†’ batch:

  1. Show execution plan, ask for confirmation
  2. Prompt Haiku switch
  3. Execute, report results
  4. Prompt switch back to Sonnet

Blocker

If stuck: prompt Opus switch. User can continue on Sonnet if they prefer.

During Development

If the user mentions a lesson learned, decision rationale, or gotcha β†’ offer to save to NOTES.md.


Sub-Flow 4: hotfix β€” Emergency Interrupt

Model: 🟑 Sonnet (πŸ”΄ Opus for mysterious bugs)

Step 1 β€” Auto-Pause Current Focus

If CURRENT.md has an active focus:

  1. Save pause point to the branch file:
    • paused at: β€” auto-detect from recent context if possible
    • next step: β€” ask the user for one line (in their language) to serve as the resume point
  2. Move focus β†’ paused in CURRENT.md.

Step 2 β€” Open Hotfix Branch

git checkout -b hotfix/[short-desc]

Create branch file using the πŸ”΄ Light template (headers in user's language).

Step 3 β€” Assess and Fix

SeverityCriteriaApproach
P0Production down / data lossFix immediately, minimal docs
HardCan't identify root causePrompt Opus switch
StandardClear causeNormal light-template flow

On Completion

When /pdw done closes this hotfix, offer to resume the paused focus branch. Show the saved next step. Ask in user's language.


Sub-Flow 5: done β€” Finish Current Work

Context-aware β€” auto-detects what "done" means based on current state.

Decision Tree

/pdw done [argument?]
    ↓
arg = "abandon"?                β†’  ABANDON
Focus is a hotfix branch?       β†’  CLOSE HOTFIX + offer resume
All tasks on focus checked?     β†’  CLOSE BRANCH normally
Tasks remaining?                β†’  Ask: which task done, or close whole branch?
No focus + version's branches done? β†’  Offer VERSION WRAP
No focus?                       β†’  Show status, suggest /pdw dev

Close Branch (Normal)

Generate PR description from the branch file (in user's language). Confirm before archiving. Move branches/[name].md β†’ archive/branches/[name].md. Clear focus in CURRENT.md. Show remaining queued branches or offer to resume paused.

Close Hotfix

Same as normal close, then offer to resume the paused focus branch with its saved next step.

Abandon

/pdw done abandon

Ask for optional reason. Archive with status: abandoned.

Version Wrap (auto-offered)

When the last active branch of a version closes, offer wrap. User confirms with wrap.

Retrospective flow (on wrap):

  1. Prompt Opus switch
  2. Run retrospective with sections (in user's language): Period Β· Branches completed Β· Branches abandoned Β· What went well Β· What didn't Β· Key learnings Β· Tech debt noted Β· Next version ideas
  3. Archive CURRENT.md snapshot to archive/, reset to empty template
  4. Ask about planning the next version

Sub-Flow 6: status β€” Show Current State

Read CURRENT.md and display in the user's language:

πŸ“Š Current State β€” [datetime]
────────────────────────────────

🎯 Focus
   [branch-name]   (started X days ago)
   Next: [next step]
   Tasks: X of Y done

⏸ Paused (N)
   [branch-name]
     paused X days ago
     next: "[resume instruction]"

πŸ”œ Queued (N)
   [branch-name] β€” [note]

────────────────────────────────
Version: vX.x Β· N branches merged this version

If .claude/records/ does not exist: tell the user to run /pdw init first (in their language).

Occasionally show a context hygiene reminder:

  • Share with Claude: CURRENT.md + active branch file only
  • Never share: archive/, paused branch files, NOTES.md (unless needed)

Records Structure

project/
β”œβ”€β”€ src/                        ← your code
β”œβ”€β”€ .gitignore                  ← .claude/ added automatically by /pdw init
└── .claude/
    β”œβ”€β”€ skills/                 ← skill files
    └── records/
        β”œβ”€β”€ CURRENT.md          ← global state: focus / paused / queued
        β”œβ”€β”€ NOTES.md            ← lessons learned, decisions, gotchas
        β”œβ”€β”€ branches/           ← one file per active or paused branch
        └── archive/
            β”œβ”€β”€ branches/       ← merged / abandoned branches
            └── vX.X-*.md       ← version snapshots

Model Quick Reference

πŸ”΄ Opus    β†’ New product planning, major version, retrospective, hard bugs, architecture
🟑 Sonnet  β†’ Roundtable, planning, development (main workhorse)
πŸ”΅ Haiku   β†’ Batch tasks (auto-triggered via dev flow)

How to Switch Models

  • Claude Code: /model opus Β· /model sonnet Β· /model haiku
  • Claude.ai: Click model name at top β†’ select model

Quick Examples

/pdw                                 β†’ Show menu
/pdw init                            β†’ Initialize this project
/pdw talk analyze Taiwan backup SaaS β†’ Roundtable discussion
/pdw dev build a login page         β†’ Open feature branch + planning
/pdw hotfix payment API returns 500 β†’ Auto-pause + open hotfix branch
/pdw done                            β†’ Close current branch
/pdw status                          β†’ Where am I?

/pdw I want to add OAuth login       β†’ Auto-routes to dev
/pdw production is on fire           β†’ Auto-routes to hotfix
/pdw should we enter the EU market   β†’ Auto-routes to talk

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.