Zero-Knowledge Encrypted Notes App
Build an encrypted notes app whose server stores only ciphertext: encryption happens on the client, keys never leave the device,...
Build a developer tool that reads your functions, proposes meaningful test cases — happy paths, edge cases, failure modes — and lets you review every one before it lands.

A developer tool that analyzes your source code and proposes test cases for the behavior the code actually implements. It parses functions, reads their branches and inputs, and drafts test candidates — happy paths, edge cases, and failure modes — that you review, edit, and keep. The tool is a drafting assistant, not a correctness oracle: every generated test is a suggestion until a developer says otherwise, and nothing is committed or executed against your project without explicit approval.
>Human review is the product. The generator proposes tests; it does not guarantee they are correct, complete, or secure. Treat generated expectations as hypotheses to verify against the code, not as verdicts.
Writing tests is tedious and easy to skip. The result is coverage that looks fine on paper and misses the edge cases that actually break in production — empty inputs, boundary values, unexpected types, error paths. Two things make this worse: tests are usually written after the code, when the author’s assumptions are already baked in, and the chore of typing out boilerplate makes the important part — deciding what behavior matters — feel like an afterthought.
Existing test tools fall into two camps: coverage tools that tell you where you haven’t tested (but not what to write), and code-generation wizards that produce tests but make it hard to trust or review them. What’s missing is a tool that reads the code, proposes tests grounded in its actual branches and behavior, and keeps a human firmly in the loop.
The tool works in four stages: analyze, propose, review, and track.
Given a function or file, the tool first builds a structural understanding without an LLM:
if/elif, loops, try/except) and the inputs that reach themNone/null, boundary conditions in comparisonsThis structural pass is deterministic — it never hallucinates function names or behaviors, because it reads them straight from the AST.
The structural summary is then passed to a language model with a strict prompt: describe the behavior the code actually implements, propose tests for the happy path, the branches found in the AST, and plausible edge cases — and flag uncertainty instead of inventing expected outputs. The prompt treats the source code as untrusted input (see Security), so comments in the code cannot inject instructions into the generator.
Each proposed test comes with a short rationale: which branch or requirement it targets and what behavior it asserts.
The tool prints the proposed tests for review:
$ atg generate tests/test_parser.py::parse_lineFunction: parse_line(line: str) -> dict Found: 1 branch (if "=" in line), 1 loop (while), 1 except (ValueError)
[1] parse_line("a=b") → {"key": "a", "value": "b"} (happy path) [2] parse_line("") → raises ValueError (empty input) [3] parse_line("a=b=c") → {"key": "a", "value": "b=c"} (extra "=" in value) [4] parse_line("nokey") → raises ValueError (no "=" present) [5] parse_line(None) → raises TypeError (non-string input)
[a]ccept all [e]dit [r]egenerate [d]iscard [q]uit:
The developer accepts, edits, regenerates, or discards each test. Only accepted tests are written to the test file — and even then as regular code the developer can refine before the next pytest run.
After a test run, the tool can read coverage output and suggest tests for the branches still uncovered. This closes the loop: propose → review → run → propose again, until the developer decides the remaining gaps are acceptable.
generate and list subcommands.Language support beyond Python, CI integration, and coverage-driven re-generation are natural second-phase additions.
pip install atg → atg generate ...).Coverage tools report where you haven’t tested; test wizards produce tests without a review story. This tool is neither: it grounds proposals in the AST, explains why each test exists, and makes review the core workflow. It joins the site’s AI developer-tooling family — the AI-powered commit message generator and the AI-powered documentation generator for REST APIs — as a sibling that helps you verify code rather than describe it. The AI code review assistant for Python teams tells you a change may be wrong; this tool helps you prove what works.
| Tool type | Approach | Limitation |
|———–|———-|————|
| Coverage reporters | Show which lines/branches ran | Don’t tell you what to write |
| Test wizards / recorders | Generate tests from runs or templates | No behavior grounding; hard to trust |
| Generic AI code assistants | Suggest tests in-chat | No structure, no review workflow, prompt-injection risk |
| Property-based testers | Auto-generate inputs against properties | Need properties written first; not a replacement for unit tests |
This Idea’s differentiators: AST-grounded proposals, per-test rationale, coverage feedback, and a review-first workflow.
ast (stdlib) — structural analysis@pytest.mark.parametrize groups for related casesBrowse more Artificial Intelligence ideas · Innovation Ideas
Build an encrypted notes app whose server stores only ciphertext: encryption happens on the client, keys never leave the device,...
Build a personal portfolio tracker that records holdings and transactions, tracks cost basis and gains, and runs a configurable tax-loss...
Build a cross-platform app that scans and decodes QR codes, validates and previews payloads before acting, and organizes scan history...
Ready to level up? These ideas offer more complexity:
Published on September 7, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.
Published on September 7, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.