pinwheel: Manage claude settings through nix
This commit is contained in:
@@ -6,6 +6,41 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
enabled = config.mod.ai.enable;
|
enabled = config.mod.ai.enable;
|
||||||
|
|
||||||
|
# Shared statusline: show the logged-in account email.
|
||||||
|
statusLine = {
|
||||||
|
type = "command";
|
||||||
|
command = "jq -r '.oauthAccount.emailAddress' \"$CLAUDE_CONFIG_DIR/.claude.json\"";
|
||||||
|
};
|
||||||
|
|
||||||
|
# PostToolUse hook: echoes a JSON payload that injects a comment-policy
|
||||||
|
# reminder as additional context after every Write/Edit.
|
||||||
|
commentPolicyPayload = builtins.toJSON {
|
||||||
|
suppressOutput = true;
|
||||||
|
hookSpecificOutput = {
|
||||||
|
hookEventName = "PostToolUse";
|
||||||
|
additionalContext = "Comment policy: default to ZERO code comments. Review what you just wrote and delete any comment that narrates the change, restates the code, states the obvious, is tangential, or explains design/why rationale -- put that reasoning in your chat reply instead, never in the code. Never use em dashes or en dashes anywhere in file content; use a plain ASCII hyphen or reword.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = builtins.toJSON {
|
||||||
|
inherit statusLine;
|
||||||
|
theme = "dark";
|
||||||
|
editorMode = "vim";
|
||||||
|
hooks = {
|
||||||
|
PostToolUse = [
|
||||||
|
{
|
||||||
|
matcher = "Write|Edit";
|
||||||
|
hooks = [
|
||||||
|
{
|
||||||
|
type = "command";
|
||||||
|
command = "echo ${lib.escapeShellArg commentPolicyPayload}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@@ -24,6 +59,9 @@ in
|
|||||||
wclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-personal claude";
|
wclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-personal claude";
|
||||||
pclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-work claude";
|
pclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-work claude";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file.".claude-work/settings.json".text = settings;
|
||||||
|
home.file.".claude-personal/settings.json".text = settings;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user