Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is free and source-available on Github.
A few things worth calling out from each stage:
Scope first:
You can't test against a policy you haven't written down.
If your product doesn't have an explicit list of "the model should never do X," you don't have a target to aim your red team energy at.
Figure out your failure modes before you start writing test prompts, otherwise you're just vibes-based QA.
Datasets are built differently here:
Normal eval sets try to mirror your real user traffic.
Adversarial sets deliberately go looking for out-of-distribution stuff, the 1% of queries that are rare in production but catastrophic when they land.
A nice practical trick: hand-write a small seed set (a few dozen examples per failure category), then use it to bootstrap a bigger synthetic dataset.
And don't go straight for maximally toxic language either, that's the stuff your safety filters are already built to catch.
The implicitly adversarial, creatively phrased stuff is where the real gaps hide.
Diversity matters more than volume:
A thousand near-duplicate prompts asking the same jailbreak in slightly different words teaches you almost nothing.
You want range: short queries, long queries, direct questions, indirect ones, different demographics and topics, different phrasing styles.
Boring datasets give you a false sense of security.
Annotation is genuinely hard:
Automated safety classifiers are great at flagging the obvious stuff, but for fuzzy categories (what even counts as "hate speech" in every context?) you need human raters, and different raters will disagree based on their own background.
This isn't a bug you can code away, it's just the nature of judging language.
Build clear rating guidelines and expect some disagreement to persist.
The loop never really closes:
Every round of testing surfaces new failure categories, which feeds back into your scope definition, which generates new test data, which finds new failures.
It's less "one and done" and more "ongoing relationship you maintain with your model's worst tendencies."
Enter the red team
If adversarial testing is the disciplined workflow, red teaming is the "let's simulate an actual attacker" version of it.
Google's own AI Red Team is a good real-world reference point here: a dedicated group of people who roleplay as attackers (nation-state actors, hacktivists, plain old criminals, even malicious insiders) specifically against AI systems.
It's the traditional infosec red team concept, but with people who also understand how models fail, not just how networks get breached.
What's interesting is the categorized list of attacker tactics they focus on.
It's not just "try to make the bot say a slur." The real taxonomy looks more like this:
— the source for the TTP breakdown above.
— the broader security framework this all slots into.
Go break your model, gently, on purpose. Before someone else does it for you, less gently, in production, on a Friday xD
Disclaimer: This article was written by me; AI was used to fix grammar and improve readability.
/ | | | | | |
GenAI today is a race car without brakes. It accelerates fast -- you describe something, and large blocks of code appear instantly. But AI agents silently break things: they remove logic, relax constraints, introduce expensive cloud calls, leak credentials, and change behavior -- without telling you. You often find out in production.
git-lrc is your braking system. It hooks into git commit and runs an AI review on every diff before it lands. 60-second setup. Completely free.
In short, git-lrc helps Prevent Outages, Breaches, and Technical Debt Before They Happen
At a glance: · every commit…
SOCIAL SHARE CARD GENERATOR