chore(config): update git-commit skill and configuration
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
```
|
||||||
|
<type>[optional scope]: <description>
|
||||||
|
|
||||||
|
[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 "<type>[scope]: <description>"
|
||||||
|
|
||||||
|
# Multi-line with body/footer
|
||||||
|
git commit -m "$(cat <<'EOF'
|
||||||
|
<type>[scope]: <description>
|
||||||
|
|
||||||
|
<optional body>
|
||||||
|
|
||||||
|
<optional footer>
|
||||||
|
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)
|
||||||
@@ -24,13 +24,9 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Define Pi Configuration
|
# Define Pi Configuration
|
||||||
sops = {
|
home.file = {
|
||||||
secrets.context7_apikey = {
|
".pi/agent/models.json" = {
|
||||||
sopsFile = lib.snowfall.fs.get-file "secrets/common/evanreichard.yaml";
|
text = builtins.toJSON {
|
||||||
};
|
|
||||||
templates."pi.json" = {
|
|
||||||
path = "${config.home.homeDirectory}/.pi/agent/models.json";
|
|
||||||
content = builtins.toJSON {
|
|
||||||
providers = {
|
providers = {
|
||||||
"llama-swap" = {
|
"llama-swap" = {
|
||||||
baseUrl = "https://llm-api.va.reichard.io/v1";
|
baseUrl = "https://llm-api.va.reichard.io/v1";
|
||||||
@@ -41,6 +37,10 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
".pi/agent/skills" = {
|
||||||
|
source = ./config/skills;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
vulkanSupport = true;
|
vulkanSupport = true;
|
||||||
}).overrideAttrs
|
}).overrideAttrs
|
||||||
(oldAttrs: rec {
|
(oldAttrs: rec {
|
||||||
version = "7898";
|
version = "7951";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "ggml-org";
|
owner = "ggml-org";
|
||||||
repo = "llama.cpp";
|
repo = "llama.cpp";
|
||||||
tag = "b${version}";
|
tag = "b${version}";
|
||||||
hash = "sha256-ST7hhE5lWOm46WS+k9lkHJqVQpz8squwHZWE2/XG6MY=";
|
hash = "sha256-NRoZQhhQkiK+d4uRCo1mYCGrnjgeQX6kZ0VtSguSmV8=";
|
||||||
leaveDotGit = true;
|
leaveDotGit = true;
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
git -C "$out" rev-parse --short HEAD > $out/COMMIT
|
git -C "$out" rev-parse --short HEAD > $out/COMMIT
|
||||||
|
|||||||
Reference in New Issue
Block a user