Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mawid

Code has calendars hidden inside it.

Promo ends on a date. Trial logic expires on a date. A launch workaround should be removed after a date. A cron job runs at 2 AM, but nobody wrote which 2 AM.

Then everyone forgets.

Mawid is a local time-bomb scanner for developers. It scans code and config for expired cutoffs, stale temporary hacks, upcoming launch windows, old hardcoded dates, and cron schedules with no timezone.

No API. No cloud upload. No database. No LLM.

Just a local check for the kind of bugs that wait quietly until the calendar changes.

Demo

Mawid demo

What It Checks

  • Expired dates near words like expires, remove after, temporary until, trial, promo, or sunset.
  • Upcoming date bombs inside a configurable window.
  • Old hardcoded dates that may be stale control logic.
  • TODO/FIXME/HACK/temporary markers with no removal date.
  • Cron schedules with no explicit timezone.
  • JavaScript date-only parsing such as new Date("2026-06-01").

Install

For now:

python3 -m pip install -e .

Later, if the package earns it:

pip install mawid

Quick Start

mawid .
mawid src/
mawid examples/broken --today 2026-05-20
mawid examples/broken --window-days 90

Run without installing:

PYTHONPATH=src python3 -m mawid examples/broken --today 2026-05-20

UI

mawid ui

Open:

http://127.0.0.1:8775/

Example Output

MAWID BLOCK: 5 issue(s)
Target: examples/broken
Risk score: 42
Summary: critical=0 high=1 medium=2 low=2

HIGH  expired_time_bomb  app.js:1
// TODO temporary Stripe promo until 2026-04-01
Why: The date 2026-04-01 is already past and appears tied to temporary or deadline logic.
Fix: Remove the expired branch, extend the date deliberately, or turn it into config with an owner.

Output Formats

mawid . --format text
mawid . --format json --output mawid-report.json
mawid . --format csv --output mawid-report.csv
mawid . --format sarif --output mawid.sarif

Release Gates

mawid . --fail-on high
mawid . --fail-on medium

Exit codes:

  • 0: pass
  • 1: review findings found
  • 2: blocked by --fail-on

Scope

Mawid does not understand business intent.

It does not know whether a date is correct.

It does not rewrite your code. It finds suspicious date and timezone patterns so a human can decide before production does.

Development

python3 -m unittest discover -s tests
python3 -m compileall src tests
python3 -m pip wheel . -w /tmp/mawid-wheel

Roadmap

  • GitHub Action mode.
  • Owner syntax like owner:@team remove-after:YYYY-MM-DD.
  • Framework-specific cron config parsing.
  • Calendar export for upcoming code deadlines.
  • Ignore rules for historical fixtures.

Contributing

PRs are welcome if they make calendar bugs easier to catch before the calendar catches us.

About

Maintained by mara. Created by the CTO.

About

Local time-bomb scanner for expired dates, stale hacks, and timezone traps in code.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages