From bdd1f50a4830a4a74bbb0cc68cebfa5fbcf2a089 Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Fri, 6 Feb 2026 08:20:56 -0500 Subject: [PATCH] chore(config): update git-commit skill and configuration --- .../pi/config/skills/git-commit/SKILL.md | 124 ++++++++++++++++++ modules/home/programs/terminal/pi/default.nix | 14 +- packages/llama-cpp/default.nix | 4 +- 3 files changed, 133 insertions(+), 9 deletions(-) create mode 100644 modules/home/programs/terminal/pi/config/skills/git-commit/SKILL.md diff --git a/modules/home/programs/terminal/pi/config/skills/git-commit/SKILL.md b/modules/home/programs/terminal/pi/config/skills/git-commit/SKILL.md new file mode 100644 index 0000000..c35f13b --- /dev/null +++ b/modules/home/programs/terminal/pi/config/skills/git-commit/SKILL.md @@ -0,0 +1,124 @@ +--- +name: git-commit +description: 'Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping' +license: MIT +allowed-tools: Bash +--- + +# Git Commit with Conventional Commits + +## Overview + +Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message. + +## Conventional Commit Format + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +## Commit Types + +| Type | Purpose | +| ---------- | ------------------------------ | +| `feat` | New feature | +| `fix` | Bug fix | +| `docs` | Documentation only | +| `style` | Formatting/style (no logic) | +| `refactor` | Code refactor (no feature/fix) | +| `perf` | Performance improvement | +| `test` | Add/update tests | +| `build` | Build system/dependencies | +| `ci` | CI/config changes | +| `chore` | Maintenance/misc | +| `revert` | Revert commit | + +## Breaking Changes + +``` +# Exclamation mark after type/scope +feat!: remove deprecated endpoint + +# BREAKING CHANGE footer +feat: allow config to extend other configs + +BREAKING CHANGE: `extends` key behavior changed +``` + +## Workflow + +### 1. Analyze Diff + +```bash +# If files are staged, use staged diff +git diff --staged + +# If nothing staged, use working tree diff +git diff + +# Also check status +git status --porcelain +``` + +### 2. Stage Files (if needed) + +If nothing is staged or you want to group changes differently: + +```bash +# Stage specific files +git add path/to/file1 path/to/file2 + +# Stage by pattern +git add *.test.* +git add src/components/* + +# Interactive staging +git add -p +``` + +**Never commit secrets** (.env, credentials.json, private keys). + +### 3. Generate Commit Message + +Analyze the diff to determine: + +- **Type**: What kind of change is this? +- **Scope**: What area/module is affected? +- **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars) + +### 4. Execute Commit + +```bash +# Single line +git commit -m "[scope]: " + +# Multi-line with body/footer +git commit -m "$(cat <<'EOF' +[scope]: + + + + +EOF +)" +``` + +## Best Practices + +- One logical change per commit +- Present tense: "add" not "added" +- Imperative mood: "fix bug" not "fixes bug" +- Reference issues: `Closes #123`, `Refs #456` +- Keep description under 72 characters + +## Git Safety Protocol + +- NEVER update git config +- NEVER run destructive commands (--force, hard reset) without explicit request +- NEVER skip hooks (--no-verify) unless user asks +- NEVER force push to main/master +- If commit fails due to hooks, fix and create NEW commit (don't amend) diff --git a/modules/home/programs/terminal/pi/default.nix b/modules/home/programs/terminal/pi/default.nix index 125b938..2f6a103 100755 --- a/modules/home/programs/terminal/pi/default.nix +++ b/modules/home/programs/terminal/pi/default.nix @@ -24,13 +24,9 @@ in ]; # Define Pi Configuration - sops = { - secrets.context7_apikey = { - sopsFile = lib.snowfall.fs.get-file "secrets/common/evanreichard.yaml"; - }; - templates."pi.json" = { - path = "${config.home.homeDirectory}/.pi/agent/models.json"; - content = builtins.toJSON { + home.file = { + ".pi/agent/models.json" = { + text = builtins.toJSON { providers = { "llama-swap" = { baseUrl = "https://llm-api.va.reichard.io/v1"; @@ -41,6 +37,10 @@ in }; }; }; + ".pi/agent/skills" = { + source = ./config/skills; + recursive = true; + }; }; }; } diff --git a/packages/llama-cpp/default.nix b/packages/llama-cpp/default.nix index 53162ca..c1da81d 100644 --- a/packages/llama-cpp/default.nix +++ b/packages/llama-cpp/default.nix @@ -7,12 +7,12 @@ vulkanSupport = true; }).overrideAttrs (oldAttrs: rec { - version = "7898"; + version = "7951"; src = pkgs.fetchFromGitHub { owner = "ggml-org"; repo = "llama.cpp"; tag = "b${version}"; - hash = "sha256-ST7hhE5lWOm46WS+k9lkHJqVQpz8squwHZWE2/XG6MY="; + hash = "sha256-NRoZQhhQkiK+d4uRCo1mYCGrnjgeQX6kZ0VtSguSmV8="; leaveDotGit = true; postFetch = '' git -C "$out" rev-parse --short HEAD > $out/COMMIT