AI coding agents can resolve real-world software issues, yet they frequently introduce regressions -- breaking tests that previously passed. Current benchmarks focus almost exclusively on resolution rate, leaving regression behavior under-studied. This paper presents TDAD (Test-Driven Agentic Development), an open-source tool that performs pre-change impact analysis for AI coding agents. TDAD builds a dependency map between source code and tests so that before committing a patch, the agent knows which tests to verify and can self-correct. The map is delivered as a lightweight agent skill -- a static text file the agent queries at runtime. Evaluated on SWE-bench Verified with two open-weight models running on consumer hardware (Qwen3-Coder 30B, 100 instances; Qwen3.5-35B-A3B, 25 instances), TDAD reduced regressions by 70% (6.08% to 1.82%) compared to a vanilla baseline. In contrast, adding TDD procedural instructions without targeted test context increased regressions to 9.94% -- worse than no intervention at all. When deployed as an agent skill with a different model and framework, TDAD improved issue-resolution rate from 24% to 32%, confirming that surfacing contextual information outperforms prescribing procedural workflows. All code, data, and logs are publicly available at https://github.com/pepealonso95/TDAD.
Figures & tables
Figure 1. Agentic workflow with TDAD . After implementing changes, the agent queries TDAD ’s test map to identify at-risk tests, verifies them, and self-corrects if regressions are detected. The dashed arrow represents the self-correction loop.
Figure 2. TDAD pipeline. Stage 1 indexes the repository into a code–test graph. Stage 2 exports impacted tests as a static test map. The agent uses grep on the test map to find tests to verify.
Type
Entity
Key attributes
Node types
File
Python source file
path, content_hash
Function
Top-level function
name, file, lines, signature
Class
Class definition
name, file, bases
Test
Test function/method
name, file, is_test
Edge types
Table 1. Graph schema: node and edge types.
Strategy
Weight
Description
Direct
0.95
Directly tests changed code
Transitive
0.70
1–3 call-chain hops to changed code
Coverage
0.80
File-level dependency
Imports
0.50
Imports changed files
Table 2. Impact analysis strategies and base weights (balanced profile).
Phase
Config
Description
1
Vanilla
Default prompt, no TDD or graph
1
TDD Prompt
Adds TDD workflow instructions
1
GraphRAG+TDD
TDD + SKILL.md + test_map.txt
2
Baseline
OpenCode agent, no TDAD skill
2
TDAD Skill
OpenCode + TDAD skill + NetworkX
Table 3. Experimental configurations across both phases.