[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7190PJM3K5YRHKF4P1KMBRR":3,"skill-same:01M7190PJM3K5YRHKF4P1KMBRR":55},{"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":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":14,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":39,"updatedAt":40,"install":41,"resources":54},"01M7190PJM3K5YRHKF4P1KMBRR","slay-assets",null,"Manage task assets (files, folders) via the slay CLI","debuglebowski\u002Fslayzone-chromium","debuglebowski","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6490268?v=4","01M718YQ2STXMN1TQTFF0HF2Y8","Kalle","01M718YQ3VTNESH71S0BKW4GHC",0,"GPL-3.0","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-assets\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27],"assets","slay assets","slay","cli","auto","files","manage","task","via","2026-11-10 10:12:30",false,"---\nname: slay-assets\ndescription: \"Manage task assets (files, folders) via the slay CLI\"\ntrigger: auto\n---\n\nAssets are files attached to tasks, stored on disk at `{data-dir}\u002Fassets\u002F{taskId}\u002F{assetId}.ext`. They can be text files, images, or any binary content. Use assets to attach specifications, screenshots, logs, or any reference material to a task.\n\nThe `--task` flag defaults to `$SLAYZONE_TASK_ID` for `create`, `upload`, and `mkdir`. Note: `list` requires an explicit task ID argument.\n\n## Files\n\n- `slay tasks assets list \u003CtaskId> [--json] [--tree]`\n  List all assets for a task. `--tree` shows an indented folder structure.\n\n- `slay tasks assets read \u003CassetId>`\n  Output asset content to stdout. Binary assets (images, etc.) are written as raw buffers; text assets as UTF-8.\n\n- `slay tasks assets create \u003Ctitle> [--task \u003Cid>] [--folder \u003Cid>] [--copy-from \u003Cpath>] [--render-mode \u003Cmode>] [--json]`\n  Create a new asset. Content is read from stdin (must be piped — errors on TTY), or from a file via `--copy-from`. The render mode is inferred from the title's file extension if not specified (defaults to plain text if no extension). Reference created assets in task descriptions via `[title](asset:\u003Casset-id>)`.\n\n- `slay tasks assets upload \u003CsourcePath> [--task \u003Cid>] [--title \u003Cname>] [--json]`\n  Upload a file from disk as an asset. Title defaults to the filename.\n\n- `slay tasks assets update \u003CassetId> [--title \u003Cname>] [--render-mode \u003Cmode>] [--json]`\n  Update asset metadata. If the title changes and the file extension differs, the file is renamed on disk.\n\n- `slay tasks assets write \u003CassetId>`\n  Replace the asset's content entirely. Reads from stdin (pipe required).\n\n- `slay tasks assets append \u003CassetId>`\n  Append to the asset's content. Reads from stdin (pipe required).\n\n- `slay tasks assets delete \u003CassetId>` — delete an asset and its file.\n\n- `slay tasks assets path \u003CassetId>` — print the asset's absolute file path on disk.\n\n## Folders\n\nAssets can be organized into folders. Folder operations support cycle detection — you can't move a folder into its own child.\n\n- `slay tasks assets mkdir \u003Cname> [--task \u003Cid>] [--parent \u003Cid>] [--json]` — create a folder, optionally nested under a parent.\n- `slay tasks assets rmdir \u003CfolderId> [--json]` — delete a folder. Contained assets are moved to root, not deleted.\n- `slay tasks assets mvdir \u003CfolderId> --parent \u003Cid|\"root\"> [--json]` — move a folder to a new parent. Use `\"root\"` to move to top level.\n- `slay tasks assets mv \u003CassetId> --folder \u003Cid|\"root\"> [--json]` — move an asset into a folder. Use `\"root\"` for top level.\n\n## Download \u002F Export\n\nDownload assets in various formats. Default type is `raw` (original file).\n\n- `slay tasks assets download \u003CassetId> [--type raw|pdf|png|html] [--output \u003Cpath>] [--json]` — download a single asset.\n- `slay tasks assets download --type zip [--task \u003Cid>] [--output \u003Cpath>] [--json]` — download all task assets as a ZIP archive (no assetId needed).\n\n**Available types by render mode:**\n| Type | Available for |\n|------|--------------|\n| raw  | all files |\n| pdf  | markdown, code, html, svg, mermaid |\n| png  | svg, mermaid |\n| html | markdown, code, mermaid |\n| zip  | all (task-level) |\n\n`pdf`, `png`, and `html` exports require the SlayZone app to be running. `--output` defaults to the current directory with an auto-generated filename.\n\n## Piping examples\n\n```bash\necho \"Meeting notes from standup\" | slay tasks assets create \"standup-notes.md\"\ncat report.csv | slay tasks assets write \u003CassetId>\ncurl -s https:\u002F\u002Fexample.com\u002Fdata.json | slay tasks assets append \u003CassetId>\n```\n","Assets are files attached to tasks, stored on disk at `{data-dir}\u002Fassets\u002F{taskId}\u002F{assetId}.ext`. They can be text files, images, or any binary content. Use assets to attach specifications, screenshots, logs, or any reference material to a task.\n\nThe `--task` flag defaults to `$SLAYZONE_TASK_ID` for `create`, `upload`, and `mkdir`. Note: `list` requires an explicit task ID argument.\n\n## Files\n\n- `slay tasks assets list \u003CtaskId> [--json] [--tree]`\n  List all assets for a task. `--tree` shows an indented folder structure.\n\n- `slay tasks assets read \u003CassetId>`\n  Output asset content to stdout. Binary assets (images, etc.) are written as raw buffers; text assets as UTF-8.\n\n- `slay tasks assets create \u003Ctitle> [--task \u003Cid>] [--folder \u003Cid>] [--copy-from \u003Cpath>] [--render-mode \u003Cmode>] [--json]`\n  Create a new asset. Content is read from stdin (must be piped — errors on TTY), or from a file via `--copy-from`. The render mode is inferred from the title's file extension if not specified (defaults to plain text if no extension). Reference created assets in task descriptions via `[title](asset:\u003Casset-id>)`.\n\n- `slay tasks assets upload \u003CsourcePath> [--task \u003Cid>] [--title \u003Cname>] [--json]`\n  Upload a file from disk as an asset. Title defaults to the filename.\n\n- `slay tasks assets update \u003CassetId> [--title \u003Cname>] [--render-mode \u003Cmode>] [--json]`\n  Update asset metadata. If the title changes and the file extension differs, the file is renamed on disk.\n\n- `slay tasks assets write \u003CassetId>`\n  Replace the asset's content entirely. Reads from stdin (pipe required).\n\n- `slay tasks assets append \u003CassetId>`\n  Append to the asset's content. Reads from stdin (pipe required).\n\n- `slay tasks assets delete \u003CassetId>` — delete an asset and its file.\n\n- `slay tasks assets path \u003CassetId>` — print the asset's absolute file path on disk.\n\n## Folders\n\nAssets can be organized into folders. Folder operations support cycle detection — you can't move a folder into its own child.\n\n- `slay tasks assets mkdir \u003Cname> [--task \u003Cid>] [--parent \u003Cid>] [--json]` — create a folder, optionally nested under a parent.\n- `slay tasks assets rmdir \u003CfolderId> [--json]` — delete a folder. Contained assets are moved to root, not deleted.\n- `slay tasks assets mvdir \u003CfolderId> --parent \u003Cid|\"root\"> [--json]` — move a folder to a new parent. Use `\"root\"` to move to top level.\n- `slay tasks assets mv \u003CassetId> --folder \u003Cid|\"root\"> [--json]` — move an asset into a folder. Use `\"root\"` for top level.\n\n## Download \u002F Export\n\nDownload assets in various formats. Default type is `raw` (original file).\n\n- `slay tasks assets download \u003CassetId> [--type raw|pdf|png|html] [--output \u003Cpath>] [--json]` — download a single asset.\n- `slay tasks assets download --type zip [--task \u003Cid>] [--output \u003Cpath>] [--json]` — download all task assets as a ZIP archive (no assetId needed).\n\n**Available types by render mode:**\n| Type | Available for |\n|------|--------------|\n| raw  | all files |\n| pdf  | markdown, code, html, svg, mermaid |\n| png  | svg, mermaid |\n| html | markdown, code, mermaid |\n| zip  | all (task-level) |\n\n`pdf`, `png`, and `html` exports require the SlayZone app to be running. `--output` defaults to the current directory with an auto-generated filename.\n\n## Piping examples\n\n```bash\necho \"Meeting notes from standup\" | slay tasks assets create \"standup-notes.md\"\ncat report.csv | slay tasks assets write \u003CassetId>\ncurl -s https:\u002F\u002Fexample.com\u002Fdata.json | slay tasks assets append \u003CassetId>\n```\n",{"name":5,"trigger":23,"description":7},"main","aa3633decf71dbab0f964f95c284d952bca02b63",".claude\u002Fskills\u002Fslay-assets","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium","https:\u002F\u002Fgithub.com\u002Fdebuglebowski","https:\u002F\u002Fiamkhan.io","I hate that I love TypeScript","2026-04-17 15:33:18",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add debuglebowski\u002Fslayzone-chromium --skill slay-assets",{"tool":47,"command":48},"bunx","bunx skills add debuglebowski\u002Fslayzone-chromium --skill slay-assets",{"tool":50,"command":51},"pnpm","pnpm dlx skills add debuglebowski\u002Fslayzone-chromium --skill slay-assets","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-assets\u002FSKILL.md",true,[],[56,76,86,104,114,125],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":67,"publishedAt":28},"01M71919NHQJ16JJQFDRY5E6WG","sync-slay-skill","Read CLI command source files and regenerate the slay SKILL.md + init.ts command reference to match","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsync-slay-skill\u002FSKILL.md",[62],{"categoryNo":63,"categoryName":64,"taxonomyType":65,"taxonomyTypeDesc":66},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[21,68,69,70,71,72,73,24,22,74,75],"sync slay skill","sync","source","init","reference","match","command","read",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":28},"01M71917WVS3TWYQ6P6Q1APEH0","sustainable-solution-question","Asks if the implementation is a sustainable solution","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsustainable-solution-question\u002FSKILL.md",[],[83,84,85,23],"sustainable solution question","question","implementation",{"skillNo":87,"name":21,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":28},"01M71915PNKTBQRRX9ZDPZ9SKX","Full CLI reference for slay — orchestrates all slay domain skills","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay\u002FSKILL.md",[],[21,92,23,72,93,94,95,96,97,19,98,99,100,22,101,102,103],"panels","processes","tasks","full","PTY","context","browser","projects","title","domain","for","cli reference",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":28},"01M71913QQT3NP7W68FBZEJNVS","slay-tasks","Manage tasks, subtasks, tags, and templates via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-tasks\u002FSKILL.md",[],[94,21,111,23,112,22,27,113,25],"slay tasks","templates","tags",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":28},"01M71912RR7H0J0ZNNTKD1272X","slay-pty","Interact with PTY terminal sessions via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-pty\u002FSKILL.md",[],[121,96,21,122,22,27,123,124,23],"slay pty","with","terminal","sessions",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":28},"01M71910YBEQC3XRBFQKVM3MN4","slay-projects","Manage projects via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-projects\u002FSKILL.md",[],[21,99,132,23,22,27,25],"slay projects"]