BrassCoders writes .brass/ai_instructions.yaml sorted by severity with line numbers and fixes. Claude Code reads it as a work queue: severity sets order, line number anchors the location, remediation states the fix pattern. Structure beats open-ended review. Read more → https://brss.fyi/1c3z
Copper Sun Brass Coders
AI models embed hardcoded credentials to make example code runnable. BrassCoders found HMAC keys and SMTP passwords in 2 of 15 generated files — both from realistic prompts. Move secrets to environment variables. Catch what your AI coder misses → https://brss.fyi/slom
BrassCoders writes .brass/ai_instructions.yaml with severity, file path, line number, and remediation for every finding. A chat prompt gives none of that—no persistent state, no line anchors, no format the tool expects. That's the gap the findings file closes. Read more → https://brss.fyi/z7v4
BrassCoders flagged 53 findings across 15 AI-generated files. Triage confirmed 9 real issues. The gap isn't noise—it's the scanner working as designed. Structural rules can't infer context. The triage layer does. Read more → https://brss.fyi/hhqn
BrassCoders found command injection in 2 of 15 AI-generated files: subprocess with shell=True on caller input, os.system with f-string paths. Both execute arbitrary commands on attacker input. https://brss.fyi/1alx
Static analysis finds what rules catch. AI finds what context infers. Research backs the hybrid: deterministic scanner first, model second. BrassCoders runs 12 scanners, writes findings to .brass/ai_instructions.yaml, and lets your editor's AI assistant start from confirmation https://brss.fyi/acqq
LLM reviewers vary run to run. BrassCoders returns identical findings every commit. A 2025 benchmark backs running both: deterministic scanners pinpoint exact lines; LLMs catch intent. Offline, free, Apache 2.0. Read more → https://brss.fyi/yzie
Research sorts AI-generated Python bugs into eight classes. Deterministic scanners catch the structural ones—hallucinated imports, performance anti-patterns, secrets, syntax errors. Intent-dependent bugs (logic errors, missing cases) need human or LLM review. https://brss.fyi/8uli
Developers felt 20% faster with AI tools. METR's 2025 trial measured them 19% slower. The gap is unreviewed code. BrassCoders runs 12 deterministic scanners on every commit so the safety check doesn't depend on feeling. Read more → https://brss.fyi/uqs0
A security scanner that phones home has a trust problem. BrassCoders telemetry (2.1.0) is off by default, asked once, and never includes code, paths, or secrets. Every event writes to a local log before it sends, so you can check. Read more → https://brss.fyi/13ar
Veracode: 45% of AI code ships an OWASP Top 10 flaw. CodeRabbit: 1.7x more issues per PR. USENIX: ~20% of AI-suggested packages don't exist. The data is clear. BrassCoders catches what AI coders miss before merge. Read more → https://brss.fyi/v2l5
Vibe coding ships fast. So do the O(N²) loop, hardcoded secret, and hallucinated import. BrassCoders catches all four bug classes in 30 seconds. pip install brasscoders → https://brss.fyi/kdj2
All 12 scanners run free. Paid ranks findings, not detects them. Stay free if 300 deduplicated findings fit your workflow. Upgrade to $12/dev/month when volume becomes the bottleneck. Start here → https://brss.fyi/8iv3
BrassCoders OSS finds all bugs; Paid ranks them. 12 scanners run free. A typical 1500+ raw findings becomes 300 after dedup, then 50-80 after ranking. $12/dev/month. Read more → https://brss.fyi/14vc
AI writes as much JavaScript and TypeScript as Python. BrassCoders now scans .js/.ts/.jsx/.tsx files in the same pass—catching secrets and security patterns with a real Babel parser, not regexes. Mixed repos, one command. Read more → https://brss.fyi/1s8q
AI assistants drop real names, emails, SSNs into test fixtures. Some synthetic, some memorized from training data. BrassCoders flags PII-shaped strings before they hit your repo. Redacted at scan time—safe to hand to Claude Code or Cursor. Read more → https://brss.fyi/twqq
1 in 5 AI-generated SQL snippets ships a SQL injection hole, per Veracode's 2025 test of 100+ models. A 2022 study put Copilot's rate at 37%. Bandit's B608 check catches string-built SQL before it merges, one of 12 scanners in brasscoders. Read more → https://brss.fyi/116u
AI-generated tests can hit 80% coverage on toy benchmarks and under 2% on real code. Coverage counts execution, not verification. A test that asserts nothing raises coverage as much as one that checks everything. Catch what your AI coder misses → https://brss.fyi/1p0o
BrassCoders bundles six open-source scanners — Bandit, Pylint, Pyre/Pysa, Semgrep, ast-grep, detect-secrets — and runs them in one pass. One install, one ranked YAML output, no config sprawl. https://brss.fyi/nlnj
AI assistants hardcode realistic API keys into example code. BrassCoders bundles detect-secrets and adds custom patterns for 20+ credential types—OpenAI, Anthropic, SendGrid, and more. Redacted at scan time, never transmitted. pip install brasscoders → https://brss.fyi/10z3
BrassCoders now catches all 11 documented vulnerabilities in OWASP PyGoat, up from 7 in May. SQL injection, insecure deserialization, command injection, and eval() abuse all now flagged at the correct file and line. Pinned commit, reproducible scan. Read more → https://brss.fyi/16di
AI assistants write O(N²) loops that pass tests and crawl at scale. BrassCoders flags four patterns—string concatenation, list.insert(0), nested-loop joins, unbounded reads—that Bandit and Semgrep miss. Deterministic, not profiled. Catches them before merge. Read more → https://brss.fyi/tpqt
AI coders hallucinate imports. brasscoders scan --check-package-hallucination catches them before they ship. One flag flags packages that don't exist on PyPI—the only OSS check that calls the network. Typosquatters are waiting. Read more → https://brss.fyi/1d7u
BrassCoders OSS core makes zero network calls. Paid plan sends one request: redacted findings + project signature. Never raw source code. Verify it yourself. Read more → https://brss.fyi/qaeg
Scan a 500-line AI PR in 10 min. Run brasscoders locally, pipe the ranked YAML to Claude Code or Cursor, walk each finding to a diff. Reviewer time stays flat whether the PR is 100 or 1000 lines. Read more → https://brss.fyi/1jqy
AI assistants leak secrets in generated config files and test fixtures. BrassCoders detects 20+ canonical formats (AWS keys, GitHub tokens, OpenAI creds, PEM keys, etc.) plus high-entropy fallback. Catch what your AI coder misses → https://brss.fyi/80nq
An AI wrote (a+)+$ in half a second. That shape hung Cloudflare's whole network for 27 minutes in 2019, and it's already landed CVEs in ajv and minimatch. Semgrep catches it before merge. Copper Sun Brass bundles it as one of 12 scanners. Read more → https://brss.fyi/1f4d
PyYAML's yaml.load carried a 9.8 CVSS CVE. PyTorch's torch.load(weights_only=True), called safe in its own docs, carried a 9.3 CVE in 2025. BrassCoders flags pickle.load and unsafe yaml.load on every scan. Read more → https://brss.fyi/11ia
Your AI coding assistant can reproduce license-encumbered training data. GitHub's own data shows Copilot matches public code in under 1% of suggestions. A federal lawsuit over this exact question is still unresolved since 2022. Read more → https://brss.fyi/13at
OWASP finds broken access control in 94% of tested apps. Its API-specific twin, BOLA, drives 27% of real attack traffic per Salt Labs. No scanner can verify an ownership check without knowing your data model. Here's what BrassCoders can actually flag. Read more → https://brss.fyi/1m4d
BrassCoders Paid launches today. $12/dev/month adds AI-powered semantic dedup and relevance ranking—turns 1500+ raw findings into ~300 actionable ones. The OSS core (12 deterministic scanners) stays free forever. Read more → https://brss.fyi/xhkq
BrassCoders CLI is now open source on GitHub under Apache 2.0. Audit 12 deterministic scanners, fork the detection logic, or contribute improvements. Full repo: CopperSunDev/brasscoders. pip install brasscoders → https://brss.fyi/9m5g
AI-generated code drove 2.74× more CVEs in Q1 2026 (6 in January → 35 in March). The curve accelerates. Most teams' detection layers weren't built for this. Deterministic scanning catches what AI coders structurally miss. Read more → https://brss.fyi/1vdw
Your AI assistant wrote the bug. Its own patch check isn't real verification: the same model can sample a false all-clear. BrassCoders scans deterministically, your assistant patches, then a re-scan confirms the pattern is gone. Read more → https://brss.fyi/wrkb
96 package names, one frontier AI model, checked live against PyPI. 95 real. 1 invented, lowercase and hyphenated, indistinguishable from the rest until you query the registry. Published research puts the blended rate at 19.7% across 16 models. It's never zero. Read more → https://brss.fyi/cqsv
Q3 2026 data point: 45% of AI-generated code samples ship an OWASP Top 10 flaw. AI-assisted PRs carry 1.7x more issues than human-only ones. Nearly 1 in 5 AI-recommended packages doesn't exist. BrassCoders catches the structural share before merge. Read more → https://brss.fyi/ot0t
Wire a Claude Code hook to run brasscoders scan on every edit. .brass/ai_instructions.yaml stays current, Claude Code reads it as context, and you stop pasting scanner output into chat. One block in .claude/settings.json. Free, Apache 2.0 OSS core → https://brss.fyi/67hc
A 2025 benchmark: LLM code reviewers hit 0.78-0.88 recall, beating static scanners. But precision sits at 0.72-0.78, all three models mislocate findings at the line level, and outputs vary run to run at temp zero. Great triage. Bad gate. Read more → https://brss.fyi/pyhp
AI coding assistants reason within one file's context window. A SQL injection flowing across lib/db.ts, routes/api.ts, and lib/util/strings.ts stays invisible to the LLM. The taint path never reconstructs. The bug ships. Read more → https://brss.fyi/qx3z
AI coding assistants catch logic bugs. BrassCoders catches what they miss: cross-file taint, hardcoded secrets, hallucinated imports, performance anti-patterns. Run both layers. They're complementary, not competitors. Read more → https://brss.fyi/4rvd
1,500 findings = 0 findings. Nobody reads that report. Detection isn't the bottleneck—ranking is. Brasscoders ranks findings so developers fix the 30 that matter, not the 1,500 that pile up. Read more → https://brss.fyi/1018
Auditors reject stochastic scanner output. They need deterministic, reproducible results tied to a commit. Brasscoders runs 12 deterministic scanners and emits audit-ready YAML your AI coding assistant can consume. Catch what your AI coder misses → https://brss.fyi/1az6
BrassCoders has no daemon or watcher. It scans only when something calls it. Getting it on every commit means wiring it into CI on push or a git pre-commit hook, both explained here. It exits code 1 on CRITICAL findings, which is what actually gates the build. Read more → https://brss.fyi/1yui
BrassCoders scans AI-generated code for bugs. But Copper Sun builds four other tools too: audio transcription, SEO audit, marketing campaign runner, goal coach. All five share one rule: do one job, stay out of your way, respect your data. Read more → https://brss.fyi/5xci
Bandit caught 6 of 12 planted AI-coder bugs in our benchmark. All 6 were security issues. It caught zero performance anti-patterns. The gap isn't Bandit's fault — it's scope. Bandit finds security bugs. Performance patterns need different scanners. Read more → https://brss.fyi/1d5n
AI assistants invent package names 19.7% of the time. One hallucinated name drew 30k downloads when registered. BrassCoders flags unresolvable imports before pip install runs. Read more → https://brss.fyi/rk7p
AI models generate runnable examples with hardcoded keys. BrassCoders's SecretsScanner caught a HIGH-severity HMAC secret in AI-generated Python — confidence 0.85, impact 0.9. Two lines swapped it to os.environ.get(). Re-scan: zero credential findings. Read more → https://brss.fyi/9a30
Static analysis catches SQL injection, misses missing auth. BrassCoders maps the exact boundary: structural patterns vs context-dependent bugs. SQL injection lives in source code; auth requirements live in specs. Neither layer replaces the other. Read more → https://brss.fyi/z78d
AI coders ship the same four perf bugs daily: O(N²) concat, insert-at-zero loops, triple-nested joins, unbounded polls. BrassCoders catches all four. Bandit and Pylint catch zero. Read more → https://brss.fyi/jl7q
Claude Opus generated a Flask endpoint with SQL injection. BrassCoders caught it in one scan—two CRITICAL findings plus Bandit—all pointing to line 22. The fix: swap string formatting for parameterized queries. One re-scan shows both CRITICALs gone. Read more → https://brss.fyi/x1f5