github Python re-analysis due

davekilleen/Dex

github

Your AI Chief of Staff — a personal operating system starter kit that adapts to your role. No coding required.

maintainer
davekilleen
license
NOASSERTION
first seen
2026-06-01
last seen
2026-08-14
releases · 30d
62
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  2. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  3. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  4. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  5. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  6. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  7. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  8. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  9. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  10. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  11. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  12. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  13. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  14. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  15. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  16. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  17. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  18. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  19. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
  20. HIGH code analysis flagged dynamic code execution ×2 in davekilleen/Dex
capabilities 6 tools
transport stdio · streamable-http counts 6 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • check_for_updates
  • dismiss_update
  • get_changelog_from_github
  • get_pending_update_notification
  • get_update_status
  • mark_update_notified
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit e8f8fbd · analyzer v32 · 34m ago

skills & prompt files 136

danger signals2

code evidence vv1.96.3 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 333

filesystem 157

  • fs davekilleen-Dex-e8f8fbd/.claude/hooks/soft-promise-detector.py :13 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/compose_images.py :67 images = [Image.open(path) for path in image_paths]
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/edit_image.py :57 input_image = Image.open(input_path)
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/gemini_images.py :18 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/multi_turn_chat.py :28 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/skill-creator/scripts/init_skill.py :15 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/skill-creator/scripts/package_skill.py :15 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/skill-creator/scripts/quick_validate.py :9 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/pack.py :10 import shutil
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/unpack.py :8 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/validate.py :11 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/validation/base.py :6 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/validation/redlining.py :8 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/scripts/document.py :31 import shutil
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/scripts/utilities.py :34 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-mcp-builder/scripts/evaluation.py :14 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pdf/scripts/check_bounding_boxes.py :67 with open(sys.argv[1]) as f:
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pdf/scripts/create_validation_image.py :13 with open(fields_json_path, 'r') as f:
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pdf/scripts/extract_form_field_info.py :143 with open(json_output_path, "w") as f:
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pdf/scripts/fill_fillable_fields.py :13 with open(fields_json_path) as f:
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pdf/scripts/fill_pdf_form_with_annotations.py :32 with open(fields_json_path, "r") as f:
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/pack.py :10 import shutil
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/unpack.py :8 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/validate.py :11 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/validation/base.py :6 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/validation/redlining.py :8 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/scripts/inventory.py :30 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/scripts/rearrange.py :13 import shutil
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/scripts/replace.py :14 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/scripts/thumbnail.py :47 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-skill-creator/scripts/init_skill.py :15 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-skill-creator/scripts/package_skill.py :15 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-skill-creator/scripts/quick_validate.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-slack-gif-creator/core/gif_builder.py :9 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-slack-gif-creator/core/validators.py :8 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-webapp-testing/examples/console_logging.py :31 with open('/mnt/user-data/outputs/console.log', 'w') as f:
  • fs davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-xlsx/recalc.py :12 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/dex-update/scripts/protect_trust_registry.py :9 import shutil
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/diff-adopt-profile/scripts/adopt_profile.py :34 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/diff-generate/scripts/publish_diff.py :26 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/feedback/scripts/feedback_client.py :34 from pathlib import Path
  • fs (weak) davekilleen-Dex-e8f8fbd/.claude/skills/skill-score/scripts/score_skill.py :21 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/backup/backup_vault.py :44 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/backup/install_backup_job.py :37 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/backup/restore_vault.py :27 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/capabilities.py :16 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/activation.py :21 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/capsule.py :20 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/cli.py :12 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/inventory.py :11 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/model.py :13 from pathlib import PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/planning.py :18 from pathlib import PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/references.py :10 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/service.py :12 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/staging.py :20 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/customization_migration/verification.py :20 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/dexdiff_profile_adopt.py :16 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_engine/contract.py :9 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_engine/cooling.py :33 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_engine/index.py :15 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_engine/relationships.py :14 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_engine/write.py :17 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/entity_maintenance.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/health/post_update.py :21 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/health/promises.py :31 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/health/snapshot.py :24 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/integrations/detect.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/integrations/google/setup.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/integrations/notion/setup.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/integrations/pipedrive/pipedrive_server.py :61 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/integrations/slack/setup.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/integrations/task_sync.py :9 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/lens_catalog_sources.py :18 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/bridge.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/catalog.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/cli.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/customizations.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/engine.py :12 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/filesystem.py :14 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/inventory.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/ledger.py :22 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/machine_state.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/retention.py :7 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/runtime_evidence.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/service.py :20 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/lifecycle/sqlite_snapshot.py :20 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/analytics_helper.py :23 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/analytics_server.py :26 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/calendar_server.py :36 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/career_parser.py :12 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/career_server.py :20 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/customization_migration_server.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/dex_improvements_server.py :21 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/granola_server.py :36 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/onboarding_server.py :26 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/resume_parser.py :13 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/resume_server.py :29 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/session_memory_server.py :20 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :9 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/mcp/work_server.py :24 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/migrations/migrate_v1_to_v2.py :13 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/migrations/preserve_local_only_paths.py :14 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/obsidian/generate_obsidian_config.py :4 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/obsidian/migrate_to_wikilinks.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/obsidian/sync_daemon.py :10 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/path_contract.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/path_safety.py :6 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/paths.py :17 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/portable_contract.py :1202 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/provision_transaction.py :18 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/calendar_ingest.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/cli.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/db.py :9 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/manual_note_match.py :7 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/meeting_intel_projection.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/projection_write.py :7 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/ritual_intelligence/transcript_ingest.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/transaction/engine.py :30 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/transaction/fsync.py :13 re-inline ``os.open(directory, os.O_RDONLY)`` + ``os.fsync`` at call sites.
  • fs davekilleen-Dex-e8f8fbd/core/transaction/journal.py :23 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/transaction/lock.py :36 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/transaction/snapshot.py :19 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/update/apply_update.py :20 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/apple_mail_health.py :18 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/automation_ownership.py :16 from pathlib import Path, PurePosixPath
  • fs davekilleen-Dex-e8f8fbd/core/utils/company_domains.py :6 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/credential_remediation.py :13 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/credential_scanner.py :13 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/credential_workflow.py :7 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/dex_logger.py :23 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/doctor.py :15 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/feedback_sweep.py :26 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/health_session.py :14 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/health_telemetry.py :15 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/history_hygiene.py :9 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/integration_credentials.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/launch_agents.py :19 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/local_git.py :6 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/manifest.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/mcp_handshake.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/preflight.py :22 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/qmd_indexer.py :18 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/qmd_query.py :32 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/reference_formatter.py :7 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/release_channel.py :6 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/release_feed.py :20 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/release_notes_sweep.py :12 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/safe_autosave.py :13 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/session_health.py :17 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/smoke.py :14 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/strict_yaml.py :5 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/timezone.py :11 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/tracked_ignored.py :9 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/trust_registry.py :12 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/update_verifier.py :15 import shutil
  • fs davekilleen-Dex-e8f8fbd/core/utils/validators.py :8 from pathlib import Path
  • fs davekilleen-Dex-e8f8fbd/core/utils/working_week.py :12 from pathlib import Path

shell / exec 35

  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/pack.py :11 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-docx/ooxml/scripts/validation/redlining.py :5 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/pack.py :11 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/ooxml/scripts/validation/redlining.py :5 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-pptx/scripts/thumbnail.py :44 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-webapp-testing/scripts/with_server.py :17 import subprocess
  • shell davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-xlsx/recalc.py :9 import subprocess
  • shell (weak) davekilleen-Dex-e8f8fbd/.claude/skills/dex-update/scripts/protect_trust_registry.py :11 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/backup/backup_vault.py :45 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/backup/install_backup_job.py :35 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/backup/restore_vault.py :28 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/capabilities.py :17 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/integrations/pipedrive/pipedrive_server.py :62 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/integrations/task_sync.py :10 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/lens_catalog_sources.py :16 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/lifecycle/engine.py :13 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/mcp/calendar_server.py :32 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/mcp/granola_server.py :29 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/mcp/onboarding_server.py :22 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/migrations/preserve_local_only_paths.py :11 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/obsidian/migrate_to_wikilinks.py :8 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/doctor.py :17 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/history_hygiene.py :11 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/local_git.py :7 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/manifest.py :7 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/mcp_handshake.py :8 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/qmd_indexer.py :19 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/qmd_query.py :33 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/safe_autosave.py :10 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/session_health.py :14 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/smoke.py :17 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/timezone.py :91 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/tracked_ignored.py :10 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/trust_registry.py :14 import subprocess
  • shell davekilleen-Dex-e8f8fbd/core/utils/update_verifier.py :16 import subprocess

network 14

  • net (weak) davekilleen-Dex-e8f8fbd/.claude/skills/anthropic-webapp-testing/scripts/with_server.py :18 import socket
  • net (weak) davekilleen-Dex-e8f8fbd/.claude/skills/diff-adopt-profile/scripts/adopt_profile.py :31 import urllib.error
  • net (weak) davekilleen-Dex-e8f8fbd/.claude/skills/diff-generate/scripts/publish_diff.py :22 import urllib.error
  • net (weak) davekilleen-Dex-e8f8fbd/.claude/skills/feedback/scripts/feedback_client.py :31 import urllib.error
  • net davekilleen-Dex-e8f8fbd/core/dexdiff_profile_adopt.py :13 import urllib.error
  • net davekilleen-Dex-e8f8fbd/core/integrations/pipedrive/pipedrive_server.py :84 import requests
  • net davekilleen-Dex-e8f8fbd/core/mcp/analytics_helper.py :37 import requests
  • net davekilleen-Dex-e8f8fbd/core/mcp/granola_server.py :32 import urllib.error
  • net davekilleen-Dex-e8f8fbd/core/mcp/onboarding_server.py :416 import aiohttp
  • net davekilleen-Dex-e8f8fbd/core/mcp/work_server.py :26 from urllib.parse import urlsplit
  • net davekilleen-Dex-e8f8fbd/core/utils/feedback_sweep.py :23 import urllib.error
  • net davekilleen-Dex-e8f8fbd/core/utils/health_telemetry.py :18 import requests
  • net davekilleen-Dex-e8f8fbd/core/utils/release_feed.py :18 import urllib.request
  • net davekilleen-Dex-e8f8fbd/core/utils/smoke.py :740 "import socket\n"

secrets 9

  • secrets (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/compose_images.py :49 api_key = os.environ.get("GEMINI_API_KEY")
  • secrets (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/edit_image.py :47 api_key = os.environ.get("GEMINI_API_KEY")
  • secrets (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/gemini_images.py :44 self.api_key = api_key or os.environ.get("GEMINI_API_KEY")
  • secrets (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/generate_image.py :44 api_key = os.environ.get("GEMINI_API_KEY")
  • secrets (weak) davekilleen-Dex-e8f8fbd/.claude/plugins/compound-engineering/skills/gemini-imagegen/scripts/multi_turn_chat.py :43 api_key = os.environ.get("GEMINI_API_KEY")
  • secrets davekilleen-Dex-e8f8fbd/core/mcp/analytics_helper.py :71 secret = os.environ.get('PENDO_TRACK_SECRET', '').strip()
  • secrets davekilleen-Dex-e8f8fbd/core/mcp/granola_server.py :173 key = os.environ.get("GRANOLA_API_KEY")
  • secrets davekilleen-Dex-e8f8fbd/core/utils/doctor.py :4665 configured = os.environ.get("GRANOLA_API_KEY")
  • secrets davekilleen-Dex-e8f8fbd/core/utils/smoke.py :1134 provided = os.environ.get("DEX_SMOKE_RUN_TOKEN", "")

database 6

  • db davekilleen-Dex-e8f8fbd/core/entity_engine/index.py :8 import sqlite3
  • db davekilleen-Dex-e8f8fbd/core/lifecycle/sqlite_snapshot.py :15 import sqlite3
  • db davekilleen-Dex-e8f8fbd/core/mcp/session_memory_server.py :18 import sqlite3
  • db davekilleen-Dex-e8f8fbd/core/ritual_intelligence/db.py :6 import sqlite3
  • db davekilleen-Dex-e8f8fbd/core/ritual_intelligence/service.py :5 import sqlite3
  • db davekilleen-Dex-e8f8fbd/core/utils/apple_mail_health.py :13 import sqlite3

tool registrations 6

  • check_for_updates davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :59
  • get_pending_update_notification davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :75
  • mark_update_notified davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :81
  • dismiss_update davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :87
  • get_changelog_from_github davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :93
  • get_update_status davekilleen-Dex-e8f8fbd/core/mcp/update_checker.py :100

declared dependencies 5

  • mcp@>=1.0.0,<2.0.0
  • pyyaml@>=6.0
  • python-dateutil@>=2.8.0
  • requests@>=2.31.0
  • scrapling@[ai]>=0.4.1

cursor-plugin 1

  • opaque (low) davekilleen-Dex-e8f8fbd/.cursor/rules/search-routing.mdc bundled .cursor/ plugin descriptor (davekilleen-Dex-e8f8fbd/.cursor/rules/search-routing.mdc) — presence-detected; review the descriptor