zorn
Guarding Against AI Drift: My Automated Elixir Quality Checks
As I’ve leaned into AI code generation on LocalCents, the volume I ship has climbed, and my worry shifted from any single change to the long-term drift toward the median.
My response was to wire up more automated quality checks than I’ve ever run: compile/format hygiene, Credo (with checks from Jump, Oeditus, a bit of ExSlop, plus two project-local ones), Dialyzer, Boundary, Sobelow and the dependency audits, doc and test gates, all bundled into a single mix precommit.
Everything in the post links to how it’s actually wired in the repo, so you can steal whatever you’re missing. Curious what guardrails others here run that I’ve left off my list.
Most Liked
ChaseGilliam
If you’re using dialyxir to run dialyzer, I’d suggest checking out my library assay | Hex which uses incremental PLTs and will run check from a warm cache much faster. We use it precisely to prevent AI drift for cases the new type system still doesn’t catch. You can see a working GHA CI example here bandera/.github/workflows/ci.yml at main · Ch4s3/bandera · GitHub.
Sorry to promote my own thing here, but it has save my team a ton of CI hours.
zorn
ChaseGilliam
Let me know if you run into any issues. Note that the PLT file name and path will be different and you can’t reuse a classic PLT, the iPLT references files differently.
Last Post!
abrookewood
Hi Mike,
Just finished reading that and wanted to thank you for posting. It’s really comprehensive (way more than I currently do) and the inclusion of the GitHub Actions was much appreciated.
Popular in Blog Posts
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









