diff --git a/cli/src/shared/skill-name-parser.ts b/cli/src/shared/skill-name-parser.ts index 575f92fa..98a9a096 100644 --- a/cli/src/shared/skill-name-parser.ts +++ b/cli/src/shared/skill-name-parser.ts @@ -24,7 +24,7 @@ function parseSeparatedCoordinate( const namespace = skillName.slice(namespaceStart, separatorIndex) const slug = skillName.slice(separatorIndex + separatorLength) - if (!namespace || !slug) { + if (!namespace || !slug || slug.includes('/')) { throw invalidCoordinate(skillName) } diff --git a/cli/test/unit/shared/skill-name-parser.test.ts b/cli/test/unit/shared/skill-name-parser.test.ts index 19a22c4c..87c56f96 100644 --- a/cli/test/unit/shared/skill-name-parser.test.ts +++ b/cli/test/unit/shared/skill-name-parser.test.ts @@ -44,7 +44,10 @@ describe('parseSkillName', () => { 'team/', '/my-skill', '--my-skill', - 'team--' + 'team--', + 'team/my-skill/extra', + '@team/my-skill/extra', + 'team--my-skill/extra' ])('rejects malformed coordinate %p', (skillName) => { expectUsageError(() => parseSkillName(skillName)) })