You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Flattened extension alias subcommands still drop option contracts after GH-550/GH-503 fix (empty --help, valid options rejected) #574
Extension: published pm-csv@2026.7.13 installed via pm install npm:pm-csv@latest
Summary
GH-503 / GH-550 (fixed in 2026.7.15 via pm-evav) restored option contracts on the nested extension command path, and unknown-option validation now works at the alias group level. But the flattened alias path (pm csv-export …) still loses the option contract of its subcommands entirely.
Repro
pm init --pm-path "$PWD/.agents/pm" --id-prefix vfy
pm install npm:pm-csv@latest --pm-path "$PWD/.agents/pm"# Nested path: full contract, works
pm csv export --help # shows --output/--delimiter/--status/... ✅
pm csv export --delimiter pipe # works ✅# Flattened alias: contract dropped
pm csv-export --help # only generic "Extension-provided command group", no options
pm csv-export export --help # ZERO option lines ❌
pm csv-export export --delimiter pipe
# → Error: Too many arguments for extension command 'csv-export export': pipe.# Usage: pm csv-export export [file] ❌ (valid option rejected as positional)
Expected
pm csv-export export should carry the same option contract as pm csv export: identical --help output and identical option acceptance. If the flattened alias is meant to be a 1:1 mirror, consider generating it from the same command definition object rather than re-declaring a bare passthrough.
Impact for agents
Agents that discover commands via pm --help see the flattened alias, then get hard failures for options that the extension legitimately supports — they must know to fall back to the nested spelling. This costs retries/tokens and breaks scripted flows.
Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.
Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your .coderabbit.yaml:
issue_enrichment:
auto_enrich:
enabled: false
💬 Have feedback or questions? Drop into our discord!
Re-verified under 2026.7.18: still reproduces. pm csv-export export --help renders only -h, --help (action contract csv-export-export metadata is shown, but no option contracts), while canonical pm csv export --help lists --output/--delimiter/--status/--type/--columns. Valid options are still rejected on the alias path (Error: Unknown option --delimiter).
Activity
coderabbitai commentedon Jul 16, 2026
🔗 Related PRs
#51 - Polish CLI ergonomics, delete safety, and templates dedup [closed]
#418 - Refactor residual CodeFactor complexity hotspots [merged]
#475 - Improve package install and annotation agent UX [merged]
#499 - Harden SDK schema-driven input fidelity and package preflight [merged]
#511 - Preserve extension command contracts and recovery fidelity [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
unbraind commentedon Jul 17, 2026
pm tracker item: pm-7ufz
chore(pm): review pass #94 — PR#575 reconciled (qfdd/cbwg/w89s closed…
unbraind commentedon Jul 18, 2026
Re-verified under 2026.7.18: still reproduces.
pm csv-export export --helprenders only-h, --help(action contractcsv-export-exportmetadata is shown, but no option contracts), while canonicalpm csv export --helplists--output/--delimiter/--status/--type/--columns. Valid options are still rejected on the alias path (Error: Unknown option --delimiter).