## A. Local Git Commit Skill
> 1.1 .agents/skills/git-local-commit/SKILL.md
```
---
name: git-local-commit
description: Identifies the latest uncommitted changes based on the current conversation context and actual Git modifications, and silently performs a local commit (without push). Used when the user requests "commit current changes", "help me perform a local commit", "submit this round of modifications" or similar requests. If a commit has already been made in this conversation, continue from the current workspace breakpoint and only commit new uncommitted content.
---
# Git Local Commit
## Objectives
- Determine which files were actually modified in the current round based on the conversation context and `git status`/`git diff`.
- Prioritize committing only changes related to the current conversation; keep clearly unrelated changes uncommitted.
- Generate a concise and accurate commit message for the target commit content.
- Perform a silent local `git commit` without asking the user for additional information unless there is a significant risk of incorrect commits.
- Do not execute `git push`, switch branches, or rewrite history.
## Workflow
1. Establish breakpoints and modification boundaries.
- Execute: `git status --porcelain`
- Execute: `git branch --show-current`
- Optional execution: `git log -1 --oneline`
- If the result is empty: inform "There are no new uncommitted changes currently" and end the process.
- If this skill or a similar commit process has already been run in this conversation, do not use `--amend` or reprocess committed content; continue committing using the remaining content from the current `git status` as the breakpoint.
2. Identify actually modified files.
- Execute: `git diff --name-status`
- If there is staged content, execute: `git diff --cached --name-status`
- Execute: `git diff --stat`
- For untracked files, use the paths from `git status --porcelain`; only read the contents of small files when necessary for generating the message.
- Do not recursively scan unrelated directories or perform extra refactoring or formatting for the commit.
- Classify changes based on the current conversation context into: current-round related changes, clearly unrelated changes, and changes with undetermined boundaries.
- If clearly distinguishable, only commit current-round related changes and keep clearly unrelated changes uncommitted.
- If the user explicitly requests "commit remaining changes" or "commit all uncommitted content", take the remaining workspace changes as the commit target.
- If commit boundaries cannot be safely distinguished, confirm with the user first instead of committing all changes by default.
3. Generate commit message.
- First refer to the tasks completed in the current conversation, then verify with the actual file list and diff.
- The message should state "what was done" instead of only writing "update files".
- If conversation context is insufficient, generate the message directly based on file changes without interrupting the user due to lack of a subject.
- Prefer a single-line subject; use a second `-m` for 1-3 brief body lines when necessary.
4. Perform local commit.
- By default, only stage target files: `git add -- <target file paths...>`
- Only execute `git add -A` when the user explicitly requests to commit all remaining current changes.
- Before committing, execute: `git diff --cached --name-status` to confirm staged content matches the current commit target.
- Execute: `git commit -m "<summarized message>"`
- If `git add` or `git commit` fails due to sandbox/permission restrictions, immediately apply for `require_escalated` with the same command following Codex tool rules and retry; the reason only needs to state "Complete the local Git commit requested by the user".
- Do not promise to bypass the permission system; the goal is to make the commit process as painless and unobtrusive as possible within the rules.
5. Return commit results.
- Provide at minimum: branch name, commit short hash, final message.
- May include: key information from `git show --stat --oneline -1`.
## Constraints
- Do not use `--amend` unless explicitly requested by the user.
- Do not use destructive reset commands (e.g., `git reset --hard`).
- Do not execute `git push`.
- Do not create documents or modify business files; only commit existing current changes.
- Do not mix changes clearly unrelated to the current conversation into the commit.
- If the staging area already contains clearly unrelated content, do not commit directly and confirm with the user first.
- Only handle one-time local commits of "current uncommitted content" without extending additional processes.
```
> 1.2 .agents/skills/git-local-commit/agents/openai.yaml
```
interface:
display_name: "Git Local Commit"
short_description: "Silently perform local commits based on conversation and actual changes"
default_prompt: "Use $git-local-commit to submit the latest uncommitted changes locally with a message based on this conversation and the actual Git diff."
```
## B. Skill Shared Symbolic Links
> 2.1 Initialization - Check Status
```
ls -ld ~/.gemini/antigravity/skills
ls -ld ~/.codex/skills/DP_skills
```
> 2.2 Initialization - Delete Old Links // Manually confirm file safety before deletion; back up existing files if present
```
rm -rf ~/.gemini/antigravity/skills
rm -rf ~/.codex/skills/DP_skills
```
> 2.3 Create Symbolic Links // `~/eeBox/eeLib/ai_support_lib/skills/DP_skills` needs to be replaced with your local shared folder path
```
ln -s ~/eeBox/eeLib/ai_support_lib/skills/DP_skills ~/.gemini/antigravity/skills
ln -s ~/eeBox/eeLib/ai_support_lib/skills/DP_skills ~/.codex/skills/DP_skills
```