360 Secure SkillHub
360 安全技能中心

Git Guardian

核心功能是强制代理所有文件操作遵循Git追踪的差异优先流程:多文件修改前创建分支,单文件小改动可直接展示差异,获用户批准后再提交推送。典型场景包括创建/修改脚本、配置等文件,用户需透明了解变更或强制“先看后改”工作流。输入为用户指令或代理触发的文件操作,输出为代码块格式的diff(大diff先出摘要)、分支/提交信息,还提供配套脚本简化操作,不替代现有PR流程。

dylntrnr
dylntrnr
热度 25.39
最近更新 2026-05-11 17:27:12
分类:开发依赖:代码执行 / 读写文件应用场景:DevOps / 自动化脚本 / 代码审查

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add git-guardian
Metadata
name
git-guardian
description
Track all agent work in git and show diffs before applying changes. Use when: (1) creating or modifying scripts, configs, skills, or any workspace files, (2) user wants transparency into what the agent changed, (3) enforcing a "show before apply" workflow for agent modifications. Triggers on: file creation, editing, config changes, script building, or when user says "show me what you changed." Ensures all agent work is committed, diffable, and reviewable before taking effect.

Git Guardian

Enforce git-tracked, diff-first workflow for all agent file operations.

Core Rules

  1. All work lives in git. Every file the agent creates or modifies must be in a git repo.
  2. Branch before changing. Create a feature branch before making changes. Never commit directly to main.
  3. Diff before applying. After making changes, show the user a git diff before finalizing. Wait for approval.
  4. Commit with context. Every commit gets a clear message explaining what changed and why.
  5. Push and link. Push the branch and provide a link (or inline diff) so the user can review.

Workflow

For new files or modifications:

1. git checkout -b <descriptive-branch-name>
2. Make the changes (create/edit files)
3. git diff                              # Show the user what changed
4. Wait for user approval (👍 or explicit "go ahead")
5. git add -A && git commit -m "<clear message>"
6. git push origin <branch-name>
7. Show the user: branch name, commit hash, diff summary

For quick single-file changes:

1. Make the edit
2. Show inline diff (before/after) in chat
3. On approval: commit + push on current branch

Diff display format:

When showing diffs in chat, use fenced code blocks with diff syntax highlighting:

```diff
- old line
+ new line
```

For large diffs (>50 lines), summarize the key changes in bullet points first, then offer the full diff on request.

When to use branches vs inline diffs

  • Branch + PR: Multi-file changes, new features, config modifications, anything touching behavior
  • Inline diff: Single-line fixes, typo corrections, minor tweaks — still commit, just skip the branch ceremony

What NOT to track

  • Ephemeral files: /tmp/, session state, working buffers
  • Secrets: Never commit API keys, tokens, or credentials
  • Large binaries: Artifacts, media files (reference them, don't commit them)

Integration

This skill works alongside existing git workflows. It doesn't replace PR review processes — it adds transparency to the agent's own work so the user always knows what changed and can verify it.

Script: git-guardian.sh

Use scripts/git-guardian.sh for common operations:

# Start tracked work
scripts/git-guardian.sh start "description of work"
# → Creates branch, logs start time

# Show what changed
scripts/git-guardian.sh diff
# → Pretty-prints staged + unstaged changes

# Commit with message
scripts/git-guardian.sh commit "what changed and why"
# → Stages all, commits, shows summary

# Wrap up and push
scripts/git-guardian.sh finish
# → Pushes branch, shows commit log, provides review link