惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
爱范儿
爱范儿
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
B
Blog
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
D
DataBreaches.Net
B
Blog RSS Feed
小众软件
小众软件
人人都是产品经理
人人都是产品经理
I
InfoQ
P
Proofpoint News Feed
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I built a local Garmin health archive with Claude. The to...
Wewoc · 2026-06-03 · via DEV Community

I read about an AI chat connector for Garmin data. Analyze your health data with an LLM, sounded useful. Then I read the fine print: your heart rate, sleep, and HRV land on another US company's server.

That was a no go.

So I built the thing myself. I'm a mechanical system designer with no programming background. My background is material flow and system design for automated warehouses — I define interfaces and module boundaries. The translation into Python syntax was never going to happen on my own.

That's where Claude came in. That escalated a bit.


The actual problem wasn't coding. It was context.

Claude.ai has token limits. That single constraint changed how I work.

In long chats Claude quietly begins to drift. It starts filling gaps from training data instead of from your actual project — and you don't always notice when it happens.

Same fix I'd use in any engineering project: document everything, hand over clean.

Every session starts with a START_PROMPT — a stable document that tells Claude what exists, how modules are structured, and what the rules are. When a chat gets long or the task is done, I open a new one and load the prompt again. Next chat starts from the same baseline.

NOTES track what happened inside a session — decisions taken, decisions not taken, open questions. Not for me to read later, but for the next Claude instance.

Anchors (OLD/NEW blocks) are how code changes get delivered. The old block, then the new block. Never a full file unless more than 30% changed. Forces precision on both sides.

The rule that makes all of it work: never implement without explicit instruction. Claude's failure mode is "question understood → solution built." The START_PROMPT says: assess first, explain, wait for confirmation, then build. That one rule helped more than anything else.


What got built

A local Python tool that archives Garmin Connect health data — raw intraday data, daily summaries, bulk import from GDPR export, HTML dashboards with personal baselines, weather and pollen context. Windows EXE, no Python installation required. Everything stored locally, nothing leaves the machine.

The architecture has a validator, quality assessment, encrypted token storage, a self-healing loop, five test suites, and a PyQt6 desktop app. I designed the architecture. Claude implemented it.


One thing that surprised me

Couldn't burn tokens on long messy chats, so I had to think before prompting. The architecture got cleaner because of that, not despite it. The constraint was the feature.

The major risk: working code and secure code aren't the same thing. I can't read the syntax myself and there's no reviewer. So I run the code through multiple models — Claude, Gemini, ChatGPT, others — and look for the intersection. When several flag the same issue independently, that's worth taking seriously. What comes out of that ends up in the roadmap.

The honest version: I have no way to know whether this is actually solid or just bullshit that happens to run. When I ask the AI it tells me it's impressive. That's not useful. Which is why refactoring and security review are permanent roadmap items — not failures, just the cost of building without a reviewer in the room.


GitHub: Garmin Local Archive

There's a MINDSET.md that explains how the collaboration actually worked — who had which idea, and why the architecture looks the way it does.