my-homelab-configs/graphify-out/GRAPH_REPORT.md

19 KiB

Graph Report - my-homelab-configs (2026-09-18)

Corpus Check

  • cluster-only mode — file stats not available

Summary

  • 1332 nodes · 2793 edges · 118 communities (73 shown, 45 thin omitted)
  • Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS · INFERRED: 11 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Graph Freshness

  • Built from commit: e8d39e55
  • Run git rev-parse HEAD and compare to check if the graph is stale.
  • Run graphify update . after code changes (no API cost).

Community Hubs (Navigation)

  • provisioning/variables.tf
  • jeannie
  • jeannie script
  • platform/main.tf
  • main.go
  • edge/variables.tf
  • truthy
  • apps
  • cluster/variables.tf
  • jeannie-unit
  • pimox_ssh
  • main.py
  • heal
  • security-scan
  • pathlib
  • disabled_value
  • workers
  • render-service-catalog
  • capacity-report
  • translation.js
  • incident-commander
  • media-cruncher.js
  • build-homelab-ai-index
  • run_tofu_stack
  • seed-heimdall.py
  • prompt-injection-lab
  • configure-arr.py
  • ai-evals
  • translate.php
  • exporter.py
  • seed-uptime-kuma.js
  • validate-homelab
  • apps/variables.tf
  • rpi-services/bootstrap.sh
  • run_step
  • model-observe
  • restore-drill
  • ai-scheduler
  • renovate.json
  • access-audit
  • query-homelab-ai-index
  • ideas_helper.php
  • explain
  • resource-budget
  • safety-case
  • validate-tailnet-policy
  • cert-check
  • promote
  • security-attack-path
  • security-logs
  • synthetic-checks
  • theme.js
  • cv-theme.js
  • prepare_cluster_worker_var_file
  • red-blue-loop
  • architecture-simulator.js
  • dev-toolbelt.js
  • network-quality.js
  • sentiment-sandbox.js
  • secrets_init
  • backup-status
  • control-plane
  • recover-plan
  • release-snapshot
  • render-docs
  • scorecard
  • model-drift.js
  • privacy-redactor.js
  • lang_helper.php
  • blockchain-wallet
  • change-journal
  • grafana-dashboards
  • kubeconfig-readonly
  • platform/.terraform.lock.hcl
  • blockchain-devnet
  • capacity-limits
  • recover-power
  • route-inventory
  • render-static-pages.sh
  • addIdeaText
  • cluster/.terraform.lock.hcl
  • matrix-server/bootstrap.sh
  • ask
  • blockchain-test
  • capacity-advisor
  • homelab-map
  • impact
  • jeannie-core
  • report-render
  • review-last-change
  • sw.js
  • homelab-tree.php
  • translation_ui.php
  • start-website.sh
  • apps/.terraform.lock.hcl
  • edge/.terraform.lock.hcl
  • provisioning/.terraform.lock.hcl
  • arr-stack/bootstrap.sh
  • omniroute/bootstrap.sh
  • backup-youtube.sh
  • artifact-cache
  • gitops-status
  • golden-ledger
  • validate-homelab-inventory
  • my-homelab-configs

God Nodes (most connected - your core abstractions)

  1. null_resource.edge_services - 24 edges
  2. null_resource.pimox_template_vm_create - 19 edges
  3. null_resource.provisioning_host - 19 edges
  4. null_resource.kubeadm_worker - 18 edges
  5. null_resource.pimox_template_vm_seal - 18 edges
  6. local.preseed_cfg - 17 edges
  7. local.default_conf - 14 edges
  8. null_resource.calico_ready - 14 edges
  9. local.config_hash - 13 edges
  10. null_resource.kubeadm_control_plane - 12 edges

Surprising Connections (you probably didn't know these)

  • local.application_sources --references--> var.website_image_ref [EXTRACTED] bootstrap/apps/main.tf → bootstrap/apps/variables.tf
  • local.application_sources --references--> var.gitops_repo_url [EXTRACTED] bootstrap/apps/main.tf → bootstrap/apps/variables.tf
  • output.kubeconfig_path --references--> var.kubeconfig_path [EXTRACTED] bootstrap/cluster/main.tf → bootstrap/cluster/variables.tf
  • null_resource.kubeadm_control_plane --references--> var.control_plane_advertise_address [EXTRACTED] bootstrap/cluster/main.tf → bootstrap/cluster/variables.tf
  • null_resource.kubeadm_control_plane --references--> var.kubeconfig_owner [EXTRACTED] bootstrap/cluster/main.tf → bootstrap/cluster/variables.tf

Import Cycles

  • None detected.

Communities (118 total, 45 thin omitted)

Community 0 - "provisioning/variables.tf"

Cohesion: 0.05 Nodes (88): Terraform module: bootstrap/provisioning, local.config_hash, local.debian_netboot_base_url, local.dnsmasq_conf, local.golden_node_prepare, local.grub_cfg, local.http_root, local.kernel_cgroup_boot_options (+80 more)

Community 1 - "jeannie"

Cohesion: 0.04 Nodes (52): ai_index(), backup_tofu_state(), bootstrap_gitea_repo(), cleanup_calico_links(), cleanup_calico_runtime_files(), cleanup_iptables(), cleanup_mounts(), cleanup_node() (+44 more)

Community 2 - "jeannie script"

Cohesion: 0.04 Nodes (78): jeannie script, access_audit(), agent_sandbox(), ai_evals(), ai_memory(), ai_scheduler(), artifact_cache(), ask_homelab() (+70 more)

Community 3 - "platform/main.tf"

Cohesion: 0.07 Nodes (74): Terraform module: bootstrap/platform, helm_release.argocd, helm_release.calico, helm_release.calico_crds, helm_release.extra_tools, helm_release.kyverno, helm_release.kyverno_policies, helm_release.loki (+66 more)

Community 4 - "main.go"

Cohesion: 0.08 Nodes (45): envDefault(), executeDAG(), filterReportRows(), includeReportRow(), main(), normalizeStatus(), orderedReportAreas(), parseReportRows() (+37 more)

Community 5 - "edge/variables.tf"

Cohesion: 0.11 Nodes (42): Terraform module: bootstrap/edge, local.compose_file, local.config_hash, local.default_conf, local.default_conf_matrix, local.default_vcl, local.haproxy_cfg, local.heimdall_backend_host (+34 more)

Community 6 - "truthy"

Cohesion: 0.15 Nodes (33): ai_check(), backstage_brain_enabled(), backstage_brain_note(), doctor_cluster(), doctor_edge(), doctor_gitea(), doctor_rpi(), doctor_versions() (+25 more)

Community 7 - "apps"

Cohesion: 0.08 Nodes (34): apps(), apps_registry_endpoint(), demos_image_is_current(), demos_registry_endpoint(), demos_source_hash(), dump_argocd_debug(), dump_namespace_debug(), ensure_cosign_available() (+26 more)

Community 8 - "cluster/variables.tf"

Cohesion: 0.14 Nodes (31): Terraform module: bootstrap/cluster, local.control_plane_node_label_pairs, local.node_label_pairs, local.worker_node_label_pairs, null_resource.kube_system_resource_policy, null_resource.kubeadm_control_plane, null_resource.kubeadm_worker, null_resource.node_labels (+23 more)

Community 9 - "jeannie-unit"

Cohesion: 0.20 Nodes (26): jeannie-unit script, assert_command_failure_contains(), assert_command_success(), assert_contains(), assert_eq(), fail(), JEANNIE_LIBRARY_MODE, pass() (+18 more)

Community 10 - "pimox_ssh"

Cohesion: 0.13 Nodes (27): cpuset_cpu_count(), destroy_pimox_worker_vms(), detect_route_interface(), ensure_pimox_worker_node(), ensure_static_pimox_worker_spec_file(), pimox_generated_mac(), pimox_guest_cpu_count(), pimox_guest_exec_exitcode() (+19 more)

Community 11 - "main.py"

Cohesion: 0.13 Nodes (23): Any, BaseModel, fastapi, fastapi_middleware_cors, get, drift_score(), healthz(), load_model() (+15 more)

Community 12 - "heal"

Cohesion: 0.19 Nodes (23): apply_plan(), build_plan(), clear_failed_action(), command_for(), HealRule, highest_impact(), impact_sort_key(), load_heal_state() (+15 more)

Community 13 - "security-scan"

Cohesion: 0.26 Nodes (19): security-scan script, ensure_report_dir(), lynis_findings(), prepare_security_scans(), print_lynis_fallback_focus(), print_lynis_focus(), print_lynis_llm_focus(), require_docker() (+11 more)

Community 14 - "pathlib"

Cohesion: 0.13 Nodes (17): argparse, json, numpy, pathlib, classify(), load_policy(), main(), print_result() (+9 more)

Community 15 - "disabled_value"

Cohesion: 0.16 Nodes (21): check_edge_ssh(), check_pimox_storage(), configure_pimox_worker_forwarding(), configure_pimox_worker_guest_network(), deploy_heimdall(), deploy_hermes(), deploy_matrix(), deploy_omniroute() (+13 more)

Community 16 - "workers"

Cohesion: 0.26 Nodes (19): workers script, drain_node(), have(), is_skipped(), kubectl_cmd(), list_workers(), node_for_index(), pimox_ssh() (+11 more)

Community 17 - "render-service-catalog"

Cohesion: 0.25 Nodes (17): html, check_file(), host_ip(), host_label(), host_rows(), html_link(), main(), markdown_table() (+9 more)

Community 18 - "capacity-report"

Cohesion: 0.27 Nodes (17): capacity-report script, compact_guidance(), compact_host_capacity(), compact_kubernetes_capacity(), compact_main(), compact_pimox_capacity(), compact_rpi_capacity(), emit() (+9 more)

Community 19 - "translation.js"

Cohesion: 0.18 Nodes (15): actionSpan, badge, browserLang, btn, collectPageTranslations(), detectedSpan, doTranslation(), hidePrompt() (+7 more)

Community 20 - "incident-commander"

Cohesion: 0.28 Nodes (15): Namespace, classify(), first_evidence_lines(), fixture_text(), Incident, incident_for_class(), load_incidents(), main() (+7 more)

Community 21 - "media-cruncher.js"

Cohesion: 0.18 Nodes (14): appendStatus(), createCanvas(), crunchImage(), dropZone, extensionByType, formatBytes(), handleFiles(), maxEdge (+6 more)

Community 22 - "build-homelab-ai-index"

Cohesion: 0.26 Nodes (14): collections, fnmatch, math, build_index(), candidate_files(), chunk_file(), load_patterns(), main() (+6 more)

Community 23 - "run_tofu_stack"

Cohesion: 0.16 Nodes (15): adopt_apps_existing_resources(), adopt_platform_existing_resources(), adopt_tofu_helm_release(), adopt_tofu_kubernetes_manifest(), adopt_tofu_kubernetes_resource(), cluster_control_plane_tracked(), delete_prometheus_stack_storage(), edge_apply() (+7 more)

Community 24 - "seed-heimdall.py"

Cohesion: 0.27 Nodes (11): datetime, columns(), ensure_dashboard_tag(), ensure_public_dashboard(), home_dashboard_tag_id(), quote_identifier(), table_exists(), upsert_links() (+3 more)

Community 25 - "prompt-injection-lab"

Cohesion: 0.33 Nodes (12): dataclasses, Case, defense_response(), fixture_text(), load_cases(), main(), print_list(), print_run() (+4 more)

Community 26 - "configure-arr.py"

Cohesion: 0.32 Nodes (12): apply_import_lists(), ensure_qbittorrent(), ensure_root_folder(), fill_fields(), load_env(), main(), Path, Configure safe baseline ARR app settings from local environment values. (+4 more)

Community 27 - "ai-evals"

Cohesion: 0.38 Nodes (12): Case, fixture_text(), load_cases(), main(), print_list(), print_run(), print_show(), Deterministic eval harness for Jeannie and homelab RAG behavior. (+4 more)

Community 28 - "translate.php"

Cohesion: 0.29 Nodes (7): clean_translate_text(), redis_connect(), redis_encode_command(), redis_read_line(), redis_read_response(), translation_cache_read(), translation_cache_write()

Community 29 - "exporter.py"

Cohesion: 0.21 Nodes (9): BaseHTTPRequestHandler, http_server, collect_metrics(), hex_to_int(), MetricsHandler, rpc(), time, urllib_error (+1 more)

Community 30 - "seed-uptime-kuma.js"

Cohesion: 0.27 Nodes (11): defaultForColumn(), findModuleDirectory(), fs, loadDatabaseModule(), main(), monitorValues(), nowSql(), path (+3 more)

Community 31 - "validate-homelab"

Cohesion: 0.20 Nodes (3): validate-homelab script, main(), run_step()

Community 32 - "apps/variables.tf"

Cohesion: 0.31 Nodes (9): Terraform module: bootstrap/apps, kubernetes_manifest.argocd_application, local.application_sources, provider.kubernetes, var.applications, var.argocd_namespace, var.gitops_repo_url, var.kubeconfig_path (+1 more)

Community 33 - "rpi-services/bootstrap.sh"

Cohesion: 0.33 Nodes (9): configure_docker_root(), install_missing_packages(), resolve_pihole_webpassword(), seed_uptime_kuma_monitors(), bootstrap.sh script, stop_legacy_pihole(), sync_pihole_adlists(), sync_pihole_managed_dns() (+1 more)

Community 34 - "run_step"

Cohesion: 0.24 Nodes (11): jeannie_compact_text(), jeannie_log_start(), jeannie_step_latest_progress_line(), jeannie_step_plan(), jeannie_step_prefix(), jeannie_step_progress(), jeannie_verbose_enabled(), rebuild_cluster() (+3 more)

Community 35 - "model-observe"

Cohesion: 0.35 Nodes (10): ask_ollama(), grade(), main(), offline_answer(), print_prompts(), prompts(), Track local model behavior with stable homelab prompts., report() (+2 more)

Community 36 - "restore-drill"

Cohesion: 0.42 Nodes (10): restore-drill script, check_file(), drill_gitea(), drill_gitops(), drill_pihole(), drill_state(), latest_file(), main() (+2 more)

Community 37 - "ai-scheduler"

Cohesion: 0.36 Nodes (9): csv, as_bool(), main(), Path, Simulate placement for AI-ish homelab workloads., read_tsv(), recommend(), score_node() (+1 more)

Community 38 - "renovate.json"

Cohesion: 0.20 Nodes (9): config:recommended, customManagers, dependencyDashboard, extends, labels, packageRules, prConcurrentLimit, $schema (+1 more)

Community 39 - "access-audit"

Cohesion: 0.47 Nodes (9): access-audit script, git_access(), kubernetes_access(), main(), runner_access(), section(), ssh_inventory(), tailnet_access() (+1 more)

Community 40 - "query-homelab-ai-index"

Cohesion: 0.33 Nodes (9): ask_ollama(), load_index(), main(), Path, Query the local homelab retrieval index and optionally ask Ollama., render_citations(), render_context(), score_chunks() (+1 more)

Community 41 - "ideas_helper.php"

Cohesion: 0.47 Nodes (8): visitor_idea_clean(), visitor_ideas_append(), visitor_ideas_dir(), visitor_ideas_ensure_dir(), visitor_ideas_file(), visitor_ideas_rate_file(), visitor_ideas_read(), visitor_ideas_recently_submitted()

Community 42 - "explain"

Cohesion: 0.39 Nodes (7): explain script, explain_output(), is_read_only_command(), is_read_only_subcommand(), main(), run_target(), usage()

Community 43 - "resource-budget"

Cohesion: 0.53 Nodes (8): resource-budget script, fail(), have(), host_budget(), kubernetes_budget(), section(), usage(), warn()

Community 44 - "safety-case"

Cohesion: 0.39 Nodes (8): changed_files(), git_lines(), load_rules(), main(), matched_rules(), print_safety_case(), Generate a read-only safety case for homelab changes., risk_order()

Community 45 - "validate-tailnet-policy"

Cohesion: 0.36 Nodes (7): re, main(), parse_simple_inventory(), Path, Validate the repo-managed Tailscale policy without contacting Tailscale., require(), strip_hujson()

Community 46 - "cert-check"

Cohesion: 0.50 Nodes (6): cert-check script, have(), inventory_hosts(), inventory_scalar(), mark_fail(), section()

Community 47 - "promote"

Cohesion: 0.43 Nodes (7): checks(), main(), plan(), Plan and validate canary promotion gates., rollback(), validate(), subprocess

Community 48 - "security-attack-path"

Cohesion: 0.50 Nodes (7): security-attack-path script, jsonpath_or_unknown(), kubectl_ro(), main(), require_kubectl(), section(), usage()

Community 49 - "security-logs"

Cohesion: 0.46 Nodes (7): security-logs script, collect_gitea_logs(), collect_traefik_logs(), ensure_report_dir(), main(), print_matches(), timestamp()

Community 50 - "synthetic-checks"

Cohesion: 0.39 Nodes (5): synthetic-checks script, check(), kubectl_ok(), section(), warn_check()

Community 51 - "theme.js"

Cohesion: 0.48 Nodes (4): getDemoThemeButtons(), normalizeDemoTheme(), setDemoTheme(), storeDemoTheme()

Community 52 - "cv-theme.js"

Cohesion: 0.48 Nodes (5): cvPortrait, getSiteThemeButtons(), normalizeSiteTheme(), setSiteTheme(), storeSiteTheme()

Community 53 - "prepare_cluster_worker_var_file"

Cohesion: 0.33 Nodes (7): cluster_worker_var_file_has_workers(), ensure_cluster_worker_var_file(), plan_homelab(), prepare_cluster_worker_var_file(), run_tofu_plan_stack(), tofu_stack_from_plan_target(), write_cluster_worker_var_file()

Community 54 - "red-blue-loop"

Cohesion: 0.52 Nodes (6): checks(), ledger(), main(), plan(), Run or plan the homelab red-team/blue-team loop., run()

Community 55 - "architecture-simulator.js"

Cohesion: 0.40 Nodes (5): box(), canvas, ctx, draw(), state

Community 56 - "dev-toolbelt.js"

Cohesion: 0.33 Nodes (3): input, logFilter, output

Community 57 - "network-quality.js"

Cohesion: 0.40 Nodes (5): canvas, ctx, draw(), measure(), samples

Community 58 - "sentiment-sandbox.js"

Cohesion: 0.33 Nodes (4): input, negative, output, positive

Community 59 - "secrets_init"

Cohesion: 0.40 Nodes (6): ensure_sops_age_tools(), secrets_check(), secrets_check_file(), secrets_init(), sops_age_key_file(), sops_age_recipient()

Community 60 - "backup-status"

Cohesion: 0.60 Nodes (5): backup-status script, check_latest(), file_age_hours(), latest_file(), section()

Community 61 - "control-plane"

Cohesion: 0.60 Nodes (5): control-plane script, require_kubectl(), show_non_system_pods(), show_taints(), usage()

Community 62 - "recover-plan"

Cohesion: 0.47 Nodes (3): recover-plan script, check(), main()

Community 63 - "release-snapshot"

Cohesion: 0.67 Nodes (5): release-snapshot script, have(), latest_file(), run_optional(), section()

Community 64 - "render-docs"

Cohesion: 0.60 Nodes (5): render-docs script, main(), read_inventory_value(), render_template(), usage()

Community 66 - "model-drift.js"

Cohesion: 0.40 Nodes (3): accuracy, canvas, ctx

Community 69 - "blockchain-wallet"

Cohesion: 0.70 Nodes (4): blockchain-wallet script, require_private_key(), run_cast(), usage()

Community 70 - "change-journal"

Cohesion: 0.70 Nodes (4): change-journal script, append_entry(), latest_entries(), timestamp()

Community 71 - "grafana-dashboards"

Cohesion: 0.70 Nodes (4): grafana-dashboards script, apply_dashboards(), list_dashboards(), usage()

Community 72 - "kubeconfig-readonly"

Cohesion: 0.70 Nodes (4): kubeconfig-readonly script, main(), require_kubectl(), usage()

Community 73 - "platform/.terraform.lock.hcl"

Cohesion: 0.50 Nodes (3): provider.registry.opentofu.org/hashicorp/helm, provider.registry.opentofu.org/hashicorp/kubernetes, provider.registry.opentofu.org/hashicorp/null

Community 74 - "blockchain-devnet"

Cohesion: 0.83 Nodes (3): blockchain-devnet script, rpc_call(), usage()

Community 76 - "recover-power"

Cohesion: 0.83 Nodes (3): recover-power script, run_optional(), run_step()

Knowledge Gaps

  • 61 isolated node(s): provider.registry.opentofu.org/hashicorp/kubernetes, provider.registry.opentofu.org/hashicorp/external, provider.registry.opentofu.org/hashicorp/null, provider.registry.opentofu.org/hashicorp/null, provider.registry.opentofu.org/hashicorp/helm (+56 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 227 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
  • 45 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • What connects provider.registry.opentofu.org/hashicorp/kubernetes, provider.registry.opentofu.org/hashicorp/external, provider.registry.opentofu.org/hashicorp/null to the rest of the system? 61 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should provisioning/variables.tf be split into smaller, more focused modules? Cohesion score 0.054212454212454214 - nodes in this community are weakly interconnected.
  • Should jeannie be split into smaller, more focused modules? Cohesion score 0.038542607648298706 - nodes in this community are weakly interconnected.
  • Should jeannie script be split into smaller, more focused modules? Cohesion score 0.04229104229104229 - nodes in this community are weakly interconnected.
  • Should platform/main.tf be split into smaller, more focused modules? Cohesion score 0.07017543859649122 - nodes in this community are weakly interconnected.
  • Should main.go be split into smaller, more focused modules? Cohesion score 0.0841813135985199 - nodes in this community are weakly interconnected.
  • Should edge/variables.tf be split into smaller, more focused modules? Cohesion score 0.113107822410148 - nodes in this community are weakly interconnected.