MCPcopy Index your code
hub / github.com/codeaashu/claude-code / parseSkillFrontmatterFields

Function parseSkillFrontmatterFields

src/skills/loadSkillsDir.ts:185–265  ·  view source on GitHub ↗
(
  frontmatter: FrontmatterData,
  markdownContent: string,
  resolvedName: string,
  descriptionFallbackLabel: 'Skill' | 'Custom command' = 'Skill',
)

Source from the content-addressed store, hash-verified

183 * source/loadedFrom/baseDir/paths fields separately.
184 */
185export function parseSkillFrontmatterFields(
186 frontmatter: FrontmatterData,
187 markdownContent: string,
188 resolvedName: string,
189 descriptionFallbackLabel: 'Skill' | 'Custom command' = 'Skill',
190): {
191 displayName: string | undefined
192 description: string
193 hasUserSpecifiedDescription: boolean
194 allowedTools: string[]
195 argumentHint: string | undefined
196 argumentNames: string[]
197 whenToUse: string | undefined
198 version: string | undefined
199 model: ReturnType<typeof parseUserSpecifiedModel> | undefined
200 disableModelInvocation: boolean
201 userInvocable: boolean
202 hooks: HooksSettings | undefined
203 executionContext: 'fork' | undefined
204 agent: string | undefined
205 effort: EffortValue | undefined
206 shell: FrontmatterShell | undefined
207} {
208 const validatedDescription = coerceDescriptionToString(
209 frontmatter.description,
210 resolvedName,
211 )
212 const description =
213 validatedDescription ??
214 extractDescriptionFromMarkdown(markdownContent, descriptionFallbackLabel)
215
216 const userInvocable =
217 frontmatter['user-invocable'] === undefined
218 ? true
219 : parseBooleanFrontmatter(frontmatter['user-invocable'])
220
221 const model =
222 frontmatter.model === 'inherit'
223 ? undefined
224 : frontmatter.model
225 ? parseUserSpecifiedModel(frontmatter.model as string)
226 : undefined
227
228 const effortRaw = frontmatter['effort']
229 const effort =
230 effortRaw !== undefined ? parseEffortValue(effortRaw) : undefined
231 if (effortRaw !== undefined && effort === undefined) {
232 logForDebugging(
233 `Skill ${resolvedName} has invalid effort '${effortRaw}'. Valid options: ${EFFORT_LEVELS.join(', ')} or an integer`,
234 )
235 }
236
237 return {
238 displayName:
239 frontmatter.name != null ? String(frontmatter.name) : undefined,
240 description,
241 hasUserSpecifiedDescription: validatedDescription !== null,
242 allowedTools: parseSlashCommandToolsFromFrontmatter(

Callers 2

loadSkillsFromSkillsDirFunction · 0.85

Calls 10

parseBooleanFrontmatterFunction · 0.85
parseUserSpecifiedModelFunction · 0.85
parseEffortValueFunction · 0.85
logForDebuggingFunction · 0.85
parseArgumentNamesFunction · 0.85
parseShellFrontmatterFunction · 0.85

Tested by

no test coverage detected