Restore prefix toggle for i- prefixed skill bundles

Re-adds the toggle in the install section that lets users download bundles
with all user-invokable skills prefixed with i- (e.g. /i-audit) to avoid
naming conflicts. Build now produces both unprefixed and prefixed variants
for all providers and universal ZIP.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Paul Bakaus
2026-03-05 10:04:53 -08:00
co-authored by Claude Opus 4.6
parent b628e208e3
commit ee7eeae301
10 changed files with 141 additions and 3866 deletions
+5 -3
View File
@@ -13,7 +13,8 @@ import { cleanDir, ensureDir, writeFile, generateYamlFrontmatter, replacePlaceho
* @param {Object} options - Optional settings
*/
export function transformAgents(skills, distDir, patterns = null, options = {}) {
const agentsDir = path.join(distDir, 'agents');
const { prefix = '', outputSuffix = '' } = options;
const agentsDir = path.join(distDir, `agents${outputSuffix}`);
const skillsDir = path.join(agentsDir, '.agents/skills');
cleanDir(agentsDir);
@@ -21,7 +22,7 @@ export function transformAgents(skills, distDir, patterns = null, options = {})
let refCount = 0;
for (const skill of skills) {
const skillName = skill.name;
const skillName = skill.userInvokable ? `${prefix}${skill.name}` : skill.name;
const skillDir = path.join(skillsDir, skillName);
const frontmatterObj = {
@@ -60,5 +61,6 @@ export function transformAgents(skills, distDir, patterns = null, options = {})
const userInvokableCount = skills.filter(s => s.userInvokable).length;
const refInfo = refCount > 0 ? ` (${refCount} reference files)` : '';
console.log(`✓ Agents: ${skills.length} skills (${userInvokableCount} user-invokable)${refInfo}`);
const prefixInfo = prefix ? ` [${prefix}prefixed]` : '';
console.log(`✓ Agents${prefixInfo}: ${skills.length} skills (${userInvokableCount} user-invokable)${refInfo}`);
}
+13 -2
View File
@@ -53,13 +53,24 @@ export async function createAllZips(distDir) {
const providers = ['cursor', 'claude-code', 'gemini', 'codex', 'agents'];
// Create individual provider ZIPs
// Create unprefixed ZIPs
for (const provider of providers) {
const providerDir = path.join(distDir, provider);
await createProviderZip(providerDir, distDir, provider);
}
// Create universal ZIP
// Create unprefixed universal ZIP
const universalDir = path.join(distDir, 'universal');
await createProviderZip(universalDir, distDir, 'universal');
// Create prefixed ZIPs
console.log(' --- prefixed variants ---');
for (const provider of providers) {
const providerDir = path.join(distDir, `${provider}-prefixed`);
await createProviderZip(providerDir, distDir, `${provider}-prefixed`);
}
// Create prefixed universal ZIP
const universalPrefixedDir = path.join(distDir, 'universal-prefixed');
await createProviderZip(universalPrefixedDir, distDir, 'universal-prefixed');
}