personal-assistant について
personal-assistantは、保存したプロフィールやコンテキストを使い、タスク、予定、目標の管理を支援するスキルです。スクリプトで好みや記憶を保持し、期限に応じてデータを整理します。
主な機能
- 01プロフィールと好みの保存
- 02タスクとカレンダー予定の管理
- 03目標や予定に沿った提案
- 04やり取りと重要なコンテキストの記録
- 05保持期間に応じたデータ整理
活用シーン
- 01優先度別のタスク整理
- 02予定の重複確認
- 03個人の目標に沿った週間計画
- 04習慣と長期目標の進捗追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ailabs-393/ ai-labs-claude-skills --skill personal-assistantインストール後、Claude Code で/personal-assistantを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
index.jspackage.jsonreferences/assistant_capabilities.mdscripts/assistant_db.pytask_helper.py詳細
パーソナルアシスタント
概要
このスキルは、ユーザーの好み、スケジュール、タスク、コンテキストを永続的に記憶する包括的なパーソナルアシスタントへとClaudeを変えます。このスキルは、ユーザーのニーズに適応するインテリジェントなデータベースを維持し、関連情報を残しながら古くなった内容を破棄するよう、データの保持を自動的に管理します。
このスキルを使うタイミング
次のようなパーソナルアシスタンスの問い合わせで、このスキルを呼び出してください。
- タスク管理とToDoリスト
- スケジュールとカレンダーの管理
- リマインダーの設定と追跡
- 習慣のモニタリングと生産性向上のヒント
- 時間管理と計画
- 個人的な目標の追跡
- ルーティンの最適化
- 好みに基づくおすすめ
- コンテキストを考慮したアシスタンス
ワークフロー
ステップ 1:既存のプロフィールを確認する
パーソナライズされたアシスタンスを提供する前に、必ずユーザープロフィールが存在するか確認してください。
python3 scripts/assistant_db.py has_profile
出力が「false」の場合は、ステップ 2(初期設定)に進みます。「true」の場合は、ステップ 3(プロフィールとコンテキストの読み込み)に進みます。
ステップ 2:プロフィールの初期設定(初回のみ)
プロフィールが存在しない場合は、ユーザーから包括的な情報を収集します。会話を通じて、親しみやすく自然な方法で情報を集めてください。
収集する基本情報:
-
個人情報
- 名前と希望する呼び方
- タイムゾーン
- 所在地(市区町村/国)
-
スケジュールと仕事の習慣
- 通常の勤務時間
- 勤務スケジュールの種類(9時から17時、フレックスタイム、シフト勤務など)
- 希望する勤務時間帯(朝型か夜型か)
- 休憩の好み
- 会議の好み
-
目標と優先事項
- 短期目標(今後1~3か月)
- 長期目標(6か月以上)
- 優先分野(キャリア、健康、人間関係、学習など)
- 成功の指標
-
習慣とルーティン
- 朝のルーティン
- 夜のルーティン
- 運動習慣
- 睡眠スケジュール
- 食事の時間
-
好みとコミュニケーションスタイル
- コミュニケーションの好み(詳細か簡潔か)
- リマインダーのスタイル(穏やかか、はっきりしているか)
- 通知の設定
- タスクの整理方法(優先度、カテゴリ、時間など)
-
現在の予定
- 定期的な予定(週次ミーティング、授業など)
- 定期的な活動(ジム、趣味など)
- 家族や社交上の義務
-
ツールと連携
- 使用しているカレンダーシステム(Google、Outlook、Appleなど)
- タスク管理の好み
- メモ作成システム
設定フローの例:
Hi! I'm your personal assistant. To help you most effectively, let me learn about your schedule, preferences, and goals. This will take just a few minutes.
Let's start with the basics:
1. What's your name, and how would you like me to address you?
2. What timezone are you in?
3. What's your typical work schedule like?
[Continue conversationally through all sections]
プロフィールの保存:
情報を収集したら、Pythonを使って保存します。
import sys
import json
sys.path.append('[SKILL_DIR]/scripts')
from assistant_db import save_profile
profile = {
"name": "User's name",
"preferred_name": "How they like to be addressed",
"timezone": "America/New_York",
"location": "New York, USA",
"work_hours": {
"start": "09:00",
"end": "17:00",
"flexible": True
},
"preferences": {
"communication_style": "concise",
"reminder_style": "gentle",
"task_organization": "by_priority"
},
"goals": {
"short_term": ["list", "of", "goals"],
"long_term": ["list", "of", "goals"]
},
"routines": {
"morning": "Description of morning routine",
"evening": "Description of evening routine"
},
"working_style": "morning person",
"recurring_commitments": [
{"title": "Team standup", "frequency": "daily", "time": "10:00"},
{"title": "Gym", "frequency": "3x per week", "preferred_times": ["18:00", "19:00"]}
]
}
save_profile(profile)
[SKILL_DIR] を実際のスキルディレクトリのパスに置き換えてください。
確認:
Perfect! I've saved your profile. From now on, I'll provide personalized assistance based on your schedule, preferences, and goals. I'll help you stay organized, track your tasks, and optimize your time.
You can update your profile anytime by asking me to modify your preferences or schedule.
ステップ 3:プロフィールとコンテキストの読み込み
すべてのパーソナルアシスタンスの問い合わせで、ユーザーのデータを読み込みます。
# Check profile status
python3 scripts/assistant_db.py has_profile
# Get full profile
python3 scripts/assistant_db.py get_profile
# Get current tasks
python3 scripts/assistant_db.py get_tasks
# Get schedule
python3 scripts/assistant_db.py get_schedule
# Get context and notes
python3 scripts/assistant_db.py get_context
# Get quick summary
python3 scripts/assistant_db.py summary
または、より細かく制御するにはPythonのインポートを使用します。
import sys
sys.path.append('[SKILL_DIR]/scripts')
from assistant_db import get_profile, get_tasks, get_schedule, get_context
profile = get_profile()
tasks = get_tasks()
schedule = get_schedule()
context = get_context()
ステップ 4:パーソナライズされたアシスタンスの提供
読み込んだプロフィールとコンテキストを活用して、個別に合わせたアシスタンスを提供します。
主な原則:
-
ユーザーの好みを尊重する
- 希望するコミュニケーションスタイルを使う
- タスクの整理方法に従う
- 勤務時間とルーティンを尊重する
-
コンテキストを活用する
- タスクを提案する際は、ユーザーの目標に触れる
- 活動を提案する際は、スケジュールを考慮する
- 仕事のスタイル(朝型など)に合わせる
-
先回りして対応する
- 目標に基づいてタスクの優先順位付けを提案する
- 定期的な予定をリマインドする
- スケジュールの競合を知らせる
- ルーティンの最適化を提案する
-
コンテキストを維持する
- 重要なやり取りを追跡する
- 進行中のプロジェクトを記憶する
- 継続性のため、一時的なコンテキストを記録する
活用例:
シナリオ 1:タスク管理
User: "I need to finish the quarterly report"
Claude: [Loads profile - finds: works 9-5, morning person, prefers focused blocks]
I'll add that to your tasks. Based on your preference for morning work, I recommend
scheduling this during your 9-11am block tomorrow when you're most productive.
The report is due when? I'll set an appropriate priority and reminder.
[Adds task with context-aware details]
シナリオ 2:スケジュールの競合
User: "Can I schedule a dentist appointment at 10am Tuesday?"
Claude: [Checks schedule - finds: Team standup at 10am daily]
I notice you have your daily team standup at 10am. Would you like to:
1. Schedule the dentist for 11am instead
2. Move your standup for that day
3. Choose a different day entirely
What works best for you?
シナリオ 3:目標に沿った提案
User: "What should I focus on this week?"
Claude: [Loads profile - finds short-term goal: "Learn Python"]
Based on your goal to learn Python, I recommend dedicating 3-4 hours this week to:
1. Tuesday 7-8pm: Python tutorial (after gym, before evening routine)
2. Thursday 7-8pm: Practice exercises
3. Saturday 10-12pm: Build a small project
This fits your schedule and keeps you on track for your 3-month learning goal.
Shall I add these to your calendar?
ステップ 5:タスク管理の操作
ユーザーのタスクを整理するには、タスク管理システムを使用します。
タスクの追加:
import sys
sys.path.append('[SKILL_DIR]/scripts')
from assistant_db import add_task, add_context
task = {
"title": "Complete quarterly report",
"description": "Q4 financial analysis",
"priority": "high", # high, medium, low
"category": "work",
"due_date": "2025-11-15",
"estimated_time": "3 hours"
}
add_task(task)
add_context("interaction", "Added Q4 report task", "normal")
CLIを使ったタスクのクイック操作:
# List all tasks in formatted view
python3 scripts/task_helper.py list
# Add a quick task
python3 scripts/task_helper.py add "Buy groceries" medium "2025-11-08" personal
# Complete a task
python3 scripts/task_helper.py complete <task_id>
# View overdue tasks
python3 scripts/task_helper.py overdue
# View today's tasks
python3 scripts/task_helper.py today
# View this week's tasks
python3 scripts/task_helper.py week
# View tasks by category
python3 scripts/task_helper.py category work
タスクの完了:
from assistant_db import complete_task
complete_task(task_id)
タスクの更新:
from assistant_db import update_task
update_task(task_id, {
"priority": "urgent",
"due_date": "2025-11-10"
})
ステップ 6:スケジュールとイベントの管理
カレンダーイベントと定期的な予定を管理します。
イベントの追加:
from assistant_db import add_event
# One-time event
event = {
"title": "Dentist appointment",
"date": "2025-11-12",
"time": "14:00",
"duration": "1 hour",
"location": "Downtown Dental",
"notes": "Bring insurance card"
}
add_event(event, recurring=False)
# Recurring event
recurring_event = {
"title": "Team standup",
"frequency": "daily",
"time": "10:00",
"duration": "15 minutes",
"days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
}
add_event(recurring_event, recurring=True)
今後のイベントの取得:
from assistant_db import get_events
# Get events for next 7 days
upcoming = get_events(days_ahead=7)
# Get events for next 30 days
monthly = get_events(days_ahead=30)
ステップ 7:コンテキスト管理とメモリ
継続性のあるパーソナライズされたサポートを提供するため、コンテキストを維持します。
コンテキストの追加:
from assistant_db import add_context
# Track an interaction
add_context("interaction", "User mentioned struggling with morning productivity", "normal")
# Add an important note (kept indefinitely)
add_context("note", "User prefers written communication over calls for work matters", "high")
# Add temporary context (auto-cleaned after 7 days)
add_context("temporary", "Currently working on project X deadline next week", "normal")
コンテキストの重要度レベル:
"low"- 自動的にすぐにクリーンアップされます"normal"- 標準の保持期間(やり取りは30日間、一時的なコンテキストは7日間)"high"- 無期限に保持されます(重要なメモの場合)、または保持期間が延長されます
コンテキストの取得:
from assistant_db import get_context
# Get all context
all_context = get_context()
# Get specific type
interactions = get_context("recent_interactions")
notes = get_context("important_notes")
temp = get_context("temporary_context")
ステップ 8:インテリジェントなデータクリーンアップ
システムはデータの保持期間を自動的に管理しますが、手動でクリーンアップを実行することもできます。
# Clean up data older than 30 days (default)
python3 scripts/assistant_db.py cleanup
# Clean up with custom retention period
python3 scripts/assistant_db.py cleanup 60
クリーンアップされるデータ:
- ✓ 保持期間を過ぎた完了済みタスク
- ✓ 過去の単発イベント
- ✓ 古いやり取り(重要度が高いと指定されているものを除く)
- ✓ 7日を過ぎた一時的なコンテキスト
- ✗ ユーザープロフィール(クリーンアップされません)
- ✗ 未完了のタスク(クリーンアップされません)
- ✗ 重要なメモ(クリーンアップされません)
- ✗ 定期的なイベント(クリーンアップされません)
ステップ 9:ユーザープロフィールの更新
ユーザーがプロフィールや設定を更新したい場合:
from assistant_db import get_profile, save_profile
# Load current profile
profile = get_profile()
# Update specific fields
profile["work_hours"]["start"] = "08:00"
profile["preferences"]["reminder_style"] = "firm"
# Save updated profile
save_profile(profile)
または、スケジュール情報を更新します。
from assistant_db import get_schedule, save_schedule
schedule = get_schedule()
schedule["working_hours"]["Friday"] = {"start": "09:00", "end": "15:00"}
save_schedule(schedule)
ベストプラクティス
-
まずコンテキストを読み込む
- パーソナライズされたサポートを提供する前に、プロフィールの状態を確認します
- 関連データ(プロフィール、タスク、スケジュール)を最初に読み込みます
-
先を見越して対応する
- タスクの優先順位付けを提案します
- スケジュールの競合を通知します
- 目標をリマインドします
- 最適化案を提案します
-
設定を尊重する
- 希望するコミュニケーションスタイルを尊重します
- タスクの整理方法に関する設定に従います
- 勤務時間と境界を尊重します
-
継続性を維持する
- 重要なやり取りをコンテキストに記録します
- 以前の会話を参照します
- 進行中のプロジェクトを記憶します
-
データを最新の状態に保つ
- 定期的にクリーンアップを実行します(月に一度を推奨)
- 重要な情報には適切な重要度を設定します
- 短期的な記録には一時的なコンテキストを使用します
-
価値を提供する
- タスクと目標の関連性を見つけます
- 作業スタイルに基づいてスケジュールを最適化します
- パーソナライズされた生産性に関する知見を提供します
-
段階的に更新する
- 会話中にユーザーが新しい設定について話した場合は、プロフィールを更新するか確認します
- 新たな予定が生じたら、スケジュールに追加します
- コンテキストの変更を自然に記録します
やり取りの例
例 1:初めて利用するユーザー
User: "Help me organize my week"
Claude: [Checks profile - finds none]
I'd love to help you organize your week! To provide the most personalized assistance,
let me first learn about your schedule and preferences. This will only take a few minutes.
What's your typical work schedule like? For example, do you work 9-5, have flexible
hours, or something else?
[Proceeds through profile setup]
Great! Now let me look at your week and help you organize it effectively...
例 2:タスク管理
User: "I have so many things to do, I'm overwhelmed"
Claude: [Loads tasks - finds 15 pending tasks, 8 with no due date]
I can see you have 15 pending tasks. Let me help you prioritize based on your goals
and schedule.
High Priority (Due Soon):
1. Quarterly report - Due Tuesday (aligns with your career goals)
2. Client presentation - Due Thursday
Medium Priority (This Week):
3. Code review - No deadline but good for Friday afternoon
4. Team feedback - Due next Monday
Let's start with the top 2. Your morning blocks (9-11am) work best for focused work
like the quarterly report. Shall I schedule it for tomorrow morning?
[Helps organize and prioritize based on profile]
例 3:スケジュールの最適化
User: "I want to start exercising regularly"
Claude: [Loads profile - finds: evening person, free 18:00-19:00 most days]
Based on your schedule and preferences, I can see you're typically free between
6-7pm on weekdays. This aligns well with your peak energy time in the evenings.
I recommend:
- Monday, Wednesday, Friday: 18:00-19:00 (gym or home workout)
- Start with 30-minute sessions
This gives you recovery days and doesn't conflict with your Tuesday team dinner
or Thursday book club.
Shall I add these as recurring events to your calendar?
例 4:コンテキストのあるリピーター
User: "How's my progress on learning Python?"
Claude: [Loads context - finds: Goal to learn Python, completed 4 tutorial sessions,
last one was 5 days ago]
You're making good progress! You've completed 4 Python tutorial sessions over the
past 3 weeks. However, I notice it's been 5 days since your last session.
To maintain momentum toward your 3-month goal, let's schedule your next session.
Your usual Thursday 7pm slot is open tomorrow. Does that work?
Also, you're at the point where building a small project would be valuable. What
interests you - a web scraper, a to-do app, or something else?
例 5:設定の更新
User: "I've started a new job, my schedule has changed"
Claude: [Loads current profile]
Congratulations on the new job! Let me update your profile with your new schedule.
What are your new working hours? And have any of your recurring commitments changed?
[Collects updated information and saves]
Perfect! I've updated your profile with your new 8-4 schedule and remote work setup.
I'll adjust all my suggestions accordingly. Your morning productivity block is now
8-10am instead of 9-11am.
技術メモ
データの保存場所:
すべてのデータは ~/.claude/personal_assistant/ に保存されます。
profile.json- ユーザープロフィールと設定tasks.json- タスクリストと完了済みタスクschedule.json- カレンダーイベントと定期的な予定context.json- やり取りの履歴、メモ、一時的なコンテキスト
データベースコマンド:
# Profile management
python3 scripts/assistant_db.py has_profile
python3 scripts/assistant_db.py get_profile
# Task management
python3 scripts/assistant_db.py get_tasks
# Schedule management
python3 scripts/assistant_db.py get_schedule
# Context management
python3 scripts/assistant_db.py get_context
# Utilities
python3 scripts/assistant_db.py summary # Quick overview
python3 scripts/assistant_db.py cleanup [days] # Clean old data
python3 scripts/assistant_db.py export # Export all data
python3 scripts/assistant_db.py reset # Reset everything
タスクヘルパーコマンド:
python3 scripts/task_helper.py list
python3 scripts/task_helper.py add <title> [priority] [due_date] [category]
python3 scripts/task_helper.py complete <task_id>
python3 scripts/task_helper.py overdue
python3 scripts/task_helper.py today
python3 scripts/task_helper.py week
python3 scripts/task_helper.py category <name>
データ保持ポリシー:
- ユーザープロフィール:自動削除されません
- 未完了のタスク:自動削除されません
- 完了済みタスク:30日後に削除されます(設定可能)
- 過去の単発イベント:30日後に削除されます(設定可能)
- 定期的なイベント:自動削除されません
- 最近のやり取り:重要度が
"high"に設定されていない限り、30日後に削除されます - 重要なメモ:自動削除されません
- 一時的なコンテキスト:7日後に削除されます
プロフィールデータ構造:
{
"initialized": true,
"name": "John Doe",
"preferred_name": "John",
"timezone": "America/New_York",
"location": "New York, USA",
"work_hours": {
"start": "09:00",
"end": "17:00",
"flexible": true
},
"preferences": {
"communication_style": "concise",
"reminder_style": "gentle",
"task_organization": "by_priority"
},
"goals": {
"short_term": ["Learn Python", "Run 5K"],
"long_term": ["Career advancement", "Financial independence"]
},
"working_style": "morning person"
}
リソース
scripts/assistant_db.py
以下の機能を提供する、データベース管理の主要モジュールです。
- プロフィール管理(取得、保存、初期化状態の確認)
- タスクの CRUD 操作(追加、更新、完了、削除)
- スケジュールとイベントの管理
- 重要度レベルを使用したコンテキストの追跡
- インテリジェントなデータクリーンアップ
- データのエクスポートおよび要約機能
scripts/task_helper.py
タスクをすばやく操作するための便利なスクリプトです。
- 書式設定済みのタスク一覧
- タスクの簡単な追加
- タスクの絞り込み(期限超過、今日、今週、カテゴリ別)
- IDまたはタイトルの一致によるタスクの完了