[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E1RXQS5C5B2NSDVFCV8KHD":3,"skill-same:01M6E1RXQS5C5B2NSDVFCV8KHD":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":39,"updatedAt":40,"install":41,"resources":54},"01M6E1RXQS5C5B2NSDVFCV8KHD","calibre",null,"Search and answer questions about the user's Calibre ebook library (titles, authors, tags, formats). Use when the user asks what books they have, who wrote something, tags\u002Ftopics, or to find a book path for audiobook creation.","lancekrogers\u002Fsamantha","lancekrogers","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F12162551?v=4","01M6E1RMXSM3NXDXR0CDNMMJ10","Lance Rogers","01M6E1RN2EYKYPMJM54MCKEK9B",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Flancekrogers\u002Fsamantha\u002Fblob\u002Fmain\u002Fskills\u002Fcalibre\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26],"search","library","find","user","use","audiobook","creation","tags","2026-11-10 10:12:30",false,"---\nname: calibre\ndescription: Search and answer questions about the user's Calibre ebook library (titles, authors, tags, formats). Use when the user asks what books they have, who wrote something, tags\u002Ftopics, or to find a book path for audiobook creation.\n---\n\n# Calibre library skill\n\nAnswer questions about the user's **local Calibre ebook library**. Prefer\nmetadata search over reading whole books. Excerpts must stay short.\n\n## Prerequisites\n\n- `calibre_enabled=true` in Samantha config (`samantha config calibre_enabled true`).\n- Calibre installed (`calibredb` on PATH or in the macOS app bundle).\n- Optional: `calibre_library_path` if not using Calibre's default library.\n\n## How to query (fixed argv — no shell interpolation of user text)\n\nUse the Samantha CLI (preferred) or `calibredb` with fixed arguments:\n\n```bash\n# Browse catalog (no filter; title order)\nsamantha library list --limit 50\n\n# Search catalog (Calibre search grammar: free text, author:\"…\", tag:…, series:…)\nsamantha library search \"QUERY\" --limit 20\nsamantha library search \"QUERY\" --json\n\n# One book’s metadata (description, formats, tags)\nsamantha library show ID\n\n# Or call calibredb directly when samantha library is unavailable:\n# calibredb list --for-machine --fields title,authors,tags,series,formats,pubdate \\\n#   --search \"QUERY\" --limit 20\n```\n\nFor a single book id (when `library show` is unavailable):\n\n```bash\ncalibredb list --for-machine --fields all --search \"id:N\" --limit 1\n```\n\nFull-text content search (only if the library FTS index is enabled):\n\n```bash\ncalibredb fts_search \"PHRASE\" --output-format json --include-snippets\n```\n\nIf FTS is disabled, say so and fall back to title\u002Fauthor\u002Ftag search. Do **not**\nrun `fts_index enable` unless the user explicitly asks.\n\n## Answering guidelines\n\n1. **Catalog questions** (\"what books on X\", \"do I have Norvig\"): use\n   `samantha library search` (or `list` for unfiltered browse) and summarize\n   title, author, id, available formats.\n2. **Detail on one book**: `samantha library show ID` (or search → pick id) for\n   title, authors, tags, series, pubdate, formats. Quote comments\u002Fdescription\n   only if present and keep under ~500 characters.\n3. **Content \u002F quote search**: try FTS; if it fails or is empty, explain and\n   offer metadata search instead. Never dump a whole book into the reply.\n4. **Audiobook path**: resolve to an EPUB or PDF path. If only MOBI\u002FAZW3 (or\n   another supported Calibre source format) is available, Samantha converts it\n   to a cached EPUB with `ebook-convert` when Calibre is installed; mention the\n   converter requirement if conversion cannot run.\n5. Cap results at ~20 titles unless the user asks for more. Prefer the most\n   relevant hits.\n\n## Safety\n\n- Pass the user query as a **single argument** to `--search` \u002F the CLI — never\n  build shell strings with unescaped user text.\n- Do not modify the library (no add\u002Fremove\u002Fset_metadata) unless the user\n  explicitly requests a write and you confirm.\n- The feature is optional: if Calibre is disabled or missing, tell the user how\n  to enable it (`samantha config calibre_enabled true` and install Calibre).\n","# Calibre library skill\n\nAnswer questions about the user's **local Calibre ebook library**. Prefer\nmetadata search over reading whole books. Excerpts must stay short.\n\n## Prerequisites\n\n- `calibre_enabled=true` in Samantha config (`samantha config calibre_enabled true`).\n- Calibre installed (`calibredb` on PATH or in the macOS app bundle).\n- Optional: `calibre_library_path` if not using Calibre's default library.\n\n## How to query (fixed argv — no shell interpolation of user text)\n\nUse the Samantha CLI (preferred) or `calibredb` with fixed arguments:\n\n```bash\n# Browse catalog (no filter; title order)\nsamantha library list --limit 50\n\n# Search catalog (Calibre search grammar: free text, author:\"…\", tag:…, series:…)\nsamantha library search \"QUERY\" --limit 20\nsamantha library search \"QUERY\" --json\n\n# One book’s metadata (description, formats, tags)\nsamantha library show ID\n\n# Or call calibredb directly when samantha library is unavailable:\n# calibredb list --for-machine --fields title,authors,tags,series,formats,pubdate \\\n#   --search \"QUERY\" --limit 20\n```\n\nFor a single book id (when `library show` is unavailable):\n\n```bash\ncalibredb list --for-machine --fields all --search \"id:N\" --limit 1\n```\n\nFull-text content search (only if the library FTS index is enabled):\n\n```bash\ncalibredb fts_search \"PHRASE\" --output-format json --include-snippets\n```\n\nIf FTS is disabled, say so and fall back to title\u002Fauthor\u002Ftag search. Do **not**\nrun `fts_index enable` unless the user explicitly asks.\n\n## Answering guidelines\n\n1. **Catalog questions** (\"what books on X\", \"do I have Norvig\"): use\n   `samantha library search` (or `list` for unfiltered browse) and summarize\n   title, author, id, available formats.\n2. **Detail on one book**: `samantha library show ID` (or search → pick id) for\n   title, authors, tags, series, pubdate, formats. Quote comments\u002Fdescription\n   only if present and keep under ~500 characters.\n3. **Content \u002F quote search**: try FTS; if it fails or is empty, explain and\n   offer metadata search instead. Never dump a whole book into the reply.\n4. **Audiobook path**: resolve to an EPUB or PDF path. If only MOBI\u002FAZW3 (or\n   another supported Calibre source format) is available, Samantha converts it\n   to a cached EPUB with `ebook-convert` when Calibre is installed; mention the\n   converter requirement if conversion cannot run.\n5. Cap results at ~20 titles unless the user asks for more. Prefer the most\n   relevant hits.\n\n## Safety\n\n- Pass the user query as a **single argument** to `--search` \u002F the CLI — never\n  build shell strings with unescaped user text.\n- Do not modify the library (no add\u002Fremove\u002Fset_metadata) unless the user\n  explicitly requests a write and you confirm.\n- The feature is optional: if Calibre is disabled or missing, tell the user how\n  to enable it (`samantha config calibre_enabled true` and install Calibre).\n",{"name":5,"description":7},"main","65912621aa169ed648a5b9fb89a140c09e96dc22","skills\u002Fcalibre",0,"https:\u002F\u002Fgithub.com\u002Flancekrogers\u002Fsamantha","https:\u002F\u002Fgithub.com\u002Flancekrogers","https:\u002F\u002Fblockhead.consulting","Building Infrastructure for autonomous companies","2026-10-28 13:58:51",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add lancekrogers\u002Fsamantha --skill calibre",{"tool":47,"command":48},"bunx","bunx skills add lancekrogers\u002Fsamantha --skill calibre",{"tool":50,"command":51},"pnpm","pnpm dlx skills add lancekrogers\u002Fsamantha --skill calibre","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flancekrogers\u002Fsamantha\u002Fblob\u002Fmain\u002Fskills\u002Fcalibre\u002FSKILL.md",true,[55],{"path":56,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":59,"sourceHtmlUrl":60},"index.json","REFERENCE","参考文档",546,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows-logs-eventlog\u002Findex.json",[62,74],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":27},"01M6E1RV0W8QMTDE04S130MRWR","hello","A friendly greeting skill for tests.","https:\u002F\u002Fgithub.com\u002Flancekrogers\u002Fsamantha\u002Fblob\u002Fmain\u002Fpkg\u002Fvoiceagent\u002Fskills\u002Ftestdata\u002Fskills\u002Fhello\u002FSKILL.md",[],[64,69,70,71,72,73],"read","list","files","greeting","tests",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":27},"01M6E1RRVPVEVBMHQWDVBC7RY5","broken","https:\u002F\u002Fgithub.com\u002Flancekrogers\u002Fsamantha\u002Fblob\u002Fmain\u002Fpkg\u002Fvoiceagent\u002Fskills\u002Ftestdata\u002Fskills\u002Fbroken\u002FSKILL.md",[],[76]]