trailmark

Builds and queries multi-language source code graphs for security analysis.

Updated May 17, 2026
One-click install
npx skills add https://github.com/irrit-us/agent_misc --skill trailmark-irrit-us
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: trailmark
Source: https://github.com/irrit-us/agent_misc/tree/main/skills/trailmark
Command: npx skills add https://github.com/irrit-us/agent_misc --skill trailmark-irrit-us

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires trailmark, and includes references (resource) components.

What problem does it solve? Security reviewers need to understand call paths, attack surface, and taint flow across unfamiliar or polyglot codebases, but manual source reading misses cross-module call relationships, blast radius, and privilege boundaries. ## Core Features & Use Cases - Code Graph Construction: Parses source code into a directed graph of functions, classes, calls, and inheritance edges with confidence levels, supporting auto-detection of multiple languages. - Pre-Analysis Passes: Enriches the graph with blast radius estimation, entry point enumeration, privilege boundary detection, and taint propagation, exposed as queryable subgraphs and annotations. - Security Query API: Provides callers_of, paths_between, complexity_hotspots, attack_surface, and entrypoint reachability queries, plus LLM-inferred annotations for assumptions and preconditions. - Use Case: Before a security audit of a polyglot Python/Rust service, build the full graph with language auto-detection, run pre-analysis, then trace tainted paths from untrusted entrypoints to sensitive functions like database queries. ## Quick Start Ask the agent to install trailmark with uv and run a pre-analysis on your target directory to map entry points, taint propagation, and complexity hotspots.

Frequently Asked Questions about trailmark

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a call graph for security analysis of a codebase?▼

Install trailmark with uv pip install trailmark, then run uv run trailmark analyze --language auto on the target directory, or use QueryEngine.from_directory in Python. The resulting graph supports queries like callers_of, paths_between, and complexity_hotspots.

How do I trace taint propagation from user input to sensitive functions?▼

Run engine.preanalysis() after building the graph, which propagates taint from untrusted and semi-trusted entrypoints through call edges. Query the tainted subgraph with engine.subgraph("tainted") or read TAINT_PROPAGATION annotations per node.

Does trailmark support polyglot repositories with multiple languages?▼

Yes, trailmark supports multi-language analysis. Use --language auto to auto-detect and merge all supported languages, or pass an explicit comma-separated list like python,rust. detect_languages() and supported_languages() report what the installed build handles.

When should I not use static call graph analysis?▼

Skip trailmark for single-file scripts where reading the file directly is faster, for runtime behavior analysis since trailmark is purely static, and for architecture diagrams not derived from code. Dynamic dispatch edges are marked uncertain and need manual review.

What is blast radius in code graph analysis?▼

Blast radius counts how many nodes are reachable downstream and upstream from each function, indicating how widely a bug would propagate. The preanalysis pass annotates every node and creates a high_blast_radius subgraph for functions with 10 or more downstream descendants.