abf-8c2c36 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited abf-8c2c36 (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.
CRITICAL: ABF MCP tools are available and MUST be your default for all code exploration. Usingread_file,grep_search, orlist_dirwhen ABF tools exist is always wrong.
abf_chunk (by symbol) or abf_symbols firstabf_search (exact/keyword/semantic modes)abf_project_overview or abf_dependenciesabf_search mode: "semantic" or abf_file_summary| What you want to do | CORRECT tool | WRONG approach |
|---|---|---|
| Understand the project | abf_project_overview | list_dir + reading package.json |
| Find a function/class definition | abf_search mode: exact | grep_search |
| Read a specific function | abf_chunk symbol: "name" | read_file entire file |
| See what a file exports | abf_symbols | read_file + manual scan |
| Find files about a topic | abf_search mode: keyword | multiple semantic_search calls |
| Trace what a file imports | abf_dependencies | grep_search for import statements |
| Who calls this function? | abf_impact symbol: "name" | grep_search with manual filtering |
| Understand project style | abf_conventions | reading eslint + tsconfig + prettier |
| Get context around a file | abf_context_bundle | 5–10 read_file + abf_symbols calls |
| Search file descriptions | abf_file_summary | no native equivalent |
| Multi-strategy search in one call | abf_search_multi | 3 separate abf_search calls |
| Typed impact (TS/JS, classified) | abf_impact_typed | abf_impact + manual classification |
| Risk/blast radius of a file | abf_blast_radius | abf_dependencies chains by hand |
| Find tests covering file/symbol | abf_related_tests | abf_search with manual filtering |
| Preview an edit before writing | abf_preview_changes | guessing — then write & hope |
| Plan a rename/move/extract | abf_refactor_plan | start editing without an ordered plan |
| Apply an edit (when writes on) | abf_apply_edit | unchecked file write |
| Verify TS/JS after editing | abf_diagnostics | full tsc build |
| Jump to a definition (TS/JS) | abf_definition | abf_search + abf_chunk |
| Get a symbol's type / docs | abf_hover | read_file + manual type inference |
| Trace caller/callee chains | abf_call_graph | repeated abf_impact_typed walks |
| Git history / blame / diff | abf_git | run_in_terminal with git commands |
| Index status or rebuild | abf_index | nothing |
1. abf_project_overview ← ALWAYS first — architecture, stack, entry points
2. abf_conventions ← style, patterns, naming before writing anything
3. abf_search (keyword mode) ← find relevant files for the task1. abf_symbols (file) ← see all exports/functions first
2. abf_chunk (symbol: "name") ← read exactly the function you need
only use read_file if you need the ENTIRE fileabf_context_bundle (entry file, depth: 2)
← full source of entry + signatures of all deps in ONE call
← replaces 5–10 read_file callsabf_impact (symbol: "functionName")
← ALL files and lines that reference it — never skip thisFor TypeScript/JavaScript projects prefer abf_impact_typed — it classifies each reference (definition / call / import / type_ref / jsx) with a confidence level.
1. abf_blast_radius (file) ← scope: who breaks if this changes?
2. abf_call_graph (symbol) ← what calls / is called by this code?
3. abf_refactor_plan (intent + symbol) ← ordered, collision-checked edit plan
4. abf_preview_changes (file, new_content) ← diff + symbol/import deltas + risk flags
5. abf_apply_edit (file, hash, content) ← atomic write (only when ABF_ENABLE_WRITES=1)
6. abf_diagnostics (file) ← TS/JS errors after the write
7. abf_related_tests (file or symbol) ← which tests must stay greenabf_definition (file, symbol) ← jump to the declaration
abf_hover (file, symbol) ← exact type signature + JSDocUse these two before calling any external function whose shape you are not 100% sure of — they prevent the most common hallucination class (invented signatures).
Exact name known? → abf_search mode: "exact"
Exploring a concept? → abf_search mode: "keyword"
By file purpose? → abf_file_summary (searches LLM descriptions)
Semantic match? → abf_search mode: "semantic"abf_project_overviewReturns tech stack, frameworks, entry points, folder structure, language distribution, architectural patterns. Required params: none Use it: at the start of every new task in an unfamiliar codebase.
abf_searchmode: "exact" — ripgrep regex, returns matching lines with contextmode: "keyword" — ranks every file by keyword density, best for explorationmode: "semantic" — embedding similarity (requires Ollama index)path_filter — narrow scope (e.g. "src/**/*.ts")abf_chunkRead a specific function/class without loading the full file.
symbol: "functionName" → returns the full body of that symbolchunk_index for a specific sectionabf_symbolsAll exports, functions, classes, interfaces in a file with line ranges. Call this before abf_chunk to see what's available.
abf_context_bundleBiggest token saver. Returns entry file + signatures/source of all its imports in one call.
include: "smart" (default) — full source for entry, signatures for depsinclude: "full" — full source for everythingfocus_symbol — only follow imports relevant to one functiondepth: 0–4 — how far to follow the import graphabf_dependenciesReturns both imports (what this file uses) and reverse dependencies (who imports this file).
abf_impactAll files and specific lines that reference a symbol. Always call before modifying a function, class, or exported type.
abf_impact_typedAST-aware impact analysis for TypeScript/JavaScript using ts-morph. Classifies every reference and reports a confidence level.
symbol — requiredfile_path — optional, scopes to that file's import closureinclude_kinds — filter to e.g. ["call", "import"]definition, import, export, call, type_ref, jsx, referencehigh (TS AST classification) vs low (regex fallback for non-TS files)Prefer this over abf_impact whenever the codebase is primarily TS/JS.
abf_blast_radiusBFS over the reverse-import graph for a single file. Returns impacted files per depth level, distinct affected symbols, test files in scope, and a weighted break_risk_score (0–100) plus low/medium/high label and a recommendation.
file_path — requireddepth — 1–5 (default 3)include_tests — count test files separatelyabf_related_testsHeuristically ranks test files most likely to cover a given source file or symbol. Scoring combines name match, importer relationship, and symbol mentions.
file_path — match by name and import edgessymbol — match by mentions inside test bodies[high|medium|low/<score>] with reasons (name match, imports source, mentions "<symbol>")abf_preview_changesRead-only preview of an edit. Computes a unified diff plus structured deltas: added/removed/modified symbols, import diffs, risk flags (breaking: for removed exports), suggested checks, and a probe for external usage of removed exports. Does not write anything.
file_path + new_content (required)old_content — optional override; otherwise reads the current fileprobe_external_usage — default trueabf_refactor_planRead-only ordered edit plan for refactors. Plans only — does not modify files.
intent: "rename" — fully implemented: locates target, detects namingcollisions, returns a source-file-first ordered list of files to edit with per-file occurrence counts.
intent: "move" | "extract" | "split" — returns structured guidance.abf_preview_changes per file before applying.abf_search_multiRuns up to 8 sub-queries (exact, keyword, semantic) in one call and merges results with weighted, normalized scoring. Each query carries its own mode and weight.
keyword (with reduced weight) if semantic is unavailable.abf_search calls.abf_diagnosticsTypeScript diagnostics (errors, warnings, suggestions) for one file or all git-tracked TS/JS files. Uses ts-morph against the project's tsconfig.json when present, otherwise reasonable defaults.
file_path — scope to one file (recommended after every TS/JS edit)max_files / max_diagnostics — caps for large projectsinclude_warnings — set to false for errors-only outputabf_definitionGoto-definition powered by the TypeScript language service. Returns absolute location(s) plus an optional source preview.
file_path + symbol — find the named identifier in that file and resolve itfile_path + line + column — position-based lookuppreview_lines — how many lines of source to inline (default 8, set 0 for none)abf_hoverReturns the inferred type signature, JSDoc comments, and JSDoc tags for an identifier — the IDE-style "hover tooltip" answer.
abf_definition (file_path + symbol or line/column)of guessing.
abf_call_graphTransitive caller/callee analysis for a function or method (TypeScript / JavaScript only). Walks the graph in BFS up to a configurable depth.
direction: "callers" | "callees" | "both" (default both)depth — 1 to 4 hopscall, instead of repeated abf_impact_typed rounds.
abf_apply_editThe only ABF tool that writes to disk. Disabled unless the operator sets ABF_ENABLE_WRITES=1 on the MCP server process. Atomic (writes to a temp file and renames) and refuses to overwrite stale content.
file_path + new_content — requiredexpected_old_hash — sha256 of the current on-disk contents (use "" forbrand-new files combined with create_if_missing: true)
dry_run: true — validate hash and inputs without writingabf_preview_changes first, and follow up withabf_diagnostics + abf_related_tests to verify.
abf_conventionsDetected naming patterns, design patterns, folder structure conventions — with confidence scores and examples.
abf_file_summaryFull-text search across LLM-generated file descriptions (FTS5/BM25 ranked). Use when you want to find files by purpose, not by exact code text.
match_mode: "or" (default) — broader resultsmatch_mode: "and" — stricter matchingabf_gitStructured git output — no terminal needed.
action: "log" — recent commitsaction: "file_history" — commits touching a fileaction: "blame" — line-by-line authorshipaction: "diff" — staged, unstaged, or between commitsabf_indexaction: "status" — index health and file countaction: "rebuild" — full re-indexaction: "update" — incremental updateaction: "summarize" — generate LLM summaries (requires Ollama)abf_pingReturns server version and project root. Use to verify ABF is connected.
abf startabf_search returned nothing, abf_chunk didn't find the symbol), fall back to native tools for that specific lookup. Do not skip ABF preemptively — only fall back _after_ ABF has been tried.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.