0

/ 100

GradeB

Polished and well engineered. Punching above its star count.

Top 16% of 5,156 graded repos

Headless chatbot that detects spam and posts links to it in chatrooms for quick deletion.

Python493Apache-2.01mo ago

Top fixes

Highest-impact changes first, ranked by point weight

10 to address
  1. 1
    Tests18pt

    Wire your tests to a documented command (e.g. a test script in your build config) so the suite is reproducible.

  2. 2
    Install and run instructions9pt

    Add a .env.example listing all required environment variables so contributors know what to set up.

  3. 3
    Reproducibility6pt

    Add .github/dependabot.yml with at least one package-ecosystem entry so dependencies are updated automatically.

  4. 4
    Reproducibility6pt

    Use a multi-stage Dockerfile.

Working through the fixes? Let every push regrade itself.

The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.

Install the GitHub App

Scorecard

Every check, grouped by category and sorted worst-first

Documentation

92

Contributing guide5pt66

Contributing guide is too short for full depth credit (−6 pts). 400+ words earns the full +12 pts.

Add setup instructions, code style notes, and how to run tests.

Install and run instructions9pt90

README documents how to install the project.

README12pt100

README is present.

License6pt100

Licensed under Apache-2.0.

Engineering

80

Linting and formatting5pt0

No linter or formatter config found.

Add a linter config such as .eslintrc.json, .prettierrc, ruff.toml, or .golangci.yml to enforce consistent code style.

Tests18pt80

Test files detected (test).

Reproducibility6pt80

Lockfile present (requirements.txt). Installs are reproducible.

CI/CD14pt100

CI is configured (.github/workflows/build.yml).

Issue and PR templates6pt100

Issue or PR templates present.

Project health

100

Dependency manifest6pt100

Dependency manifest found (requirements.txt).

Repository metadata5pt100

Repository has a description.

Activity5pt100

Actively maintained (pushed within the last month).

Housekeeping3pt100

.gitignore present.

Repository health signals

Activity, community, and responsiveness at scan time

Activity

  • -
    Commits (30d / 90d)
  • 203
    Forks
  • 0
    Releases

Community

  • -
    Community health
  • -
    authors own >50% of commits
  • 493
    Watchers

Responsiveness

  • 2h
    Median issue response
  • <1h
    Median PR merge time
  • 100
    Open issues
Repository files68 root entries
  • .circleci
  • .github
    Good: Code of conduct present.
    Good: CI is configured (.github/workflows/build.yml).
    Good: Issue or PR templates present.
  • classes
  • test
    Good: Test files detected (test).
  • _Git_Windows.py
  • .gitattributes
  • .gitignore
    Good: .gitignore present.
  • apigetpost.py
  • bad_keywords.txt
  • blacklisted_cidrs.yml
  • blacklisted_nses.yml
  • blacklisted_numbers.txt
  • blacklisted_usernames.txt
  • blacklisted_websites.txt
  • blacklists.py
  • bodyfetcher.py
  • chatcommands.py
  • chatcommunicate.py
  • chatexchange_extension.py
  • CODEOWNERS
  • config.ci
  • config.sample
  • CONTRIBUTING_PULLREQS.md
  • CONTRIBUTING.md
    Issue: Contributing guide is too short for full depth credit (−6 pts). 400+ words earns the full +12 pts.Fix: Add setup instructions, code style notes, and how to run tests.
    Issue: Contributing guide lacks a setup section (−12 pts).Fix: Show new contributors how to get a local dev environment running.
    Issue: Contributing guide lacks a code style section (−8 pts).Fix: Describe your linting/formatting rules and how to run them.
    Issue: Contributing guide lacks a testing section (−8 pts).Fix: Show contributors how to run the test suite (e.g. npm test, pytest, cargo test).
    Good: Contributing guide describes the PR/review workflow.
    Issue: Contributing guide has no code examples (−5 pts).Fix: Add code blocks showing example commands for setup, running tests, and submitting a PR.
  • datahandling.py
  • deletionwatcher.py
  • docker-compose.yml
  • docker-startup.sh
  • Dockerfile
    Good: Environment pinned via Dockerfile.
  • editwatcher.py
  • excepthook.py
  • findspam.py
  • flovis.py
  • gitmanager.py
  • globalvars.py
  • helpers.py
  • InspectionReference.md
  • LICENSE-APACHE
  • LICENSE-MIT
  • metasmoke_cache.py
  • metasmoke.py
  • nocrash.py
  • number_homoglyphs.py
  • parsing.py
  • phone_numbers.py
  • queue_timings.py
  • README.md
    Good: README is present.
    Good: README is well structured with multiple sections.
    Good: README includes screenshots or visuals. Great for first impressions.
    Good: README has code examples.
    Good: README links to a live demo or deployed app.
    Good: README includes status badges.
    Good: README documents how to install the project.
    Good: README documents how to run the project.
  • recently_scanned_posts.py
  • REFDOC.md
  • requirements.txt
    Good: Lockfile present (requirements.txt). Installs are reproducible.
    Good: Dependency manifest found (requirements.txt).
  • rooms.yml
  • run_tests.sh
  • SECURITY.md
    Good: Security policy present.
  • socketscience.py
  • spamhandling.py
  • tasks.py
  • tox_classes.ini
  • tox_tests.ini
  • tox.ini
  • user_requirements.txt
  • users.yml
  • util.py
  • watched_asns.yml
  • watched_cidrs.yml
  • watched_keywords.txt
  • watched_nses.yml
  • watched_numbers.txt
  • ws.py
RepoGrade badge preview

Add this badge to your README

It updates automatically each time the repo is re-graded.

[![RepoGrade](https://www.repo-grade.com/api/badge/charcoal-se/smokedetector)](https://www.repo-grade.com/report/charcoal-se/smokedetector)

More graded Python repos