garrytan/gstack · error · Error
tombstoneBrowserSkill: tier "${tier}" has no resolved path
Error message
tombstoneBrowserSkill: tier "${tier}" has no resolved path What it means
Error "tombstoneBrowserSkill: tier "${tier}" has no resolved path" thrown in garrytan/gstack.
Source
Thrown at browse/src/browser-skills.ts:408
return null;
}
// ─── Tombstone (rm) ─────────────────────────────────────────────
/**
* Move a user-tier skill (project or global) into the tier's .tombstones/
* directory. Returns the new path.
*
* Cannot tombstone bundled skills — they ship with gstack and are read-only.
* To remove a bundled skill, override it with a global/project entry, or
* remove the file from the gstack source tree.
*/
export function tombstoneBrowserSkill(name: string, tier: 'project' | 'global', tiers?: TierPaths): string {
const t = tiers ?? defaultTierPaths();
const root = tier === 'project' ? t.project : t.global;
if (!root) {
throw new Error(`tombstoneBrowserSkill: tier "${tier}" has no resolved path`);
}
const src = path.join(root, name);
if (!fs.existsSync(src)) {
throw new Error(`tombstoneBrowserSkill: skill "${name}" not found in tier "${tier}" at ${src}`);
}
const tombstoneDir = path.join(root, '.tombstones');
fs.mkdirSync(tombstoneDir, { recursive: true });
const ts = new Date().toISOString().replace(/[:.]/g, '-');
const dst = path.join(tombstoneDir, `${name}-${ts}`);
fs.renameSync(src, dst);
return dst;
}
View on GitHub (pinned to 94993f7401)
When it happens
Trigger: Thrown at browse/src/browser-skills.ts:408 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/039e5581d84dadab.
Report an issue: GitHub.