writing-graph-queries — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited writing-graph-queries (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.
-- Vertex: nodes table. Edge: edges table (source_id -> target_id).
-- Edge direction: source REFERENCES target (stg_orders -> raw_orders = stg depends on raw).
-- Upstream = follow -> . Downstream = follow <- .
CREATE PROPERTY GRAPH sqlprism_graph
VERTEX TABLES (nodes)
EDGE TABLES (edges SOURCE KEY (source_id) REFERENCES nodes (node_id)
DESTINATION KEY (target_id) REFERENCES nodes (node_id))Use COLUMNS (...) — never RETURN. Use {min,max} bounds — never unbounded +.
FROM GRAPH_TABLE (sqlprism_graph MATCH <pattern> COLUMNS (<expressions>))Vertices:
FROM GRAPH_TABLE (sqlprism_graph MATCH (n:nodes) COLUMNS (n.node_id, n.name, n.kind))Single-hop edges:
FROM GRAPH_TABLE (sqlprism_graph
MATCH (a:nodes)-[e:edges]->(b:nodes)
COLUMNS (a.name AS source, b.name AS target, e.relationship))Filtered (upstream of a model):
FROM GRAPH_TABLE (sqlprism_graph
MATCH (a:nodes WHERE a.name = 'stg_orders')-[e:edges]->(b:nodes)
COLUMNS (a.name AS model, b.name AS depends_on))Multi-hop (bounded, 1-3 hops):
FROM GRAPH_TABLE (sqlprism_graph
MATCH (a:nodes WHERE a.name = 'stg_orders')-[e:edges]->{1,3}(b:nodes)
COLUMNS (a.name AS model, b.name AS upstream))Shortest path (forward direction only):
FROM GRAPH_TABLE (sqlprism_graph
MATCH p = ANY SHORTEST
(a:nodes WHERE a.name = 'stg_orders')-[e:edges]->{1,10}(b:nodes WHERE b.name = 'raw_orders')
COLUMNS (a.name, b.name, path_length(p)))These are table functions, not GRAPH_TABLE queries:
SELECT * FROM pagerank(sqlprism_graph, nodes, edges)
-- Returns (rowid, score)
SELECT * FROM weakly_connected_component(sqlprism_graph, nodes, edges)
-- Returns (node_id, component_id)
SELECT * FROM local_clustering_coefficient(sqlprism_graph, nodes, edges)
-- Returns (node_id, lcc)More examples: See EXAMPLES.md for real-world queries (downstream consumers, PageRank with JOINs, fan-in/fan-out, root sources, leaf models).
COLUMNS not RETURN (parser error){1,N} not + or * (infinite results error)ANY SHORTEST): forward -> only (<- not implemented). Regular multi-hop <- works fine.file_id IS NULL) are included — filter in COLUMNS or post-processingWHERE inside MATCH, not outside~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.