技能 native-feel-cross-platform-desktop
📦

native-feel-cross-platform-desktop

低风险 ⚙️ 外部命令🌐 网络访问📁 文件系统访问

构建具有原生体验的跨平台桌面应用

构建在 macOS 和 Windows 上都具有原生体验的跨平台桌面应用很困难。此技能提供架构指导、WebView 优化技术,以及一份包含 75 项的发布就绪检查清单,帮助你构建用户无法与原生软件区分开的桌面应用。

支持: Claude Codex Code(CC)
🥉 79 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“native-feel-cross-platform-desktop”。 My Electron app feels web-y. Where do I start?

预期结果:

checklists/ship-readiness.md 中的检查清单涵盖 75 项。大多数 Electron 应用都会在相同的 6-8 项上失败。最快的修复包括移除行上的 cursor:pointer、禁用 WebKit 上下文菜单、使用原生系统强调色而不是品牌色,以及用原生 sheet 替换网页风格的模态遮罩。每项修复需要 5-30 分钟。要获得更深入的原生体验,你需要四层架构,由原生外壳负责窗口和材质。

正在使用“native-feel-cross-platform-desktop”。 Activity Monitor says my app uses 450 MB. Is that bad?

预期结果:

这符合原生外壳加 WebView 加 Node 后端架构的预期基线。Activity Monitor 会重复计算共享框架,并将压缩页面视为驻留内存。在优化之前,请将基线成本(WebView 为 50MB,Node 为 12MB)与边际成本(你的代码)分开。使用 vm_stat 或 Instruments footprint tool 进行准确测量。

安全审计

低风险
v1 • 5/15/2026

This is an educational reference skill containing markdown documentation about cross-platform desktop app architecture. All 508 static analysis findings are false positives in their full context. The 382 'external_commands' detections are shell commands shown inside code blocks as educational examples. The 'keylogger keywords', 'Windows SAM database', and 'weak cryptographic algorithm' detections are due to the scanner matching words like 'keystroke', 'DwmSetWindowAttribute' (DWM compositor API, not SAM), and 'crypto' (as a general subsystem category) in architectural discussion text. No executable code, network exfiltration, or credential access exists in this skill.

13
已扫描文件
1,936
分析行数
6
发现项
1
审计总数
低风险问题 (3)
Shell commands in educational code blocks
FALSE POSITIVE: 382 instances of shell commands detected in backtick code blocks across markdown files. All instances are educational documentation examples showing macOS diagnostic commands (vm_stat, vmmap, heap), Swift configuration, and Node.js commands. No commands are executed. This is a reference skill showing development patterns.
Hardcoded URLs in documentation
TRUE BUT BENIGN: 9 instances of hardcoded URLs detected. All are legitimate documentation references: GitHub repository URLs, license badge images, and a link to the Raycast technical blog post. No data exfiltration or malicious network activity exists.
Home directory reference in install instructions
FALSE POSITIVE: Reference to ~/.claude/skills/ at README.md:28 is the standard installation path for Claude Code skills. This is documentation showing how to install the skill, not unauthorized filesystem access.

风险因素

⚙️ 外部命令 (382)
checklists/decision-tree.md:71 checklists/decision-tree.md:110 checklists/decision-tree.md:111 checklists/ship-readiness.md:12 checklists/ship-readiness.md:12 checklists/ship-readiness.md:12 checklists/ship-readiness.md:37 checklists/ship-readiness.md:54 checklists/ship-readiness.md:55 checklists/ship-readiness.md:57 checklists/ship-readiness.md:58 checklists/ship-readiness.md:65 README.md:12 README.md:22-26 README.md:26-28 README.md:28-32 README.md:32-50 README.md:50-72 README.md:72-78 README.md:78-115 README.md:115-119 README.md:119-120 README.md:120 README.md:120 README.md:120-121 README.md:121-122 README.md:122-134 README.md:134-147 README.md:147-151 README.md:151-165 README.md:165-180 README.md:180-184 README.md:184-189 README.md:189 README.md:189-193 references/01-philosophy.md:34 references/01-philosophy.md:44 references/01-philosophy.md:54 references/02-architecture.md:5-43 references/02-architecture.md:43-56 references/02-architecture.md:56 references/02-architecture.md:56-57 references/02-architecture.md:57 references/02-architecture.md:57 references/02-architecture.md:57-58 references/02-architecture.md:58 references/02-architecture.md:58 references/02-architecture.md:58 references/02-architecture.md:58-59 references/02-architecture.md:59-60 references/02-architecture.md:60 references/02-architecture.md:60-76 references/02-architecture.md:76 references/02-architecture.md:76 references/02-architecture.md:76 references/02-architecture.md:76 references/02-architecture.md:76 references/02-architecture.md:76 references/02-architecture.md:76-87 references/02-architecture.md:87-88 references/02-architecture.md:88 references/02-architecture.md:88 references/02-architecture.md:88 references/02-architecture.md:88 references/02-architecture.md:88-101 references/02-architecture.md:101-102 references/02-architecture.md:102 references/02-architecture.md:102 references/02-architecture.md:102 references/02-architecture.md:102 references/02-architecture.md:102 references/02-architecture.md:102-103 references/02-architecture.md:103 references/02-architecture.md:103 references/02-architecture.md:103 references/02-architecture.md:103 references/02-architecture.md:103-104 references/02-architecture.md:104 references/02-architecture.md:104 references/02-architecture.md:104-105 references/02-architecture.md:105 references/02-architecture.md:105 references/02-architecture.md:105 references/02-architecture.md:105 references/02-architecture.md:105-106 references/02-architecture.md:106-107 references/02-architecture.md:107 references/02-architecture.md:107 references/02-architecture.md:107 references/02-architecture.md:107 references/02-architecture.md:107-124 references/03-webview-survival.md:3 references/03-webview-survival.md:3 references/03-webview-survival.md:5 references/03-webview-survival.md:13 references/03-webview-survival.md:15 references/03-webview-survival.md:19-34 references/03-webview-survival.md:34-37 references/03-webview-survival.md:37-43 references/03-webview-survival.md:43-55 references/03-webview-survival.md:55-57 references/03-webview-survival.md:57-59 references/03-webview-survival.md:59-63 references/03-webview-survival.md:63-67 references/03-webview-survival.md:67-75 references/03-webview-survival.md:75-77 references/03-webview-survival.md:77-79 references/03-webview-survival.md:79-86 references/03-webview-survival.md:86-96 references/03-webview-survival.md:96 references/03-webview-survival.md:96-98 references/03-webview-survival.md:98-100 references/03-webview-survival.md:100-107 references/03-webview-survival.md:107-119 references/03-webview-survival.md:119-123 references/03-webview-survival.md:123-125 references/03-webview-survival.md:125 references/03-webview-survival.md:125 references/03-webview-survival.md:125 references/03-webview-survival.md:125-127 references/03-webview-survival.md:127-139 references/03-webview-survival.md:139-149 references/03-webview-survival.md:149-151 references/03-webview-survival.md:151-161 references/03-webview-survival.md:161-163 references/03-webview-survival.md:163-165 references/03-webview-survival.md:165 references/03-webview-survival.md:165-184 references/03-webview-survival.md:184-190 references/03-webview-survival.md:190-192 references/03-webview-survival.md:192 references/03-webview-survival.md:192-193 references/03-webview-survival.md:193 references/03-webview-survival.md:193-204 references/03-webview-survival.md:204 references/03-webview-survival.md:204 references/03-webview-survival.md:204-208 references/03-webview-survival.md:208-222 references/03-webview-survival.md:222-234 references/03-webview-survival.md:234 references/03-webview-survival.md:234 references/03-webview-survival.md:234-235 references/03-webview-survival.md:235 references/03-webview-survival.md:235-236 references/03-webview-survival.md:236-240 references/03-webview-survival.md:240-254 references/03-webview-survival.md:254-256 references/03-webview-survival.md:256-265 references/03-webview-survival.md:265-276 references/03-webview-survival.md:276-281 references/03-webview-survival.md:281-288 references/03-webview-survival.md:288-289 references/03-webview-survival.md:289 references/03-webview-survival.md:289-290 references/03-webview-survival.md:290-300 references/03-webview-survival.md:300 references/03-webview-survival.md:300 references/03-webview-survival.md:300-301 references/03-webview-survival.md:301-302 references/03-webview-survival.md:302-303 references/03-webview-survival.md:303-304 references/03-webview-survival.md:304 references/03-webview-survival.md:304-316 references/03-webview-survival.md:316-320 references/03-webview-survival.md:320-322 references/03-webview-survival.md:322 references/03-webview-survival.md:322 references/03-webview-survival.md:322-330 references/03-webview-survival.md:330-332 references/03-webview-survival.md:332-337 references/03-webview-survival.md:337-351 references/03-webview-survival.md:351-358 references/03-webview-survival.md:358-366 references/03-webview-survival.md:366-370 references/03-webview-survival.md:370-374 references/03-webview-survival.md:374-384 references/03-webview-survival.md:384-387 references/03-webview-survival.md:387-395 references/03-webview-survival.md:395-401 references/03-webview-survival.md:401-411 references/03-webview-survival.md:411-415 references/03-webview-survival.md:415-429 references/03-webview-survival.md:429-431 references/04-ipc-contract.md:7-16 references/04-ipc-contract.md:16-20 references/04-ipc-contract.md:20 references/04-ipc-contract.md:20-26 references/04-ipc-contract.md:26-39 references/04-ipc-contract.md:39-49 references/04-ipc-contract.md:49-51 references/04-ipc-contract.md:51-55 references/04-ipc-contract.md:55-57 references/04-ipc-contract.md:57 references/04-ipc-contract.md:57-58 references/04-ipc-contract.md:58 references/04-ipc-contract.md:58 references/04-ipc-contract.md:58 references/04-ipc-contract.md:58 references/04-ipc-contract.md:58 references/04-ipc-contract.md:58-59 references/04-ipc-contract.md:59 references/04-ipc-contract.md:59 references/04-ipc-contract.md:59 references/04-ipc-contract.md:59 references/04-ipc-contract.md:59-60 references/04-ipc-contract.md:60 references/04-ipc-contract.md:60 references/04-ipc-contract.md:60-61 references/04-ipc-contract.md:61 references/04-ipc-contract.md:61 references/04-ipc-contract.md:61 references/04-ipc-contract.md:61 references/04-ipc-contract.md:61-62 references/04-ipc-contract.md:62-63 references/04-ipc-contract.md:63 references/04-ipc-contract.md:63 references/04-ipc-contract.md:63 references/04-ipc-contract.md:63-67 references/04-ipc-contract.md:67-80 references/04-ipc-contract.md:80-82 references/04-ipc-contract.md:82-110 references/04-ipc-contract.md:110-112 references/04-ipc-contract.md:112 references/04-ipc-contract.md:112 references/04-ipc-contract.md:112 references/04-ipc-contract.md:112 references/04-ipc-contract.md:112-116 references/04-ipc-contract.md:116-125 references/04-ipc-contract.md:125-127 references/04-ipc-contract.md:127-130 references/04-ipc-contract.md:130-132 references/04-ipc-contract.md:132-144 references/04-ipc-contract.md:144-150 references/04-ipc-contract.md:150-166 references/04-ipc-contract.md:166-170 references/04-ipc-contract.md:170-172 references/04-ipc-contract.md:172 references/04-ipc-contract.md:172-182 references/04-ipc-contract.md:182-184 references/04-ipc-contract.md:184-190 references/04-ipc-contract.md:190-193 references/04-ipc-contract.md:193-194 references/04-ipc-contract.md:194-201 references/04-ipc-contract.md:201 references/05-memory-truths.md:16 references/05-memory-truths.md:38 references/05-memory-truths.md:38 references/05-memory-truths.md:53-56 references/05-memory-truths.md:56-82 references/05-memory-truths.md:82 references/05-memory-truths.md:82 references/05-memory-truths.md:82 references/05-memory-truths.md:82 references/05-memory-truths.md:82 references/05-memory-truths.md:82-96 references/05-memory-truths.md:96 references/05-memory-truths.md:96 references/05-memory-truths.md:96-104 references/05-memory-truths.md:104-106 references/05-memory-truths.md:106 references/05-memory-truths.md:106 references/05-memory-truths.md:106 references/05-memory-truths.md:106 references/05-memory-truths.md:106-114 references/05-memory-truths.md:114-120 references/05-memory-truths.md:120-132 references/05-memory-truths.md:132-134 references/05-memory-truths.md:134-135 references/05-memory-truths.md:135 references/06-native-conventions.md:11 references/06-native-conventions.md:14 references/06-native-conventions.md:14 references/06-native-conventions.md:15 references/06-native-conventions.md:25 references/06-native-conventions.md:25 references/06-native-conventions.md:35 references/06-native-conventions.md:35 references/06-native-conventions.md:36 references/06-native-conventions.md:36 references/06-native-conventions.md:38 references/06-native-conventions.md:38 references/06-native-conventions.md:39 references/06-native-conventions.md:39 references/06-native-conventions.md:40 references/06-native-conventions.md:41 references/06-native-conventions.md:47 references/06-native-conventions.md:47 references/06-native-conventions.md:53 references/06-native-conventions.md:69 references/06-native-conventions.md:69 references/06-native-conventions.md:70 references/06-native-conventions.md:76 references/06-native-conventions.md:77 references/06-native-conventions.md:78 references/06-native-conventions.md:81 references/06-native-conventions.md:81 references/06-native-conventions.md:97 references/06-native-conventions.md:97 references/06-native-conventions.md:97 references/06-native-conventions.md:97 references/06-native-conventions.md:109 references/06-native-conventions.md:110 references/06-native-conventions.md:112 references/06-native-conventions.md:118 references/07-evidence-raycast.md:3 references/07-evidence-raycast.md:11-37 references/07-evidence-raycast.md:37-43 references/07-evidence-raycast.md:43-49 references/07-evidence-raycast.md:49-53 references/07-evidence-raycast.md:53-55 references/07-evidence-raycast.md:55 references/07-evidence-raycast.md:55-57 references/07-evidence-raycast.md:57-59 references/07-evidence-raycast.md:59-102 references/07-evidence-raycast.md:102-111 references/07-evidence-raycast.md:111-113 references/07-evidence-raycast.md:113 references/07-evidence-raycast.md:113-119 references/07-evidence-raycast.md:119-122 references/07-evidence-raycast.md:122-123 references/07-evidence-raycast.md:123-124 references/07-evidence-raycast.md:124-125 references/07-evidence-raycast.md:125-126 references/07-evidence-raycast.md:126-127 references/07-evidence-raycast.md:127-128 references/07-evidence-raycast.md:128-130 references/07-evidence-raycast.md:130 references/07-evidence-raycast.md:130 references/07-evidence-raycast.md:130-133 references/07-evidence-raycast.md:133-134 references/07-evidence-raycast.md:134-135 references/07-evidence-raycast.md:135-136 references/07-evidence-raycast.md:136 references/07-evidence-raycast.md:136-137 references/07-evidence-raycast.md:137-138 references/07-evidence-raycast.md:138-139 references/07-evidence-raycast.md:139-140 references/07-evidence-raycast.md:140-142 references/07-evidence-raycast.md:142-150 references/07-evidence-raycast.md:150-152 references/07-evidence-raycast.md:152-164 references/07-evidence-raycast.md:164-168 references/07-evidence-raycast.md:168 references/07-evidence-raycast.md:168 references/07-evidence-raycast.md:168-170 references/07-evidence-raycast.md:170-172 references/07-evidence-raycast.md:172-176 references/07-evidence-raycast.md:176-184 references/07-evidence-raycast.md:184-186 references/07-evidence-raycast.md:186-204 references/07-evidence-raycast.md:204-206 references/07-evidence-raycast.md:206 references/07-evidence-raycast.md:206 references/07-evidence-raycast.md:206 references/07-evidence-raycast.md:206-215 references/07-evidence-raycast.md:215-216 references/07-evidence-raycast.md:216-223 references/07-evidence-raycast.md:223-224 references/07-evidence-raycast.md:224-226 references/07-evidence-raycast.md:226 references/07-evidence-raycast.md:226 references/07-evidence-raycast.md:226 references/07-evidence-raycast.md:226 SKILL.md:8 SKILL.md:12 SKILL.md:14 SKILL.md:15 SKILL.md:16 SKILL.md:17 SKILL.md:18 SKILL.md:19 SKILL.md:20 SKILL.md:21 SKILL.md:31 SKILL.md:34 SKILL.md:34 SKILL.md:35 SKILL.md:36 SKILL.md:37 SKILL.md:37 SKILL.md:42 SKILL.md:45
🌐 网络访问 (9)
📁 文件系统访问 (5)

检测到的模式

Static heuristic: code execution + network + credential access combinationWindows DWM API confused with SAM databaseKeystroke reference in performance discussionEnvironment file entries in .gitignore
审计者: claude

质量评分

59
架构
100
可维护性
87
内容
65
社区
84
安全
91
规范符合性

你能构建什么

重构现有 Electron 应用以获得更好的原生体验

一位工程负责人有一个感觉像网页的 Electron 应用,希望在不完全重写的情况下获得改进原生体验的具体步骤。该技能提供发布就绪检查清单和有针对性的 WebView 修复方案。

从零开始架构新的跨平台桌面应用

一位正在规划新生产力工具的 CTO,需要关于原生外壳、WebView 和 Rust 核心分层决策的架构指导。该技能提供决策树和四层架构参考。

调试 WebView 性能问题

一位前端开发者遇到 WKWebView 闪烁或 Chromium 节流问题,需要针对系统 WebView 的具体修复方案和配置标志。该技能提供 WebView 生存指南,包含已记录的 bug 和修复方案。

试试这些提示

初始架构评估
我正在规划一个新的跨平台桌面应用,需要在 macOS 和 Windows 上都有原生体验。我是否应该使用此技能中描述的四层架构?请运行 checklists/decision-tree.md 中的决策树并给我建议。
WebView Bug 诊断
我的 WKWebView 在 macOS 上隐藏并重新显示窗口时会闪烁。请带我查看 references/03-webview-survival.md 中的修复方案,并帮助我识别哪一节适用于我的问题。
IPC 契约设计
我需要在 Rust 核心、Swift 原生外壳和 TypeScript WebView 层之间设计类型化 IPC。请展示 references/04-ipc-contract.md 中的模式,并帮助我使用 UniFFI 建模前两种消息类型。
发布前原生体验审计
请针对我的应用运行 checklists/ship-readiness.md 中完整的 75 项发布就绪检查清单。对于每个未通过的项目,解释确切修复方式,并按用户影响确定优先级。

最佳实践

  • 每个会话开始时都运行 checklists/decision-tree.md 中的决策树,以验证该架构是否适合项目
  • 提供架构建议时,按编号和短名称引用 references/01-philosophy.md 中的具体原则
  • 在优化内存或性能之前,始终先区分基线成本和边际成本

避免

  • 在未先运行决策树以排除 Electron 或纯原生等更简单替代方案的情况下,就推荐四层架构
  • 将该技能当作代码生成器,而不是架构指导和调试参考
  • 在原生外壳之上应用网页 UI 模式,例如在行上使用 cursor:pointer 或使用模态遮罩,这会抵消原生体验

常见问题

此技能适用于哪些工具?
此技能可与 Claude、Codex 和 Claude Code 配合使用,作为跨平台桌面架构指导的知识参考。
此技能能为我的应用生成代码吗?
不能。此技能是架构决策、WebView 调试和原生体验检查清单的参考。它不会生成或修改源代码。
此技能涵盖移动应用开发吗?
不涵盖。此技能专注于 macOS 和 Windows 桌面应用。不涵盖使用 React Native 或 SwiftUI 的移动开发。
四层架构是跨平台桌面应用的唯一选择吗?
不是。checklists/decision-tree.md 中的决策树有助于评估 Electron、Tauri 或纯原生开发何时更适合你的项目。
此技能与 Electron 有何不同?
此技能描述的是一种原生外壳架构,其中操作系统负责窗口和材质,而 WebView 只是渲染表面。Electron 会抽象掉这些平台 API。
此技能是否包含实际安全漏洞?
不包含。这是一个包含 markdown 文档的教育性参考技能。反引号代码块中显示的代码示例是面向开发者的说明性模式,而不是可执行代码。