Skip to content

Flattened extension alias subcommands still drop option contracts after GH-550/GH-503 fix (empty --help, valid options rejected) #574

Description

@unbraind

Environment

  • pm CLI 2026.7.16 (global install), Linux
  • 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.

Related: #503, #550, #547 (2026.7.15 fix items pm-evav / pm-f38n).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions