关于 spezi-platform-selection
用于根据规划选择 Spezi 应用模板并准备项目的技能,涵盖平台决策、环境设置和规划文档迁移,供编码 Agent 延续实施。
主要功能
- 01选择 React Native 或 Apple-native
- 02引导配置开发环境
- 03生成或克隆 Spezi 模板
- 04迁移规划文档
- 05提供实施交接指导
适用场景
- 01使用 Spezi 模板启动已规划的应用
- 02决定采用跨平台还是 Apple-native 开发
- 03将规划简报带入新项目
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ stanfordspezi/ spezivibe --skill spezi-platform-selection安装后在 Claude Code 中输入/spezi-platform-selection确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/platform-decision.mdsetup-guide.mdscripts/clone-template.sh详细介绍
Spezi 平台选择
当用户已完成规划、希望从 Spezi 模板开始,并准备好构建时,使用此技能。它会根据规划简报在 React Native 和 Apple 原生之间做出选择,设置匹配的 Spezi 起始模板(使用官方 CLI 生成 React Native 应用,克隆 Apple 原生应用),并将现有的 docs/planning/ 和 docs/implementation-plan.md 移入新项目,以便编码 Agent 拥有完整上下文。
此技能应在其他规划技能之后运行,而不是之前——平台选择取决于规划所揭示的内容(HealthKit 需求、跨平台要求等)。
何时不使用
如果用户不采用 Spezi 模板,请跳过此技能——例如,他们正在扩展现有应用、使用其他框架(Flutter、Web 等),或希望完全控制脚手架。规划简报和实施计划在任何代码库中同样适用;用户可以直接将它们交给自己的编码 Agent。在 build-an-app 流程中,此处的退出会交回编排器的 Step 4,由其使用所选框架设置项目,并收窄仍未确定的实施计划。
平台选项
在给出推荐之前,请阅读 setup-guide.md。
- React Native——从同一代码库实现跨平台(iOS + Android)。由 SpeziVibe React Native Template 支持。
- Apple 原生——用于 iPhone、iPad 和 Vision Pro 的 Swift / SwiftUI。由面向 Apple 平台的 Spezi Template Application 支持。
先询问
提出简洁的问题,以判断该应用主要属于:
- 内容、表单、排程、聊天或跨平台工作流支持
- 与 HealthKit、SensorKit、蓝牙外设、后台采集或其他 Apple 原生 SDK 深度集成
确认:
- 用户是谁
- 发布时是否需要支持 Android
- 该应用是仅限 iPhone,还是聚焦 Apple 平台
- Apple 原生能力是否是产品价值的核心
决定平台
在决定之前,请阅读 platform-decision.md。
在以下情况下选择 React Native:
- 跨平台交付(iOS + Android)很重要
- 产品主要是内容、问卷、排程、聊天或轻量集成
在以下情况下选择 Apple 原生:
- HealthKit、SensorKit 或其他 Apple 原生 SDK 对产品至关重要(仅蓝牙外设不会强制此选择——跨平台 BLE 库确实存在;当需求同时指向两者时,请遵循 platform-decision.md 的 "When Both Matter" 指导)
- 该应用明确面向 iPhone、iPad 或 Vision Pro
- 深度平台集成比跨平台覆盖更重要
准备机器
决定平台后,在模板设置和实施之前,引导用户完成 setup-guide.md 中匹配的设置步骤。
- 对于 Apple 原生,优先帮助用户先安装并验证 Xcode。
- 对于 React Native,帮助用户为他们关心的目标设置合适的 Expo 和 React Native 开发环境。
确保用户清楚他们想要:
- 在物理设备上快速试验
- 基于模拟器或仿真器的开发
- 具备原生能力的开发构建
设置所选模板
询问用户项目应放在哪里 —— 规划目录的同级目录,并以应用命名,是一个不错的默认选择。然后使用随附的辅助脚本,而不是临时命令:
- React Native:
scripts/clone-template.sh react-native <destination>—— 运行模板的官方生成器(npx create-spezivibe-app),它会提示选择后端和可选功能,并生成一个独立应用。不要直接克隆 SpeziVibeReactNativeTemplate 仓库:它是 CLI、包和模板基础设施的 monorepo,而不是一个应用。 - Apple-native:
scripts/clone-template.sh apple-native <destination>—— 克隆 Spezi Template Application。
如果 React Native 生成器失败(脚本报告应用未创建),不要临时改为克隆模板 monorepo —— 请查看模板仓库的 README 获取当前的生成说明,并向用户报告该失败。
对于 Apple-native 克隆,辅助脚本会将 origin 远程重命名为 template,这样用户就无法意外地将他们的项目(以及规划简报)推送到 Stanford 模板仓库。React Native 生成器会生成一个没有远程的新项目。无论哪种方式,在用户推送之前,帮助他们创建自己的仓库并将其添加为 origin。
继续推进规划
如果当前工作目录包含由其他规划技能生成的 docs/planning/ 目录或 docs/implementation-plan.md,请将它们移入模板项目,以便编码 Agent 从正确的位置获取完整计划。
首先检查项目是否已经包含 docs/planning/ 或 docs/implementation-plan.md(来自模板更新或之前的运行)。如果包含,请逐文件合并,而不是运行下面的代码块 —— 对已存在的目录执行 mv 不会合并,它会静默地将新的简报嵌套在其中(docs/planning/planning/)。否则:
mkdir -p <destination>/docs
mv docs/planning <destination>/docs/planning
mv docs/implementation-plan.md <destination>/docs/implementation-plan.md
rmdir docs 2>/dev/null || true
mkdir -p 很重要 —— 模板不一定附带 docs/ 目录,没有父目录时 mv 会失败。末尾的 rmdir 会清除规划目录中残留的空 docs/。
移动前请与用户确认。
移动之后:
- 阅读项目的
README.md以及任何 Agent 指令文件(AGENTS.md、CLAUDE.md),以便实现遵循模板的约定 - 如果
docs/implementation-plan.md将其平台列为 "To be decided",请将 Platform 字段更新为所选平台,将任何双平台说明(例如 "questionnaire / SpeziQuestionnaire")裁剪为所选的那一侧 —— 包括 Feature List 的 Packages/Modules 列 —— 并从 Open Questions 中移除现已解决的平台问题 - 在模板项目中继续实现,而不是在原始规划目录中
输出
最后提供一个简短总结,包含:
- 所选平台(React Native 或 Apple-native)
- 选择它的原因(引用推动该决策的规划简报)
- 已完成或仍需要的机器设置步骤
- 项目目标位置
- 规划简报是否已移入项目
- 下一步:请编码 Agent 根据
docs/implementation-plan.md实现里程碑 1