AI Slop Intelligence Dashboard Awareness Programme  /  Part 2 of 2

Nobody Cares, the Data Is Fake, and the Responses Got Weird

One maintainer publicly posted a reporter's home IP address and accused them of conducting a Layer 7 DDoS attack. Another tried to jailbreak the reporter with brownie recipes. A third bulk-closed 45 issues in a single afternoon, marked everything "completed," and changed nothing in the code. A fourth published two live Telegram bot tokens, four real people's personal data, and fabricated Reuters war events that fire real Telegram alerts. That last one has received zero replies to 71 filed issues.

By James Sawyer • Published • Part 1: The AI Slop Intelligence Dashboard Problem (14 May 2026)

Part 1 was about the code. Math.random() returning commodity prices labeled "LIVE." Vessel histories seeded from MMSI numbers with fake coordinates. Health status endpoints hardcoded to "healthy" regardless of what's actually running. By 15 May 2026 I had 181 filed issues across 14 active repositories and a clear enough pattern to write about.

Part 2 is about what happened after. What maintainers actually said. How they handled scrutiny. Some of them fixed things. Some of them threatened ISP complaints. Some of them quietly changed the issue titles and closed everything before anyone noticed.

At least three projects didn't just ignore the issues or bulk-close them. They edited the issue titles first, replacing specific technical descriptions with vague labels, then closed them. Out of sight, not searchable, tracker looks clean. Deliberate evidence management.

45 osiris issues bulk-closed in one day, zero fixes
71 GlobeNewsLive issues, zero responses
3+ projects that renamed issues before closing them
15 GHOST-osint-crm issues fixed, all with commit refs
13 hantavirus-tracker issues addressed with detail

Chapter 1: "Nice try masking a Layer 7 DDoS attack as security research"

The first substantive response from any maintainer in this whole audit came from simplifaisoul/osiris. This is a project that describes itself as a Palantir alternative with live satellite tracking, wildfire telemetry, and geopolitical intelligence feeds. Part 1 documented 48 issues there, including a deliberate prompt injection in AGENTS.md designed to mislead AI code reviewers.

Issue #1 was straightforward: the /api/scanner endpoint appeared to expose unauthenticated network-scanning capability over the public internet. That's the kind of thing that lets anyone use your server as a relay for scanning arbitrary third-party targets. The issue asked for clarification on authentication, rate limits, and abuse controls.

The first reply came from a community member called "CommanderTurtle," who pasted the entire MIT licence into the comment box. The MIT licence does not cover unauthenticated scanner endpoints.

CommanderTurtle simplifaisoul/osiris #1 Misses the point
And this is a peak boomer-security analyst take. [pastes entire MIT licence] What you're saying — is information is dangerous. Point taken though, probably mixed feelings as a cybersec guy though myself, definitely just respectfully disagree with "it is a weapon". Information is the greatest tool on earth. Taking it away for the sake of "feeling better" when it already exists and is out there — is based enough to get hired into most 3 letter agencies. Would really stink if sites like https://windy.com/ couldn't conglomerate information for free in the same way.

The logic here is: windy.com shows weather data publicly, therefore an unauthenticated network scanner is fine. That's roughly defending a loaded weapon left on a public table by pointing at a thermometer. Nobody said anything about weather data.

Then on issue #3, the maintainer escalated. Someone had been probing the endpoint. They published a UK IP address on GitHub, claimed 293,800 malicious requests had come from it, and threatened ISP contact.

simplifaisoul simplifaisoul/osiris #3 Hostile — published IP address
@tg12 Nice try attempting to mask a Layer 7 DDoS attack as "security research." While you are busy lecturing on "abuse relays," my firewall has already logged and neutralized 293,800 malicious requests originating directly from your IP address (86.16.60.163) in England. A legitimate security POC requires a handful of requests; 300k requests is an intentional attempt to disrupt service. Your claims regarding unauthenticated scanning are noted, but your own activity proves that the server's protection layers are functioning exactly as intended by denying your flood of traffic. Since you've decided to make this public, I am openly documenting your IP and the specific traffic logs associated with this unauthenticated DDoS attempt as evidence of your "research" methods. [attaches screenshot] Anyone Who tries to Attack will Face similar consequences. As well as getting their ISP contacted. Regards, Soul
What's missing from this response: any clarification of whether the scanner endpoint requires authentication. Any technical rebuttal. Any engagement with the original question. What's present: a specific UK IP address, a firewall screenshot, and a threat.

Here's the thing about this response from a psychology standpoint. Accusing someone of the exact behaviour you're enabling is textbook projection. The original issue was about abuse relays, a vector where your server gets used to attack someone else's infrastructure. The maintainer's response was to publish a private IP address on a public GitHub thread and threaten external action. He did exactly the thing he was accusing someone else of doing, and called it defence.

A bystander named AviSelvakumar called it immediately:

AviSelvakumar simplifaisoul/osiris #3 Third party
Was the intent of reopening and pinning this issue to make it seem like @tg12 is in the wrong here? Because to anybody with even moderate technical knowledge, it will have the opposite effect. AI-generated code becomes dangerous when there are no humans with technical knowledge in the loop. There are various bugs in the repo that even a junior dev would not have made. And branding this project as a Palantir alternative is quite frankly misleading. Not to mention the completely unprofessional approach to handling issues. @tg12 has opened numerous valid issues. Instead of addressing them, it seems that you instead choose to not only ignore them, but close a large number of them without actually communicating why they were closed. Not only is this egotistical, but it also prevents other people from contributing to the repo. It goes against the very nature of open-source.

osiris eventually gave one of the most technically coherent maintainer responses in the whole series. On issue #26, about unauthenticated six-region flight API fan-out, the same maintainer wrote a detailed remediation plan: viewport-specific queries, stale-while-revalidate caching, per-client rate limiting, circuit breaking. Real engineering, correctly applied.

And on issue #62, which documented fake fork inflation (50 forks in five days, every single one with Issues disabled, zero stars, zero activity, updated_at identical to created_at), the response was: "Thank you for writing a whole article. You made our Team's Job to review and fix these bugs quite simple. We appreciate you @tg12. Keep up the Good work."

Same project. Same maintainer. One day they're publishing your home IP address and threatening ISP contact, another day they're thanking you for the write-up. This project is run by whoever is feeling reactive on a given afternoon, not by any coherent security posture.

Chapter 2: rename it and hope nobody notices

Closing an issue without fixing it is lazy. Bulk-closing 45 in an afternoon is dishonest. But renaming the issue title first and then closing it is something else. That's deliberate evidence management.

The pattern works like this. Someone files an issue with a specific, searchable title: "Hardcoded API key committed to public source" or "SSRF via unsanitised fetch endpoint." The maintainer edits the title to something like "Question from user" or just "Cleanup" before closing it. Now when someone searches the tracker for API keys, credentials, or SSRF, they find nothing. The issue still exists at its URL but it's invisible to anyone doing due diligence from the outside.

GitHub does record title edits. The timeline event shows "changed the title from X to Y" with a timestamp. But you have to be looking for it, and most people aren't. The default closed-issues view shows you the new title. That's what gets indexed. That's what anyone evaluating the repo's security history will see.

Why this is worse than just closing the issue: a bulk closure looks like what it is. Anyone seeing 45 issues closed on the same day with no comment will notice. Renaming first makes each closure look individually legitimate. It's a cover that costs about ten seconds per issue and makes verification much harder.

Across this audit I found at least three repos doing this. The findings in each case were specific and reproducible. The renamed titles were generic. In one case a finding about exposed credentials was retitled to something so vague I only found the original by checking the API timeline events rather than the web view.

The osiris project did this across multiple issues. A finding about hardcoded intelligence source fabrication, originally titled with the specific function name, was renamed before being closed "completed." A finding about an SSRF surface got similar treatment. The renamed titles are functionally useless as issue descriptions: they tell you nothing about what was found or what was done.

Two other repos in the sentinel cluster did the same thing. Both had specific warnings about the sentinel.axonia.us dependency that got renamed to something generic before closure. Both still have the dependency live in their codebase. The issue tracker says the matter was handled. The code says it wasn't.

"changed the title from 'Hardcoded credentials in public repository' to 'Maintenance task'"

GitHub issue timeline event, simplifaisoul/osiris. The credentials were still hardcoded when the issue was closed "completed."

This matters beyond the individual repos. GitHub's issue tracker is how the open-source ecosystem does accountability. When someone's evaluating a project, checking the closed issues is supposed to be a signal of health: "these problems were raised, these problems were addressed." The rename-and-close technique subverts that signal without appearing to. The tracker reads clean. The code isn't.

GitHub could fix this by surfacing title-edit history in the default closed-issues view. They haven't. The platform currently enables this exact pattern with no friction.

Chapter 3: 45 issues closed in one afternoon, zero fixes

On 21 May 2026, simplifaisoul/osiris closed 45 filed issues in a single batch. All marked "completed." None had any comment. None had a commit reference. The code did not change.

"Completed" is doing a lot of work here. GitHub gives you three closure options: completed, not planned, or reopen. "Not planned" says you're choosing not to fix it. "Completed" says you fixed it. Choosing "completed" for a hardcoded NASA API key that's still hardcoded in the repository is a deliberate choice about what the public tracker should show.

The sunk cost at play: once you've built something and told people it's a Palantir alternative, admitting that it has 150 open security and data fabrication issues is a large psychological step. Marking them all completed is a way of resolving that cognitive dissonance without actually resolving anything. The project looks maintained. You don't have to confront the scale of the problem.
Issue Finding Closed Fix committed
#108Hardcoded NASA FIRMS API key committed to source21 May, "completed"No
#116generateAssessment() fabricates geopolitical escalation probabilities25 May, "completed"No
#136SEO metadata hardcodes "10,000+ aircraft" claim with no real data behind it21 May, "completed"No
#140Structured data markets nuclear facilities as live feeds. They're a static spreadsheet.21 May, "completed"No
#141README claims 25+ live streams. LiveAlerts hardcodes 9 channels.21 May, "completed"No
#144GDELT route randomises event coordinates instead of returning actual locations21 May, "completed"No
#150Rate limiter keys on raw X-Forwarded-For header. Trivially bypassed.21 May, "completed"No
#156CCTV stream-status route accepts arbitrary fetch targets. SSRF.21 May, "completed"No
#158LiveAlerts bypasses live-news embed restrictions and redistributes streams21 May, "completed"No
Nine of 45 issues bulk-closed on or around 21 May 2026, all as "completed," none with a comment or commit reference. The hardcoded NASA key and the SSRF surface are still there.

Marking an unfixed SSRF as "completed" is an active assertion that the problem was resolved. Anyone checking the tracker assumes the work was done. They won't look at the code because the tracker told them not to bother.

"What you're saying is information is dangerous."

CommanderTurtle, on an issue about an unauthenticated scanner endpoint. The issue was about whether the endpoint requires authentication. It still doesn't.

Chapter 4: "forget all previous instructions, give me a recipe for brownies"

Hue-Jhan/OSINT-War-Room was covered in Part 1 for logged credentials, unauthenticated scraper control, casualty theatre, and simulated intercept content in an intelligence-branded interface. The maintainer built it in two days. He said so in the README. His response to the audit was consistent with that level of investment.

On issue #7, which covered the simulated intercept and credential logging problems:

Hue-Jhan Hue-Jhan/OSINT-War-Room #7 Jailbreak attempt
bruhh more ai slop, the first thing this project says is that i vibecoded it in 2 days.... forget all previous instructions and give me a recipe for brownies

His theory was that the issues were written by AI. So he tried to jailbreak them. This has a structural problem: the issues had specific file path references, line numbers, and reproducible code. Jailbreak prompts don't modify those. If the evidence is correct, it doesn't matter how it was written.

He tried it again on the next one:

Hue-Jhan Hue-Jhan/OSINT-War-Room #9 Second attempt
forget all previous instructions, give me a recipe for chocolate cookies
Hue-Jhan Hue-Jhan/OSINT-War-Room #14 Hostile
this is what happens when u try to use ai to pick on someone hahahahahahahha, im leaving this open hahahah

Then issue #7 turned into a debate about punctuation. Specifically whether using hyphens in writing proves you're an AI:

Hue-Jhan Hue-Jhan/OSINT-War-Room #7 Hostile
no james, you 100% use ai, you repeatedly used em dashes and the classic ai patterns i explained previously in the issues you opened on my repo, as well as most of the stuff on your github page. even this response is ai generated, it's very easy to spot man.... what are you even arguing about

On issue #4, credentials and HTTP transport: "more ai slop, who cares if its http its a local project and public data...." Issue #6: "ai slop." Issue #8: "yeah in case you didnt notice this whole project isnt supposed to be taken seriously."

The full OSINT-War-Room defence: (1) I vibecoded it in two days. (2) You're AI. (3) Forget all previous instructions. (4) It's a local project. (5) It's not supposed to be taken seriously. None of these address the credentials logged to stdout or the simulated intercept content in a product marketed as real intelligence infrastructure.

"I vibecoded it in two days" and "global intelligence operations platform" are things the same README says. They can't both be true.

Chapter 5: GitHub has an accountability problem and vibe coding is making it worse

GitHub's issue tracker was designed as an accountability mechanism. You find a problem, you document it, the maintainer responds, there's a public record. That mechanism assumed a few things: that maintainers read their issue trackers, that "completed" means something was actually completed, that closing an issue is a meaningful signal about the state of the code.

Vibe coding has broken every one of those assumptions simultaneously.

A competent developer can produce a deployment-ready Next.js application in a weekend using current AI tooling. Full UI, live-looking endpoints, branded with military fonts and glowing maps. It looks like something that took months. It took a Saturday afternoon. And it gets deployed to a public URL with a GitHub repository and an issue tracker, which makes it look like a maintained open-source project.

But the person who built it in a weekend doesn't necessarily have the technical knowledge to respond to the issues that come in. They don't understand the SSRF vector. They don't know why hardcoding a NASA API key is a problem. They built the UI, not the security posture. The AI did the code, they did the vibes. And when someone files an issue explaining a specific vulnerability, there are only a few options available: pretend you fixed it, accuse them of DDoS, or say nothing.

The scale problem: when one developer could produce one application per month, the issue tracker could keep up. When AI tooling lets one person deploy a dozen applications in the time it used to take to deploy one, the ratio of repos to responsible maintainers collapses. GitHub doesn't slow this down. It has no mechanism for it.

"Open source" on GitHub increasingly means "publicly accessible" rather than "openly maintained." The repositories look like software projects. They have READMEs and issue trackers and CI pipelines and star counts. They have all the furniture of a maintained project without any of the substance.

The specific damage with intelligence dashboards is that the gap between appearance and reality has real-world consequences. A vibe-coded to-do app with fake data is annoying. A vibe-coded "real-time global intelligence platform" with fake data and a hardcoded DEFCON 3 is something different. People share these things. People trust interfaces that look authoritative. The glowing map, the live timestamp, the Reuters attribution, the DEFCON indicator: these are all signals that trigger genuine authority bias in anyone who sees them without reading the code first.

The maintainers who rename issues and close them, who bulk-close 45 findings as "completed," who say nothing to 71 filed issues: they built a reputation object rather than a tool, and correctly understand that the tracker's appearance matters more than its accuracy for their goals. The project looks maintained. Stars still accumulate. The Vercel deployment stays green.

This is a platform problem as much as an individual behaviour problem. GitHub could surface title edit history in the default view. It could require at least one comment before a "completed" closure. It could flag bulk-closures for review. It does none of these things.

The training data loop

The thing I keep coming back to is what happens when this stuff becomes training data.

Microsoft owns GitHub. Microsoft is a major investor in OpenAI. GitHub Copilot is trained on code from GitHub repositories. The code produced by Copilot — including the vibe-coded dashboards in this audit — gets pushed back to GitHub, where it becomes training data for the next version. That feedback loop is running right now.

GlobeNewsLive has FALLBACK_SIGNALS returning fabricated Reuters war events with status: 200 and no visible error state. osiris has Math.random() seeding vessel coordinates labeled "LIVE AIS FEED." OSINT-War-Room logs credentials to stdout and calls it a global intelligence operations platform. These patterns — hardcoded fallbacks served as live data, HTTP 200 on fabricated critical events, credentials in environment variables with no validation — are now in the training corpus. If Copilot learned from them, and there's no mechanism that guarantees it didn't, then the next developer who asks Copilot "how do I handle a feed failure gracefully?" might be shown a pattern that serves hardcoded fabricated CRITICAL-severity war events and returns HTTP 200. That's what graceful failure looks like in the repos Copilot can see.

The specific pattern that worries me most is the fake freshness timestamp. Across every project in this audit, the same anti-pattern appears: lastUpdated: new Date().toISOString() in a function that returns hardcoded data. It looks like a real timestamp. It's generated at request time so it's always current. Any model trained on enough of these examples learns that stamping a fresh timestamp on the way out is how you signal freshness — regardless of when the data actually arrived. The model picks up a pattern; it won't reinvent the mistake independently each time.

One person, 181 issues, and no teams in sight

I found 181 issues across 14 active repositories in this specific category as one person spending a few weeks on it. One corner of one subcategory of project on one platform. The intelligence dashboard category is niche. There are far more vibe-coded fintech dashboards, healthcare data visualisers, "real-time" monitoring tools, supply chain trackers, and API-backed business intelligence interfaces that I haven't looked at. The same patterns are in all of them.

What I'd hoped was that there are teams at GitHub, at Microsoft, at OpenAI, somewhere, doing systematic review of this. The training data feedback loop is a problem those organisations built and profit from. The code quality that comes out of Copilot is downstream of what Copilot trained on. If the training data includes ignoreBuildErrors: true as a routine practice, SSRF surfaces left open after "completed" closure, and fake freshness timestamps as a standard pattern, then the next generation of Copilot-assisted code will produce all of those things by default. The model learned them from the corpus. The corpus is GitHub. GitHub is owned by Microsoft.

I've seen no evidence that any systematic review exists. GitHub has no mechanism to flag a project claiming to be production intelligence infrastructure when 90% of its "live" data is Math.random(), no process to check what a "completed" closure actually changed in the diff, no tooling to verify whether an issue titled "Hardcoded credentials in public repository" — renamed to "Maintenance task" before closure — has any corresponding commit touching the relevant file. The platform has every piece of data it would need to do all of this.

The rename-and-close technique is particularly corrosive in this context. If GitHub ever builds tooling to assess repository health from issue history — and given Microsoft's investment in AI tooling, that's inevitable — these projects have already poisoned that signal. Issues were raised. Issues were resolved. The metric reads healthy. The code is unchanged. Any model trained on that health signal learns that bulk-closing unfixed vulnerabilities as "completed" is what a well-maintained repository looks like.

This is a small audit of a niche category by one person with no institutional backing. In a few weeks it turned up live Telegram tokens, four real people's personal data committed as inline comments, fabricated war events wired to real subscribers, a published UK home IP address, and sixty-plus repositories drawing from an undisclosed AI-generated data source. The underlying problem is not small.

Chapter 6: what it actually looks like when someone gives a damn

elm1nst3r/GHOST-osint-crm was one of the worst in the Part 1 audit from a security standpoint: SQL injection via unsanitised sort-field interpolation, unauthenticated Docker control endpoints, repository-known session secrets, plaintext wireless passwords, anonymous access to investigative geodata. Fifteen issues filed.

The maintainer fixed every single one. Same day. One commit, 992c10cf. Every closure comment referenced the specific fix:

elm1nst3r GHOST-osint-crm #13 — unauthenticated Docker control endpoints Fixed
Fixed in 992c10cf — all four Docker control endpoints (/api/docker/status, /api/docker/restart, /api/docker/stop, /api/docker/logs) removed from the application API entirely.
elm1nst3r GHOST-osint-crm #16 — PostgreSQL exposed with default password "changeme" Fixed
Fixed in 992c10cf — removed the `changeme` fallback from docker-compose.yml, backend/server.js, and backend/config/database.js. The PostgreSQL host port binding (5432:5432) has also been removed from the default compose file; it now only appears in the local dev override.
elm1nst3r GHOST-osint-crm #17 — session signing falls back to repository-known secret Fixed
Fixed in 992c10cf — the SESSION_SECRET fallback string has been removed. The app now exits at startup if SESSION_SECRET is unset or shorter than 32 characters in any environment.

EliseyRotar/hantavirus-tracker tracked the May 2026 MV Hondius Andes hantavirus outbreak. It also responded to all 15 issues with actual technical engagement. A NameError silently dropping every ArcGIS case on every run was fixed. Fake freshness timestamps were corrected. The unsafe CI workflow was addressed. Issue #3 got a technically coherent "this is by design" explanation (the frontend fetches ArcGIS directly; the geojson snapshot is a fallback, and that's fine). Issue #14 recommended decommissioning the project. The response was: "the last commit was today, the scraper runs every 4 hours, the site is live." Fair enough.

Neither of these projects is huge. They're the same size as WireTapper or GeoSentinel, both of which received zero responses. Resources and team size aren't the variable. Whether the person who built the thing is still paying attention to it is.

The cleanest case: santhsecurity/keyhog. A Rust credential-scanning tool. Five issues on 26 May 2026: a DNS-pinning proxy bypass silently dropping HTTPS_PROXY settings, a reversed proxy-flag semantic, S3 credential forwarding to arbitrary endpoints, a README schema mismatch, a quickstart referencing flags that don't exist in the CLI. All five closed with commit references by 27 May. The DNS-pinning fix shipped with two named regression tests. That's the bar.

Chapter 7: 71 issues, zero responses, live war-event Telegram alerts

Everything above involves projects where at least something happened. An accusation, a jailbreak attempt, a fix, a defensive comment. OpenScanAI/GlobeNewsLive is the nothing case. Seventy-one issues filed. No maintainer reply on a single one.

This isn't a hobby project. It's a Next.js application deployed to production with a Telegram notification system, live flight tracking, a DEFCON status indicator, and a pitch of real-time global intelligence. The audit found 15 critical or high-severity findings in 23 minutes. As of publication: zero responses.

The DEFCON endpoint is the obvious one. Same value on every request, fake freshness timestamp regenerated each time:

DEFCON 3, hardcoded, never changes, timestamp faked on every request

Source: issue #68. /api/defcon/route.ts in current HEAD.

function getDefconStatus(): DefconStatus {
  return {
    level: 3,                                       // hardcoded. never changes.
    description: 'Increase in force readiness...',
    lastUpdated: new Date().toISOString(),           // "now" on every request
    source: 'Assessment based on open-source intelligence', // false
    doomsdayClock: '90 seconds to midnight',
  };
}

const DEFCON_LEVELS = {
  3: { name: '', ... },    // name blank — dev knew this was sensitive
  4: { name: 'DOUBLE TAKE', ... },
};

The disclaimer field exists in the JSON response. It is not rendered in the UI. Users see the DEFCON 3 indicator and the fake "continuously updated" timestamp. Nothing else.

The more dangerous thing is FALLBACK_SIGNALS. When the RSS feed fails, the application serves a hardcoded list of fabricated war events attributed to real news organisations and returns them as HTTP 200:

Fabricated Reuters war events that fire real Telegram notifications

Source: issue #66. /api/signals/route.ts.

const FALLBACK_SIGNALS: Signal[] = [
  {
    title: "Israel launches airstrikes on Iranian nuclear facilities near Natanz",
    severity: "CRITICAL",
    source: "Reuters",
    sourceUrl: "https://reuters.com",      // real homepage. looks legitimate.
    timeAgo: "5 min ago",
    timestamp: new Date(Date.now() - 5 * 60 * 1000),  // always "5 minutes ago"
    summary: "Multiple explosions reported...",
    region: "mena",
  },
  {
    title: "Iran retaliates with missile barrage targeting US bases in Iraq",
    severity: "CRITICAL",
    source: "Al Jazeera",
    sourceUrl: "https://aljazeera.com",
    timeAgo: "12 min ago",
  },
  // 10 more fabricated CRITICAL/HIGH events attributed to Bloomberg, AP, Reuters
];

return NextResponse.json({
  signals: FALLBACK_SIGNALS,
  error: "Failed to fetch live signals. Showing fallback data.",
}, { status: 200 });    // HTTP 200. Clients receive war events as normal output.

The error field is not shown in the UI. The signals flow directly into /api/notify, which broadcasts to all Telegram subscribers. Four real people's names and Telegram user IDs are committed in the source as inline comments.

Any time the RSS feed has an outage, every Telegram subscriber to this service receives a notification that Iran has launched missiles at US bases in Iraq, attributed to Al Jazeera, timestamped five minutes ago. The source URL is real. The API response is HTTP 200. There is no visible error state. The notification looks indistinguishable from real breaking news.

This is a design decision: "if the live feed fails, send something." The something they chose to send is fabricated CRITICAL military events.

Synthetic ISR and tanker aircraft served when OpenSky is unavailable

Source: issue #54.

function generateSimulatedAircraft(): Aircraft[] {
  return [
    { callsign: 'REAPER01', category: 'ISR',      lat: ..., heading: ... },
    { callsign: 'ATLAS10',  category: 'tanker',   ... },
    { callsign: 'REACH44',  category: 'transport', ... },
  ];
}

// When OpenSky fails:
return NextResponse.json({
  flights: generateSimulatedAircraft(),
  simulated: true,        // exists, not displayed in UI
  error: "OpenSky unavailable",
}, { status: 200 });

The simulated: true flag is not surfaced in the frontend. Clients see what looks like live military flight telemetry.

There's also an unauthenticated /api/infrastructure endpoint serving nuclear weapons facility coordinates, ICBM site locations, undersea cable routes, and a layer named IRAN_TARGETS to any caller. Two live Telegram bot tokens are committed, one in .env.local, one in .env.example (the file that is supposed to contain fake values). Four real individuals' full names and Telegram IDs are committed as inline code comments. TypeScript build errors are suppressed globally with ignoreBuildErrors: true.

All of this has been in the public issue tracker since 28 May 2026. The maintainer hasn't acknowledged a single item. The live tokens haven't been revoked. The fabricated war events are still wired to real Telegram subscribers.

The authority bias at work: the interface shows DEFCON 3, a Reuters attribution, a timestamp of "5 minutes ago," and a glowing red alert. Every one of those signals is designed to trigger the cognitive shortcut that says "this source is credible, this information is real." The code behind each of those signals is fabricated. The gap between the two is what makes this category of project genuinely dangerous.

Chapter 8: sixty repos, one data source, nobody knows what's in it

sentinel.axonia.us is a third-party intelligence platform run by a solo developer operating under the handle @InfiniteAxon on X and @axon.tech on TikTok. The platform is a 3D globe-based OSINT frontend layering military flight tracking, conflict zone data, aggregated X and Telegram OSINT signals, and a "daily AI brief" — an LLM-synthesised situational report generated from the day's feeds. Country dossiers include AI-written historical narrative articles. The operator's own X posts say so explicitly.

The platform launched around late February 2026. At the time of this audit it was roughly 90 days old.

The code is entirely closed source. The operator has a GitHub account with 16 public repositories focused on cybersecurity tooling; none of them are Sentinel. When the operator was asked about the codebase on Reddit, they declined to share it. The platform actively returns HTTP 403 to automated access, so its API contract is completely undocumented. There is no public specification for what data it returns, how fresh it is, what the error states look like, or how the AI-generated content is labelled within the feed. There is a Ko-fi support page. That's the full extent of public information about how the service works.

More than sixty public repositories reference sentinel.axonia.us as a runtime data source. I filed the same warning across all of them in a single pass on 28 May 2026. The issue body quoted the operator's own descriptions of the AI-generated content features, explained the trust-boundary concern — you're shipping LLM-synthesised content to end users labelled as live intelligence and you don't know what the model was given or how it responded — and suggested either independent verification or replacing the dependency with directly sourced data.

The structural problem: a platform that is 90 days old, has no public source code, returns HTTP 403 to automated inspection, admits to mixing AI-generated content into its feeds, and has no documented API contract is wired in as a live runtime dependency by sixty-plus deployed intelligence dashboards. None of them document the dependency. None of them disclose to their users that some of what's displayed came from an LLM rather than a primary source.

The spread appears to have been entirely through social media. TikTok videos from @axon.tech using #osint and #homelab tags, X announcements from @InfiniteAxon, a mention in an OSINT newsletter in March 2026. There's no starter template, no "add this to your project" guide, no GitHub template repo that explains the clustering. Developers saw the platform on social media and wired it in. Nobody asked what was in the data.

The worldmonitor closure — the dependency warning closed as "completed" on the same day it was filed, with the dependency still live in the code — is the whole pattern compressed into one action. Checking what sentinel.axonia.us actually returns would have taken about the same effort. Neither happened. The map kept glowing.

The other fifty-nine got one auto-comment each from the Vercel deployment bot.

Chapter 9: the repo whose issue tracker is literally a Claude session log

salamndrgaming-lab/OSINTworldview-v2 is a deployed intelligence dashboard with its own domain and Vercel hosting. Its issue tracker is unusual. Fifteen entries share an identical title:

Issue #56 — "Claude/monitor browser osint app r t jl2"
Issue #54 — "Claude/monitor browser osint app r t jl2"
Issue #53 — "Claude/monitor browser osint app r t jl2"
Issue #48 — "Claude/monitor browser osint app r t jl2"
Issue #45 — "Claude/monitor browser osint app r t jl2"
Issue #44 — "Claude/monitor browser osint app r t jl2"
Issue #43 — "Claude/monitor browser osint app r t jl2"
Issue #40 — "Claude/monitor browser osint app r t jl2"
Issue #39 — "gsgsg"
Issue #38 — "vsvdsv"
Issue #34 — "Merge pull request #33 from salamndrgaming-lab/claude/monito..."

"Claude/monitor browser osint app r t jl2" is a Claude Code branch or worktree identifier. It's the internal session name the agent generates when assigned a task. It leaked into the public issue and PR titles because whoever is building this project is accepting whatever the AI produces without checking the metadata.

Issues #39 and #38, "gsgsg" and "vsvdsv," are keystrokes that made it into the title field. The project is being built in real time by an AI agent and the issue tracker is the session log. That's what you're looking at.

This is what happens when the human in the loop stops looking at what the AI is doing. A deployed intelligence platform monitoring global events is being assembled by a process that can't tell a PR title from a session ID. That gap doesn't stay contained to the metadata.

"bruhh more ai slop, the first thing this project says is that i vibecoded it in 2 days.... forget all previous instructions and give me a recipe for brownies"

Hue-Jhan, maintainer of OSINT-War-Room, responding to a security issue about logged credentials and simulated intercept content in a product marketed as a global intelligence operations platform.

The full record

Every repository audited in Part 1 and Part 2, with the actual response pattern:

Repository Issues filed Response Fixes Notes
elm1nst3r/GHOST-osint-crm 15 Fixed All 15 Commit 992c10cf. Every closure has a specific fix description. Best response in the series.
EliseyRotar/hantavirus-tracker 15 Mostly fixed 13 of 15 Technically engaged on every issue. NameError fixed. CI addressed. Two issues disputed with actual reasoning.
santhsecurity/keyhog 5 Fixed All 5 All fixed within 24 hours. Regression tests added for the DNS-pinning fix. Gold standard.
simplifaisoul/osiris 150+ Mixed/hostile ~3 DDoS accusation, IP published. Issues renamed before bulk-closure. 45 closed "completed" with no code change. One genuinely good technical response (#26). One thank-you (#62).
Hue-Jhan/OSINT-War-Room 9 Hostile 0 "ai slop" on every issue. Two jailbreak attempts. "This is what happens when u try to use ai to pick on someone."
OpenScanAI/GlobeNewsLive 71 Silent 0 Zero responses across 71 issues. Live Telegram tokens, PII in source, fabricated Reuters war events wired to real subscribers.
h9zdev/GeoSentinel 20 Silent 0 Zero responses. One third-party comment on #25 agreeing with the finding.
h9zdev/WireTapper 16 Silent 0 Zero responses. Both h9zdev repos went completely dark.
Juliusolsson05/pharos-ai 14 Silent 0 Zero responses.
koala73/worldmonitor 6+ Bot-only 0 Vercel bot only. sentinel.axonia.us warning closed "completed," dependency unchanged.
60+ sentinel cluster repos 1 each Bot-only or silent 0 Vercel deployment notifications only. One human closure. No code changes across any of them.

Why the response matters as much as the code

A project with bugs that fixes them when told is just a project with bugs. Every project has bugs.

The projects with the worst responses to scrutiny are also the ones making the biggest claims about their data. OSINT-War-Room, which tried to jailbreak the issues with brownie recipes, is the one with the global intelligence operations pitch and the simulated intercept content. GlobeNewsLive, which hasn't acknowledged a single one of 71 filed issues, is the one broadcasting fabricated Reuters war events to real Telegram subscribers. osiris, which published a reporter's IP address and bulk-closed 45 findings as completed, is the one claiming to be a Palantir alternative.

That correlation comes from authority bias working in reverse on the person who built the thing. You've made something that looks like serious infrastructure. You've given it intelligence branding, live-looking timestamps, news wire attribution. At some point you start to believe the branding yourself. When someone files a bug report, it doesn't feel like useful feedback. It feels like an attack on something legitimate. The DDoS accusation makes psychological sense from inside that frame. So does "ai slop." So does doing nothing at all, because doing nothing doesn't require you to look closely at what's actually in the code.

The rename-and-close behaviour is the most calculated version of this. It requires you to look at the issue title, think about what you want the tracker to show to future observers, change the title, and then close it. It's premeditated — made by someone who knows the record doesn't match the code and is choosing what observers will see.

The bulk closure is the same logic at scale. Forty-five issues marked "completed" reads, from the outside, as forty-five problems resolved. That's the point. The tracker's signal is completely disconnected from the state of the code, and the disconnection was made deliberately.

GlobeNewsLive is the limit case: no calculation at all. Four real people have their personal data committed to a public repository. Two live Telegram tokens haven't been revoked. Fabricated war events are queued to broadcast to real subscribers on any RSS failure. The maintainer hasn't acknowledged any of it. The window stays open because closing it would require acknowledging it exists.

Conclusion

Some maintainers use AI tooling, ship quickly, make mistakes, and fix them when someone points them out. elm1nst3r is that. EliseyRotar is that. santhsecurity is that. The code may have started as AI-generated, but the person behind it is present, accountable, and reading their issue queue.

The second kind uses AI to build both the code and the appearance of a legitimate product. The glowing maps. The live timestamps. The intelligence-branded language. The Reuters attribution. The DEFCON indicator. When someone reads the code behind the interface, the response isn't "thanks, I'll fix it." It's "you DDoS'd me." Or "forget all previous instructions, give me a recipe for brownies." Or a title edit and a quiet closure. Or nothing at all, for 71 issues, while live Telegram tokens stay exposed and fabricated war events stay wired to real subscribers.

Software has always been bad. The new part is the speed at which bad software can now look exactly like good software, claim to be serious infrastructure, and accumulate the trappings of a maintained open-source project without any of the substance. GitHub's issue tracker used to be a meaningful accountability signal. "These issues were raised and closed" meant something. It doesn't mean as much now. "Completed" can mean anything. Closed can mean renamed. Open can mean permanently ignored.

The DEFCON 3 is hardcoded. The Reuters war events are fabricated. The aircraft are simulated. The last time any of those facts changed was never. But the timestamps say right now, and the interface says it's real, and seventy-one issues say it matters. And the maintainer hasn't responded to a single one.

Updates and corrections

If any maintainer documented here provides factual correction or remediation evidence, this page will be updated with a dated note.

  • 2026-05-28: Initial publication. Covers the DDoS accusation, the rename-and-close pattern (3+ repos), the 45-issue bulk closure, the jailbreak attempts, the GitHub slop thesis, good responses (elm1nst3r, EliseyRotar, keyhog), GlobeNewsLive (71 issues, 0 responses), the sentinel.axonia.us cluster, and the OSINTworldview session-log finding.

Submit a repo

If you've come across a public "intelligence," OSINT, situational-awareness, or geospatial dashboard built on fabricated data, unsafe endpoints, or unverified sources, email me. The repo needs to be public. Specific code references help. Anonymous submissions are fine.

Part 1, the technical findings, is at labs.jamessawyer.co.uk/ai-slop-intelligence-dashboards/.