[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BSSW4VMAD8Y95SV77BPXEY":3,"skill-same:01M6BSSW4VMAD8Y95SV77BPXEY":153},{"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":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6BSSW4VMAD8Y95SV77BPXEY","pr",null,"Create and push pull requests. Use when the user uses “PR” as a verb or says “create a PR,” “push a PR,” or similar.","mikker\u002Fdotfiles","mikker","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2819?v=4","01M6BSPF9WRVEQ89CW9NNJ7JK4","Mikkel Malmberg","01M6BSPFEEZKZSB4B603CZGV9W",116,"MIT","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fpr\u002FSKILL.md",[],[5,19,20,21,22],"pull requests","create","pull","push","2026-11-10 10:12:30",false,"---\nname: pr\ndescription: Create and push pull requests. Use when the user uses “PR” as a verb or says “create a PR,” “push a PR,” or similar.\n---\n\n# PR\n\nRead the [commit skill](..\u002Fcommit\u002FSKILL.md) for guidance on describing changes and writing commits.\n\n## Flow\n\n1. Inspect repository instructions, status, diff, branch, and trunk.\n2. Verify the change. Commit only intended work, then push the branch.\n3. Create or update the PR with the format below.\n\n## Format\n\n**Title:** Imperative change description.\n\n**Description:**\n\n```markdown\n\u003COne imperative sentence.>\n\n## TL;DR\n\u003CBrief summary.>\n\n## Problem\n\u003CIf applicable, one brief sentence covering the issue.>\n\n## Desired outcome\n\u003CWhat we want.>\n\n## Solution\n\u003CHow we achieve it.>\n\n## Context for agents\n\u003COptional follow-up context, decisions, or discoveries.>\n```\n\nKeep the human-facing sections very short, plain, and product-level. Describe the resulting user experience, not implementation details. Mention the previous state only when it explains the problem, a decision, or other necessary context.\n\nOmit **Problem** and **Context for agents** when unnecessary. Keep agent context minimal and clearly secondary to the human-facing description.\n","# PR\n\nRead the [commit skill](..\u002Fcommit\u002FSKILL.md) for guidance on describing changes and writing commits.\n\n## Flow\n\n1. Inspect repository instructions, status, diff, branch, and trunk.\n2. Verify the change. Commit only intended work, then push the branch.\n3. Create or update the PR with the format below.\n\n## Format\n\n**Title:** Imperative change description.\n\n**Description:**\n\n```markdown\n\u003COne imperative sentence.>\n\n## TL;DR\n\u003CBrief summary.>\n\n## Problem\n\u003CIf applicable, one brief sentence covering the issue.>\n\n## Desired outcome\n\u003CWhat we want.>\n\n## Solution\n\u003CHow we achieve it.>\n\n## Context for agents\n\u003COptional follow-up context, decisions, or discoveries.>\n```\n\nKeep the human-facing sections very short, plain, and product-level. Describe the resulting user experience, not implementation details. Mention the previous state only when it explains the problem, a decision, or other necessary context.\n\nOmit **Problem** and **Context for agents** when unnecessary. Keep agent context minimal and clearly secondary to the human-facing description.\n",{"name":5,"description":7},"master","8d883d350240b10cc23da854de1fb212e889caed","agents.symlink\u002Fskills\u002Fpr",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":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add mikker\u002Fdotfiles --skill pr",{"tool":43,"command":44},"bunx","bunx skills add mikker\u002Fdotfiles --skill pr",{"tool":46,"command":47},"pnpm","pnpm dlx skills add mikker\u002Fdotfiles --skill pr","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Fpr\u002FSKILL.md",true,[51,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"csharp\u002Fclaude-api.md","REFERENCE","参考文档",14390,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fcsharp\u002Fclaude-api.md",{"path":58,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":59,"sourceHtmlUrl":60},"curl\u002Fexamples.md",6418,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fcurl\u002Fexamples.md",{"path":62,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":63,"sourceHtmlUrl":64},"go\u002Fclaude-api.md",13873,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fgo\u002Fclaude-api.md",{"path":66,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":67,"sourceHtmlUrl":68},"java\u002Fclaude-api.md",15095,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fjava\u002Fclaude-api.md",{"path":70,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":71,"sourceHtmlUrl":72},"php\u002Fclaude-api.md",11161,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fphp\u002Fclaude-api.md",{"path":74,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":75,"sourceHtmlUrl":76},"python\u002Fagent-sdk\u002Fpatterns.md",9197,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fagent-sdk\u002Fpatterns.md",{"path":78,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":79,"sourceHtmlUrl":80},"python\u002Fagent-sdk\u002FREADME.md",12672,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fagent-sdk\u002FREADME.md",{"path":82,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":83,"sourceHtmlUrl":84},"python\u002Fclaude-api\u002Fbatches.md",5095,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fclaude-api\u002Fbatches.md",{"path":86,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":87,"sourceHtmlUrl":88},"python\u002Fclaude-api\u002Ffiles-api.md",3994,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fclaude-api\u002Ffiles-api.md",{"path":90,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":91,"sourceHtmlUrl":92},"python\u002Fclaude-api\u002FREADME.md",12105,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fclaude-api\u002FREADME.md",{"path":94,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":95,"sourceHtmlUrl":96},"python\u002Fclaude-api\u002Fstreaming.md",5222,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fclaude-api\u002Fstreaming.md",{"path":98,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":99,"sourceHtmlUrl":100},"python\u002Fclaude-api\u002Ftool-use.md",16933,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fpython\u002Fclaude-api\u002Ftool-use.md",{"path":102,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":103,"sourceHtmlUrl":104},"ruby\u002Fclaude-api.md",2935,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fruby\u002Fclaude-api.md",{"path":106,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":107,"sourceHtmlUrl":108},"shared\u002Ferror-codes.md",7098,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fshared\u002Ferror-codes.md",{"path":110,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":111,"sourceHtmlUrl":112},"shared\u002Flive-sources.md",10727,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fshared\u002Flive-sources.md",{"path":114,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":115,"sourceHtmlUrl":116},"shared\u002Fmodels.md",7115,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fshared\u002Fmodels.md",{"path":118,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":119,"sourceHtmlUrl":120},"shared\u002Fprompt-caching.md",7376,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fshared\u002Fprompt-caching.md",{"path":122,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":123,"sourceHtmlUrl":124},"shared\u002Ftool-use-concepts.md",14894,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Fshared\u002Ftool-use-concepts.md",{"path":126,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":127,"sourceHtmlUrl":128},"typescript\u002Fagent-sdk\u002Fpatterns.md",4711,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fagent-sdk\u002Fpatterns.md",{"path":130,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":131,"sourceHtmlUrl":132},"typescript\u002Fagent-sdk\u002FREADME.md",10826,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fagent-sdk\u002FREADME.md",{"path":134,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":135,"sourceHtmlUrl":136},"typescript\u002Fclaude-api\u002Fbatches.md",2596,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fclaude-api\u002Fbatches.md",{"path":138,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":139,"sourceHtmlUrl":140},"typescript\u002Fclaude-api\u002Ffiles-api.md",2261,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fclaude-api\u002Ffiles-api.md",{"path":142,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":143,"sourceHtmlUrl":144},"typescript\u002Fclaude-api\u002FREADME.md",9862,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fclaude-api\u002FREADME.md",{"path":146,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":147,"sourceHtmlUrl":148},"typescript\u002Fclaude-api\u002Fstreaming.md",5585,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fclaude-api\u002Fstreaming.md",{"path":150,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":151,"sourceHtmlUrl":152},"typescript\u002Fclaude-api\u002Ftool-use.md",15358,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Fclaude-api\u002Ftypescript\u002Fclaude-api\u002Ftool-use.md",[154,164,196,219,236,249],{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":23},"01M6WFXRC2WZQA9G5AT4D6PCAY","unslop","Cut AI tells from any writing.","https:\u002F\u002Fgithub.com\u002Fmikker\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fagents.symlink\u002Fskills\u002Funslop\u002FSKILL.md",[],[156,161,162,163],"writing","cut","true",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":168,"sourceHtmlUrl":169,"categories":170,"keywords":176,"publishedAt":23},"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",[171],{"categoryNo":172,"categoryName":173,"taxonomyType":174,"taxonomyTypeDesc":175},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[166,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195],"css","react","windows","browser","dashboards","product","ui","notifications","Animation","walkthrough","marketing","never","feature","as","app","framed","card","interface","hero",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":23},"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",[],[203,204,205,194,206,207,208,209,210,211,161,212,213,214,215,188,216,217,162,218],"copy","clean copy","clean","labels","states","when","restate","empty","STRING","Captions","text","user","use","up","bug","tighten",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":225,"publishedAt":23},"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",[],[221,226,227,228,229,230,231,232,233,234,235],"acp","design","cli","components","reasoning","design systems","harness","produce","Tools","analysis",{"skillNo":237,"name":238,"nameZh":6,"description":239,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":240,"categories":241,"keywords":242,"publishedAt":23},"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",[],[243,244,245,246,247,248],"uikit app modernization","app modernization","modernization","safe","state","lifecycle",{"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":23},"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",[],[256,257,258,247,259,260,261,262,263],"swiftui whats new 27","sdk","update","compile","actions","ios","macro","macos"]