At 9ac32720, converting commands named review.docs and review-docs emits two commands named review-docs. Writing the bundle leaves only .agy/commands/review-docs.toml, containing the second prompt.
Reproduce with a Claude plugin containing those two command names, distinct prompt bodies, and no agents or skills; run convertClaudeToAntigravity followed by writeAntigravityBundle into a temporary directory.
Expected: both prompts survive in distinct command files, following the existing uniqueName() suffix convention. Actual: the first prompt is overwritten.
convertCommand() calls uniqueName(pathKey, usedNames) but discards its return value. Use that returned path and add converter-to-writer regression coverage for flat/namespaced commands and occupied numeric suffixes. Scope: command-name collisions only; no skill-directory or path-security changes.
At
9ac32720, converting commands namedreview.docsandreview-docsemits two commands namedreview-docs. Writing the bundle leaves only.agy/commands/review-docs.toml, containing the second prompt.Reproduce with a Claude plugin containing those two command names, distinct prompt bodies, and no agents or skills; run
convertClaudeToAntigravityfollowed bywriteAntigravityBundleinto a temporary directory.Expected: both prompts survive in distinct command files, following the existing
uniqueName()suffix convention. Actual: the first prompt is overwritten.convertCommand()callsuniqueName(pathKey, usedNames)but discards its return value. Use that returned path and add converter-to-writer regression coverage for flat/namespaced commands and occupied numeric suffixes. Scope: command-name collisions only; no skill-directory or path-security changes.