Fitness Copilot - 🎃 Kiroween 2025

Published: (December 5, 2025 at 05:45 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Inspiration

What if you could snap a photo of your meal or workout and get instant, context‑aware feedback? Not just “that’s 500 calories” but “you’ve got 600 kcal left for today, and your leg workout is still pending.”

The idea originated from the desire to build something ambitious under hackathon constraints—stitching together incompatible systems so they cooperate. With proper guardrails, spec‑driven development, and tight steering docs, you can create features that would normally take weeks.

Fitness Copilot is an AI‑powered fitness tracking app that combines:

  • Vision‑based logging – Snap a photo of your meal or exercise, and Google Gemini Vision analyzes it.
  • Context‑aware coaching – The AI knows your training plan, today’s progress, and recent conversation before responding.
  • Validated tracking – All nutrition and exercise data is validated through Pydantic schemas before being stored in PostgreSQL.

Dual Interface

  • Monitor – A typical dashboard with fitness‑app metrics.
  • Chat – An interactive chat interface for unstructured input and coaching.

The system doesn’t just track—it understands the full situation and provides personalized guidance.

Product Discovery Phase

Before the spec‑driven stage, and in parallel with building guardrails, several interactions with Google Gemini AI Studio were crucial for deciding which features belong in the MVP.

  • Working on a Codex/Gemini‑like UI/UX lets you focus on the frontend and conduct a product discovery stage.
  • The full‑stack FastAPI template proved invaluable:
    • A README.md helps developers understand the project.
    • Steering commands from Kiro keep LLM‑human interaction consistent.
    • A polished task‑runner file (e.g., justfile) streamlines project workflows.

Even when following Spec‑Driven Development (SDD), drifts appear. After each slice, thorough testing is essential before moving on.

We used tight steering docs, inspired by Kiro’s “Stop Repeating Yourself” blog post and the /reflect / /verify patterns popular in the SDD ecosystem. Steering documents tell Kiro not only what to build but also what not to build, encoding architectural decisions as rules:

  • “CSV plans are immutable.”
  • “All calories must be validated.”
  • “Exercise names must come from an allowed list.”

Every major capability in the app has:

  • A requirements spec in .kiro/specs/...
  • Optional design notes
  • A clear mapping to tests or acceptance criteria

The FastAPI + React code is consistently generated or refactored under those specs:

  • Backend routes mirror spec sections.
  • Frontend types are derived from OpenAPI.
  • The Update DSL is treated as a first‑class contract.

This structure ensures that before writing any code you know exactly what “done” looks like. Specs become the source of truth, and Kiro generates implementations that match them.

Optional Design Notes

  • Compounding Context – Agent Hooks validate the stitching between frontend types and backend models, automatically updating documentation whenever the schema changes.
  • Manual vs. Automatic Hooks – Manual hooks are preferred during active development because they let you run validation when you’re ready, avoiding interruptions from automatic failures.

System Stitching Overview

AI Vision (flexible estimation)
   → Pydantic Validation (enforces schema & ranges)
   → PostgreSQL (stores structured data)

Natural language input
   → Two‑tier parser (keyword matching + LLM fallback)
   → Structured logs

Oracle Chat (adaptive, conversational) ↔️ Monitor Dashboard (rigid, mathematical)

The key innovation is context injection: before every AI request, we inject the user’s training plan, today’s progress, and recent conversation. The AI therefore sees more than a photo—it understands the full situation.

Future Work

  • Polish the initial user‑setup flow.
  • Remove hard‑coded paths.
  • Strengthen robustness against edge cases.
  • Improve context engineering for even better responses.
  • Add streaming support for video and audio responses.
  • Leverage the AI assistant for any training or nutrition questions.

Key Takeaways

  • SDD makes ambitious projects shippable under hackathon constraints.
  • Product discovery (AI Studio) → Guardrails (templates) → Implementation (specs + Kiro).
  • Steering docs prevent repeated mistakes by enforcing constraints.
  • Manual hooks > automatic hooks during active development.
  • Context injection is what makes AI feel alive and personalized.

References

  • Martin Fowler: Spec‑Driven Development with AI Tools
  • Kiro Blog: Stop Repeating Yourself

Built for Kiroween 2025

#codewithkiro #kiroween #specsnotcode

Back to Blog

Related posts

Read more Âť

saas IA news

!Cover image for saas IA newshttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazon...