[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JCXW6FZKDEVFSSDYFCPK1":3,"skill-same:01M71JCXW6FZKDEVFSSDYFCPK1":72},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":5,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M71JCXW6FZKDEVFSSDYFCPK1","chatlog",null,"Query the user's own WeChat (微信) history through the local chatlog HTTP API (http:\u002F\u002F127.0.0.1:5030). Use whenever the user wants to read, search, summarize, or export their WeChat messages, contacts, or group chats — e.g. \"what did 张三 say last week\", \"summarize the 车队群 group today\", \"find messages about 练车\", \"看看我和某人的聊天记录\", \"export this chat to CSV\", \"who's in this 群\". Resolves people\u002Fgroups to a talker, then queries chatlog by time range. Personal, read-only data already decrypted on this machine.","caezium\u002Fskills","caezium","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F113233555?v=4","01M71JB77ZPBAWEK009Y2W8BP7","Henry Zhang","01M71JB792NVXCWSYD27HQ0964",3,"MIT","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fchatlog\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"local","contacts","csv","api","query","group","people","http","use","only","machine","微信","messages","search","time","read-only","wechat","history","http api","2026-11-10 10:12:30",false,"---\nname: chatlog\ndescription: >\n  Query the user's own WeChat (微信) history through the local chatlog HTTP API\n  (http:\u002F\u002F127.0.0.1:5030). Use whenever the user wants to read, search, summarize,\n  or export their WeChat messages, contacts, or group chats — e.g. \"what did 张三\n  say last week\", \"summarize the 车队群 group today\", \"find messages about\n  练车\", \"看看我和某人的聊天记录\", \"export this chat to CSV\", \"who's in this 群\".\n  Resolves people\u002Fgroups to a talker, then queries chatlog by time range. Personal,\n  read-only data already decrypted on this machine.\n---\n\n# Chatlog\n\n`chatlog` decrypts the user's local WeChat database and serves it over a small HTTP API (and an MCP SSE endpoint). This skill drives that **HTTP API** with `curl` — it's the most reliable path and needs no extra setup.\n\nBase URL: **`http:\u002F\u002F127.0.0.1:5030`** (the server listens on `0.0.0.0:5030`).\n\nThis is the user's *own* chat data, already decrypted and served on their machine. Treat it as private: query only what's asked, summarize locally, and never send it to an external service.\n\n## Before anything: confirm the server is up\n\nEvery query depends on the server running. Check once at the start of a task:\n\n```sh\ncurl -sf http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fsession?format=json >\u002Fdev\u002Fnull && echo UP || echo DOWN\n```\n\nIf `DOWN`, the user needs to start it. The interactive TUI (`chatlog`, then \"开启 HTTP 服务\") or `chatlog server` both work, but **don't launch a long-running server yourself** — tell the user to start it (or confirm the chatlog app is running and logged in). If a query returns an auth\u002Fkey error, the data key may have expired — the user should re-run \"获取密钥\" \u002F decrypt in the app.\n\n## The one pattern to use for every call\n\nTalker names, keywords, and group names are usually Chinese and contain `@`, spaces, etc. Let `curl` URL-encode for you with `-G --data-urlencode` — never hand-build query strings:\n\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=2026-06-01~2026-06-05\" \\\n  --data-urlencode \"talker=车友群\" \\\n  --data-urlencode \"format=json\"\n```\n\n## The four endpoints\n\n| Endpoint | Returns | Key params |\n|---|---|---|\n| `GET \u002Fapi\u002Fv1\u002Fsession` | recent conversations, newest first | `format` |\n| `GET \u002Fapi\u002Fv1\u002Fcontact` | contacts (friends + others) | `keyword`, `format` |\n| `GET \u002Fapi\u002Fv1\u002Fchatroom` | group chats + their members | `keyword`, `format` |\n| `GET \u002Fapi\u002Fv1\u002Fchatlog` | **messages** (the main one) | `time`*, `talker`*, `sender`, `keyword`, `limit`, `offset`, `format` |\n\n`*` = required for `\u002Fchatlog`. `session`\u002F`contact`\u002F`chatroom` wrap results in `{\"items\": [...]}`; `\u002Fchatlog` in JSON returns a **bare array** of messages.\n\nSee `references\u002Fapi.md` for full response field lists, message `type` codes, media retrieval, CSV export, and the CLI.\n\n## Workflow: almost always two steps\n\n**1. Resolve the talker.** `\u002Fchatlog` needs a `talker` — a contact or a group. The user names someone in natural language (\"Marcus\", \"the car team group\"); turn that into something the API accepts.\n\n`talker` accepts a wxid (`wxid_xxx`), a chatroom id (`xxxx@chatroom`), or a display name (remark \u002F nickName \u002F alias \u002F group name). Display names work directly (verified), but they can be ambiguous or have variant characters — when in doubt, look it up first and use the exact id:\n\n```sh\n# find a person\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fcontact  --data-urlencode \"keyword=张三\" --data-urlencode \"format=json\"\n# find a group (also shows members)\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatroom --data-urlencode \"keyword=车队\" --data-urlencode \"format=json\"\n```\n\nUse the returned `userName` (for people) or `name` (for groups, the `...@chatroom` value) as the `talker`. If `keyword` matches several, show the user the candidates and ask which — don't silently pick one.\n\n**2. Query messages** with that talker and a time range (below). Default (no `format`) returns clean, human-readable plain text — best when you'll read or summarize. Use `format=json` when you need to count, filter, or process; `format=csv` to export.\n\n## Time ranges (required, absolute only)\n\n`time` accepts a single day or a `start~end` range, in `YYYY-MM-DD`:\n\n- `time=2026-06-04` — one day\n- `time=2026-06-01~2026-06-05` — inclusive range\n\n**Relative words are NOT supported** — `今天`, `近7天`, `yesterday` all error out. Compute concrete dates first. Today is **2026-06-05** per session context, but always derive dates so they stay correct:\n\n```sh\nTODAY=$(date +%F)                       # today\nWEEK_AGO=$(date -v-7d +%F)              # 7 days ago (macOS)\n# → time=${WEEK_AGO}~${TODAY}\n```\n\n## Common recipes\n\n**\"What did the 车队 group say today?\"** (resolve group → fetch today, readable text):\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=$(date +%F)\" \\\n  --data-urlencode \"talker=12345678901@chatroom\"\n```\n\n**\"Find messages mentioning 练车 this past month\"** (`keyword` filters server-side):\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=$(date -v-1m +%F)~$(date +%F)\" \\\n  --data-urlencode \"talker=车友群\" \\\n  --data-urlencode \"keyword=练车\" --data-urlencode \"format=json\"\n```\n\n**\"What did one person say in a group?\"** Add `sender` (a wxid) to filter within a chatroom.\n\n**\"Export my chat with X to a spreadsheet\"** — `format=csv`, redirect to a file:\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=2026-01-01~2026-06-05\" \\\n  --data-urlencode \"talker=wxid_xxx\" --data-urlencode \"format=csv\" > chat.csv\n```\n\n**\"What have I been talking about lately?\"** → `GET \u002Fapi\u002Fv1\u002Fsession` for the recent-conversation list, then drill into ones the user cares about.\n\n## Gotchas\n\n- **Busy groups are huge.** A month in an active group can be thousands of messages. Narrow the time range, lean on `keyword`, or page with `limit`\u002F`offset` rather than pulling everything. If you cap results, say so — don't imply you read it all.\n- **Read text, process JSON.** For summaries, the default text format is already clean (sender, timestamp, content; media as markdown links). Only request JSON when you need structured fields.\n- **Message types beyond text.** `type=1` is text; images\u002Fvoice\u002Fvideo\u002Fstickers\u002Ffiles\u002Flinks\u002Fquotes\u002Fsystem messages have other codes and may have empty `content`. The type table and how to read each is in `references\u002Fapi.md`.\n- **Media files** (images, voice, video, files) are fetched from `\u002Fimage\u002F`, `\u002Fvoice\u002F`, `\u002Fvideo\u002F`, `\u002Ffile\u002F` using the key embedded in the text output or the message's `contents` field — see `references\u002Fapi.md`.\n\n## References\n\n- `references\u002Fapi.md` — full endpoint params, response schemas, message `type`\u002F`subType` codes, media endpoints, CSV columns, and the `chatlog` CLI (key\u002Fdecrypt\u002Fserver).\n","# Chatlog\n\n`chatlog` decrypts the user's local WeChat database and serves it over a small HTTP API (and an MCP SSE endpoint). This skill drives that **HTTP API** with `curl` — it's the most reliable path and needs no extra setup.\n\nBase URL: **`http:\u002F\u002F127.0.0.1:5030`** (the server listens on `0.0.0.0:5030`).\n\nThis is the user's *own* chat data, already decrypted and served on their machine. Treat it as private: query only what's asked, summarize locally, and never send it to an external service.\n\n## Before anything: confirm the server is up\n\nEvery query depends on the server running. Check once at the start of a task:\n\n```sh\ncurl -sf http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fsession?format=json >\u002Fdev\u002Fnull && echo UP || echo DOWN\n```\n\nIf `DOWN`, the user needs to start it. The interactive TUI (`chatlog`, then \"开启 HTTP 服务\") or `chatlog server` both work, but **don't launch a long-running server yourself** — tell the user to start it (or confirm the chatlog app is running and logged in). If a query returns an auth\u002Fkey error, the data key may have expired — the user should re-run \"获取密钥\" \u002F decrypt in the app.\n\n## The one pattern to use for every call\n\nTalker names, keywords, and group names are usually Chinese and contain `@`, spaces, etc. Let `curl` URL-encode for you with `-G --data-urlencode` — never hand-build query strings:\n\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=2026-06-01~2026-06-05\" \\\n  --data-urlencode \"talker=车友群\" \\\n  --data-urlencode \"format=json\"\n```\n\n## The four endpoints\n\n| Endpoint | Returns | Key params |\n|---|---|---|\n| `GET \u002Fapi\u002Fv1\u002Fsession` | recent conversations, newest first | `format` |\n| `GET \u002Fapi\u002Fv1\u002Fcontact` | contacts (friends + others) | `keyword`, `format` |\n| `GET \u002Fapi\u002Fv1\u002Fchatroom` | group chats + their members | `keyword`, `format` |\n| `GET \u002Fapi\u002Fv1\u002Fchatlog` | **messages** (the main one) | `time`*, `talker`*, `sender`, `keyword`, `limit`, `offset`, `format` |\n\n`*` = required for `\u002Fchatlog`. `session`\u002F`contact`\u002F`chatroom` wrap results in `{\"items\": [...]}`; `\u002Fchatlog` in JSON returns a **bare array** of messages.\n\nSee `references\u002Fapi.md` for full response field lists, message `type` codes, media retrieval, CSV export, and the CLI.\n\n## Workflow: almost always two steps\n\n**1. Resolve the talker.** `\u002Fchatlog` needs a `talker` — a contact or a group. The user names someone in natural language (\"Marcus\", \"the car team group\"); turn that into something the API accepts.\n\n`talker` accepts a wxid (`wxid_xxx`), a chatroom id (`xxxx@chatroom`), or a display name (remark \u002F nickName \u002F alias \u002F group name). Display names work directly (verified), but they can be ambiguous or have variant characters — when in doubt, look it up first and use the exact id:\n\n```sh\n# find a person\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fcontact  --data-urlencode \"keyword=张三\" --data-urlencode \"format=json\"\n# find a group (also shows members)\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatroom --data-urlencode \"keyword=车队\" --data-urlencode \"format=json\"\n```\n\nUse the returned `userName` (for people) or `name` (for groups, the `...@chatroom` value) as the `talker`. If `keyword` matches several, show the user the candidates and ask which — don't silently pick one.\n\n**2. Query messages** with that talker and a time range (below). Default (no `format`) returns clean, human-readable plain text — best when you'll read or summarize. Use `format=json` when you need to count, filter, or process; `format=csv` to export.\n\n## Time ranges (required, absolute only)\n\n`time` accepts a single day or a `start~end` range, in `YYYY-MM-DD`:\n\n- `time=2026-06-04` — one day\n- `time=2026-06-01~2026-06-05` — inclusive range\n\n**Relative words are NOT supported** — `今天`, `近7天`, `yesterday` all error out. Compute concrete dates first. Today is **2026-06-05** per session context, but always derive dates so they stay correct:\n\n```sh\nTODAY=$(date +%F)                       # today\nWEEK_AGO=$(date -v-7d +%F)              # 7 days ago (macOS)\n# → time=${WEEK_AGO}~${TODAY}\n```\n\n## Common recipes\n\n**\"What did the 车队 group say today?\"** (resolve group → fetch today, readable text):\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=$(date +%F)\" \\\n  --data-urlencode \"talker=12345678901@chatroom\"\n```\n\n**\"Find messages mentioning 练车 this past month\"** (`keyword` filters server-side):\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=$(date -v-1m +%F)~$(date +%F)\" \\\n  --data-urlencode \"talker=车友群\" \\\n  --data-urlencode \"keyword=练车\" --data-urlencode \"format=json\"\n```\n\n**\"What did one person say in a group?\"** Add `sender` (a wxid) to filter within a chatroom.\n\n**\"Export my chat with X to a spreadsheet\"** — `format=csv`, redirect to a file:\n```sh\ncurl -sG http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fchatlog \\\n  --data-urlencode \"time=2026-01-01~2026-06-05\" \\\n  --data-urlencode \"talker=wxid_xxx\" --data-urlencode \"format=csv\" > chat.csv\n```\n\n**\"What have I been talking about lately?\"** → `GET \u002Fapi\u002Fv1\u002Fsession` for the recent-conversation list, then drill into ones the user cares about.\n\n## Gotchas\n\n- **Busy groups are huge.** A month in an active group can be thousands of messages. Narrow the time range, lean on `keyword`, or page with `limit`\u002F`offset` rather than pulling everything. If you cap results, say so — don't imply you read it all.\n- **Read text, process JSON.** For summaries, the default text format is already clean (sender, timestamp, content; media as markdown links). Only request JSON when you need structured fields.\n- **Message types beyond text.** `type=1` is text; images\u002Fvoice\u002Fvideo\u002Fstickers\u002Ffiles\u002Flinks\u002Fquotes\u002Fsystem messages have other codes and may have empty `content`. The type table and how to read each is in `references\u002Fapi.md`.\n- **Media files** (images, voice, video, files) are fetched from `\u002Fimage\u002F`, `\u002Fvoice\u002F`, `\u002Fvideo\u002F`, `\u002Ffile\u002F` using the key embedded in the text output or the message's `contents` field — see `references\u002Fapi.md`.\n\n## References\n\n- `references\u002Fapi.md` — full endpoint params, response schemas, message `type`\u002F`subType` codes, media endpoints, CSV columns, and the `chatlog` CLI (key\u002Fdecrypt\u002Fserver).\n",{"name":5,"description":7},"main","6ef866230c1ba3459fd08fc65141dfd37fffd41a",0,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills","https:\u002F\u002Fskills.henryzh.dev","https:\u002F\u002Fgithub.com\u002Fcaezium","henryzh.dev","quant, data science, full-stack, robotics.\r\nbuilding cool stuff","2026-08-24 19:21:44",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add caezium\u002Fskills --skill chatlog",{"tool":58,"command":59},"bunx","bunx skills add caezium\u002Fskills --skill chatlog",{"tool":61,"command":62},"pnpm","pnpm dlx skills add caezium\u002Fskills --skill chatlog","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fchatlog\u002FSKILL.md",true,[66],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fapi.md","REFERENCE","参考文档",6748,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fchatlog\u002Freferences\u002Fapi.md",[73,96,124,142,162,184],{"skillNo":74,"name":75,"nameZh":6,"description":76,"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":89,"publishedAt":38},"01M71JT4RYCAS18RF6003YYR1D","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwriting-for-agents\u002FSKILL.md",[79,84],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[90,91,92,93,27,94,95],"writing for agents","for","writing","editing","documents","when",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":105,"publishedAt":38},"01M71JT0GES4AZ5ADH8EADNN1Z","wrangler","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwrangler\u002FSKILL.md",[102],{"categoryNo":103,"categoryName":104,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口",[98,106,107,108,109,110,111,112,113,114,115,116,117,91,118,119,120,121,122,123],"cloudflare","d1","knowledge","workflows","cli","secrets","commands","syntax","cloudflare workers","r2","queues","running","containers","correct","load","workers","best practices","store",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":38},"01M71JSWX4R203M32K9A18AAW8","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fworkers-best-practices\u002FSKILL.md",[],[131,121,122,132,133,134,91,106,135,108,136,98,92,120,95,137,138,139,140,141],"workers best practices","observability","reviews","promises","worker","new","code","common","streaming","state","anti-patterns",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":38},"01M71JST6P88MXGT2MWDTPJGEG","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwizard\u002FSKILL.md",[],[144,117,149,91,150,151,152,28,27,153,95,154,155,156,157,158,159,160,161,111],"setting","up","ci","provisioning infrastructure","invoke","Bash","one","interactive","can","credentials","dashboard","generate","human",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":166,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":38},"01M71JSQ95S7BQ61DAPN95X2W4","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available evidence sources, searches each relevant category, and returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FSKILL.md",[],[164,170,171,172,173,91,174,175,27,176,177,178,179,180,181,182,183],"sources","thresholds","evidence","relevant","runtime","design","decisions","work","how","behavior","read","data","rationale","returns",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":193,"publishedAt":38},"01M71JSMHFVSH8HK8GXN6YAX6J","week-prep","Generate a briefing with calendar, tasks, and attention flags. Use for \"week prep\", \"briefing\", or \"what's on this week\".","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fweek-prep\u002FSKILL.md",[190],{"categoryNo":191,"categoryName":192,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",[194,195,196,197,198,91,32,31,199,200,27,154,201,202,203,160,204,180,205,206],"week prep","prep","deep","attention","get","briefing","MCP","tasks","with","slack","calendar","flags","grep"]