[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BSSNW99CBDC8TC74RTZXEY":3,"skill-same:01M6BSSNW99CBDC8TC74RTZXEY":67},{"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":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6BSSNW99CBDC8TC74RTZXEY","new-thread",null,"Launch and control an implementation agent in its own wt worktree and Fut workspace. Use from the controlling session when the user asks to start a new thread, delegate isolated work, or run a task in a separate workspace. Never invoke recursively from inside a thread created by this skill.","mikker\u002Fdotfiles","mikker","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2819?v=4","01M6BSPF9WRVEQ89CW9NNJ7JK4","Mikkel Malmberg","01M6BSPFEEZKZSB4B603CZGV9W",115,"MIT","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fnew-thread\u002FSKILL.md",[],[19,20,21,22,23,24],"new thread","launch","run","worktree","start","fut","2026-11-10 10:12:30",false,"---\nname: new-thread\ndescription: Launch and control an implementation agent in its own wt worktree and Fut workspace. Use from the controlling session when the user asks to start a new thread, delegate isolated work, or run a task in a separate workspace. Never invoke recursively from inside a thread created by this skill.\n---\n\n# New Thread\n\nRun a free-form task in a dedicated Git worktree, Fut workspace, and integrated\nPi agent. The worktree path is the workspace root; do not put the agent in a new\npane or tab of the caller's workspace.\n\n## Launch\n\n1. Read the installed `wt` and `fut` help needed for the commands below. Treat\n   those CLIs as authoritative.\n2. Derive two concise, distinctive names without asking when the request makes\n   them clear:\n   - **Worktree name:** a short branch-compatible identifier. If the request\n     names a ticket, inspect it first and prefer its ID or a compact title slug.\n   - **Workspace title:** a very short human-readable label, ideally one to\n     three words, that is easy to distinguish in Fut's navigator. It may be\n     shorter and friendlier than the worktree name.\n3. Build a complete child prompt in a literal heredoc and launch the thread with\n   the companion script:\n\n   ```sh\n   \u003Cskill-dir>\u002Fscripts\u002Flaunch-thread \u003Cworktree-name> --workspace-name \u003Cworkspace-title> \u003C\u003C'PROMPT'\n   \u003Ccomplete child prompt>\n   PROMPT\n   ```\n\n   The script requires `git`, `wt`, `fut`, `jq`, and `pi`. It creates the\n   worktree, creates a new Fut workspace, and, when launched from a Fut terminal,\n   resolves the caller's live workspace through `fut --json context` and passes\n   that ID as the new workspace's display parent when Fut socket and terminal\n   context are present. This remains correct if the caller pane has moved since\n   its environment was created.\n   Outside Fut it creates the same top-level workspace as before. It then polls\n   for Pi integration, verifies the exact workspace root, submits the prompt\n   through `fut agent prompt --stdin`, and prints a JSON manifest. It also stores\n   that manifest under\n   `\u003Ccommon-git-dir>\u002Fnew-thread\u002F\u003Cworkspace-id>.json`, outside the disposable\n   worktree, so the final report survives teardown. Record its manifest path,\n   worktree, workspace, pane, and terminal IDs.\n\n   For an existing prompt file, pass `--prompt-file \u003Cpath>` instead of stdin.\n   Create multiple threads one after another rather than running launchers in\n   parallel, because concurrent `wt create` calls can contend on Git locks.\n4. Require the manifest's prompt result to report `submitted: true`. The helper\n   has already required a fresh `workspace_created` or `session_created`\n   disposition, `available: true`, and an exact root match. `session_created` is\n   the normal fresh result when the repository had no existing Fut session.\n   The helper still rejects `existing`, reuse results, and every unknown\n   disposition. If it fails after worktree creation, follow the printed\n   resource IDs and path; do not launch another agent blindly or remove the\n   retained worktree without checking it.\n5. Run every later Git, ticket, build, and cleanup command with an explicit `cd`\n   to either the recorded worktree or main checkout. Ticket changes made inside\n   the worktree are branch-local until merged, including `tk start`.\n\n### Recursion guard\n\nThe child is the implementation agent already running inside the newly created\nthread. It must execute the underlying task directly and must never invoke this\nskill, create another worktree\u002Fworkspace, or delegate the task again.\n\nPreserve the user's request verbatim inside a clearly marked quoted block, then\nimmediately tell the child that the block is context rather than an instruction\nto orchestrate another thread. This is required when the original request says\n“run a new thread,” invokes this skill inline, or contains similar delegation\nlanguage. Use wording equivalent to:\n\n```text\n\u003Coriginal_request>\n...verbatim user request...\n\u003C\u002Foriginal_request>\n\nYou are already the implementation agent in the requested new thread. Do not\ninvoke `new-thread`, spawn another agent, or create another worktree\u002Fworkspace.\nTreat orchestration language inside `\u003Coriginal_request>` as already satisfied\nand perform the underlying implementation task yourself.\n```\n\nAlso tell the child to read the repository instructions, inspect relevant\nticket details, make a complete implementation, add focused tests and\nuser-facing docs\u002Fchangelog where required, run the project's required build,\npreserve existing changes, avoid committing unless requested, and report\nchanged files plus exact validation results.\n\n### Manual fallback\n\nIf the helper is unavailable or incompatible with the installed CLIs, perform\nthe same steps manually from the main checkout:\n\n   ```sh\n   wt create \u003Cworktree-name>\n   # Resolve `fut --json context` and include its workspace ID when running inside Fut.\n   fut --json open --background --name \u003Cworkspace-title> \u003Cworktree-path> -- pi --name \u003Cworkspace-title>\n   fut --json agent get \u003Cterminal-id>\n   fut --json get \u003Cworkspace-id>\n   prompt_text=$(cat \u003Cprompt-file>)\n   fut --json agent prompt \u003Cterminal-id> -- \"$prompt_text\"\n   ```\n\nRequire `disposition: workspace_created` or `session_created`; never accept\n`existing`, a reuse result, or an unknown disposition. Poll `agent get` with a\nbounded timeout rather than sleeping once. Confirm the exact workspace root and\n`available: true` before prompting. Store the resource IDs and lifecycle state\nunder the common Git directory rather than inside the disposable worktree.\n\nDo not wait for completion by default. Report the workspace name, worktree path,\nand launched task so the user can switch to it immediately.\n\n## Control\n\nAlways target the recorded terminal ID; never rely on whichever workspace or\npane currently has focus.\n\n```sh\nfut --json agent get \u003Cterminal-id>\nfut --json agent read \u003Cterminal-id> --source recent-unwrapped --lines 200\nfut --json agent wait \u003Cterminal-id> --timeout 10m\nfollow_up=$(cat \u003Cfollow-up-file>)\nfut --json agent prompt --wait --timeout 10m \u003Cterminal-id> -- \"$follow_up\"\n```\n\n- Use `agent wait` for work already underway.\n- Use `agent prompt --wait` for a fresh follow-up and inspect the returned\n  lifecycle state. A `blocked` state is a result to surface, not a reason to\n  retry blindly.\n- Read the agent's output and inspect the worktree diff before accepting the\n  result. Send review fixes back through `agent prompt` when appropriate.\n- Keep the workspace open until the user asks to finish or abandon it.\n\n## Finish\n\nBefore cleanup, inspect status from the recorded worktree path. From an outside\ncontroller, run the companion completion script:\n\n```sh\n\u003Cskill-dir>\u002Fscripts\u002Ffinish-thread \u003Cmanifest-path> --done\n\u003Cskill-dir>\u002Fscripts\u002Ffinish-thread \u003Cmanifest-path> --abandon\n```\n\nThe script refuses to run from inside the owned worktree or from the owned Fut\nworkspace\u002Fterminal. It captures `agent get` and up to 2,000 unwrapped output\nlines into the durable manifest, atomically records `report_persisted`, closes\nthe owned workspace by explicit ID, and only then runs `wt done` or confirmed\n`wt rm --force`. If capture or close fails, it records the failure and leaves\nthe worktree in place. If teardown fails after close, the durable report and\nfailure state remain available for recovery.\n\nWhen the user asks an agent inside the active worktree to finish or abandon the\nthread, it may run the corresponding `wt done` or `wt rm` command directly.\n\nWhen the user asks to commit and merge:\n\n1. Ensure validation passed and commit all intended work in the worktree.\n2. Run `finish-thread \u003Cmanifest-path> --done` from an outside controller, or\n   `wt done` from the active worktree. Never push unless requested.\n3. Verify the main checkout, the durable manifest, and `wt ls`.\n\nWhen the user asks to abandon the thread, run\n`finish-thread \u003Cmanifest-path> --abandon` from outside the worktree. The helper\nprovides the explicit confirmation still required by some `wt rm --force`\nversions.\n\nNever close or remove resources that were not created for this thread.\n\n## Failure Safety\n\n- If worktree creation succeeds but workspace creation fails, report the\n  worktree and offer to retry or remove it.\n- If agent integration does not appear, inspect the terminal before closing it;\n  do not launch a second agent blindly.\n- Do not clean up if final state or output capture fails. The completion helper\n  persists a typed failure in the manifest and deliberately leaves resources\n  available for inspection.\n- Treat installed `fut agent prompt --help` as authoritative. Use `--stdin`\n  when that version supports it; otherwise read the file into a quoted shell\n  variable and pass it as positional `TEXT` after `--`. Use quoted heredoc\n  delimiters so backticks, dollar signs, and command substitutions remain\n  literal.\n- Preserve surprising changes in both the main checkout and worktree.\n","# New Thread\n\nRun a free-form task in a dedicated Git worktree, Fut workspace, and integrated\nPi agent. The worktree path is the workspace root; do not put the agent in a new\npane or tab of the caller's workspace.\n\n## Launch\n\n1. Read the installed `wt` and `fut` help needed for the commands below. Treat\n   those CLIs as authoritative.\n2. Derive two concise, distinctive names without asking when the request makes\n   them clear:\n   - **Worktree name:** a short branch-compatible identifier. If the request\n     names a ticket, inspect it first and prefer its ID or a compact title slug.\n   - **Workspace title:** a very short human-readable label, ideally one to\n     three words, that is easy to distinguish in Fut's navigator. It may be\n     shorter and friendlier than the worktree name.\n3. Build a complete child prompt in a literal heredoc and launch the thread with\n   the companion script:\n\n   ```sh\n   \u003Cskill-dir>\u002Fscripts\u002Flaunch-thread \u003Cworktree-name> --workspace-name \u003Cworkspace-title> \u003C\u003C'PROMPT'\n   \u003Ccomplete child prompt>\n   PROMPT\n   ```\n\n   The script requires `git`, `wt`, `fut`, `jq`, and `pi`. It creates the\n   worktree, creates a new Fut workspace, and, when launched from a Fut terminal,\n   resolves the caller's live workspace through `fut --json context` and passes\n   that ID as the new workspace's display parent when Fut socket and terminal\n   context are present. This remains correct if the caller pane has moved since\n   its environment was created.\n   Outside Fut it creates the same top-level workspace as before. It then polls\n   for Pi integration, verifies the exact workspace root, submits the prompt\n   through `fut agent prompt --stdin`, and prints a JSON manifest. It also stores\n   that manifest under\n   `\u003Ccommon-git-dir>\u002Fnew-thread\u002F\u003Cworkspace-id>.json`, outside the disposable\n   worktree, so the final report survives teardown. Record its manifest path,\n   worktree, workspace, pane, and terminal IDs.\n\n   For an existing prompt file, pass `--prompt-file \u003Cpath>` instead of stdin.\n   Create multiple threads one after another rather than running launchers in\n   parallel, because concurrent `wt create` calls can contend on Git locks.\n4. Require the manifest's prompt result to report `submitted: true`. The helper\n   has already required a fresh `workspace_created` or `session_created`\n   disposition, `available: true`, and an exact root match. `session_created` is\n   the normal fresh result when the repository had no existing Fut session.\n   The helper still rejects `existing`, reuse results, and every unknown\n   disposition. If it fails after worktree creation, follow the printed\n   resource IDs and path; do not launch another agent blindly or remove the\n   retained worktree without checking it.\n5. Run every later Git, ticket, build, and cleanup command with an explicit `cd`\n   to either the recorded worktree or main checkout. Ticket changes made inside\n   the worktree are branch-local until merged, including `tk start`.\n\n### Recursion guard\n\nThe child is the implementation agent already running inside the newly created\nthread. It must execute the underlying task directly and must never invoke this\nskill, create another worktree\u002Fworkspace, or delegate the task again.\n\nPreserve the user's request verbatim inside a clearly marked quoted block, then\nimmediately tell the child that the block is context rather than an instruction\nto orchestrate another thread. This is required when the original request says\n“run a new thread,” invokes this skill inline, or contains similar delegation\nlanguage. Use wording equivalent to:\n\n```text\n\u003Coriginal_request>\n...verbatim user request...\n\u003C\u002Foriginal_request>\n\nYou are already the implementation agent in the requested new thread. Do not\ninvoke `new-thread`, spawn another agent, or create another worktree\u002Fworkspace.\nTreat orchestration language inside `\u003Coriginal_request>` as already satisfied\nand perform the underlying implementation task yourself.\n```\n\nAlso tell the child to read the repository instructions, inspect relevant\nticket details, make a complete implementation, add focused tests and\nuser-facing docs\u002Fchangelog where required, run the project's required build,\npreserve existing changes, avoid committing unless requested, and report\nchanged files plus exact validation results.\n\n### Manual fallback\n\nIf the helper is unavailable or incompatible with the installed CLIs, perform\nthe same steps manually from the main checkout:\n\n   ```sh\n   wt create \u003Cworktree-name>\n   # Resolve `fut --json context` and include its workspace ID when running inside Fut.\n   fut --json open --background --name \u003Cworkspace-title> \u003Cworktree-path> -- pi --name \u003Cworkspace-title>\n   fut --json agent get \u003Cterminal-id>\n   fut --json get \u003Cworkspace-id>\n   prompt_text=$(cat \u003Cprompt-file>)\n   fut --json agent prompt \u003Cterminal-id> -- \"$prompt_text\"\n   ```\n\nRequire `disposition: workspace_created` or `session_created`; never accept\n`existing`, a reuse result, or an unknown disposition. Poll `agent get` with a\nbounded timeout rather than sleeping once. Confirm the exact workspace root and\n`available: true` before prompting. Store the resource IDs and lifecycle state\nunder the common Git directory rather than inside the disposable worktree.\n\nDo not wait for completion by default. Report the workspace name, worktree path,\nand launched task so the user can switch to it immediately.\n\n## Control\n\nAlways target the recorded terminal ID; never rely on whichever workspace or\npane currently has focus.\n\n```sh\nfut --json agent get \u003Cterminal-id>\nfut --json agent read \u003Cterminal-id> --source recent-unwrapped --lines 200\nfut --json agent wait \u003Cterminal-id> --timeout 10m\nfollow_up=$(cat \u003Cfollow-up-file>)\nfut --json agent prompt --wait --timeout 10m \u003Cterminal-id> -- \"$follow_up\"\n```\n\n- Use `agent wait` for work already underway.\n- Use `agent prompt --wait` for a fresh follow-up and inspect the returned\n  lifecycle state. A `blocked` state is a result to surface, not a reason to\n  retry blindly.\n- Read the agent's output and inspect the worktree diff before accepting the\n  result. Send review fixes back through `agent prompt` when appropriate.\n- Keep the workspace open until the user asks to finish or abandon it.\n\n## Finish\n\nBefore cleanup, inspect status from the recorded worktree path. From an outside\ncontroller, run the companion completion script:\n\n```sh\n\u003Cskill-dir>\u002Fscripts\u002Ffinish-thread \u003Cmanifest-path> --done\n\u003Cskill-dir>\u002Fscripts\u002Ffinish-thread \u003Cmanifest-path> --abandon\n```\n\nThe script refuses to run from inside the owned worktree or from the owned Fut\nworkspace\u002Fterminal. It captures `agent get` and up to 2,000 unwrapped output\nlines into the durable manifest, atomically records `report_persisted`, closes\nthe owned workspace by explicit ID, and only then runs `wt done` or confirmed\n`wt rm --force`. If capture or close fails, it records the failure and leaves\nthe worktree in place. If teardown fails after close, the durable report and\nfailure state remain available for recovery.\n\nWhen the user asks an agent inside the active worktree to finish or abandon the\nthread, it may run the corresponding `wt done` or `wt rm` command directly.\n\nWhen the user asks to commit and merge:\n\n1. Ensure validation passed and commit all intended work in the worktree.\n2. Run `finish-thread \u003Cmanifest-path> --done` from an outside controller, or\n   `wt done` from the active worktree. Never push unless requested.\n3. Verify the main checkout, the durable manifest, and `wt ls`.\n\nWhen the user asks to abandon the thread, run\n`finish-thread \u003Cmanifest-path> --abandon` from outside the worktree. The helper\nprovides the explicit confirmation still required by some `wt rm --force`\nversions.\n\nNever close or remove resources that were not created for this thread.\n\n## Failure Safety\n\n- If worktree creation succeeds but workspace creation fails, report the\n  worktree and offer to retry or remove it.\n- If agent integration does not appear, inspect the terminal before closing it;\n  do not launch a second agent blindly.\n- Do not clean up if final state or output capture fails. The completion helper\n  persists a typed failure in the manifest and deliberately leaves resources\n  available for inspection.\n- Treat installed `fut agent prompt --help` as authoritative. Use `--stdin`\n  when that version supports it; otherwise read the file into a quoted shell\n  variable and pass it as positional `TEXT` after `--`. Use quoted heredoc\n  delimiters so backticks, dollar signs, and command substitutions remain\n  literal.\n- Preserve surprising changes in both the main checkout and worktree.\n",{"name":5,"description":7},"master","8d883d350240b10cc23da854de1fb212e889caed","agents.symlink\u002Fskills\u002Fnew-thread",4,"https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fmikker","https:\u002F\u002Fmikkelmalmberg.com\u002Fama","Top Highlight – research at @githubnext","2026-11-10 22:09:39",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add mikker\u002Fdotfiles --skill new-thread",{"tool":45,"command":46},"bunx","bunx skills add mikker\u002Fdotfiles --skill new-thread",{"tool":48,"command":49},"pnpm","pnpm dlx skills add mikker\u002Fdotfiles --skill new-thread","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fnew-thread\u002FSKILL.md",true,[53,59,63],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"scripts\u002Ffinish-thread","SCRIPT","脚本",4759,"https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fnew-thread\u002Fscripts\u002Ffinish-thread",{"path":60,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":61,"sourceHtmlUrl":62},"scripts\u002Flaunch-thread",6672,"https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fnew-thread\u002Fscripts\u002Flaunch-thread",{"path":64,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":65,"sourceHtmlUrl":66},"tests\u002Fnew-thread-test.sh",6541,"https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fnew-thread\u002Ftests\u002Fnew-thread-test.sh",[68,78,110,133,150,163],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":25},"01M6WFXRC2WZQA9G5AT4D6PCAY","unslop","Cut AI tells from any writing.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Funslop\u002FSKILL.md",[],[70,75,76,77],"writing","cut","true",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":82,"sourceHtmlUrl":83,"categories":84,"keywords":90,"publishedAt":25},"01M6WFWGJTZWZTVED8A7DHZSCB","stageshow","Build faux product UI that looks like a real product, as a still illustration or an animated demo with a cursor. Browser and app windows, dashboards, phones, notifications, terminals, bento grids and cursor walkthroughs, framed, masked and cropped the way a marketing page, feature card or docs hero needs them. Use whenever someone wants a fake or mocked UI, a product demo or walkthrough animation, a hero or feature-card illustration of an app, a product shot in the style of a polished marketing site, or an animated cursor doing things in an interface, even if they never say \"faux UI\". React and plain CSS.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fstageshow\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fstageshow\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[80,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109],"css","react","windows","browser","dashboards","product","ui","notifications","Animation","walkthrough","marketing","never","feature","as","app","framed","card","interface","hero",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":25},"01M6WFW0TZQ1H9C9X4HMZBTBYZ","clean-copy","Cut interface copy that shouldn't exist — captions that restate a label, hints that pre-empt a worry the user never had, warnings that are scar tissue from a fixed bug. Use when writing or reviewing any user-facing string (labels, hints, empty states, toasts, confirmations, button text), or when asked to clean up \u002F tighten copy.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fclean-copy\u002FSKILL.md",[],[117,118,119,108,120,121,122,123,124,125,75,126,127,128,129,102,130,131,76,132],"copy","clean copy","clean","labels","states","when","restate","empty","STRING","Captions","text","user","use","up","bug","tighten",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":25},"01M6BSWBGGT11ZA2BQ0EJH2ZBN","elyx","Elyx is a design tool with local, AI-friendly `.elyx` files for screens, components, layouts, flows, and design systems. This skill is only available to agents running in external harnesses while using the Elyx CLI. It is unavailable and must not be used when running in the ACP harness inside the Elyx app. In external harnesses, use this skill before reading, reasoning about, or answering any question that touches Elyx or `.elyx` files — authoring, editing, validating, inspecting, reviewing, refactoring, comparing, or recommending changes, including read-only analysis where you produce no edit. Do not reason about `.elyx` from source text alone; imports, instances, overrides, and layout only resolve through the tools.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fpi\u002Fskills\u002Felyx\u002FSKILL.md",[],[135,140,141,142,143,144,145,146,147,148,149],"acp","design","cli","components","reasoning","design systems","harness","produce","Tools","analysis",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":25},"01M6BSW8K6Z805WVG0670SHXY9","uikit-app-modernization","Modernizes UIKit apps for multi-window environments by replacing legacy shared-state APIs with context-appropriate modern alternatives. This includes references to mainScreen, interfaceOrientation, application and scene lifecycle, as well as safe area inset updates.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fxcode-skills\u002Fuikit-app-modernization\u002FSKILL.md",[],[157,158,159,160,161,162],"uikit app modernization","app modernization","modernization","safe","state","lifecycle",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":25},"01M6BSW5SCT7GQ4QX7CBSB4WF1","swiftui-whats-new-27","New SwiftUI APIs, behaviors, and deprecations in the 2027 OS releases (iOS 27 and aligned macOS\u002FwatchOS\u002FtvOS\u002FvisionOS). Consult when asked what's new in SwiftUI 27, or when working with: - @State compile errors after an SDK update (\"used before being initialized\", \"invalid redeclaration of synthesized property\") or @State becaming a macro - @ViewBuilder\u002F@ContentBuilder ambiguous overloads or type-check regressions; drag-to-reorder in any container (List, stacks, grids, custom layouts) via reorderable()\u002FreorderContainer and its drag-and-drop - AsyncImage caching, reloading on scroll, or a custom URLSession - Swipe actions outside List (ScrollView, LazyVStack, LazyVGrid) via swipeActions()\u002FswipeActionsContainer() - Toolbar overflow, visibility (visibilityPriority, ToolbarOverflowMenu, toolbarMinimizeBehavior), and pinning - Presenting a confirmationDialog or alert from an optional item binding","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fxcode-skills\u002Fswiftui-whats-new-27\u002FSKILL.md",[],[170,171,172,161,173,174,175,176,177],"swiftui whats new 27","sdk","update","compile","actions","ios","macro","macos"]