mcpField
S
spezi-platform-selection

spezi-platform-selection

github.com/stanfordspezi开发26110 次安装4 周前更新
代码仓库

关于 spezi-platform-selection

用于根据规划选择 Spezi 应用模板并准备项目的技能,涵盖平台决策、环境设置和规划文档迁移,供编码 Agent 延续实施。

主要功能

  1. 01选择 React Native 或 Apple-native
  2. 02引导配置开发环境
  3. 03生成或克隆 Spezi 模板
  4. 04迁移规划文档
  5. 05提供实施交接指导

适用场景

  1. 01使用 Spezi 模板启动已规划的应用
  2. 02决定采用跨平台还是 Apple-native 开发
  3. 03将规划简报带入新项目

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/stanfordspezi/spezivibe --skill spezi-platform-selection

安装后在 Claude Code 中输入/spezi-platform-selection确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
platform-decision.md
setup-guide.md
scripts/
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。

先询问

提出简洁的问题,以判断该应用主要属于:

  • 内容、表单、排程、聊天或跨平台工作流支持
  • 与 HealthKit、SensorKit、蓝牙外设、后台采集或其他 Apple 原生 SDK 深度集成

确认:

  1. 用户是谁
  2. 发布时是否需要支持 Android
  3. 该应用是仅限 iPhone,还是聚焦 Apple 平台
  4. 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/。

移动前请与用户确认。

移动之后:

  1. 阅读项目的 README.md 以及任何 Agent 指令文件(AGENTS.md、CLAUDE.md),以便实现遵循模板的约定
  2. 如果 docs/implementation-plan.md 将其平台列为 "To be decided",请将 Platform 字段更新为所选平台,将任何双平台说明(例如 "questionnaire / SpeziQuestionnaire")裁剪为所选的那一侧 —— 包括 Feature List 的 Packages/Modules 列 —— 并从 Open Questions 中移除现已解决的平台问题
  3. 在模板项目中继续实现,而不是在原始规划目录中

输出

最后提供一个简短总结,包含:

  • 所选平台(React Native 或 Apple-native)
  • 选择它的原因(引用推动该决策的规划简报)
  • 已完成或仍需要的机器设置步骤
  • 项目目标位置
  • 规划简报是否已移入项目
  • 下一步:请编码 Agent 根据 docs/implementation-plan.md 实现里程碑 1

评论

支持 Markdown