How SpeziVibe Works
SpeziVibe is a set of installable planning skills that walk you through the decisions a digital health app needs — clinical need, compliance, data model, UX, study design — and produce a folder of structured markdown briefs.
When the plan is ready, your AI coding agent reads those briefs and writes the code inside a Spezi template repo.
The Workflow
- Plan first. Open your AI coding tool in any working directory and run the planning skills. They ask you questions and write briefs into
docs/planning/. Run only the ones that fit your project —build-an-appcan orchestrate the right ones based on what you describe. - Sequence the build.
app-build-plannerreads the briefs and producesdocs/implementation-plan.md— a milestone-by-milestone build plan. - Choose a platform and clone the template.
spezi-platform-selectionpicks React Native or Apple-native based on what your planning revealed, clones the matching Spezi template, and brings your planning docs along so they're inside the cloned repo. - Build, one milestone at a time. Inside the cloned template, tell your coding agent: "Implement Milestone 1 from
docs/implementation-plan.md." It uses your planning briefs as context and the template's existing patterns as scaffolding to write the code. - Ship. Generate changelogs and release notes. Maintain a
project-wikiof accumulated knowledge as the project grows.
Mental Model
The planning skills produce the brief. Your coding agent produces the code.
The briefs are the bridge — clear, structured decisions an agent can ground itself in instead of guessing. The Spezi template gives the agent battle-tested architecture, modules, and patterns to build on top of.
You don't clone the template until you're ready to build. Planning is platform-agnostic on purpose — a need statement, compliance brief, or FHIR data model shouldn't change based on whether you eventually pick React Native or Apple-native.
Where Files Live
Before cloning, briefs live in your working directory:
my-planning/
└─ docs/
├─ planning/
│ ├─ need-statement.md
│ ├─ compliance-brief.md
│ ├─ ux-brief.md
│ ├─ data-model-brief.md
│ ├─ fhir-data-model.md
│ └─ study-brief.md
└─ implementation-plan.md
After spezi-platform-selection clones the template and brings planning along, your project looks like:
my-app/ ← cloned Spezi template
├─ docs/
│ ├─ planning/ ← moved in from your planning directory
│ └─ implementation-plan.md
├─ src/ ← your agent writes code here
└─ ... ← template scaffolding
Commit docs/planning/ and docs/implementation-plan.md to source control. The agent — and future contributors — will keep coming back to them.
Building Without a Spezi Template
The Spezi templates are recommended scaffolding, not a requirement. The planning briefs and implementation plan are platform-agnostic markdown — your AI coding agent can build from them in any project:
- A blank Expo / React Native project
- A blank Xcode / SwiftUI project
- An existing repo you already have
- A different framework entirely (Flutter, Kotlin, web, etc.)
To skip the template path:
- Run the planning skills in any working directory.
- Skip
spezi-platform-selection, or run it just for the platform recommendation and clone manually into a project of your choice. - Open your project in your AI coding tool.
- Tell the agent: "Read
docs/planning/anddocs/implementation-plan.md. Implement Milestone 1 in this codebase."
Your agent uses the briefs as context and writes code in whatever stack you're working in. You give up the Spezi-specific scaffolding — pre-wired onboarding/consent flows, HealthKit integration, FHIR mappings, design tokens — and your agent will rebuild those from scratch (or skip them). The trade is more flexibility for more work.
When this makes sense:
- You're extending an existing app
- Your stack is outside React Native or Apple-native
- You want full control over architecture decisions
- You're prototyping and don't need production-grade scaffolding yet
When in doubt, use a template. It's the faster path to a working app.
Why Stop at Markdown?
The planning skills deliberately don't generate code. A milestone in implementation-plan.md might say:
Build a medication list view that reads from Firestore, follows the design tokens in the Spezi template, and handles offline cache.
That's specific enough for a modern AI coding agent to execute, and flexible enough that it can adapt to your team's conventions, evolving requirements, and new Spezi modules as they ship.
Code generators get stale. A precise plan + a smart agent + a maintained template stays current.