From 956672401542f6f8f0159d96828eeffeee4904c6 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Thu, 11 Jun 2026 07:00:33 +0200 Subject: [PATCH 01/23] chore: updates --- flake.lock | 64 +++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/flake.lock b/flake.lock index fcdf60c..ad73f2f 100644 --- a/flake.lock +++ b/flake.lock @@ -62,11 +62,11 @@ "agents_2": { "flake": false, "locked": { - "lastModified": 1778518220, - "narHash": "sha256-6AQs9VZ0/DuD4njPbYHRE4v+SgJc6SBrGwemTWxikVc=", + "lastModified": 1780133320, + "narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=", "ref": "refs/heads/master", - "rev": "b6e1aaa6261c5056d024d8d4785659eaa4e675e6", - "revCount": 87, + "rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb", + "revCount": 88, "type": "git", "url": "https://code.m3ta.dev/m3tam3re/AGENTS" }, @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1780281921, - "narHash": "sha256-ZDsDl7lTOfM+Le2l6gDyEP3o+KHR3TUCkuxd9hQaLro=", + "lastModified": 1781147591, + "narHash": "sha256-ZdD4KNeFjIfdCT3J2eRgCiYBucJsQTXMT5+XssstbOY=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "ee4eeacce5a7041ed39f8cd7fe64b6e0e888e73b", + "rev": "bb7f6f61189121435e7b9724ca4f49d904aaa112", "type": "github" }, "original": { @@ -231,11 +231,11 @@ "uv2nix": "uv2nix_2" }, "locked": { - "lastModified": 1780733287, - "narHash": "sha256-cMm2PL8ymiizMnK2JAHVSMCfPsMAis2OcIbdYwR3ZSs=", + "lastModified": 1781150804, + "narHash": "sha256-SDccCmUejmY/tROZRduFejEmsXEZvOA399zOv2Q2m/k=", "owner": "NousResearch", "repo": "hermes-agent", - "rev": "5af899c7ca753a56a4daeb6fa6ff3cbb113234b8", + "rev": "3e74f75e41ecd5a3b937d692ba7dcffbf77304f6", "type": "github" }, "original": { @@ -272,11 +272,11 @@ ] }, "locked": { - "lastModified": 1780099287, - "narHash": "sha256-efIPwVGtIWIjWcznhaop6XN6HxnOL8800hF6CBNvlqQ=", + "lastModified": 1781129616, + "narHash": "sha256-Hl0Pz/QIKpePSU7SdK3BMe5VNmUhFvfWyg57GyawxzE=", "owner": "nix-community", "repo": "home-manager", - "rev": "7d8127d308c3fb9664f7e643eec944be74ebb37d", + "rev": "7dbd305f8b81050f223f00bcfbc8a6b74e048806", "type": "github" }, "original": { @@ -296,11 +296,11 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1779944037, - "narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=", + "lastModified": 1781153970, + "narHash": "sha256-OtC89zreW6Api7wpF5u76Jvkn8uQJiM+0yFFn/r+rj8=", "ref": "refs/heads/master", - "rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88", - "revCount": 323, + "rev": "8fae0726a53ecabb04f4a0931a17a25de6a05fbf", + "revCount": 324, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" }, @@ -361,11 +361,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1779457550, - "narHash": "sha256-yALoy2CrvwvNfwMtGZDRdc+jqVNHulyuM5iVK12lUAI=", + "lastModified": 1781153468, + "narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a9c18fd234dbe4fd8de4bac53760b785c47e94ff", + "rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd", "type": "github" }, "original": { @@ -393,11 +393,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1779560665, - "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", + "lastModified": 1780749050, + "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", "type": "github" }, "original": { @@ -409,11 +409,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1779560665, - "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", + "lastModified": 1780749050, + "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", "type": "github" }, "original": { @@ -450,11 +450,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1780290189, - "narHash": "sha256-2igu6l2/d4RikYmC/SsykZ1jF1e4+Df+2qWPYjq2xto=", + "lastModified": 1781153862, + "narHash": "sha256-inru9e3OUY4xIf9xZjjNdEQsO3hq9qP6sc0IzxO4m10=", "owner": "nix-community", "repo": "NUR", - "rev": "8b6210602dcbd4409ab1c3453ea0c292637c2799", + "rev": "693d3fb2b087955a22098417dbbfd5b0020be50a", "type": "github" }, "original": { @@ -471,11 +471,11 @@ ] }, "locked": { - "lastModified": 1779302169, - "narHash": "sha256-OOSPtUXC4F2umtsZPkyWlPQxhXBsxF2vqBXLeI/lqIw=", + "lastModified": 1780479100, + "narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=", "owner": "Fission-AI", "repo": "OpenSpec", - "rev": "79303b521068c5f525ee61db06b915fc44b098f4", + "rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f", "type": "github" }, "original": { From 365b6016f1e5654e82440a7cc5749b804e7c14ac Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Thu, 11 Jun 2026 07:14:21 +0200 Subject: [PATCH 02/23] chore: vibetyper keyboard locale --- profiles/contexts/desktop/wm/hyprland.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 387cb15..d0df27c 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -101,6 +101,10 @@ in { name = "zsa-technology-labs-moonlander-mark-i"; kb_layout = "us"; } + { + name = "vibe-typer-virtual-keyboard" + kb_layout = "de"; + } { name = "keychron-keychron-k7"; kb_layout = "us"; From 222c1becf4d5b96a0d75866b8da50bdd21712897 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Thu, 11 Jun 2026 07:14:35 +0200 Subject: [PATCH 03/23] chore: vibetyper keyboard locale --- profiles/contexts/desktop/wm/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index d0df27c..96d6708 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -102,7 +102,7 @@ in { kb_layout = "us"; } { - name = "vibe-typer-virtual-keyboard" + name = "vibe-typer-virtual-keyboard"; kb_layout = "de"; } { From 1265dea16a6ab5c227113fe5fe02ddef3696524f Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Thu, 11 Jun 2026 07:20:07 +0200 Subject: [PATCH 04/23] chore: vibetyper keyboard locale --- profiles/contexts/desktop/wm/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 96d6708..3ab4fb5 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -103,7 +103,7 @@ in { } { name = "vibe-typer-virtual-keyboard"; - kb_layout = "de"; + kb_layout = "us"; } { name = "keychron-keychron-k7"; From 4a9d24fe08a85d00c8e6fe0dd1d3165dc604f5fc Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Thu, 11 Jun 2026 17:33:32 +0200 Subject: [PATCH 05/23] fix: nix eval warnings --- profiles/contexts/desktop/default.nix | 2 +- profiles/sets/coding/agents/agents.nix | 2 +- users/m3tam3re/identities/private.nix | 128 ++++++++++++------------- 3 files changed, 66 insertions(+), 66 deletions(-) diff --git a/profiles/contexts/desktop/default.nix b/profiles/contexts/desktop/default.nix index 7e1e2f0..55b57b7 100644 --- a/profiles/contexts/desktop/default.nix +++ b/profiles/contexts/desktop/default.nix @@ -71,7 +71,7 @@ (element-desktop.override { commandLineArgs = "--password-store=gnome-libsecret"; }) - m3taHomeInputs.hermes-agent.packages.${pkgs.system}.desktop + m3taHomeInputs.hermes-agent.packages.${pkgs.stdenv.hostPlatform.system}.desktop launch-webapp file-roller gsettings-desktop-schemas diff --git a/profiles/sets/coding/agents/agents.nix b/profiles/sets/coding/agents/agents.nix index df846d2..9ce4324 100644 --- a/profiles/sets/coding/agents/agents.nix +++ b/profiles/sets/coding/agents/agents.nix @@ -64,7 +64,7 @@ home.packages = with pkgs; [ agenix-cli agent-browser - m3taHomeInputs.agent-lib.packages.${pkgs.system}.agent-lib-cli + m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli beads pi-coding-agent (qmd.override { diff --git a/users/m3tam3re/identities/private.nix b/users/m3tam3re/identities/private.nix index 6cccefa..70b71fe 100644 --- a/users/m3tam3re/identities/private.nix +++ b/users/m3tam3re/identities/private.nix @@ -44,107 +44,107 @@ programs.ssh = { enable = true; enableDefaultConfig = false; - matchBlocks = { + settings = { "github.com" = { - hostname = "github.com"; - user = "m3tam3re"; - port = 22; - identityFile = "~/.ssh/github"; + HostName = "github.com"; + User = "m3tam3re"; + Port = 22; + IdentityFile = "~/.ssh/github"; }; "code.m3ta.dev" = { - hostname = "code.m3ta.dev"; - user = "m3tam3re"; - identityFile = "~/.ssh/gitea"; + HostName = "code.m3ta.dev"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/gitea"; }; "lkk-nix-1" = { - hostname = "89.58.10.189"; - user = "lkk-admin"; - identityFile = "~/.ssh/lkk-admin"; + HostName = "89.58.10.189"; + User = "lkk-admin"; + IdentityFile = "~/.ssh/lkk-admin"; }; "m3-r1" = { - hostname = "202.61.226.110"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "202.61.226.110"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-deck" = { - hostname = "192.168.178.193"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "192.168.178.193"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-kratos-vm" = { - hostname = "192.168.122.43"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "192.168.122.43"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-helios" = { - hostname = "192.168.178.210"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "192.168.178.210"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-ares" = { - hostname = "192.168.1.30"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "192.168.1.30"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-atlas" = { - hostname = "152.53.85.162"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "152.53.85.162"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-hermes" = { - hostname = "204.168.229.93"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "204.168.229.93"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "hermes" = { - hostname = "46.224.0.92"; - user = "admin"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "46.224.0.92"; + User = "admin"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-zelda" = { - hostname = "95.217.189.186"; - user = "m3tam3re"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "95.217.189.186"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-skynet" = { - hostname = "m3-skynet"; - user = "admin"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "m3-skynet"; + User = "admin"; + IdentityFile = "~/.ssh/m3tam3re"; }; "m3-prox-1" = { - hostname = "192.168.1.110"; - user = "root"; - identityFile = "~/.ssh/m3tam3re"; + HostName = "192.168.1.110"; + User = "root"; + IdentityFile = "~/.ssh/m3tam3re"; }; "shp-old" = { - hostname = "95.217.3.250"; - port = 2222; - user = "m3tam3re"; - identityFile = "~/.ssh/self-host-playbook"; + HostName = "95.217.3.250"; + Port = 2222; + User = "m3tam3re"; + IdentityFile = "~/.ssh/self-host-playbook"; }; "shp-1" = { - hostname = "95.217.189.186"; - port = 2222; - user = "m3tam3re"; - identityFile = "~/.ssh/self-host-playbook"; + HostName = "95.217.189.186"; + Port = 2222; + User = "m3tam3re"; + IdentityFile = "~/.ssh/self-host-playbook"; }; "AZ-CLD-1" = { - hostname = "152.53.186.119"; - user = "sascha.koenig"; - port = 2022; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "152.53.186.119"; + User = "sascha.koenig"; + Port = 2022; + IdentityFile = "~/.ssh/sascha.koenig"; }; "AZ-PRM-1" = { - hostname = "192.168.152.76"; - user = "sascha.koenig"; - port = 2022; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "192.168.152.76"; + User = "sascha.koenig"; + Port = 2022; + IdentityFile = "~/.ssh/sascha.koenig"; }; "git.az-gruppe.com" = { - hostname = "git.az-gruppe.com"; - port = 2022; - user = "sascha.koenig"; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "git.az-gruppe.com"; + Port = 2022; + User = "sascha.koenig"; + IdentityFile = "~/.ssh/sascha.koenig"; }; }; }; From 66127c05ea61a96b97b1409e256b78ac8013b894 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 13 Jun 2026 08:17:16 +0200 Subject: [PATCH 06/23] fix(hyprland): set vibe typer keyboard layout to de --- profiles/contexts/desktop/wm/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 3ab4fb5..96d6708 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -103,7 +103,7 @@ in { } { name = "vibe-typer-virtual-keyboard"; - kb_layout = "us"; + kb_layout = "de"; } { name = "keychron-keychron-k7"; From 2ab870db8c65f701a3cd3ffbc1e1a4dbfdc3b72d Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 13 Jun 2026 09:25:40 +0200 Subject: [PATCH 07/23] feat: re-export Hermes skills renderer --- flake.lock | 15 ++++++--------- flake.nix | 12 +++--------- lib/default.nix | 15 +++++++++++++-- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/flake.lock b/flake.lock index ad73f2f..5fc8fdf 100644 --- a/flake.lock +++ b/flake.lock @@ -28,17 +28,14 @@ ] }, "locked": { - "lastModified": 1780736323, - "narHash": "sha256-b4CfjbWTT+5Z0XBI2/W2DnybwkYVwLxghCwXVmw9+Iw=", - "ref": "refs/heads/master", - "rev": "b0c832c9e02d8b3d8ad091f022c859382a037afd", - "revCount": 26, - "type": "git", - "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" + "lastModified": 1781334874, + "narHash": "sha256-rGXLTREh0mvgSuYMuYf1ciEJ+ez+DyK/c7NfDgFQWEY=", + "path": "/home/m3tam3re/p/NIX/agent-lib", + "type": "path" }, "original": { - "type": "git", - "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" + "path": "/home/m3tam3re/p/NIX/agent-lib", + "type": "path" } }, "agents": { diff --git a/flake.nix b/flake.nix index 2f0068e..3187b83 100644 --- a/flake.nix +++ b/flake.nix @@ -22,8 +22,8 @@ }; agent-lib = { - # url = "path:/home/m3tam3re/p/NIX/agent-lib"; - url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"; + url = "path:/home/m3tam3re/p/NIX/agent-lib"; + # url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -47,13 +47,7 @@ nur.url = "github:nix-community/NUR"; }; - outputs = { - self, - nixpkgs, - ... - } @ inputs: let - lib = nixpkgs.lib; - in { + outputs = {self, ...} @ inputs: { # Home-Manager modules — import in nixos-config via: # imports = [ inputs.m3ta-home.homeManagerModules.default ]; homeManagerModules = import ./modules { diff --git a/lib/default.nix b/lib/default.nix index 91de253..af02836 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,5 +1,16 @@ # lib/default.nix — Entry point for m3ta-home library functions. # # Called by flake.nix: import ./lib { inherit inputs; selfPath = self.outPath; } -# Re-exports mkHome and future library functions. -{inputs, selfPath}: import ./mkHome.nix {inherit inputs selfPath;} +# Re-exports mkHome and focused helpers for consumers that should not depend on +# m3ta-home's implementation inputs directly. +{ + inputs, + selfPath, +}: let + mkHomeLib = import ./mkHome.nix {inherit inputs selfPath;}; +in + mkHomeLib + // { + mkHermesSkillsDir = {system, ...} @ args: + inputs.agent-lib.lib.${system}.mkHermesSkillsDir (builtins.removeAttrs args ["system"]); + } From eea29e9877192a5a68acc56986b7892490f0a8fb Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 13 Jun 2026 09:41:14 +0200 Subject: [PATCH 08/23] skills update --- agent-sources.lock.json | 408 +++++++++++++++++++++++++++++----------- 1 file changed, 303 insertions(+), 105 deletions(-) diff --git a/agent-sources.lock.json b/agent-sources.lock.json index 583242b..f451692 100644 --- a/agent-sources.lock.json +++ b/agent-sources.lock.json @@ -5,20 +5,36 @@ "anthropic": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -226,20 +242,36 @@ "basecamp": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -260,9 +292,9 @@ }, "tools": {} }, - "narHash": "sha256:7f068227eed664d6fbfb077eddf32901e01430441fbc2c58106aa95e45292d94", + "narHash": "sha256:2bbaeab9865fca091abd0714b4d971666e3f0c83c6ee1291eda88f757791ebf6", "ref": null, - "rev": "b20051d4b66b85aed61e165fedad0837ea1a5a4c", + "rev": "64db1cfb966a78e1ae63f485fc4cca4704a29d3a", "root": ".", "type": "git", "url": "https://github.com/basecamp/basecamp-cli", @@ -271,20 +303,36 @@ "kestra": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -338,20 +386,36 @@ "m3ta-agents": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -626,20 +690,36 @@ "mattpocock": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -648,7 +728,9 @@ "skills": { "caveman": { "entry": "skills/productivity/caveman/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": ">", "name": "caveman", @@ -659,7 +741,9 @@ }, "design-an-interface": { "entry": "skills/deprecated/design-an-interface/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions \"design it twice\".", "name": "design-an-interface", @@ -670,7 +754,9 @@ }, "diagnose": { "entry": "skills/engineering/diagnose/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.", "name": "diagnose", @@ -681,7 +767,9 @@ }, "edit-article": { "entry": "skills/personal/edit-article/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.", "name": "edit-article", @@ -692,7 +780,9 @@ }, "git-guardrails-claude-code": { "entry": "skills/misc/git-guardrails-claude-code/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.", "name": "git-guardrails-claude-code", @@ -703,7 +793,9 @@ }, "grill-me": { "entry": "skills/productivity/grill-me/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".", "name": "grill-me", @@ -714,7 +806,9 @@ }, "grill-with-docs": { "entry": "skills/engineering/grill-with-docs/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.", "name": "grill-with-docs", @@ -725,7 +819,9 @@ }, "handoff": { "entry": "skills/productivity/handoff/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Compact the current conversation into a handoff document for another agent to pick up.", "name": "handoff", @@ -736,7 +832,9 @@ }, "improve-codebase-architecture": { "entry": "skills/engineering/improve-codebase-architecture/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.", "name": "improve-codebase-architecture", @@ -747,7 +845,9 @@ }, "migrate-to-shoehorn": { "entry": "skills/misc/migrate-to-shoehorn/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.", "name": "migrate-to-shoehorn", @@ -758,7 +858,9 @@ }, "obsidian-vault": { "entry": "skills/personal/obsidian-vault/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.", "name": "obsidian-vault", @@ -769,7 +871,9 @@ }, "prototype": { "entry": "skills/engineering/prototype/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says \"prototype this\", \"let me play with it\", \"try a few designs\".", "name": "prototype", @@ -780,7 +884,9 @@ }, "qa": { "entry": "skills/deprecated/qa/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Interactive QA session where user reports bugs or issues conversationally, and the agent files GitHub issues. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, file issues conversationally, or mentions \"QA session\".", "name": "qa", @@ -791,7 +897,9 @@ }, "request-refactor-plan": { "entry": "skills/deprecated/request-refactor-plan/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.", "name": "request-refactor-plan", @@ -802,7 +910,9 @@ }, "review": { "entry": "skills/in-progress/review/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".", "name": "review", @@ -813,7 +923,9 @@ }, "scaffold-exercises": { "entry": "skills/misc/scaffold-exercises/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.", "name": "scaffold-exercises", @@ -824,7 +936,9 @@ }, "setup-matt-pocock-skills": { "entry": "skills/engineering/setup-matt-pocock-skills/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.", "name": "setup-matt-pocock-skills", @@ -835,7 +949,9 @@ }, "setup-pre-commit": { "entry": "skills/misc/setup-pre-commit/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.", "name": "setup-pre-commit", @@ -846,7 +962,9 @@ }, "tdd": { "entry": "skills/engineering/tdd/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions \"red-green-refactor\", wants integration tests, or asks for test-first development.", "name": "tdd", @@ -856,19 +974,23 @@ "path": "skills/engineering/tdd" }, "teach": { - "entry": "skills/in-progress/teach/SKILL.md", - "licenseFiles": ["LICENSE"], + "entry": "skills/productivity/teach/SKILL.md", + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Teach the user a new skill or concept, within this workspace.", "name": "teach", "requires": [], "tags": [] }, - "path": "skills/in-progress/teach" + "path": "skills/productivity/teach" }, "to-issues": { "entry": "skills/engineering/to-issues/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.", "name": "to-issues", @@ -879,7 +1001,9 @@ }, "to-prd": { "entry": "skills/engineering/to-prd/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.", "name": "to-prd", @@ -890,7 +1014,9 @@ }, "triage": { "entry": "skills/engineering/triage/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.", "name": "triage", @@ -901,7 +1027,9 @@ }, "ubiquitous-language": { "entry": "skills/deprecated/ubiquitous-language/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".", "name": "ubiquitous-language", @@ -912,7 +1040,9 @@ }, "write-a-skill": { "entry": "skills/productivity/write-a-skill/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.", "name": "write-a-skill", @@ -923,7 +1053,9 @@ }, "writing-beats": { "entry": "skills/in-progress/writing-beats/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.", "name": "writing-beats", @@ -934,7 +1066,9 @@ }, "writing-fragments": { "entry": "skills/in-progress/writing-fragments/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Grilling session that mines the user for fragments — heterogeneous nuggets of writing (claims, vignettes, sharp sentences, half-thoughts) — and appends them to a single document as raw material for a future article. Use when the user wants to develop ideas before imposing structure, or mentions \"fragments\", \"ideate\", or \"raw material\" for writing.", "name": "writing-fragments", @@ -945,7 +1079,9 @@ }, "writing-shape": { "entry": "skills/in-progress/writing-shape/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.", "name": "writing-shape", @@ -956,7 +1092,9 @@ }, "zoom-out": { "entry": "skills/engineering/zoom-out/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.", "name": "zoom-out", @@ -968,9 +1106,9 @@ }, "tools": {} }, - "narHash": "sha256:e61c575015dca998709776014f52317e29b49aca42659b635dbc69fb60a7f9e1", + "narHash": "sha256:f0f009c64fe1572fbfade479e4829f2fd4499f703e7110c1387a5e05bfe00b9e", "ref": null, - "rev": "e3b90b5238f38cdea5996e16861dcae28ef52eda", + "rev": "694fa30311e02c2639942308513555e61ee84a6f", "root": ".", "type": "git", "url": "https://github.com/mattpocock/skills", @@ -979,20 +1117,36 @@ "superpowers": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { @@ -1001,7 +1155,9 @@ "skills": { "brainstorming": { "entry": "skills/brainstorming/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.", "name": "brainstorming", @@ -1012,7 +1168,9 @@ }, "dispatching-parallel-agents": { "entry": "skills/dispatching-parallel-agents/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies", "name": "dispatching-parallel-agents", @@ -1023,7 +1181,9 @@ }, "executing-plans": { "entry": "skills/executing-plans/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when you have a written implementation plan to execute in a separate session with review checkpoints", "name": "executing-plans", @@ -1034,7 +1194,9 @@ }, "finishing-a-development-branch": { "entry": "skills/finishing-a-development-branch/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup", "name": "finishing-a-development-branch", @@ -1045,7 +1207,9 @@ }, "receiving-code-review": { "entry": "skills/receiving-code-review/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation", "name": "receiving-code-review", @@ -1056,7 +1220,9 @@ }, "requesting-code-review": { "entry": "skills/requesting-code-review/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when completing tasks, implementing major features, or before merging to verify work meets requirements", "name": "requesting-code-review", @@ -1067,7 +1233,9 @@ }, "subagent-driven-development": { "entry": "skills/subagent-driven-development/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when executing implementation plans with independent tasks in the current session", "name": "subagent-driven-development", @@ -1078,7 +1246,9 @@ }, "systematic-debugging": { "entry": "skills/systematic-debugging/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes", "name": "systematic-debugging", @@ -1089,7 +1259,9 @@ }, "test-driven-development": { "entry": "skills/test-driven-development/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when implementing any feature or bugfix, before writing implementation code", "name": "test-driven-development", @@ -1100,7 +1272,9 @@ }, "using-git-worktrees": { "entry": "skills/using-git-worktrees/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback", "name": "using-git-worktrees", @@ -1111,7 +1285,9 @@ }, "using-superpowers": { "entry": "skills/using-superpowers/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions", "name": "using-superpowers", @@ -1122,7 +1298,9 @@ }, "verification-before-completion": { "entry": "skills/verification-before-completion/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always", "name": "verification-before-completion", @@ -1133,7 +1311,9 @@ }, "writing-plans": { "entry": "skills/writing-plans/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when you have a spec or requirements for a multi-step task, before touching code", "name": "writing-plans", @@ -1144,7 +1324,9 @@ }, "writing-skills": { "entry": "skills/writing-skills/SKILL.md", - "licenseFiles": ["LICENSE"], + "licenseFiles": [ + "LICENSE" + ], "metadata": { "description": "Use when creating new skills, editing existing skills, or verifying skills work before deployment", "name": "writing-skills", @@ -1167,20 +1349,36 @@ "vercel": { "discovery": { "agents": { - "include": ["**/AGENT.md"], - "paths": ["agents"] + "include": [ + "**/AGENT.md" + ], + "paths": [ + "agents" + ] }, "prompts": { - "include": ["**/PROMPT.md"], - "paths": ["prompts"] + "include": [ + "**/PROMPT.md" + ], + "paths": [ + "prompts" + ] }, "skills": { - "include": ["**/SKILL.md"], - "paths": ["skills"] + "include": [ + "**/SKILL.md" + ], + "paths": [ + "skills" + ] }, "tools": { - "include": ["**/TOOL.md"], - "paths": ["tools"] + "include": [ + "**/TOOL.md" + ], + "paths": [ + "tools" + ] } }, "items": { From d1494476b864173592c6dc4a1f0645189cdca192 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 13 Jun 2026 13:05:16 +0200 Subject: [PATCH 09/23] flake update --- flake.lock | 51 +++++++++++++++++++++++++++------------------------ flake.nix | 4 ++-- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/flake.lock b/flake.lock index 5fc8fdf..6caa7e4 100644 --- a/flake.lock +++ b/flake.lock @@ -28,14 +28,17 @@ ] }, "locked": { - "lastModified": 1781334874, - "narHash": "sha256-rGXLTREh0mvgSuYMuYf1ciEJ+ez+DyK/c7NfDgFQWEY=", - "path": "/home/m3tam3re/p/NIX/agent-lib", - "type": "path" + "lastModified": 1781348569, + "narHash": "sha256-1BJtmKSqtD0CD753ZE37RgxvCJK6Iw3iKLDDaS8trY4=", + "ref": "refs/heads/master", + "rev": "75a2ed2533b4d6d8e4a34acd37e83d98d81a5fb0", + "revCount": 30, + "type": "git", + "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" }, "original": { - "path": "/home/m3tam3re/p/NIX/agent-lib", - "type": "path" + "type": "git", + "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" } }, "agents": { @@ -161,11 +164,11 @@ ] }, "locked": { - "lastModified": 1781147591, - "narHash": "sha256-ZdD4KNeFjIfdCT3J2eRgCiYBucJsQTXMT5+XssstbOY=", + "lastModified": 1781317940, + "narHash": "sha256-uMVOhV6pVPgm2hn1WGEbIcJRWjnsyWKy8PHCUn0++iI=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "bb7f6f61189121435e7b9724ca4f49d904aaa112", + "rev": "4ab59f3da3df33bf106045b856db8de875cc42c6", "type": "github" }, "original": { @@ -228,11 +231,11 @@ "uv2nix": "uv2nix_2" }, "locked": { - "lastModified": 1781150804, - "narHash": "sha256-SDccCmUejmY/tROZRduFejEmsXEZvOA399zOv2Q2m/k=", + "lastModified": 1781346807, + "narHash": "sha256-ytT4ojx0qFW4b/oYeW+MkmaA3b/BZ9pqkPmpAg8j1gg=", "owner": "NousResearch", "repo": "hermes-agent", - "rev": "3e74f75e41ecd5a3b937d692ba7dcffbf77304f6", + "rev": "2a5dc0ef3df433a36abed9ee544ea067d807c438", "type": "github" }, "original": { @@ -269,11 +272,11 @@ ] }, "locked": { - "lastModified": 1781129616, - "narHash": "sha256-Hl0Pz/QIKpePSU7SdK3BMe5VNmUhFvfWyg57GyawxzE=", + "lastModified": 1781305496, + "narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "7dbd305f8b81050f223f00bcfbc8a6b74e048806", + "rev": "c87a39aa979acc4848016d2220c6238390d84779", "type": "github" }, "original": { @@ -390,11 +393,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -406,11 +409,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -447,11 +450,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1781153862, - "narHash": "sha256-inru9e3OUY4xIf9xZjjNdEQsO3hq9qP6sc0IzxO4m10=", + "lastModified": 1781346642, + "narHash": "sha256-o92OOSMAB08HQgG7pW2BZVIO53Pkv4oAjLk4Iol3Iko=", "owner": "nix-community", "repo": "NUR", - "rev": "693d3fb2b087955a22098417dbbfd5b0020be50a", + "rev": "6e4e8d731fbb3831296607d5f88de727cf7bf6de", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 3187b83..7356a73 100644 --- a/flake.nix +++ b/flake.nix @@ -22,8 +22,8 @@ }; agent-lib = { - url = "path:/home/m3tam3re/p/NIX/agent-lib"; - # url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"; + # url = "path:/home/m3tam3re/p/NIX/agent-lib"; + url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"; inputs.nixpkgs.follows = "nixpkgs"; }; From 2821f4b6f4584d066429d985efd37f9672044520 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 07:13:04 +0200 Subject: [PATCH 10/23] feat: openwork --- flake.lock | 28 +++++++++---------- .../contexts/desktop/apps/productivity.nix | 1 + 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/flake.lock b/flake.lock index fcdf60c..7906ce2 100644 --- a/flake.lock +++ b/flake.lock @@ -62,11 +62,11 @@ "agents_2": { "flake": false, "locked": { - "lastModified": 1778518220, - "narHash": "sha256-6AQs9VZ0/DuD4njPbYHRE4v+SgJc6SBrGwemTWxikVc=", + "lastModified": 1780133320, + "narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=", "ref": "refs/heads/master", - "rev": "b6e1aaa6261c5056d024d8d4785659eaa4e675e6", - "revCount": 87, + "rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb", + "revCount": 88, "type": "git", "url": "https://code.m3ta.dev/m3tam3re/AGENTS" }, @@ -296,11 +296,11 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1779944037, - "narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=", + "lastModified": 1781500279, + "narHash": "sha256-810qVHwu6jVhu01FWj9dXuruK84Gw2smAlbu6FPBfeY=", "ref": "refs/heads/master", - "rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88", - "revCount": 323, + "rev": "050c273c65b36dc03c34a7547d80e88afff5ac48", + "revCount": 327, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" }, @@ -361,11 +361,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1779457550, - "narHash": "sha256-yALoy2CrvwvNfwMtGZDRdc+jqVNHulyuM5iVK12lUAI=", + "lastModified": 1781153468, + "narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a9c18fd234dbe4fd8de4bac53760b785c47e94ff", + "rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd", "type": "github" }, "original": { @@ -471,11 +471,11 @@ ] }, "locked": { - "lastModified": 1779302169, - "narHash": "sha256-OOSPtUXC4F2umtsZPkyWlPQxhXBsxF2vqBXLeI/lqIw=", + "lastModified": 1780479100, + "narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=", "owner": "Fission-AI", "repo": "OpenSpec", - "rev": "79303b521068c5f525ee61db06b915fc44b098f4", + "rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f", "type": "github" }, "original": { diff --git a/profiles/contexts/desktop/apps/productivity.nix b/profiles/contexts/desktop/apps/productivity.nix index dd0c134..a4360f3 100644 --- a/profiles/contexts/desktop/apps/productivity.nix +++ b/profiles/contexts/desktop/apps/productivity.nix @@ -12,6 +12,7 @@ in { config = mkIf cfg.enable { home.packages = with pkgs; [ + openwork pomodoro-timer ]; }; From 4b4221da304aeef8206bd6570163216a712158e8 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 07:22:07 +0200 Subject: [PATCH 11/23] fix: resolve flake lock conflict markers --- flake.lock | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/flake.lock b/flake.lock index 57d0b2d..4a1fe18 100644 --- a/flake.lock +++ b/flake.lock @@ -296,27 +296,11 @@ "openspec": "openspec" }, "locked": { -<<<<<<< HEAD "lastModified": 1781500279, "narHash": "sha256-810qVHwu6jVhu01FWj9dXuruK84Gw2smAlbu6FPBfeY=", -||||||| cd80ded - "lastModified": 1779944037, - "narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=", -======= - "lastModified": 1781153970, - "narHash": "sha256-OtC89zreW6Api7wpF5u76Jvkn8uQJiM+0yFFn/r+rj8=", ->>>>>>> d1494476b864173592c6dc4a1f0645189cdca192 "ref": "refs/heads/master", -<<<<<<< HEAD "rev": "050c273c65b36dc03c34a7547d80e88afff5ac48", "revCount": 327, -||||||| cd80ded - "rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88", - "revCount": 323, -======= - "rev": "8fae0726a53ecabb04f4a0931a17a25de6a05fbf", - "revCount": 324, ->>>>>>> d1494476b864173592c6dc4a1f0645189cdca192 "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" }, From fe88684d9d6815137a839600ec4d91cd42603b86 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 07:39:27 +0200 Subject: [PATCH 12/23] chore: move openwork into agent context --- profiles/contexts/desktop/apps/productivity.nix | 1 - profiles/sets/coding/agents/agents.nix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/apps/productivity.nix b/profiles/contexts/desktop/apps/productivity.nix index a4360f3..dd0c134 100644 --- a/profiles/contexts/desktop/apps/productivity.nix +++ b/profiles/contexts/desktop/apps/productivity.nix @@ -12,7 +12,6 @@ in { config = mkIf cfg.enable { home.packages = with pkgs; [ - openwork pomodoro-timer ]; }; diff --git a/profiles/sets/coding/agents/agents.nix b/profiles/sets/coding/agents/agents.nix index 9ce4324..6b8155f 100644 --- a/profiles/sets/coding/agents/agents.nix +++ b/profiles/sets/coding/agents/agents.nix @@ -74,5 +74,6 @@ # opencode-desktop openshell openspec + openwork ]; } From 39cc27fd72f9c198839d7c00cc5a673b6e2d9576 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 11:00:32 +0200 Subject: [PATCH 13/23] chore: hyprland monitor config import from dms --- profiles/contexts/desktop/wm/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 96d6708..f5666b2 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -19,7 +19,7 @@ in { source = [ "~/.config/hypr/dms/colors.conf" "~/.config/hypr/dms/layout.conf" - "~/.config/hypr/monitors.conf" + "~/.config/hypr/dms/outputs.conf" ]; exec-once = [ "vibetyper" From ef78590a6ab9b1374421a788582428b9bef97e29 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 12:46:09 +0200 Subject: [PATCH 14/23] chore: opus 4.8 --- profiles/sets/coding/agents/opencode.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/profiles/sets/coding/agents/opencode.nix b/profiles/sets/coding/agents/opencode.nix index 4afa1ab..6b08c85 100644 --- a/profiles/sets/coding/agents/opencode.nix +++ b/profiles/sets/coding/agents/opencode.nix @@ -227,8 +227,8 @@ output = 64000; }; }; - "claude-opus-4-6" = { - name = "Claude Opus 4.6"; + "claude-opus-4-8" = { + name = "Claude Opus 4.8"; options = { thinking = { type = "enabled"; From fbcf8f65e6c8348cf63cada9bdaaed9c3877ba16 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 12:59:17 +0200 Subject: [PATCH 15/23] chore: fix opus 4.8 thinking --- profiles/sets/coding/agents/opencode.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/sets/coding/agents/opencode.nix b/profiles/sets/coding/agents/opencode.nix index 6b08c85..e9a836f 100644 --- a/profiles/sets/coding/agents/opencode.nix +++ b/profiles/sets/coding/agents/opencode.nix @@ -231,7 +231,7 @@ name = "Claude Opus 4.8"; options = { thinking = { - type = "enabled"; + type = "adaptive"; budget_tokens = 16000; }; }; From 57c467ef11222cee7f72bf7622dee1183f929144 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Mon, 15 Jun 2026 13:01:07 +0200 Subject: [PATCH 16/23] chore: fix opus 4.8 thinking --- profiles/sets/coding/agents/opencode.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/profiles/sets/coding/agents/opencode.nix b/profiles/sets/coding/agents/opencode.nix index e9a836f..5f00728 100644 --- a/profiles/sets/coding/agents/opencode.nix +++ b/profiles/sets/coding/agents/opencode.nix @@ -232,7 +232,6 @@ options = { thinking = { type = "adaptive"; - budget_tokens = 16000; }; }; limit = { From 413a7d123eb47c517c04ebc4ea61960930721356 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Fri, 19 Jun 2026 06:56:48 +0200 Subject: [PATCH 17/23] chore: moonlander keyboard layout --- profiles/contexts/desktop/wm/hyprland.nix | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index f5666b2..2063090 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -98,16 +98,34 @@ in { device = [ { - name = "zsa-technology-labs-moonlander-mark-i"; + name = "zsa-technology-labs-moonlander-mark-i-keyboard"; kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } + { + name = "zsa-technology-labs-moonlander-mark-i-1"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } + { + name = "zsa-technology-labs-moonlander-mark-i-consumer-control"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } + { + name = "zsa-technology-labs-moonlander-mark-i-system-control"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; } { name = "vibe-typer-virtual-keyboard"; kb_layout = "de"; + kb_options = "ctrl:nocaps"; } { name = "keychron-keychron-k7"; kb_layout = "us"; + kb_options = "ctrl:nocaps"; } ]; From aa249c1f31843c04ad36bb0671cb219bfa74273c Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Fri, 19 Jun 2026 11:29:02 +0200 Subject: [PATCH 18/23] chore: moonlander keyboard layout --- profiles/contexts/desktop/wm/hyprland.nix | 36 +++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 2063090..b6d1020 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -40,7 +40,7 @@ in { ]; input = { - kb_layout = "de,us"; + kb_layout = "us"; kb_variant = ""; kb_model = ""; kb_rules = ""; @@ -97,24 +97,20 @@ in { }; device = [ + # Alle normalen Keyboards explizit auf de setzen: { - name = "zsa-technology-labs-moonlander-mark-i-keyboard"; - kb_layout = "us"; + name = "video-bus"; + kb_layout = "de,us"; kb_options = "ctrl:nocaps"; } { - name = "zsa-technology-labs-moonlander-mark-i-1"; - kb_layout = "us"; + name = "razer-razer-pro-click-v2-vertical-edition-keyboard"; + kb_layout = "de,us"; kb_options = "ctrl:nocaps"; } { - name = "zsa-technology-labs-moonlander-mark-i-consumer-control"; - kb_layout = "us"; - kb_options = "ctrl:nocaps"; - } - { - name = "zsa-technology-labs-moonlander-mark-i-system-control"; - kb_layout = "us"; + name = "razer-razer-pro-click-v2-vertical-edition-1"; + kb_layout = "de,us"; kb_options = "ctrl:nocaps"; } { @@ -127,6 +123,22 @@ in { kb_layout = "us"; kb_options = "ctrl:nocaps"; } + # Moonlander Sub-Devices bleiben us (erben global) + { + name = "zsa-technology-labs-moonlander-mark-i-consumer-control"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } + { + name = "zsa-technology-labs-moonlander-mark-i-keyboard"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } + { + name = "zsa-technology-labs-moonlander-mark-i-system-control"; + kb_layout = "us"; + kb_options = "ctrl:nocaps"; + } ]; windowrule = [ From 0ae4996d974a1e5ddd3088525eeaebfd345e7d88 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 20 Jun 2026 08:34:18 +0200 Subject: [PATCH 19/23] chore: vibetyper rec indicator --- profiles/contexts/desktop/wm/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index b6d1020..4a2c549 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -179,7 +179,7 @@ in { "match:initial_title .*streamlabs.com.*, decorate off" "match:initial_title .*streamlabs.com.*, no_shadow on" "match:initial_title .*streamlabs.com.*, no_blur on" - "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_blur on" + # "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_blur on" "border_color rgb(ffffff), match:xwayland 1" ]; From 6be0ad4ea0a0f3d70b65eb85cd4ddc0a04fddc42 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 20 Jun 2026 10:51:46 +0200 Subject: [PATCH 20/23] fix: remove deprecated matchBlocks from work profile --- users/m3tam3re/identities/work.nix | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/users/m3tam3re/identities/work.nix b/users/m3tam3re/identities/work.nix index 8aaef44..0d4f292 100644 --- a/users/m3tam3re/identities/work.nix +++ b/users/m3tam3re/identities/work.nix @@ -44,29 +44,29 @@ programs.ssh = { enable = true; enableDefaultConfig = false; - matchBlocks = { + settings = { "AZ-CLD-1" = { - hostname = "152.53.186.119"; - user = "sascha.koenig"; - port = 2022; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "152.53.186.119"; + User = "sascha.koenig"; + Port = 2022; + IdentityFile = "~/.ssh/sascha.koenig"; }; "AZ-PRM-1" = { - hostname = "192.168.152.76"; - user = "sascha.koenig"; - port = 2022; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "192.168.152.76"; + User = "sascha.koenig"; + Port = 2022; + IdentityFile = "~/.ssh/sascha.koenig"; }; "git.az-gruppe.com" = { - hostname = "git.az-gruppe.com"; - port = 2022; - user = "sascha.koenig"; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "git.az-gruppe.com"; + Port = 2022; + User = "sascha.koenig"; + IdentityFile = "~/.ssh/sascha.koenig"; }; "code.m3ta.dev" = { - hostname = "code.m3ta.dev"; - user = "m3tam3re"; - identityFile = "~/.ssh/sascha.koenig"; + HostName = "code.m3ta.dev"; + User = "m3tam3re"; + IdentityFile = "~/.ssh/sascha.koenig"; }; }; }; From 9cd60383f885e877892e60a3f6034ffd1734c64c Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 20 Jun 2026 10:58:22 +0200 Subject: [PATCH 21/23] fix: vibetyper hyprland setting --- profiles/contexts/desktop/wm/hyprland.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/profiles/contexts/desktop/wm/hyprland.nix b/profiles/contexts/desktop/wm/hyprland.nix index 4a2c549..fb11344 100644 --- a/profiles/contexts/desktop/wm/hyprland.nix +++ b/profiles/contexts/desktop/wm/hyprland.nix @@ -179,7 +179,11 @@ in { "match:initial_title .*streamlabs.com.*, decorate off" "match:initial_title .*streamlabs.com.*, no_shadow on" "match:initial_title .*streamlabs.com.*, no_blur on" - # "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_blur on" + "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_blur on" + "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_shadow on" + "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_anim on" + "match:class ^vibe-typer$, match:title ^Recording Indicator$, border_size 0" + "match:class ^vibe-typer$, match:title ^Recording Indicator$, no_focus on" "border_color rgb(ffffff), match:xwayland 1" ]; From a42c19684065cc3a4933b13e8f034442083e19c9 Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Tue, 30 Jun 2026 07:22:27 +0200 Subject: [PATCH 22/23] chore: update agent sources --- agent-sources.lock.json | 26 +++++++++- flake.lock | 64 ++++++++++++------------ profiles/sets/coding/agents/opencode.nix | 20 ++++---- 3 files changed, 66 insertions(+), 44 deletions(-) diff --git a/agent-sources.lock.json b/agent-sources.lock.json index f451692..3be3af6 100644 --- a/agent-sources.lock.json +++ b/agent-sources.lock.json @@ -555,6 +555,17 @@ }, "path": "skills/excalidraw" }, + "m3ta-brain": { + "entry": "skills/m3ta-brain/SKILL.md", + "licenseFiles": [], + "metadata": { + "description": "Shared Obsidian vault for human-agent collaboration. Use when: (1) Loading project context at session start (auto-recall), (2) Writing session summaries, decisions, project updates, or learning notes, (3) Searching for past decisions or project state, (4) Running nightly/weekly digest passes, (5) Creating or updating person profiles, (6) Any reference to 'the vault', 'shared brain', 'our context', 'what did we decide'. Triggers: m3ta-brain, shared brain, vault, session summary, decision note, project update, memory candidate, brain vault, auto-recall, digest, nightly pass.", + "name": "m3ta-brain", + "requires": [], + "tags": [] + }, + "path": "skills/m3ta-brain" + }, "mem0-memory": { "entry": "skills/mem0-memory/SKILL.md", "licenseFiles": [], @@ -643,6 +654,17 @@ }, "path": "skills/reflection" }, + "shared-brain-vault": { + "entry": "skills/shared-brain-vault/SKILL.md", + "licenseFiles": [], + "metadata": { + "description": "Build and maintain a Git-synced Obsidian vault as shared working memory between user and AI agents. Use when: (1) Writing session summaries or project updates, (2) Recording decisions or learnings, (3) Adding people/profiles to the vault, (4) Populating or restructuring the vault, (5) Setting up multi-agent vault access, (6) Answering 'what did we decide' or 'where do we stand on X'. Triggers: 'shared brain', 'm3ta-brain', 'session summary', 'vault update', 'decision note', 'project status', 'what did we decide'.", + "name": "shared-brain-vault", + "requires": [], + "tags": [] + }, + "path": "skills/shared-brain-vault" + }, "skill-creator": { "entry": "skills/skill-creator/SKILL.md", "licenseFiles": [], @@ -679,9 +701,9 @@ }, "tools": {} }, - "narHash": "sha256:640f5c15e9124526564a5438952c3231d9fa3cbab6a4e6b1cecdf4cd280c7847", + "narHash": "sha256:632df1722f82091772f12e9ec51bbf9e823a4a88bd1ce9d093d80901242861fe", "ref": null, - "rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb", + "rev": "cd36a91440b971582fcf2d4eedf9a46fb755f6e1", "root": ".", "type": "git", "url": "https://code.m3ta.dev/m3tam3re/AGENTS", diff --git a/flake.lock b/flake.lock index 4a1fe18..59eef94 100644 --- a/flake.lock +++ b/flake.lock @@ -46,11 +46,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1780133320, - "narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=", + "lastModified": 1782789853, + "narHash": "sha256-LEmctqYRQRq0wB1MoS+IVr/0/uu/0nKahqNeJBGTjJ8=", "ref": "refs/heads/master", - "rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb", - "revCount": 88, + "rev": "cd36a91440b971582fcf2d4eedf9a46fb755f6e1", + "revCount": 92, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/AGENTS" }, @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1781317940, - "narHash": "sha256-uMVOhV6pVPgm2hn1WGEbIcJRWjnsyWKy8PHCUn0++iI=", + "lastModified": 1782780764, + "narHash": "sha256-Q2wPFsuDo1y6neZ3ttxxOOItupg/4+mPkyAZbC0+wfw=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "4ab59f3da3df33bf106045b856db8de875cc42c6", + "rev": "9fa716427ab5905845b2a10a01d67bee0b1e4c4b", "type": "github" }, "original": { @@ -231,11 +231,11 @@ "uv2nix": "uv2nix_2" }, "locked": { - "lastModified": 1781346807, - "narHash": "sha256-ytT4ojx0qFW4b/oYeW+MkmaA3b/BZ9pqkPmpAg8j1gg=", + "lastModified": 1782794050, + "narHash": "sha256-+qKEwIhTkml3DNSmIvGFJyssW9ZXTp78KGclFdcDvX8=", "owner": "NousResearch", "repo": "hermes-agent", - "rev": "2a5dc0ef3df433a36abed9ee544ea067d807c438", + "rev": "972b1620906a1b80772c2f67492ad50b3c83f048", "type": "github" }, "original": { @@ -272,11 +272,11 @@ ] }, "locked": { - "lastModified": 1781305496, - "narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=", + "lastModified": 1782749631, + "narHash": "sha256-slFTUgDy0KTPA4LBAmC/9SngDq8GCPdX+ZR0yQHHN1E=", "owner": "nix-community", "repo": "home-manager", - "rev": "c87a39aa979acc4848016d2220c6238390d84779", + "rev": "5d72a29fc36ac21adae6ae35568fe5ee6700850f", "type": "github" }, "original": { @@ -296,11 +296,11 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1781500279, - "narHash": "sha256-810qVHwu6jVhu01FWj9dXuruK84Gw2smAlbu6FPBfeY=", + "lastModified": 1782541692, + "narHash": "sha256-gCWM240hAkKQqZrq7I4+1g9cSo0JZ08l6XFHzyNxohk=", "ref": "refs/heads/master", - "rev": "050c273c65b36dc03c34a7547d80e88afff5ac48", - "revCount": 327, + "rev": "d42a6f57f534965f9e39056ef3385c523c9671f6", + "revCount": 332, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" }, @@ -361,11 +361,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1781153468, - "narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=", + "lastModified": 1782540244, + "narHash": "sha256-3skOZJEfAUG7LSB/Ok2AQUiqeagYLSq+8wKjtS1hOyc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd", + "rev": "a65184fc373636356fcaf460dc09655a919c66ea", "type": "github" }, "original": { @@ -393,11 +393,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1781074563, - "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", + "lastModified": 1782723713, + "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", + "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", "type": "github" }, "original": { @@ -409,11 +409,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1781074563, - "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", + "lastModified": 1782723713, + "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", + "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", "type": "github" }, "original": { @@ -450,11 +450,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1781346642, - "narHash": "sha256-o92OOSMAB08HQgG7pW2BZVIO53Pkv4oAjLk4Iol3Iko=", + "lastModified": 1782796354, + "narHash": "sha256-zHZEX+twYRO4n369Nrk21DBb519JZCGJLHBo/trhHO0=", "owner": "nix-community", "repo": "NUR", - "rev": "6e4e8d731fbb3831296607d5f88de727cf7bf6de", + "rev": "df4f4323fe161a8bab3aafa2d067ff9d7e223a67", "type": "github" }, "original": { @@ -471,11 +471,11 @@ ] }, "locked": { - "lastModified": 1780479100, - "narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=", + "lastModified": 1782291243, + "narHash": "sha256-0pVn5pDqlKpqSgzf4eG9TFCjkjzOtnmGTpbILso7GwI=", "owner": "Fission-AI", "repo": "OpenSpec", - "rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f", + "rev": "737518b36fe4b6fdb09c83eeaf8d873a428c92e6", "type": "github" }, "original": { diff --git a/profiles/sets/coding/agents/opencode.nix b/profiles/sets/coding/agents/opencode.nix index 5f00728..02c35ee 100644 --- a/profiles/sets/coding/agents/opencode.nix +++ b/profiles/sets/coding/agents/opencode.nix @@ -4,25 +4,25 @@ ohMyOpencodeSettings = { agents = { - sisyphus.model = "litellm/claude-opus-4-6"; + sisyphus.model = "litellm/claude-opus-4-8"; oracle.model = "litellm/claude-sonnet-4-6"; librarian.model = "litellm/claude-sonnet-4-6"; explore.model = "litellm/claude-haiku-4-5"; multimodal-looker.model = "litellm/gpt-5.3-codex"; - prometheus.model = "litellm/claude-opus-4-6"; - metis.model = "litellm/claude-opus-4-6"; - momus.model = "litellm/claude-opus-4-6"; - atlas.model = "litellm/claude-sonnet-4-6"; + prometheus.model = "litellm/claude-opus-4-8"; + metis.model = "litellm/claude-opus-4-8"; + momus.model = "litellm/claude-opus-4-8"; + atlas.model = "litellm/claude-sonnet-4-8"; }; categories = { - visual-engineering.model = "zai-coding-plan/glm-5.1"; - ultrabrain.model = "litellm/claude-opus-4-6"; + visual-engineering.model = "zai-coding-plan/glm-5.2"; + ultrabrain.model = "litellm/claude-opus-4-8"; deep.model = "litellm/claude-sonnet-4-6"; - artistry.model = "zai-coding-plan/glm-5.1"; + artistry.model = "zai-coding-plan/glm-5.2"; quick.model = "litellm/claude-haiku-4-5"; unspecified-low.model = "litellm/claude-sonnet-4-6"; - unspecified-high.model = "litellm/claude-opus-4-6"; - writing.model = "zai-coding-plan/glm-5.1"; + unspecified-high.model = "litellm/claude-opus-4-8"; + writing.model = "zai-coding-plan/glm-5.2"; }; }; }; From 7febc62f502aa873dec2bf13bdb9edc75b437cbf Mon Sep 17 00:00:00 2001 From: m3ta-chiron Date: Thu, 2 Jul 2026 19:07:29 +0200 Subject: [PATCH 23/23] refactor: resolve nushell secrets path dynamically via config.home.username Replace hardcoded 'm3tam3re-secrets' with '${config.home.username}-secrets' so the agenix secret file resolves automatically for any user (m3tam3re, sascha.koenig, bob, etc.). --- profiles/base/shell/nushell.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/profiles/base/shell/nushell.nix b/profiles/base/shell/nushell.nix index 61e2ebc..9529826 100644 --- a/profiles/base/shell/nushell.nix +++ b/profiles/base/shell/nushell.nix @@ -6,6 +6,8 @@ }: with lib; let cfg = config.base.shell.nushell; + # User-specific secrets file from agenix, resolved at build time. + secretsFile = "/run/agenix/${config.home.username}-secrets"; in { # Enabled by default — base modules are always-on. options.base.shell.nushell.enable = (mkEnableOption "enable nushell") // {default = true;}; @@ -42,15 +44,16 @@ in { | load-env } - # Load m3tam3re secrets from agenix. The secret file is Nushell code + # Load user-specific secrets from agenix. The secret file is Nushell code # containing a `load-env { ... }` block, not KEY=VALUE lines. # `source` resolves literal paths at parse time, so use `null` when absent. - const m3tam3re_secrets_file = if ("/run/agenix/m3tam3re-secrets" | path exists) { - "/run/agenix/m3tam3re-secrets" + # Path is resolved at Nix build time via config.home.username. + const user_secrets_file = if ("${secretsFile}" | path exists) { + "${secretsFile}" } else { null } - source $m3tam3re_secrets_file + source $user_secrets_file ''; configFile.text = ''