NovaCode37/Prism-platform - Open Source PR Review Scorecard

Self-hosted OSINT platform. Point it at a domain, IP, email, phone or username and 26 modules run in parallel: WHOIS, DNS, threat intel, breaches, username search. One dashboard, an exposure score, an entity graph, HTML and PDF reports.

C-Rank Grade: A (Welcoming) - 59/100

External PR Merge Rate: 42%

Response Time: 18h

First Timer Success: 50%

Frequently Asked Questions

Is NovaCode37/Prism-platform welcoming to first-time open-source contributors?

NovaCode37/Prism-platform has a recorded first-timer success rate of 50.0%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in NovaCode37/Prism-platform respond to incoming external pull requests in approximately 18.2 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 59.3 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 59.3 places NovaCode37/Prism-platform in the A tier.

What is the external contributor pull request merge rate for NovaCode37/Prism-platform?

The external contributor pull request merge rate for NovaCode37/Prism-platform is 42.3%, based on public PR activity from non-core contributors.

Are there Good First Issues available in NovaCode37/Prism-platform?

NovaCode37/Prism-platform currently has 19 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

NovaCode37
NovaCode37/Prism-platformA•Welcoming241
GitHub
Back to Explorer
NovaCode37

NovaCode37/Prism-platform

241
Active (30d)A•Welcoming(59/100)Python

Self-hosted OSINT platform. Point it at a domain, IP, email, phone or username and 26 modules run in parallel: WHOIS, DNS, threat intel, breaches, username search. One dashboard, an exposure score, an entity graph, HTML and PDF reports.

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Active Open-Source Maintainer

Warmth Score
7.8/10
Patience Score
8.2/10
Nitpick Rate
20%

Growing Python project in NovaCode37/Prism-platform welcoming community pull requests and bug fixes.

Top PR Submission Do's

  • •Ensure code complies with Python style conventions
  • •Keep PRs scoped and well-documented
  • •Include relevant test coverage for changes

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without context
  • •Do not break existing automated test suites
  • •Do not mix unrelated refactors with feature work
Response Velocity
18 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
42.3%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
50.0%
Accepts new contributor PRs

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
13 core
Highly collaborative maintainer core
Diagnostic Health HUD
42.3%
Merge Gauge
50.0%
1st-Timer
Community Vibe48/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for NovaCode37/Prism-platform
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/NovaCode37/Prism-platform)](https://getmerged.abhishekco.de/NovaCode37/Prism-platform?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

The MAC lookup endpoint (/api/mac, web/app.py around line 1146) predates module_status and treats every non-200 from macvendors.com the same way: elif resp.status_code == 404: return {"mac": normalized_mac, "vendor": None, "error": "Not found", "source": "api"} else: return {"mac": normalized_mac, "vendor": None, "error": f"API returned status {resp.status_code}", "source": "api"} What that causes: 404 is an answer, not a failure. macvendors returns 404 when the OUI is not registered (random and locally administered MACs hit this all the time). Because error is set, the Mac panel in ToolPanels.tsx shows a red error card, even though it already has a toolPanels.mac.notFound string for exactly this case. 429 looks like a broken tool. The free API allows about one request per second. Two lookups in a row give "API returned status 429" in red, with nothing saying "wait a second and retry". MODULE_PROXY is ignored. The request is _requests.get(...) with no proxies=get_proxies(), un

📅 Opened Oct 10, 2026💬 0 comments
Quality: 90/100Contribute

modules/onion_checker.py returns zero results for every target, and the scan shows that as a clean "nothing found". >>> o = OnionChecker(timeout=15) >>> len(o._search_ahmia("bitcoin")), len(o._search_darksearch("bitcoin")) (0, 0) Two separate causes: Ahmia now puts a hidden field on its home page (<input type="hidden" name="85f590" value="986a59">, the name and value rotate). A request to /search/?q=... without that pair gets a 302 back to /. requests follows it, parses the home page, finds no <li class="result"> blocks and returns []. With the pair added, the same search returns a normal results page. DarkSearch is gone. darksearch.io does not resolve any more, so _search_darksearch always lands in its except branch. Both failures are swallowed, so nothing tells the user the module did not actually search. What to do: In _search_ahmia, first GET https://ahmia.fi/, read the hidden input's name and value, and pass it as an extra query parameter on the search request (use one request

📅 Opened Oct 10, 2026💬 0 comments
Quality: 90/100Contribute

dataclasses-json is listed in both requirements.txt and requirements-web.txt, so it is installed into the published image, but nothing imports it: git grep -n "dataclasses_json\|dataclass_json\|DataClassJsonMixin" # no matches It has been there since the 2.0 rewrite in March. While you are in these files, requirements.txt also carries the test tooling (pytest, pytest-cov, pytest-asyncio), which a source install does not need to run PRISM. What to do: Remove dataclasses-json from both files. There is a test that fails when the two files disagree on a shared package, so change them together. Move pytest, pytest-cov and pytest-asyncio into a new requirements-dev.txt, and install it in .github/workflows/ci.yml alongside the main requirements. Mention requirements-dev.txt in the contributing notes where the test command is described. Done when CI passes with the slimmer runtime requirements and pip install -r requirements.txt no longer pulls test tooling.

📅 Opened Oct 9, 2026💬 2 comments
Quality: 90/100Contribute

Two strings are still English in every non-English locale, because the English text was copied into each file and never translated: topbar.getFirefoxExtension "Get the Firefox extension" results.json.copyRawJson "Copy raw JSON" They are easy to miss: npm run test:i18n checks that every locale has the same keys, and it has no way to notice that a value is identical to the English one. What to do: Translate both keys in the nine non-English files by hand. Extend frontend/scripts/test-i18n-keys.mjs so it fails when a non-English value is identical to the English one and contains at least two words. Short technical strings (DNS, ASN, JSON, SPF · DKIM · DMARC) are legitimately the same everywhere, so keep an allowlist for the few that trip the rule. Done when the check runs in CI, passes on main, and fails if someone copies an English sentence into a locale file.

📅 Opened Oct 9, 2026💬 0 comments
Quality: 90/100Contribute

Since #525, a GitHub username that does not exist is reported as ok with status_reason: "GitHub user not found", which is the right status: the lookup worked and the answer is "no such user". The frontend has not caught up. In ScanResults.tsx the GitHub card is a KeyModuleCard, and KeyModuleCard only renders status_reason for skipped, rate_limited and error. For ok it renders the children, so a missing user now shows a card of empty rows (Name, Type, Bio, Company, ...) and "Repos: not checked", with nothing saying why. What to do: When r.github is ok and r.github.profile is empty, render the reason (or a translated "No GitHub user with this name") instead of the field list. Put the text in messages/*.json under results.github, in all ten locales; npm run test:i18n checks they line up. Keep the card itself, so the user can still refresh the module. Done when scanning a username that has no GitHub account shows one clear line in the GitHub card instead of empty fields.

📅 Opened Oct 9, 2026💬 0 comments
Quality: 90/100Contribute
Looking for more Python beginner tasks?Explore Python GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for NovaCode37/Prism-platform

When evaluating whether to contribute to NovaCode37/Prism-platform, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of NovaCode37/Prism-platform acknowledge new external contributions in approximately 18 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 42.3% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to NovaCode37/Prism-platform

01

Is NovaCode37/Prism-platform welcoming to first-time open-source contributors?

NovaCode37/Prism-platform has a recorded first-timer success rate of 50.0%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~18 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 59.3 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 59.3 places NovaCode37/Prism-platform in the Welcoming tier.

04

What is the external contributor pull request merge rate for NovaCode37/Prism-platform?

The external pull request merge rate is 42.3%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in NovaCode37/Prism-platform?

Yes, NovaCode37/Prism-platform currently has 19 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for NovaCode37/Prism-platform are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.