garrytan/gstack · error · Error
SKILL.md frontmatter block not terminated (expected "\n---")
Error message
SKILL.md frontmatter block not terminated (expected "\n---")
What it means
Error "SKILL.md frontmatter block not terminated (expected "\n---")" thrown in garrytan/gstack.
Source
Thrown at browse/src/browser-skills.ts:138
} catch {}
// Source/dev fallback: walk up from this file's dir to a directory that has both browse/ and browser-skills/.
// browse/src/browser-skills.ts → ../../ (the gstack root).
return path.resolve(__dirname, '..', '..');
}
// ─── Frontmatter parsing ────────────────────────────────────────
/**
* Parse a SKILL.md into { frontmatter, bodyMd }. Throws if the file is
* missing required fields (host, triggers, args).
*/
export function parseSkillFile(content: string, opts: { skillName?: string } = {}): { frontmatter: SkillFrontmatter; bodyMd: string } {
if (!content.startsWith('---\n')) {
throw new Error('SKILL.md missing frontmatter block (expected starting "---\\n")');
}
const fmEnd = content.indexOf('\n---', 4);
if (fmEnd === -1) {
throw new Error('SKILL.md frontmatter block not terminated (expected "\\n---")');
}
const fmText = content.slice(4, fmEnd);
const bodyMd = content.slice(fmEnd + 4).replace(/^\n+/, '');
const fm = parseFrontmatterFields(fmText);
// Validate required fields.
const errors: string[] = [];
const name = fm.name ?? opts.skillName ?? '';
if (!name) errors.push('missing required field: name (or skillName hint)');
if (!fm.host) errors.push('missing required field: host');
// triggers and args may be omitted — empty list is valid.
if (errors.length > 0) {
throw new Error(`SKILL.md validation failed: ${errors.join('; ')}`);
}
const frontmatter: SkillFrontmatter = {
name,
description: fm.description,View on GitHub (pinned to 94993f7401)
When it happens
Trigger: Thrown at browse/src/browser-skills.ts:138 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of garrytan/gstack@94993f7401 (2026-08-12).
Data as JSON: /api/errors/dbb25fa08b7834cd.
Report an issue: GitHub.