+ Wardline is a semantic-tainting static analyzer for Python. + It reads your source — never runs it — and checks every + trust-annotated function against one question: is the data this + function works with as trusted as it claims? +
+ +
+ Declare trust at the source with @external_boundary,
+ @trust_boundary, and @trusted. Undecorated
+ code stays in the developer-freedom zone — opt-in, fail-closed.
+
+ PY-WL-101 through PY-WL-111 catch trust-boundary
+ leaks, untrusted data reaching deserialization, exec, and shell sinks, and
+ validators that can’t say “no.”
+
+ Emit findings as SARIF for code-scanning dashboards or JSONL for tooling.
+ Gate CI with wardline scan --fail-on ERROR.
+
+ A built-in MCP server lets coding agents scan and explain taint. An + opt-in LLM triage judge, baselines, and waivers keep the signal clean. +
+The trust model
++ You annotate code with three decorators. Wardline propagates trust across + the call graph and grades every value on an eight-state lattice — a + function is only as trusted as the least-trusted value it returns. A leak + is the moment a less-trusted state reaches a producer that claims more. +
+ +@external_boundary
+ Marks a source of raw, untrusted input — data starts at + EXTERNAL_RAW.
+@trust_boundary
+ A validator that raises trust — and must have a path + that can say “no.”
+@trusted
+ A producer that claims a trust level. Wardline checks the + claim against what it actually returns.
+Part of Weft Federation
++ Wardline is one of five Weft Federation citizens — agent-first tooling built on + “humans on the loop, not in the loop.” Each is zero-config and + opt-in: enterprise-class for one-to-two-developer teams, without enterprise + weight. +
+Semantic-tainting static analysis for Python.
+ You are here + + +Code intelligence — entity-level facts about your codebase.
+ + +Issue tracking built for agent-driven teams.
+ + +Opt-in governance for the development lifecycle.
+ + +Requirements, traceability, and verification evidence.
+ +