/pm:feedback lets you file a bug report or feature request for PM itself without leaving your Claude Code session. Instead of copy-pasting context between windows, you describe the issue once and your agent posts it straight to the cfdude/pm GitHub repo. It searches for near-duplicate issues first — if a match exists, it comments on the existing issue rather than creating a duplicate.
Usage
For a bug report, include what you expected, what actually happened, the command or subcommand involved, and any error output. For a feature request, describe the concrete use case and, if you know it, which lane, command, or skill section it would touch.
Deduplication
Before filing anything new, PM searches open issues oncfdude/pm for near-duplicates:
How it works
When no duplicate exists, your agent creates a new issue:conductor.mjs) is never involved and never calls GitHub. All gh calls are made by your Claude Code agent via Bash — the same instruction-layer law that governs tracker sync, feedback filing, and every other external action in PM.
/pm:feedback only targets cfdude/pm. It is not a general-purpose issue filer and should not be pointed at other repos.
If you do not have gh — three channels, in order
New in 0.33.0. The workflow above assumes the gh CLI and an authenticated GitHub account. That dependency was never declared, so a user without either got a command that simply failed. It is now stated, and two channels exist that need neither:
1
gh, when it is available and authenticated
Preferred, because it is the only channel that can also search for near-duplicates and comment on a match. Both
command -v gh and gh auth status must pass.2
A prefilled issue URL
A
.../issues/new link with the title and body already filled in. Needs no CLI and no prior authentication — you sign in only if you are not already, and only to press submit.3
bugs@pm-plugin.dev, for the case where neither of the above is usable..conductor/feedback/ first, so it survives regardless of which channel is available — and regardless of whether you send it at all.
/pm:sync is handled differently on purpose. Listing open issues is a read with no credential-free substitute — a prefilled URL cannot enumerate anything. So the inward sync procedure gets a preflight that stops and says so rather than reporting a sync nobody performed. Filing degrades to another channel; reading cannot, and pretending otherwise would be worse than the missing dependency.Proactive adoption
The CLAUDE.md rules block includes an unconditional “Feedback” section instructing your agent to use/pm:feedback proactively — not just when you ask for it. If it hits a bug, a missing CLI verb, an unexpected limitation, or repeated friction working with PM, it should file it (or ask you “want me to file this as feedback?”) rather than silently working around it. This exists because the command shipped once and went unused: a real, recurring friction point (hand-editing .conductor/state.json to flip a story’s done flag, since no CLI verb existed for it) recurred across several separate sessions before anyone reported it.

