[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N0KW7GR300N3Y27JG2W7N0":3,"skill-same:01M6N0KW7GR300N3Y27JG2W7N0":91},{"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":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":63,"commitSha":64,"skillDirectory":65,"forksCount":66,"repositoryHtmlUrl":67,"repositoryHomepageUrl":6,"ownerHtmlUrl":68,"ownerBlogUrl":69,"ownerDescription":70,"updatedAt":71,"install":72,"resources":84},"01M6N0KW7GR300N3Y27JG2W7N0","daily-task-manager",null,"Task lifecycle management with stable task IDs. Add, complete, defer, remove,\nand review tasks with deterministic action routing and fail-closed ambiguity\nhandling. Maintains a running task list as a brain page.","garrytan\u002Fgbrain","garrytan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19957?v=4","01M6DJCCDDG53MTYYRTXAXFG17","Garry Tan","01M6MZQZCEN3RRMD33E1X9ZZR9",32847,"MIT","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fdaily-task-manager\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"daily task manager","manager","daily","task manager","task","get","running","task list","my tasks","my","action","true","with","add","complete","as","brain","review","deterministic","complete task","add task","remove","list","page","lifecycle","ids","search","tasks","2026-11-10 10:12:30",false,"---\nname: daily-task-manager\nversion: 2.0.0\ndescription: |\n  Task lifecycle management with stable task IDs. Add, complete, defer, remove,\n  and review tasks with deterministic action routing and fail-closed ambiguity\n  handling. Maintains a running task list as a brain page.\ntriggers:\n  - \"add task\"\n  - \"complete task\"\n  - \"what are my tasks\"\n  - \"task list\"\n  - \"defer task\"\ntools:\n  - search\n  - get_page\n  - put_page\n  - add_timeline_entry\nmutating: true\nupstream: daily-task-manager@fc834ee\n---\n\n# Daily Task Manager\n\n## Contract\n\nThis skill guarantees:\n- Tasks stored as a brain page (`ops\u002Ftasks.md`) with structured format and a stable `id` per task\n- Task lifecycle: add → in-progress → complete | defer | remove\n- Priority levels: P0 (urgent), P1 (today), P2 (this week), P3 (backlog)\n- Completed tasks archived with completion date; deferred tasks carry a target date + reason\n- Mutations never drop unrelated tasks or unknown sections\n- Every action returns the structured result below (Returns)\n\n### Returns\n\nAfter every action, report a structured result so callers (including sub-agents) can chain reliably:\n\n```\n{action, task_id, status: ok|not_found|ambiguous|needs_confirmation, priority, date, page: \"ops\u002Ftasks.md\", saved: true|false}\n```\n\nFor `review`, return the grouped active-task list instead of a single task_id. When invoked with the trigger \"task list json\", return a JSON array of task objects `{id, description, priority, due, status}` instead of markdown.\n\n## Tool Interface\n\nUse ONLY the declared tools. `get_page(\"ops\u002Ftasks.md\")` to read, `put_page(\"ops\u002Ftasks.md\", …)` to write, `add_timeline_entry` for the audit trail, `search` for cross-referencing. Do not shell out to `gbrain` CLI verbs from this skill; the tools are the interface. (When the user runs this manually outside an agent, the CLI equivalents are `gbrain get ops\u002Ftasks` \u002F `gbrain put ops\u002Ftasks` — equivalents only, not the skill's interface.)\n\n## Action Routing\n\nMap user intent deterministically before touching state:\n- \"add \u002F remind me to \u002F put X on my list\" → **add**\n- \"done with X \u002F finished X \u002F completed X \u002F ✅ X\" → **complete**\n- \"push X \u002F defer X \u002F move X to next week\" → **defer**\n- \"delete X \u002F remove X \u002F kill task X\" → **remove** (explicit delete words only — never infer remove)\n- \"what are my tasks \u002F task list \u002F what's on my plate (today)\" → **review** (\"today\" filters to P0+P1)\n\n## Phases\n\n1. **Load.** `get_page(\"ops\u002Ftasks.md\")`. **First run:** if the page does not exist, create it from the Output Format template, then proceed.\n2. **Validate.** Determine the action via Action Routing. If required fields are missing (see per-action rules), ask ONE concise clarification before mutating state. Never fabricate priorities, due dates, or defer reasons.\n3. **Identify the target task** (complete\u002Fdefer\u002Fremove): match by `id` when given; otherwise fuzzy-match description against ACTIVE tasks only. Zero matches → return `not_found`, do not mutate. Multiple matches → list candidates with IDs, return `ambiguous`, do not mutate.\n4. **Execute:**\n   - **Add:** Require a description. Priority: use the user's stated\u002Fclearly-implied level; otherwise default to **P3 and say so in the reply + timeline entry**. Due date only if supplied or explicit in the user's words. Mint a new task ID (`t-YYYYMMDD-NN`, NN = next free ordinal that day). Add a timeline entry.\n   - **Complete:** Mark `[x]`, move to Completed with `(completed: YYYY-MM-DD)`.\n   - **Defer:** Require a target date\u002Ftimeframe AND a reason; ask if missing. Move to Deferred preserving original text, ID, and priority unless the user changes them.\n   - **Remove:** Destructive — require explicit confirmation unless the user's message already contains it. Prefer suggesting complete or defer.\n   - **Review:** Read-only. Never mutates. Active tasks grouped by priority, IDs shown.\n5. **Save.** `put_page(\"ops\u002Ftasks.md\")` after any mutation. Diff-mindset: touch only the affected lines; preserve all other content, including sections this skill doesn't recognize.\n\n## Edge Cases\n\n- **First run:** page missing → create from template before acting; `status: ok`, note \"initialized\".\n- **Malformed page:** if `ops\u002Ftasks.md` exists but doesn't match the schema, do NOT rewrite it wholesale. Append\u002Fedit within it minimally, preserve unknown content verbatim, and flag the malformation in the reply.\n- **Retry\u002Fduplicate add:** if an identical description already exists in active tasks, do not add a duplicate — report the existing task ID instead.\n- **Dates:** ISO 8601 (`YYYY-MM-DD`) everywhere. Compute \"today\"\u002F\"next week\" with code\u002Fclock, never guess.\n- **Page identifier:** always `ops\u002Ftasks.md` (with extension) in tool calls; this is the single canonical location.\n- **Single-writer assumption (concurrency limitation).** The task cycle is read-modify-write: `get_page(\"ops\u002Ftasks.md\")` → edit → `put_page(\"ops\u002Ftasks.md\")`. `put_page` replaces the WHOLE page and has no compare-and-swap, so two mutations that interleave are last-writer-wins: the second `put_page` overwrites the first's change (a completed task reappears, an added task vanishes), and the `t-YYYYMMDD-NN` minting can hand the same ordinal to two concurrent adds (duplicate IDs). Serialize task edits — never run parallel task mutations (multiple subagents, concurrent chat turns) against `ops\u002Ftasks.md`. If a mutation might race, re-`get_page` immediately before `put_page` and re-derive the next free ordinal from the freshly-read page.\n\n## Output Format\n\n### Persisted page format\n\nEach task carries a stable ID so later actions can target it safely:\n\n```markdown\n# Tasks\n\n## P0 — Urgent\n- [ ] \u003C!-- id: t-20260115-01 --> {task description} (due: {date})\n\n## P1 — Today\n- [ ] \u003C!-- id: {task-id} --> {task description} (due: {date optional})\n\n## P2 — This Week\n- [ ] \u003C!-- id: {task-id} --> {task description} (due: {date optional})\n\n## P3 — Backlog\n- [ ] \u003C!-- id: {task-id} --> {task description}\n\n## Deferred\n- [ ] \u003C!-- id: {task-id} --> {task description} (deferred until: {date}; reason: {reason})\n\n## Completed\n- [x] \u003C!-- id: {task-id} --> {task description} (completed: {date})\n```\n\n### User-facing response\n\nAfter a mutation: one concise line — action, task ID, priority\u002Fstatus, relevant date, saved-or-not. For review: active tasks grouped by priority. Keep replies compact; avoid tables on narrow chat surfaces.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- The tasks page update returns `revision_conflict`: re-read `ops\u002Ftasks.md`, re-apply the one task change, and save; never overwrite the whole list from an old read.\n- `write_pending` (exit 10): report `saved: false` with the pending receipt and poll `gbrain write-request \u003Crequest_id>`; do not tell the user the task is recorded yet.\n- Ambiguous or missing task id: return `ambiguous` \u002F `not_found` and ask which task; never mutate the closest match.\n\n## Anti-Patterns\n\nEach with its corrective action:\n- Adding a task without priority → default P3 and SAY the default was applied (never silent).\n- Mutating on an ambiguous reference → stop, list candidates with IDs, ask.\n- Completing without a completion date → always stamp `(completed: YYYY-MM-DD)`.\n- Deferring without target date + reason → ask for both first.\n- Removing without explicit confirmation → confirm first; offer complete\u002Fdefer instead.\n- Overwriting the page wholesale \u002F dropping unknown sections → minimal diff edits only.\n- Using undeclared tools or CLI verbs → `get_page`\u002F`put_page`\u002F`search`\u002F`add_timeline_entry` only.\n- Fabricating due dates, priorities, or reasons → never invent required fields; ask.\n- Unbounded list growth → when Backlog exceeds ~20 items, prompt a weekly review.\n- Storing tasks outside the brain page → everything lives in `ops\u002Ftasks.md` (searchable).\n- Running parallel task mutations against `ops\u002Ftasks.md` → last-writer-wins whole-page `put_page` silently loses updates and mints duplicate IDs; serialize edits, re-read immediately before writing.\n\n## Design Rationale (failure modes this version closes)\n\n- **Interface drift:** an earlier version declared `get_page`\u002F`put_page` as tools but instructed CLI verbs in the body — models picked one at random. The declared tools are now the interface; CLI is relegated to a human-equivalent note.\n- **Unmatchable tasks:** without task IDs, \"complete the deploy task\" against two similar tasks silently mutated the wrong one. Stable `t-YYYYMMDD-NN` IDs + fail-closed ambiguity handling fix this.\n- **First-run crash:** assuming `ops\u002Ftasks.md` exists made a missing page undefined behavior. Create-from-template on first run fixes this.\n- **Wholesale overwrite risk:** \"write updated task list\" invited full-page rewrites that drop concurrent edits. Minimal-diff mandate + preserve-unknown-content rule fix this.\n","# Daily Task Manager\n\n## Contract\n\nThis skill guarantees:\n- Tasks stored as a brain page (`ops\u002Ftasks.md`) with structured format and a stable `id` per task\n- Task lifecycle: add → in-progress → complete | defer | remove\n- Priority levels: P0 (urgent), P1 (today), P2 (this week), P3 (backlog)\n- Completed tasks archived with completion date; deferred tasks carry a target date + reason\n- Mutations never drop unrelated tasks or unknown sections\n- Every action returns the structured result below (Returns)\n\n### Returns\n\nAfter every action, report a structured result so callers (including sub-agents) can chain reliably:\n\n```\n{action, task_id, status: ok|not_found|ambiguous|needs_confirmation, priority, date, page: \"ops\u002Ftasks.md\", saved: true|false}\n```\n\nFor `review`, return the grouped active-task list instead of a single task_id. When invoked with the trigger \"task list json\", return a JSON array of task objects `{id, description, priority, due, status}` instead of markdown.\n\n## Tool Interface\n\nUse ONLY the declared tools. `get_page(\"ops\u002Ftasks.md\")` to read, `put_page(\"ops\u002Ftasks.md\", …)` to write, `add_timeline_entry` for the audit trail, `search` for cross-referencing. Do not shell out to `gbrain` CLI verbs from this skill; the tools are the interface. (When the user runs this manually outside an agent, the CLI equivalents are `gbrain get ops\u002Ftasks` \u002F `gbrain put ops\u002Ftasks` — equivalents only, not the skill's interface.)\n\n## Action Routing\n\nMap user intent deterministically before touching state:\n- \"add \u002F remind me to \u002F put X on my list\" → **add**\n- \"done with X \u002F finished X \u002F completed X \u002F ✅ X\" → **complete**\n- \"push X \u002F defer X \u002F move X to next week\" → **defer**\n- \"delete X \u002F remove X \u002F kill task X\" → **remove** (explicit delete words only — never infer remove)\n- \"what are my tasks \u002F task list \u002F what's on my plate (today)\" → **review** (\"today\" filters to P0+P1)\n\n## Phases\n\n1. **Load.** `get_page(\"ops\u002Ftasks.md\")`. **First run:** if the page does not exist, create it from the Output Format template, then proceed.\n2. **Validate.** Determine the action via Action Routing. If required fields are missing (see per-action rules), ask ONE concise clarification before mutating state. Never fabricate priorities, due dates, or defer reasons.\n3. **Identify the target task** (complete\u002Fdefer\u002Fremove): match by `id` when given; otherwise fuzzy-match description against ACTIVE tasks only. Zero matches → return `not_found`, do not mutate. Multiple matches → list candidates with IDs, return `ambiguous`, do not mutate.\n4. **Execute:**\n   - **Add:** Require a description. Priority: use the user's stated\u002Fclearly-implied level; otherwise default to **P3 and say so in the reply + timeline entry**. Due date only if supplied or explicit in the user's words. Mint a new task ID (`t-YYYYMMDD-NN`, NN = next free ordinal that day). Add a timeline entry.\n   - **Complete:** Mark `[x]`, move to Completed with `(completed: YYYY-MM-DD)`.\n   - **Defer:** Require a target date\u002Ftimeframe AND a reason; ask if missing. Move to Deferred preserving original text, ID, and priority unless the user changes them.\n   - **Remove:** Destructive — require explicit confirmation unless the user's message already contains it. Prefer suggesting complete or defer.\n   - **Review:** Read-only. Never mutates. Active tasks grouped by priority, IDs shown.\n5. **Save.** `put_page(\"ops\u002Ftasks.md\")` after any mutation. Diff-mindset: touch only the affected lines; preserve all other content, including sections this skill doesn't recognize.\n\n## Edge Cases\n\n- **First run:** page missing → create from template before acting; `status: ok`, note \"initialized\".\n- **Malformed page:** if `ops\u002Ftasks.md` exists but doesn't match the schema, do NOT rewrite it wholesale. Append\u002Fedit within it minimally, preserve unknown content verbatim, and flag the malformation in the reply.\n- **Retry\u002Fduplicate add:** if an identical description already exists in active tasks, do not add a duplicate — report the existing task ID instead.\n- **Dates:** ISO 8601 (`YYYY-MM-DD`) everywhere. Compute \"today\"\u002F\"next week\" with code\u002Fclock, never guess.\n- **Page identifier:** always `ops\u002Ftasks.md` (with extension) in tool calls; this is the single canonical location.\n- **Single-writer assumption (concurrency limitation).** The task cycle is read-modify-write: `get_page(\"ops\u002Ftasks.md\")` → edit → `put_page(\"ops\u002Ftasks.md\")`. `put_page` replaces the WHOLE page and has no compare-and-swap, so two mutations that interleave are last-writer-wins: the second `put_page` overwrites the first's change (a completed task reappears, an added task vanishes), and the `t-YYYYMMDD-NN` minting can hand the same ordinal to two concurrent adds (duplicate IDs). Serialize task edits — never run parallel task mutations (multiple subagents, concurrent chat turns) against `ops\u002Ftasks.md`. If a mutation might race, re-`get_page` immediately before `put_page` and re-derive the next free ordinal from the freshly-read page.\n\n## Output Format\n\n### Persisted page format\n\nEach task carries a stable ID so later actions can target it safely:\n\n```markdown\n# Tasks\n\n## P0 — Urgent\n- [ ] \u003C!-- id: t-20260115-01 --> {task description} (due: {date})\n\n## P1 — Today\n- [ ] \u003C!-- id: {task-id} --> {task description} (due: {date optional})\n\n## P2 — This Week\n- [ ] \u003C!-- id: {task-id} --> {task description} (due: {date optional})\n\n## P3 — Backlog\n- [ ] \u003C!-- id: {task-id} --> {task description}\n\n## Deferred\n- [ ] \u003C!-- id: {task-id} --> {task description} (deferred until: {date}; reason: {reason})\n\n## Completed\n- [x] \u003C!-- id: {task-id} --> {task description} (completed: {date})\n```\n\n### User-facing response\n\nAfter a mutation: one concise line — action, task ID, priority\u002Fstatus, relevant date, saved-or-not. For review: active tasks grouped by priority. Keep replies compact; avoid tables on narrow chat surfaces.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- The tasks page update returns `revision_conflict`: re-read `ops\u002Ftasks.md`, re-apply the one task change, and save; never overwrite the whole list from an old read.\n- `write_pending` (exit 10): report `saved: false` with the pending receipt and poll `gbrain write-request \u003Crequest_id>`; do not tell the user the task is recorded yet.\n- Ambiguous or missing task id: return `ambiguous` \u002F `not_found` and ask which task; never mutate the closest match.\n\n## Anti-Patterns\n\nEach with its corrective action:\n- Adding a task without priority → default P3 and SAY the default was applied (never silent).\n- Mutating on an ambiguous reference → stop, list candidates with IDs, ask.\n- Completing without a completion date → always stamp `(completed: YYYY-MM-DD)`.\n- Deferring without target date + reason → ask for both first.\n- Removing without explicit confirmation → confirm first; offer complete\u002Fdefer instead.\n- Overwriting the page wholesale \u002F dropping unknown sections → minimal diff edits only.\n- Using undeclared tools or CLI verbs → `get_page`\u002F`put_page`\u002F`search`\u002F`add_timeline_entry` only.\n- Fabricating due dates, priorities, or reasons → never invent required fields; ask.\n- Unbounded list growth → when Backlog exceeds ~20 items, prompt a weekly review.\n- Storing tasks outside the brain page → everything lives in `ops\u002Ftasks.md` (searchable).\n- Running parallel task mutations against `ops\u002Ftasks.md` → last-writer-wins whole-page `put_page` silently loses updates and mints duplicate IDs; serialize edits, re-read immediately before writing.\n\n## Design Rationale (failure modes this version closes)\n\n- **Interface drift:** an earlier version declared `get_page`\u002F`put_page` as tools but instructed CLI verbs in the body — models picked one at random. The declared tools are now the interface; CLI is relegated to a human-equivalent note.\n- **Unmatchable tasks:** without task IDs, \"complete the deploy task\" against two similar tasks silently mutated the wrong one. Stable `t-YYYYMMDD-NN` IDs + fail-closed ambiguity handling fix this.\n- **First-run crash:** assuming `ops\u002Ftasks.md` exists made a missing page undefined behavior. Create-from-template on first run fixes this.\n- **Wholesale overwrite risk:** \"write updated task list\" invited full-page rewrites that drop concurrent edits. Minimal-diff mandate + preserve-unknown-content rule fix this.\n",{"name":5,"tools":52,"version":56,"mutating":57,"triggers":58,"upstream":61,"description":62},[45,53,54,55],"get_page","put_page","add_timeline_entry","2.0.0",true,[39,38,59,26,60],"what are my tasks","defer task","daily-task-manager@fc834ee","Task lifecycle management with stable task IDs. Add, complete, defer, remove,\nand review tasks with deterministic action routing and fail-closed ambiguity\nhandling. Maintains a running task list as a brain page.\n","master","074ec301549ded4930f04d2c3b22d709a6c095cc","skills\u002Fdaily-task-manager",4902,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain","https:\u002F\u002Fgithub.com\u002Fgarrytan","https:\u002F\u002Fblog.garrytan.com","Writes software, dreams. ","2026-11-14 04:11:30",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":57},[74,77,80],{"tool":75,"command":76},"npx","npx skills add garrytan\u002Fgbrain --skill daily-task-manager",{"tool":78,"command":79},"bunx","bunx skills add garrytan\u002Fgbrain --skill daily-task-manager",{"tool":81,"command":82},"pnpm","pnpm dlx skills add garrytan\u002Fgbrain --skill daily-task-manager","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fdaily-task-manager\u002FSKILL.md",[85],{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"routing-eval.jsonl","OTHER","其他",860,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fdaily-task-manager\u002Frouting-eval.jsonl",[92,103,109,129,156,169],{"skillNo":93,"name":94,"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":95,"categories":96,"keywords":97,"publishedAt":47},"01M6N109FNGH1PK49T734PZXGB","query-helper","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fquery-helper\u002FSKILL.md",[],[98,99,100,45,42,101,102],"query helper","helper","query","find","false",{"skillNo":104,"name":105,"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":106,"categories":107,"keywords":108,"publishedAt":47},"01M6N108A23GW6NGQEQ0E7GV0A","broken","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbroken\u002FSKILL.md",[],[105],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":47},"01M6N105E88C5K2H03H0CC79G1","brain-ops","Read, enrich, and write brain pages with source attribution.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbrain-ops\u002FSKILL.md",[],[116,35,117,30,118,42,119,120,121,122,100,123,124,31,125,126,127,128,45],"brain ops","ops","attribution","read","write","up","look","pages","people","enrich","web","path","source",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":140,"publishedAt":47},"01M6N102GRMF22TVCNT6RK5MRD","meeting-prep","Build a briefing before you meet someone, from their recent threads, open loops and what they care about.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fmeeting-prep\u002FSKILL.md",[135],{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[141,142,143,144,145,45,146,147,148,100,102,149,150,151,152,153,154,155],"meeting","prep","meeting prep","me","prepare","brief","open","build","loops","about","you","briefing","threads","for","Meet",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":47},"01M6N1005QK7REHX5KGMNR5PF0","inbox-zero","Triage the inbox into replies, delegations and archives.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Finbox-zero\u002FSKILL.md",[],[163,164,165,45,166,102,167,28,168],"inbox zero","ZeRO","inbox","clear","replies","triage",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":47},"01M6N0ZXQ8RRRW71PNV61T57GP","deal-memo","Draft an investment memo from the deal pages and the founder history already in the brain.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fdeal-memo\u002FSKILL.md",[],[176,177,178,123,35,179,180,120,181,30,45,182],"deal memo","deal","memo","draft","investment","history","founder"]