Thesis documents a structural-honesty linter for three programming languages, illustrating its unique findings and implementations.
This paper documents furqan-lint, a structural-honesty linter for Python, Rust, and Go, as the reference implementation of the Bayyinah Audit Framework v3.0 applied to its own substrate. Five checks are derived from the Furqan programming language's structural-honesty primitives (D24 all-paths-return, D11 status-coverage, R3 zero-return / ring-close, return-None mismatch, and additive-only public-surface diff) and translated into static-analysis findings on languages that lack those compile-time semantics. The empirical gap relative to ruff and mypy is specific and case-illustrated: status-coverage propagation through narrowing return-type annotations (where each function passes mypy individually but the chain across functions strips the original incompleteness), public-surface deletion across versions (mypy operates on one version at a time), and zero-return ring-close on unannotated code (the majority of production Python). Three implementation surfaces are documented: a Python adapter on the standard ast module, a Rust adapter on tree-sitter behind the [rust] extra, and a Go adapter on a custom goast binary behind the [go] extra. Coverage is asymmetric and documented; some checks are not-applicable on languages whose compilers reject the firing condition. The empirical record covers twenty-seven releases shipped over two days (v0.1.0 through v0.8.5, May 2 to 3, 2026), each governed by an audit chain applying the framework's discipline. Notable structural decisions include the v0.4.1 retirement of the v0.1.0 D11 monkey-patch through an upstream parameter, the v0.7.2 prompt-grounding self-check that scope-narrowed a planned Rust analogue of return-None mismatch to nothing because the firing condition was unreachable on rustc-accepted source, and the v0.8.5 attribution corrective. A theorization of additional adaptable languages (TypeScript, Kotlin, Swift, Scala, C#, C++23, OCaml/F#, Zig, Java, Elixir, Haskell, Ruby) names parser libraries and producer-predicate shapes for each. Limitations across checker coverage, language coverage, methodology, and tooling integration are named explicitly; §9.6 names systematic comparator-analysis study as successor work to convert the case-illustrated empirical-gap claim into a corpus-validated claim. A currency addendum summarises post-v0.8.5 substrate advances (ONNX adapter in v0.9.0, Sigstore-CASM Gate 11 in v0.10.0 / v0.11.0) without extending the per-version analytic record.
No takes yet. Share an insight, caveat, or question.
Bilal Syed Arfeen (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: