diff --git a/.claude/commands/kubectl.md b/.claude/commands/kubectl.md index 344ec707..e3a68fe9 100755 --- a/.claude/commands/kubectl.md +++ b/.claude/commands/kubectl.md @@ -1,12 +1,9 @@ # Kubectl Command -Run kubectl commands on the cluster via the remote executor. +Run kubectl commands on the cluster via the `/remote` skill. -Use the remote executor relay: -```bash -echo "kubectl $ARGUMENTS" > /System/Volumes/Data/mnt/code/infra/.claude/cmd_input.txt -sleep 2 && cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_status.txt -cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_output.txt +``` +/remote kubectl $ARGUMENTS ``` Examples: diff --git a/.claude/commands/list-services.md b/.claude/commands/list-services.md index 6dd54ecd..a2f7f954 100755 --- a/.claude/commands/list-services.md +++ b/.claude/commands/list-services.md @@ -3,9 +3,7 @@ List all Kubernetes services deployed in this infrastructure. ```bash -ls -1 /System/Volumes/Data/mnt/code/infra/modules/kubernetes/ +ls -1 modules/kubernetes/ ``` Provide a summary of the services, grouped by category if possible (media, monitoring, productivity, etc.). - -Note: This command runs locally since it only reads the filesystem. diff --git a/.claude/commands/tf-apply.md b/.claude/commands/tf-apply.md index 40691f2f..7d49e96d 100755 --- a/.claude/commands/tf-apply.md +++ b/.claude/commands/tf-apply.md @@ -1,13 +1,9 @@ # Terraform Apply -Run terraform apply to deploy infrastructure changes via the remote executor. +Run terraform apply to deploy infrastructure changes via the `/remote` skill. -Use the remote executor relay: -```bash -echo "terraform apply -target=module.kubernetes_cluster.module. -auto-approve" > /System/Volumes/Data/mnt/code/infra/.claude/cmd_input.txt -sleep 2 && cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_status.txt -# Wait for done:N status, then read output -cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_output.txt +``` +/remote terraform apply -target=module.kubernetes_cluster.module. -auto-approve ``` ALWAYS use -target to speed up execution. Monitor the output and report any errors or successful completions. diff --git a/.claude/commands/tf-plan.md b/.claude/commands/tf-plan.md index d0d35a98..acc51230 100755 --- a/.claude/commands/tf-plan.md +++ b/.claude/commands/tf-plan.md @@ -1,13 +1,9 @@ # Terraform Plan -Run terraform plan to preview infrastructure changes via the remote executor. +Run terraform plan to preview infrastructure changes via the `/remote` skill. -Use the remote executor relay: -```bash -echo "terraform plan -target=module.kubernetes_cluster.module." > /System/Volumes/Data/mnt/code/infra/.claude/cmd_input.txt -sleep 2 && cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_status.txt -# Wait for done:N status, then read output -cat /System/Volumes/Data/mnt/code/infra/.claude/cmd_output.txt +``` +/remote terraform plan -target=module.kubernetes_cluster.module. ``` ALWAYS use -target to speed up execution. Summarize the planned changes, highlighting any resources being destroyed or recreated. diff --git a/.claude/session_id.txt b/.claude/session_id.txt deleted file mode 100644 index 7340af50..00000000 --- a/.claude/session_id.txt +++ /dev/null @@ -1 +0,0 @@ -1769818605-3230-4984 diff --git a/.claude/skills/setup-remote-executor.md b/.claude/skills/archived/setup-remote-executor.md similarity index 100% rename from .claude/skills/setup-remote-executor.md rename to .claude/skills/archived/setup-remote-executor.md diff --git a/.claude/skills/claudeception b/.claude/skills/claudeception deleted file mode 160000 index 7d7f5915..00000000 --- a/.claude/skills/claudeception +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7d7f5915f90db26e1a3fc52db6ac2e68d6d705a2 diff --git a/.claude/skills/home-assistant/SKILL.md b/.claude/skills/home-assistant/SKILL.md index b20e06f3..0ded33a4 100644 --- a/.claude/skills/home-assistant/SKILL.md +++ b/.claude/skills/home-assistant/SKILL.md @@ -27,7 +27,6 @@ Need to control smart home devices, check sensor states, or run automations via - User asks about smart home devices ## Prerequisites -- Remote executor must be running (Python commands require remote execution) - The `~/.venvs/claude` virtualenv must have `requests` package installed - Environment variables `HOME_ASSISTANT_URL` and `HOME_ASSISTANT_TOKEN` must be set in the venv activation script @@ -39,10 +38,10 @@ Need to control smart home devices, check sensor states, or run automations via ``` ### Execution Pattern (CRITICAL) -Always use the remote executor with venv activation to get environment variables: +Always activate the venv to get environment variables, then run via `/remote` skill: ```bash -source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/home-assistant.py [command] [options] +/remote source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/home-assistant.py [command] [options] ``` ### Available Commands @@ -130,24 +129,12 @@ python .claude/home-assistant.py notify "Motion detected" --title "Security Aler python .claude/home-assistant.py notify "Hello" --target notify.mobile_app ``` -## Complete Example via Remote Executor +## Complete Example To turn on the living room light: -1. Write command to remote executor: ```bash -# Using Write tool to write to cmd_input.txt: -source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/home-assistant.py on light.living_room -``` - -2. Wait and check status: -```bash -sleep 2 && cat /System/Volumes/Data/mnt/wizard/code/infra/.claude/cmd_status.txt -``` - -3. Read output: -```bash -cat /System/Volumes/Data/mnt/wizard/code/infra/.claude/cmd_output.txt +/remote source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/home-assistant.py on light.living_room ``` ## Common Entity Domains diff --git a/.claude/skills/nextcloud-calendar/SKILL.md b/.claude/skills/nextcloud-calendar/SKILL.md index 5560046e..ce725bd6 100644 --- a/.claude/skills/nextcloud-calendar/SKILL.md +++ b/.claude/skills/nextcloud-calendar/SKILL.md @@ -23,7 +23,6 @@ Need to create, query, or manage calendar events in the user's Nextcloud calenda - Default calendar is always Nextcloud unless otherwise specified ## Prerequisites -- Remote executor must be running (Python commands require remote execution) - The `~/.venvs/claude` virtualenv must have `caldav` and `icalendar` packages installed - Environment variables `NEXTCLOUD_USER` and `NEXTCLOUD_APP_PASSWORD` must be set in the venv activation script @@ -35,10 +34,10 @@ Need to create, query, or manage calendar events in the user's Nextcloud calenda ``` ### Execution Pattern (CRITICAL) -Always use the remote executor with venv activation to get environment variables: +Always activate the venv to get environment variables, then run via `/remote` skill: ```bash -source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/calendar-query.py [command] [options] +/remote source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/calendar-query.py [command] [options] ``` ### Available Commands @@ -99,23 +98,12 @@ python .claude/calendar-query.py today --json python .claude/calendar-query.py week ``` -## Complete Example via Remote Executor +## Complete Example To create an event "Team offsite" from March 20-22, 2026: -1. Write command to remote executor: ```bash -echo 'source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/calendar-query.py create --title "Team offsite" --start "2026-03-20" --end "2026-03-23" --all-day' > /System/Volumes/Data/mnt/wizard/code/infra/.claude/cmd_input.txt -``` - -2. Wait and check status: -```bash -sleep 3 && cat /System/Volumes/Data/mnt/wizard/code/infra/.claude/cmd_status.txt -``` - -3. Read output: -```bash -cat /System/Volumes/Data/mnt/wizard/code/infra/.claude/cmd_output.txt +/remote source ~/.venvs/claude/bin/activate && cd /home/wizard/code/infra && python .claude/calendar-query.py create --title "Team offsite" --start "2026-03-20" --end "2026-03-23" --all-day ``` ## Important Notes diff --git a/.claude/skills/setup-project.md b/.claude/skills/setup-project.md index 92dbfc64..5900393a 100644 --- a/.claude/skills/setup-project.md +++ b/.claude/skills/setup-project.md @@ -284,7 +284,7 @@ smtp_password = var.mailserver_accounts["info@viktorbarzin.me"] ### 6. Apply Terraform ```bash -# Via remote executor +# Via /remote skill terraform init terraform apply -target=module.kubernetes_cluster.module. -auto-approve ``` diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl deleted file mode 100644 index 7811e2ec..00000000 --- a/.terraform.lock.hcl +++ /dev/null @@ -1,124 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/cloudflare/cloudflare" { - version = "4.52.5" - constraints = "~> 4.0" - hashes = [ - "h1:18bXaaOSq8MWKuMxo/4y7EB7/i7G90y5QsKHZRmkoDo=", - "zh:1a3400cb38863b2585968d1876706bcfc67a148e1318a1d325c6c7704adc999b", - "zh:4c5062cb9e9da1676f06ae92b8370186d98976cc4c7030d3cd76df12af54282a", - "zh:52110f493b5f0587ef77a1cfd1a67001fd4c617b14c6502d732ab47352bdc2f7", - "zh:5aa536f9eaeb43823aaf2aa80e7d39b25ef2b383405ed034aa16a28b446a9238", - "zh:5cc39459a1c6be8a918f17054e4fbba573825ed5597dcada588fe99614d98a5b", - "zh:629ae6a7ba298815131da826474d199312d21cec53a4d5ded4fa56a692e6f072", - "zh:719cc7c75dc1d3eb30c22ff5102a017996d9788b948078c7e1c5b3446aeca661", - "zh:8698635a3ca04383c1e93b21d6963346bdae54d27177a48e4b1435b7f731731c", - "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", - "zh:8a9993f1dcadf1dd6ca43b23348abe374605d29945a2fafc07fb3457644e6a54", - "zh:b1b9a1e6bcc24d5863a664a411d2dc906373ae7a2399d2d65548ce7377057852", - "zh:b270184cdeec277218e84b94cb136fead753da717f9b9dc378e51907f3f00bb0", - "zh:dff2bc10071210181726ce270f954995fe42c696e61e2e8f874021fed02521e5", - "zh:e8e87b40b6a87dc097b0fdc20d3f725cec0d82abc9cc3755c1f89f8f6e8b0036", - "zh:ee964a6573d399a5dd22ce328fb38ca1207797a02248f14b2e4913ee390e7803", - ] -} - -provider "registry.terraform.io/hashicorp/helm" { - version = "3.1.1" - hashes = [ - "h1:5b2ojWKT0noujHiweCds37ZreRFRQLNaErdJLusJN88=", - "zh:1a6d5ce931708aec29d1f3d9e360c2a0c35ba5a54d03eeaff0ce3ca597cd0275", - "zh:3411919ba2a5941801e677f0fea08bdd0ae22ba3c9ce3309f55554699e06524a", - "zh:81b36138b8f2320dc7f877b50f9e38f4bc614affe68de885d322629dd0d16a29", - "zh:95a2a0a497a6082ee06f95b38bd0f0d6924a65722892a856cfd914c0d117f104", - "zh:9d3e78c2d1bb46508b972210ad706dd8c8b106f8b206ecf096cd211c54f46990", - "zh:a79139abf687387a6efdbbb04289a0a8e7eaca2bd91cdc0ce68ea4f3286c2c34", - "zh:aaa8784be125fbd50c48d84d6e171d3fb6ef84a221dbc5165c067ce05faab4c8", - "zh:afecd301f469975c9d8f350cc482fe656e082b6ab0f677d1a816c3c615837cc1", - "zh:c54c22b18d48ff9053d899d178d9ffef7d9d19785d9bf310a07d648b7aac075b", - "zh:db2eefd55aea48e73384a555c72bac3f7d428e24147bedb64e1a039398e5b903", - "zh:ee61666a233533fd2be971091cecc01650561f1585783c381b6f6e8a390198a4", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - ] -} - -provider "registry.terraform.io/hashicorp/kubernetes" { - version = "3.0.1" - constraints = ">= 2.7.1" - hashes = [ - "h1:vyHdH0p6bf9xp1NPePObAJkXTJb/I09FQQmmevTzZe0=", - "zh:02d55b0b2238fd17ffa12d5464593864e80f402b90b31f6e1bd02249b9727281", - "zh:20b93a51bfeed82682b3c12f09bac3031f5bdb4977c47c97a042e4df4fb2f9ba", - "zh:6e14486ecfaee38c09ccf33d4fdaf791409f90795c1b66e026c226fad8bc03c7", - "zh:8d0656ff422df94575668e32c310980193fccb1c28117e5c78dd2d4050a760a6", - "zh:9795119b30ec0c1baa99a79abace56ac850b6e6fbce60e7f6067792f6eb4b5f4", - "zh:b388c87acc40f6bd9620f4e23f01f3c7b41d9b88a68d5255dec0a72f0bdec249", - "zh:b59abd0a980649c2f97f172392f080eaeb18e486b603f83bf95f5d93aeccc090", - "zh:ba6e3060fddf4a022087d8f09e38aa0001c705f21170c2ded3d1c26c12f70d97", - "zh:c12626d044b1d5501cf95ca78cbe507c13ad1dd9f12d4736df66eb8e5f336eb8", - "zh:c55203240d50f4cdeb3df1e1760630d677679f5b1a6ffd9eba23662a4ad05119", - "zh:ea206a5a32d6e0d6e32f1849ad703da9a28355d9c516282a8458b5cf1502b2a1", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - ] -} - -provider "registry.terraform.io/hashicorp/null" { - version = "3.2.4" - hashes = [ - "h1:hkf5w5B6q8e2A42ND2CjAvgvSN3puAosDmOJb3zCVQM=", - "zh:59f6b52ab4ff35739647f9509ee6d93d7c032985d9f8c6237d1f8a59471bbbe2", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:795c897119ff082133150121d39ff26cb5f89a730a2c8c26f3a9c1abf81a9c43", - "zh:7b9c7b16f118fbc2b05a983817b8ce2f86df125857966ad356353baf4bff5c0a", - "zh:85e33ab43e0e1726e5f97a874b8e24820b6565ff8076523cc2922ba671492991", - "zh:9d32ac3619cfc93eb3c4f423492a8e0f79db05fec58e449dee9b2d5873d5f69f", - "zh:9e15c3c9dd8e0d1e3731841d44c34571b6c97f5b95e8296a45318b94e5287a6e", - "zh:b4c2ab35d1b7696c30b64bf2c0f3a62329107bd1a9121ce70683dec58af19615", - "zh:c43723e8cc65bcdf5e0c92581dcbbdcbdcf18b8d2037406a5f2033b1e22de442", - "zh:ceb5495d9c31bfb299d246ab333f08c7fb0d67a4f82681fbf47f2a21c3e11ab5", - "zh:e171026b3659305c558d9804062762d168f50ba02b88b231d20ec99578a6233f", - "zh:ed0fe2acdb61330b01841fa790be00ec6beaac91d41f311fb8254f74eb6a711f", - ] -} - -provider "registry.terraform.io/hashicorp/random" { - version = "3.7.2" - hashes = [ - "h1:356j/3XnXEKr9nyicLUufzoF4Yr6hRy481KIxRVpK0c=", - "zh:14829603a32e4bc4d05062f059e545a91e27ff033756b48afbae6b3c835f508f", - "zh:1527fb07d9fea400d70e9e6eb4a2b918d5060d604749b6f1c361518e7da546dc", - "zh:1e86bcd7ebec85ba336b423ba1db046aeaa3c0e5f921039b3f1a6fc2f978feab", - "zh:24536dec8bde66753f4b4030b8f3ef43c196d69cccbea1c382d01b222478c7a3", - "zh:29f1786486759fad9b0ce4fdfbbfece9343ad47cd50119045075e05afe49d212", - "zh:4d701e978c2dd8604ba1ce962b047607701e65c078cb22e97171513e9e57491f", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:7b8434212eef0f8c83f5a90c6d76feaf850f6502b61b53c329e85b3b281cba34", - "zh:ac8a23c212258b7976e1621275e3af7099e7e4a3d4478cf8d5d2a27f3bc3e967", - "zh:b516ca74431f3df4c6cf90ddcdb4042c626e026317a33c53f0b445a3d93b720d", - "zh:dc76e4326aec2490c1600d6871a95e78f9050f9ce427c71707ea412a2f2f1a62", - "zh:eac7b63e86c749c7d48f527671c7aee5b4e26c10be6ad7232d6860167f99dbb0", - ] -} - -provider "registry.terraform.io/telmate/proxmox" { - version = "3.0.2-rc07" - constraints = "3.0.2-rc07" - hashes = [ - "h1:zp5hpQJQ4t4zROSLqdltVpBO+Riy9VugtfFbpyTw1aM=", - "zh:2ee860cd0a368b3eaa53f4a9ea46f16dab8a97929e813ea6ef55183f8112c2ca", - "zh:415965fd915bae2040d7f79e45f64d6e3ae61149c10114efeac1b34687d7296c", - "zh:6584b2055df0e32062561c615e3b6b2c291ca8c959440adda09ef3ec1e1436bd", - "zh:65dcfad71928e0a8dd9befc22524ed686be5020b0024dc5cca5184c7420eeb6b", - "zh:7253dc29bd265d33f2791ac4f779c5413f16720bb717de8e6c5fcb2c858648ea", - "zh:7ec8993da10a47606670f9f67cfd10719a7580641d11c7aa761121c4a2bd66fb", - "zh:999a3f7a9dcf517967fc537e6ec930a8172203642fb01b8e1f78f908373db210", - "zh:a50e6df7280eb6584a5fd2456e3f5b6df13b2ec8a7fa4605511e438e1863be42", - "zh:b25b329a1e42681c509d027fee0365414f0cc5062b65690cfc3386aab16132ae", - "zh:c028877fdb438ece48f7bc02b65bbae9ca7b7befbd260e519ccab6c0cbb39f26", - "zh:cf0eaa3ea9fcc6d62793637947f1b8d7c885b6ad74695ab47e134e4ff132190f", - "zh:d5ade3fae031cc629b7c512a7b60e46570f4c41665e88a595d7efd943dde5ab2", - "zh:f388c15ad1ecfc09e7361e3b98bae9b627a3a85f7b908c9f40650969c949901c", - "zh:f415cc6f735a3971faae6ac24034afdb9ee83373ef8de19a9631c187d5adc7db", - ] -}