360 Secure SkillHub
360 安全技能中心

git-dirty-check

面向本地 git 仓库的只读 triage Skill:用只读 git 命令收集仓库状态与 diff 统计,把变更分为已暂存、未暂存、未跟踪、冲突四类,按路径与文件名给出保守风险标记,并按固定顺序输出仓库状态、分类清单、风险标记、1-3 条后续检查建议与省略说明;不修改仓库状态,不做提交、分支管理或 PR 评审。

amitb-quantum
amitb-quantum
热度 35.02
最近更新 2026-05-11 17:40:36
分类:开发依赖:代码执行 / 读写文件应用场景:摘要总结 / 工作流 / DevOps

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add git-dirty-check
Metadata
name
git-dirty-check
description
Read-only triage for a local git working tree that summarizes uncommitted changes and applies conservative risk flags. Use when a user asks what changed in a repo, what is dirty, what is staged versus unstaged, or which risk flags apply before a commit. Do not use for commit writing, branch management, history analysis, merge conflict resolution, PR review, or general git assistance.

git-dirty-check

A narrow git skill for summarizing uncommitted changes in a local repository. It groups staged, unstaged, untracked, and conflicted entries, applies conservative path- and filename-based risk flags, and suggests up to three next checks without modifying repo state.

git-dirty-check is a deliberately narrow skill for one job: understanding the current uncommitted state of a local git repository.

It does not try to manage branches, write commit messages, resolve conflicts, review pull requests, or act as a general git assistant. Instead, it gives a compact, structured triage of the current working tree:

  • repo state
  • changed entries by category
  • conservative risk flags based mostly on paths, filenames, and diff stats
  • a few copy-paste-ready next checks
  • explicit omissions when details are capped or sensitive

The skill is read-only. It is designed for developers who want a quick operational summary before a commit, handoff, or local review, without granting write access or triggering broader repo assistance.

It also applies strict limits to deeper inspection:

  • fail fast if the target is not a git repo
  • branch metadata is optional
  • deep diff inspection is capped
  • secret-bearing filename patterns are handled at filename level only

This skill is most useful when raw git output is technically sufficient, but slower to parse than a stable triage summary.

Workflow

  1. Confirm the target path is inside a git repository.
  2. If it is not a git repository, stop immediately and say so.
  3. Collect read-only repo state with git status and diff-stat commands.
  4. Group changed entries into:
    • staged
    • unstaged
    • untracked
    • conflicted
  5. Apply conservative risk flags based mostly on file paths and filenames.
  6. Inspect diff content only when filename and diff-stat data are insufficient to assign a listed risk flag, and only for files not matched by the secret-bearing file rule.
  7. Return the output in the fixed order defined below.

Commands to Prefer

Use read-only commands only.

Preferred commands:

  • git rev-parse --show-toplevel
  • git rev-parse --abbrev-ref HEAD
  • git status --short
  • git diff --stat
  • git diff --cached --stat

Use targeted diff inspection only under the deep diff inspection cap, and only for files not matched by the secret-bearing file rule.

Fail-Fast Rule

If the target path is not inside a git repository:

  • stop immediately
  • report that the path is not a git repository
  • do not continue with generic filesystem analysis

Branch Handling

Branch name is optional metadata only. If branch name is available from a preferred read-only command, include it in Repo state. If HEAD is unavailable or branch name lookup fails in an otherwise valid repo, omit branch metadata without error. Do not give branch advice.

Deep Diff Inspection Cap

Deep diff inspection is optional and must remain narrow.

Hard limits:

  • inspect at most 3 files
  • inspect at most 40 lines per file
  • never inspect secret-bearing files beyond filename-level detection

Use deep diff inspection only for files not matched by the secret-bearing file rule and only when filename and diff-stat data are insufficient to assign or decline a listed risk flag.

Secret-Bearing File Rule

Treat files matching these secret-bearing filename patterns as filename-level only.

Examples:

  • .env
  • .env.*
  • *.pem
  • *.key
  • id_rsa
  • id_ed25519
  • secrets.*

For these files:

  • do not inspect diff content
  • do not print values
  • report only that an entry matched a secret-bearing filename pattern

Conservative Risk Heuristics

Keep risk flags conservative and mostly path/file based.

Flag examples:

  • dependency manifest changed
  • lockfile changed
  • manifest changed without lockfile
  • lockfile changed without manifest
  • CI or workflow file changed
  • possible deploy or infrastructure file changed
  • possible auth or security-related file changed
  • possible migration or schema file changed
  • more than 10 unique paths changed
  • entry matched a secret-bearing filename pattern

Do not over-interpret. Avoid speculative impact claims.

Output Order

Always return sections in this exact order:

  1. Repo state
  2. Changed files by category
  3. Risk flags
  4. Suggested next checks
  5. Unknowns or omitted detail

Output Guidance

Keep the response brief and structured.

1. Repo state

Include:

  • repo root
  • branch name only as optional metadata
  • counts of staged, unstaged, untracked, and conflicted files

2. Changed files by category

List entries under:

  • staged
  • unstaged
  • untracked
  • conflicted

List entries directly when there are 10 or fewer in a category. Otherwise list the first 10 and summarize the remainder.

3. Risk flags

List only conservative flags supported by filenames, paths, diff stats, or tightly capped non-sensitive diff samples.

4. Suggested next checks

Give 1 to 3 copy-paste-ready commands. Prefer read-only commands.

5. Unknowns or omitted detail

Say what was intentionally not inspected, such as:

  • diff content omitted due to caps
  • sensitive files not inspected beyond filename
  • large repo details summarized only

Boundaries

Never:

  • modify git state
  • stage, unstage, commit, stash, reset, checkout, merge, rebase, or push
  • write commit messages
  • provide branch strategy
  • expand into PR review or general git help
  • expose secret-looking values from diffs
  • use network operations

Stay narrow. This skill exists to answer: "What changed here, and which conservative risk flags apply?"

Trigger examples

  • “What changed in this repo?”
  • “Summarize my uncommitted changes.”
  • “What’s dirty here?”
  • “Give me a quick git change triage.”
  • “Before I commit, what changed and which risk flags apply?”
  • “Show staged vs unstaged vs untracked changes in this repo.”

Anti-trigger examples

  • “Write a commit message.”
  • “Help me resolve this merge conflict.”
  • “Review this PR.”
  • “Undo my last commit.”
  • “Clean up my branch.”
  • “Find the bug in this repo.”
  • “Refactor these files.”
  • “Explain git rebase.”

Limitations

  • Read-only only, no git state changes
  • Focused on current uncommitted state, not history
  • Risk flags are conservative and mostly path/file based
  • Secret detection uses filename patterns, not full secret scanning
  • Deep diff inspection is tightly capped
  • Summary usefulness depends on the clarity of repo file naming and layout
  • Not a replacement for full code review or git expertise

Safety notes

  • Uses read-only git commands only
  • Does not stage, unstage, commit, stash, reset, checkout, merge, rebase, or push
  • Does not use network operations
  • Fails fast on non-repo paths
  • Does not inspect secret-bearing files beyond filename-level detection
  • Avoids exposing secret-looking values from diffs
  • Keeps output scoped to triage, not general repo management