version-impact — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited version-impact (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.
Pre-flight check for any PR that might touch a published package. It does not call out to any service; it just runs git, cat, grep, and jq against the local checkout and reports what it sees.
The CI workflow .github/workflows/pr-version-check.yml runs the same deterministic logic via .github/scripts/version-impact.sh and posts a sticky comment on the PR. Running this skill locally is a faster preview of that same comment.
packages/locally
git diff <base>...HEAD --name-only (default base: origin/main).a. Classifies the touched files into a change-kind bucket (major / minor / patch / none). b. Reads the current version from package.json or pyproject.toml. c. Diffs that version against the file at <base> to see if it was already bumped, and whether the bump matches the recommended kind. d. Checks whether the package's local CHANGELOG.md got a new entry for the new version. e. Greps the root CHANGELOG.md and docs/ for hardcoded references to the old version that may now be stale.
From the repo root:
bash .github/scripts/version-impact.shTo diff against a different base:
BASE_REF=origin/release-0.3 bash .github/scripts/version-impact.shTo get JSON instead of markdown (useful for piping into other tooling):
FORMAT=json bash .github/scripts/version-impact.shThis is the authoritative mapping the skill and the workflow share. If the workspace layout changes, both this section and the matching case in .github/scripts/version-impact.sh must be updated.
| Path glob | Package | Publish target |
|---|---|---|
packages/cli/** | @neurodock/cli | npm |
packages/core/** | @neurodock/core | npm |
packages/native-host/** | @neurodock/native-host | npm |
packages/extension-browser/** | @neurodock/extension-browser | private (bumps still flagged) |
packages/mcp-chronometric/** | neurodock-mcp-chronometric | PyPI |
packages/mcp-cognitive-graph/** | neurodock-mcp-cognitive-graph | PyPI |
packages/mcp-guardrail/** | neurodock-mcp-guardrail | PyPI |
packages/mcp-task-fractionator/** | neurodock-mcp-task-fractionator | PyPI |
packages/mcp-translation/** | neurodock-mcp-translation | PyPI |
packages/clinical/** | neurodock-clinical | PyPI |
packages/evals/** | neurodock-evals | PyPI |
packages/skills/*/** | skill bundle (no semver; flag SKILL.md frontmatter changes) | n/a |
plugins/*/** | community plugin (version lives in the plugin) | n/a |
profiles/* | profile preset | n/a |
docs/** | documentation site | n/a (but flagged if referencing a stale version) |
.github/**, root markdown, scripts/** | meta | n/a |
Per-package, look at what was touched inside the package directory:
schemas/ lost a field or renamed a required fieldpackages/cli/src/commands/)src/tools/ orsrc/server.py-level registration removed)
src/tests/**, *.test.ts, *.spec.ts, test_*.py)README.md, CHANGELOG.md ofolder entries)
tsconfig*.json, pytest.ini, vitest.config.ts)The detection is conservative — when in doubt the skill picks the higher bump kind and explains why in the report so the contributor can override it if the heuristic was too cautious.
After identifying touched packages, the skill greps for:
docs/**/*.md* file that mentions the package's old versionstring (v0.4.2, 0.4.2) — flagged as potentially stale.
CHANGELOG.md — if a publish-path package's version changedin this PR but the root index has no entry for the new repo-wide release, that gets flagged too (only an info-level note; root-index entries are batched and not required per-PR).
CHANGELOG.md — if the version bumped but no newentry exists for that version, that's a hard "missing CHANGELOG" flag.
.changeset/*.md — if no changeset file exists and a publish-pathpackage's source changed, the skill suggests running pnpm changeset.
The skill prints a markdown report with these sections, in order:
## Touched packagesA table. Columns: package | files changed | recommended bump | current version | suggested new version | status.
Status is one of:
ok — version bumped, CHANGELOG presentneeds-bump — source changed, version unchangedbump-mismatch — version bumped but smaller than recommendedmissing-changelog — version bumped but no CHANGELOG entryno-changeset — no .changeset/*.md for a publish-path change## CHANGELOG checkPer-package one-line entries:
✓ packages/cli/CHANGELOG.md — entry for v0.4.4✗ packages/mcp-cognitive-graph/CHANGELOG.md — needed for v0.0.4## Docs cross-references that may be staleEach line: <file>:<line> — references "v0.4.2" — should be "v0.4.3"? If no stale references found, prints (none).
## Suggested next stepsA numbered checklist the contributor can paste into the PR or follow locally. Examples:
[ ] Bump @neurodock/cli from 0.4.3 to 0.4.4 in packages/cli/package.json[ ] Add a CHANGELOG entry under packages/cli/CHANGELOG.md[ ] Run pnpm changeset and commit the new file under .changeset/like a deletion will be flagged as "major" even when it's a no-op refactor. The report is advisory.
"starting in v0.4.0" is intentional and does NOT need updating when the package moves to v0.5.0 — review each flagged line.
Keep it factual. No marketing copy, no enthusiasm markers. The output goes into a PR comment that contributors read while they're already tired; lead with what's wrong, not what's right.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.