From a189bb546d3ba1b84f04bedf017cd7fb1a905012 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Thu, 19 Feb 2026 23:31:07 -0600 Subject: [PATCH] Add edge emphasis to cognitive memory skill and edge-proposer script - SKILL.md: New workflow pattern for creating edges between memories - SKILL.md: Added proactive trigger for edge creation after storing memories - SKILL.md: Updated bug fix example to show relating solution to problem - scripts/edge-proposer.py: Retroactive edge candidate analysis tool Scores memory pairs by type heuristics, tag overlap, and content similarity Co-Authored-By: Claude Opus 4.6 --- backups/.claude.json.backup.1771560454777 | 2295 ----------------- ...4552 => .claude.json.backup.1771564338598} | 18 +- ...1675 => .claude.json.backup.1771564563445} | 22 +- ...0340 => .claude.json.backup.1771565237189} | 22 +- ...0084 => .claude.json.backup.1771565340612} | 26 +- backups/.claude.json.backup.1771565450936 | 2295 +++++++++++++++++ skills/cognitive-memory/SKILL.md | 44 +- .../cognitive-memory/scripts/edge-proposer.py | 417 +++ tmp/edge-candidates.json | 1653 ++++++++++++ 9 files changed, 4450 insertions(+), 2342 deletions(-) delete mode 100644 backups/.claude.json.backup.1771560454777 rename backups/{.claude.json.backup.1771560754552 => .claude.json.backup.1771564338598} (99%) rename backups/{.claude.json.backup.1771560601675 => .claude.json.backup.1771564563445} (99%) rename backups/{.claude.json.backup.1771560690340 => .claude.json.backup.1771565237189} (99%) rename backups/{.claude.json.backup.1771560520084 => .claude.json.backup.1771565340612} (99%) create mode 100644 backups/.claude.json.backup.1771565450936 create mode 100644 skills/cognitive-memory/scripts/edge-proposer.py create mode 100644 tmp/edge-candidates.json diff --git a/backups/.claude.json.backup.1771560454777 b/backups/.claude.json.backup.1771560454777 deleted file mode 100644 index 08d8211..0000000 --- a/backups/.claude.json.backup.1771560454777 +++ /dev/null @@ -1,2295 +0,0 @@ -{ - "numStartups": 670, - "installMethod": "native", - "autoUpdates": true, - "preferredNotifChannel": "iterm2_with_bell", - "hasSeenTasksHint": true, - "tipsHistory": { - "new-user-warmup": 2, - "theme-command": 660, - "prompt-queue": 12, - "enter-to-steer-in-relatime": 651, - "todo-list": 660, - "# for memory": 38, - "install-github-app": 663, - "permissions": 664, - "drag-and-drop-images": 669, - "double-esc": 75, - "continue": 665, - "ide-hotkey": 74, - "terminal-setup": 29, - "custom-commands": 655, - "shift-enter": 661, - "shift-tab": 665, - "custom-agents": 663, - "status-line": 536, - "git-worktrees": 661, - "image-paste": 666, - "plan-mode-for-complex-tasks": 384, - "double-esc-code-restore": 664, - "tab-toggle-thinking": 329, - "ultrathink-keyword": 423, - "ide-upsell-external-terminal": 668, - "stickers-command": 416, - "default-permission-mode-config": 436, - "rename-conversation": 655, - "frontend-design-plugin": 560, - "config-thinking-mode": 412, - "guest-passes": 587, - "colorterm-truecolor": 638, - "web-app": 657, - "mobile-app": 657, - "install-slack-app": 666, - "btw-side-question": 407, - "agent-flag": 667 - }, - "memoryUsageCount": 18, - "promptQueueUseCount": 4558, - "cachedStatsigGates": { - "tengu_disable_bypass_permissions_mode": false, - "tengu_use_file_checkpoints": true, - "tengu_tool_pear": false, - "tengu_migrate_ignore_patterns": false, - "tengu_halloween": false, - "tengu_web_tasks": true, - "tengu_show_extra_usage_bar": true, - "tengu_log_1p_events": true, - "tengu_enable_versioned_plugins": false, - "code_slack_app_install_banner": false, - "tengu_sumi": true, - "tengu_react_vulnerability_warning": false, - "tengu_tool_result_persistence": false, - "tengu_c4w_usage_limit_notifications_enabled": true, - "tengu_thinkback": false, - "tengu_ant_attribution_header_new": true, - "tengu_clawd_openfire": false, - "tengu_prompt_suggestion": true, - "tengu_year_end_2025_campaign_promo": false, - "tengu_streaming_tool_execution2": false, - "tengu_session_memory": false - }, - "cachedDynamicConfigs": { - "tengu_1p_event_batch_config": { - "scheduledDelayMillis": 5000, - "maxExportBatchSize": 200, - "maxQueueSize": 8192 - }, - "tengu-top-of-feed-tip": { - "tip": "", - "color": "" - } - }, - "cachedGrowthBookFeatures": { - "tengu_pid_based_version_locking": true, - "tengu_accept_with_feedback": true, - "tengu_mcp_tool_search": true, - "tengu_disable_bypass_permissions_mode": false, - "tengu_tool_pear": false, - "tengu_c4w_usage_limit_notifications_enabled": true, - "tengu_thinkback": false, - "tengu_sumi": true, - "tengu_ant_attribution_header_new": true, - "tengu_react_vulnerability_warning": false, - "tengu_tool_result_persistence": true, - "strawberry_granite_flag": "OFF", - "persimmon_marble_flag": "marble", - "tengu_tool_search_unsupported_models": [ - "haiku" - ], - "tengu_1p_event_batch_config": { - "scheduledDelayMillis": 5000, - "maxExportBatchSize": 200, - "maxQueueSize": 8192 - }, - "tengu_event_sampling_config": {}, - "tengu_scratch": false, - "tengu_log_segment_events": false, - "tengu_log_datadog_events": true, - "tengu_streaming_tool_execution2": true, - "tengu_post_compact_survey": false, - "tengu-top-of-feed-tip": { - "tip": "", - "color": "" - }, - "enhanced_telemetry_beta": false, - "tengu_code_diff_cli": true, - "tengu_compact_streaming_retry": false, - "tengu_session_memory": false, - "tengu_bash_haiku_prefetch": true, - "tengu_sm_compact": false, - "tengu_attribution_header": true, - "tengu_keybinding_customization": false, - "tengu_claudeai_mcp_connectors": true, - "tengu_plank_river_frost": "user_intent", - "tengu_brass_pebble": false, - "tengu_plan_mode_interview_phase": false, - "tengu_scarf_coffee": false, - "tengu_keybinding_customization_release": true, - "tengu_pr_status_cli": true, - "tengu_marble_kite": false, - "tengu_kv7_prompt_sort": true, - "tengu_marble_anvil": true, - "tengu_coral_fern": false, - "tengu_cache_plum_violet": true, - "tengu_tst_kx7": false, - "tengu_cork_m4q": true, - "tengu_compact_cache_prefix": true, - "tengu_file_write_optimization": true, - "tengu_system_prompt_global_cache": true, - "tengu_workout": false, - "tengu_plum_vx3": true, - "tengu_vscode_review_upsell": false, - "tengu_vscode_onboarding": false, - "tengu_quiet_fern": false, - "tengu_vinteuil_phrase": true, - "tengu_oboe": true, - "tengu_tst_names_in_messages": false, - "tengu_chomp_inflection": true, - "tengu_silver_lantern": false, - "tengu_copper_lantern": false, - "tengu_workout2": true, - "tengu_marble_lantern_disabled": false, - "tengu_penguins_enabled": true, - "tengu_penguins_off": null, - "tengu_penguin_mode_promo": { - "discountPercent": 50, - "endDate": "Feb 16" - }, - "tengu_mcp_elicitation": false, - "tengu_snippet_save": false, - "tengu_bergotte_lantern": false, - "tengu_amber_flint": true, - "tengu_chrome_auto_enable": false, - "tengu_fgts": false, - "tengu_immediate_model_command": false, - "tengu_mulberry_fog": false, - "tengu_prompt_cache_1h_config": { - "allowlist": [ - "repl_main_thread*", - "sdk" - ] - }, - "tengu_disable_streaming_to_non_streaming_fallback": false, - "tengu_amber_prism": false, - "tengu_birthday_hat": true, - "tengu_moth_copse": false, - "tengu_permission_explainer": true, - "tengu_slate_nexus": false, - "tengu_marble_sandcastle": true, - "tengu_birch_mist": false, - "tengu_oak_drum": false, - "tengu_worktree_mode": true, - "tengu_pebble_leaf_prune": false, - "tengu_swann_brevity": "control", - "tengu_crystal_beam": { - "budgetTokens": 0 - }, - "tengu_tool_input_aliasing": false - }, - "hasSeenStashHint": true, - "firstStartTime": "2025-07-09T18:27:34.950Z", - "userID": "67ff4da909deda738fb9d1bd6b743a7b7072fba19ec9dcc700fb61b83cd680f0", - "projects": { - "/mnt/NV2/Development/paper-dynasty": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 6, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 5.085098, - "lastAPIDuration": 656693, - "lastToolDuration": 87436, - "lastDuration": 73587544, - "lastLinesAdded": 275, - "lastLinesRemoved": 546, - "lastTotalInputTokens": 50542, - "lastTotalOutputTokens": 30915, - "lastTotalCacheCreationInputTokens": 141712, - "lastTotalCacheReadInputTokens": 6788738, - "lastSessionId": "829c2709-523b-455b-8f18-c9e98683677d", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 656657, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 50464, - "outputTokens": 935, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.055139000000000014 - }, - "claude-opus-4-6": { - "inputTokens": 78, - "outputTokens": 29980, - "cacheReadInputTokens": 6788738, - "cacheCreationInputTokens": 141712, - "webSearchRequests": 0, - "costUSD": 5.029959 - } - }, - "lastFpsAverage": 0.18, - "lastFpsLow1Pct": 9.71, - "lastSessionMetrics": { - "frame_duration_ms_count": 13108, - "frame_duration_ms_min": 0.11368899999999371, - "frame_duration_ms_max": 199.6928890000563, - "frame_duration_ms_avg": 4.148051465208603, - "frame_duration_ms_p50": 1.1749479999998584, - "frame_duration_ms_p95": 1.8468253500584952, - "frame_duration_ms_p99": 99.39902745002993 - } - }, - "/mnt/NV2/Development/paper-dynasty/discord-app": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 4, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "gameplay.py", - "helpers.py", - "gauntlets.py", - "players.py", - "gameplay_models.py" - ], - "exampleFilesGeneratedAt": 1771200477099, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 1.701528, - "lastAPIDuration": 166292, - "lastToolDuration": 6794, - "lastDuration": 473503, - "lastLinesAdded": 8, - "lastLinesRemoved": 9, - "lastTotalInputTokens": 22018, - "lastTotalOutputTokens": 4582, - "lastTotalCacheCreationInputTokens": 129852, - "lastTotalCacheReadInputTokens": 1510282, - "lastSessionId": "2b4b8d5b-b512-4151-8e0a-e7df54ca87af", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 166269, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 19317, - "outputTokens": 628, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.022457 - }, - "claude-opus-4-6": { - "inputTokens": 2701, - "outputTokens": 3954, - "cacheReadInputTokens": 1510282, - "cacheCreationInputTokens": 129852, - "webSearchRequests": 0, - "costUSD": 1.6790709999999998 - } - }, - "lastFpsAverage": 9.87, - "lastFpsLow1Pct": 78.57, - "lastSessionMetrics": { - "frame_duration_ms_count": 329, - "frame_duration_ms_min": 0.2862079999999878, - "frame_duration_ms_max": 21.07715700000017, - "frame_duration_ms_avg": 1.241589392097319, - "frame_duration_ms_p50": 0.6591350000016973, - "frame_duration_ms_p95": 4.936919999999964, - "frame_duration_ms_p99": 12.333302280000893 - } - }, - "/mnt/NV2/Development/paper-dynasty/card-creation": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 4, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "creation_helpers.py", - "retrosheet_data.py", - "live_series_update.py", - "db_calls.py", - "calcs_batter.py" - ], - "exampleFilesGeneratedAt": 1771120959673, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.97483075, - "lastAPIDuration": 112428, - "lastToolDuration": 41752, - "lastDuration": 1492175, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 11865, - "lastTotalOutputTokens": 3918, - "lastTotalCacheCreationInputTokens": 52943, - "lastTotalCacheReadInputTokens": 1079940, - "lastSessionId": "bb0edcb2-c231-429b-b9b2-871693d68164", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 112416, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 11817, - "outputTokens": 302, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.013327000000000002 - }, - "claude-opus-4-6": { - "inputTokens": 48, - "outputTokens": 3616, - "cacheReadInputTokens": 1079940, - "cacheCreationInputTokens": 52943, - "webSearchRequests": 0, - "costUSD": 0.96150375 - } - }, - "lastFpsAverage": 2.41, - "lastFpsLow1Pct": 376.75, - "lastSessionMetrics": { - "frame_duration_ms_count": 3600, - "frame_duration_ms_min": 0.242127999999866, - "frame_duration_ms_max": 5.281829999992624, - "frame_duration_ms_avg": 0.580389515832801, - "frame_duration_ms_p50": 0.5064559999955236, - "frame_duration_ms_p95": 0.7619019999605353, - "frame_duration_ms_p99": 2.6560799299745104 - } - }, - "/mnt/NV2/Development/major-domo/discord-app": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 1, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "players.py", - "transactions.py", - "helpers.py", - "db_calls.py", - "draft.py" - ], - "exampleFilesGeneratedAt": 1769634210567, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.41368375, - "lastAPIDuration": 62642, - "lastToolDuration": 5017, - "lastDuration": 759802, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 731, - "lastTotalOutputTokens": 2831, - "lastTotalCacheCreationInputTokens": 36799, - "lastTotalCacheReadInputTokens": 225704, - "lastSessionId": "b028c6d5-906a-42a5-bcc8-3007ad6cc9be", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 62637, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 673, - "outputTokens": 45, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.0008979999999999999 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 58, - "outputTokens": 2786, - "cacheReadInputTokens": 225704, - "cacheCreationInputTokens": 36799, - "webSearchRequests": 0, - "costUSD": 0.41278575 - } - }, - "lastFpsAverage": 3.04, - "lastFpsLow1Pct": 446.27 - }, - "/mnt/NV2/Development/paper-dynasty/database": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 1, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "db_engine.py", - "teams.py", - "battingcardratings.py", - "card_creation.py", - "players.py" - ], - "exampleFilesGeneratedAt": 1771135527599, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.6665207500000002, - "lastAPIDuration": 78227, - "lastToolDuration": 4637, - "lastDuration": 250612, - "lastLinesAdded": 7, - "lastLinesRemoved": 8, - "lastTotalInputTokens": 5310, - "lastTotalOutputTokens": 2768, - "lastTotalCacheCreationInputTokens": 48081, - "lastTotalCacheReadInputTokens": 587961, - "lastSessionId": "93b4db7a-6cf9-4372-b787-48b349953790", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 78224, - "lastModelUsage": { - "claude-opus-4-6": { - "inputTokens": 606, - "outputTokens": 2523, - "cacheReadInputTokens": 587961, - "cacheCreationInputTokens": 48081, - "webSearchRequests": 0, - "costUSD": 0.6605917499999999 - }, - "claude-haiku-4-5-20251001": { - "inputTokens": 4704, - "outputTokens": 245, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.005929 - } - }, - "lastFpsAverage": 7.31, - "lastFpsLow1Pct": 194.99, - "lastSessionMetrics": { - "frame_duration_ms_count": 1828, - "frame_duration_ms_min": 0.0990590000001248, - "frame_duration_ms_max": 8.969790000002831, - "frame_duration_ms_avg": 0.679499891137906, - "frame_duration_ms_p50": 0.5137859999958891, - "frame_duration_ms_p95": 1.3138215000040865, - "frame_duration_ms_p99": 5.171841930003283 - } - }, - "/mnt/NV2/Development/major-domo/website/sba": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 1, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "PlayerView.vue", - "NavBar.vue", - "utilities.ts", - "TeamView.vue", - "ScheduleView.vue" - ], - "exampleFilesGeneratedAt": 1752684082764, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.9222622499999997, - "lastAPIDuration": 211074, - "lastToolDuration": 106309, - "lastDuration": 172787988, - "lastLinesAdded": 6, - "lastLinesRemoved": 15, - "lastTotalInputTokens": 12057, - "lastTotalOutputTokens": 9314, - "lastTotalCacheCreationInputTokens": 68507, - "lastTotalCacheReadInputTokens": 1677945, - "lastSessionId": "2853d835-8e58-4264-9af8-965b509be920" - }, - "/mnt/NV2/Development/claude-strat": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 2, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0, - "lastAPIDuration": 0, - "lastAPIDurationWithoutRetries": 0, - "lastToolDuration": 0, - "lastDuration": 78562, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 0, - "lastTotalOutputTokens": 0, - "lastTotalCacheCreationInputTokens": 0, - "lastTotalCacheReadInputTokens": 0, - "lastFpsAverage": 0.24, - "lastFpsLow1Pct": 460.03, - "lastModelUsage": {}, - "lastSessionId": "18118e64-debf-4131-a196-8b35468cc21d", - "lastSessionMetrics": { - "frame_duration_ms_count": 19, - "frame_duration_ms_min": 0.09748899999999594, - "frame_duration_ms_max": 2.173793000000046, - "frame_duration_ms_avg": 0.7502662105250782, - "frame_duration_ms_p50": 0.5705650000018068, - "frame_duration_ms_p95": 1.5184094000000399, - "frame_duration_ms_p99": 2.0427162800000453 - } - }, - "/mnt/NV2/Development/claude-home": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "hasTrustDialogHooksAccepted": false, - "projectOnboardingSeenCount": 6, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "exampleFiles": [ - "CLAUDE.md", - "hosts.yml", - "start-tdarr-gpu-podman-clean.sh", - "tdarr-timeout-monitor.sh", - "docker-build-template.yml" - ], - "exampleFilesGeneratedAt": 1771197437832, - "hasTrustDialogBashAccepted": true, - "disabledMcpServers": [ - "ssh-vultr", - "podman", - "ssh-akamai", - "ssh-database-apis", - "ssh-discord-bots", - "ssh-docker-home", - "ssh-docker-vpn", - "ssh-pihole", - "ssh-sba-bots", - "ssh-tdarr", - "notediscovery" - ], - "lastCost": 16.71361575000001, - "lastAPIDuration": 1844582, - "lastToolDuration": 816971, - "lastDuration": 29558088, - "lastLinesAdded": 2386, - "lastLinesRemoved": 60, - "lastTotalInputTokens": 203907, - "lastTotalOutputTokens": 87182, - "lastTotalCacheCreationInputTokens": 987411, - "lastTotalCacheReadInputTokens": 16492670, - "lastSessionId": "ee8998aa-f26c-4743-84dc-0ba35f4e49c4", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 1843027, - "lastModelUsage": { - "claude-opus-4-6": { - "inputTokens": 7030, - "outputTokens": 57045, - "cacheReadInputTokens": 14601090, - "cacheCreationInputTokens": 789421, - "webSearchRequests": 0, - "costUSD": 13.695701250000003 - }, - "claude-haiku-4-5-20251001": { - "inputTokens": 196822, - "outputTokens": 4750, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 4167, - "webSearchRequests": 0, - "costUSD": 0.22578074999999995 - }, - "claude-sonnet-4-6": { - "inputTokens": 55, - "outputTokens": 25387, - "cacheReadInputTokens": 1891580, - "cacheCreationInputTokens": 193823, - "webSearchRequests": 0, - "costUSD": 2.7921337499999996 - } - }, - "lastSessionMetrics": { - "frame_duration_ms_count": 35110, - "frame_duration_ms_min": 0.10013899999830755, - "frame_duration_ms_max": 45.71880799904466, - "frame_duration_ms_avg": 1.8384896022149897, - "frame_duration_ms_p50": 0.9785875007510185, - "frame_duration_ms_p95": 9.048351652547707, - "frame_duration_ms_p99": 25.241195021457933 - }, - "lastFpsAverage": 1.19, - "lastFpsLow1Pct": 43.16 - }, - "/mnt/NV2/Development/major-domo": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 21, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.038617, - "lastAPIDuration": 9353, - "lastToolDuration": 0, - "lastDuration": 7595, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 4, - "lastTotalOutputTokens": 370, - "lastTotalCacheCreationInputTokens": 9588, - "lastTotalCacheReadInputTokens": 0, - "lastSessionId": "4732b974-2222-43bd-ade6-68f939374e2d" - }, - "/mnt/NV2/Development/major-domo/discord-app-v2": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "bot.py", - "picks.py", - "player_service.py", - "draft_monitor.py", - "transaction_builder.py" - ], - "exampleFilesGeneratedAt": 1771010003932, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.48880999999999997, - "lastAPIDuration": 82556, - "lastToolDuration": 762, - "lastDuration": 31782115, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 10182, - "lastTotalOutputTokens": 3557, - "lastTotalCacheCreationInputTokens": 46594, - "lastTotalCacheReadInputTokens": 209453, - "lastSessionId": "af95e872-d30d-4e18-bba0-9b54a2db2472", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 82551, - "lastModelUsage": { - "claude-opus-4-6": { - "inputTokens": 301, - "outputTokens": 3185, - "cacheReadInputTokens": 209453, - "cacheCreationInputTokens": 46594, - "webSearchRequests": 0, - "costUSD": 0.47706899999999997 - }, - "claude-haiku-4-5-20251001": { - "inputTokens": 9881, - "outputTokens": 372, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.011741000000000001 - } - }, - "lastFpsAverage": 0.06, - "lastFpsLow1Pct": 712.84, - "lastSessionMetrics": { - "frame_duration_ms_count": 1990, - "frame_duration_ms_min": 0.1826390000005631, - "frame_duration_ms_max": 7.607172000003629, - "frame_duration_ms_avg": 0.5568929904514509, - "frame_duration_ms_p50": 0.49148100000456907, - "frame_duration_ms_p95": 0.7997885000371748, - "frame_duration_ms_p99": 1.2905342006038087 - } - }, - "/mnt/NV2/Development/major-domo/database": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "stratplay.py", - "db_engine.py", - "players.py", - "main.py", - "player_service.py" - ], - "exampleFilesGeneratedAt": 1770846518939, - "lastTotalWebSearchRequests": 0, - "hasCompletedProjectOnboarding": true, - "lastCost": 2.3901955, - "lastAPIDuration": 301972, - "lastToolDuration": 12114, - "lastDuration": 1670471, - "lastLinesAdded": 10, - "lastLinesRemoved": 53, - "lastTotalInputTokens": 48396, - "lastTotalOutputTokens": 9953, - "lastTotalCacheCreationInputTokens": 108474, - "lastTotalCacheReadInputTokens": 2959228, - "lastSessionId": "5e851c22-a330-498c-b920-91d07e9d7272", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 301237, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 44789, - "outputTokens": 1324, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 10510, - "webSearchRequests": 0, - "costUSD": 0.06454649999999999 - }, - "claude-opus-4-6": { - "inputTokens": 3607, - "outputTokens": 8629, - "cacheReadInputTokens": 2959228, - "cacheCreationInputTokens": 97964, - "webSearchRequests": 0, - "costUSD": 2.3256489999999994 - } - }, - "lastFpsAverage": 3.48, - "lastFpsLow1Pct": 61.79, - "lastSessionMetrics": { - "frame_duration_ms_count": 5811, - "frame_duration_ms_min": 0.06511999999929685, - "frame_duration_ms_max": 24.917415999807417, - "frame_duration_ms_avg": 1.2880430752023766, - "frame_duration_ms_p50": 0.6170755000021018, - "frame_duration_ms_p95": 8.055697949981514, - "frame_duration_ms_p99": 15.687149549964806 - } - }, - "/home/cal": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 2, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "lastCost": 0.49167225000000003, - "lastAPIDuration": 57564, - "lastToolDuration": 795, - "lastDuration": 54969526, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 13534, - "lastTotalOutputTokens": 2290, - "lastTotalCacheCreationInputTokens": 54325, - "lastTotalCacheReadInputTokens": 171658, - "lastTotalWebSearchRequests": 0, - "lastSessionId": "0828ba77-a2b4-4739-901a-2bde4ca9c84d", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 57561, - "lastFpsAverage": 0.03, - "lastFpsLow1Pct": 489.2, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 13522, - "outputTokens": 226, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.014651999999999998 - }, - "claude-opus-4-6": { - "inputTokens": 12, - "outputTokens": 2064, - "cacheReadInputTokens": 171658, - "cacheCreationInputTokens": 54325, - "webSearchRequests": 0, - "costUSD": 0.47702025 - } - }, - "lastSessionMetrics": { - "frame_duration_ms_count": 1797, - "frame_duration_ms_min": 0.07679000124335289, - "frame_duration_ms_max": 3.8076990004628897, - "frame_duration_ms_avg": 0.4328137100382606, - "frame_duration_ms_p50": 0.37359199952334166, - "frame_duration_ms_p95": 0.6538420001044866, - "frame_duration_ms_p99": 1.549595779986366 - } - }, - "/mnt/NV2/Development/paper-dynasty/gameplay-website": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 2, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "lastCost": 20.37967725000001, - "lastAPIDuration": 4284676, - "lastToolDuration": 162304, - "lastDuration": 143735767, - "lastLinesAdded": 10089, - "lastLinesRemoved": 431, - "lastTotalInputTokens": 119579, - "lastTotalOutputTokens": 195181, - "lastTotalCacheCreationInputTokens": 2081675, - "lastTotalCacheReadInputTokens": 31932818, - "lastTotalWebSearchRequests": 0, - "lastSessionId": "e3e9c25e-bf3a-476e-a6e3-4ab186fd09a7" - }, - "/mnt/NV2/Development/paper-dynasty/gameplay-webapp": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 15, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "hasCompletedProjectOnboarding": true - }, - "/mnt/NV2/Development/strat-gameplay-webapp": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "ignorePatterns": [], - "projectOnboardingSeenCount": 5, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "game_engine.py", - "game_models.py", - "[id].vue", - "state_manager.py", - "handlers.py" - ], - "exampleFilesGeneratedAt": 1770420014240, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 16.934636699999995, - "lastAPIDuration": 2029033, - "lastToolDuration": 334075, - "lastDuration": 72071738, - "lastLinesAdded": 1642, - "lastLinesRemoved": 807, - "lastTotalInputTokens": 129026, - "lastTotalOutputTokens": 104896, - "lastTotalCacheCreationInputTokens": 898174, - "lastTotalCacheReadInputTokens": 21863464, - "lastSessionId": "96ccb792-ef5c-4f2d-abc0-3ab3f694d5d4", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 2028886, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 128537, - "outputTokens": 21695, - "cacheReadInputTokens": 1593012, - "cacheCreationInputTokens": 258592, - "webSearchRequests": 0, - "costUSD": 0.7195532000000001 - }, - "claude-opus-4-6": { - "inputTokens": 419, - "outputTokens": 78422, - "cacheReadInputTokens": 19831105, - "cacheCreationInputTokens": 605182, - "webSearchRequests": 0, - "costUSD": 15.660584999999992 - }, - "claude-sonnet-4-5-20250929": { - "inputTokens": 70, - "outputTokens": 4779, - "cacheReadInputTokens": 439347, - "cacheCreationInputTokens": 34400, - "webSearchRequests": 0, - "costUSD": 0.5544985 - } - }, - "lastFpsAverage": 0.51, - "lastFpsLow1Pct": 8.98, - "lastSessionMetrics": { - "frame_duration_ms_count": 36971, - "frame_duration_ms_min": 0.023979991674423218, - "frame_duration_ms_max": 471.0088710002601, - "frame_duration_ms_avg": 4.1840136584065, - "frame_duration_ms_p50": 1.0950170001015067, - "frame_duration_ms_p95": 2.274254503706469, - "frame_duration_ms_p99": 113.62059141005383 - } - }, - "/home/cal/PAI-personal": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 3, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "README.md", - "stop-hook.ts", - "load-dynamic-requirements.ts", - "server.ts", - "voice-system.md" - ], - "exampleFilesGeneratedAt": 1762705373825, - "lastTotalWebSearchRequests": 0, - "lastCost": 0.06835225, - "lastAPIDuration": 6739, - "lastToolDuration": 0, - "lastDuration": 184755, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 133, - "lastTotalOutputTokens": 173, - "lastTotalCacheCreationInputTokens": 17559, - "lastTotalCacheReadInputTokens": 0, - "lastSessionId": "aaf66661-ddee-428d-abaa-f3ee035385f7" - }, - "/home/cal/work": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 1, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [], - "lastCost": 0.45607089999999995, - "lastAPIDuration": 150289, - "lastToolDuration": 7286, - "lastDuration": 1692139, - "lastLinesAdded": 5, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 11418, - "lastTotalOutputTokens": 5237, - "lastTotalCacheCreationInputTokens": 75368, - "lastTotalCacheReadInputTokens": 292173, - "lastTotalWebSearchRequests": 0, - "lastSessionId": "df8bf8dd-746a-46ef-9faa-448f402968cc" - }, - "/home/cal/work/esb-monorepo": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 7, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "main.py", - "output_utils.py", - "base.py", - "validate_field_mappings.py", - "test_end_to_end.py" - ], - "exampleFilesGeneratedAt": 1771431800882, - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "lastCost": 13.231698250000006, - "lastAPIDuration": 891789, - "lastToolDuration": 132172, - "lastDuration": 18087965, - "lastLinesAdded": 263, - "lastLinesRemoved": 7, - "lastTotalInputTokens": 77295, - "lastTotalOutputTokens": 35442, - "lastTotalCacheCreationInputTokens": 1044639, - "lastTotalCacheReadInputTokens": 11865821, - "lastSessionId": "ace0ec70-77ed-44a1-806a-904ce665899a", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 891685, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 71834, - "outputTokens": 2746, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 32095, - "webSearchRequests": 0, - "costUSD": 0.12568275000000004 - }, - "claude-opus-4-6": { - "inputTokens": 5448, - "outputTokens": 27103, - "cacheReadInputTokens": 11539293, - "cacheCreationInputTokens": 945261, - "webSearchRequests": 0, - "costUSD": 12.38234275 - }, - "claude-sonnet-4-6": { - "inputTokens": 13, - "outputTokens": 5593, - "cacheReadInputTokens": 326528, - "cacheCreationInputTokens": 67283, - "webSearchRequests": 0, - "costUSD": 0.72367275 - } - }, - "lastFpsAverage": 0.78, - "lastFpsLow1Pct": 25.74, - "lastSessionMetrics": { - "frame_duration_ms_count": 14187, - "frame_duration_ms_min": 0.08366899937391281, - "frame_duration_ms_max": 68.00957799889147, - "frame_duration_ms_avg": 2.3383289160528014, - "frame_duration_ms_p50": 1.0047624995931983, - "frame_duration_ms_p95": 13.091784298792101, - "frame_duration_ms_p99": 38.75486159028485 - } - }, - "/mnt/NV2/Development/efd-trading-card-base": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 3, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "ModBehaviour.cs", - "Patches.cs", - "StorageHelper.cs", - "TagHelper.cs", - "PackHelper.cs" - ], - "hasCompletedProjectOnboarding": true, - "lastTotalWebSearchRequests": 0, - "exampleFilesGeneratedAt": 1766960877904, - "lastCost": 1.1139348, - "lastAPIDuration": 360792, - "lastToolDuration": 124593, - "lastDuration": 437573762, - "lastLinesAdded": 480, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 29358, - "lastTotalOutputTokens": 21239, - "lastTotalCacheCreationInputTokens": 105536, - "lastTotalCacheReadInputTokens": 1377470, - "lastSessionId": "b8161215-eaaf-4b3d-a7c4-1211a973173d", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 360778, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 22987, - "outputTokens": 12005, - "cacheReadInputTokens": 867968, - "cacheCreationInputTokens": 46586, - "webSearchRequests": 0, - "costUSD": 0.22804130000000003 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 6371, - "outputTokens": 9234, - "cacheReadInputTokens": 509502, - "cacheCreationInputTokens": 58950, - "webSearchRequests": 0, - "costUSD": 0.8858935000000001 - } - } - }, - "/mnt/NV2/Development/youtube-transcriber": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 1, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [], - "lastCost": 0.5343026, - "lastAPIDuration": 157690, - "lastToolDuration": 40133, - "lastDuration": 1963443, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 11575, - "lastTotalOutputTokens": 7644, - "lastTotalCacheCreationInputTokens": 74892, - "lastTotalCacheReadInputTokens": 329416, - "lastTotalWebSearchRequests": 0, - "lastSessionId": "a3410bfd-60df-45cb-b5ba-d2aa42af040b", - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastAPIDurationWithoutRetries": 157684, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 9557, - "outputTokens": 3569, - "cacheReadInputTokens": 90706, - "cacheCreationInputTokens": 40313, - "webSearchRequests": 0, - "costUSD": 0.08686385 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 2018, - "outputTokens": 4075, - "cacheReadInputTokens": 238710, - "cacheCreationInputTokens": 34579, - "webSearchRequests": 0, - "costUSD": 0.44743875000000005 - } - } - }, - "/mnt/NV2/Development/major-domo/sba-website": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "NavBar.vue", - "utilities.ts", - "PlayerView.vue", - "pitchingStatsService.ts", - "GameView.vue" - ], - "exampleFilesGeneratedAt": 1764698332308, - "hasCompletedProjectOnboarding": true, - "lastCost": 0.16633325, - "lastAPIDuration": 23227, - "lastToolDuration": 50, - "lastDuration": 90937, - "lastLinesAdded": 3, - "lastLinesRemoved": 1, - "lastTotalInputTokens": 568, - "lastTotalOutputTokens": 891, - "lastTotalCacheCreationInputTokens": 24431, - "lastTotalCacheReadInputTokens": 40417, - "lastTotalWebSearchRequests": 0, - "lastSessionId": "c44482c8-6b43-4473-baf1-b7e7f1713d05" - }, - "/mnt/NV2/Development/vagabond-rpg-foundryvtt": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "vagabond.mjs", - "character.mjs", - "base-actor-sheet.mjs", - "weapon.mjs", - "_chat-cards.scss" - ], - "exampleFilesGeneratedAt": 1771348866204, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "hasCompletedProjectOnboarding": true, - "lastCost": 2.4916862500000017, - "lastAPIDuration": 617124, - "lastAPIDurationWithoutRetries": 617051, - "lastToolDuration": 41476, - "lastDuration": 14881048, - "lastLinesAdded": 48, - "lastLinesRemoved": 3, - "lastTotalInputTokens": 74007, - "lastTotalOutputTokens": 32137, - "lastTotalCacheCreationInputTokens": 143503, - "lastTotalCacheReadInputTokens": 2478749, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 73923, - "outputTokens": 16775, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 37370, - "webSearchRequests": 0, - "costUSD": 0.20451049999999996 - }, - "claude-opus-4-6": { - "inputTokens": 84, - "outputTokens": 15362, - "cacheReadInputTokens": 2478749, - "cacheCreationInputTokens": 106133, - "webSearchRequests": 0, - "costUSD": 2.2871757500000007 - } - }, - "lastSessionId": "3e0d8693-8b59-4b4b-b895-0a6d0df271b9", - "lastFpsAverage": 0.64, - "lastFpsLow1Pct": 75.21, - "lastSessionMetrics": { - "frame_duration_ms_count": 9467, - "frame_duration_ms_min": 0.22532899997895584, - "frame_duration_ms_max": 27.93686599843204, - "frame_duration_ms_avg": 1.123230763174562, - "frame_duration_ms_p50": 0.6752699996577576, - "frame_duration_ms_p95": 4.194021500030064, - "frame_duration_ms_p99": 13.320319429975934 - } - }, - "/mnt/NV2/Development/voice-server": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 121, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastCost": 1.1846112499999997, - "lastAPIDuration": 285962, - "lastAPIDurationWithoutRetries": 285957, - "lastToolDuration": 2561, - "lastDuration": 3533895, - "lastLinesAdded": 1, - "lastLinesRemoved": 1, - "lastTotalInputTokens": 37077, - "lastTotalOutputTokens": 11625, - "lastTotalCacheCreationInputTokens": 97481, - "lastTotalCacheReadInputTokens": 495130, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 34570, - "outputTokens": 497, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.037055000000000005 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 2507, - "outputTokens": 11128, - "cacheReadInputTokens": 495130, - "cacheCreationInputTokens": 97481, - "webSearchRequests": 0, - "costUSD": 1.1475562499999996 - } - }, - "lastSessionId": "554acadb-bd48-444d-bba0-eb56b7f973b7", - "exampleFiles": [ - "models.py", - "queue_manager.py", - "routes.py", - "test_models.py", - "test_api.py" - ], - "exampleFilesGeneratedAt": 1766157887772 - }, - "/home/cal/.claude": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "hasCompletedProjectOnboarding": true, - "lastCost": 2.0461577500000003, - "lastAPIDuration": 375500, - "lastAPIDurationWithoutRetries": 375491, - "lastToolDuration": 5648, - "lastDuration": 3861491, - "lastLinesAdded": 34, - "lastLinesRemoved": 25, - "lastTotalInputTokens": 14373, - "lastTotalOutputTokens": 13569, - "lastTotalCacheCreationInputTokens": 81883, - "lastTotalCacheReadInputTokens": 2301862, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 4643, - "outputTokens": 453, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.006907999999999999 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 9730, - "outputTokens": 13116, - "cacheReadInputTokens": 2301862, - "cacheCreationInputTokens": 81883, - "webSearchRequests": 0, - "costUSD": 2.03924975 - } - }, - "lastSessionId": "848aa776-de5b-4135-8538-89ed5b29151c" - }, - "/mnt/NV2/Development/openscad-models": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 2, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastCost": 2.7214542499999994, - "lastAPIDuration": 781798, - "lastAPIDurationWithoutRetries": 777552, - "lastToolDuration": 3537, - "lastDuration": 80207818, - "lastLinesAdded": 102, - "lastLinesRemoved": 52, - "lastTotalInputTokens": 26454, - "lastTotalOutputTokens": 32767, - "lastTotalCacheCreationInputTokens": 126339, - "lastTotalCacheReadInputTokens": 2186269, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 23726, - "outputTokens": 892, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.028186000000000003 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 2728, - "outputTokens": 31875, - "cacheReadInputTokens": 2186269, - "cacheCreationInputTokens": 126339, - "webSearchRequests": 0, - "costUSD": 2.69326825 - } - }, - "lastSessionId": "dc88df52-7868-463f-87b1-9b9c66fcfe4b", - "exampleFiles": [ - "gfci-paddle-switch-extended.scad", - "gfci-paddle-switch-extended-2d.scad", - "test-avocado.scad", - "gfci-paddle-switch-extended-template.svg", - "avocado-nameplate.stl" - ], - "exampleFilesGeneratedAt": 1766607808626 - }, - "/mnt/NV2/Development/headless-claude": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastCost": 14.681952000000011, - "lastAPIDuration": 1922503, - "lastAPIDurationWithoutRetries": 1922344, - "lastToolDuration": 404961, - "lastDuration": 4275175, - "lastLinesAdded": 973, - "lastLinesRemoved": 191, - "lastTotalInputTokens": 282513, - "lastTotalOutputTokens": 72914, - "lastTotalCacheCreationInputTokens": 659546, - "lastTotalCacheReadInputTokens": 17072917, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 279316, - "outputTokens": 4741, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.30302100000000004 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 3197, - "outputTokens": 68173, - "cacheReadInputTokens": 17072917, - "cacheCreationInputTokens": 659546, - "webSearchRequests": 0, - "costUSD": 14.378931 - } - }, - "lastSessionId": "38725d3f-5454-4fa7-b21b-8a051125e9f0" - }, - "/mnt/NV2/Development": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastCost": 5.5604301, - "lastAPIDuration": 1333168, - "lastAPIDurationWithoutRetries": 1328256, - "lastToolDuration": 743549, - "lastDuration": 4298210, - "lastLinesAdded": 1623, - "lastLinesRemoved": 222, - "lastTotalInputTokens": 58261, - "lastTotalOutputTokens": 56790, - "lastTotalCacheCreationInputTokens": 549016, - "lastTotalCacheReadInputTokens": 1990295, - "lastTotalWebSearchRequests": 7, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 36579, - "outputTokens": 1267, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.04291400000000001 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 19375, - "outputTokens": 34688, - "cacheReadInputTokens": 1390958, - "cacheCreationInputTokens": 491962, - "webSearchRequests": 7, - "costUSD": 4.8043165000000005 - }, - "claude-sonnet-4-5-20250929": { - "inputTokens": 2307, - "outputTokens": 20835, - "cacheReadInputTokens": 599337, - "cacheCreationInputTokens": 57054, - "webSearchRequests": 0, - "costUSD": 0.7131995999999999 - } - }, - "lastSessionId": "b5e5205f-dac0-4e82-b7d2-2a43c1875f1c" - }, - "/mnt/NV2/Development/tcg-poc": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [], - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "lastCost": 0.3143737499999999, - "lastAPIDuration": 87455, - "lastAPIDurationWithoutRetries": 87447, - "lastToolDuration": 393, - "lastDuration": 242060, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 10154, - "lastTotalOutputTokens": 3203, - "lastTotalCacheCreationInputTokens": 26841, - "lastTotalCacheReadInputTokens": 126753, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 7906, - "outputTokens": 799, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.011900999999999998 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 2248, - "outputTokens": 2404, - "cacheReadInputTokens": 126753, - "cacheCreationInputTokens": 26841, - "webSearchRequests": 0, - "costUSD": 0.30247274999999996 - } - }, - "lastSessionId": "d0705af3-8ca6-4d83-9419-51adf7e8fbb4" - }, - "/mnt/NV2/Development/tcg-project": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [], - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "hasCompletedProjectOnboarding": true, - "lastCost": 7.4633087499999995, - "lastAPIDuration": 1024093, - "lastAPIDurationWithoutRetries": 1021756, - "lastToolDuration": 4894, - "lastDuration": 353865522, - "lastLinesAdded": 942, - "lastLinesRemoved": 532, - "lastTotalInputTokens": 37687, - "lastTotalOutputTokens": 50556, - "lastTotalCacheCreationInputTokens": 526103, - "lastTotalCacheReadInputTokens": 5775948, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 34751, - "outputTokens": 1307, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.041286 - }, - "claude-opus-4-5-20251101": { - "inputTokens": 2936, - "outputTokens": 49249, - "cacheReadInputTokens": 5775948, - "cacheCreationInputTokens": 526103, - "webSearchRequests": 0, - "costUSD": 7.42202275 - } - }, - "lastSessionId": "17cea69f-4257-4c39-a978-3254d0906a34" - }, - "/mnt/NV2/Development/mantimon-tcg": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 286, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "card.py", - "engine.py", - "game_service.py", - "game_state.py", - "turn_manager.py" - ], - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "exampleFilesGeneratedAt": 1771119156109, - "hasCompletedProjectOnboarding": true, - "lastCost": 45.331285999999906, - "lastAPIDuration": 7423555, - "lastAPIDurationWithoutRetries": 7422611, - "lastToolDuration": 3967084, - "lastDuration": 55754959, - "lastLinesAdded": 16117, - "lastLinesRemoved": 330, - "lastTotalInputTokens": 530738, - "lastTotalOutputTokens": 409841, - "lastTotalCacheCreationInputTokens": 1976236, - "lastTotalCacheReadInputTokens": 45760024, - "lastTotalWebSearchRequests": 0, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 528784, - "outputTokens": 12803, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 85744, - "webSearchRequests": 0, - "costUSD": 0.6999789999999999 - }, - "claude-opus-4-6": { - "inputTokens": 320, - "outputTokens": 57172, - "cacheReadInputTokens": 17177654, - "cacheCreationInputTokens": 462784, - "webSearchRequests": 0, - "costUSD": 12.912127000000007 - }, - "claude-sonnet-4-5-20250929": { - "inputTokens": 1634, - "outputTokens": 339866, - "cacheReadInputTokens": 28582370, - "cacheCreationInputTokens": 1427708, - "webSearchRequests": 0, - "costUSD": 31.719179999999994 - } - }, - "lastSessionId": "a9e4fa29-4f81-47c5-88d2-a9dea0793d0f", - "lastFpsAverage": 1.81, - "lastFpsLow1Pct": 99.2, - "lastSessionMetrics": { - "frame_duration_ms_count": 100694, - "frame_duration_ms_min": 0.08616900071501732, - "frame_duration_ms_max": 43.1600469998084, - "frame_duration_ms_avg": 0.9782929465193478, - "frame_duration_ms_p50": 0.5610404997132719, - "frame_duration_ms_p95": 4.414866499626077, - "frame_duration_ms_p99": 9.795633430983868 - } - }, - "/mnt/NV2/Development/sba-scouting": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 152, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "app.py", - "config.py", - "importer.py", - "models.py", - "queries.py" - ], - "reactVulnerabilityCache": { - "detected": false, - "package": null, - "packageName": null, - "version": null, - "packageManager": null - }, - "exampleFilesGeneratedAt": 1770754505849, - "hasCompletedProjectOnboarding": true, - "lastCost": 3.38631825, - "lastAPIDuration": 571422, - "lastAPIDurationWithoutRetries": 571376, - "lastToolDuration": 10180, - "lastDuration": 7861779, - "lastLinesAdded": 148, - "lastLinesRemoved": 22, - "lastTotalInputTokens": 49841, - "lastTotalOutputTokens": 23633, - "lastTotalCacheCreationInputTokens": 132657, - "lastTotalCacheReadInputTokens": 3888956, - "lastTotalWebSearchRequests": 0, - "lastFpsAverage": 1.23, - "lastFpsLow1Pct": 47.34, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 49289, - "outputTokens": 1507, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.05682400000000001 - }, - "claude-sonnet-4-5-20250929": { - "inputTokens": 552, - "outputTokens": 22126, - "cacheReadInputTokens": 3888956, - "cacheCreationInputTokens": 132657, - "webSearchRequests": 0, - "costUSD": 3.32949425 - } - }, - "lastSessionId": "3355afd4-9cb8-4c16-840d-ae19696ba284" - }, - "/mnt/NV2/Development/my-memory": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "app.py", - "board_window.py", - "models.py", - "transcriber.py", - "README.md" - ], - "hasCompletedProjectOnboarding": true, - "lastSessionMetrics": { - "frame_duration_ms_count": 7981, - "frame_duration_ms_min": 0.05863899999530986, - "frame_duration_ms_max": 6.910323999938555, - "frame_duration_ms_avg": 0.4394333594793528, - "frame_duration_ms_p50": 0.3969669999787584, - "frame_duration_ms_p95": 0.6579631500033425, - "frame_duration_ms_p99": 1.8215813999983947 - }, - "lastCost": 1.0844382499999998, - "lastAPIDuration": 411476, - "lastAPIDurationWithoutRetries": 411448, - "lastToolDuration": 264192, - "lastDuration": 69498101, - "lastLinesAdded": 95, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 38299, - "lastTotalOutputTokens": 20028, - "lastTotalCacheCreationInputTokens": 61545, - "lastTotalCacheReadInputTokens": 354518, - "lastTotalWebSearchRequests": 0, - "lastFpsAverage": 0.12, - "lastFpsLow1Pct": 516.63, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 38278, - "outputTokens": 828, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.042418000000000004 - }, - "claude-opus-4-6": { - "inputTokens": 21, - "outputTokens": 19200, - "cacheReadInputTokens": 354518, - "cacheCreationInputTokens": 61545, - "webSearchRequests": 0, - "costUSD": 1.04202025 - } - }, - "lastSessionId": "517562a3-10fb-4106-a5cc-a39a40e3f8e7", - "exampleFilesGeneratedAt": 1770844148005 - }, - "/mnt/NV2/Development/ai-assistant": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": false, - "projectOnboardingSeenCount": 22, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [], - "lastCost": 0.000783, - "lastAPIDuration": 2081, - "lastAPIDurationWithoutRetries": 2081, - "lastToolDuration": 0, - "lastDuration": 5622, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 143, - "lastTotalOutputTokens": 128, - "lastTotalCacheCreationInputTokens": 0, - "lastTotalCacheReadInputTokens": 0, - "lastTotalWebSearchRequests": 0, - "lastFpsAverage": 4.34, - "lastFpsLow1Pct": 338.75, - "lastModelUsage": { - "claude-haiku-4-5-20251001": { - "inputTokens": 143, - "outputTokens": 128, - "cacheReadInputTokens": 0, - "cacheCreationInputTokens": 0, - "webSearchRequests": 0, - "costUSD": 0.000783 - } - }, - "lastSessionId": "d8bf1d2b-235c-4e4c-be88-46dc493dc714", - "lastSessionMetrics": { - "frame_duration_ms_count": 22, - "frame_duration_ms_min": 0.08473000000000752, - "frame_duration_ms_max": 2.9520669999999427, - "frame_duration_ms_avg": 1.1000014545454322, - "frame_duration_ms_p50": 1.0439814999999726, - "frame_duration_ms_p95": 2.028548699999737, - "frame_duration_ms_p99": 2.7626715699998945 - }, - "hasCompletedProjectOnboarding": true - }, - "/mnt/NV2/Development/test_autoforge_project/pd-team-dashboard": { - "allowedTools": [], - "mcpContextUris": [], - "mcpServers": {}, - "enabledMcpjsonServers": [], - "disabledMcpjsonServers": [], - "hasTrustDialogAccepted": true, - "projectOnboardingSeenCount": 0, - "hasClaudeMdExternalIncludesApproved": false, - "hasClaudeMdExternalIncludesWarningShown": false, - "exampleFiles": [ - "main.py", - "database.py", - "config.py", - "env.py", - "__init__.py" - ], - "exampleFilesGeneratedAt": 1771136719751, - "hasCompletedProjectOnboarding": true, - "lastCost": 0, - "lastAPIDuration": 0, - "lastAPIDurationWithoutRetries": 0, - "lastToolDuration": 0, - "lastDuration": 55110401, - "lastLinesAdded": 0, - "lastLinesRemoved": 0, - "lastTotalInputTokens": 0, - "lastTotalOutputTokens": 0, - "lastTotalCacheCreationInputTokens": 0, - "lastTotalCacheReadInputTokens": 0, - "lastTotalWebSearchRequests": 0, - "lastFpsAverage": 0, - "lastFpsLow1Pct": 272.7, - "lastModelUsage": {}, - "lastSessionId": "44246c87-0c70-40b5-a092-c7388896450f", - "lastSessionMetrics": { - "frame_duration_ms_count": 190, - "frame_duration_ms_min": 0.05084999999962747, - "frame_duration_ms_max": 4.276786000002176, - "frame_duration_ms_avg": 1.0820387367652373, - "frame_duration_ms_p50": 0.8855180000006158, - "frame_duration_ms_p95": 2.635911999360587, - "frame_duration_ms_p99": 3.515721791167741 - } - } - }, - "hasCompletedOnboarding": true, - "lastOnboardingVersion": "2.0.13", - "subscriptionNoticeCount": 0, - "hasAvailableSubscription": false, - "changelogLastFetched": 1771560193427, - "fallbackAvailableWarningThreshold": 0.2, - "hasIdeOnboardingBeenShown": { - "vscode": true - }, - "lastReleaseNotesSeen": "2.1.49", - "isQualifiedForDataSharing": false, - "hasIdeAutoConnectDialogBeenShown": true, - "shiftEnterKeyBindingInstalled": true, - "hasUsedBackslashReturn": true, - "s1mAccessCache": { - "57783733-6e1e-48d5-9cb7-fa588a77b795": { - "hasAccess": false, - "hasAccessNotAsDefault": false, - "timestamp": 1771348865231 - }, - "6e3a13d6-2c72-468b-9ee9-b1d8f4711050": { - "hasAccess": false, - "hasAccessNotAsDefault": false, - "timestamp": 1761607064229 - } - }, - "hasOpusPlanDefault": false, - "lastPlanModeUse": 1771532414321, - "feedbackSurveyState": { - "lastShownTime": 1771451253831 - }, - "sonnet45MigrationComplete": true, - "claudeCodeFirstTokenDate": "2025-07-09T18:28:23.685647Z", - "mcpServers": { - "cognitive-memory": { - "command": "python3", - "args": [ - "/home/cal/.claude/skills/cognitive-memory/mcp_server.py" - ] - } - }, - "s1mNonSubscriberAccessCache": { - "fda1c56e-6b2f-4c2d-94f2-636cf90ad0f2": { - "hasAccess": false, - "timestamp": 1760119775598 - } - }, - "anonymousId": "claudecode.v1.52e3466d-bbf3-4c64-9a28-5c45f8698705", - "autoUpdatesProtectedForNative": true, - "githubRepoPaths": { - "calcorum/strat-gameplay-webapp": [ - "/mnt/NV2/Development/strat-gameplay-webapp" - ], - "calcorum/claude-home": [ - "/mnt/NV2/Development/claude-home" - ], - "calcorum/efd-trading-card-mod": [ - "/mnt/NV2/Development/efd-trading-card-base" - ], - "calcorum/paper-dynasty-card-creation": [ - "/mnt/NV2/Development/paper-dynasty/card-creation" - ], - "calcorum/paper-dynasty": [ - "/mnt/NV2/Development/paper-dynasty/discord-app" - ], - "calcorum/major-domo-v2": [ - "/mnt/NV2/Development/major-domo/discord-app-v2" - ], - "pgiro/sba": [ - "/mnt/NV2/Development/major-domo/sba-website" - ], - "calcorum/major-domo-database": [ - "/mnt/NV2/Development/major-domo/database" - ], - "calcorum/major-domo": [ - "/mnt/NV2/Development/major-domo/discord-app" - ], - "calcorum/vagabond-rpg-foundryvtt": [ - "/mnt/NV2/Development/vagabond-rpg-foundryvtt" - ], - "calcorum/paper-dynasty-database": [ - "/mnt/NV2/Development/paper-dynasty/database" - ], - "calcorum/voice-server": [ - "/mnt/NV2/Development/voice-server" - ], - "calcorum/openscad-models": [ - "/mnt/NV2/Development/openscad-models" - ], - "calcorum/mantimon-tcg": [ - "/mnt/NV2/Development/mantimon-tcg/backend", - "/mnt/NV2/Development/mantimon-tcg" - ], - "calcorum/sba-desktop": [ - "/mnt/NV2/Development/sba-scouting" - ] - }, - "passesEligibilityCache": { - "57783733-6e1e-48d5-9cb7-fa588a77b795": { - "eligible": true, - "referral_code_details": { - "code": "0uKnnMABqw", - "campaign": "claude_code_guest_pass_a47c", - "referral_link": "https://claude.ai/referral/0uKnnMABqw" - }, - "referrer_reward": { - "amount_minor_units": 1000, - "currency": "USD" - }, - "remaining_passes": 3, - "timestamp": 1771560445046 - } - }, - "opus45MigrationComplete": true, - "hasShownOpus45Notice": { - "57783733-6e1e-48d5-9cb7-fa588a77b795": true - }, - "officialMarketplaceAutoInstallAttempted": true, - "officialMarketplaceAutoInstalled": true, - "passesUpsellSeenCount": 3, - "thinkingMigrationComplete": true, - "groveConfigCache": { - "d6d0ffd3-ed66-4eba-9bd4-df8e2dbfc9e2": { - "grove_enabled": true, - "timestamp": 1771521871454 - } - }, - "skillUsage": { - "major-domo": { - "usageCount": 13, - "lastUsedAt": 1771556414365 - }, - "paper-dynasty": { - "usageCount": 12, - "lastUsedAt": 1771271707830 - }, - "project-plan": { - "usageCount": 4, - "lastUsedAt": 1771003578568 - }, - "init": { - "usageCount": 2, - "lastUsedAt": 1771018292259 - }, - "code-audit": { - "usageCount": 7, - "lastUsedAt": 1769840317637 - }, - "backend-phase": { - "usageCount": 11, - "lastUsedAt": 1769790071034 - }, - "frontend-code-audit": { - "usageCount": 6, - "lastUsedAt": 1769842017496 - }, - "frontend-phase": { - "usageCount": 24, - "lastUsedAt": 1769843259171 - }, - "dev-server": { - "usageCount": 2, - "lastUsedAt": 1769836015719 - }, - "deploy": { - "usageCount": 7, - "lastUsedAt": 1770216426722 - }, - "proxmox": { - "usageCount": 7, - "lastUsedAt": 1770999577744 - }, - "notediscovery": { - "usageCount": 2, - "lastUsedAt": 1771259103802 - }, - "create-skill": { - "usageCount": 1, - "lastUsedAt": 1770839993137 - }, - "backlog": { - "usageCount": 4, - "lastUsedAt": 1770912327282 - }, - "keybindings-help": { - "usageCount": 1, - "lastUsedAt": 1770855574743 - }, - "insights": { - "usageCount": 1, - "lastUsedAt": 1770959377885 - }, - "sync-config": { - "usageCount": 25, - "lastUsedAt": 1771539739755 - }, - "claude-optimised": { - "usageCount": 4, - "lastUsedAt": 1771363169937 - }, - "optimise-claude": { - "usageCount": 2, - "lastUsedAt": 1771199427014 - }, - "cognitive-memory": { - "usageCount": 35, - "lastUsedAt": 1771560320138 - }, - "commit-push": { - "usageCount": 17, - "lastUsedAt": 1771537208260 - }, - "check-rarity": { - "usageCount": 1, - "lastUsedAt": 1771203408892 - }, - "commit-commands:commit": { - "usageCount": 1, - "lastUsedAt": 1771364503659 - }, - "commit-push-pr": { - "usageCount": 4, - "lastUsedAt": 1771559391826 - }, - "mcp-manager": { - "usageCount": 5, - "lastUsedAt": 1771558943126 - }, - "orchestrator": { - "usageCount": 3, - "lastUsedAt": 1771451706040 - }, - "claude-automation-recommender": { - "usageCount": 1, - "lastUsedAt": 1771474474878 - }, - "bmad-qa": { - "usageCount": 1, - "lastUsedAt": 1771536951910 - }, - "save-memories": { - "usageCount": 7, - "lastUsedAt": 1771559941495 - } - }, - "opusProMigrationComplete": true, - "cachedChromeExtensionInstalled": true, - "hasVisitedPasses": true, - "passesLastSeenRemaining": 3, - "clientDataCache": { - "data": {}, - "timestamp": 1771560445433 - }, - "hasShownOpus46Notice": { - "57783733-6e1e-48d5-9cb7-fa588a77b795": true - }, - "hasVisitedExtraUsage": true, - "penguinModeOrgEnabled": true, - "opus46FeedSeenCount": 3, - "showSpinnerTree": false, - "oauthAccount": { - "accountUuid": "d6d0ffd3-ed66-4eba-9bd4-df8e2dbfc9e2", - "emailAddress": "cal.corum@gmail.com", - "organizationUuid": "57783733-6e1e-48d5-9cb7-fa588a77b795", - "hasExtraUsageEnabled": true, - "billingType": "stripe_subscription", - "accountCreatedAt": "2025-07-08T23:36:22.848806Z", - "subscriptionCreatedAt": "2025-07-09T18:05:03.049049Z", - "displayName": "Cal" - }, - "effortCalloutDismissed": true, - "sonnet1m45MigrationComplete": true, - "cachedExtraUsageDisabledReason": "org_level_disabled_until", - "birthdayHatAnimationCount": 3 -} \ No newline at end of file diff --git a/backups/.claude.json.backup.1771560754552 b/backups/.claude.json.backup.1771564338598 similarity index 99% rename from backups/.claude.json.backup.1771560754552 rename to backups/.claude.json.backup.1771564338598 index 7836297..0016cad 100644 --- a/backups/.claude.json.backup.1771560754552 +++ b/backups/.claude.json.backup.1771564338598 @@ -44,7 +44,7 @@ "agent-flag": 667 }, "memoryUsageCount": 18, - "promptQueueUseCount": 4559, + "promptQueueUseCount": 4571, "cachedStatsigGates": { "tengu_disable_bypass_permissions_mode": false, "tengu_use_file_checkpoints": true, @@ -2022,7 +2022,7 @@ "lastOnboardingVersion": "2.0.13", "subscriptionNoticeCount": 0, "hasAvailableSubscription": false, - "changelogLastFetched": 1771560193427, + "changelogLastFetched": 1771561618505, "fallbackAvailableWarningThreshold": 0.2, "hasIdeOnboardingBeenShown": { "vscode": true @@ -2199,8 +2199,8 @@ "lastUsedAt": 1770839993137 }, "backlog": { - "usageCount": 4, - "lastUsedAt": 1770912327282 + "usageCount": 5, + "lastUsedAt": 1771561009889 }, "keybindings-help": { "usageCount": 1, @@ -2223,8 +2223,8 @@ "lastUsedAt": 1771199427014 }, "cognitive-memory": { - "usageCount": 35, - "lastUsedAt": 1771560320138 + "usageCount": 36, + "lastUsedAt": 1771564275406 }, "commit-push": { "usageCount": 17, @@ -2259,8 +2259,8 @@ "lastUsedAt": 1771536951910 }, "save-memories": { - "usageCount": 7, - "lastUsedAt": 1771559941495 + "usageCount": 9, + "lastUsedAt": 1771561845350 } }, "opusProMigrationComplete": true, @@ -2269,7 +2269,7 @@ "passesLastSeenRemaining": 3, "clientDataCache": { "data": {}, - "timestamp": 1771560749962 + "timestamp": 1771564332728 }, "hasShownOpus46Notice": { "57783733-6e1e-48d5-9cb7-fa588a77b795": true diff --git a/backups/.claude.json.backup.1771560601675 b/backups/.claude.json.backup.1771564563445 similarity index 99% rename from backups/.claude.json.backup.1771560601675 rename to backups/.claude.json.backup.1771564563445 index 2e03e47..498ef95 100644 --- a/backups/.claude.json.backup.1771560601675 +++ b/backups/.claude.json.backup.1771564563445 @@ -44,7 +44,7 @@ "agent-flag": 667 }, "memoryUsageCount": 18, - "promptQueueUseCount": 4559, + "promptQueueUseCount": 4571, "cachedStatsigGates": { "tengu_disable_bypass_permissions_mode": false, "tengu_use_file_checkpoints": true, @@ -2022,7 +2022,7 @@ "lastOnboardingVersion": "2.0.13", "subscriptionNoticeCount": 0, "hasAvailableSubscription": false, - "changelogLastFetched": 1771560193427, + "changelogLastFetched": 1771564367705, "fallbackAvailableWarningThreshold": 0.2, "hasIdeOnboardingBeenShown": { "vscode": true @@ -2199,8 +2199,8 @@ "lastUsedAt": 1770839993137 }, "backlog": { - "usageCount": 4, - "lastUsedAt": 1770912327282 + "usageCount": 5, + "lastUsedAt": 1771561009889 }, "keybindings-help": { "usageCount": 1, @@ -2211,8 +2211,8 @@ "lastUsedAt": 1770959377885 }, "sync-config": { - "usageCount": 25, - "lastUsedAt": 1771539739755 + "usageCount": 26, + "lastUsedAt": 1771560749921 }, "claude-optimised": { "usageCount": 4, @@ -2223,8 +2223,8 @@ "lastUsedAt": 1771199427014 }, "cognitive-memory": { - "usageCount": 35, - "lastUsedAt": 1771560320138 + "usageCount": 36, + "lastUsedAt": 1771564275406 }, "commit-push": { "usageCount": 17, @@ -2259,8 +2259,8 @@ "lastUsedAt": 1771536951910 }, "save-memories": { - "usageCount": 7, - "lastUsedAt": 1771559941495 + "usageCount": 9, + "lastUsedAt": 1771561845350 } }, "opusProMigrationComplete": true, @@ -2269,7 +2269,7 @@ "passesLastSeenRemaining": 3, "clientDataCache": { "data": {}, - "timestamp": 1771560553737 + "timestamp": 1771564371989 }, "hasShownOpus46Notice": { "57783733-6e1e-48d5-9cb7-fa588a77b795": true diff --git a/backups/.claude.json.backup.1771560690340 b/backups/.claude.json.backup.1771565237189 similarity index 99% rename from backups/.claude.json.backup.1771560690340 rename to backups/.claude.json.backup.1771565237189 index 9459754..0179717 100644 --- a/backups/.claude.json.backup.1771560690340 +++ b/backups/.claude.json.backup.1771565237189 @@ -44,7 +44,7 @@ "agent-flag": 667 }, "memoryUsageCount": 18, - "promptQueueUseCount": 4559, + "promptQueueUseCount": 4571, "cachedStatsigGates": { "tengu_disable_bypass_permissions_mode": false, "tengu_use_file_checkpoints": true, @@ -2022,7 +2022,7 @@ "lastOnboardingVersion": "2.0.13", "subscriptionNoticeCount": 0, "hasAvailableSubscription": false, - "changelogLastFetched": 1771560193427, + "changelogLastFetched": 1771564367705, "fallbackAvailableWarningThreshold": 0.2, "hasIdeOnboardingBeenShown": { "vscode": true @@ -2199,8 +2199,8 @@ "lastUsedAt": 1770839993137 }, "backlog": { - "usageCount": 4, - "lastUsedAt": 1770912327282 + "usageCount": 5, + "lastUsedAt": 1771561009889 }, "keybindings-help": { "usageCount": 1, @@ -2211,8 +2211,8 @@ "lastUsedAt": 1770959377885 }, "sync-config": { - "usageCount": 25, - "lastUsedAt": 1771539739755 + "usageCount": 26, + "lastUsedAt": 1771560749921 }, "claude-optimised": { "usageCount": 4, @@ -2223,8 +2223,8 @@ "lastUsedAt": 1771199427014 }, "cognitive-memory": { - "usageCount": 35, - "lastUsedAt": 1771560320138 + "usageCount": 36, + "lastUsedAt": 1771564275406 }, "commit-push": { "usageCount": 17, @@ -2259,8 +2259,8 @@ "lastUsedAt": 1771536951910 }, "save-memories": { - "usageCount": 7, - "lastUsedAt": 1771559941495 + "usageCount": 9, + "lastUsedAt": 1771561845350 } }, "opusProMigrationComplete": true, @@ -2269,7 +2269,7 @@ "passesLastSeenRemaining": 3, "clientDataCache": { "data": {}, - "timestamp": 1771560601674 + "timestamp": 1771564603567 }, "hasShownOpus46Notice": { "57783733-6e1e-48d5-9cb7-fa588a77b795": true diff --git a/backups/.claude.json.backup.1771560520084 b/backups/.claude.json.backup.1771565340612 similarity index 99% rename from backups/.claude.json.backup.1771560520084 rename to backups/.claude.json.backup.1771565340612 index efae18a..7ced1a6 100644 --- a/backups/.claude.json.backup.1771560520084 +++ b/backups/.claude.json.backup.1771565340612 @@ -18,7 +18,7 @@ "continue": 665, "ide-hotkey": 74, "terminal-setup": 29, - "custom-commands": 655, + "custom-commands": 670, "shift-enter": 661, "shift-tab": 665, "custom-agents": 663, @@ -32,7 +32,7 @@ "ide-upsell-external-terminal": 668, "stickers-command": 416, "default-permission-mode-config": 436, - "rename-conversation": 655, + "rename-conversation": 670, "frontend-design-plugin": 560, "config-thinking-mode": 412, "guest-passes": 587, @@ -44,7 +44,7 @@ "agent-flag": 667 }, "memoryUsageCount": 18, - "promptQueueUseCount": 4558, + "promptQueueUseCount": 4571, "cachedStatsigGates": { "tengu_disable_bypass_permissions_mode": false, "tengu_use_file_checkpoints": true, @@ -2022,7 +2022,7 @@ "lastOnboardingVersion": "2.0.13", "subscriptionNoticeCount": 0, "hasAvailableSubscription": false, - "changelogLastFetched": 1771560193427, + "changelogLastFetched": 1771564367705, "fallbackAvailableWarningThreshold": 0.2, "hasIdeOnboardingBeenShown": { "vscode": true @@ -2199,8 +2199,8 @@ "lastUsedAt": 1770839993137 }, "backlog": { - "usageCount": 4, - "lastUsedAt": 1770912327282 + "usageCount": 5, + "lastUsedAt": 1771561009889 }, "keybindings-help": { "usageCount": 1, @@ -2211,8 +2211,8 @@ "lastUsedAt": 1770959377885 }, "sync-config": { - "usageCount": 25, - "lastUsedAt": 1771539739755 + "usageCount": 26, + "lastUsedAt": 1771560749921 }, "claude-optimised": { "usageCount": 4, @@ -2223,8 +2223,8 @@ "lastUsedAt": 1771199427014 }, "cognitive-memory": { - "usageCount": 35, - "lastUsedAt": 1771560320138 + "usageCount": 36, + "lastUsedAt": 1771564275406 }, "commit-push": { "usageCount": 17, @@ -2259,8 +2259,8 @@ "lastUsedAt": 1771536951910 }, "save-memories": { - "usageCount": 7, - "lastUsedAt": 1771559941495 + "usageCount": 9, + "lastUsedAt": 1771561845350 } }, "opusProMigrationComplete": true, @@ -2269,7 +2269,7 @@ "passesLastSeenRemaining": 3, "clientDataCache": { "data": {}, - "timestamp": 1771560509737 + "timestamp": 1771565271516 }, "hasShownOpus46Notice": { "57783733-6e1e-48d5-9cb7-fa588a77b795": true diff --git a/backups/.claude.json.backup.1771565450936 b/backups/.claude.json.backup.1771565450936 new file mode 100644 index 0000000..0d6e3d9 --- /dev/null +++ b/backups/.claude.json.backup.1771565450936 @@ -0,0 +1,2295 @@ +{ + "numStartups": 670, + "installMethod": "native", + "autoUpdates": true, + "preferredNotifChannel": "iterm2_with_bell", + "hasSeenTasksHint": true, + "tipsHistory": { + "new-user-warmup": 2, + "theme-command": 660, + "prompt-queue": 12, + "enter-to-steer-in-relatime": 651, + "todo-list": 660, + "# for memory": 38, + "install-github-app": 663, + "permissions": 664, + "drag-and-drop-images": 669, + "double-esc": 75, + "continue": 665, + "ide-hotkey": 74, + "terminal-setup": 29, + "custom-commands": 670, + "shift-enter": 661, + "shift-tab": 665, + "custom-agents": 663, + "status-line": 536, + "git-worktrees": 661, + "image-paste": 666, + "plan-mode-for-complex-tasks": 384, + "double-esc-code-restore": 664, + "tab-toggle-thinking": 329, + "ultrathink-keyword": 423, + "ide-upsell-external-terminal": 668, + "stickers-command": 416, + "default-permission-mode-config": 436, + "rename-conversation": 670, + "frontend-design-plugin": 560, + "config-thinking-mode": 412, + "guest-passes": 587, + "colorterm-truecolor": 638, + "web-app": 657, + "mobile-app": 657, + "install-slack-app": 666, + "btw-side-question": 407, + "agent-flag": 667 + }, + "memoryUsageCount": 18, + "promptQueueUseCount": 4572, + "cachedStatsigGates": { + "tengu_disable_bypass_permissions_mode": false, + "tengu_use_file_checkpoints": true, + "tengu_tool_pear": false, + "tengu_migrate_ignore_patterns": false, + "tengu_halloween": false, + "tengu_web_tasks": true, + "tengu_show_extra_usage_bar": true, + "tengu_log_1p_events": true, + "tengu_enable_versioned_plugins": false, + "code_slack_app_install_banner": false, + "tengu_sumi": true, + "tengu_react_vulnerability_warning": false, + "tengu_tool_result_persistence": false, + "tengu_c4w_usage_limit_notifications_enabled": true, + "tengu_thinkback": false, + "tengu_ant_attribution_header_new": true, + "tengu_clawd_openfire": false, + "tengu_prompt_suggestion": true, + "tengu_year_end_2025_campaign_promo": false, + "tengu_streaming_tool_execution2": false, + "tengu_session_memory": false + }, + "cachedDynamicConfigs": { + "tengu_1p_event_batch_config": { + "scheduledDelayMillis": 5000, + "maxExportBatchSize": 200, + "maxQueueSize": 8192 + }, + "tengu-top-of-feed-tip": { + "tip": "", + "color": "" + } + }, + "cachedGrowthBookFeatures": { + "tengu_pid_based_version_locking": true, + "tengu_accept_with_feedback": true, + "tengu_mcp_tool_search": true, + "tengu_disable_bypass_permissions_mode": false, + "tengu_tool_pear": false, + "tengu_c4w_usage_limit_notifications_enabled": true, + "tengu_thinkback": false, + "tengu_sumi": true, + "tengu_ant_attribution_header_new": true, + "tengu_react_vulnerability_warning": false, + "tengu_tool_result_persistence": true, + "strawberry_granite_flag": "OFF", + "persimmon_marble_flag": "marble", + "tengu_tool_search_unsupported_models": [ + "haiku" + ], + "tengu_1p_event_batch_config": { + "scheduledDelayMillis": 5000, + "maxExportBatchSize": 200, + "maxQueueSize": 8192 + }, + "tengu_event_sampling_config": {}, + "tengu_scratch": false, + "tengu_log_segment_events": false, + "tengu_log_datadog_events": true, + "tengu_streaming_tool_execution2": true, + "tengu_post_compact_survey": false, + "tengu-top-of-feed-tip": { + "tip": "", + "color": "" + }, + "enhanced_telemetry_beta": false, + "tengu_code_diff_cli": true, + "tengu_compact_streaming_retry": false, + "tengu_session_memory": false, + "tengu_bash_haiku_prefetch": true, + "tengu_sm_compact": false, + "tengu_attribution_header": true, + "tengu_keybinding_customization": false, + "tengu_claudeai_mcp_connectors": true, + "tengu_plank_river_frost": "user_intent", + "tengu_brass_pebble": false, + "tengu_plan_mode_interview_phase": false, + "tengu_scarf_coffee": false, + "tengu_keybinding_customization_release": true, + "tengu_pr_status_cli": true, + "tengu_marble_kite": false, + "tengu_kv7_prompt_sort": true, + "tengu_marble_anvil": true, + "tengu_coral_fern": false, + "tengu_cache_plum_violet": true, + "tengu_tst_kx7": false, + "tengu_cork_m4q": true, + "tengu_compact_cache_prefix": true, + "tengu_file_write_optimization": true, + "tengu_system_prompt_global_cache": true, + "tengu_workout": false, + "tengu_plum_vx3": true, + "tengu_vscode_review_upsell": false, + "tengu_vscode_onboarding": false, + "tengu_quiet_fern": false, + "tengu_vinteuil_phrase": true, + "tengu_oboe": true, + "tengu_tst_names_in_messages": false, + "tengu_chomp_inflection": true, + "tengu_silver_lantern": false, + "tengu_copper_lantern": false, + "tengu_workout2": true, + "tengu_marble_lantern_disabled": false, + "tengu_penguins_enabled": true, + "tengu_penguins_off": null, + "tengu_penguin_mode_promo": { + "discountPercent": 50, + "endDate": "Feb 16" + }, + "tengu_mcp_elicitation": false, + "tengu_snippet_save": false, + "tengu_bergotte_lantern": false, + "tengu_amber_flint": true, + "tengu_chrome_auto_enable": false, + "tengu_fgts": false, + "tengu_immediate_model_command": false, + "tengu_mulberry_fog": false, + "tengu_prompt_cache_1h_config": { + "allowlist": [ + "repl_main_thread*", + "sdk" + ] + }, + "tengu_disable_streaming_to_non_streaming_fallback": false, + "tengu_amber_prism": false, + "tengu_birthday_hat": true, + "tengu_moth_copse": false, + "tengu_permission_explainer": true, + "tengu_slate_nexus": false, + "tengu_marble_sandcastle": true, + "tengu_birch_mist": false, + "tengu_oak_drum": false, + "tengu_worktree_mode": true, + "tengu_pebble_leaf_prune": false, + "tengu_swann_brevity": "control", + "tengu_crystal_beam": { + "budgetTokens": 0 + }, + "tengu_tool_input_aliasing": false + }, + "hasSeenStashHint": true, + "firstStartTime": "2025-07-09T18:27:34.950Z", + "userID": "67ff4da909deda738fb9d1bd6b743a7b7072fba19ec9dcc700fb61b83cd680f0", + "projects": { + "/mnt/NV2/Development/paper-dynasty": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 6, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 5.085098, + "lastAPIDuration": 656693, + "lastToolDuration": 87436, + "lastDuration": 73587544, + "lastLinesAdded": 275, + "lastLinesRemoved": 546, + "lastTotalInputTokens": 50542, + "lastTotalOutputTokens": 30915, + "lastTotalCacheCreationInputTokens": 141712, + "lastTotalCacheReadInputTokens": 6788738, + "lastSessionId": "829c2709-523b-455b-8f18-c9e98683677d", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 656657, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 50464, + "outputTokens": 935, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.055139000000000014 + }, + "claude-opus-4-6": { + "inputTokens": 78, + "outputTokens": 29980, + "cacheReadInputTokens": 6788738, + "cacheCreationInputTokens": 141712, + "webSearchRequests": 0, + "costUSD": 5.029959 + } + }, + "lastFpsAverage": 0.18, + "lastFpsLow1Pct": 9.71, + "lastSessionMetrics": { + "frame_duration_ms_count": 13108, + "frame_duration_ms_min": 0.11368899999999371, + "frame_duration_ms_max": 199.6928890000563, + "frame_duration_ms_avg": 4.148051465208603, + "frame_duration_ms_p50": 1.1749479999998584, + "frame_duration_ms_p95": 1.8468253500584952, + "frame_duration_ms_p99": 99.39902745002993 + } + }, + "/mnt/NV2/Development/paper-dynasty/discord-app": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 4, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "gameplay.py", + "helpers.py", + "gauntlets.py", + "players.py", + "gameplay_models.py" + ], + "exampleFilesGeneratedAt": 1771200477099, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 1.701528, + "lastAPIDuration": 166292, + "lastToolDuration": 6794, + "lastDuration": 473503, + "lastLinesAdded": 8, + "lastLinesRemoved": 9, + "lastTotalInputTokens": 22018, + "lastTotalOutputTokens": 4582, + "lastTotalCacheCreationInputTokens": 129852, + "lastTotalCacheReadInputTokens": 1510282, + "lastSessionId": "2b4b8d5b-b512-4151-8e0a-e7df54ca87af", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 166269, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 19317, + "outputTokens": 628, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.022457 + }, + "claude-opus-4-6": { + "inputTokens": 2701, + "outputTokens": 3954, + "cacheReadInputTokens": 1510282, + "cacheCreationInputTokens": 129852, + "webSearchRequests": 0, + "costUSD": 1.6790709999999998 + } + }, + "lastFpsAverage": 9.87, + "lastFpsLow1Pct": 78.57, + "lastSessionMetrics": { + "frame_duration_ms_count": 329, + "frame_duration_ms_min": 0.2862079999999878, + "frame_duration_ms_max": 21.07715700000017, + "frame_duration_ms_avg": 1.241589392097319, + "frame_duration_ms_p50": 0.6591350000016973, + "frame_duration_ms_p95": 4.936919999999964, + "frame_duration_ms_p99": 12.333302280000893 + } + }, + "/mnt/NV2/Development/paper-dynasty/card-creation": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 4, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "creation_helpers.py", + "retrosheet_data.py", + "live_series_update.py", + "db_calls.py", + "calcs_batter.py" + ], + "exampleFilesGeneratedAt": 1771120959673, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.97483075, + "lastAPIDuration": 112428, + "lastToolDuration": 41752, + "lastDuration": 1492175, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 11865, + "lastTotalOutputTokens": 3918, + "lastTotalCacheCreationInputTokens": 52943, + "lastTotalCacheReadInputTokens": 1079940, + "lastSessionId": "bb0edcb2-c231-429b-b9b2-871693d68164", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 112416, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 11817, + "outputTokens": 302, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.013327000000000002 + }, + "claude-opus-4-6": { + "inputTokens": 48, + "outputTokens": 3616, + "cacheReadInputTokens": 1079940, + "cacheCreationInputTokens": 52943, + "webSearchRequests": 0, + "costUSD": 0.96150375 + } + }, + "lastFpsAverage": 2.41, + "lastFpsLow1Pct": 376.75, + "lastSessionMetrics": { + "frame_duration_ms_count": 3600, + "frame_duration_ms_min": 0.242127999999866, + "frame_duration_ms_max": 5.281829999992624, + "frame_duration_ms_avg": 0.580389515832801, + "frame_duration_ms_p50": 0.5064559999955236, + "frame_duration_ms_p95": 0.7619019999605353, + "frame_duration_ms_p99": 2.6560799299745104 + } + }, + "/mnt/NV2/Development/major-domo/discord-app": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 1, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "players.py", + "transactions.py", + "helpers.py", + "db_calls.py", + "draft.py" + ], + "exampleFilesGeneratedAt": 1769634210567, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.41368375, + "lastAPIDuration": 62642, + "lastToolDuration": 5017, + "lastDuration": 759802, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 731, + "lastTotalOutputTokens": 2831, + "lastTotalCacheCreationInputTokens": 36799, + "lastTotalCacheReadInputTokens": 225704, + "lastSessionId": "b028c6d5-906a-42a5-bcc8-3007ad6cc9be", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 62637, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 673, + "outputTokens": 45, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.0008979999999999999 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 58, + "outputTokens": 2786, + "cacheReadInputTokens": 225704, + "cacheCreationInputTokens": 36799, + "webSearchRequests": 0, + "costUSD": 0.41278575 + } + }, + "lastFpsAverage": 3.04, + "lastFpsLow1Pct": 446.27 + }, + "/mnt/NV2/Development/paper-dynasty/database": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 1, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "db_engine.py", + "teams.py", + "battingcardratings.py", + "card_creation.py", + "players.py" + ], + "exampleFilesGeneratedAt": 1771135527599, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.6665207500000002, + "lastAPIDuration": 78227, + "lastToolDuration": 4637, + "lastDuration": 250612, + "lastLinesAdded": 7, + "lastLinesRemoved": 8, + "lastTotalInputTokens": 5310, + "lastTotalOutputTokens": 2768, + "lastTotalCacheCreationInputTokens": 48081, + "lastTotalCacheReadInputTokens": 587961, + "lastSessionId": "93b4db7a-6cf9-4372-b787-48b349953790", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 78224, + "lastModelUsage": { + "claude-opus-4-6": { + "inputTokens": 606, + "outputTokens": 2523, + "cacheReadInputTokens": 587961, + "cacheCreationInputTokens": 48081, + "webSearchRequests": 0, + "costUSD": 0.6605917499999999 + }, + "claude-haiku-4-5-20251001": { + "inputTokens": 4704, + "outputTokens": 245, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.005929 + } + }, + "lastFpsAverage": 7.31, + "lastFpsLow1Pct": 194.99, + "lastSessionMetrics": { + "frame_duration_ms_count": 1828, + "frame_duration_ms_min": 0.0990590000001248, + "frame_duration_ms_max": 8.969790000002831, + "frame_duration_ms_avg": 0.679499891137906, + "frame_duration_ms_p50": 0.5137859999958891, + "frame_duration_ms_p95": 1.3138215000040865, + "frame_duration_ms_p99": 5.171841930003283 + } + }, + "/mnt/NV2/Development/major-domo/website/sba": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 1, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "PlayerView.vue", + "NavBar.vue", + "utilities.ts", + "TeamView.vue", + "ScheduleView.vue" + ], + "exampleFilesGeneratedAt": 1752684082764, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.9222622499999997, + "lastAPIDuration": 211074, + "lastToolDuration": 106309, + "lastDuration": 172787988, + "lastLinesAdded": 6, + "lastLinesRemoved": 15, + "lastTotalInputTokens": 12057, + "lastTotalOutputTokens": 9314, + "lastTotalCacheCreationInputTokens": 68507, + "lastTotalCacheReadInputTokens": 1677945, + "lastSessionId": "2853d835-8e58-4264-9af8-965b509be920" + }, + "/mnt/NV2/Development/claude-strat": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 2, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0, + "lastAPIDuration": 0, + "lastAPIDurationWithoutRetries": 0, + "lastToolDuration": 0, + "lastDuration": 78562, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 0, + "lastTotalOutputTokens": 0, + "lastTotalCacheCreationInputTokens": 0, + "lastTotalCacheReadInputTokens": 0, + "lastFpsAverage": 0.24, + "lastFpsLow1Pct": 460.03, + "lastModelUsage": {}, + "lastSessionId": "18118e64-debf-4131-a196-8b35468cc21d", + "lastSessionMetrics": { + "frame_duration_ms_count": 19, + "frame_duration_ms_min": 0.09748899999999594, + "frame_duration_ms_max": 2.173793000000046, + "frame_duration_ms_avg": 0.7502662105250782, + "frame_duration_ms_p50": 0.5705650000018068, + "frame_duration_ms_p95": 1.5184094000000399, + "frame_duration_ms_p99": 2.0427162800000453 + } + }, + "/mnt/NV2/Development/claude-home": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "hasTrustDialogHooksAccepted": false, + "projectOnboardingSeenCount": 6, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "exampleFiles": [ + "CLAUDE.md", + "hosts.yml", + "start-tdarr-gpu-podman-clean.sh", + "tdarr-timeout-monitor.sh", + "docker-build-template.yml" + ], + "exampleFilesGeneratedAt": 1771197437832, + "hasTrustDialogBashAccepted": true, + "disabledMcpServers": [ + "ssh-vultr", + "podman", + "ssh-akamai", + "ssh-database-apis", + "ssh-discord-bots", + "ssh-docker-home", + "ssh-docker-vpn", + "ssh-pihole", + "ssh-sba-bots", + "ssh-tdarr", + "notediscovery" + ], + "lastCost": 16.71361575000001, + "lastAPIDuration": 1844582, + "lastToolDuration": 816971, + "lastDuration": 29558088, + "lastLinesAdded": 2386, + "lastLinesRemoved": 60, + "lastTotalInputTokens": 203907, + "lastTotalOutputTokens": 87182, + "lastTotalCacheCreationInputTokens": 987411, + "lastTotalCacheReadInputTokens": 16492670, + "lastSessionId": "ee8998aa-f26c-4743-84dc-0ba35f4e49c4", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 1843027, + "lastModelUsage": { + "claude-opus-4-6": { + "inputTokens": 7030, + "outputTokens": 57045, + "cacheReadInputTokens": 14601090, + "cacheCreationInputTokens": 789421, + "webSearchRequests": 0, + "costUSD": 13.695701250000003 + }, + "claude-haiku-4-5-20251001": { + "inputTokens": 196822, + "outputTokens": 4750, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 4167, + "webSearchRequests": 0, + "costUSD": 0.22578074999999995 + }, + "claude-sonnet-4-6": { + "inputTokens": 55, + "outputTokens": 25387, + "cacheReadInputTokens": 1891580, + "cacheCreationInputTokens": 193823, + "webSearchRequests": 0, + "costUSD": 2.7921337499999996 + } + }, + "lastSessionMetrics": { + "frame_duration_ms_count": 35110, + "frame_duration_ms_min": 0.10013899999830755, + "frame_duration_ms_max": 45.71880799904466, + "frame_duration_ms_avg": 1.8384896022149897, + "frame_duration_ms_p50": 0.9785875007510185, + "frame_duration_ms_p95": 9.048351652547707, + "frame_duration_ms_p99": 25.241195021457933 + }, + "lastFpsAverage": 1.19, + "lastFpsLow1Pct": 43.16 + }, + "/mnt/NV2/Development/major-domo": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 21, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.038617, + "lastAPIDuration": 9353, + "lastToolDuration": 0, + "lastDuration": 7595, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 4, + "lastTotalOutputTokens": 370, + "lastTotalCacheCreationInputTokens": 9588, + "lastTotalCacheReadInputTokens": 0, + "lastSessionId": "4732b974-2222-43bd-ade6-68f939374e2d" + }, + "/mnt/NV2/Development/major-domo/discord-app-v2": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "bot.py", + "picks.py", + "player_service.py", + "draft_monitor.py", + "transaction_builder.py" + ], + "exampleFilesGeneratedAt": 1771010003932, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.48880999999999997, + "lastAPIDuration": 82556, + "lastToolDuration": 762, + "lastDuration": 31782115, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 10182, + "lastTotalOutputTokens": 3557, + "lastTotalCacheCreationInputTokens": 46594, + "lastTotalCacheReadInputTokens": 209453, + "lastSessionId": "af95e872-d30d-4e18-bba0-9b54a2db2472", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 82551, + "lastModelUsage": { + "claude-opus-4-6": { + "inputTokens": 301, + "outputTokens": 3185, + "cacheReadInputTokens": 209453, + "cacheCreationInputTokens": 46594, + "webSearchRequests": 0, + "costUSD": 0.47706899999999997 + }, + "claude-haiku-4-5-20251001": { + "inputTokens": 9881, + "outputTokens": 372, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.011741000000000001 + } + }, + "lastFpsAverage": 0.06, + "lastFpsLow1Pct": 712.84, + "lastSessionMetrics": { + "frame_duration_ms_count": 1990, + "frame_duration_ms_min": 0.1826390000005631, + "frame_duration_ms_max": 7.607172000003629, + "frame_duration_ms_avg": 0.5568929904514509, + "frame_duration_ms_p50": 0.49148100000456907, + "frame_duration_ms_p95": 0.7997885000371748, + "frame_duration_ms_p99": 1.2905342006038087 + } + }, + "/mnt/NV2/Development/major-domo/database": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "stratplay.py", + "db_engine.py", + "players.py", + "main.py", + "player_service.py" + ], + "exampleFilesGeneratedAt": 1770846518939, + "lastTotalWebSearchRequests": 0, + "hasCompletedProjectOnboarding": true, + "lastCost": 2.3901955, + "lastAPIDuration": 301972, + "lastToolDuration": 12114, + "lastDuration": 1670471, + "lastLinesAdded": 10, + "lastLinesRemoved": 53, + "lastTotalInputTokens": 48396, + "lastTotalOutputTokens": 9953, + "lastTotalCacheCreationInputTokens": 108474, + "lastTotalCacheReadInputTokens": 2959228, + "lastSessionId": "5e851c22-a330-498c-b920-91d07e9d7272", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 301237, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 44789, + "outputTokens": 1324, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 10510, + "webSearchRequests": 0, + "costUSD": 0.06454649999999999 + }, + "claude-opus-4-6": { + "inputTokens": 3607, + "outputTokens": 8629, + "cacheReadInputTokens": 2959228, + "cacheCreationInputTokens": 97964, + "webSearchRequests": 0, + "costUSD": 2.3256489999999994 + } + }, + "lastFpsAverage": 3.48, + "lastFpsLow1Pct": 61.79, + "lastSessionMetrics": { + "frame_duration_ms_count": 5811, + "frame_duration_ms_min": 0.06511999999929685, + "frame_duration_ms_max": 24.917415999807417, + "frame_duration_ms_avg": 1.2880430752023766, + "frame_duration_ms_p50": 0.6170755000021018, + "frame_duration_ms_p95": 8.055697949981514, + "frame_duration_ms_p99": 15.687149549964806 + } + }, + "/home/cal": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 2, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "lastCost": 0.49167225000000003, + "lastAPIDuration": 57564, + "lastToolDuration": 795, + "lastDuration": 54969526, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 13534, + "lastTotalOutputTokens": 2290, + "lastTotalCacheCreationInputTokens": 54325, + "lastTotalCacheReadInputTokens": 171658, + "lastTotalWebSearchRequests": 0, + "lastSessionId": "0828ba77-a2b4-4739-901a-2bde4ca9c84d", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 57561, + "lastFpsAverage": 0.03, + "lastFpsLow1Pct": 489.2, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 13522, + "outputTokens": 226, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.014651999999999998 + }, + "claude-opus-4-6": { + "inputTokens": 12, + "outputTokens": 2064, + "cacheReadInputTokens": 171658, + "cacheCreationInputTokens": 54325, + "webSearchRequests": 0, + "costUSD": 0.47702025 + } + }, + "lastSessionMetrics": { + "frame_duration_ms_count": 1797, + "frame_duration_ms_min": 0.07679000124335289, + "frame_duration_ms_max": 3.8076990004628897, + "frame_duration_ms_avg": 0.4328137100382606, + "frame_duration_ms_p50": 0.37359199952334166, + "frame_duration_ms_p95": 0.6538420001044866, + "frame_duration_ms_p99": 1.549595779986366 + } + }, + "/mnt/NV2/Development/paper-dynasty/gameplay-website": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 2, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "lastCost": 20.37967725000001, + "lastAPIDuration": 4284676, + "lastToolDuration": 162304, + "lastDuration": 143735767, + "lastLinesAdded": 10089, + "lastLinesRemoved": 431, + "lastTotalInputTokens": 119579, + "lastTotalOutputTokens": 195181, + "lastTotalCacheCreationInputTokens": 2081675, + "lastTotalCacheReadInputTokens": 31932818, + "lastTotalWebSearchRequests": 0, + "lastSessionId": "e3e9c25e-bf3a-476e-a6e3-4ab186fd09a7" + }, + "/mnt/NV2/Development/paper-dynasty/gameplay-webapp": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 15, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "hasCompletedProjectOnboarding": true + }, + "/mnt/NV2/Development/strat-gameplay-webapp": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "ignorePatterns": [], + "projectOnboardingSeenCount": 5, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "game_engine.py", + "game_models.py", + "[id].vue", + "state_manager.py", + "handlers.py" + ], + "exampleFilesGeneratedAt": 1770420014240, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 16.934636699999995, + "lastAPIDuration": 2029033, + "lastToolDuration": 334075, + "lastDuration": 72071738, + "lastLinesAdded": 1642, + "lastLinesRemoved": 807, + "lastTotalInputTokens": 129026, + "lastTotalOutputTokens": 104896, + "lastTotalCacheCreationInputTokens": 898174, + "lastTotalCacheReadInputTokens": 21863464, + "lastSessionId": "96ccb792-ef5c-4f2d-abc0-3ab3f694d5d4", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 2028886, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 128537, + "outputTokens": 21695, + "cacheReadInputTokens": 1593012, + "cacheCreationInputTokens": 258592, + "webSearchRequests": 0, + "costUSD": 0.7195532000000001 + }, + "claude-opus-4-6": { + "inputTokens": 419, + "outputTokens": 78422, + "cacheReadInputTokens": 19831105, + "cacheCreationInputTokens": 605182, + "webSearchRequests": 0, + "costUSD": 15.660584999999992 + }, + "claude-sonnet-4-5-20250929": { + "inputTokens": 70, + "outputTokens": 4779, + "cacheReadInputTokens": 439347, + "cacheCreationInputTokens": 34400, + "webSearchRequests": 0, + "costUSD": 0.5544985 + } + }, + "lastFpsAverage": 0.51, + "lastFpsLow1Pct": 8.98, + "lastSessionMetrics": { + "frame_duration_ms_count": 36971, + "frame_duration_ms_min": 0.023979991674423218, + "frame_duration_ms_max": 471.0088710002601, + "frame_duration_ms_avg": 4.1840136584065, + "frame_duration_ms_p50": 1.0950170001015067, + "frame_duration_ms_p95": 2.274254503706469, + "frame_duration_ms_p99": 113.62059141005383 + } + }, + "/home/cal/PAI-personal": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 3, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "README.md", + "stop-hook.ts", + "load-dynamic-requirements.ts", + "server.ts", + "voice-system.md" + ], + "exampleFilesGeneratedAt": 1762705373825, + "lastTotalWebSearchRequests": 0, + "lastCost": 0.06835225, + "lastAPIDuration": 6739, + "lastToolDuration": 0, + "lastDuration": 184755, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 133, + "lastTotalOutputTokens": 173, + "lastTotalCacheCreationInputTokens": 17559, + "lastTotalCacheReadInputTokens": 0, + "lastSessionId": "aaf66661-ddee-428d-abaa-f3ee035385f7" + }, + "/home/cal/work": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 1, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [], + "lastCost": 0.45607089999999995, + "lastAPIDuration": 150289, + "lastToolDuration": 7286, + "lastDuration": 1692139, + "lastLinesAdded": 5, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 11418, + "lastTotalOutputTokens": 5237, + "lastTotalCacheCreationInputTokens": 75368, + "lastTotalCacheReadInputTokens": 292173, + "lastTotalWebSearchRequests": 0, + "lastSessionId": "df8bf8dd-746a-46ef-9faa-448f402968cc" + }, + "/home/cal/work/esb-monorepo": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 7, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "main.py", + "output_utils.py", + "base.py", + "validate_field_mappings.py", + "test_end_to_end.py" + ], + "exampleFilesGeneratedAt": 1771431800882, + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "lastCost": 13.231698250000006, + "lastAPIDuration": 891789, + "lastToolDuration": 132172, + "lastDuration": 18087965, + "lastLinesAdded": 263, + "lastLinesRemoved": 7, + "lastTotalInputTokens": 77295, + "lastTotalOutputTokens": 35442, + "lastTotalCacheCreationInputTokens": 1044639, + "lastTotalCacheReadInputTokens": 11865821, + "lastSessionId": "ace0ec70-77ed-44a1-806a-904ce665899a", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 891685, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 71834, + "outputTokens": 2746, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 32095, + "webSearchRequests": 0, + "costUSD": 0.12568275000000004 + }, + "claude-opus-4-6": { + "inputTokens": 5448, + "outputTokens": 27103, + "cacheReadInputTokens": 11539293, + "cacheCreationInputTokens": 945261, + "webSearchRequests": 0, + "costUSD": 12.38234275 + }, + "claude-sonnet-4-6": { + "inputTokens": 13, + "outputTokens": 5593, + "cacheReadInputTokens": 326528, + "cacheCreationInputTokens": 67283, + "webSearchRequests": 0, + "costUSD": 0.72367275 + } + }, + "lastFpsAverage": 0.78, + "lastFpsLow1Pct": 25.74, + "lastSessionMetrics": { + "frame_duration_ms_count": 14187, + "frame_duration_ms_min": 0.08366899937391281, + "frame_duration_ms_max": 68.00957799889147, + "frame_duration_ms_avg": 2.3383289160528014, + "frame_duration_ms_p50": 1.0047624995931983, + "frame_duration_ms_p95": 13.091784298792101, + "frame_duration_ms_p99": 38.75486159028485 + } + }, + "/mnt/NV2/Development/efd-trading-card-base": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 3, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "ModBehaviour.cs", + "Patches.cs", + "StorageHelper.cs", + "TagHelper.cs", + "PackHelper.cs" + ], + "hasCompletedProjectOnboarding": true, + "lastTotalWebSearchRequests": 0, + "exampleFilesGeneratedAt": 1766960877904, + "lastCost": 1.1139348, + "lastAPIDuration": 360792, + "lastToolDuration": 124593, + "lastDuration": 437573762, + "lastLinesAdded": 480, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 29358, + "lastTotalOutputTokens": 21239, + "lastTotalCacheCreationInputTokens": 105536, + "lastTotalCacheReadInputTokens": 1377470, + "lastSessionId": "b8161215-eaaf-4b3d-a7c4-1211a973173d", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 360778, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 22987, + "outputTokens": 12005, + "cacheReadInputTokens": 867968, + "cacheCreationInputTokens": 46586, + "webSearchRequests": 0, + "costUSD": 0.22804130000000003 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 6371, + "outputTokens": 9234, + "cacheReadInputTokens": 509502, + "cacheCreationInputTokens": 58950, + "webSearchRequests": 0, + "costUSD": 0.8858935000000001 + } + } + }, + "/mnt/NV2/Development/youtube-transcriber": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 1, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [], + "lastCost": 0.5343026, + "lastAPIDuration": 157690, + "lastToolDuration": 40133, + "lastDuration": 1963443, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 11575, + "lastTotalOutputTokens": 7644, + "lastTotalCacheCreationInputTokens": 74892, + "lastTotalCacheReadInputTokens": 329416, + "lastTotalWebSearchRequests": 0, + "lastSessionId": "a3410bfd-60df-45cb-b5ba-d2aa42af040b", + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastAPIDurationWithoutRetries": 157684, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 9557, + "outputTokens": 3569, + "cacheReadInputTokens": 90706, + "cacheCreationInputTokens": 40313, + "webSearchRequests": 0, + "costUSD": 0.08686385 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 2018, + "outputTokens": 4075, + "cacheReadInputTokens": 238710, + "cacheCreationInputTokens": 34579, + "webSearchRequests": 0, + "costUSD": 0.44743875000000005 + } + } + }, + "/mnt/NV2/Development/major-domo/sba-website": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "NavBar.vue", + "utilities.ts", + "PlayerView.vue", + "pitchingStatsService.ts", + "GameView.vue" + ], + "exampleFilesGeneratedAt": 1764698332308, + "hasCompletedProjectOnboarding": true, + "lastCost": 0.16633325, + "lastAPIDuration": 23227, + "lastToolDuration": 50, + "lastDuration": 90937, + "lastLinesAdded": 3, + "lastLinesRemoved": 1, + "lastTotalInputTokens": 568, + "lastTotalOutputTokens": 891, + "lastTotalCacheCreationInputTokens": 24431, + "lastTotalCacheReadInputTokens": 40417, + "lastTotalWebSearchRequests": 0, + "lastSessionId": "c44482c8-6b43-4473-baf1-b7e7f1713d05" + }, + "/mnt/NV2/Development/vagabond-rpg-foundryvtt": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "vagabond.mjs", + "character.mjs", + "base-actor-sheet.mjs", + "weapon.mjs", + "_chat-cards.scss" + ], + "exampleFilesGeneratedAt": 1771348866204, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "hasCompletedProjectOnboarding": true, + "lastCost": 2.4916862500000017, + "lastAPIDuration": 617124, + "lastAPIDurationWithoutRetries": 617051, + "lastToolDuration": 41476, + "lastDuration": 14881048, + "lastLinesAdded": 48, + "lastLinesRemoved": 3, + "lastTotalInputTokens": 74007, + "lastTotalOutputTokens": 32137, + "lastTotalCacheCreationInputTokens": 143503, + "lastTotalCacheReadInputTokens": 2478749, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 73923, + "outputTokens": 16775, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 37370, + "webSearchRequests": 0, + "costUSD": 0.20451049999999996 + }, + "claude-opus-4-6": { + "inputTokens": 84, + "outputTokens": 15362, + "cacheReadInputTokens": 2478749, + "cacheCreationInputTokens": 106133, + "webSearchRequests": 0, + "costUSD": 2.2871757500000007 + } + }, + "lastSessionId": "3e0d8693-8b59-4b4b-b895-0a6d0df271b9", + "lastFpsAverage": 0.64, + "lastFpsLow1Pct": 75.21, + "lastSessionMetrics": { + "frame_duration_ms_count": 9467, + "frame_duration_ms_min": 0.22532899997895584, + "frame_duration_ms_max": 27.93686599843204, + "frame_duration_ms_avg": 1.123230763174562, + "frame_duration_ms_p50": 0.6752699996577576, + "frame_duration_ms_p95": 4.194021500030064, + "frame_duration_ms_p99": 13.320319429975934 + } + }, + "/mnt/NV2/Development/voice-server": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 121, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastCost": 1.1846112499999997, + "lastAPIDuration": 285962, + "lastAPIDurationWithoutRetries": 285957, + "lastToolDuration": 2561, + "lastDuration": 3533895, + "lastLinesAdded": 1, + "lastLinesRemoved": 1, + "lastTotalInputTokens": 37077, + "lastTotalOutputTokens": 11625, + "lastTotalCacheCreationInputTokens": 97481, + "lastTotalCacheReadInputTokens": 495130, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 34570, + "outputTokens": 497, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.037055000000000005 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 2507, + "outputTokens": 11128, + "cacheReadInputTokens": 495130, + "cacheCreationInputTokens": 97481, + "webSearchRequests": 0, + "costUSD": 1.1475562499999996 + } + }, + "lastSessionId": "554acadb-bd48-444d-bba0-eb56b7f973b7", + "exampleFiles": [ + "models.py", + "queue_manager.py", + "routes.py", + "test_models.py", + "test_api.py" + ], + "exampleFilesGeneratedAt": 1766157887772 + }, + "/home/cal/.claude": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "hasCompletedProjectOnboarding": true, + "lastCost": 2.0461577500000003, + "lastAPIDuration": 375500, + "lastAPIDurationWithoutRetries": 375491, + "lastToolDuration": 5648, + "lastDuration": 3861491, + "lastLinesAdded": 34, + "lastLinesRemoved": 25, + "lastTotalInputTokens": 14373, + "lastTotalOutputTokens": 13569, + "lastTotalCacheCreationInputTokens": 81883, + "lastTotalCacheReadInputTokens": 2301862, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 4643, + "outputTokens": 453, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.006907999999999999 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 9730, + "outputTokens": 13116, + "cacheReadInputTokens": 2301862, + "cacheCreationInputTokens": 81883, + "webSearchRequests": 0, + "costUSD": 2.03924975 + } + }, + "lastSessionId": "848aa776-de5b-4135-8538-89ed5b29151c" + }, + "/mnt/NV2/Development/openscad-models": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 2, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastCost": 2.7214542499999994, + "lastAPIDuration": 781798, + "lastAPIDurationWithoutRetries": 777552, + "lastToolDuration": 3537, + "lastDuration": 80207818, + "lastLinesAdded": 102, + "lastLinesRemoved": 52, + "lastTotalInputTokens": 26454, + "lastTotalOutputTokens": 32767, + "lastTotalCacheCreationInputTokens": 126339, + "lastTotalCacheReadInputTokens": 2186269, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 23726, + "outputTokens": 892, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.028186000000000003 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 2728, + "outputTokens": 31875, + "cacheReadInputTokens": 2186269, + "cacheCreationInputTokens": 126339, + "webSearchRequests": 0, + "costUSD": 2.69326825 + } + }, + "lastSessionId": "dc88df52-7868-463f-87b1-9b9c66fcfe4b", + "exampleFiles": [ + "gfci-paddle-switch-extended.scad", + "gfci-paddle-switch-extended-2d.scad", + "test-avocado.scad", + "gfci-paddle-switch-extended-template.svg", + "avocado-nameplate.stl" + ], + "exampleFilesGeneratedAt": 1766607808626 + }, + "/mnt/NV2/Development/headless-claude": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastCost": 14.681952000000011, + "lastAPIDuration": 1922503, + "lastAPIDurationWithoutRetries": 1922344, + "lastToolDuration": 404961, + "lastDuration": 4275175, + "lastLinesAdded": 973, + "lastLinesRemoved": 191, + "lastTotalInputTokens": 282513, + "lastTotalOutputTokens": 72914, + "lastTotalCacheCreationInputTokens": 659546, + "lastTotalCacheReadInputTokens": 17072917, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 279316, + "outputTokens": 4741, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.30302100000000004 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 3197, + "outputTokens": 68173, + "cacheReadInputTokens": 17072917, + "cacheCreationInputTokens": 659546, + "webSearchRequests": 0, + "costUSD": 14.378931 + } + }, + "lastSessionId": "38725d3f-5454-4fa7-b21b-8a051125e9f0" + }, + "/mnt/NV2/Development": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastCost": 5.5604301, + "lastAPIDuration": 1333168, + "lastAPIDurationWithoutRetries": 1328256, + "lastToolDuration": 743549, + "lastDuration": 4298210, + "lastLinesAdded": 1623, + "lastLinesRemoved": 222, + "lastTotalInputTokens": 58261, + "lastTotalOutputTokens": 56790, + "lastTotalCacheCreationInputTokens": 549016, + "lastTotalCacheReadInputTokens": 1990295, + "lastTotalWebSearchRequests": 7, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 36579, + "outputTokens": 1267, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.04291400000000001 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 19375, + "outputTokens": 34688, + "cacheReadInputTokens": 1390958, + "cacheCreationInputTokens": 491962, + "webSearchRequests": 7, + "costUSD": 4.8043165000000005 + }, + "claude-sonnet-4-5-20250929": { + "inputTokens": 2307, + "outputTokens": 20835, + "cacheReadInputTokens": 599337, + "cacheCreationInputTokens": 57054, + "webSearchRequests": 0, + "costUSD": 0.7131995999999999 + } + }, + "lastSessionId": "b5e5205f-dac0-4e82-b7d2-2a43c1875f1c" + }, + "/mnt/NV2/Development/tcg-poc": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [], + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "lastCost": 0.3143737499999999, + "lastAPIDuration": 87455, + "lastAPIDurationWithoutRetries": 87447, + "lastToolDuration": 393, + "lastDuration": 242060, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 10154, + "lastTotalOutputTokens": 3203, + "lastTotalCacheCreationInputTokens": 26841, + "lastTotalCacheReadInputTokens": 126753, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 7906, + "outputTokens": 799, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.011900999999999998 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 2248, + "outputTokens": 2404, + "cacheReadInputTokens": 126753, + "cacheCreationInputTokens": 26841, + "webSearchRequests": 0, + "costUSD": 0.30247274999999996 + } + }, + "lastSessionId": "d0705af3-8ca6-4d83-9419-51adf7e8fbb4" + }, + "/mnt/NV2/Development/tcg-project": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [], + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "hasCompletedProjectOnboarding": true, + "lastCost": 7.4633087499999995, + "lastAPIDuration": 1024093, + "lastAPIDurationWithoutRetries": 1021756, + "lastToolDuration": 4894, + "lastDuration": 353865522, + "lastLinesAdded": 942, + "lastLinesRemoved": 532, + "lastTotalInputTokens": 37687, + "lastTotalOutputTokens": 50556, + "lastTotalCacheCreationInputTokens": 526103, + "lastTotalCacheReadInputTokens": 5775948, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 34751, + "outputTokens": 1307, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.041286 + }, + "claude-opus-4-5-20251101": { + "inputTokens": 2936, + "outputTokens": 49249, + "cacheReadInputTokens": 5775948, + "cacheCreationInputTokens": 526103, + "webSearchRequests": 0, + "costUSD": 7.42202275 + } + }, + "lastSessionId": "17cea69f-4257-4c39-a978-3254d0906a34" + }, + "/mnt/NV2/Development/mantimon-tcg": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 286, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "card.py", + "engine.py", + "game_service.py", + "game_state.py", + "turn_manager.py" + ], + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "exampleFilesGeneratedAt": 1771119156109, + "hasCompletedProjectOnboarding": true, + "lastCost": 45.331285999999906, + "lastAPIDuration": 7423555, + "lastAPIDurationWithoutRetries": 7422611, + "lastToolDuration": 3967084, + "lastDuration": 55754959, + "lastLinesAdded": 16117, + "lastLinesRemoved": 330, + "lastTotalInputTokens": 530738, + "lastTotalOutputTokens": 409841, + "lastTotalCacheCreationInputTokens": 1976236, + "lastTotalCacheReadInputTokens": 45760024, + "lastTotalWebSearchRequests": 0, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 528784, + "outputTokens": 12803, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 85744, + "webSearchRequests": 0, + "costUSD": 0.6999789999999999 + }, + "claude-opus-4-6": { + "inputTokens": 320, + "outputTokens": 57172, + "cacheReadInputTokens": 17177654, + "cacheCreationInputTokens": 462784, + "webSearchRequests": 0, + "costUSD": 12.912127000000007 + }, + "claude-sonnet-4-5-20250929": { + "inputTokens": 1634, + "outputTokens": 339866, + "cacheReadInputTokens": 28582370, + "cacheCreationInputTokens": 1427708, + "webSearchRequests": 0, + "costUSD": 31.719179999999994 + } + }, + "lastSessionId": "a9e4fa29-4f81-47c5-88d2-a9dea0793d0f", + "lastFpsAverage": 1.81, + "lastFpsLow1Pct": 99.2, + "lastSessionMetrics": { + "frame_duration_ms_count": 100694, + "frame_duration_ms_min": 0.08616900071501732, + "frame_duration_ms_max": 43.1600469998084, + "frame_duration_ms_avg": 0.9782929465193478, + "frame_duration_ms_p50": 0.5610404997132719, + "frame_duration_ms_p95": 4.414866499626077, + "frame_duration_ms_p99": 9.795633430983868 + } + }, + "/mnt/NV2/Development/sba-scouting": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 152, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "app.py", + "config.py", + "importer.py", + "models.py", + "queries.py" + ], + "reactVulnerabilityCache": { + "detected": false, + "package": null, + "packageName": null, + "version": null, + "packageManager": null + }, + "exampleFilesGeneratedAt": 1770754505849, + "hasCompletedProjectOnboarding": true, + "lastCost": 3.38631825, + "lastAPIDuration": 571422, + "lastAPIDurationWithoutRetries": 571376, + "lastToolDuration": 10180, + "lastDuration": 7861779, + "lastLinesAdded": 148, + "lastLinesRemoved": 22, + "lastTotalInputTokens": 49841, + "lastTotalOutputTokens": 23633, + "lastTotalCacheCreationInputTokens": 132657, + "lastTotalCacheReadInputTokens": 3888956, + "lastTotalWebSearchRequests": 0, + "lastFpsAverage": 1.23, + "lastFpsLow1Pct": 47.34, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 49289, + "outputTokens": 1507, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.05682400000000001 + }, + "claude-sonnet-4-5-20250929": { + "inputTokens": 552, + "outputTokens": 22126, + "cacheReadInputTokens": 3888956, + "cacheCreationInputTokens": 132657, + "webSearchRequests": 0, + "costUSD": 3.32949425 + } + }, + "lastSessionId": "3355afd4-9cb8-4c16-840d-ae19696ba284" + }, + "/mnt/NV2/Development/my-memory": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "app.py", + "board_window.py", + "models.py", + "transcriber.py", + "README.md" + ], + "hasCompletedProjectOnboarding": true, + "lastSessionMetrics": { + "frame_duration_ms_count": 7981, + "frame_duration_ms_min": 0.05863899999530986, + "frame_duration_ms_max": 6.910323999938555, + "frame_duration_ms_avg": 0.4394333594793528, + "frame_duration_ms_p50": 0.3969669999787584, + "frame_duration_ms_p95": 0.6579631500033425, + "frame_duration_ms_p99": 1.8215813999983947 + }, + "lastCost": 1.0844382499999998, + "lastAPIDuration": 411476, + "lastAPIDurationWithoutRetries": 411448, + "lastToolDuration": 264192, + "lastDuration": 69498101, + "lastLinesAdded": 95, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 38299, + "lastTotalOutputTokens": 20028, + "lastTotalCacheCreationInputTokens": 61545, + "lastTotalCacheReadInputTokens": 354518, + "lastTotalWebSearchRequests": 0, + "lastFpsAverage": 0.12, + "lastFpsLow1Pct": 516.63, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 38278, + "outputTokens": 828, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.042418000000000004 + }, + "claude-opus-4-6": { + "inputTokens": 21, + "outputTokens": 19200, + "cacheReadInputTokens": 354518, + "cacheCreationInputTokens": 61545, + "webSearchRequests": 0, + "costUSD": 1.04202025 + } + }, + "lastSessionId": "517562a3-10fb-4106-a5cc-a39a40e3f8e7", + "exampleFilesGeneratedAt": 1770844148005 + }, + "/mnt/NV2/Development/ai-assistant": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": false, + "projectOnboardingSeenCount": 22, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [], + "lastCost": 0.000783, + "lastAPIDuration": 2081, + "lastAPIDurationWithoutRetries": 2081, + "lastToolDuration": 0, + "lastDuration": 5622, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 143, + "lastTotalOutputTokens": 128, + "lastTotalCacheCreationInputTokens": 0, + "lastTotalCacheReadInputTokens": 0, + "lastTotalWebSearchRequests": 0, + "lastFpsAverage": 4.34, + "lastFpsLow1Pct": 338.75, + "lastModelUsage": { + "claude-haiku-4-5-20251001": { + "inputTokens": 143, + "outputTokens": 128, + "cacheReadInputTokens": 0, + "cacheCreationInputTokens": 0, + "webSearchRequests": 0, + "costUSD": 0.000783 + } + }, + "lastSessionId": "d8bf1d2b-235c-4e4c-be88-46dc493dc714", + "lastSessionMetrics": { + "frame_duration_ms_count": 22, + "frame_duration_ms_min": 0.08473000000000752, + "frame_duration_ms_max": 2.9520669999999427, + "frame_duration_ms_avg": 1.1000014545454322, + "frame_duration_ms_p50": 1.0439814999999726, + "frame_duration_ms_p95": 2.028548699999737, + "frame_duration_ms_p99": 2.7626715699998945 + }, + "hasCompletedProjectOnboarding": true + }, + "/mnt/NV2/Development/test_autoforge_project/pd-team-dashboard": { + "allowedTools": [], + "mcpContextUris": [], + "mcpServers": {}, + "enabledMcpjsonServers": [], + "disabledMcpjsonServers": [], + "hasTrustDialogAccepted": true, + "projectOnboardingSeenCount": 0, + "hasClaudeMdExternalIncludesApproved": false, + "hasClaudeMdExternalIncludesWarningShown": false, + "exampleFiles": [ + "main.py", + "database.py", + "config.py", + "env.py", + "__init__.py" + ], + "exampleFilesGeneratedAt": 1771136719751, + "hasCompletedProjectOnboarding": true, + "lastCost": 0, + "lastAPIDuration": 0, + "lastAPIDurationWithoutRetries": 0, + "lastToolDuration": 0, + "lastDuration": 55110401, + "lastLinesAdded": 0, + "lastLinesRemoved": 0, + "lastTotalInputTokens": 0, + "lastTotalOutputTokens": 0, + "lastTotalCacheCreationInputTokens": 0, + "lastTotalCacheReadInputTokens": 0, + "lastTotalWebSearchRequests": 0, + "lastFpsAverage": 0, + "lastFpsLow1Pct": 272.7, + "lastModelUsage": {}, + "lastSessionId": "44246c87-0c70-40b5-a092-c7388896450f", + "lastSessionMetrics": { + "frame_duration_ms_count": 190, + "frame_duration_ms_min": 0.05084999999962747, + "frame_duration_ms_max": 4.276786000002176, + "frame_duration_ms_avg": 1.0820387367652373, + "frame_duration_ms_p50": 0.8855180000006158, + "frame_duration_ms_p95": 2.635911999360587, + "frame_duration_ms_p99": 3.515721791167741 + } + } + }, + "hasCompletedOnboarding": true, + "lastOnboardingVersion": "2.0.13", + "subscriptionNoticeCount": 0, + "hasAvailableSubscription": false, + "changelogLastFetched": 1771564367705, + "fallbackAvailableWarningThreshold": 0.2, + "hasIdeOnboardingBeenShown": { + "vscode": true + }, + "lastReleaseNotesSeen": "2.1.49", + "isQualifiedForDataSharing": false, + "hasIdeAutoConnectDialogBeenShown": true, + "shiftEnterKeyBindingInstalled": true, + "hasUsedBackslashReturn": true, + "s1mAccessCache": { + "57783733-6e1e-48d5-9cb7-fa588a77b795": { + "hasAccess": false, + "hasAccessNotAsDefault": false, + "timestamp": 1771348865231 + }, + "6e3a13d6-2c72-468b-9ee9-b1d8f4711050": { + "hasAccess": false, + "hasAccessNotAsDefault": false, + "timestamp": 1761607064229 + } + }, + "hasOpusPlanDefault": false, + "lastPlanModeUse": 1771532414321, + "feedbackSurveyState": { + "lastShownTime": 1771451253831 + }, + "sonnet45MigrationComplete": true, + "claudeCodeFirstTokenDate": "2025-07-09T18:28:23.685647Z", + "mcpServers": { + "cognitive-memory": { + "command": "python3", + "args": [ + "/home/cal/.claude/skills/cognitive-memory/mcp_server.py" + ] + } + }, + "s1mNonSubscriberAccessCache": { + "fda1c56e-6b2f-4c2d-94f2-636cf90ad0f2": { + "hasAccess": false, + "timestamp": 1760119775598 + } + }, + "anonymousId": "claudecode.v1.52e3466d-bbf3-4c64-9a28-5c45f8698705", + "autoUpdatesProtectedForNative": true, + "githubRepoPaths": { + "calcorum/strat-gameplay-webapp": [ + "/mnt/NV2/Development/strat-gameplay-webapp" + ], + "calcorum/claude-home": [ + "/mnt/NV2/Development/claude-home" + ], + "calcorum/efd-trading-card-mod": [ + "/mnt/NV2/Development/efd-trading-card-base" + ], + "calcorum/paper-dynasty-card-creation": [ + "/mnt/NV2/Development/paper-dynasty/card-creation" + ], + "calcorum/paper-dynasty": [ + "/mnt/NV2/Development/paper-dynasty/discord-app" + ], + "calcorum/major-domo-v2": [ + "/mnt/NV2/Development/major-domo/discord-app-v2" + ], + "pgiro/sba": [ + "/mnt/NV2/Development/major-domo/sba-website" + ], + "calcorum/major-domo-database": [ + "/mnt/NV2/Development/major-domo/database" + ], + "calcorum/major-domo": [ + "/mnt/NV2/Development/major-domo/discord-app" + ], + "calcorum/vagabond-rpg-foundryvtt": [ + "/mnt/NV2/Development/vagabond-rpg-foundryvtt" + ], + "calcorum/paper-dynasty-database": [ + "/mnt/NV2/Development/paper-dynasty/database" + ], + "calcorum/voice-server": [ + "/mnt/NV2/Development/voice-server" + ], + "calcorum/openscad-models": [ + "/mnt/NV2/Development/openscad-models" + ], + "calcorum/mantimon-tcg": [ + "/mnt/NV2/Development/mantimon-tcg/backend", + "/mnt/NV2/Development/mantimon-tcg" + ], + "calcorum/sba-desktop": [ + "/mnt/NV2/Development/sba-scouting" + ] + }, + "passesEligibilityCache": { + "57783733-6e1e-48d5-9cb7-fa588a77b795": { + "eligible": true, + "referral_code_details": { + "code": "0uKnnMABqw", + "campaign": "claude_code_guest_pass_a47c", + "referral_link": "https://claude.ai/referral/0uKnnMABqw" + }, + "referrer_reward": { + "amount_minor_units": 1000, + "currency": "USD" + }, + "remaining_passes": 3, + "timestamp": 1771560445046 + } + }, + "opus45MigrationComplete": true, + "hasShownOpus45Notice": { + "57783733-6e1e-48d5-9cb7-fa588a77b795": true + }, + "officialMarketplaceAutoInstallAttempted": true, + "officialMarketplaceAutoInstalled": true, + "passesUpsellSeenCount": 3, + "thinkingMigrationComplete": true, + "groveConfigCache": { + "d6d0ffd3-ed66-4eba-9bd4-df8e2dbfc9e2": { + "grove_enabled": true, + "timestamp": 1771521871454 + } + }, + "skillUsage": { + "major-domo": { + "usageCount": 13, + "lastUsedAt": 1771556414365 + }, + "paper-dynasty": { + "usageCount": 12, + "lastUsedAt": 1771271707830 + }, + "project-plan": { + "usageCount": 4, + "lastUsedAt": 1771003578568 + }, + "init": { + "usageCount": 2, + "lastUsedAt": 1771018292259 + }, + "code-audit": { + "usageCount": 7, + "lastUsedAt": 1769840317637 + }, + "backend-phase": { + "usageCount": 11, + "lastUsedAt": 1769790071034 + }, + "frontend-code-audit": { + "usageCount": 6, + "lastUsedAt": 1769842017496 + }, + "frontend-phase": { + "usageCount": 24, + "lastUsedAt": 1769843259171 + }, + "dev-server": { + "usageCount": 2, + "lastUsedAt": 1769836015719 + }, + "deploy": { + "usageCount": 7, + "lastUsedAt": 1770216426722 + }, + "proxmox": { + "usageCount": 7, + "lastUsedAt": 1770999577744 + }, + "notediscovery": { + "usageCount": 2, + "lastUsedAt": 1771259103802 + }, + "create-skill": { + "usageCount": 1, + "lastUsedAt": 1770839993137 + }, + "backlog": { + "usageCount": 5, + "lastUsedAt": 1771561009889 + }, + "keybindings-help": { + "usageCount": 1, + "lastUsedAt": 1770855574743 + }, + "insights": { + "usageCount": 1, + "lastUsedAt": 1770959377885 + }, + "sync-config": { + "usageCount": 26, + "lastUsedAt": 1771560749921 + }, + "claude-optimised": { + "usageCount": 4, + "lastUsedAt": 1771363169937 + }, + "optimise-claude": { + "usageCount": 2, + "lastUsedAt": 1771199427014 + }, + "cognitive-memory": { + "usageCount": 36, + "lastUsedAt": 1771564275406 + }, + "commit-push": { + "usageCount": 17, + "lastUsedAt": 1771537208260 + }, + "check-rarity": { + "usageCount": 1, + "lastUsedAt": 1771203408892 + }, + "commit-commands:commit": { + "usageCount": 1, + "lastUsedAt": 1771364503659 + }, + "commit-push-pr": { + "usageCount": 4, + "lastUsedAt": 1771559391826 + }, + "mcp-manager": { + "usageCount": 5, + "lastUsedAt": 1771558943126 + }, + "orchestrator": { + "usageCount": 3, + "lastUsedAt": 1771451706040 + }, + "claude-automation-recommender": { + "usageCount": 1, + "lastUsedAt": 1771474474878 + }, + "bmad-qa": { + "usageCount": 1, + "lastUsedAt": 1771536951910 + }, + "save-memories": { + "usageCount": 9, + "lastUsedAt": 1771561845350 + } + }, + "opusProMigrationComplete": true, + "cachedChromeExtensionInstalled": true, + "hasVisitedPasses": true, + "passesLastSeenRemaining": 3, + "clientDataCache": { + "data": {}, + "timestamp": 1771565348508 + }, + "hasShownOpus46Notice": { + "57783733-6e1e-48d5-9cb7-fa588a77b795": true + }, + "hasVisitedExtraUsage": true, + "penguinModeOrgEnabled": true, + "opus46FeedSeenCount": 3, + "showSpinnerTree": false, + "oauthAccount": { + "accountUuid": "d6d0ffd3-ed66-4eba-9bd4-df8e2dbfc9e2", + "emailAddress": "cal.corum@gmail.com", + "organizationUuid": "57783733-6e1e-48d5-9cb7-fa588a77b795", + "hasExtraUsageEnabled": true, + "billingType": "stripe_subscription", + "accountCreatedAt": "2025-07-08T23:36:22.848806Z", + "subscriptionCreatedAt": "2025-07-09T18:05:03.049049Z", + "displayName": "Cal" + }, + "effortCalloutDismissed": true, + "sonnet1m45MigrationComplete": true, + "cachedExtraUsageDisabledReason": "org_level_disabled_until", + "birthdayHatAnimationCount": 3 +} \ No newline at end of file diff --git a/skills/cognitive-memory/SKILL.md b/skills/cognitive-memory/SKILL.md index c5dc88a..714f883 100644 --- a/skills/cognitive-memory/SKILL.md +++ b/skills/cognitive-memory/SKILL.md @@ -170,7 +170,7 @@ decay_score = importance × e^(-0.03 × days_since_access) × log2(access_count ## Workflow Patterns -### 1. Store a Bug Fix +### 1. Store a Bug Fix (with Edge) ```bash # Store the solution @@ -178,6 +178,12 @@ claude-memory store --type solution \ --title "Fixed Redis connection timeouts" \ --content "Added socket_keepalive=True and socket_timeout=300..." \ --tags "redis,timeout,production" --importance 0.8 +# Returns: memory_id = abc-123 + +# Link it to the problem memory that prompted the fix +# (use memory_recall or memory_search to find the related memory first) +claude-memory relate abc-123 def-456 SOLVES \ + --description "Keepalive fix resolves the idle timeout disconnections" # Log the episode claude-memory episode --type fix --title "Fixed Redis timeouts" \ @@ -256,7 +262,38 @@ claude-memory tags related "python" claude-memory tags suggest ``` -### 8. Session Maintenance +### 8. Create Edges Between Related Memories + +Edges are first-class relationship objects that connect memories into a traversable graph. Always look for opportunities to link memories — this makes recall and future RAG retrieval significantly richer. + +**Relation types:** `SOLVES`, `CAUSES`, `BUILDS_ON`, `ALTERNATIVE_TO`, `REQUIRES`, `FOLLOWS`, `RELATED_TO` + +```bash +# Via MCP (preferred in Claude Code sessions): +# memory_relate(from_id, to_id, rel_type, description, strength) + +# Via CLI: +claude-memory relate BUILDS_ON \ + --description "Extended the deploy procedure with rollback steps" + +# Find what a memory is connected to (up to 3 hops deep) +claude-memory related --max-depth 2 + +# Search edges by type or connected memory +claude-memory edge-search --types SOLVES +claude-memory edge-search --from +``` + +**When to create edges:** +- Solution fixes a known problem → `SOLVES` +- New memory extends or refines an earlier one → `BUILDS_ON` +- Error leads to a known failure mode → `CAUSES` +- Two approaches to the same problem → `ALTERNATIVE_TO` +- Memory depends on another being true/done first → `REQUIRES` +- Steps in a sequence → `FOLLOWS` +- Conceptually related but no specific type fits → `RELATED_TO` + +### 9. Session Maintenance ```bash # Recalculate decay scores @@ -345,7 +382,8 @@ This skill should be used proactively when: 8. **Multi-step workflow documented** - Use `procedure` type with structured steps/preconditions/postconditions 9. **Periodically** - Run `reflect` to cluster memories and surface cross-cutting insights. Run `tags suggest` to find missing tag connections 10. **After adding memories** - Run `embed` to refresh semantic search index -11. **Session ending** - Prompt: "Should I store today's learnings?" +11. **Related memories exist** - Create edges to connect them. After storing a new memory, check if it relates to existing ones (SOLVES a problem, BUILDS_ON a prior solution, is ALTERNATIVE_TO another approach, etc.). Well-connected memories produce richer recall and graph traversal for RAG retrieval. +12. **Session ending** - Prompt: "Should I store today's learnings?" --- diff --git a/skills/cognitive-memory/scripts/edge-proposer.py b/skills/cognitive-memory/scripts/edge-proposer.py new file mode 100644 index 0000000..be40714 --- /dev/null +++ b/skills/cognitive-memory/scripts/edge-proposer.py @@ -0,0 +1,417 @@ +#!/usr/bin/env python3 +"""Analyze cognitive memories and propose high-quality edges. + +Reads all active/fading memories (decay >= 0.2), groups by shared tags, +and scores candidate relationships based on three signals: + - Type heuristics (40%): e.g. fix+problem → SOLVES, decision+solution → BUILDS_ON + - Tag overlap (30%): Jaccard similarity of tag sets + - Content similarity (30%): Keyword overlap in memory body text + +Outputs ranked proposals to stdout and saves top 80 as JSON for +programmatic use by Claude Code sessions. + +Usage: + python3 edge-proposer.py + + # Then review stdout output, pick good candidates, and create edges via: + # MCP: memory_relate(from_id, to_id, rel_type, description, strength) + # CLI: claude-memory relate --description "..." + +Output: + - Ranked candidates printed to stdout (score, type, titles, shared tags) + - JSON file saved to ~/.claude/tmp/edge-candidates.json + +Scoring: + - Minimum threshold: 0.15 (below this, candidates are discarded) + - Importance boost: 1.2x multiplier when avg importance >= 0.7 + - Session-log memories tend to produce noise — review FOLLOWS edges carefully + +Relation types available: + SOLVES, CAUSES, BUILDS_ON, ALTERNATIVE_TO, REQUIRES, FOLLOWS, RELATED_TO + +First run: 2026-02-19 — produced 5186 candidates from 473 memories, + 20 high-quality edges were manually selected and created. +""" + +import json +import re +from pathlib import Path +from collections import defaultdict +from itertools import combinations + +MEMORY_DIR = Path.home() / ".claude" / "memory" +STATE_FILE = MEMORY_DIR / "_state.json" +GRAPH_DIR = MEMORY_DIR / "graph" +EDGES_DIR = GRAPH_DIR / "edges" + +# Type-based heuristics: (type_a, type_b) -> (suggested_rel, direction, base_score) +# direction: "ab" means a->b, "ba" means b->a +TYPE_HEURISTICS = { + ("fix", "problem"): ("SOLVES", "ab", 0.6), + ("solution", "problem"): ("SOLVES", "ab", 0.7), + ("solution", "error"): ("SOLVES", "ab", 0.6), + ("fix", "error"): ("SOLVES", "ab", 0.6), + ("decision", "solution"): ("BUILDS_ON", "ab", 0.3), + ("decision", "decision"): ("ALTERNATIVE_TO", None, 0.2), + ("solution", "solution"): ("BUILDS_ON", None, 0.2), + ("configuration", "solution"): ("REQUIRES", "ab", 0.3), + ("workflow", "configuration"): ("REQUIRES", "ab", 0.3), + ("insight", "solution"): ("BUILDS_ON", "ab", 0.4), + ("insight", "decision"): ("BUILDS_ON", "ab", 0.4), + ("fix", "fix"): ("FOLLOWS", None, 0.15), + ("fix", "solution"): ("BUILDS_ON", "ab", 0.2), + ("code_pattern", "solution"): ("BUILDS_ON", "ab", 0.3), + ("procedure", "workflow"): ("BUILDS_ON", "ab", 0.3), + ("configuration", "configuration"): ("RELATED_TO", None, 0.1), +} + + +def parse_frontmatter(filepath: Path) -> dict | None: + """Parse YAML frontmatter from a markdown file.""" + try: + text = filepath.read_text(encoding="utf-8") + except Exception: + return None + + if not text.startswith("---"): + return None + + end = text.find("---", 3) + if end == -1: + return None + + fm = {} + body = text[end + 3 :].strip() + fm["_body"] = body[:500] # first 500 chars of content for matching + fm["_filepath"] = str(filepath) + + for line in text[3:end].strip().splitlines(): + if ":" not in line: + continue + key, _, val = line.partition(":") + key = key.strip() + val = val.strip().strip('"').strip("'") + + if key == "tags": + # Handle both [a, b] and "a, b" formats + val = val.strip("[]") + fm["tags"] = [ + t.strip().strip('"').strip("'") for t in val.split(",") if t.strip() + ] + elif key == "importance": + try: + fm["importance"] = float(val) + except ValueError: + pass + else: + fm[key] = val + + return fm + + +def load_memories() -> dict[str, dict]: + """Load all memories from graph subdirectories.""" + memories = {} + type_dirs = [ + "solutions", + "fixes", + "decisions", + "configurations", + "problems", + "workflows", + "code-patterns", + "errors", + "general", + "procedures", + "insights", + ] + + for type_dir in type_dirs: + dirpath = GRAPH_DIR / type_dir + if not dirpath.exists(): + continue + for f in dirpath.glob("*.md"): + fm = parse_frontmatter(f) + if fm and "id" in fm: + memories[fm["id"]] = fm + + return memories + + +def load_existing_edges() -> set[tuple[str, str]]: + """Load existing edges to avoid duplicates.""" + existing = set() + + if not EDGES_DIR.exists(): + return existing + + for f in EDGES_DIR.glob("*.md"): + fm = parse_frontmatter(f) + if fm and "from_id" in fm and "to_id" in fm: + existing.add((fm["from_id"], fm["to_id"])) + existing.add((fm["to_id"], fm["from_id"])) # bidirectional check + + return existing + + +def load_decay_state() -> dict[str, float]: + """Load decay scores from state file.""" + if not STATE_FILE.exists(): + return {} + try: + state = json.loads(STATE_FILE.read_text()) + return {mid: info.get("decay_score", 0) for mid, info in state.items()} + except Exception: + return {} + + +def tag_overlap_score(tags_a: list[str], tags_b: list[str]) -> float: + """Jaccard similarity of tag sets.""" + if not tags_a or not tags_b: + return 0.0 + set_a, set_b = set(tags_a), set(tags_b) + intersection = set_a & set_b + union = set_a | set_b + return len(intersection) / len(union) if union else 0.0 + + +def content_keyword_overlap(body_a: str, body_b: str) -> float: + """Simple keyword overlap between content bodies.""" + if not body_a or not body_b: + return 0.0 + + def extract_keywords(text: str) -> set[str]: + words = re.findall(r"[a-zA-Z_]{4,}", text.lower()) + # Filter common words + stopwords = { + "that", + "this", + "with", + "from", + "have", + "been", + "were", + "they", + "their", + "will", + "would", + "could", + "should", + "which", + "where", + "when", + "what", + "about", + "into", + "also", + "more", + "some", + "then", + "than", + "each", + "only", + "used", + "using", + "after", + "before", + "because", + "between", + "through", + "during", + "added", + "updated", + "fixed", + "error", + "issue", + "problem", + "solution", + "memory", + "memories", + "configuration", + "successfully", + "working", + "works", + } + return {w for w in words if w not in stopwords} + + kw_a = extract_keywords(body_a) + kw_b = extract_keywords(body_b) + + if not kw_a or not kw_b: + return 0.0 + + intersection = kw_a & kw_b + union = kw_a | kw_b + return len(intersection) / len(union) if union else 0.0 + + +def get_type_heuristic( + type_a: str, type_b: str +) -> tuple[str, str | None, float] | None: + """Look up type-based heuristic, checking both orderings.""" + key = (type_a, type_b) + if key in TYPE_HEURISTICS: + rel, direction, score = TYPE_HEURISTICS[key] + return rel, direction, score + + key_rev = (type_b, type_a) + if key_rev in TYPE_HEURISTICS: + rel, direction, score = TYPE_HEURISTICS[key_rev] + # Flip direction + if direction == "ab": + direction = "ba" + elif direction == "ba": + direction = "ab" + return rel, direction, score + + return None + + +def score_pair(mem_a: dict, mem_b: dict) -> dict | None: + """Score a candidate edge between two memories.""" + tags_a = mem_a.get("tags", []) + tags_b = mem_b.get("tags", []) + + # Must share at least one tag + shared_tags = set(tags_a) & set(tags_b) + if not shared_tags: + return None + + tag_score = tag_overlap_score(tags_a, tags_b) + content_score = content_keyword_overlap( + mem_a.get("_body", ""), mem_b.get("_body", "") + ) + + type_a = mem_a.get("type", "general") + type_b = mem_b.get("type", "general") + + heuristic = get_type_heuristic(type_a, type_b) + if heuristic: + suggested_rel, direction, type_score = heuristic + else: + suggested_rel = "RELATED_TO" + direction = None + type_score = 0.05 + + # Composite score + total = (tag_score * 0.4) + (content_score * 0.3) + (type_score * 0.3) + + # Boost for high importance memories + imp_a = mem_a.get("importance", 0.5) + imp_b = mem_b.get("importance", 0.5) + if isinstance(imp_a, str): + imp_a = float(imp_a) + if isinstance(imp_b, str): + imp_b = float(imp_b) + avg_importance = (imp_a + imp_b) / 2 + if avg_importance >= 0.7: + total *= 1.2 + + if total < 0.15: + return None + + # Determine from/to based on direction + if direction == "ab": + from_mem, to_mem = mem_a, mem_b + elif direction == "ba": + from_mem, to_mem = mem_b, mem_a + else: + # Default: higher importance is "from" + if imp_a >= imp_b: + from_mem, to_mem = mem_a, mem_b + else: + from_mem, to_mem = mem_b, mem_a + + return { + "score": round(total, 3), + "rel_type": suggested_rel, + "from_id": from_mem["id"], + "from_title": from_mem.get("title", "?"), + "from_type": from_mem.get("type", "?"), + "to_id": to_mem["id"], + "to_title": to_mem.get("title", "?"), + "to_type": to_mem.get("type", "?"), + "shared_tags": sorted(shared_tags), + "tag_score": round(tag_score, 3), + "content_score": round(content_score, 3), + "type_score": round(type_score, 3), + } + + +def main(): + print("Loading memories...") + memories = load_memories() + print(f" Found {len(memories)} memories") + + print("Loading decay state...") + decay_scores = load_decay_state() + + # Filter to active + fading only (decay >= 0.2) + active_ids = { + mid for mid, score in decay_scores.items() if score >= 0.2 and mid in memories + } + # Also include memories without decay state (new) + for mid in memories: + if mid not in decay_scores: + active_ids.add(mid) + + active_memories = {mid: memories[mid] for mid in active_ids} + print(f" {len(active_memories)} active/fading memories to analyze") + + print("Loading existing edges...") + existing = load_existing_edges() + print(f" {len(existing) // 2} existing edges") + + print("Scoring candidate pairs...") + candidates = [] + + # Group by shared tags first to reduce pair space + tag_groups = defaultdict(set) + for mid, mem in active_memories.items(): + for tag in mem.get("tags", []): + tag_groups[tag].add(mid) + + # Collect unique pairs that share at least one tag + seen_pairs = set() + for tag, mids in tag_groups.items(): + if len(mids) < 2 or len(mids) > 50: # skip too-common tags + continue + for a, b in combinations(mids, 2): + pair = tuple(sorted([a, b])) + if pair in seen_pairs: + continue + if (a, b) in existing or (b, a) in existing: + continue + seen_pairs.add(pair) + + result = score_pair(active_memories[a], active_memories[b]) + if result: + candidates.append(result) + + # Sort by score descending + candidates.sort(key=lambda x: x["score"], reverse=True) + + print(f"\n{'='*100}") + print(f"TOP EDGE CANDIDATES ({len(candidates)} total, showing top 80)") + print(f"{'='*100}\n") + + for i, c in enumerate(candidates[:80], 1): + print(f"#{i:3d} | Score: {c['score']:.3f} | {c['rel_type']}") + print(f" FROM [{c['from_type']}] {c['from_title']}") + print(f" TO [{c['to_type']}] {c['to_title']}") + print( + f" Tags: {', '.join(c['shared_tags'])} | " + f"tag={c['tag_score']:.2f} content={c['content_score']:.2f} type={c['type_score']:.2f}" + ) + print(f" IDs: {c['from_id']} -> {c['to_id']}") + print() + + # Also output as JSON for programmatic use + json_path = MEMORY_DIR.parent / "tmp" / "edge-candidates.json" + json_path.parent.mkdir(parents=True, exist_ok=True) + json_path.write_text(json.dumps(candidates[:80], indent=2)) + print(f"Full candidates saved to: {json_path}") + + +if __name__ == "__main__": + main() diff --git a/tmp/edge-candidates.json b/tmp/edge-candidates.json new file mode 100644 index 0000000..5a58a3e --- /dev/null +++ b/tmp/edge-candidates.json @@ -0,0 +1,1653 @@ +[ + { + "score": 0.832, + "rel_type": "BUILDS_ON", + "from_id": "77cf0fb1-9a58-43d2-b1d2-6532bafa6204", + "from_title": "Gitea Actions: Docker buildx cache auth requires login on all builds", + "from_type": "solution", + "to_id": "856511bd-a987-48cf-9dfe-ee069f32beea", + "to_title": "Gitea Actions: Docker buildx registry cache auth fix", + "to_type": "solution", + "shared_tags": [ + "buildx", + "cache", + "ci-cd", + "docker", + "fix", + "gitea" + ], + "tag_score": 1.0, + "content_score": 0.778, + "type_score": 0.2 + }, + { + "score": 0.745, + "rel_type": "FOLLOWS", + "from_id": "4bfeb0f5-64ea-4c3f-8b91-b9e75f05df88", + "from_title": "[homelab] Session: configuration, creation, debugging, fix", + "from_type": "fix", + "to_id": "90a52c26-8aea-42e8-bd8d-adc3e30f676a", + "to_title": "[homelab] Session: configuration, creation, debugging, fix", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log" + ], + "tag_score": 1.0, + "content_score": 1.0, + "type_score": 0.15 + }, + { + "score": 0.694, + "rel_type": "FOLLOWS", + "from_id": "908fe66a-2785-4b60-81a5-a22d784c5111", + "from_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, tooling", + "from_type": "fix", + "to_id": "376d54b9-4217-4070-9f2d-98c699905f3e", + "to_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, refactoring, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "creation", + "debugging", + "feature", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.9, + "content_score": 0.963, + "type_score": 0.15 + }, + { + "score": 0.622, + "rel_type": "ALTERNATIVE_TO", + "from_id": "9e1897e8-a5ec-4297-ba85-941dcfe304b9", + "from_title": "Live series card update agent definition created", + "from_type": "decision", + "to_id": "8a2f30f0-137d-4390-9252-22c4eb565046", + "to_title": "Retrosheet card update agent definition created", + "to_type": "decision", + "shared_tags": [ + "agents", + "architecture", + "claude-code", + "paper-dynasty" + ], + "tag_score": 1.0, + "content_score": 0.195, + "type_score": 0.2 + }, + { + "score": 0.607, + "rel_type": "BUILDS_ON", + "from_id": "1695d110-7bcf-4e06-92e1-ffed8f686538", + "from_title": "Fix numpy X86_V2 CPU compatibility in discord-app", + "from_type": "solution", + "to_id": "1d3eaf3a-416c-4962-a531-fff4e92c0e66", + "to_title": "NumPy X86_V2 CPU compatibility fix", + "to_type": "solution", + "shared_tags": [ + "docker", + "fix", + "numpy", + "paper-dynasty", + "python" + ], + "tag_score": 1.0, + "content_score": 0.154, + "type_score": 0.2 + }, + { + "score": 0.604, + "rel_type": "FOLLOWS", + "from_id": "839417c1-d969-43b9-a7b3-6a790ee16672", + "from_title": "[homelab] Session: automation, configuration, creation, feature, fix, testing, tooling", + "from_type": "fix", + "to_id": "af7fe725-4e44-4968-89c4-3eadf0b72fa4", + "to_title": "[homelab] Session: creation, feature, fix, testing, tooling", + "to_type": "fix", + "shared_tags": [ + "creation", + "feature", + "fix", + "homelab", + "session-log", + "testing", + "tooling" + ], + "tag_score": 0.778, + "content_score": 0.826, + "type_score": 0.15 + }, + { + "score": 0.604, + "rel_type": "RELATED_TO", + "from_id": "c3d965e3-bb63-46d3-bf19-917ac4b78df8", + "from_title": "[homelab] Session: automation, configuration, deployment, tooling", + "from_type": "configuration", + "to_id": "875fe9de-65d6-47a1-a078-066726109c9e", + "to_title": "[homelab] Session: automation, configuration, creation, deployment, fix, refactoring, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "deployment", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.739, + "type_score": 0.05 + }, + { + "score": 0.588, + "rel_type": "FOLLOWS", + "from_id": "c1e9d0ea-9d4f-4288-b717-e2113b892a44", + "from_title": "[major-domo] $(cat <<", + "from_type": "fix", + "to_id": "ec25c1ae-c0b5-4f2a-942b-00dc9a6b073c", + "to_title": "[major-domo] fix: ContextualLogger crashes when callers pass exc_info=True", + "to_type": "fix", + "shared_tags": [ + "commit", + "creation", + "debugging", + "deployment", + "fix", + "major-domo", + "session-log", + "testing", + "tooling" + ], + "tag_score": 0.9, + "content_score": 0.282, + "type_score": 0.15 + }, + { + "score": 0.587, + "rel_type": "FOLLOWS", + "from_id": "40e194b2-3d50-4698-89be-d0db08349882", + "from_title": "[paper-dynasty] ci: Use Gitea API for tag creation to avoid branch protection issues", + "from_type": "fix", + "to_id": "633e06ab-7503-4368-964f-d2ba8071de4b", + "to_title": "[paper-dynasty] ci: use Gitea API for tag creation instead of git push", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "deployment", + "fix", + "paper-dynasty", + "session-log" + ], + "tag_score": 0.889, + "content_score": 0.295, + "type_score": 0.15 + }, + { + "score": 0.57, + "rel_type": "BUILDS_ON", + "from_id": "83dbebd0-b523-4e4d-9351-b1e4fd81999e", + "from_title": "DraftList nested Player.team_id extraction bug", + "from_type": "fix", + "to_id": "7c146559-79b7-4254-84cf-89aa1bc6750a", + "to_title": "Fix auto-draft nested API parsing", + "to_type": "solution", + "shared_tags": [ + "draft", + "fix", + "major-domo", + "pydantic", + "python" + ], + "tag_score": 0.833, + "content_score": 0.273, + "type_score": 0.2 + }, + { + "score": 0.567, + "rel_type": "FOLLOWS", + "from_id": "6a20bab5-72bf-41a8-b7e6-a4f615617b59", + "from_title": "[homelab] Session: configuration, debugging, fix, tooling", + "from_type": "fix", + "to_id": "924b6731-34df-48a5-89f5-5f7999f05f2a", + "to_title": "[homelab] Session: configuration, debugging, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "debugging", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 1.0, + "content_score": 0.406, + "type_score": 0.15 + }, + { + "score": 0.558, + "rel_type": "RELATED_TO", + "from_id": "16dc5bfb-c3b8-424e-a5ca-4d19ea715967", + "from_title": "[homelab] Enable pyright-lsp plugin and reformat settings", + "from_type": "general", + "to_id": "ca3d52ca-8e3f-4621-83f8-1d3730dd802c", + "to_title": "[homelab] Auto-log episode entries on MCP memory_store (default true)", + "to_type": "general", + "shared_tags": [ + "commit", + "homelab", + "session-log" + ], + "tag_score": 1.0, + "content_score": 0.476, + "type_score": 0.05 + }, + { + "score": 0.553, + "rel_type": "FOLLOWS", + "from_id": "27e1c1d3-8ab8-4b60-87f9-ec88147e47e5", + "from_title": "[homelab] Session: configuration, creation, debugging, fix", + "from_type": "fix", + "to_id": "4bfeb0f5-64ea-4c3f-8b91-b9e75f05df88", + "to_title": "[homelab] Session: configuration, creation, debugging, fix", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log" + ], + "tag_score": 1.0, + "content_score": 0.359, + "type_score": 0.15 + }, + { + "score": 0.553, + "rel_type": "FOLLOWS", + "from_id": "27e1c1d3-8ab8-4b60-87f9-ec88147e47e5", + "from_title": "[homelab] Session: configuration, creation, debugging, fix", + "from_type": "fix", + "to_id": "90a52c26-8aea-42e8-bd8d-adc3e30f676a", + "to_title": "[homelab] Session: configuration, creation, debugging, fix", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log" + ], + "tag_score": 1.0, + "content_score": 0.359, + "type_score": 0.15 + }, + { + "score": 0.553, + "rel_type": "BUILDS_ON", + "from_id": "4ab58629-ee98-4ca6-ae31-9679cf0aa4a0", + "from_title": "pd-cards CLI refactor with Typer + YAML profiles", + "from_type": "decision", + "to_id": "c223fd4d-53ec-461a-9d49-b1975e52967c", + "to_title": "pd-cards CLI complete migration", + "to_type": "solution", + "shared_tags": [ + "cli", + "paper-dynasty", + "python", + "refactor", + "typer" + ], + "tag_score": 0.833, + "content_score": 0.125, + "type_score": 0.3 + }, + { + "score": 0.552, + "rel_type": "RELATED_TO", + "from_id": "ec050a07-6060-4855-8c36-3051df934a64", + "from_title": "[homelab] Session: automation, feature, fix, tooling", + "from_type": "fix", + "to_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "to_title": "[homelab] Session: automation, tooling", + "to_type": "workflow", + "shared_tags": [ + "automation", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.9, + "type_score": 0.05 + }, + { + "score": 0.548, + "rel_type": "RELATED_TO", + "from_id": "b1e37e06-6918-4f21-8ded-b04200c9bbca", + "from_title": "[homelab] Session: automation, configuration, fix", + "from_type": "fix", + "to_id": "b8a74330-8fae-42f8-ab0b-8ca259990c0b", + "to_title": "[homelab] Session: automation, configuration, creation", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "homelab", + "session-log" + ], + "tag_score": 0.667, + "content_score": 0.889, + "type_score": 0.05 + }, + { + "score": 0.538, + "rel_type": "FOLLOWS", + "from_id": "3e5fe8fc-59df-4874-b680-7c26d602a758", + "from_title": "[homelab] Session: automation, creation, debugging, feature, fix, tooling", + "from_type": "fix", + "to_id": "908fe66a-2785-4b60-81a5-a22d784c5111", + "to_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "creation", + "debugging", + "feature", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.889, + "content_score": 0.457, + "type_score": 0.15 + }, + { + "score": 0.534, + "rel_type": "FOLLOWS", + "from_id": "79b98ea4-6c94-4d2c-9215-6ab534a9290a", + "from_title": "[pd-team-dashboard] Session: automation, configuration, debugging, deployment, feature, fix, testing, tooling", + "from_type": "fix", + "to_id": "b1eeb082-ef2a-4e91-8ce6-b0d7fe8639e1", + "to_title": "[major-domo] Session: automation, configuration, debugging, deployment, feature, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "debugging", + "deployment", + "feature", + "fix", + "session-log", + "tooling" + ], + "tag_score": 0.727, + "content_score": 0.364, + "type_score": 0.15 + }, + { + "score": 0.534, + "rel_type": "FOLLOWS", + "from_id": "1679f2be-c8ff-4762-99b1-0978bd753c47", + "from_title": "Add default ORDER BY id to PackType list endpoint", + "from_type": "fix", + "to_id": "e2244428-f4e6-4f62-ab84-f81e395a8473", + "to_title": "Added default ordering to StratPlay list endpoint", + "to_type": "fix", + "shared_tags": [ + "migration", + "paper-dynasty", + "postgresql" + ], + "tag_score": 1.0, + "content_score": 0.296, + "type_score": 0.15 + }, + { + "score": 0.533, + "rel_type": "FOLLOWS", + "from_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "from_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "from_type": "fix", + "to_id": "ca0a8939-e7a2-4280-a8de-fe424c1d8659", + "to_title": "[major-domo] $(cat <<", + "to_type": "fix", + "shared_tags": [ + "commit", + "configuration", + "debugging", + "deployment", + "fix", + "major-domo", + "session-log" + ], + "tag_score": 0.778, + "content_score": 0.294, + "type_score": 0.15 + }, + { + "score": 0.533, + "rel_type": "FOLLOWS", + "from_id": "08952bac-ce99-4b92-b9d9-edc9237c6bc6", + "from_title": "Added default ordering to PitchingStat list endpoint", + "from_type": "fix", + "to_id": "ad7d6151-b1d9-4ee6-b31e-16bd338181f5", + "to_title": "Added default ORDER BY id to notifications list endpoint", + "to_type": "fix", + "shared_tags": [ + "migration", + "ordering", + "paper-dynasty", + "postgresql" + ], + "tag_score": 1.0, + "content_score": 0.292, + "type_score": 0.15 + }, + { + "score": 0.532, + "rel_type": "FOLLOWS", + "from_id": "aff45f5a-a82a-4117-b3f3-13ac097ee08c", + "from_title": "[homelab] $(cat <<", + "from_type": "fix", + "to_id": "50d6676c-0bad-4a67-9b9d-7dac791108bb", + "to_title": "[homelab] $(cat <<", + "to_type": "fix", + "shared_tags": [ + "commit", + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.889, + "content_score": 0.438, + "type_score": 0.15 + }, + { + "score": 0.53, + "rel_type": "REQUIRES", + "from_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "from_title": "[homelab] Session: automation, tooling", + "from_type": "workflow", + "to_id": "b8a74330-8fae-42f8-ab0b-8ca259990c0b", + "to_title": "[homelab] Session: automation, configuration, creation", + "to_type": "configuration", + "shared_tags": [ + "automation", + "homelab", + "session-log" + ], + "tag_score": 0.5, + "content_score": 0.8, + "type_score": 0.3 + }, + { + "score": 0.529, + "rel_type": "FOLLOWS", + "from_id": "c1e9d0ea-9d4f-4288-b717-e2113b892a44", + "from_title": "[major-domo] $(cat <<", + "from_type": "fix", + "to_id": "ca0a8939-e7a2-4280-a8de-fe424c1d8659", + "to_title": "[major-domo] $(cat <<", + "to_type": "fix", + "shared_tags": [ + "commit", + "debugging", + "deployment", + "fix", + "major-domo", + "session-log", + "tooling" + ], + "tag_score": 0.7, + "content_score": 0.387, + "type_score": 0.15 + }, + { + "score": 0.529, + "rel_type": "RELATED_TO", + "from_id": "79b98ea4-6c94-4d2c-9215-6ab534a9290a", + "from_title": "[pd-team-dashboard] Session: automation, configuration, debugging, deployment, feature, fix, testing, tooling", + "from_type": "fix", + "to_id": "d352e70d-8249-42af-b8fd-96757b9ce596", + "to_title": "[pd-team-dashboard] Session: automation, configuration, deployment, testing, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "deployment", + "pd-team-dashboard", + "session-log", + "testing", + "tooling" + ], + "tag_score": 0.7, + "content_score": 0.486, + "type_score": 0.05 + }, + { + "score": 0.522, + "rel_type": "RELATED_TO", + "from_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "from_title": "[homelab] Session: automation, configuration, creation, tooling", + "from_type": "configuration", + "to_id": "b8a74330-8fae-42f8-ab0b-8ca259990c0b", + "to_title": "[homelab] Session: automation, configuration, creation", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "creation", + "homelab", + "session-log" + ], + "tag_score": 0.833, + "content_score": 0.529, + "type_score": 0.1 + }, + { + "score": 0.52, + "rel_type": "FOLLOWS", + "from_id": "875fe9de-65d6-47a1-a078-066726109c9e", + "from_title": "[homelab] Session: automation, configuration, creation, deployment, fix, refactoring, tooling", + "from_type": "fix", + "to_id": "7a712e34-72db-4e9d-8d2a-ccd543c3819a", + "to_title": "[homelab] Session: configuration, creation, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.696, + "type_score": 0.15 + }, + { + "score": 0.515, + "rel_type": "REQUIRES", + "from_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "from_title": "[homelab] Session: automation, tooling", + "from_type": "workflow", + "to_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "to_title": "[homelab] Session: automation, configuration, creation, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.529, + "type_score": 0.3 + }, + { + "score": 0.514, + "rel_type": "FOLLOWS", + "from_id": "ec050a07-6060-4855-8c36-3051df934a64", + "from_title": "[homelab] Session: automation, feature, fix, tooling", + "from_type": "fix", + "to_id": "b1e37e06-6918-4f21-8ded-b04200c9bbca", + "to_title": "[homelab] Session: automation, configuration, fix", + "to_type": "fix", + "shared_tags": [ + "automation", + "fix", + "homelab", + "session-log" + ], + "tag_score": 0.571, + "content_score": 0.8, + "type_score": 0.15 + }, + { + "score": 0.513, + "rel_type": "REQUIRES", + "from_id": "c0d10ee1-07e1-4697-a6b6-ae7bb1edfcbc", + "from_title": "Auto-invoke /save-memories at 25% context remaining before compaction", + "from_type": "configuration", + "to_id": "5cb26f44-8100-413d-8fa1-3668472a7672", + "to_title": "CORE.md auto-load via MEMORY.md symlinks", + "to_type": "solution", + "shared_tags": [ + "automation", + "claude-code", + "cognitive-memory", + "configuration" + ], + "tag_score": 0.8, + "content_score": 0.059, + "type_score": 0.3 + }, + { + "score": 0.513, + "rel_type": "FOLLOWS", + "from_id": "42006ef3-c98e-474f-a49e-64bdd95afbd6", + "from_title": "[vagabond-rpg-foundryvtt] Add Gitea Actions workflow for auto-deploy to Foundry LXC", + "from_type": "fix", + "to_id": "40e194b2-3d50-4698-89be-d0db08349882", + "to_title": "[paper-dynasty] ci: Use Gitea API for tag creation to avoid branch protection issues", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "debugging", + "deployment", + "fix", + "session-log" + ], + "tag_score": 0.8, + "content_score": 0.208, + "type_score": 0.15 + }, + { + "score": 0.511, + "rel_type": "FOLLOWS", + "from_id": "04d116d5-4a66-41f3-ae5c-2d138da47e77", + "from_title": "[homelab] Add orchestrator swarm system and update plugins", + "from_type": "fix", + "to_id": "680c181f-bb5a-46d5-b1b0-c5598430d260", + "to_title": "[homelab] Add Handy speech-to-text documentation", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.889, + "content_score": 0.37, + "type_score": 0.15 + }, + { + "score": 0.511, + "rel_type": "ALTERNATIVE_TO", + "from_id": "76f14cf3-97d0-4962-8d26-bf375948b460", + "from_title": "Proxmox guest cleanup: removed 14 VMs/LXCs before Phase 2 upgrade", + "from_type": "decision", + "to_id": "a9d6f7a1-69d9-41ab-b28c-88f02d21a43b", + "to_title": "LXC 300 was OpenClaw (migrated from LXC 224) - shut down intentionally", + "to_type": "decision", + "shared_tags": [ + "cleanup", + "homelab", + "infrastructure", + "proxmox" + ], + "tag_score": 0.8, + "content_score": 0.154, + "type_score": 0.2 + }, + { + "score": 0.51, + "rel_type": "FOLLOWS", + "from_id": "40e194b2-3d50-4698-89be-d0db08349882", + "from_title": "[paper-dynasty] ci: Use Gitea API for tag creation to avoid branch protection issues", + "from_type": "fix", + "to_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "to_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "to_type": "fix", + "shared_tags": [ + "commit", + "configuration", + "creation", + "debugging", + "deployment", + "fix", + "session-log" + ], + "tag_score": 0.7, + "content_score": 0.333, + "type_score": 0.15 + }, + { + "score": 0.51, + "rel_type": "FOLLOWS", + "from_id": "839417c1-d969-43b9-a7b3-6a790ee16672", + "from_title": "[homelab] Session: automation, configuration, creation, feature, fix, testing, tooling", + "from_type": "fix", + "to_id": "908fe66a-2785-4b60-81a5-a22d784c5111", + "to_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "creation", + "feature", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.8, + "content_score": 0.485, + "type_score": 0.15 + }, + { + "score": 0.509, + "rel_type": "RELATED_TO", + "from_id": "c3d965e3-bb63-46d3-bf19-917ac4b78df8", + "from_title": "[homelab] Session: automation, configuration, deployment, tooling", + "from_type": "configuration", + "to_id": "d352e70d-8249-42af-b8fd-96757b9ce596", + "to_title": "[pd-team-dashboard] Session: automation, configuration, deployment, testing, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "deployment", + "session-log", + "tooling" + ], + "tag_score": 0.625, + "content_score": 0.48, + "type_score": 0.1 + }, + { + "score": 0.507, + "rel_type": "RELATED_TO", + "from_id": "04d116d5-4a66-41f3-ae5c-2d138da47e77", + "from_title": "[homelab] Add orchestrator swarm system and update plugins", + "from_type": "fix", + "to_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "to_title": "[homelab] Session: automation, configuration, creation, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "creation", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.75, + "content_score": 0.64, + "type_score": 0.05 + }, + { + "score": 0.506, + "rel_type": "FOLLOWS", + "from_id": "10249a8f-36b8-4856-a7ee-a8adf686d396", + "from_title": "[homelab] ci: Add CalVer auto-tagging to deploy workflow", + "from_type": "fix", + "to_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "to_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "to_type": "fix", + "shared_tags": [ + "commit", + "creation", + "debugging", + "deployment", + "fix", + "session-log" + ], + "tag_score": 0.545, + "content_score": 0.527, + "type_score": 0.15 + }, + { + "score": 0.505, + "rel_type": "FOLLOWS", + "from_id": "04d116d5-4a66-41f3-ae5c-2d138da47e77", + "from_title": "[homelab] Add orchestrator swarm system and update plugins", + "from_type": "fix", + "to_id": "62760f8f-e8cc-44dc-bece-0ebd5ffce23f", + "to_title": "[homelab] Fix heredoc commit message extraction in session memory hook", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.75, + "content_score": 0.533, + "type_score": 0.15 + }, + { + "score": 0.505, + "rel_type": "BUILDS_ON", + "from_id": "27bbd057-e352-4788-b055-bf55eccf8262", + "from_title": "Foundry Actor compendium _key prefix", + "from_type": "solution", + "to_id": "13bd7adb-d1cd-42be-8e14-4f05cfaa95ad", + "to_title": "Fix Foundry compendium IDs to 16 chars", + "to_type": "solution", + "shared_tags": [ + "compendium", + "fix", + "foundryvtt", + "vagabond-rpg" + ], + "tag_score": 1.0, + "content_score": 0.152, + "type_score": 0.2 + }, + { + "score": 0.502, + "rel_type": "FOLLOWS", + "from_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "from_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "from_type": "fix", + "to_id": "633e06ab-7503-4368-964f-d2ba8071de4b", + "to_title": "[paper-dynasty] ci: use Gitea API for tag creation instead of git push", + "to_type": "fix", + "shared_tags": [ + "commit", + "configuration", + "creation", + "deployment", + "fix", + "session-log" + ], + "tag_score": 0.6, + "content_score": 0.444, + "type_score": 0.15 + }, + { + "score": 0.501, + "rel_type": "FOLLOWS", + "from_id": "af8b63f8-92bb-4ab2-914f-1815ba9be955", + "from_title": "[major-domo] Session: creation, debugging, deployment, feature, fix", + "from_type": "fix", + "to_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "to_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "to_type": "fix", + "shared_tags": [ + "creation", + "debugging", + "deployment", + "fix", + "major-domo", + "session-log" + ], + "tag_score": 0.667, + "content_score": 0.352, + "type_score": 0.15 + }, + { + "score": 0.501, + "rel_type": "FOLLOWS", + "from_id": "2ed3c1c9-d7cf-4b1e-a6d3-9525b7029302", + "from_title": "[homelab] Session: automation, configuration, debugging, deployment, feature, fix, tooling", + "from_type": "fix", + "to_id": "060502a6-218d-4726-8b77-111cd4e15e2a", + "to_title": "[homelab] Initial commit: server diagnostics skill for CT 302", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "debugging", + "deployment", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.727, + "content_score": 0.273, + "type_score": 0.15 + }, + { + "score": 0.499, + "rel_type": "REQUIRES", + "from_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "from_title": "[homelab] Session: automation, tooling", + "from_type": "workflow", + "to_id": "c3d965e3-bb63-46d3-bf19-917ac4b78df8", + "to_title": "[homelab] Session: automation, configuration, deployment, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.474, + "type_score": 0.3 + }, + { + "score": 0.499, + "rel_type": "BUILDS_ON", + "from_id": "02faab41-da64-4637-b89f-1e4bb0690088", + "from_title": "Asymmetric offset light switch plate", + "from_type": "solution", + "to_id": "76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3", + "to_title": "Custom screw holes for extended light switch plate", + "to_type": "solution", + "shared_tags": [ + "3d-printing", + "openscad", + "openscad-models", + "parametric-design" + ], + "tag_score": 1.0, + "content_score": 0.132, + "type_score": 0.2 + }, + { + "score": 0.498, + "rel_type": "FOLLOWS", + "from_id": "3e5fe8fc-59df-4874-b680-7c26d602a758", + "from_title": "[homelab] Session: automation, creation, debugging, feature, fix, tooling", + "from_type": "fix", + "to_id": "376d54b9-4217-4070-9f2d-98c699905f3e", + "to_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, refactoring, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "creation", + "debugging", + "feature", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.8, + "content_score": 0.444, + "type_score": 0.15 + }, + { + "score": 0.496, + "rel_type": "FOLLOWS", + "from_id": "40e194b2-3d50-4698-89be-d0db08349882", + "from_title": "[paper-dynasty] ci: Use Gitea API for tag creation to avoid branch protection issues", + "from_type": "fix", + "to_id": "045f9aee-46ba-4579-bd81-a08df50f6899", + "to_title": "[paper-dynasty] Route retrosheet card generation to dedicated agent", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "creation", + "debugging", + "deployment", + "fix", + "paper-dynasty", + "session-log" + ], + "tag_score": 0.8, + "content_score": 0.16, + "type_score": 0.15 + }, + { + "score": 0.496, + "rel_type": "BUILDS_ON", + "from_id": "ed9e1e96-f7ef-4594-b88f-65cb2decee87", + "from_title": "Salary cap refactor plan created", + "from_type": "decision", + "to_id": "e5bc69ae-6d11-4ed7-ab72-5cefac4b7962", + "to_title": "Salary cap helper functions added", + "to_type": "solution", + "shared_tags": [ + "major-domo", + "python", + "refactor", + "salary-cap" + ], + "tag_score": 0.8, + "content_score": 0.286, + "type_score": 0.3 + }, + { + "score": 0.495, + "rel_type": "FOLLOWS", + "from_id": "17138fa7-b6b0-4e6b-820b-39bef3f10083", + "from_title": "[homelab] Add /save-memories command and memory-saver background agent", + "from_type": "fix", + "to_id": "680c181f-bb5a-46d5-b1b0-c5598430d260", + "to_title": "[homelab] Add Handy speech-to-text documentation", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 1.0, + "content_score": 0.167, + "type_score": 0.15 + }, + { + "score": 0.495, + "rel_type": "FOLLOWS", + "from_id": "04d116d5-4a66-41f3-ae5c-2d138da47e77", + "from_title": "[homelab] Add orchestrator swarm system and update plugins", + "from_type": "fix", + "to_id": "7a712e34-72db-4e9d-8d2a-ccd543c3819a", + "to_title": "[homelab] Session: configuration, creation, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.75, + "content_score": 0.5, + "type_score": 0.15 + }, + { + "score": 0.49, + "rel_type": "FOLLOWS", + "from_id": "17138fa7-b6b0-4e6b-820b-39bef3f10083", + "from_title": "[homelab] Add /save-memories command and memory-saver background agent", + "from_type": "fix", + "to_id": "50d6676c-0bad-4a67-9b9d-7dac791108bb", + "to_title": "[homelab] $(cat <<", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 1.0, + "content_score": 0.15, + "type_score": 0.15 + }, + { + "score": 0.49, + "rel_type": "BUILDS_ON", + "from_id": "f7824582-0d80-401e-bd5b-c23ced0b737a", + "from_title": "Draft monitor missing guild variable", + "from_type": "fix", + "to_id": "e4f0bee9-9dc0-4bff-8d07-ba8aa22ef83d", + "to_title": "Draft monitor auto-start and on-clock embed", + "to_type": "solution", + "shared_tags": [ + "discord", + "draft", + "fix", + "major-domo", + "python" + ], + "tag_score": 1.0, + "content_score": 0.098, + "type_score": 0.2 + }, + { + "score": 0.489, + "rel_type": "FOLLOWS", + "from_id": "680c181f-bb5a-46d5-b1b0-c5598430d260", + "from_title": "[homelab] Add Handy speech-to-text documentation", + "from_type": "fix", + "to_id": "50d6676c-0bad-4a67-9b9d-7dac791108bb", + "to_title": "[homelab] $(cat <<", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "configuration", + "creation", + "debugging", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 1.0, + "content_score": 0.148, + "type_score": 0.15 + }, + { + "score": 0.489, + "rel_type": "BUILDS_ON", + "from_id": "7888f693-4914-437b-97f0-81906fbfe69e", + "from_title": "Fix Player model validation in draft pick test", + "from_type": "fix", + "to_id": "c29d2fb4-d2f6-46e9-a95a-8d6ae4110db8", + "to_title": "Fix SOAK and DraftList test failures", + "to_type": "solution", + "shared_tags": [ + "major-domo", + "pydantic", + "python", + "test-fix" + ], + "tag_score": 1.0, + "content_score": 0.096, + "type_score": 0.2 + }, + { + "score": 0.486, + "rel_type": "FOLLOWS", + "from_id": "7a712e34-72db-4e9d-8d2a-ccd543c3819a", + "from_title": "[homelab] Session: configuration, creation, fix, tooling", + "from_type": "fix", + "to_id": "27e1c1d3-8ab8-4b60-87f9-ec88147e47e5", + "to_title": "[homelab] Session: configuration, creation, debugging, fix", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "fix", + "homelab", + "session-log" + ], + "tag_score": 0.714, + "content_score": 0.519, + "type_score": 0.15 + }, + { + "score": 0.485, + "rel_type": "RELATED_TO", + "from_id": "c3d965e3-bb63-46d3-bf19-917ac4b78df8", + "from_title": "[homelab] Session: automation, configuration, deployment, tooling", + "from_type": "configuration", + "to_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "to_title": "[homelab] Session: automation, configuration, creation, tooling", + "to_type": "configuration", + "shared_tags": [ + "automation", + "configuration", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.714, + "content_score": 0.565, + "type_score": 0.1 + }, + { + "score": 0.484, + "rel_type": "FOLLOWS", + "from_id": "ce2a22a6-7c40-449a-9073-289473b00b99", + "from_title": "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures", + "from_type": "fix", + "to_id": "425a60f6-57fc-46de-acb2-b4e346d21103", + "to_title": "[major-domo] fix: Use Gitea API for tag creation instead of git push", + "to_type": "fix", + "shared_tags": [ + "commit", + "creation", + "debugging", + "fix", + "major-domo", + "session-log" + ], + "tag_score": 0.75, + "content_score": 0.463, + "type_score": 0.15 + }, + { + "score": 0.484, + "rel_type": "FOLLOWS", + "from_id": "045f9aee-46ba-4579-bd81-a08df50f6899", + "from_title": "[paper-dynasty] Route retrosheet card generation to dedicated agent", + "from_type": "fix", + "to_id": "060502a6-218d-4726-8b77-111cd4e15e2a", + "to_title": "[homelab] Initial commit: server diagnostics skill for CT 302", + "to_type": "fix", + "shared_tags": [ + "automation", + "commit", + "creation", + "debugging", + "deployment", + "fix", + "session-log", + "tooling" + ], + "tag_score": 0.727, + "content_score": 0.225, + "type_score": 0.15 + }, + { + "score": 0.484, + "rel_type": "BUILDS_ON", + "from_id": "8cc7f4d2-5e43-4fe1-9d91-ea3c25695d36", + "from_title": "Vagabond RPG critical data model additions", + "from_type": "solution", + "to_id": "9980febe-1b20-4f6b-b19d-b67a49e5308c", + "to_title": "Vagabond RPG important data model enhancements", + "to_type": "solution", + "shared_tags": [ + "data-models", + "fix", + "foundryvtt", + "vagabond-rpg" + ], + "tag_score": 1.0, + "content_score": 0.079, + "type_score": 0.2 + }, + { + "score": 0.483, + "rel_type": "BUILDS_ON", + "from_id": "9980febe-1b20-4f6b-b19d-b67a49e5308c", + "from_title": "Vagabond RPG important data model enhancements", + "from_type": "solution", + "to_id": "cdd7d15d-a7b6-4780-8424-931fb2222e48", + "to_title": "Vagabond RPG minor data model improvements", + "to_type": "solution", + "shared_tags": [ + "data-models", + "fix", + "foundryvtt", + "vagabond-rpg" + ], + "tag_score": 1.0, + "content_score": 0.075, + "type_score": 0.2 + }, + { + "score": 0.483, + "rel_type": "BUILDS_ON", + "from_id": "d452d77f-03cd-4524-9fda-f8081e32032c", + "from_title": "Parametric OpenSCAD light switch plates", + "from_type": "solution", + "to_id": "76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3", + "to_title": "Custom screw holes for extended light switch plate", + "to_type": "solution", + "shared_tags": [ + "3d-printing", + "openscad", + "openscad-models", + "parametric-design" + ], + "tag_score": 1.0, + "content_score": 0.077, + "type_score": 0.2 + }, + { + "score": 0.483, + "rel_type": "BUILDS_ON", + "from_id": "d452d77f-03cd-4524-9fda-f8081e32032c", + "from_title": "Parametric OpenSCAD light switch plates", + "from_type": "solution", + "to_id": "02faab41-da64-4637-b89f-1e4bb0690088", + "to_title": "Asymmetric offset light switch plate", + "to_type": "solution", + "shared_tags": [ + "3d-printing", + "openscad", + "openscad-models", + "parametric-design" + ], + "tag_score": 1.0, + "content_score": 0.075, + "type_score": 0.2 + }, + { + "score": 0.482, + "rel_type": "RELATED_TO", + "from_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "from_title": "[homelab] Session: automation, tooling", + "from_type": "workflow", + "to_id": "b1e37e06-6918-4f21-8ded-b04200c9bbca", + "to_title": "[homelab] Session: automation, configuration, fix", + "to_type": "fix", + "shared_tags": [ + "automation", + "homelab", + "session-log" + ], + "tag_score": 0.5, + "content_score": 0.889, + "type_score": 0.05 + }, + { + "score": 0.481, + "rel_type": "FOLLOWS", + "from_id": "b1eeb082-ef2a-4e91-8ce6-b0d7fe8639e1", + "from_title": "[major-domo] Session: automation, configuration, debugging, deployment, feature, fix, tooling", + "from_type": "fix", + "to_id": "7d999e28-7743-4f9e-b2c9-211fb87a5d0d", + "to_title": "[homelab] Session: configuration, debugging, deployment, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "debugging", + "deployment", + "session-log", + "tooling" + ], + "tag_score": 0.5, + "content_score": 0.519, + "type_score": 0.15 + }, + { + "score": 0.48, + "rel_type": "RELATED_TO", + "from_id": "16dc5bfb-c3b8-424e-a5ca-4d19ea715967", + "from_title": "[homelab] Enable pyright-lsp plugin and reformat settings", + "from_type": "general", + "to_id": "354e9325-bf3b-4783-b169-0b6e03537418", + "to_title": "[homelab] Rotate config backups and update plugin lists", + "to_type": "configuration", + "shared_tags": [ + "commit", + "homelab", + "session-log" + ], + "tag_score": 0.75, + "content_score": 0.55, + "type_score": 0.05 + }, + { + "score": 0.479, + "rel_type": "REQUIRES", + "from_id": "50f02f56-774d-45aa-a7a8-ce2f3b92c5ca", + "from_title": "[homelab] Session: tooling", + "from_type": "workflow", + "to_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "to_title": "[homelab] Session: automation, configuration, creation, tooling", + "to_type": "configuration", + "shared_tags": [ + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.5, + "content_score": 0.632, + "type_score": 0.3 + }, + { + "score": 0.478, + "rel_type": "RELATED_TO", + "from_id": "a7fa3168-f486-4eb8-a726-cb319ab2eb1f", + "from_title": "[homelab] Session: automation, configuration, creation, tooling", + "from_type": "configuration", + "to_id": "7a712e34-72db-4e9d-8d2a-ccd543c3819a", + "to_title": "[homelab] Session: configuration, creation, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "creation", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.714, + "content_score": 0.591, + "type_score": 0.05 + }, + { + "score": 0.478, + "rel_type": "FOLLOWS", + "from_id": "7a712e34-72db-4e9d-8d2a-ccd543c3819a", + "from_title": "[homelab] Session: configuration, creation, fix, tooling", + "from_type": "fix", + "to_id": "af7fe725-4e44-4968-89c4-3eadf0b72fa4", + "to_title": "[homelab] Session: creation, feature, fix, testing, tooling", + "to_type": "fix", + "shared_tags": [ + "creation", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.625, + "content_score": 0.609, + "type_score": 0.15 + }, + { + "score": 0.477, + "rel_type": "FOLLOWS", + "from_id": "7d999e28-7743-4f9e-b2c9-211fb87a5d0d", + "from_title": "[homelab] Session: configuration, debugging, deployment, tooling", + "from_type": "fix", + "to_id": "38fb4597-4eb1-4ba4-a0a9-66f7e0b22a67", + "to_title": "[paper-dynasty] Session: automation, configuration, debugging, deployment, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "debugging", + "deployment", + "session-log", + "tooling" + ], + "tag_score": 0.625, + "content_score": 0.343, + "type_score": 0.15 + }, + { + "score": 0.477, + "rel_type": "FOLLOWS", + "from_id": "839417c1-d969-43b9-a7b3-6a790ee16672", + "from_title": "[homelab] Session: automation, configuration, creation, feature, fix, testing, tooling", + "from_type": "fix", + "to_id": "376d54b9-4217-4070-9f2d-98c699905f3e", + "to_title": "[homelab] Session: automation, configuration, creation, debugging, feature, fix, refactoring, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "creation", + "feature", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.727, + "content_score": 0.471, + "type_score": 0.15 + }, + { + "score": 0.477, + "rel_type": "RELATED_TO", + "from_id": "c3d965e3-bb63-46d3-bf19-917ac4b78df8", + "from_title": "[homelab] Session: automation, configuration, deployment, tooling", + "from_type": "configuration", + "to_id": "7d999e28-7743-4f9e-b2c9-211fb87a5d0d", + "to_title": "[homelab] Session: configuration, debugging, deployment, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "deployment", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.714, + "content_score": 0.321, + "type_score": 0.05 + }, + { + "score": 0.476, + "rel_type": "FOLLOWS", + "from_id": "27e1c1d3-8ab8-4b60-87f9-ec88147e47e5", + "from_title": "[homelab] Session: configuration, creation, debugging, fix", + "from_type": "fix", + "to_id": "924b6731-34df-48a5-89f5-5f7999f05f2a", + "to_title": "[homelab] Session: configuration, debugging, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "debugging", + "fix", + "homelab", + "session-log" + ], + "tag_score": 0.714, + "content_score": 0.484, + "type_score": 0.15 + }, + { + "score": 0.475, + "rel_type": "FOLLOWS", + "from_id": "f8823c80-5b09-4f15-8827-94c1f04a0427", + "from_title": "[homelab] Session: automation, configuration, debugging, fix, refactoring, tooling", + "from_type": "fix", + "to_id": "e1f67b47-8683-41bf-8830-c787a3d96d99", + "to_title": "[homelab] Session: automation, debugging, feature, refactoring, tooling", + "to_type": "fix", + "shared_tags": [ + "automation", + "debugging", + "homelab", + "refactoring", + "session-log", + "tooling" + ], + "tag_score": 0.667, + "content_score": 0.545, + "type_score": 0.15 + }, + { + "score": 0.475, + "rel_type": "FOLLOWS", + "from_id": "7d999e28-7743-4f9e-b2c9-211fb87a5d0d", + "from_title": "[homelab] Session: configuration, debugging, deployment, tooling", + "from_type": "fix", + "to_id": "6a20bab5-72bf-41a8-b7e6-a4f615617b59", + "to_title": "[homelab] Session: configuration, debugging, fix, tooling", + "to_type": "fix", + "shared_tags": [ + "configuration", + "debugging", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.714, + "content_score": 0.481, + "type_score": 0.15 + }, + { + "score": 0.475, + "rel_type": "BUILDS_ON", + "from_id": "b9f0edd4-8752-42a4-a4d9-5a984ae741d0", + "from_title": "Fix pack type grouping in packs display", + "from_type": "fix", + "to_id": "48e397e9-b2f6-4f8c-844d-b408cccbc372", + "to_title": "Athletics team name alias fix", + "to_type": "solution", + "shared_tags": [ + "discord-bot", + "fix", + "paper-dynasty", + "python" + ], + "tag_score": 1.0, + "content_score": 0.049, + "type_score": 0.2 + }, + { + "score": 0.475, + "rel_type": "FOLLOWS", + "from_id": "875fe9de-65d6-47a1-a078-066726109c9e", + "from_title": "[homelab] Session: automation, configuration, creation, deployment, fix, refactoring, tooling", + "from_type": "fix", + "to_id": "04d116d5-4a66-41f3-ae5c-2d138da47e77", + "to_title": "[homelab] Add orchestrator swarm system and update plugins", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "creation", + "fix", + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.7, + "content_score": 0.5, + "type_score": 0.15 + }, + { + "score": 0.475, + "rel_type": "RELATED_TO", + "from_id": "05f85f82-0dac-42ff-b4b4-1a99026fdf0f", + "from_title": "[homelab] Session: automation, tooling", + "from_type": "workflow", + "to_id": "50f02f56-774d-45aa-a7a8-ce2f3b92c5ca", + "to_title": "[homelab] Session: tooling", + "to_type": "workflow", + "shared_tags": [ + "homelab", + "session-log", + "tooling" + ], + "tag_score": 0.75, + "content_score": 0.533, + "type_score": 0.05 + }, + { + "score": 0.474, + "rel_type": "BUILDS_ON", + "from_id": "8cc7f4d2-5e43-4fe1-9d91-ea3c25695d36", + "from_title": "Vagabond RPG critical data model additions", + "from_type": "solution", + "to_id": "cdd7d15d-a7b6-4780-8424-931fb2222e48", + "to_title": "Vagabond RPG minor data model improvements", + "to_type": "solution", + "shared_tags": [ + "data-models", + "fix", + "foundryvtt", + "vagabond-rpg" + ], + "tag_score": 1.0, + "content_score": 0.048, + "type_score": 0.2 + }, + { + "score": 0.473, + "rel_type": "FOLLOWS", + "from_id": "875fe9de-65d6-47a1-a078-066726109c9e", + "from_title": "[homelab] Session: automation, configuration, creation, deployment, fix, refactoring, tooling", + "from_type": "fix", + "to_id": "633e06ab-7503-4368-964f-d2ba8071de4b", + "to_title": "[paper-dynasty] ci: use Gitea API for tag creation instead of git push", + "to_type": "fix", + "shared_tags": [ + "automation", + "configuration", + "creation", + "deployment", + "fix", + "session-log" + ], + "tag_score": 0.545, + "content_score": 0.438, + "type_score": 0.15 + } +] \ No newline at end of file