{"record":{"id":"7926c95b99d53d94","repo":"garrytan/gstack","slug":"tombstonebrowserskill-skill-name-not-found-i","errorCode":null,"errorMessage":"tombstoneBrowserSkill: skill \"${name}\" not found in tier \"${tier}\" at ${src}","messagePattern":"tombstoneBrowserSkill: skill \"(.+?)\" not found in tier \"(.+?)\" at (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"browse/src/browser-skills.ts","lineNumber":412,"sourceCode":"// ─── Tombstone (rm) ─────────────────────────────────────────────\n\n/**\n * Move a user-tier skill (project or global) into the tier's .tombstones/\n * directory. Returns the new path.\n *\n * Cannot tombstone bundled skills — they ship with gstack and are read-only.\n * To remove a bundled skill, override it with a global/project entry, or\n * remove the file from the gstack source tree.\n */\nexport function tombstoneBrowserSkill(name: string, tier: 'project' | 'global', tiers?: TierPaths): string {\n  const t = tiers ?? defaultTierPaths();\n  const root = tier === 'project' ? t.project : t.global;\n  if (!root) {\n    throw new Error(`tombstoneBrowserSkill: tier \"${tier}\" has no resolved path`);\n  }\n  const src = path.join(root, name);\n  if (!fs.existsSync(src)) {\n    throw new Error(`tombstoneBrowserSkill: skill \"${name}\" not found in tier \"${tier}\" at ${src}`);\n  }\n  const tombstoneDir = path.join(root, '.tombstones');\n  fs.mkdirSync(tombstoneDir, { recursive: true });\n  const ts = new Date().toISOString().replace(/[:.]/g, '-');\n  const dst = path.join(tombstoneDir, `${name}-${ts}`);\n  fs.renameSync(src, dst);\n  return dst;\n}\n","sourceCodeStart":394,"sourceCodeEnd":421,"githubUrl":"https://github.com/garrytan/gstack/blob/94993f74012782fd94416dd44b8314f6363a13a4/browse/src/browser-skills.ts#L394-L421","documentation":"Error \"tombstoneBrowserSkill: skill \"${name}\" not found in tier \"${tier}\" at ${src}\" thrown in garrytan/gstack.","triggerScenarios":"Thrown at browse/src/browser-skills.ts:412 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"94993f74012782fd94416dd44b8314f6363a13a4","analyzedAt":"2026-08-12T04:06:23.140Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}