Appearance
SEC417 / MD-PIP-GIT-UNPINNED
AI-native markdown installs Python packages from an unpinned git+https:// source.
Why It Matters
pip install git+https://... examples teach users to install directly from mutable repository state instead of a published release or a commit-pinned reference. In shared AI setup docs, those examples are easy to copy unchanged and are hard to reproduce later.
Trigger Shape
This rule applies to AI-native markdown surfaces such as SKILL.md, CLAUDE.md, Copilot instruction files, and similar instruction markdown already classified by the scanner.
The rule triggers when the same markdown line contains:
pip install,pip3 install, orpython -m pip installgit+https://- no immutable commit-style ref in the git URL
Mutable refs like @main still trigger.
Clean Cases
pip3 install "pkg @ git+https://github.com/org/repo.git@8a1a0ec"- published package install commands without a git URL
Example Trigger
bash
pip install git+https://github.com/pytorch/ao.gitbash
pip install -U git+https://github.com/facebookresearch/xformers.git@main#egg=xformersSafer Example
bash
pip3 install "pkg @ git+https://github.com/org/repo.git@8a1a0ec"How To Fix
- replace the git-backed install with a published package release
- or pin the git URL to an immutable commit reference