PM: Scope-Disciplined Product Manager
pm/
A product manager for your agent team: build-ready PRDs with testable gates, a roadmap, brainstorming, standups and a single launch or no-launch verdict, with a scope guard that cites the spec.

The scope-disciplined product manager: plans the project, gates the launch, and says no.
Why use it
- Requirements that can't be tested, "the flow should feel smooth" is not a gate.
- Scope creep accepted one small ad-hoc ask at a time.
- "Looks ready" as a launch decision, with no scenario actually scored.
What it does
prd, turn the spec into a build-ready PRD: objectives, scope, out-of-scope guards, every success scenario mapped to a testable gate, the build plan.roadmap, own the docs/ roadmap: epics, user stories decomposed across the COMPLETE user-flow graph, milestones, and a machine-readable mirror.brainstorm, explore an idea with you before anything is specified: one question at a time, 2-3 approaches, a design you approve.acceptance, the terminal gate: every scenario PASS/FAIL with evidence, 100% end-to-end breadth, ONE binary LAUNCH / NO-LAUNCH verdict.standup, evidence-based Done / Next / Blockers, read-only.scope-guard, runs inside every mode: "is X in scope?" answered Yes/No with the spec section cited.
Benefits
- Requirements a machine can score. Testable gates, not adjectives.
- Scope creep stops here. Every "no" cites the spec and names the edit that would reverse it.
- No half-covered features. Stories map every path a user can take, not one happy path.
- Launch calls you can defend: one binary verdict, backed by per-scenario evidence.
- Retarget it in one file. Nothing about your product is baked in.
Install
Download this skill and copy the pm folder to .claude/skills/pm/ in your project, or to ~/.claude/skills/pm/ to use it in every project. Claude Code finds it on its own; you can also call it with /pm.
Part of the Agent Engineering bundle. To get the whole set as a Claude Code plugin: /plugin marketplace add endorphin-ai/hasbrains-agent-kit, then /plugin install agent-engineering@hasbrains-agent-kit.
Source: endorphin-ai/hasbrains-agent-kit. License: MIT.
Files (19)
Files
---
id: acceptance
title: Final Acceptance Sign-Off Playbook
summary: The terminal gate — score every success scenario PASS/FAIL with evidence, verify e2e breadth, emit one binary LAUNCH / NO-LAUNCH verdict.
tags: [pm/acceptance, pm/workflow]
load_when: The build is delivered and needs the final pass/fail acceptance sign-off.
links: [[prd]], [[scope-guard]], [[roadmap-json]]
---
TASKLANG
TYPE WORKFLOW
> Related: scores against [[prd]] · enforces [[scope-guard]] · closing step refreshes [[roadmap-json]]
IDENTITY "Final Acceptance Sign-Off Playbook"
> The terminal gate. The PM inspects the delivered build and scores it against the project's success
> scenarios — PASS or FAIL each — then gives ONE binary verdict: LAUNCH or NO-LAUNCH. A single FAIL,
> a missing launch-blocker, or one user story without a passing end-to-end test is NO-LAUNCH.
!!! Read the project config + the spec first — they hold the success scenarios and the launch-blocking list.
!!! Verdicts are binary. No "mostly", no "partial". Each scenario PASS or FAIL; overall LAUNCH or NO-LAUNCH.
!!! The success scenarios are the launch contract — do not invent new criteria, and do not waive any.
!!! Verify against a real running build in a non-production environment, and against the delivered
evidence (test results, QA report, review report, deploy report). A green badge is not a scenario score.
---
GUARD
- The spec exists (the contract to score against).
- The build has been reported as delivered, with artifacts available to inspect.
ON_FAIL: FAIL("Cannot run acceptance: the build is not delivered or the spec is missing — nothing to score against.")
---
FLOW
1. Re-read the success scenarios -- plus the build-plan gates and the edge cases. These are the exact
pass/fail criteria; nothing else is.
2. Gather the delivered evidence -- the upstream reports (test results, QA report, security/code
review, deploy report) plus the PRD. Map each piece of evidence to the scenario(s) it bears on.
3. Inspect the build -- read the routes, the request/UI layer, the data layer, the migrations, the
integration handlers and any admin surface. Exercise the running build where a scenario is about
behavior: a scenario passes when it was EXERCISED, not when the page returned 200.
4. Score EVERY success scenario PASS or FAIL -- with evidence for a PASS and the missing piece named
for a FAIL. No "partial". Work in the spec's own order so nothing is skipped.
5. Run the launch-blocker checklist -- confirm every launch-blocking item on the project's list is
present and working. A missing one is automatically a `[BLOCKER]`.
6. Verify end-to-end breadth -- check the story/scenario → end-to-end traceability matrix: EVERY user
story / reachable scenario maps 1:1 to a dedicated PASSING end-to-end test. Critical paths are a
SUBSET — breadth is 100%. Also read the QA owner's plain-English traceability report as the
owner-facing proof the product is verifiable by behavior. ANY uncovered story is automatically a
`[BLOCKER]` — a hard NO-LAUNCH, never a soft gap.
7. Compile the blocking gaps -- restate every FAIL, every missing launch-blocker and every uncovered
story as a concrete `[BLOCKER]` the team must close before re-review.
8. Give the verdict -- all scenarios PASS + all launch-blockers present + 100% end-to-end breadth =>
LAUNCH. Anything else => NO-LAUNCH with the gaps named. Emit in the `acceptance` format.
9. ORGANIZE the docs/ folder -- do not just emit a verdict: audit EVERY work item for a stale status
(shipped work must not linger in `todo`), open a FOLLOW-UP work item for every deferred piece so
deferred ≠ forgotten and note in each file what is NOT finished, confirm test cases reflect real
coverage, and confirm the delivery (PR / release note) carries the full work-item map.
10. Refresh the roadmap mirror -- regenerate it from the CURRENT docs/ state per [[roadmap-json]]:
every work item with its status, the milestones re-marked (this milestone → past with its verdict;
the following one → next), and the summary counts. Commit it. This is the CLOSING step.
> The verdict is MILESTONE-SCOPED: a milestone LAUNCH is not a whole-product launch. Out-of-scope
> scenarios stay deferred — not waived — and remain blocking for final acceptance.
---
CHECKLIST completion
[ ] Every success scenario scored PASS or FAIL (no "partial"), each with evidence or a named gap
[ ] Every launch-blocking item checked; any missing one raised as a blocker
[ ] End-to-end breadth verified at 100% (every story = a dedicated passing test; critical paths a subset); the plain-English traceability report read; any uncovered story raised as a blocker
[ ] Every FAIL restated as a concrete blocker
[ ] Exactly one binary verdict (LAUNCH or NO-LAUNCH) with the score
[ ] Stale work-item statuses corrected; follow-up items opened for every deferred piece
[ ] The roadmap mirror regenerated from the current docs/ state and committed
[ ] Output matches FORMAT.md (`acceptance` format)