Add AI agent onboarding with returning athlete flow - #377
Conversation
Introduce infrastructure for existing athletes to re-engage through the AI agent: confirm their data, update profiles, or submit new biomarker results. Adds per-season participation tracking with cycle stats. New files: - CycleParticipationDataService: SQLite table + service for tracking participation per season (confirm/update/new_results) - AthleteConfirmationData: request model for confirm endpoint - AgentController, ApplicationService, AgentApplicationDataService: agent API with apply, confirm, status, and cycle-stats endpoints - lwc-apply.md skill with returning athlete confirmation flow, lab file reading, and auto-detection of existing athletes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skill updates (SKILL.md + lwc-apply.md): - v3.1: effectiveDisplayName, suggestions[], sanitized errors - v3.2: Biomarker range warnings, incomplete set detection - v3.3: Lab report vision extraction (unit conversions, aliases, confidence) - v3.4: International lab coverage (PT/BR, Indian, German, app-based) - v3.5: Expanded aliases (German, Spanish, British, Australian) - v3.6: Russian lab support (Cyrillic aliases, INVITRO provider, "Previous result" column trap, CRP detection-limit rule fix) Backend: Enhanced AgentController endpoints (warnings, suggestions, effectiveDisplayName), CycleParticipationDataService improvements, ApplicationReviewer updates, DailyJob backfill integration. Tested across 21 international labs, 10 athletes, ~167 biomarkers with ~97% extraction rate and ~98% match rate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts: # LongevityWorldCup.Website/Controllers/ApplicationController.cs # LongevityWorldCup.Website/wwwroot/onboarding/join-game.html
The Notify endpoint uses fire-and-forget Task.Run for webhooks but never awaits directly. Changed signature from async to synchronous with Task.FromResult returns. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
concept review of the skills
This should be useful and the main point in the skill, but the same question stands I asked in dm: aren't we too early for this? i mean how do you imagine people applying to LWC through AI agents? Not the workflow, but the very first step: them thinking of doing that in the first place? How do you get LWC to people who have an agent?
This comes after an AI agent user have applied already, so this is for completeness. It relies upon the first question.
This is inevitable as it's good UX, but very problematic at this point. I'm already using an AI to check people's labs and it's making mistakes. However since the labs must be filled manually I can always check the diff between what the user typed and the AI extracted and that way I only have to check the mistakes manually. This feature would take out the human in the loop in a critical part where mistakes aren't allowed, so I don't see a way to go forward with this.
Again, this is good, but assumes agent user athletes, so the fundamental original question still stands.
Same comment. Good, but presupposes agent users. |
|
When it comes to questions that lean more toward business strategy:
Being early can be an advantage. And in this case, we’re definitely not first. It takes one prompt to discover companies already integrating AI agents into user workflows. This shift is already happening.
It starts with competitive, performance-driven individuals — the kind of people who want to stand out. These users already rely on AI agents for daily tasks: morning briefings, email management, research summaries, scheduling. LWC can teach existing users about the new way of applying(or even new ways of managing longevity increasing habits via the AI based LWC UX), and ask for feedback that counts toward product-feature validation. It will be good because they could mention LWC to friends when they spread the word about using AI agents connected to their personal computer or the dedicated mac mini that is quite popular these days. Research shows email is one of the primary use cases for AI agents today. That matters. Anyone who sends emails is already a potential integration point. LWC becomes a “skill” or capability inside the agent ecosystem. If users are delegating communication, research, and administrative tasks to their AI, applying to LWC fits naturally into that behavior. It’s not a new habit — it’s an extension of an existing one. Over time, this becomes normal. Instead of manually handling paperwork, people will instruct their AI to:
The shift isn’t whether this happens — it’s how quickly. So the real question isn’t “Are we too early?”
That means:
That’s how you get LWC to people who have an agent, and also reducing the friction (if the person trusts AI) when applying. So maybe in certain countries the skill will be used more often than in others. That would be my hint when looking at the usage data, and feedbacks are super appreciated too, specially if there are users rejoining LWC but they don't want to bother to manually type a whole form out. "A prompt away" just seams better and data will prove that in the context of LWC 2026. Potential partnerships: apps that use AI to store/manage health data. With a skill, the application to LWC can start from within other platforms, if there is a good strategic partnership development going on. Examples: https://www.longevity-ai.com/ |
Summary
/lwc-apply) -- conversational application flow via Claude Code / OpenClaw that walks users through biomarker entry, PhenoAge calculation, profile creation, image handling, and API submissionGET /api/agent/athlete/{slug}andPOST /api/agent/confirmCycleParticipationDataServicetracks per-season engagement (new applications, confirmations, updates, new results)AgentControllerendpoints andAgentApplicationDataServiceNew files
Controllers/AgentController.csBusiness/ApplicationService.csBusiness/AgentApplicationDataService.csBusiness/CycleParticipationDataService.csBusiness/AgentApplicantData.csBusiness/AthleteConfirmationData.cswwwroot/onboarding/agent-apply.htmlskills/longevity-world-cup/SKILL.md.claude/commands/lwc-apply.mdCLAUDE.mdModified files
Program.cs-- DI registration for new servicesDailyJob.cs-- token cleanup + season backfilljoin-game.html-- added "Apply via AI Agent" buttonApplicationReviewer/Program.cs-- enhanced review toolingConfig.cs,SeasonFinalizerService.cs-- minor supporting changesLab report extraction accuracy
Tested across 21 international labs (US, AU, CZ, DE, BR, SG, IN, IS, LV, RU, UAE), 10 athletes, ~167 biomarkers: ~97% extraction rate, ~98% match rate.
How to Test the AI Skill
The skill can be tested through three clients. Each uses the same backend API but loads the skill instructions differently.
Prerequisites (all clients)
Clone this branch and run the server locally:
The server starts at
https://localhost:5001(orhttp://localhost:5000).Verify the API endpoints are working:
Client 1: Claude Code (slash command)
What it uses:
.claude/commands/lwc-apply.mdSetup:
cdinto the project directory (where.claude/commands/lives)Test steps:
/lwc-apply http://localhost:5000Albumin 45 g/L, Creatinine 80 umol/L, Glucose 5.2 mmol/L, CRP 0.5 mg/L, WBC 5.5, Lymphocytes 35%, MCV 88 fL, RDW 12.5%, ALP 65 U/L. Test date: 2025-06-151985-03-20Name: Test Athlete, Division: Men's, Flag: United States, Email: test@test.com/api/data/divisions,/api/data/flags), confirms/api/agent/apply, returns tracking token/api/agent/status/{token}, shows "pending"Test returning athlete flow:
/lwc-apply http://localhost:5000GET /api/data/athletes, finds match, callsGET /api/agent/athlete/nopara73/api/agent/confirmwithaction: "confirm"Test lab report reading:
/lwc-applyand reach Step 2 (biomarkers)/path/to/lab-report.jpgClient 2: OpenClaw (skill)
What it uses:
skills/longevity-world-cup/SKILL.mdSetup:
skills/longevity-world-cup/SKILL.mdfrom theskills/folder.clawhub install longevity-world-cupskills/longevity-world-cup/to~/.openclaw/skills/Verify skill is loaded:
openclaw skills list # Should show: longevity-world-cup - Apply to the Longevity World Cup via conversational AITest steps (via any connected channel -- Discord, Telegram, Slack, WhatsApp, or CLI):
longevity-world-cupskill, agent greets with introcurlto the API, returns tracking tokenNote: OpenClaw's skill uses
curlfor API calls (declared inrequires.bins), while Claude Code's slash command uses the Bash tool. The conversation flow and validation logic are identical.Client 3: Web Page (manual + link to AI agents)
What it uses:
wwwroot/onboarding/agent-apply.htmlTest steps:
http://localhost:5000/onboarding/join-game.html/onboarding/agent-apply.html/lwc-apply), OpenClaw (clawhub install), Manual Application/api/agent/status/{token}, displays result (pending/approved/rejected)API Endpoint Verification (all clients)
These endpoints should all work regardless of which client is used:
Test plan
dotnet buildcompiles with 0 errors, 0 warningsGET /api/agent/athlete/nopara73returns full profile with PhenoAgePOST /api/agent/applycreates application with tracking tokenGET /api/agent/status/{token}returns application statusPOST /api/agent/confirmwith action "confirm" records participationGET /api/agent/cycle-statsreturns season statistics/lwc-applytriggers the full application flowskills/folder and handles new + returning athletesagent-apply.htmlshows all 3 options and status checker works🤖 Generated with Claude Code