Change only starter/rules_check.py. Standard library only.
load_rule_files(directory) -> dict[str, str]: read the text of every present rule file amongAGENTS.md,CLAUDE.md,.cursorrules.is_pointer(text) -> bool: true when the file is a thin pointer — at most 10 non-empty lines and at least one line referencingAGENTS.md.check_directory(directory) -> dictreturning{"source": "AGENTS.md", "ok": bool, "files": [...]}:AGENTS.mdmissing or empty produces amissing-sourceentry andok=False.- A present, non-empty
AGENTS.mdproduces asourceentry. - Every other rule file is classified:
pointer(thin pointer),copy(exact match ofAGENTS.mdcontent), ordiverged(anything else), each with anissueslist;divergedentries carry a reason naming the difference fromAGENTS.md. ok=Trueonly when every entry issource,pointer, orcopy.
main(argv=None) -> int:- Exactly one argument (the directory). Otherwise print usage to stderr and return 2.
- Print
ok=... files=... diverged=...to stdout; return 0 whenok, otherwise 1.
Done means python verify.py starter exits 0 with all eleven tests passing.