batch-operations — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited batch-operations (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.
When the same edit needs to land in dozens of places, treat it as a controlled operation: scope it, preview it, run it, then prove nothing broke.
Fits well:
Poor fit:
Write the operation explicitly before touching anything:
Match: [the exact token or pattern]
Becomes: [the exact replacement]
Within: [glob of files in scope, e.g. "lib/**/*.js"]
Skip: [files to leave alone, e.g. "**/*.spec.js"]Always enumerate the impact first. Never start replacing blind.
# Which files contain it?
grep -rl 'oldName' lib --include='*.js'
# How many hits per file (drop the zero-hit files)?
grep -rc 'oldName' lib --include='*.js' | grep -v ':0$'
# See the actual lines, with line numbers
grep -rn 'oldName' lib --include='*.js'Hard rule: surface the list of affected files to the user before you modify a single one.
Plain text substitution:
# Linux / macOS
find lib -name '*.js' -exec sed -i 's/oldName/newName/g' {} +
# Windows (PowerShell)
Get-ChildItem -Path lib -Recurse -Filter *.js |
ForEach-Object { (Get-Content $_) -replace 'oldName','newName' | Set-Content $_ }Anything beyond a flat find/replace — inserting imports, wrapping blocks, reordering — should go through the Edit tool per file, processed in a stable order (alphabetical, or following the dependency chain) so the run is reproducible.
# No leftovers — this should print nothing
grep -rl 'oldName' lib --include='*.js'
# Spot-check that the new form landed correctly
grep -rn 'newName' lib --include='*.js' | head -5
# Let the build and suite catch anything subtle
npm run build && npm test| Change | What it looks like |
|---|---|
| Rebind an import | import { Old } everywhere becomes import { New } |
| Bump a version | "version": "2.3.0" synced across every manifest |
| Re-export a symbol | Append export { Thing } to each barrel file |
| Retire a call | oldApi(...) swapped for newApi(...) |
| Prepend a banner | License header added atop each source file |
| Shift a type style | interface Foo { rewritten as type Foo = { |
git stash first so the sweep is reversible.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.