wellally-tech について
wellally-techは、個人の健康管理システム向けのデジタルヘルス連携スキルです。複数のサービスやファイルからデータを取り込み、WellAlly.techのナレッジベースの記事検索や健康データに基づく推薦に利用します。
主な機能
- 01Apple Health、Fitbit、Ouraのデータ取り込み
- 02CSV/JSONデータのマッピングと検証
- 03データをローカルJSON形式に変換
- 04健康テーマ別の記事検索
- 05健康データに基づく記事推薦
活用シーン
- 01複数サービスの健康記録の集約
- 02独自のCSVまたはJSONデータの取り込み
- 03睡眠や慢性疾患の情報検索
- 04健康データに応じた記事の提案
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huifer/ wellally-health --skill wellally-techインストール後、Claude Code で/wellally-techを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
data-sources.mdknowledge-base/chronic-disease.mdfitness.mdindex.mdmental-health.mdnutrition.mdsleep.md詳細
WellAlly デジタルヘルス連携
複数のデジタルヘルスデータソースを連携し、WellAlly.tech のナレッジベースに接続することで、個人向け健康管理システムにデータをインポートし、ナレッジを参照できるようにします。
主な機能
1. デジタルヘルスデータのインポート
- Apple Health(HealthKit):XML/ZIP ファイルの解析
- Fitbit:OAuth2 API 連携と CSV インポート
- Oura Ring:API v2 によるデータ同期
- 汎用インポート:フィールドマッピングによる CSV/JSON ファイルのインポート
2. WellAlly.tech ナレッジベース連携
- カテゴリ別記事インデックス:栄養、フィットネス、睡眠、メンタルヘルス、慢性疾患の管理
- インテリジェントな推奨:ユーザーの健康データに基づいて関連する記事を推奨
- URL 参照:WellAlly.tech プラットフォームへの直接リンクを提供
3. データの標準化
- 形式変換:外部データをローカルの JSON 形式に変換
- フィールドマッピング:異なるプラットフォームのデータフィールドをインテリジェントにマッピング
- データ検証:インポートしたデータの完全性と正確性を確保
4. インテリジェントな記事の推奨
- 健康状態の分析:ユーザーの健康データに基づいて分析
- 関連性のマッチング:ユーザーの健康状態に最も関連性の高い記事を推奨
- カテゴリ別ナビゲーション:健康に関するトピック別にナレッジベースの記事を整理
使用方法
起動条件
次のような状況についてユーザーから尋ねられた場合に、このスキルを使用します。
データのインポート:
- ✅ 「Apple Health から健康データをインポートして」
- ✅ 「Fitbit デバイスを接続して」
- ✅ 「Oura Ring のデータを同期して」
- ✅ 「健康データの CSV ファイルをインポートして」
- ✅ 「フィットネストラッカー/スマートウォッチのデータをインポートする方法は?」
ナレッジベースの検索:
- ✅ 「WellAlly プラットフォームの高血圧に関する記事」
- ✅ 「健康管理に役立つ読み物をいくつかおすすめして」
- ✅ 「私の健康データに基づいて記事をおすすめして」
- ✅ 「WellAlly ナレッジベースの睡眠に関する記事」
- ✅ 「血圧を改善する方法は?(ナレッジベースを確認して)」
データ管理:
- ✅ 「利用可能な健康データソースを教えて」
- ✅ 「異なるプラットフォームの健康データを統合して」
- ✅ 「インポートした外部データを表示して」
実行手順
ステップ 1:ユーザーの意図を特定する
ユーザーが何を求めているかを判断します。
- データのインポート:外部の健康プラットフォームからデータをインポートする
- ナレッジベースの検索:WellAlly.tech 関連の記事を検索する
- 推奨の取得:健康データに基づいて記事を推奨する
- データ管理:インポートした外部データを表示または管理する
ステップ 2:データインポートのワークフロー
ユーザーがデータのインポートを希望する場合:
2.1 データソースを特定する
const dataSource = identifySource(userInput);
// Possible returns: "apple-health", "fitbit", "oura", "generic-csv", "generic-json"
2.2 外部データを読み込む データソースの種類に応じて、適切なインポートスクリプトを使用します。
// Apple Health
const appleHealthData = readAppleHealthExport(exportPath);
// Fitbit
const fitbitData = fetchFitbitData(dateRange);
// Oura Ring
const ouraData = fetchOuraData(dateRange);
// Generic CSV/JSON
const genericData = readGenericFile(filePath, mappingConfig);
2.3 データのマッピングと変換 外部データをローカル形式にマッピングします。
// Example: Apple Health steps mapping
function mapAppleHealthSteps(appleRecord) {
return {
date: formatDateTime(appleRecord.startDate),
steps: parseInt(appleRecord.value),
source: "Apple Health",
device: appleRecord.sourceName
};
}
// Save to local file
saveToLocalFile("data/fitness/activities.json", mappedData);
2.4 データを検証する
function validateImportedData(data) {
// Check required fields
// Validate data types
// Check data ranges
// Ensure correct time format
return {
valid: true,
errors: [],
warnings: []
};
}
2.5 インポートレポートを生成する
const importReport = {
source: dataSource,
import_date: new Date().toISOString(),
records_imported: {
steps: 1234,
weight: 30,
heart_rate: 1200,
sleep: 90
},
date_range: {
start: "2025-01-01",
end: "2025-01-22"
},
validation: validationResults
};
ステップ 3:ナレッジベース検索のワークフロー
ユーザーがナレッジベースの検索を希望する場合:
3.1 検索トピックを特定する
const topic = identifyTopic(userInput);
// Possible returns: "nutrition", "fitness", "sleep", "mental-health", "chronic-disease", "hypertension", "diabetes", etc.
3.2 関連記事を検索する ナレッジベースのインデックスから関連記事を検索します。
function searchKnowledgeBase(topic) {
// Read knowledge base index
const kbIndex = readFile('.claude/skills/wellally-tech/knowledge-base/index.md');
// Find matching articles
const articles = kbIndex.categories.filter(cat =>
cat.tags.includes(topic) || cat.keywords.includes(topic)
);
return articles;
}
3.3 記事のリンクを返す
const results = {
topic: topic,
articles: [
{
title: "Hypertension Monitoring and Management",
url: "https://wellally.tech/knowledge-base/chronic-disease/hypertension-monitoring",
category: "Chronic Disease Management",
description: "Learn how to effectively monitor and manage blood pressure"
},
{
title: "Blood Pressure Lowering Strategies",
url: "https://wellally.tech/knowledge-base/chronic-disease/bp-lowering-strategies",
category: "Chronic Disease Management",
description: "Improve blood pressure levels through lifestyle changes"
}
],
total_found: 2
};
ステップ 4:インテリジェントな推奨のワークフロー
ユーザーがパーソナライズされた推奨を希望する場合:
4.1 ユーザーの健康データを読み込む
// Read relevant health data
const profile = readFile('data/profile.json');
const bloodPressure = glob('data/blood-pressure/**/*.json');
const sleepRecords = glob('data/sleep/**/*.json');
const weightHistory = profile.weight_history || [];
4.2 健康状態を分析する
function analyzeHealthStatus(data) {
const status = {
concerns: [],
good_patterns: []
};
// Analyze blood pressure
if (data.blood_pressure?.average > 140/90) {
status.concerns.push({
area: "blood_pressure",
severity: "high",
condition: "Hypertension",
value: data.blood_pressure.average
});
}
// Analyze sleep
if (data.sleep?.average_duration < 6) {
status.concerns.push({
area: "sleep",
severity: "medium",
condition: "Sleep Deprivation",
value: data.sleep.average_duration + " hours"
});
}
// Analyze weight trend
if (data.weight?.trend === "increasing") {
status.concerns.push({
area: "weight",
severity: "medium",
condition: "Weight Gain",
value: data.weight.change + " kg"
});
}
// Identify good patterns
if (data.steps?.average > 8000) {
status.good_patterns.push({
area: "activity",
description: "Daily average steps over 8000",
value: data.steps.average
});
}
return status;
}
4.3 関連記事を推奨する
function recommendArticles(healthStatus) {
const recommendations = [];
for (const concern of healthStatus.concerns) {
const articles = findArticlesForCondition(concern.condition);
recommendations.push({
condition: concern.condition,
severity: concern.severity,
articles: articles
});
}
return recommendations;
}
4.4 推奨レポートを生成する
const recommendationReport = {
generated_at: new Date().toISOString(),
health_status: healthStatus,
recommendations: recommendations,
total_articles: recommendations.reduce((sum, r) => sum + r.articles.length, 0)
};
出力形式
データインポートの出力
✅ Data Import Successful
Data Source: Apple Health
Import Time: 2025-01-22 14:30:00
Import Records Statistics:
━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Step Records: 1,234 records
⚖️ Weight Records: 30 records
❤️ Heart Rate Records: 1,200 records
😴 Sleep Records: 90 records
Data Time Range: 2025-01-01 to 2025-01-22
━━━━━━━━━━━━━━━━━━━━━━━━━━
💾 Data Saved To:
• data/fitness/activities.json (steps)
• data/profile.json (weight history)
• data/fitness/heart-rate.json (heart rate)
• data/sleep/sleep-records.json (sleep)
⚠️ Validation Warnings:
• 3 step records missing timestamps, used default values
• 1 weight record abnormal (<20kg), skipped
💡 Next Steps:
• Use /health-trend to analyze imported data
• Use /wellally-tech for personalized article recommendations
ナレッジベース検索の出力
📚 WellAlly Knowledge Base Search Results
Search Topic: Hypertension Management
Articles Found: 2
━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Hypertension Monitoring and Management
Category: Chronic Disease Management
Link: https://wellally.tech/knowledge-base/chronic-disease/hypertension-monitoring
Description: Learn how to effectively monitor and manage blood pressure
2. Blood Pressure Lowering Strategies
Category: Chronic Disease Management
Link: https://wellally.tech/knowledge-base/chronic-disease/bp-lowering-strategies
Description: Improve blood pressure levels through lifestyle modifications
━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 Related Topics:
• Diabetes Management
• Cardiovascular Health
• Medication Adherence
💡 Tips:
Click links to visit [WellAlly.tech](https://www.wellally.tech/) platform for full articles
インテリジェントな推奨の出力
💡 Article Recommendations Based on Your Health Data
Generated Time: 2025-01-22 14:30:00
━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Attention Needed: Blood Pressure Management
━━━━━━━━━━━━━━━━━━━━━━━━━━
Current Status: Average blood pressure 142/92 mmHg (elevated)
Recommended Articles:
1. Hypertension Monitoring and Management
https://wellally.tech/knowledge-base/chronic-disease/hypertension-monitoring
2. Blood Pressure Lowering Strategies
https://wellally.tech/knowledge-base/chronic-disease/bp-lowering-strategies
3. Antihypertensive Medication Adherence Guide
https://wellally.tech/knowledge-base/chronic-disease/medication-adherence
━━━━━━━━━━━━━━━━━━━━━━━━━━
🟡 Attention Needed: Sleep Improvement
━━━━━━━━━━━━━━━━━━━━━━━━━━
Current Status: Average sleep duration 5.8 hours (insufficient)
Recommended Articles:
1. Sleep Hygiene Basics
https://wellally.tech/knowledge-base/sleep/sleep-hygiene
2. Improve Sleep Quality
https://wellally.tech/knowledge-base/sleep/sleep-quality-improvement
━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Keep Up: Daily Activity
━━━━━━━━━━━━━━━━━━━━━━━━━━
Current Status: Daily average steps 9,234 (good)
Related Reading:
1. Maintain Active Lifestyle
https://wellally.tech/knowledge-base/fitness/active-lifestyle
━━━━━━━━━━━━━━━━━━━━━━━━━━
Summary: 5 related articles recommended
Visit [WellAlly.tech](https://www.wellally.tech/) Knowledge Base for full content
データソース
外部データソース
| データソース | 種類 | インポート方法 | データ内容 |
|---|---|---|---|
| Apple Health | ファイルインポート | XML/ZIP の解析 | 歩数、体重、心拍数、睡眠、ワークアウト |
| Fitbit | API/CSV | OAuth2 または CSV | アクティビティ、心拍数、睡眠、体重 |
| Oura Ring | API | OAuth2 | 睡眠ステージ、レディネス、心拍変動 |
| 汎用 CSV | ファイルインポート | フィールドマッピング | カスタム健康データ |
| 汎用 JSON | ファイルインポート | フィールドマッピング | カスタム健康データ |
ローカルデータファイル
| ファイルパス | データ内容 | ソースの対応関係 |
|---|---|---|
data/profile.json | プロフィール、体重の履歴 | Apple Health、Fitbit、Oura |
data/fitness/activities.json | 歩数、アクティビティデータ | Apple Health、Fitbit、Oura |
data/fitness/heart-rate.json | 心拍数の記録 | Apple Health、Fitbit、Oura |
data/sleep/sleep-records.json | 睡眠の記録 | Apple Health、Fitbit、Oura |
data/fitness/recovery.json | 回復データ | Oura Ring(レディネス) |
WellAlly.tech ナレッジベース
ナレッジベースの構成
栄養と食事(knowledge-base/nutrition.md)
- 食事管理のガイドライン
- 食品の栄養に関する質問
- 食事の推奨事項
- 特別な食事のニーズ
フィットネスと運動(knowledge-base/fitness.md)
- 運動記録のベストプラクティス
- アクティビティの推奨事項
- 運動データの解釈
- トレーニングプラン
睡眠の健康(knowledge-base/sleep.md)
- 睡眠の質の分析
- 睡眠改善の戦略
- 睡眠障害の概要
- 睡眠衛生
メンタルヘルス(knowledge-base/mental-health.md)
- ストレス管理のテクニック
- 気分の記録の解釈
- メンタルヘルスのリソース
- マインドフルネスの実践
慢性疾患の管理(knowledge-base/chronic-disease.md)
- 高血圧のモニタリング
- 糖尿病の管理
- COPD のケア
- 服薬の遵守
記事の推奨マッピング
const articleMapping = {
"Hypertension": [
"chronic-disease/hypertension-monitoring",
"chronic-disease/bp-lowering-strategies"
],
"Diabetes": [
"chronic-disease/diabetes-management",
"nutrition/diabetic-diet"
],
"Sleep Deprivation": [
"sleep/sleep-hygiene",
"sleep/sleep-quality-improvement"
],
"Weight Gain": [
"nutrition/healthy-diet",
"nutrition/calorie-management"
],
"High Stress": [
"mental-health/stress-management",
"mental-health/mindfulness"
]
};
インテグレーションガイド
Apple Health のインポート
エクスポート手順:
- iPhone で「ヘルスケア」アプリを開きます
- 右上のプロフィールアイコンをタップします
- 一番下までスクロールし、「すべてのヘルスケアデータを書き出す」をタップします
- エクスポートが完了するまで待ち、共有方法を選択します
- エクスポートされた ZIP ファイルを保存します
インポート手順:
python scripts/import_apple_health.py ~/Downloads/apple_health_export.zip
Fitbit のインテグレーション
API インテグレーション:
- Fitbit Developer Platform でアプリを作成します
- CLIENT_ID と CLIENT_SECRET を取得します
- OAuth 認証フローを実行します
- アクセストークンを保存します
データのインポート:
python scripts/import_fitbit.py --api --days 30
CSV のインポート:
python scripts/import_fitbit.py --csv fitbit_export.csv
Oura Ring のインテグレーション
API インテグレーション:
- Oura Developer Platform でアプリを作成します
- Personal Access Token を取得します
- インポートスクリプトでトークンを設定します
データのインポート:
python scripts/import_oura.py --date-range 2025-01-01 2025-01-22
汎用 CSV/JSON のインポート
CSV のインポート:
python scripts/import_generic.py health_data.csv --mapping mapping_config.json
マッピング設定の例(mapping_config.json):
{
"date": "Date",
"steps": "Step Count",
"weight": "Weight (kg)",
"heart_rate": "Resting Heart Rate"
}
セキュリティとプライバシー
必ず遵守すること
- ❌ データを外部サーバーにアップロードしないでください(API 同期を除く)
- ❌ API の認証情報をコードにハードコードしないでください
- ❌ ユーザーのアクセストークンを共有しないでください
- ✅ インポートしたデータはすべてローカルのみに保存します
- ✅ OAuth の認証情報は暗号化して保存します
- ✅ ユーザーの明示的な許可を得てからインポートします
データの検証
- ✅ インポートしたデータの型と範囲を検証します
- ✅ 異常値(例:負の歩数)を除外します
- ✅ データソースの情報を保持します
- ✅ タイムゾーンの変換を処理します
エラー処理
ファイル読み込みの失敗:
- 「ファイルを読み取れません。ファイルパスと形式を確認してください」と出力します
- 正しいファイル形式の例を提示します
- データを再エクスポートするよう提案します
API 呼び出しの失敗:
- 「API 呼び出しに失敗しました。ネットワーク接続と認証情報を確認してください」と出力します
- OAuth の再認証方法を案内します
- CSV のインポート方法に切り替えます
データ検証の失敗:
- 「データ形式が正しくありません。無効なレコードをスキップしました」と出力します
- スキップしたレコード数を記録します
- 有効なデータの処理を続行します
関連コマンド
/health-trend:健康状態の傾向を分析します(インポートしたデータを使用)/sleep:睡眠データを記録します/diet:食事データを記録します/fitness:運動データを記録します/profile:個人プロフィールを管理します
技術的な実装
ツールの制限
このスキルでは、以下のツールのみを使用します。
- Read:外部データファイルと設定を読み取ります
- Grep:データパターンを検索します
- Glob:データファイルを検索します
- Write:インポートしたデータをローカルの JSON ファイルに保存します
Python の依存関係
インポートスクリプトで必要になる可能性のある Python パッケージ:
# Apple Health
import xml.etree.ElementTree as ET
import zipfile
# Fitbit/Oura
import requests
# Generic Import
import csv
import json
パフォーマンスの最適化
- 差分読み込み:指定した期間内のデータのみをインポートします
- データの重複排除:同じ日のデータを重複してインポートしないようにします
- バッチ書き込み:パフォーマンス向上のため、データをまとめて保存します
- エラー復旧:中断した箇所から再開できるようにします
使用例
例 1:Apple Health データをインポートする
ユーザー:「Apple Health からフィットネストラッカーのデータをインポートして」 出力:インポートのワークフローを実行し、インポートレポートを生成します
例 2:ナレッジベースを検索する
ユーザー:「WellAlly プラットフォームの睡眠に関する記事」 出力:睡眠関連のナレッジベース記事へのリンクを返します
例 3:パーソナライズされたおすすめを取得する
ユーザー:「自分の健康データに基づいて記事をおすすめして」 出力:健康データを分析し、関連する記事をおすすめします
例 4:一般的な CSV をインポートする
ユーザー:「この CSV 健康データファイル health.csv をインポートして」 出力:CSV を解析してフィールドをマッピングし、ローカルに保存します
拡張性
新しいデータソースの追加
integrations/ディレクトリに新しい連携ガイドを作成しますscripts/ディレクトリに新しいインポートスクリプトを作成しますdata-sources.mdのドキュメントを更新します- SKILL.md に使用方法を追加します
新しいナレッジベースカテゴリの追加
knowledge-base/ディレクトリに新しいカテゴリファイルを作成します- 関連記事へのリンクを追加します
knowledge-base/index.mdを更新します- 記事のおすすめのマッピングを更新します
参考リソース
- WellAlly.tech:https://www.wellally.tech/
- WellAlly ナレッジベース:https://wellally.tech/knowledge-base/
- WellAlly ブログ:https://wellally.tech/blog/
- Apple HealthKit:https://developer.apple.com/documentation/healthkit
- Fitbit API:https://dev.fitbit.com/
- Oura Ring API:https://cloud.ouraring.com/api/
よくある質問
Q:インポートしたデータによって既存のデータは上書きされますか? A:いいえ。インポートしたデータは既存のデータに追加され、上書きされません。重複データは自動的に排除されます。
Q:複数のプラットフォームからデータをインポートできますか? A:はい。Apple Health、Fitbit、Oura など複数のプラットフォームから同時にデータをインポートでき、システムがすべてのデータを統合します。
Q:WellAlly.tech のナレッジベース記事はオフラインで利用できますか? A:いいえ。ナレッジベース記事は URL を通じて参照するため、WellAlly.tech プラットフォームにアクセスするにはネットワーク接続が必要です。
Q:API 認証情報はどこに保存されますか? A:API 認証情報は暗号化されてローカルの設定ファイルに保存され、サーバーにはアップロードされません。