jetbrains-changelist-commit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited jetbrains-changelist-commit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
AI coding agents commit too eagerly. A bare git add . or git commit -a sweeps in unrelated local work — debug prints, half-finished experiments, files belonging to a different task — anything the working tree happens to hold. JetBrains IDEs already solve this on the human side: developers carefully group commit-worthy files into named ChangeListManager lists in .idea/workspace.xml, and unrelated edits live in other lists.
This skill makes the agent trust that grouping. It reads the selected changelist, commits those paths through a temporary Git index, and honors IDEA's per-line ownership data when LineStatusTrackerManager records multiple changelists in the same file. The result: the agent commits exactly the selected changelist's files and line ranges.
.idea/workspace.xml with a ChangeListManager component..idea/workspace.xml (non-JetBrains project) — fall back to standard git workflow.git add . / commit-everything semantics.git add <pathspec> directly.git rev-parse --show-toplevel..idea/workspace.xml, select the <component name="ChangeListManager"> list with default="true" (or the named list), and print the paths plus any line ranges.comment, use that comment.git log --oneline -20 and match the repository's commit message style.feat(scope): summary, fix(scope): summary, feat: summary, or fix: summary.From any directory inside the repository, prefer the native runner for the platform.
Windows / PowerShell:
pwsh -File <skill-dir>\scripts\commit_changelist.ps1 -DryRun
pwsh -File <skill-dir>\scripts\commit_changelist.ps1 -Message "feat: concise message"If only Windows PowerShell 5.1 is available, substitute powershell -ExecutionPolicy Bypass for pwsh.
Linux or macOS / POSIX shell:
sh <skill-dir>/scripts/commit_changelist.sh --dry-run
sh <skill-dir>/scripts/commit_changelist.sh -m "feat: concise message"Python is available as an additional runner:
python3 <skill-dir>/scripts/commit_changelist.py --dry-run
python3 <skill-dir>/scripts/commit_changelist.py -m "feat: concise message"Use --repo <path> when working outside the target repository.
Use --list <name-or-id> when the user names a specific JetBrains changelist. The default behavior uses the list marked default="true".
PowerShell equivalents:
-Repo <path>
-List <name-or-id>Shell equivalents match the Python flags:
--repo <path>
--list <name-or-id>scripts/commit_changelist.ps1, scripts/commit_changelist.sh, and the optional fallback scripts/commit_changelist.py:
.idea/workspace.xml.<change> children from the selected changelist.LineStatusTrackerManager ranges for selected files.$PROJECT_DIR$ to the Git repository root.afterPath and beforePath so additions, edits, deletes, and renames are handled.HEAD.HEAD plus only the selected line ranges.Side effect: if a selected path was partially staged (e.g. via git add -p) before running this skill, the real index for that path may be rewritten after the commit. For shared files with IDEA line ranges, the real index is updated to the committed selected-range blob and the remaining worktree edits stay visible.
--list (it expects a changelist name or id, not a message)..idea/workspace.xml and expecting it to fall back to git add . — it will exit with an error instead.When the default changelist has no <change> entries, run a dry-run with --list <name-or-id> only when the user intended a different changelist. If the intended changelist is empty, stop and report that there are no files to commit from that changelist.
After a successful commit, verify the committed file list:
git show --name-only --pretty=format: <commit>
git status --porcelain=v1~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.