diff --git a/meta.ts b/meta.ts index 6b03c35..83a3509 100644 --- a/meta.ts +++ b/meta.ts @@ -1,6 +1,7 @@ export interface VendorSkillMeta { official?: boolean source: string + skillsPath?: string // Optional custom path to skills directory (default: 'skills') skills: Record // sourceSkillName -> outputSkillName } diff --git a/scripts/cli.ts b/scripts/cli.ts index 49afbff..a371629 100644 --- a/scripts/cli.ts +++ b/scripts/cli.ts @@ -64,6 +64,7 @@ interface Project { interface VendorConfig { source: string + skillsPath?: string // Optional custom path to skills directory (default: 'skills') skills: Record // sourceSkillName -> outputSkillName } @@ -190,7 +191,8 @@ async function syncSubmodules() { for (const [vendorName, config] of Object.entries(vendors)) { const vendorConfig = config as VendorConfig const vendorPath = join(root, 'vendor', vendorName) - const vendorSkillsPath = join(vendorPath, 'skills') + const skillsBasePath = vendorConfig.skillsPath || 'skills' + const vendorSkillsPath = join(vendorPath, skillsBasePath) if (!existsSync(vendorPath)) { p.log.warn(`Vendor submodule not found: ${vendorName}. Run init first.`) @@ -198,7 +200,7 @@ async function syncSubmodules() { } if (!existsSync(vendorSkillsPath)) { - p.log.warn(`No skills directory in vendor/${vendorName}/skills/`) + p.log.warn(`No skills directory in vendor/${vendorName}/${skillsBasePath}/`) continue } @@ -255,7 +257,7 @@ async function syncSubmodules() { const syncContent = `# Sync Info -- **Source:** \`vendor/${vendorName}/skills/${sourceSkillName}\` +- **Source:** \`vendor/${vendorName}/${skillsBasePath}/${sourceSkillName}\` - **Git SHA:** \`${sha}\` - **Synced:** ${date} `