Skip to content
Back to skills

Tool Pin Drift

ASecurity

Check pinned external tool versions against npm and GitHub releases. Use for the weekly heartbeat tool-pin drift scan.

  • 6 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 1, 2026
devopspythonshellbashgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 1, 2026

npx -y skills add jasoncarreira/mimir --skill tool-pin-drift --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tool Pin Drift?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tool Pin Drift
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jasoncarreira-tool-pin-drift/badge)](https://www.skillsdirectory.com/skills/jasoncarreira-tool-pin-drift)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tool-pin-drift
description: Check pinned external tool versions against npm and GitHub releases. Use for the weekly heartbeat tool-pin drift scan.
success_criteria:
  tool_call:
    name: Bash
    args:
      command_glob: "python3 */.mimir_builtin_skills/tool-pin-drift/scripts/check_tool_pins.py"
---

<!-- desc: Run the immutable, data-driven npm and GitHub tool-pin drift checker and consume its per-target JSON results. -->

# Tool Pin Drift

Checks the source-controlled targets in `scripts/targets.json` and emits one JSON
document. Each target reports `pinned_version`, `latest_version`, `drifted`,
`status`, and `error`; one failed lookup does not prevent the remaining targets
from running.

## Invocation

The deployment declares and invokes exactly this command, with no arguments,
shell operators, pipes, or redirection:

```bash
python3 /mimir-home/.mimir_builtin_skills/tool-pin-drift/scripts/check_tool_pins.py
```

The corresponding `scheduler.yaml` declaration is:

```yaml
shell_commands:
  - exec: python3
    path: /usr/local/bin/python3
    script: /mimir-home/.mimir_builtin_skills/tool-pin-drift/scripts/check_tool_pins.py
```

The declared `path` is deployment-specific and must name the Python interpreter
that deployment actually runs. The mimirbot and muninn containers currently use
`/usr/local/bin/python3`; a different or incorrect path is refused rather than
falling back to another interpreter.

The script intentionally runs `npm` and `gh` as ordinary subprocesses. Those
commands must not be added to the shared `maintenance` shell profile. Declaring
this immutable builtin script grants its subprocess behavior only to the job
whose operator-owned scheduler entry names it.

## Output

`status` is `drift`, `no_drift`, or `error`. On an error, `latest_version` and
`drifted` are `null`, and `error` contains the per-target failure. The process
still checks every other target and exits successfully after emitting the full
result.

Files in this skill

  • SKILL.md1.9 KB
  • scripts/check_tool_pins.py4.7 KB
  • scripts/targets.json1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.