Summary
The generator only handles resource-style endpoints — get, create, update, delete. Anything verb-shaped (actions like sendMail, functions like the reports) or special-shaped ($count, $ref, $value, delta, casts, content downloads) is skipped.
What's working now
All the resource-style operations (GET/POST/PATCH/PUT/DELETE) generate working cmdlets. When the generator hits a shape it can't handle, it skips it loudly with a logged reason instead of emitting broken code.
How can we make it better
The biggest gap is actions and functions. They produce no cmdlets at all today, which is why DeviceManagement.Actions/.Functions and Users.Actions/.Functions are empty — those modules contain nothing else. The other shapes ($count, $ref, $value, delta, casts, media/content downloads) are smaller but add up across every module.
Rather than hand-writing verb rules, we can derive them from the published inventory (MgCommandMetadata.json), the same way the singularizer rules were validated, and let the parity gate check every generated name against the shipped ones.
Summary
The generator only handles resource-style endpoints — get, create, update, delete. Anything verb-shaped (actions like sendMail, functions like the reports) or special-shaped ($count, $ref, $value, delta, casts, content downloads) is skipped.
What's working now
All the resource-style operations (GET/POST/PATCH/PUT/DELETE) generate working cmdlets. When the generator hits a shape it can't handle, it skips it loudly with a logged reason instead of emitting broken code.
How can we make it better
The biggest gap is actions and functions. They produce no cmdlets at all today, which is why DeviceManagement.Actions/.Functions and Users.Actions/.Functions are empty — those modules contain nothing else. The other shapes ($count, $ref, $value, delta, casts, media/content downloads) are smaller but add up across every module.
Rather than hand-writing verb rules, we can derive them from the published inventory (MgCommandMetadata.json), the same way the singularizer rules were validated, and let the parity gate check every generated name against the shipped ones.