DEV Community

CopperSunDev profile picture

CopperSunDev

Engineering notes on AI code safety, static analysis, and what scanners can and can't catch.

Location Redwood City Joined Joined on  Personal website https://coppersun.dev/ github website
Tuning .brassignore: Suppressing a False Positive in Three Steps

Tuning .brassignore: Suppressing a False Positive in Three Steps

Comments
5 min read
From HIGH to Clean: Removing a Hardcoded HMAC Key in AI-Generated Python

From HIGH to Clean: Removing a Hardcoded HMAC Key in AI-Generated Python

Comments
5 min read
From SQL Injection to Clean: Fixing a B608 Finding in AI-Generated Flask Code

From SQL Injection to Clean: Fixing a B608 Finding in AI-Generated Flask Code

Comments
6 min read
What Static Analysis Cannot See: A Complete Map of the Limit

What Static Analysis Cannot See: A Complete Map of the Limit

Comments
10 min read
How to Run Your First BrassCoders Scan on AI-Generated Python

How to Run Your First BrassCoders Scan on AI-Generated Python

Comments
2 min read
What's the Cost of a SQL Injection in AI-Generated Code?

What's the Cost of a SQL Injection in AI-Generated Code?

Comments
2 min read
Can BrassCoders Catch Race Conditions in Async Python?

Can BrassCoders Catch Race Conditions in Async Python?

Comments
2 min read
Does BrassCoders Scan Node.js and TypeScript Code?

Does BrassCoders Scan Node.js and TypeScript Code?

Comments
2 min read
AI Coding Assistant Vendor Risk: What Your Security Team Should Ask

AI Coding Assistant Vendor Risk: What Your Security Team Should Ask

Comments
6 min read
The Trust Boundary Problem in AI-Generated Code

The Trust Boundary Problem in AI-Generated Code

Comments
5 min read
Business Logic Bugs Static Analysis Will Never Catch

Business Logic Bugs Static Analysis Will Never Catch

Comments
5 min read
What to Ask a Static Analysis Vendor When Your Team Uses AI Code

What to Ask a Static Analysis Vendor When Your Team Uses AI Code

Comments
4 min read
The Security Manager's Brief on AI-Generated Code Risk

The Security Manager's Brief on AI-Generated Code Risk

Comments
3 min read
Quantifying AI Code Risk: A Framework for Engineering Leaders

Quantifying AI Code Risk: A Framework for Engineering Leaders

Comments
4 min read
Building the Business Case for AI Code Scanning

Building the Business Case for AI Code Scanning

Comments
3 min read
What Python Versions Does BrassCoders Support?

What Python Versions Does BrassCoders Support?

Comments
2 min read
What's the Difference Between .brassignore and .gitignore?

What's the Difference Between .brassignore and .gitignore?

Comments
2 min read
What Does a BrassCoders Scan Output Look Like?

What Does a BrassCoders Scan Output Look Like?

Comments
2 min read
How Long Does a BrassCoders Scan Take?

How Long Does a BrassCoders Scan Take?

Comments
2 min read
How Do I Read .brass/ai_instructions.yaml?

How Do I Read .brass/ai_instructions.yaml?

Comments
2 min read
Does BrassCoders Work With pyproject.toml?

Does BrassCoders Work With pyproject.toml?

Comments
2 min read
Does BrassCoders Work With Django REST Framework?

Does BrassCoders Work With Django REST Framework?

Comments
2 min read
Can I Run BrassCoders Offline? Yes — Here's How

Can I Run BrassCoders Offline? Yes — Here's How

Comments
2 min read
What AI Coding Agents Leave Behind in Production

What AI Coding Agents Leave Behind in Production

Comments
4 min read
Your README Is an Attack Surface for AI Agents

Your README Is an Attack Surface for AI Agents

Comments
4 min read
Pydantic v2 Validation Bugs AI Assistants Write

Pydantic v2 Validation Bugs AI Assistants Write

Comments
4 min read
OWASP Agentic Top 10 for Python Developers

OWASP Agentic Top 10 for Python Developers

Comments
5 min read
MCP Tool Poisoning: What Static Scanners Miss

MCP Tool Poisoning: What Static Scanners Miss

Comments
4 min read
Coverage Theater: AI Tests That Don't Test Anything

Coverage Theater: AI Tests That Don't Test Anything

Comments
4 min read
AI Type Hints That Fool mypy and Break at Runtime

AI Type Hints That Fool mypy and Break at Runtime

Comments
4 min read
AI-Generated requirements.txt and Vulnerable Packages

AI-Generated requirements.txt and Vulnerable Packages

Comments
4 min read
AI-Generated Migrations: The Data Loss Pattern

AI-Generated Migrations: The Data Loss Pattern

Comments
4 min read
Why AI Code Breaks in Production: The Happy-Path Bias

Why AI Code Breaks in Production: The Happy-Path Bias

Comments
4 min read
Ruff Won't Catch Security Bugs Unless You Ask It To

Ruff Won't Catch Security Bugs Unless You Ask It To

Comments
5 min read
AI Code Security Scanners: Who Fills Which Role

AI Code Security Scanners: Who Fills Which Role

Comments
10 min read
What AI Recommends to Catch AI's Own Bugs

What AI Recommends to Catch AI's Own Bugs

Comments
3 min read
The Authorization Bug No Scanner Understands

The Authorization Bug No Scanner Understands

Comments
4 min read
Every AI Code Review Blind Spot Is the Same One

Every AI Code Review Blind Spot Is the Same One

Comments
4 min read
Brass-SEO's Case Study on Our Boundary Content

Brass-SEO's Case Study on Our Boundary Content

Comments
1 min read
The Slow Code No Scanner Can Flag

The Slow Code No Scanner Can Flag

Comments
3 min read
Security Misconfiguration Is a Runtime Fact

Security Misconfiguration Is a Runtime Fact

Comments
3 min read
What BrassCoders Sends to Its Servers (And What It Doesn't)

What BrassCoders Sends to Its Servers (And What It Doesn't)

Comments
7 min read
How to Triage a 500-Line AI Pull Request in 10 Minutes

How to Triage a 500-Line AI Pull Request in 10 Minutes

Comments
7 min read
Why Claude Code Emits Eight Findings When One Matters

Why Claude Code Emits Eight Findings When One Matters

Comments
4 min read
Copilot Does X. BrassCoders Does Y.

Copilot Does X. BrassCoders Does Y.

Comments
5 min read
BrassCoders Is Now Open Source on GitHub

BrassCoders Is Now Open Source on GitHub

Comments
5 min read
Your SAST Dashboard Has 1,500 Findings

Your SAST Dashboard Has 1,500 Findings

Comments
6 min read
The Regression That Shouldn't Have Shipped

The Regression That Shouldn't Have Shipped

Comments
5 min read
BrassCoders Paid is live: $12/dev/month for AI-powered noise reduction

BrassCoders Paid is live: $12/dev/month for AI-powered noise reduction

Comments
3 min read
Pre-Commit Hook That Stops AI-Coder Bugs

Pre-Commit Hook That Stops AI-Coder Bugs

Comments
6 min read
Semgrep vs. BrassCoders: Choose the Right Tool

Semgrep vs. BrassCoders: Choose the Right Tool

Comments
5 min read
Vibe Coding Without the Regrets: The Safety Net

Vibe Coding Without the Regrets: The Safety Net

Comments
5 min read
HIPAA and SOC 2 Teams Can't Use Cloud Code Review

HIPAA and SOC 2 Teams Can't Use Cloud Code Review

Comments
6 min read
An AI Reviewer Is Not a Pre-Merge Gate

An AI Reviewer Is Not a Pre-Merge Gate

Comments
4 min read
Triaging Static Analysis Findings: A Practical Methodology

Triaging Static Analysis Findings: A Practical Methodology

Comments
6 min read
Tuning BrassCoders with .brassignore: From 1500 Findings to 300

Tuning BrassCoders with .brassignore: From 1500 Findings to 300

Comments
5 min read
Why Bandit Catches 50% of AI-Coder Bugs (and Which Half)

Why Bandit Catches 50% of AI-Coder Bugs (and Which Half)

Comments
3 min read
BrassCoders vs CodeRabbit: Different Jobs

BrassCoders vs CodeRabbit: Different Jobs

Comments
4 min read
Using BrassCoders for SOC 2 Audit Evidence: What the .brass/ Artifacts Prove

Using BrassCoders for SOC 2 Audit Evidence: What the .brass/ Artifacts Prove

Comments
5 min read
SonarQube vs BrassCoders: Different Jobs, Different Layers

SonarQube vs BrassCoders: Different Jobs, Different Layers

Comments
4 min read
loading...