MCPcopy Create free account
hub / github.com/adobe/react-spectrum / generateSkill

Function generateSkill

packages/dev/s2-docs/scripts/generateAgentSkills.mjs:995–1051  ·  view source on GitHub ↗

* Generate a single skill.

(skillConfig, wellKnownRoot)

Source from the content-addressed store, hash-verified

993 * Generate a single skill.
994 */
995function generateSkill(skillConfig, wellKnownRoot) {
996 const skillDir = path.join(wellKnownRoot, skillConfig.name);
997
998 // Create skill directory
999 fs.mkdirSync(skillDir, {recursive: true});
1000
1001 if (skillConfig.kind === 'migration') {
1002 const skillMdContent = generateMigrationSkillMd(skillConfig);
1003 fs.writeFileSync(path.join(skillDir, 'SKILL.md'), skillMdContent);
1004 console.log(`Generated ${path.relative(REPO_ROOT, path.join(skillDir, 'SKILL.md'))}`);
1005
1006 writeMigrationReferences(skillDir, skillConfig.sourceDir);
1007 console.log(
1008 `Copied migration references to ${path.relative(REPO_ROOT, path.join(skillDir, 'references'))}`
1009 );
1010
1011 return skillDir;
1012 }
1013
1014 if (skillConfig.kind === 'audit') {
1015 fs.writeFileSync(path.join(skillDir, 'SKILL.md'), generateAuditSkillMd(skillConfig));
1016 console.log(`Generated ${path.relative(REPO_ROOT, path.join(skillDir, 'SKILL.md'))}`);
1017
1018 writeAuditReferences(skillDir);
1019 console.log(
1020 `Copied audit references to ${path.relative(REPO_ROOT, path.join(skillDir, 'references'))}`
1021 );
1022
1023 return skillDir;
1024 }
1025
1026 const isS2 = skillConfig.name === 'react-spectrum-s2';
1027
1028 // Parse documentation entries
1029 const llmsTxtPath = path.join(MARKDOWN_DOCS_DIST, skillConfig.sourceDir, 'llms.txt');
1030 if (!fs.existsSync(llmsTxtPath)) {
1031 console.error(`llms.txt not found at ${llmsTxtPath}`);
1032 return;
1033 }
1034
1035 const entries = parseLlmsTxt(llmsTxtPath);
1036 const categories = categorizeEntries(entries, skillConfig.sourceDir);
1037
1038 // Generate SKILL.md
1039 const skillMdContent = generateDocsSkillMd(skillConfig, categories, isS2);
1040 fs.writeFileSync(path.join(skillDir, 'SKILL.md'), skillMdContent);
1041 console.log(`Generated ${path.relative(REPO_ROOT, path.join(skillDir, 'SKILL.md'))}`);
1042
1043 // Copy documentation to references
1044 copyDocsDocumentation(skillConfig, categories, skillDir);
1045 console.log(
1046 `Copied documentation to ${path.relative(REPO_ROOT, path.join(skillDir, 'references'))}`
1047 );
1048 copyAdditionalReferenceLibraries(skillConfig, skillDir);
1049
1050 return skillDir;
1051}
1052

Callers 1

mainFunction · 0.85

Calls 9

generateMigrationSkillMdFunction · 0.85
writeMigrationReferencesFunction · 0.85
generateAuditSkillMdFunction · 0.85
writeAuditReferencesFunction · 0.85
parseLlmsTxtFunction · 0.85
categorizeEntriesFunction · 0.85
generateDocsSkillMdFunction · 0.85
copyDocsDocumentationFunction · 0.85

Tested by

no test coverage detected