Click any tag below to further narrow down your results
Links
dbt-doctor scans dbt projects for maintainability issues like missing documentation, weak test coverage, schema drift risks, and DAG problems. It generates a health score (0–100) and can run locally, in pre-commit hooks, or as a GitHub Actions quality gate.
- Detects 122 rules across 9 categories including missing docs/tests, stale models, naming convention violations, and governance gaps
- Integrates into CI/CD with GitHub Actions, outputs sticky PR comments, and can fail builds based on error/warning thresholds
- Configurable via presets (default/strict/enterprise), inline suppressions, and .dbt-doctor config file; respects .gitignore and .sqlfluff rules
Uncle Bob says he no longer reads the code generated by his AI agents to maintain productivity. Instead, he surrounds them with strict tests and metrics—unit tests, Gherkin tests, QA procedures, mutation testing, coverage—to ensure high confidence in their output.
- Uncle Bob Martin no longer reads code written by his AI agents, treating their output as a black box.
- He relies on a strict testing gauntlet—unit tests, Gherkin tests, QA procedures, mutation testing, and coverage thresholds—to catch problems instead.
- Code that fails any of these checks (e.g., coverage drops or a mutation test breaks) doesn't get merged, letting the test suite act as gatekeeper rather than manual review.
Armin Ronacher breaks down two layers of agent loops: the internal cycle where a model calls tools and edits code, and the external harness that re-queues and re-runs tasks until a goal is met. He says loops shine for experiments, code ports, and security scans, but they generate brittle, over-defensive code and threaten human understanding, even as defenders must adopt loops to match automated attackers.
- Autonomous agent loops tend to produce defensive, bloated code—stacking fallbacks and exception-handling instead of fixing root design flaws.
- Loops work best on bounded, verifiable tasks like code ports (Zig-to-Rust, MiniJinja-to-Go), performance tuning, and security audits, where results can be mechanically checked or judged by a second LLM.
- For production or mission-critical systems, Ronacher still prefers deterministic, fully "peelable" code over the unpredictable, living-system feel of loop-generated software.
- Despite the risks, defenders may be forced to adopt loop-based approaches simply to keep pace with automated attackers using the same technique.
Quodeq is an MIT-licensed tool that runs locally to scan codebases using AI across six ISO 25010 dimensions, mapping each finding to CWE identifiers and providing fix plans. It supports cloud and local models, outputs grades and violations in JSON, and includes a dashboard for exploring results and defining custom standards.
- Quodeq is a free, local, MIT-licensed AI scanner that grades code A–F across six ISO 25010 dimensions and maps findings to CWE IDs with concrete fix plans.
- It works with either cloud models (Claude, Gemini, Codex) or fully local models via Ollama, so scans can run with no telemetry or accounts.
- Sample output catches real-world issues like SQL injection, hardcoded credentials, missing rate limiting, and bare-except clauses, each with file/line references and code snippets.
- Install via pipx/pip and run from CLI or an Electron dashboard with heatmaps, trend graphs, and support for custom rule sets like Clean Architecture or DDD.
Quodeq is an AI agent that inspects your codebase using read-only tools, scores it against the six ISO 25010 quality dimensions, and maps issues to CWE classifications. It rewards good code as well as flags violations, then generates exact fixes you can paste into your IDE or AI assistant. You can run it offline with Ollama or connect to cloud models without sending your code offsite.
- Quodeq scores code with a Q² formula that rewards good patterns instead of just penalizing violations, mapping issues to ISO 25010 dimensions and CWE identifiers with exact fixes
- Runs fully local via Ollama or connects to cloud models (Claude, Codex, Gemini) without sending code offsite
- MIT licensed and fully open for inspection, extension, and custom quality criteria beyond the built-in ISO 25010/CWE checks
- Builds a structural model of the codebase across multiple languages/frameworks rather than acting as a simple linter
This article discusses the dangers of accumulating technical debt, especially in the context of rapid AI advancements. While it may seem beneficial to defer debt repayment for future improvements, this approach can lead to an overwhelming complexity that even AI tools can't manage. Developers must balance short-term gains with long-term sustainability.
- AI-assisted coding tempts developers to defer technical debt indefinitely, betting that future model improvements will make it cheap to fix later, with some codebases growing past 40,000 lines/day.
- This bet assumes AI capability growth continues indefinitely, but once it plateaus, accumulated debt becomes unfixable by any human or AI.
- The result is "subprime" technical debt—debt whose risk was mispriced on the assumption of endless future gains, setting up an eventual reckoning.
The article discusses how the rise of AI tools, particularly LLMs, has affected software engineering and data work. While some engineers are concerned about the declining quality of code, data professionals find value in these tools for generating quick, low-maintenance solutions. It emphasizes the need for careful evaluation of the new data generated by these systems.
- Fast, disposable code from LLMs isn't a problem for data work the way it is for engineers building long-term systems, since data scientists often throw away code after one use anyway
- LLMs are genuinely useful for building data extraction tools (e.g., pulling usable data from messy PDFs), unlocking previously inaccessible data sources with minimal effort
- Using LLMs to generate synthetic data is risky and shouldn't replace real human data, especially in user experience research
- As LLMs improve at generating and explaining code, data professionals need less hand-holding from software engineers for low-risk coding tasks, shrinking the traditional divide between the two roles