[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HVFYPAJTJGZG35ES5677T4":3,"skill-same:01M6HVFYPAJTJGZG35ES5677T4":156},{"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":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":6,"updatedAt":62,"install":63,"resources":75},"01M6HVFYPAJTJGZG35ES5677T4","tasks",null,"Defer, track, and resume multi-step work with task-create\u002Flist\u002Fupdate\u002Fcomplete, plus plan and checkpoint primitives. Pin this skill to make an agent heartbeat-eligible.","josephfung\u002Fcuria","josephfung","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F114566?v=4","01M6HVDESHETDF6DHHDSC8Z9PG","Joseph Fung","01M6HVDEXW2SNBA02T1E3SYNGW",9,"MIT","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"primitives","track","true","with","make","multi","complete","task","resume","list","heartbeat","work","pin","plan","checkpoint","update","create","2026-11-10 10:12:30",false,"---\nname: tasks\ndescription: >\n  Defer, track, and resume multi-step work with task-create\u002Flist\u002Fupdate\u002Fcomplete,\n  plus plan and checkpoint primitives. Pin this skill to make an agent heartbeat-eligible.\nversion: \"0.2.3\"\nheartbeat: true\ntools:\n  - task-create\n  - task-list\n  - task-update\n  - task-complete\n  - plan\n  - checkpoint\n---\n\n## Task Management\n\nYou can defer, track, and resume work using your task skills.\n\n**Decide, don't drop.** When work arrives that you cannot finish now, create a\ntask (`task-create`, optionally with `wake_at`) rather than cramming it into one\nburst or abandoning it. Briefly tell the principal what you queued and why.\n\n**Own the how.** When a clear goal is too big for one burst, decompose it and start —\nwith a one-line heads-up. Do not ask the principal how to execute (splitting, scheduling,\nbudgets); ask only about the goal itself, or a consequential or hard-to-reverse action.\n\n**Decompose projects.** If work has more than one step, or any step cannot be done\nright now, create a parent task whose `intent_anchor` states the durable goal, plus\nthe first wave of subtasks (`parent_task_id`, and `blocked_by_task_id` for ordering).\nPlan the first wave only; add subtasks as you learn more.\n\n**Make every subtask self-contained.** A woken subtask starts fresh with no memory of this\nconversation — it has only its id, title, intent, and progress note. So its\n`intent_anchor` and progress must fully re-establish the work: the goal, the resource\n(e.g. a URL), and precise progress (\"answered Q1-12 of 60\"). A bare title like \"Answer\nQ13-36\" strands the wake. For **web-browser** work, also record the exact `session_id` and\nwhether the session was `incognito`, and resume it with the same `incognito` value.\n\n**Advance until blocked.** When you act on a task, do every step you can right now.\nStop only at a real blocker — waiting on a person, on the principal's approval, on a future\ndate, or on a prior task — or when your turn budget runs low. Then park each loose end:\nset its status (`waiting`\u002F`blocked`), add a progress note, and set a wake (a reply you\nare expecting, or a `wake_at` timer). When a task's goal is achieved, call `task-complete`\nwith a note.\n\n**Never promise without a task.** Before you send anything that commits to a future\naction (\"I'll follow up with X\", \"we'll send that over\"), make sure a task backs that\npromise. Prefer to resolve the dependency first and send a complete message. Only send\nan interim \"I'll follow up\" when the recipient needs an acknowledgment now — and when\nyou do, create the follow-up task (yours if you can chase it; the principal's if only they\ncan, and tell them).\n","## Task Management\n\nYou can defer, track, and resume work using your task skills.\n\n**Decide, don't drop.** When work arrives that you cannot finish now, create a\ntask (`task-create`, optionally with `wake_at`) rather than cramming it into one\nburst or abandoning it. Briefly tell the principal what you queued and why.\n\n**Own the how.** When a clear goal is too big for one burst, decompose it and start —\nwith a one-line heads-up. Do not ask the principal how to execute (splitting, scheduling,\nbudgets); ask only about the goal itself, or a consequential or hard-to-reverse action.\n\n**Decompose projects.** If work has more than one step, or any step cannot be done\nright now, create a parent task whose `intent_anchor` states the durable goal, plus\nthe first wave of subtasks (`parent_task_id`, and `blocked_by_task_id` for ordering).\nPlan the first wave only; add subtasks as you learn more.\n\n**Make every subtask self-contained.** A woken subtask starts fresh with no memory of this\nconversation — it has only its id, title, intent, and progress note. So its\n`intent_anchor` and progress must fully re-establish the work: the goal, the resource\n(e.g. a URL), and precise progress (\"answered Q1-12 of 60\"). A bare title like \"Answer\nQ13-36\" strands the wake. For **web-browser** work, also record the exact `session_id` and\nwhether the session was `incognito`, and resume it with the same `incognito` value.\n\n**Advance until blocked.** When you act on a task, do every step you can right now.\nStop only at a real blocker — waiting on a person, on the principal's approval, on a future\ndate, or on a prior task — or when your turn budget runs low. Then park each loose end:\nset its status (`waiting`\u002F`blocked`), add a progress note, and set a wake (a reply you\nare expecting, or a `wake_at` timer). When a task's goal is achieved, call `task-complete`\nwith a note.\n\n**Never promise without a task.** Before you send anything that commits to a future\naction (\"I'll follow up with X\", \"we'll send that over\"), make sure a task backs that\npromise. Prefer to resolve the dependency first and send a complete message. Only send\nan interim \"I'll follow up\" when the recipient needs an acknowledgment now — and when\nyou do, create the follow-up task (yours if you can chase it; the principal's if only they\ncan, and tell them).\n",{"name":5,"tools":46,"version":51,"heartbeat":52,"description":53},[47,48,49,50,37,38],"task-create","task-list","task-update","task-complete","0.2.3",true,"Defer, track, and resume multi-step work with task-create\u002Flist\u002Fupdate\u002Fcomplete, plus plan and checkpoint primitives. Pin this skill to make an agent heartbeat-eligible.\n","main","e7a6e41e62dda03f357f73c249df5d7fcb242708","skills\u002Ftasks",7,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria","https:\u002F\u002Fmeetcuria.com","https:\u002F\u002Fgithub.com\u002Fjosephfung","http:\u002F\u002Fjosephfung.ca","2026-11-15 03:48:24",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":52},[65,68,71],{"tool":66,"command":67},"npx","npx skills add josephfung\u002Fcuria --skill tasks",{"tool":69,"command":70},"bunx","bunx skills add josephfung\u002Fcuria --skill tasks",{"tool":72,"command":73},"pnpm","pnpm dlx skills add josephfung\u002Fcuria --skill tasks","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002FSKILL.md",[76,82,86,90,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"optional-ref.ts","SCRIPT","脚本",4408,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Foptional-ref.ts",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"tools\u002Fcheckpoint\u002Fhandler.test.ts",4875,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fcheckpoint\u002Fhandler.test.ts",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"tools\u002Fcheckpoint\u002Fhandler.ts",5420,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fcheckpoint\u002Fhandler.ts",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"tools\u002Fcheckpoint\u002Ftool.json","REFERENCE","参考文档",1089,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fcheckpoint\u002Ftool.json",{"path":97,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":98,"sourceHtmlUrl":99},"tools\u002Fplan\u002Fhandler.test.ts",17072,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fplan\u002Fhandler.test.ts",{"path":101,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":102,"sourceHtmlUrl":103},"tools\u002Fplan\u002Fhandler.ts",11318,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fplan\u002Fhandler.ts",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"tools\u002Fplan\u002Ftool.json",1153,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Fplan\u002Ftool.json",{"path":109,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":110,"sourceHtmlUrl":111},"tools\u002Ftask-complete\u002Fhandler.test.ts",8043,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-complete\u002Fhandler.test.ts",{"path":113,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":114,"sourceHtmlUrl":115},"tools\u002Ftask-complete\u002Fhandler.ts",3309,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-complete\u002Fhandler.ts",{"path":117,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":118,"sourceHtmlUrl":119},"tools\u002Ftask-complete\u002Ftool.json",655,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-complete\u002Ftool.json",{"path":121,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":122,"sourceHtmlUrl":123},"tools\u002Ftask-create\u002Fhandler.test.ts",27480,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-create\u002Fhandler.test.ts",{"path":125,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":126,"sourceHtmlUrl":127},"tools\u002Ftask-create\u002Fhandler.ts",14397,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-create\u002Fhandler.ts",{"path":129,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":130,"sourceHtmlUrl":131},"tools\u002Ftask-create\u002Ftool.json",2282,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-create\u002Ftool.json",{"path":133,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":134,"sourceHtmlUrl":135},"tools\u002Ftask-list\u002Fhandler.test.ts",6963,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-list\u002Fhandler.test.ts",{"path":137,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":138,"sourceHtmlUrl":139},"tools\u002Ftask-list\u002Fhandler.ts",4617,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-list\u002Fhandler.ts",{"path":141,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":142,"sourceHtmlUrl":143},"tools\u002Ftask-list\u002Ftool.json",800,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-list\u002Ftool.json",{"path":145,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":146,"sourceHtmlUrl":147},"tools\u002Ftask-update\u002Fhandler.test.ts",16841,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-update\u002Fhandler.test.ts",{"path":149,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":150,"sourceHtmlUrl":151},"tools\u002Ftask-update\u002Fhandler.ts",8318,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-update\u002Fhandler.ts",{"path":153,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":154,"sourceHtmlUrl":155},"tools\u002Ftask-update\u002Ftool.json",1218,"https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002Ftools\u002Ftask-update\u002Ftool.json",[157,173,206,223,235,249],{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":41},"01M6HVGEJ2P438XQM8MGMYJ9C2","with-scripts","Minimal imported skill that ships scripts (for import-time warning tests).","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimported-skills\u002Fwith-scripts\u002FSKILL.md",[],[27,164,165,166,167,168,169,170,171,172],"scripts","with scripts","for","import","warning","tests","time","imported","minimal",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":184,"publishedAt":41},"01M6HVGACFFPQJQRRWA51GSCZH","not-a-lawyer","Review legal agreements from the company's perspective, flag risks, compare against the company's boilerplate, and help draft comments or redlines. Use whenever the user wants a contract reviewed, asks \"what are the risks\", pastes an agreement, or asks for help responding to legal pushback. Do not use for legal questions unrelated to a specific document.","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimported-skills\u002Fnot-a-lawyer\u002FSKILL.md",[179],{"categoryNo":180,"categoryName":181,"taxonomyType":182,"taxonomyTypeDesc":183},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,166,202,203,204,205],"not a lawyer","help","draft","do","cc","legal","document","unrelated","use","user","compare","test","review","company","agreement","fixture","perspective","comments","questions","boilerplate","contract",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":41},"01M6HVG4DQT96EVCDD94G036FN","web","Web fetch, search (Tavily, keyless by default), and browser tools.","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Fweb\u002FSKILL.md",[],[208,213,214,215,216,217,218,219,220,221,222],"web-search","web fetch","default","fetch","Tools","keyless","search","browser","tavily","browser tools",{"skillNo":224,"name":225,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":229,"publishedAt":41},"01M6HVFVMKB445SAZJJ2TGSJSK","setup","Setup-wizard status, defer, and system-secret-capture-request.","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[],[225,230,231,232,233,234],"wizard","request","capture","system","status",{"skillNo":236,"name":237,"nameZh":6,"description":238,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":239,"categories":240,"keywords":241,"publishedAt":41},"01M6HVFPA568CJSBXWY56K0RV0","scheduler","Scheduled jobs — create\u002Flist\u002Fget\u002Fcancel\u002Fupdate plus scheduler-report. Narrow consumers may pin scheduler-report alone (ADR-032).","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Fscheduler\u002FSKILL.md",[],[237,242,39,40,36,243,244,245,246,247,33,248],"report","scheduled","get","update plus","cancel","jobs","adr",{"skillNo":250,"name":251,"nameZh":6,"description":252,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":253,"categories":254,"keywords":255,"publishedAt":41},"01M6HVFGKFZNVRM8A11RRPHYEV","reports","The principal's digest queue — file \"act, then tell\" items, and list and acknowledge them when building a digest. Also spot checks: list-spot-checks gives a digest its numbered spot-check block, and record-spot-check records the principal's \"N good\" \u002F \"N bad\" verdicts.","https:\u002F\u002Fgithub.com\u002Fjosephfung\u002Fcuria\u002Fblob\u002Fmain\u002Fskills\u002Freports\u002FSKILL.md",[],[251,256,257,258,259,260,261,262,263,264,265,266,33,267,268,242],"act","when","block","records","ack","bad","spot","digest","record","queue","good","check","file"]