[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PT0AMHE1H2P8F2G69T2J8T":3,"skill-same:01M6PT0AMHE1H2P8F2G69T2J8T":69},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6PT0AMHE1H2P8F2G69T2J8T","aerospace",null,"Control AeroSpace, the user's macOS tiling window manager, through the `aerospace` CLI. Use when the user mentions AeroSpace or asks you to find, focus, move, resize, tile or close windows, or to switch or rearrange workspaces or monitors, on their Mac.","ian-pascoe\u002Fdotfiles","ian-pascoe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F122142608?v=4","01M6GSZBDQ0HT39DH8XZS6TPJ3","Ian Pascoe","01M6GSZBJ2CD0C1K3688C2RFEJ",2,"MIT","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Faerospace\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"workspaces","when","window","manager","you","move","close","control","focus","switch","mac","cli","use","user","find","window manager","tiling window manager","Bash","powershell","windows","2026-11-10 10:12:30",false,"---\nname: aerospace\ndescription: \"Control AeroSpace, the user's macOS tiling window manager, through the `aerospace` CLI. Use when the user mentions AeroSpace or asks you to find, focus, move, resize, tile or close windows, or to switch or rearrange workspaces or monitors, on their Mac.\"\nmetadata:\n  requires-bin: aerospace\n  requires-tool: bash|powershell\n---\n\n# AeroSpace\n\nAeroSpace tiles every window into named **workspaces**, each shown on one **monitor**. A workspace holds a tree of containers (`h_tiles`, `v_accordion`, …) whose leaves are **windows**; floating windows sit beside the tree. The `aerospace` CLI queries and drives the running server, and accepts the same commands the config binds to keys.\n\n## Check the server\n\n```bash\naerospace list-workspaces --focused\n```\n\nIt prints the focused workspace's name when the server answers. \"Can't connect to AeroSpace server\" while `pgrep -x AeroSpace` finds the app means its socket, `\u002Ftmp\u002Fbobko.aerospace-$USER.sock`, was deleted: ask the user to restart AeroSpace.app, since the CLI cannot reach it until then.\n\n## Learn the CLI\n\nThe installed binary is the authority. `aerospace --help` lists the commands; `man aerospace-COMMAND` (for example `man aerospace-list-windows`) documents a command's flags, its `--format` variables and examples. `aerospace COMMAND --help` prints only the synopsis.\n\nEvery command acts as soon as it runs, so read syntax from those pages: `aerospace close` run to see what it does closes the user's focused window.\n\n## Target by id\n\nCommands default to the **focused** window or workspace, which is the user's. Target another one explicitly, and focus stays where it is:\n\n- `--window-id ID` on window commands: `move-node-to-workspace`, `move-node-to-monitor`, `move`, `swap`, `join-with`, `resize`, `layout`, `fullscreen`, `close`, and more.\n- `--workspace NAME` on workspace commands such as `balance-sizes`, `flatten-workspace-tree` and `layout`.\n\nA command whose man page offers neither flag acts only on the focused node; running it on anything else means moving the user's focus first.\n\nRead ids and state as JSON; `--format` picks the fields, and the keys are the variable names (`window-id`, `app-name`, …):\n\n```bash\naerospace list-windows --all --json --format '%{window-id} %{app-name} %{window-title} %{workspace} %{window-layout}'\naerospace list-workspaces --all --json --format '%{workspace} %{monitor-id} %{workspace-is-focused} %{workspace-is-visible}'\naerospace list-monitors --json\naerospace list-windows --focused --json\n```\n\nMatch windows by `app-name` or `app-bundle-id` plus `window-title`, and confirm with the user when several match. Your own terminal window cannot be found from your process: your shell usually descends from a multiplexer daemon (Rex, Herdr, Tern), not from the terminal app.\n\n## Arrange windows\n\n```bash\naerospace move-node-to-workspace --window-id ID 3     # focus stays put\naerospace layout --window-id ID floating              # or tiling, h_tiles, v_accordion, …\naerospace resize --window-id ID width +100\naerospace balance-sizes --workspace 3\n```\n\nTo open an app and place its window: new windows appear on the focused workspace and take focus. Record the focused window id, launch the app (`open -na Ghostty`), poll `list-windows --all --format '%{window-id}'` until a new id appears, move that window with `--window-id`, then hand focus back with `aerospace focus --window-id \u003Crecorded-id>`.\n\n`aerospace subscribe EVENT…` streams JSON lines (`focus-changed`, `window-detected`, …) until killed; run it bounded, in a background job you stop.\n\n## Safety\n\n- Focus belongs to the user. `focus`, `workspace`, `summon-workspace`, `move-mouse` and `--focus-follows-window` change what they see and where their keystrokes land; use them when the user asked to be shown something, and restore focus after any focus change you needed.\n- Close only windows you opened or the user named: `close` and `close-all-windows-but-current` can discard unsaved work.\n- `enable off` stops tiling everywhere, and `mode` swaps the user's keybindings; change them only on request.\n- `~\u002F.config\u002Faerospace\u002Faerospace.toml` is chezmoi-managed: edit its source (`chezmoi source-path` on that file), and run `aerospace reload-config` once the change is applied.\n","# AeroSpace\n\nAeroSpace tiles every window into named **workspaces**, each shown on one **monitor**. A workspace holds a tree of containers (`h_tiles`, `v_accordion`, …) whose leaves are **windows**; floating windows sit beside the tree. The `aerospace` CLI queries and drives the running server, and accepts the same commands the config binds to keys.\n\n## Check the server\n\n```bash\naerospace list-workspaces --focused\n```\n\nIt prints the focused workspace's name when the server answers. \"Can't connect to AeroSpace server\" while `pgrep -x AeroSpace` finds the app means its socket, `\u002Ftmp\u002Fbobko.aerospace-$USER.sock`, was deleted: ask the user to restart AeroSpace.app, since the CLI cannot reach it until then.\n\n## Learn the CLI\n\nThe installed binary is the authority. `aerospace --help` lists the commands; `man aerospace-COMMAND` (for example `man aerospace-list-windows`) documents a command's flags, its `--format` variables and examples. `aerospace COMMAND --help` prints only the synopsis.\n\nEvery command acts as soon as it runs, so read syntax from those pages: `aerospace close` run to see what it does closes the user's focused window.\n\n## Target by id\n\nCommands default to the **focused** window or workspace, which is the user's. Target another one explicitly, and focus stays where it is:\n\n- `--window-id ID` on window commands: `move-node-to-workspace`, `move-node-to-monitor`, `move`, `swap`, `join-with`, `resize`, `layout`, `fullscreen`, `close`, and more.\n- `--workspace NAME` on workspace commands such as `balance-sizes`, `flatten-workspace-tree` and `layout`.\n\nA command whose man page offers neither flag acts only on the focused node; running it on anything else means moving the user's focus first.\n\nRead ids and state as JSON; `--format` picks the fields, and the keys are the variable names (`window-id`, `app-name`, …):\n\n```bash\naerospace list-windows --all --json --format '%{window-id} %{app-name} %{window-title} %{workspace} %{window-layout}'\naerospace list-workspaces --all --json --format '%{workspace} %{monitor-id} %{workspace-is-focused} %{workspace-is-visible}'\naerospace list-monitors --json\naerospace list-windows --focused --json\n```\n\nMatch windows by `app-name` or `app-bundle-id` plus `window-title`, and confirm with the user when several match. Your own terminal window cannot be found from your process: your shell usually descends from a multiplexer daemon (Rex, Herdr, Tern), not from the terminal app.\n\n## Arrange windows\n\n```bash\naerospace move-node-to-workspace --window-id ID 3     # focus stays put\naerospace layout --window-id ID floating              # or tiling, h_tiles, v_accordion, …\naerospace resize --window-id ID width +100\naerospace balance-sizes --workspace 3\n```\n\nTo open an app and place its window: new windows appear on the focused workspace and take focus. Record the focused window id, launch the app (`open -na Ghostty`), poll `list-windows --all --format '%{window-id}'` until a new id appears, move that window with `--window-id`, then hand focus back with `aerospace focus --window-id \u003Crecorded-id>`.\n\n`aerospace subscribe EVENT…` streams JSON lines (`focus-changed`, `window-detected`, …) until killed; run it bounded, in a background job you stop.\n\n## Safety\n\n- Focus belongs to the user. `focus`, `workspace`, `summon-workspace`, `move-mouse` and `--focus-follows-window` change what they see and where their keystrokes land; use them when the user asked to be shown something, and restore focus after any focus change you needed.\n- Close only windows you opened or the user named: `close` and `close-all-windows-but-current` can discard unsaved work.\n- `enable off` stops tiling everywhere, and `mode` swaps the user's keybindings; change them only on request.\n- `~\u002F.config\u002Faerospace\u002Faerospace.toml` is chezmoi-managed: edit its source (`chezmoi source-path` on that file), and run `aerospace reload-config` once the change is applied.\n",{"name":5,"metadata":44,"description":7},{"requires-bin":5,"requires-tool":45},"bash|powershell","main","1751a6c18f94fd94698bc258c6ab3082be769e66","dot_agents\u002Fskills\u002Faerospace",0,"https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fian-pascoe","spiritledsoftware.com","Jacksonville, FL · Full-stack & AI-agent tooling · Spirit-Led Software · clerk-solidjs · Caplets","2026-11-14 20:01:28",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add ian-pascoe\u002Fdotfiles --skill aerospace",{"tool":61,"command":62},"bunx","bunx skills add ian-pascoe\u002Fdotfiles --skill aerospace",{"tool":64,"command":65},"pnpm","pnpm dlx skills add ian-pascoe\u002Fdotfiles --skill aerospace","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Faerospace\u002FSKILL.md",true,[],[70,106,126,151,177,193],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":84,"publishedAt":39},"01M6HP2303VY6W6MNP8Z3AQRAX","agent-browser","Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Fagent-browser\u002FSKILL.md",[76,81],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":82,"categoryName":83,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000023","Skill与智能体开发",[85,86,87,88,89,90,72,91,36,92,93,94,95,96,97,98,99,100,101,102,103,104,105],"browser","agent browser","web tools","programmatic","slack messages","exploratory testing","discord","apps","qa","bedrock","open","testing","app","browser automation","messages","actions","notion","conversations","extracting","figma","click",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":120,"publishedAt":39},"01M6GT848K41AFQJAW9VVX1HQ8","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[112,115],{"categoryNo":113,"categoryName":114,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[121,122,123,20,124,125,31],"for","writing for agents","writing","editing","documents",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":39},"01M6GT80DBGR6AMGJPK4S8RFMH","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\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Fwizard\u002FSKILL.md",[],[128,20,133,134,121,135,136,137,138,139,140,141,142,143,144,145,36,31,146,147,148,149,150],"party","invoke","running","infrastructure","third-party","provisioning","migration","secrets","human","credentials","dashboard","can","interactive","only","provisioning infrastructure","ci","up","generate",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":39},"01M6GT7WTZMRN5FZX4SWMWNS3A","wayfinder","Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[153,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,144],"map","more","true","decision","session","time","chunk","as","shared","one at a time","agent session","issue tracker","issue","clear","at","tickets","tracker","plan","work",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":39},"01M6GT7SEP7TD1K1SDJDXQACKF","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[184,185,186,187,188,189,190,191,160,192],"wait what","wait","it","stop","land","re","pitch","message","last",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":199,"publishedAt":39},"01M6GT7CWQC5PVT70A1PGGVPDT","unslop","Cut AI tells from any writing.","https:\u002F\u002Fgithub.com\u002Fian-pascoe\u002Fdotfiles\u002Fblob\u002Fmain\u002Fdot_agents\u002Fskills\u002Funslop\u002FSKILL.md",[],[195,123,160,200],"cut"]