[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HVACTAQSS6N2CACZPZ51MM":3,"skill-same:01M6HVACTAQSS6N2CACZPZ51MM":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6HVACTAQSS6N2CACZPZ51MM","hermit-health",null,"Show alert state, pending task decisions, routine engagement, knowledge state, channel availability, plus fragile zones, long-waiting decisions, and recent learnings. Activates on messages like 'health check', 'how's the hermit', 'is anything broken', 'hermit health', 'system health', 'anything wrong', 'hermitd status', 'hermit brain', 'are routines running', 'what's stuck', 'any fragile zones', 'show me what's blocked', 'recent learnings', 'what have you learned lately', 'where are the weak spots', 'check knowledge', 'lint knowledge', 'knowledge health'.","gtapps\u002Fhermitd","gtapps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16778396?v=4","01M6HTX8TNTPQN3NXRVA63VHTH","01M6HTX8Z23S531ZPPA5DKJVD0",84,"MIT","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fhermit-health\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"hermit health","hermit","health","decisions","pending","long","running","lint","learnings","you","show me","alert","knowledge","spots","routines","messages","system","availability","show","broken","2026-11-10 10:12:30",false,"---\nname: hermit-health\nmodel: haiku\ndescription: \"Show alert state, pending task decisions, routine engagement, knowledge state, channel availability, plus fragile zones, long-waiting decisions, and recent learnings. Activates on messages like 'health check', 'how's the hermit', 'is anything broken', 'hermit health', 'system health', 'anything wrong', 'hermitd status', 'hermit brain', 'are routines running', 'what's stuck', 'any fragile zones', 'show me what's blocked', 'recent learnings', 'what have you learned lately', 'where are the weak spots', 'check knowledge', 'lint knowledge', 'knowledge health'.\"\n---\n# Hermit Health\n\nSynthesize a compact \"state of the hermit\" snapshot in two halves: infrastructure (active alerts, pending decisions, routine engagement, knowledge state, channel readiness) and analysis (fragile zones, long-waiting decisions, recent learnings). Everything is read directly in main — this skill is on-demand and runner-free.\n\n## Step 0 — Channel reply\n\nIf this skill was invoked from a channel-arrived message (the inbound prompt contains a `\u003Cchannel source=\"...\">` tag), reply via that channel's reply tool. Otherwise emit to conversation.\n\n## Scope\n\nRead the following (gracefully skip any file that doesn't exist). The sources are independent — read them concurrently:\n\n1. `.hermit\u002Fstate\u002Falert-state.json` — the `alerts` object, keyed by alert id (`checklist:*`, `custom:*`). Each entry has `text`, `count`, `first_seen`, `last_seen`, `suppressed`, `consecutive_clean`.\n2. `.hermit\u002Fstate\u002Fruntime.json` — `last_activity`, `session_id`.\n3. `.hermit\u002Fstate\u002Freflection-state.json` — `last_reflection` timestamp, `counters` (including `judge_suppress_by_code` map and run\u002Foutput fields), and run\u002Foutput counters.\n4. `.hermit\u002Fconfig.json` — `routines` array (id, schedule, enabled); `channels` object (each channel's `default_chat_id`).\n5. `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Ftask.ts list .hermit --open --limit 20 --json` for open tasks and their pending decisions. Use `total` for the open count, describe only the returned sample, and report `omitted` rather than scanning more files. A proposal is a task with `kind: proposal`; authority, purpose and wait age come from its decision and record, never a separate queue.\n7. Glob counts: `.hermit\u002Fraw\u002F**` (excluding `.archive\u002F`), `.hermit\u002Fcompiled\u002F**`, `.hermit\u002Fraw\u002F.archive\u002F**`.\n8. `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Ftask-report.ts .hermit --limit 5` for normalized recent task records: titles, outcomes, waiting reasons and lessons. Never read frozen session archives or the old live shell document.\n\n## Analysis\n\n**Alerts:** From `alert-state.json → alerts`, active means `suppressed` is not `true`; suppressed ones are digest-only and reported separately. Compute each entry's age from `first_seen`. Report the active count with the oldest entry's `text` and age, then the suppressed count with its oldest age. If no active entries: \"No active alerts\" (still name the suppressed count when there is one).\n\n**Proposal queue:** Count proposals with `status: proposed` (pending operator review), `status: accepted` (in flight, not yet resolved), and `status: in_progress`. If all zero: \"Queue empty.\"\n\n**Routine engagement:** From `config.json.routines`, list each routine and its schedule. For the `reflect` routine, use `reflection-state.json → last_reflection` to show when it last ran; also append counter info from `reflection-state.json → counters`: apply the reflect-line rules below, then append the suppress-mix suffix if any `judge_suppress_by_code` code has a non-zero count: `suppress mix — no-evidence:N, covered-by-memory:N, no-sessions:N` (omit codes with count 0; omit the suffix entirely when all counts are 0 or the map is absent). For every routine, run `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Froutines.ts health .hermit` once and take last run, fire count and skip reason from its rows.\n\n**Reflect-line rules** (applied to the reflect routine bullet):\n- If `counters` is absent: omit the counter clause entirely\n- If `total_runs` is 0: show `no runs yet (since YYYY-MM-DD)` where the date is `counters.since`\n- Otherwise: `N runs, N empty | output: N proposal tasks, N input decisions | since YYYY-MM-DD` where the date is `counters.since`; omit `| output: ...` if both `proposals_created` and `micro_proposals_queued` are 0\n\n**Micro:** Count entries with `status: \"pending\"` in `pending decisions.json`. Omit this section entirely if count is zero.\n\n**Knowledge:** Report glob counts for raw (excl. archive), compiled, and archived files. Omit if all three are zero and the directories are missing. If the operator explicitly asked to check or lint knowledge (\"check knowledge\", \"lint knowledge\", \"knowledge health\"), also run `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fknowledge-lint.ts .hermit` and list its `findings` by type (`file`, `age` in days, `detail`) beneath the counts, each type with its fix from [reference.md](reference.md). It is read-only.\n\n**Channel availability:** From `config.json.channels`, for each configured channel, check whether `default_chat_id` is set — the same home field the outbound resolver uses. Report \"ready\" or \"not yet paired (no chat id — send a message first)\".\n\n**Fragile zones:** From the last five normalized task records, identify repeated themes in cancelled outcomes and open waiting reasons. Combine these with proposal tags for dismissed or blocked proposals. Surface the top two or three themes with the actual outcomes; unconfirmed is not completed. If none recur, report \"No fragile zones detected.\"\n\n**Stale proposals:** From proposals, find those with `status: accepted` and `resolved_date` absent or `null`. Sort by `accepted_date` ascending (oldest first). Show up to 3. Compute days open = today minus `accepted_date`. If none: \"No accepted proposals awaiting resolution.\"\n\n**Recent learnings:** From `reflection-state.json`, read `queue` entries with `status: accepted` or `status: pending` and surface the most recent 3 question\u002Fobservation fields. If the queue is empty or absent, use the normalized records’ `lessons`. Surface top 3. If nothing: \"No recent learnings — reflect hasn't run yet.\"\n\n## Output\n\nReply in ≤1500 chars. Use exactly this section structure:\n\n```\n### Alerts\n- N active (oldest: [text] Xd ago), M suppressed (oldest Xd ago) [with N = 0: \"No active alerts, M suppressed (oldest Xd ago)\"; omit the suppressed clause entirely when M is 0]\n(or: Alerts — alert-state.json not found (hermit not yet initialized).)\n\n### Proposal queue\n- N proposed (pending review), N accepted (in flight), N in_progress\n(or: Queue empty.)\n\n### Routine engagement\n- [id]: enabled, schedule [cron], [last ran Xh ago | N runs, N empty | output: N proposal tasks, N input decisions | since YYYY-MM-DD] [suppress mix suffix if applicable]\n- [id]: disabled\n(or: Routine engagement — config.json not found.)\n\n### Micro\n- N pending decision\n(omit section entirely if zero pending)\n\n### Knowledge\n- N raw, N compiled, N archived\n\n### Channel availability\n- [channel]: ready (chat id set) [or \"not yet paired\"]\n(or: No channels configured — type \u002Fhermitd:channel-setup in a terminal or the Claude app.)\n\n### Fragile zones\n- [tag or theme]: [one-line reason]\n(or: No fragile zones detected — no recurring cancelled or waiting tasks yet.)\n\n### Stale proposals\n- T-...: [title] (accepted N days ago)\n(or: No accepted proposals awaiting resolution.)\n\n### Recent learnings\n- [learning]\n(or: No recent learnings — reflect hasn't run yet.)\n```\n\nOmit sections that have no data rather than showing a heading with an empty body. Keep each bullet to one line. If the assembled report would exceed 1500 chars, keep Alerts, Proposal queue, and Fragile zones in full and truncate the longer lists (Routine engagement, Recent learnings) to their top 2 entries.\n","# Hermit Health\n\nSynthesize a compact \"state of the hermit\" snapshot in two halves: infrastructure (active alerts, pending decisions, routine engagement, knowledge state, channel readiness) and analysis (fragile zones, long-waiting decisions, recent learnings). Everything is read directly in main — this skill is on-demand and runner-free.\n\n## Step 0 — Channel reply\n\nIf this skill was invoked from a channel-arrived message (the inbound prompt contains a `\u003Cchannel source=\"...\">` tag), reply via that channel's reply tool. Otherwise emit to conversation.\n\n## Scope\n\nRead the following (gracefully skip any file that doesn't exist). The sources are independent — read them concurrently:\n\n1. `.hermit\u002Fstate\u002Falert-state.json` — the `alerts` object, keyed by alert id (`checklist:*`, `custom:*`). Each entry has `text`, `count`, `first_seen`, `last_seen`, `suppressed`, `consecutive_clean`.\n2. `.hermit\u002Fstate\u002Fruntime.json` — `last_activity`, `session_id`.\n3. `.hermit\u002Fstate\u002Freflection-state.json` — `last_reflection` timestamp, `counters` (including `judge_suppress_by_code` map and run\u002Foutput fields), and run\u002Foutput counters.\n4. `.hermit\u002Fconfig.json` — `routines` array (id, schedule, enabled); `channels` object (each channel's `default_chat_id`).\n5. `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Ftask.ts list .hermit --open --limit 20 --json` for open tasks and their pending decisions. Use `total` for the open count, describe only the returned sample, and report `omitted` rather than scanning more files. A proposal is a task with `kind: proposal`; authority, purpose and wait age come from its decision and record, never a separate queue.\n7. Glob counts: `.hermit\u002Fraw\u002F**` (excluding `.archive\u002F`), `.hermit\u002Fcompiled\u002F**`, `.hermit\u002Fraw\u002F.archive\u002F**`.\n8. `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Ftask-report.ts .hermit --limit 5` for normalized recent task records: titles, outcomes, waiting reasons and lessons. Never read frozen session archives or the old live shell document.\n\n## Analysis\n\n**Alerts:** From `alert-state.json → alerts`, active means `suppressed` is not `true`; suppressed ones are digest-only and reported separately. Compute each entry's age from `first_seen`. Report the active count with the oldest entry's `text` and age, then the suppressed count with its oldest age. If no active entries: \"No active alerts\" (still name the suppressed count when there is one).\n\n**Proposal queue:** Count proposals with `status: proposed` (pending operator review), `status: accepted` (in flight, not yet resolved), and `status: in_progress`. If all zero: \"Queue empty.\"\n\n**Routine engagement:** From `config.json.routines`, list each routine and its schedule. For the `reflect` routine, use `reflection-state.json → last_reflection` to show when it last ran; also append counter info from `reflection-state.json → counters`: apply the reflect-line rules below, then append the suppress-mix suffix if any `judge_suppress_by_code` code has a non-zero count: `suppress mix — no-evidence:N, covered-by-memory:N, no-sessions:N` (omit codes with count 0; omit the suffix entirely when all counts are 0 or the map is absent). For every routine, run `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Froutines.ts health .hermit` once and take last run, fire count and skip reason from its rows.\n\n**Reflect-line rules** (applied to the reflect routine bullet):\n- If `counters` is absent: omit the counter clause entirely\n- If `total_runs` is 0: show `no runs yet (since YYYY-MM-DD)` where the date is `counters.since`\n- Otherwise: `N runs, N empty | output: N proposal tasks, N input decisions | since YYYY-MM-DD` where the date is `counters.since`; omit `| output: ...` if both `proposals_created` and `micro_proposals_queued` are 0\n\n**Micro:** Count entries with `status: \"pending\"` in `pending decisions.json`. Omit this section entirely if count is zero.\n\n**Knowledge:** Report glob counts for raw (excl. archive), compiled, and archived files. Omit if all three are zero and the directories are missing. If the operator explicitly asked to check or lint knowledge (\"check knowledge\", \"lint knowledge\", \"knowledge health\"), also run `bun ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fknowledge-lint.ts .hermit` and list its `findings` by type (`file`, `age` in days, `detail`) beneath the counts, each type with its fix from [reference.md](reference.md). It is read-only.\n\n**Channel availability:** From `config.json.channels`, for each configured channel, check whether `default_chat_id` is set — the same home field the outbound resolver uses. Report \"ready\" or \"not yet paired (no chat id — send a message first)\".\n\n**Fragile zones:** From the last five normalized task records, identify repeated themes in cancelled outcomes and open waiting reasons. Combine these with proposal tags for dismissed or blocked proposals. Surface the top two or three themes with the actual outcomes; unconfirmed is not completed. If none recur, report \"No fragile zones detected.\"\n\n**Stale proposals:** From proposals, find those with `status: accepted` and `resolved_date` absent or `null`. Sort by `accepted_date` ascending (oldest first). Show up to 3. Compute days open = today minus `accepted_date`. If none: \"No accepted proposals awaiting resolution.\"\n\n**Recent learnings:** From `reflection-state.json`, read `queue` entries with `status: accepted` or `status: pending` and surface the most recent 3 question\u002Fobservation fields. If the queue is empty or absent, use the normalized records’ `lessons`. Surface top 3. If nothing: \"No recent learnings — reflect hasn't run yet.\"\n\n## Output\n\nReply in ≤1500 chars. Use exactly this section structure:\n\n```\n### Alerts\n- N active (oldest: [text] Xd ago), M suppressed (oldest Xd ago) [with N = 0: \"No active alerts, M suppressed (oldest Xd ago)\"; omit the suppressed clause entirely when M is 0]\n(or: Alerts — alert-state.json not found (hermit not yet initialized).)\n\n### Proposal queue\n- N proposed (pending review), N accepted (in flight), N in_progress\n(or: Queue empty.)\n\n### Routine engagement\n- [id]: enabled, schedule [cron], [last ran Xh ago | N runs, N empty | output: N proposal tasks, N input decisions | since YYYY-MM-DD] [suppress mix suffix if applicable]\n- [id]: disabled\n(or: Routine engagement — config.json not found.)\n\n### Micro\n- N pending decision\n(omit section entirely if zero pending)\n\n### Knowledge\n- N raw, N compiled, N archived\n\n### Channel availability\n- [channel]: ready (chat id set) [or \"not yet paired\"]\n(or: No channels configured — type \u002Fhermitd:channel-setup in a terminal or the Claude app.)\n\n### Fragile zones\n- [tag or theme]: [one-line reason]\n(or: No fragile zones detected — no recurring cancelled or waiting tasks yet.)\n\n### Stale proposals\n- T-...: [title] (accepted N days ago)\n(or: No accepted proposals awaiting resolution.)\n\n### Recent learnings\n- [learning]\n(or: No recent learnings — reflect hasn't run yet.)\n```\n\nOmit sections that have no data rather than showing a heading with an empty body. Keep each bullet to one line. If the assembled report would exceed 1500 chars, keep Alerts, Proposal queue, and Fragile zones in full and truncate the longer lists (Routine engagement, Recent learnings) to their top 2 entries.\n",{"name":5,"model":43,"description":7},"haiku","main","84942b77e465976992abc4e1444c09724b1770af","plugins\u002Fhermitd\u002Fskills\u002Fhermit-health",16,"https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd","https:\u002F\u002Fhermitd.dev","https:\u002F\u002Fgithub.com\u002Fgtapps","Software engineer from Portugal.\r\nBuilding and deploying agents for real companies.","2026-11-11 08:46:23",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add gtapps\u002Fhermitd --skill hermit-health",{"tool":59,"command":60},"bunx","bunx skills add gtapps\u002Fhermitd --skill hermit-health",{"tool":62,"command":63},"pnpm","pnpm dlx skills add gtapps\u002Fhermitd --skill hermit-health","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fhermit-health\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"reference.md","REFERENCE","参考文档",1009,"https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fhermit-health\u002Freference.md",[74,90,106,129,145,154],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":38},"01M718AB18DTYHVGXA6VF1VVR2","dream","Nightly memory maintenance from transcript ground truth. Verifies, enriches and tidies auto-memory and topic pages with snapshot validation and undo. Also handles 'undo the dream'.","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fdream\u002FSKILL.md",[],[76,81,82,83,84,85,86,87,88,89],"with","maintenance","memory","validation","snapshot","pages","auto","memory maintenance","transcript",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":38},"01M6HVD4WX8RB5EKH49HM66M8X","when-done-switch-to","Arm a deferred model or effort switch. Use for \"when done switch to\", \"after this drop to sonnet\", or \"switch model when idle\".","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fwhen-done-switch-to\u002FSKILL.md",[],[97,98,99,100,101,102,103,104,105],"when","done","switch","when done switch to","for","model","use","drop","sonnet",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":38},"01M6HVD0ZA2Q1RD7CA0X8VWF3T","weekly-review","Generate the weekly review report for the current ISO week. Writes to .hermit\u002Fcompiled\u002Freview-weekly-YYYY-Www.md (dev-facing detail) and sends a plain-language channel summary (Delivered \u002F Decisions \u002F Waiting on you \u002F Spend). Runs every Sunday at 23:00 via routine.","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[113,114,115,19,116,117,118,119,120,121,122,123,21,27,124,101,125,126,127,128],"weekly review","review","weekly","plain","routine","channel","summary","report","at","generate","via","detail","iso","review report","dev","plain-language",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":38},"01M6HVCW8PHZXSPYAZQBZXB9DX","watch","Background events via the config watch monitor or ad-hoc Monitor tool. Quiet watches cost zero tokens.","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fwatch\u002FSKILL.md",[],[131,136,137,138,139,140,141,142,143,123,144],"monitor","ZeRO","tokens","tool","cost","ad","config","background","events",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":38},"01M6HVCRMG53K3Y63WAH59YVFJ","watch-activate","Activate the config watch monitor.","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fwatch-activate\u002FSKILL.md",[],[131,152,153,136,142],"activate","watch activate",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":165,"publishedAt":38},"01M6HVCK6782RD4D9ADQY0ENKD","voice-notes","Transcribe and respond to voice notes. Activates when any channel message carries an audio attachment, or when asked to transcribe an inbound voice message.","https:\u002F\u002Fgithub.com\u002Fgtapps\u002Fhermitd\u002Fblob\u002Fmain\u002Fplugins\u002Fhermitd\u002Fskills\u002Fvoice-notes\u002FSKILL.md",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":163,"taxonomyTypeDesc":164},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[166,167,168,169,170,171,172,173,174,175,19,97,176,177,178,179,180,181,27,182],"notes","voice","voice notes","SET","Audio","transcribe","operator","understand","transcription","my","read","message","can","telegram","channel message","discord","up"]