Skip to main content
Glama
writeSkillOutput.ts2.07 kB
import fs from 'node:fs/promises'; import path from 'node:path'; import { RepomixError } from '../../shared/errorHandle.js'; import type { SkillOutputResult } from './packSkill.js'; /** * Writes skill output to the filesystem. * Creates the directory structure: * <skillDir>/ * ├── SKILL.md * └── references/ * ├── summary.md * ├── project-structure.md * ├── files.md * └── tech-stack.md (if available) */ export const writeSkillOutput = async ( output: SkillOutputResult, skillDir: string, deps = { mkdir: fs.mkdir, writeFile: fs.writeFile, }, ): Promise<string> => { const referencesDir = path.join(skillDir, 'references'); try { // Create directories await deps.mkdir(referencesDir, { recursive: true }); // Write SKILL.md const skillMdPath = path.join(skillDir, 'SKILL.md'); await deps.writeFile(skillMdPath, output.skillMd, 'utf-8'); // Write reference files await deps.writeFile(path.join(referencesDir, 'summary.md'), output.references.summary, 'utf-8'); await deps.writeFile(path.join(referencesDir, 'project-structure.md'), output.references.structure, 'utf-8'); await deps.writeFile(path.join(referencesDir, 'files.md'), output.references.files, 'utf-8'); // Write tech-stack.md if available if (output.references.techStack) { await deps.writeFile(path.join(referencesDir, 'tech-stack.md'), output.references.techStack, 'utf-8'); } return skillDir; } catch (error) { const nodeError = error as NodeJS.ErrnoException; if (nodeError.code === 'EPERM' || nodeError.code === 'EACCES') { throw new RepomixError( `Failed to write skill output to ${skillDir}: Permission denied. Please check directory permissions.`, { cause: error instanceof Error ? error : undefined }, ); } throw new RepomixError(`Failed to write skill output: ${error instanceof Error ? error.message : String(error)}`, { cause: error instanceof Error ? error : undefined, }); } };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yamadashy/repomix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server