Find hidden assumptions in code — before they break production.
A lightweight, deterministic static analyzer for JavaScript and Python that surfaces unsafe assumptions, implicit contracts, and fragile logic with clean, human-readable explanations.
Faultline analyzes your code and highlights assumptions you didn’t realize you were making.
Examples:
- Assuming
fetch().json()always succeeds - Assuming
dict.get()never returnsNone - Assuming a promise resolves to a specific type
- Assuming chained calls are always safe
Instead of flooding you with noise, Faultline collapses entire chains into one clean, actionable finding.
Most bugs don’t come from syntax errors.
They come from assumptions.
Faultline focuses on:
- 🔍 Signal over noise
- 🧠 Human-readable explanations
- 📏 Deterministic output (same input → same results)
- 🧩 Easy extensibility for future languages
- ✅ JavaScript & Python support
- ✅ Deterministic findings
- ✅ Chain suppression (no duplicate noise)
- ✅ Friendly titles + explanations
- ✅ Suggested fixes
- ✅ Severity levels
fetch().then(res => res.json())Response.json()/Response.text()- Promise resolution inference
- Optional chaining handling
requests.get(...).json()dict.get()→ possibleNone- Safe built-in inference (MVP)
- Clean, modern layout
- Loading animation
- Side-by-side editor & actions
- Analyze / Clear / Export
- No backend calls — browser-safe
- Paste your code
- Select language (JS / Python)
- Click Analyze
- Review assumptions instantly
node index.js --lang js --file example.js
node index.js --lang python --file example.py --json
🧪 Testing
npm test
npm run test:coverage
All analyzers are fully tested with deterministic snapshots.
## 🔮 Future Plans
- Faultline is highly upgradable.
- Planned / on-demand expansions:
## 🌍 More languages (Go, Rust, Java, Lua)
## 📜 External rule definitions (JSON-driven)
## 🧠 Smarter inference via AST engines
## 🎨 More UI polish & exports
## 🧪 CI + GitHub
- New features can be added on demand without redesigning the core.
## 🤝 Contributing
- PRs are welcome.
- If you want to
- new language
- New inference rules
- UI improvements
- Open an issue first — let’s discuss.
## 📜 License
MIT License © 2026
Built with intent, not noise.
## ⚡ Faultline —
Because assumptions are where bugs are born.