using-infino — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited using-infino (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.
Infino is a retrieval engine over data on object storage: full-text (BM25), vector, hybrid, and SQL search over one copy of the data, embedded in-process against a local path or bucket, or against a hosted Infino Cloud database. These tools (from the Infino MCP server) operate on a connected catalog of tables. The full toolset is always available; you are responsible for the data you change, and on Infino Cloud the API key's capabilities decide what the connection may do.
don't already know the table name. On a hosted connection a 404 here means the database does not exist yet: call infino_create_database.
column to target and what each result row carries. It does not report indexes; a search on a column with no index says so in its error.
product names, exact phrases. Ranked BM25. Use when the wording is known.
unknown. Pass filter ({column, query}) to first restrict to rows whose keyword column matches, then rank semantically within them.
Fuses keyword + vector in one ranking pass. A good default when unsure.
aggregates, filtering by exact column value. The search functions are callable inside SQL too (bm25_search(...), and vector_search(...) with a {{name}} placeholder plus embed: {name: "text"}).
filters and a tally, when you need the set or the number, not an order.
Prefer the dedicated search tools over hand-written SQL for retrieval; they embed the query and project results for you.
The write path, in order. Every write is one commit, durable when the tool returns.
infino_create_table. Use this shape:key or doc_id),so rows can be replaced or removed later by predicate;
indexes by default;
an embedding column sized to its own embedder; never type a dimension. Keep the result: its indexes field is the only record of which columns are indexed.
infino_add_documents, tens of rows per call, alwaysincluding the key. Rows that omit embedding are embedded from their text automatically, in one batch. A key that is not a column is an error, not silently dropped. Integers for int64 columns are fine as plain numbers.
infino_delete_documents with a key predicate(key IN ('a', 'b')), then infino_add_documents again. That is two commits with a brief window in between; say so if it matters.
infino_count orinfino_sql, then infino_delete_documents. There is no dry run.
infino_drop_table (with purge: true to reclaim storage),then create again. Irreversible.
infino_update_documents replaces matched rows 1:1 with the rows you pass; the match count must equal the row count. Use it for in-place edits of a known number of rows; use delete-then-add otherwise.
A tool call carries tens of documents. For a whole corpus, files, or a directory, use the infino CLI against the same URI (infino ingest <table> --file data.parquet or .ndjson; infino create-table --from-parquet to bootstrap a table from data) or an Infino SDK. The CLI is bring-your-own- vectors like the engine, so include the embedding column in the rows, or load text-only and search by keyword. Its own skills (infino skills install) cover the commands.
the table's vector width must match the embedder. A mismatch is reported with both numbers; fix INFINO_MCP_EMBED_MODEL or recreate the table.
_id comes back as a string; the engine assigns it. Use your own key columnto address rows.
for a key with write capability rather than retrying.
nothing was written: reissue the call. A 409 on create means it exists.
infino_describe_table and pass the column explicitly.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.