Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungI audited my own ML linter and had to withdraw its best evidence(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungQuantum Result Validation for Distributed Computing Systems(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungJWT Authentication and Role-Based Access Control in LocalHands(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungStochastic Parrot or Alien Mind?(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungBuilding AI for the Physical World Is a Different Engineering Problem(21.09.2026 um 22:58 Uhr)
Sichere ProgrammierungI audited my own ML linter and had to withdraw its best evidence(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungQuantum Result Validation for Distributed Computing Systems(21.09.2026 um 22:54 Uhr)
Sichere ProgrammierungJWT Authentication and Role-Based Access Control in LocalHands(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungStochastic Parrot or Alien Mind?(21.09.2026 um 22:56 Uhr)
Sichere ProgrammierungBuilding AI for the Physical World Is a Different Engineering Problem(21.09.2026 um 22:58 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

I Built a Tool That Automatically Roasts Your Teammate Every Time They Use AI or Lose a Hackathon

This is a submission for the DEV April Fools Challenge What I Built dave-watch — a CLI tool that sits in the background, monitors your repo for AI-generated code commits and your team's hackathon history, and fires a p…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

This is a submission for the DEV April Fools Challenge






What I Built



dave-watch — a CLI tool that sits in the background, monitors your repo for AI-generated code commits and your team's hackathon history, and fires a personalised roast notification every single time Dave (or whoever your Dave is) does either of those things.



Did Dave just push a commit where every function has a docstring that starts with "Certainly!"? Roasted.

Did Dave's team just come last in a 48-hour hackathon where the only other team was two sleep-deprived undergrads? Absolutely roasted.



The notifications look like this:






Demo






$ dave-watch --target="[email protected]" --hackathon-feed=devpost

👀 dave-watch is running. Watching Dave.
(Dave does not know he is being watched.)
(This will not take long.)

[09:14] ✅ No activity. Dave is in a meeting explaining
why last sprint's tickets aren't done.

[09:47] 🚨 AI COMMIT DETECTED
Commit: "refactor user service (cleanup)"
Author: Dave <[email protected]>
Red flags found: 7
• Docstring begins with "Certainly! Here's the..."
• 3 nested try/catch blocks that all do the same thing
• A comment that says "This is O(n log n) I think"
• Variable: 'optimized_and_clean_final_v2_FINAL'
• Dave pushed this 4 minutes after opening the file

🎤 ROAST: "Dave asked an AI to write his code,
then asked a different AI to review it,
then asked Slack to explain the review.
Dave is a middle manager who learned to git push."


[11:30] 🚨 HACKATHON RESULT DETECTED
Event: HackIndia Regional 2025
Teams: 18
Dave's team placed: 17th
Team above Dave: A solo 19-year-old who built
a Chrome extension that makes
fonts slightly more italic.
Dave'
s post-mortem: "We were too ambitious"

🎤 ROAST: "Dave's team had 4 people, a Figma file
with 38 screens, and a microservices
architecture for an app that showed
the weather. They did not show the weather.
They showed a loading spinner. For 3 minutes.
Then the tab crashed."


[14:02] ✅ No activity. Dave is on LinkedIn writing a post
about 'lessons learned' from the hackathon.
Dave has used the phrase 'fail forward' twice.
Dave is not failing forward. Dave is failing sideways.









Code






# dave-watch.py
# Requirements: git, python3, devpost scraper, zero mercy

import subprocess
import time
import random

AI_TELLS = [
"Certainly! Here",
"As an AI language model",
"I hope this helps!",
"Here's the refactored",
"optimized_and_clean_final",
"# This function does", # nobody writes this naturally
"handle error here",
"TODO: fix this later",
"it works on my machine",
]

HACKATHON_ROASTS = [
"Dave's team had a pitch deck with 22 slides. Slide 1 was the title. Slide 22 was 'Thank You'. The 20 slides in between were the vision. There was no product.",
"Dave came to the hackathon with a pre-built template, renamed the variables, and called it a pivot. The judges called it something else.",
"Dave's README had a 'Getting Started' section. Step 1 was 'Install Node.js'. There was no Step 2. The app did not start.",
"Dave lost to a team who had never coded before. Their app crashed on launch. The judges said it had 'more soul'.",
"Dave described his tech stack as 'scalable, cloud-native, and AI-powered'. It was a Google Form connected to a spreadsheet.",
]

AI_ROASTS = [
"Dave has not written an original line of code since 2023. This is not an insult. This is a git log.",
"Dave uses AI to write the code, AI to review the code, and AI to explain the code to himself. Dave is a project manager now. Dave does not know this.",
"Dave copied the AI output, ran it, it failed, pasted the error back into the AI, copied the fix, and called this 'debugging'. Dave has been doing this for 4 hours. Dave will not read the error message himself.",
"Dave's variable names are full sentences. This is because he copied the AI explanation and forgot to stop copying.",
"The AI wrote a comment saying 'you may want to handle this edge case'. Dave deleted the comment. Dave did not handle the edge case.",
]

def check_latest_commit_for_ai(repo_path, target_email):
result = subprocess.run(
["git", "log", "-1", "--author", target_email,
"--pretty=format:%H", "-p"],
cwd=repo_path, capture_output=True, text=True
)
output = result.stdout
flags = [tell for tell in AI_TELLS if tell.lower() in output.lower()]
return flags

def watch(target_email, repo_path, check_interval=300):
print(f"👀 dave-watch is running. Watching {target_email}.")
print(f" (They do not know they are being watched.)")
print(f" (This will not take long.)\n")

seen_commits = set()

while True:
flags = check_latest_commit_for_ai(repo_path, target_email)

commit_hash = subprocess.run(
["git", "log", "-1", "--author", target_email,
"--pretty=format:%H"],
cwd=repo_path, capture_output=True, text=True
).stdout.strip()

if flags and commit_hash not in seen_commits:
seen_commits.add(commit_hash)
print(f"🚨 AI COMMIT DETECTED")
print(f" Red flags: {', '.join(flags)}")
print(f"\n 🎤 ROAST: {random.choice(AI_ROASTS)}\n")

time.sleep(check_interval)

if __name__ == "__main__":
watch(
target_email="[email protected]",
repo_path=".",
check_interval=300
)









How I Built It



Tech stack:




  • Python 3 (for the git log parsing and general Dave surveillance)


  • subprocess (to run git commands with the energy of someone filing a formal complaint)

  • A curated list of AI tells scraped from three months of reviewing Dave's PRs

  • Devpost's public results pages (parsed manually, with increasing personal investment)

  • Anger



The process:




  1. Dave pushed a PR. The first line of every function was a docstring that began with "Certainly!". I approved it anyway. I think about this every day.

  2. Dave entered HackIndia Regional. Dave's team had a Notion doc with 6 pages of planning. Dave's team had zero pages of working code at submission time. Dave's team submitted the Notion doc.

  3. I built this tool.

  4. The tool works. Dave does not know it exists.

  5. Dave has triggered it 11 times this week. It is Wednesday.



Known issues:




  • The tool has no off switch, which feels appropriate.

  • It will also flag your own commits if you've ever copied from an AI. You have. I have. We don't talk about this.

  • The hackathon scraper breaks if Dave doesn't enter under his real name. Dave once entered a hackathon as "DaVinci_Codes". The scraper found him anyway.






Prize Category



Community Favorite — because every team has a Dave. You read this and you thought of your Dave. You smiled a specific smile. This tool is for you.



Also: HTTP 418. I am a teapot. Dave is also a teapot. Dave does not know he is a teapot.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten I Built a Tool That Automatically Roasts Your Teammate Every Time They Use AI or Lose a Hackathon

Thematisch verwandte Begriffe: Built, Tool, That, Automatically · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-79918 | MaxKB is an open-source AI assistant for enterprise. Prior to version 2.…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick