An open-source PM framework for teams building with AI agents. Structured thinking. Persistent product memory. Agent-ready output β from signal to ship.
β Visual walkthrough β user journey, pain points, LLM vs ProdMan, agentic benefits.
You're building with AI agents. Your workflow looks like this:
You re-explain your product to the AI. Every. Single. Session. You paste a PRD into Claude Code and hope the agent figures out scope. You write specs in Notion, tickets in Linear, briefs for engineers, 1-pagers for execs β all manually, all for the same feature. Retro learnings go into a doc nobody reads again. The next feature starts as cold as the first one.
The problem isn't AI capability. It's that nothing connects.
ProdMan connects it.
You can. But three things break at scale:
1. Memory loss. Every new session starts cold. You re-explain your product, your users, your constraints. The AI gives generic advice. ProdMan loads prodman-context/ before every command β the AI already knows your product before you type.
2. Agent handoff risk. Pasting a Notion PRD into Claude Code works until the agent overengineers, misses scope, or makes silent decisions it shouldn't. An agent-brief.md gives the agent bounded scope, explicit must-NOT-do lists, and escalation triggers β so it knows when to stop and ask.
3. Audience rewrites. You write one spec, then manually rewrite it for engineers, designers, and execs. ProdMan generates 5 audience-ready views from one source on demand.
ProdMan is two things working together: 12 AI command prompts for the PM workflow, and a CLI + compiler that validates specs and turns them into machine-readable contracts.
/pm-import β Run once. Generates your persistent product memory.
β
/pm-signal β Drop a raw signal. AI asks before it prescribes.
/pm-frame β 2β3 distinct problem framings to react against.
/pm-explore β 6-dimension deep-dive, one question at a time.
/pm-commit β Lock direction. Writes commitment.md to disk.
β
/pm-ff β Full spec bundle in one shot. Agent brief is primary output.
β
prodman validate β 12 lint rules catch vague AC, missing escalation triggers, unfilled tech context, etc.
prodman compile β Compiles agent-brief.md β compiled-spec.json (machine-readable)
β
/pm-handoff β engineer / designer / exec / tickets β each gets their view.
β
/pm-ship β Launch checklist + comms plan.
/pm-retro β Retrospective β auto-updates history.md β next feature smarter.
β_______________________________________________|
prodman-context/ is your persistent product brain. Every command loads it automatically. The more features you ship, the smarter it gets.
No prerequisites. Clone and go. Claude Code gives you native slash commands β but any AI tool works.
git clone https://github.com/VisNavyVet/PRODMAN.git
cd PRODMANBoth paths below end at the same place: a validated agent-brief.md that passes all 12 lint rules, ready for any AI coding agent.
Who: Technical founders, PMs with a fuzzy problem that needs thinking through. Time: 2β3 short sessions. Commands: 5.
Step 0 /pm-import Bootstrap product memory once
β
Step 1 /pm-signal Drop raw signal β ProdMan asks one question at a time
β Writes features/[name]/signal.md
Step 2 /pm-frame 3 framings to react against
/pm-explore 6-dimension deep-dive β both persist across sessions
β
Step 3 /pm-commit Lock direction β writes commitment.md
β
Step 4 /pm-ff Full spec bundle: brief + PRD + approach + plan + agent-brief.md
β
Fix lint errors β status bar shows β 12/12 β launch agent
Start here: /pm-signal [your signal]
Who: Any PM with an existing PRD from Claude, ChatGPT, Notion, Jira, Linear, or rough notes. Time: ~15 minutes. Commands: 1.
Step 0 /pm-import Bootstrap product memory once (paste existing docs to skip)
β
Step 1 /pm-agent-brief Paste your PRD β ProdMan extracts scope, requirements, AC
Fills gaps through targeted questions only
β
Step 2 Fix lint errors Red squiggles show what's missing β Quick Fix inserts templates
β
Status bar shows β 12/12 β launch agent
PRDs are written for humans. Agent briefs are written for agents. /pm-agent-brief converts between the two.
Start here: /pm-agent-brief [feature-name] β then paste your PRD when prompted.
Works with: Claude/ChatGPT output Β· Notion Β· Jira Β· Linear Β· Google Docs Β· rough notes
After running /pm-ff, your feature folder looks like this:
features/checkout-v2/
βββ agent-brief.md β
β ready for your coding agent
βββ prd.md
βββ brief.md
βββ ...
Your status bar shows:
PRODMAN β Agent Ready β 12/12 rules passing
And a snippet of your agent-brief.md:
## In Scope
- Guest checkout flow (no account required)
- Save card option (opt-in only)
## Must NOT Do
- Do not modify the existing logged-in checkout path
- Do not add upsell prompts
## Escalation Triggers
- Stop if payment provider API returns undocumented errors
- Stop if cart total exceeds $10,000 (fraud risk β escalate to PM)That's what the agent receives. Bounded. Testable. No guessing.
@prodman/vscode brings the ProdMan spec quality loop directly into your editor. No command palette hunting. No context switching. The tight loop β open brief β lint guides β quick fix repairs β run β preview β clipboard β happens inline.
| Feature | What it does |
|---|---|
| Spec Linter | Ambient inline diagnostics on agent-brief.md as you type β powered by all 12 @prodman/core rules |
| Readiness Bar | Status bar shows PRODMAN β Agent Ready β 12/12 rules passing at all times |
| Agent Brief Launcher | Lint β compile β assemble payload β copy to clipboard in one click |
| CodeLens Actions | βΆ Run with PRODMAN | Validate Spec | Preview Spec.json inline at the top of every brief |
| Quick Fixes | Click a lint error β section template inserted automatically |
| Init Wizard | Detects missing workspace context on startup, generates prodman-context/ with a prompt; auto-fills stack from codebase |
| Spec Preview | Read-only webview of the compiled spec.json with syntax highlighting and Copy JSON button |
| Context Health | Sidebar panel showing health of all prodman-context/ files; flags stack drift when constraints.md is out of sync with detected tech stack |
| Signal Inbox | Sidebar panel showing captured signals from prodman-context/signals.md, most recent first |
| Feature Pipeline | Sidebar dashboard showing all features, their zone, and agent-brief.md readiness at a glance |
Extension activates when your workspace contains:
CLAUDE.mdprodman-context/product.mdfeatures/**/agent-brief.md
Install:
# From Marketplace (recommended):
code --install-extension prodman.prodman
# Or search "ProdMan" in the VS Code Extensions panel
# From source:
cd packages/vscode
npm install && npm run build
# Extensions β Install from VSIXProdMan ships a CLI (@prodman/cli) that validates specs against 12 lint rules and compiles them to machine-readable JSON contracts. Use it locally or in CI.
npm install -g @prodman/cliValidate a spec (shows readiness + all issues):
prodman validate checkout-v2
# β [LNT-011] Missing escalation triggers β agent will make unauthorized decisions
# β [LNT-009] Vague AC: "works correctly"
# Status: β Incomplete (1 error, 1 warning)
# After fixing:
prodman validate checkout-v2
# β Agent ReadyValidate all features:
prodman validate --allCompile to machine-readable spec.json:
prodman compile checkout-v2
# β features/checkout-v2/compiled-spec.json (v1)See all features and their status:
prodman status
# Feature Zone Files Readiness Last Updated
# checkout-v2 2 5/6 β Agent Ready 1 day ago
# notification-center 1 1/6 β Incomplete 14 days agoAdd to CI β block merges on incomplete specs:
Run prodman validate --all in your CI pipeline to catch incomplete specs before merge. GitHub Action coming soon.
The core library (@prodman/core) is zero-dependency and importable directly in any Node.js project:
import { Linter, Compiler } from '@prodman/core'
const linter = new Linter()
const result = linter.lintFile('features/checkout-v2/agent-brief.md')
console.log(result.readiness) // 'agent-ready' | 'review-needed' | 'incomplete'| Stage | Without ProdMan | With ProdMan |
|---|---|---|
| Every session | Re-explain product, users, constraints from scratch | prodman-context/ loads automatically β AI knows your product before you type |
| Signal intake | Describe a problem β AI immediately writes a solution | Reflects back first, asks ONE question, separates symptom from root cause |
| Problem framing | Stuck in your own framing, LLM validates whatever angle you bring | 2β3 distinct root hypotheses β at least one challenges the obvious read |
| Exploration | Surface-level answers, misses who's affected and what's been tried | 6-dimension structured exploration with periodic synthesis |
| Direction | Fuzzy scope, PM and team have different mental models | Falsifiable problem statement, explicit "NOT solving for," written out-of-scope |
| Spec writing | Manual, inconsistent, every PM does it differently | 5-file bundle in one shot β agent brief as primary output |
| Agent handoff | PRD dump β agent guesses scope, overengineers, can't self-verify | Bounded, testable, explicit must-NOT-do list, escalation triggers |
| Audience output | Same doc for engineers, designers, execs β PM rewrites manually | One spec β 5 audience-ready views on demand |
| Team memory | Learnings die when the tab closes | /pm-retro auto-appends to history.md β every future session starts warm |
Same AI. Radically different outcomes. The gap is structure, memory, and what happens before the AI speaks.
| Direct LLM | ProdMan | |
|---|---|---|
| Product context | β Re-explained every session | β Auto-loaded from prodman-context/ |
| Starting point | β Cold start every feature | β Warm β history of decisions loaded |
| Problem framing | β Validates your framing | β Generates alternatives, challenges assumptions |
| Dialogue style | β Answers immediately | β Questions before prescribing |
| Spec quality | β Format varies by session | β Consistent 5-file bundle every time |
| Agent handoff | β PRD dump β agent guesses | β Bounded brief with explicit scope + escalation triggers |
| Audience output | β One doc, manual reformatting | β 5 audience-ready views from one source |
| Team memory | β Dies when the tab closes | β Grows with every retro |
| Learning loop | β None | β Retro β history.md β next feature |
| Scope governance | β Agent interprets intent | β Explicit in/out scope + must NOT do |
ProdMan is agent-first. The primary output of
/pm-ffis not a human archive β it's a structured context package for an AI coding agent about to build.
The agent-brief.md is built on 6 principles:
| Principle | What it means for the agent |
|---|---|
| Bounded | Exact start/stop points. Agent knows what to build and what to leave alone. |
| Testable | Acceptance criteria are observable and verifiable. Agent can self-check before delivering. |
| Contextual | Product + technical context embedded. Agent builds for the right user with the right constraints. |
| Explicit "Must NOT Do" | Stop list prevents overengineering and unauthorized scope expansion. |
| Clear escalation | Agent knows exactly when to stop and ask vs. when to proceed. No silent failures. |
| Reproducible | Any agent, any session, any model β picks up the same brief and produces consistent output. |
Agent brief fields:
task_summary β 1β3 sentences. Agent knows the job before reading anything else.
product_context β Who it's for and why. Agent builds for the right user.
technical_context β Stack, patterns, constraints. Agent doesn't contradict your architecture.
in_scope β Hard list. Build exactly this.
out_of_scope β Hard list. Touch none of this.
anti_requirements β Explicit stop list. Prevents scope creep and overengineering.
acceptance_criteria β Observable, verifiable. Agent self-checks before delivering.
edge_cases β Pre-enumerated. Agent handles them consistently, not by guessing.
constraints β Style, perf, accessibility, security. Non-negotiable requirements.
definition_of_done β Agent knows when to stop, not just when to ship.
escalation_triggers β Stop and ask if: [explicit conditions]. No silent failures.
These 11 fields map directly to compiled-spec.json β the machine-readable contract produced by prodman compile. See specs/prodman-spec-v1.md for the full spec standard and schemas/compiled-spec-schema.json for the JSON schema.
| Command | What it does |
|---|---|
/pm-import |
5-question interview β generates prodman-context/. Run once per product. Paste existing docs to skip ahead. |
/pm-attach |
Load a file (image, PDF, spreadsheet) into context. Usable at any zone. Surfaces relevant signals, not just summaries. |
Turn raw signals into committed, falsifiable direction. AI questions before it prescribes.
| Command | What it does |
|---|---|
/pm-signal |
Capture any signal β complaint, metric, idea. Socratic dialogue, one question at a time. |
/pm-frame |
Generate 2β3 distinct problem framings with different root hypotheses. React and choose. |
/pm-explore |
Deep-dive the chosen framing across 6 dimensions. Synthesizes after each answer. |
/pm-commit |
Lock direction. Writes features/[name]/commitment.md so /pm-ff works across sessions. |
One command. Five files. Agent brief is always the primary output.
| Command | What it does |
|---|---|
/pm-ff [name] |
Generates agent-brief.md + brief.md + prd.md + approach.md + plan.md. Loads commitment.md automatically. Prompts for audience views inline. |
Validate before or alongside spec work.
| Command | What it does |
|---|---|
/pm-research interview |
User interview guide β screener, core questions, probes |
/pm-research competitive |
Competitive benchmarking matrix β structured around your positioning |
/pm-research prioritize |
RICE scoring table β pre-filled with your candidates |
/pm-research survey |
Validation survey β built to test your specific hypothesis |
One spec. Five audience-ready views. Generate any on demand.
| Command | Output | For |
|---|---|---|
/pm-handoff engineer |
handoff-eng.md |
User stories, AC, edge cases, DoD β kickoff-ready |
/pm-handoff designer |
handoff-design.md |
JTBD, currentβtarget journey, UX constraints |
/pm-handoff stakeholder |
stakeholder-brief.md |
Exec 1-pager β outcome-first, no implementation detail |
/pm-handoff tickets |
tickets.md |
FEAT + STORY tickets β paste into Linear or Jira |
/pm-agent-brief |
agent-brief.md |
Standalone brief β for existing docs or brief regeneration |
Launch coordination and living product memory.
| Command | What it does |
|---|---|
/pm-ship |
Pre/launch/post checklists + communication plan + rollout phases |
/pm-retro |
Retrospective β auto-appends learning block to history.md β loads before every future command |
prodman-context/ β persistent memory, loads before every command
βββ product.md β what your product is
βββ users.md β user segments and personas
βββ constraints.md β tech, legal, org constraints
βββ history.md β decisions + retro learnings β auto-grows via /pm-retro
features/[feature-name]/ β generated per feature
βββ signal.md β Zone 1: raw signal + clarifications (written by /pm-signal)
βββ framing.md β Zone 1: chosen problem framing (written by /pm-frame)
βββ exploration.md β Zone 1: 6-dimension exploration (written by /pm-explore)
βββ commitment.md β direction lock (written by /pm-commit)
βββ agent-brief.md β
β primary output β for AI coding agents
βββ brief.md β 1-page PM summary
βββ prd.md β full requirements (P0/P1/P2)
βββ approach.md β decision rationale, options considered
βββ plan.md β milestones, work breakdown, risks
βββ compiled-spec.json β β machine-readable contract (written by prodman compile)
βββ handoff-eng.md β engineering kickoff package
βββ handoff-design.md β design brief
βββ stakeholder-brief.md β exec 1-pager
βββ tickets.md β Linear / Jira tickets
βββ handoff-response.md β eng/design feedback β /pm-ff reads this on regen
βββ retro.md β retrospective
prodman-context/ is plain Markdown committed to your repo. Every command loads it automatically. Sharing it across your team is git β nothing else needed.
Option A β Shared repo (recommended for product teams)
Check prodman-context/ into your product repo. Everyone on the team gets the same product memory:
# In your product repo
git add prodman-context/
git commit -m "Add ProdMan product context"Each PM works in their own branch; context updates (from /pm-retro or manual edits) are merged via PR like any other doc change.
Option B β Dedicated context repo
For orgs with multiple products or strict access controls, create a shared [product]-context repo containing only prodman-context/. Reference it in each product's CLAUDE.md:
Context lives at: ../[product]-context/prodman-context/
Handoff response loop
When engineering or design receives a handoff doc (handoff-eng.md, handoff-design.md), they fill in features/[name]/handoff-response.md to log blockers, scope changes, answered questions, and technical discoveries. When the PM re-runs /pm-ff [name], those responses are automatically incorporated into the spec bundle.
PM writes spec β /pm-ff β handoff-eng.md β Eng reviews
β
PM re-runs /pm-ff β handoff-response.md β Eng fills in
Use the template at templates/features/handoff-response.md.
- Materialize clarity before documentation β Don't write specs for fuzzy problems.
- Questioning precedes answering β One focused question at a time. Socratic before prescriptive.
- Present options, not prescriptions β Framings and directions are offered, not imposed.
- Context-first β Product memory loads before every response. The AI knows your product.
- Immediately actionable output β Every deliverable is ready to use, not just readable.
- Agent-first β The primary output of
/pm-ffis not a human archive β it's a structured context package for an AI agent that is about to build. - AI-agnostic β Plain Markdown. Works in Claude, GPT, Gemini, Cursor, or any interface.
| Version | Focus | Status |
|---|---|---|
| v0 | Core commands, templates, schemas, integration guides | β Done |
| v0.1 | Living memory, agent-first output, ticket export, audience lenses, cross-session continuity | β Done |
| v0.1.0 (Drop 1) | @prodman/core + @prodman/cli + GitHub Action + 12 lint rules + spec compiler |
β Done |
| v0.2 (Drop 2) | @prodman/vscode β spec linter, readiness bar, agent brief launcher, CodeLens actions, quick fixes, init wizard, spec preview |
β Done |
| v0.3 | VS Code sidebar β context health + drift detection, signal inbox, pipeline dashboard Β· LNT-012 Β· Marketplace packaging | β Done |
| v0.4 | MCP integration β zero-friction agent handoff from Claude Code | Q2 2026 |
| v0.5 | Live integrations β Linear/Jira push, team context sharing | Q3 2026 |
- VS Code + Claude Code β Native slash commands, automatic context loading
- Cursor β Rules file + command workflow
- Claude Projects β Project instructions + file uploads
- Universal (any AI tool) β Copy-paste workflow for any interface
Can I use ProdMan without VS Code?
Yes. All commands are plain Markdown β copy any command from .claude/commands/ and paste it into Claude, ChatGPT, Gemini, or any AI tool. The VS Code extension adds linting and inline tooling on top, but isn't required.
Does this work with Cursor / Copilot / other AI tools? Yes. See the integration guides below. ProdMan is AI-agnostic by design β it produces clean Markdown that works anywhere.
Is prodman-context/ committed to git?
Up to you. For product teams, commit it β everyone shares the same product memory. For solo projects or sensitive context (unreleased strategy, pricing), add it to .gitignore.
My context is growing large. How do I manage it?
Trim history.md to the last 6β12 months of decisions. Keep product.md and users.md tight β they should be 1-page each. The context files are meant to be curated, not append-only logs.
What if my agent still overscopes despite AC + escalation triggers?
Check your anti_requirements and escalation_triggers fields in agent-brief.md β they're likely too vague. Run prodman validate [feature] to catch issues. Specific beats general: "Do not modify the logged-in checkout path" is better than "Don't change unrelated flows."
Contributions are welcome. The bar: does this make ProdMan more useful for an AI-native PM?
- New commands β follow the structure in
prodman/commands/. One command, one job. - Template improvements β output templates live in
templates/features/. - Integration guides β new AI tools or IDE setups go in
integrations/. - Bug reports β open an issue with the command name and what went wrong.
See CONTRIBUTING.md for full guidelines.
MIT
If ProdMan is useful to you, a β on GitHub helps others find it.