This commit is contained in:
2026-04-09 08:30:19 +00:00
parent 03b968513b
commit 276378b57c
4 changed files with 49 additions and 133 deletions

78
flake.lock generated
View File

@@ -130,11 +130,11 @@
},
"den": {
"locked": {
"lastModified": 1775633596,
"narHash": "sha256-xKG0CR/ivtpEB7ako+3hObH2rrXZLhEZ7x7wtfyT1h8=",
"lastModified": 1775702491,
"narHash": "sha256-5BCNtE/zCLSheltliy4hTdwsq0Boj/W1XRIX8n89nqA=",
"owner": "vic",
"repo": "den",
"rev": "6ca251e7ccbd0cee63b9f08213be35856c53343c",
"rev": "d267c458e384b57317d06d45f7c65f7fb03fae4b",
"type": "github"
},
"original": {
@@ -191,11 +191,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1775634720,
"narHash": "sha256-R5ETx0HEFybabKxkUkhssq/F+mjUqsKLBrOHl4L+EcA=",
"lastModified": 1775721346,
"narHash": "sha256-ogqjruvVBYEj8sWM3viOucSo1Pna9c147EKQOfA+p3I=",
"owner": "nix-community",
"repo": "fenix",
"rev": "dd74d9dec9b1d02044714cea439a138716e9545e",
"rev": "99fde43dfee2a672e4e37ef211e0844337e5b725",
"type": "github"
},
"original": {
@@ -441,11 +441,11 @@
]
},
"locked": {
"lastModified": 1775622785,
"narHash": "sha256-/yFxO+7oS1SymDfJ2iVO7K5vJKcYfe9XGIJ+quLqz0Q=",
"lastModified": 1775683737,
"narHash": "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "527e47b78fe67213072f706bf933a9705a8c4974",
"rev": "7ba4ee4228ed36123c7cb75d50524b43514ef992",
"type": "github"
},
"original": {
@@ -457,11 +457,11 @@
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1775635369,
"narHash": "sha256-50sHorVfGdFsptE9mPNH3bK4n52qCNATcwiKkZHUMdY=",
"lastModified": 1775700724,
"narHash": "sha256-qQm9uIF+tI7gamLMa7DSXSQQzLQalEtOa7PHPxNkbr8=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "3c70b3e0a7d7b8917376bc1680f0f96a80251a3d",
"rev": "c622bff3b88557e3c870104db0426b93e0767a8f",
"type": "github"
},
"original": {
@@ -473,11 +473,11 @@
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1775628396,
"narHash": "sha256-1bQOqEFycUYXNUA52IwK7N0Zc8KW6YqzWwGf5fHujl0=",
"lastModified": 1775721921,
"narHash": "sha256-s6K2QbKa4OJlblFp3zMSh0/2PM2zpWpAd4ZnREirj/I=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "2fa402988e1c54ade4f2bad0af97b35d0c1e7ca6",
"rev": "70028a68b515145bbeccb2961240275ab6eb9e82",
"type": "github"
},
"original": {
@@ -593,11 +593,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1775619181,
"narHash": "sha256-McIhvwQTDZKRmCGJoHlAOAkPR2SrExTA+BMjYrSIr7Q=",
"lastModified": 1775705124,
"narHash": "sha256-OUtgrn0k7DYnAP9skY2rOJSWJyn4w5tnUcF3lSJdfME=",
"owner": "numtide",
"repo": "llm-agents.nix",
"rev": "a6a61ddf000bb1ef8a5ee96e403fa3859ba4f9ab",
"rev": "ca76524952b00135dba57da62ce2dd123a1ba4be",
"type": "github"
},
"original": {
@@ -637,11 +637,11 @@
]
},
"locked": {
"lastModified": 1775628196,
"narHash": "sha256-C9H4CHXo/yMEiYYi2BcUwCreCOqsF1DaMR2gimduPNE=",
"lastModified": 1775693082,
"narHash": "sha256-nnhkpfWsRutQh//KmVoIV7e9Gk90tBezjcoRr775BfU=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "79ca5eedb2f68e2681eba7523acd43a12c3225d1",
"rev": "21b2795e6aeb4a0110bdc7bd81bad59c022c9986",
"type": "github"
},
"original": {
@@ -653,11 +653,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1775605133,
"narHash": "sha256-QBi9quAM8C1ja7pu/lOZPkOP57/sbjA5Q+JJ/yNR81o=",
"lastModified": 1775689880,
"narHash": "sha256-savZYhFAaBm3BQUdTrPOv7i5K18JFANJvyHv0uuvaWM=",
"owner": "neovim",
"repo": "neovim",
"rev": "de674491800c0ecb6f6658512829a3d21c47fe5f",
"rev": "eefb50e352a689ec1a0a55d6827abea79960cd3d",
"type": "github"
},
"original": {
@@ -734,11 +734,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1775579569,
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=",
"lastModified": 1775639890,
"narHash": "sha256-9O9gNidrdzcb7vgKGtff7QiLtr0IsVaCi0pAXm8anhQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dfd9566f82a6e1d55c30f861879186440614696e",
"rev": "456e8a9468b9d46bd8c9524425026c00745bc4d2",
"type": "github"
},
"original": {
@@ -750,11 +750,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1775635120,
"narHash": "sha256-SC/WelgyA2aOu6wL0Xtdjzf0OSX13bq6a17XplBW3/8=",
"lastModified": 1775722436,
"narHash": "sha256-Z7QmfL80jmUPoSQkMlCc+1MGfkugf7bG47H3UTsyi7Q=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f23b37e0792211086ab84b03f6b37308c421140b",
"rev": "e73a61d035ee91f95bb0a6b95ce0b9d2866bd332",
"type": "github"
},
"original": {
@@ -868,11 +868,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1775591515,
"narHash": "sha256-/Q7IIUUzbayeosJ1q17mQPlJIb5OxxhtHrevVWHSuwk=",
"lastModified": 1775663707,
"narHash": "sha256-3cSvpBETRa8aDSrUCX1jGc6FSse3OWB7cXACIZW8BYI=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "32ab058e5bde44fa06c5aba65edd6d2a4a16bbd0",
"rev": "8c5af725817905e462052d91a8d229b85ffa83a5",
"type": "github"
},
"original": {
@@ -944,11 +944,11 @@
]
},
"locked": {
"lastModified": 1775619836,
"narHash": "sha256-VcC/+MMMldwQKcST2y/QTndGLusSxjeUvYwFwzZKKko=",
"lastModified": 1775682595,
"narHash": "sha256-0E9PohY/VuESLq0LR4doaH7hTag513sDDW5n5qmHd1Q=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "de5f2d596eb896a5728afcd15f823f59cb9ecfdb",
"rev": "d2e8438d5886e92bc5e7c40c035ab6cae0c41f76",
"type": "github"
},
"original": {
@@ -1040,11 +1040,11 @@
]
},
"locked": {
"lastModified": 1775125835,
"narHash": "sha256-2qYcPgzFhnQWchHo0SlqLHrXpux5i6ay6UHA+v2iH4U=",
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "75925962939880974e3ab417879daffcba36c4a3",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {

View File

@@ -1,84 +0,0 @@
---
description: Autonomous deep worker — explores thoroughly, acts decisively, finishes the job
mode: primary
model: openai/gpt-5.4
temperature: 0.3
color: "#D97706"
reasoningEffort: xhigh
---
You are an autonomous deep worker for software engineering.
Build context by examining the codebase first. Do not assume. Think through the nuances of the code you encounter. Complete tasks end-to-end within the current turn. Persevere when tool calls fail. Only end your turn when the problem is solved and verified.
When blocked: ask the user. Do not go around trying different things when none of them work.
## Questions
FORBIDDEN:
- Asking permission ("Should I proceed?", "Would you like me to...?") — JUST DO IT
- "Do you want me to run tests?" — RUN THEM
- "I noticed Y, should I fix it?" — FIX IT
- Stopping after partial implementation — finish or don't start
- Answering a question then stopping — questions imply action, DO THE ACTION
- "I'll do X" then ending turn — you committed to X, DO X NOW
- Explaining findings without acting on them — ACT immediately
CORRECT:
- Keep going until COMPLETELY done
- Run verification without asking
- Ask questions when course-correction is required
## Intent Extraction
Every message has surface form and true intent. Extract true intent BEFORE doing anything:
- "Did you do X?" (and you didn't) → Acknowledge, DO X immediately
- "How does X work?" → Explore, then implement/fix
- "Can you look into Y?" → Investigate AND resolve
- "What's the best way to do Z?" → Decide, then implement
- "Why is A broken?" → Diagnose, then fix
A message is pure question ONLY when the user explicitly says "just explain" or "don't change anything". Default: message implies action.
## Task Classification
Classify before acting:
- **Trivial**: Single file, known location, <10 lines — use tools directly, no exploration needed
- **Explicit**: Specific file/line given, clear instruction — execute directly
- **Exploratory**: "How does X work?", "Find Y" — fire parallel searches, then act on findings
- **Open-ended**: "Improve", "Refactor", "Add feature" — full execution loop required
- **Ambiguous**: Unclear scope, multiple interpretations — explore first (search, read, grep), ask only if exploration fails
Default bias: explore before asking. Exhaust tools before asking a clarifying question.
## Execution
1. **EXPLORE**: Search the codebase in parallel — fire multiple reads and searches simultaneously
2. **PLAN**: Identify files to modify, specific changes, dependencies
3. **EXECUTE**: Make the changes
4. **VERIFY**: Check diagnostics on all modified files, run tests, run build
If verification fails, return to step 1. After 3 failed approaches, stop edits, revert to last working state, and explain what you tried.
## Verification Is Mandatory
Before ending your turn, you MUST have:
- All requested functionality fully implemented
- Diagnostics clean on all modified files
- Build passing (if applicable)
- Tests passing (or pre-existing failures documented)
- Evidence for each verification step — "it should work" is not evidence
## Progress
Report what you're doing every ~30 seconds. One or two sentences with a concrete detail — a file path, a pattern found, a decision made.
## Self-Check Before Ending
1. Did the user's message imply action you haven't taken?
2. Did you commit to something ("I'll do X") without doing it?
3. Did you offer to do something instead of doing it?
4. Did you answer a question and stop when work was implied?
If any of these are true, you are not done. Continue working.

View File

@@ -122,12 +122,6 @@ in {
codesearch = "allow";
};
agent = {
build = {
disable = true;
};
plan = {
disable = true;
};
explore = {
model = "openai/gpt-5.1-codex-mini";
};
@@ -164,10 +158,10 @@ in {
};
xdg.configFile = {
"opencode/agent" = {
source = ./_opencode/agent;
recursive = true;
};
# "opencode/agent" = {
# source = ./_opencode/agent;
# recursive = true;
# };
"opencode/command" = {
source = ./_opencode/command;
recursive = true;

View File

@@ -2,6 +2,11 @@
local = import ./_lib/local.nix;
in {
den.aspects.email.homeManager = {pkgs, ...}: {
programs.aerc = {
enable = true;
extraConfig.general.unsafe-accounts-conf = true;
};
programs.himalaya = {
enable = true;
package =
@@ -50,6 +55,7 @@ in {
port = 993;
tls.enable = true;
};
aerc.enable = true;
};
};
};