Contributor rules for any AI or automation agent working on GForge (Python).
README.mdPLAN.mdAGENTS.md
GForge is a secure global Git hooks installer for developer workstations. This repository is the Python port of psspl-gaurang/gforge; the original design and detection engine are the work of Gaurang Joshi, Shrey Tandel, and Dwij Acharya, who contributed to it equally.
Do not expand it into:
- Full workstation provisioning
- CI/CD tooling
- Cloud or Kubernetes automation
- Frontend, UI, design system, or branding work
- Generated documentation or agent-skill systems
- Keep docs and code token-friendly.
- Prefer updating the existing root docs over adding new docs.
- Do not invent commands, APIs, or scope.
- Make install operations idempotent.
- Make verify operations read-only.
- Make uninstall remove only GForge-owned files and config.
- Never store or print secrets.
- Preserve the Apache 2.0 license and
NOTICE, and keep the attribution to the original author intact inREADME.mdandNOTICE.
- Stay behaviour-compatible with upstream. The detection engine should agree with the Node implementation rule for rule. When a heuristic must diverge, document why in a comment and in the README's "Differences" table.
src/gforge/scanner.pymust stay standard-library only and free of anygforgeimport. It is copied verbatim into~/.gforge/hooks/and has to run under an arbitrary interpreter.tests/test_hooks.pyenforces this.- The scanner fails closed. Any error path must block the commit, never allow it through unscanned.
- Zero runtime dependencies. Dev-only tools belong in
[project.optional-dependencies].dev. - Support Python 3.9+; no syntax or stdlib API newer than that in shipped code.
- Full type annotations;
mypy --strictmust pass.
Run all of these before proposing a change:
pytest
ruff check .
ruff format --check .
mypy
python -m build # packaging must stay cleanFor documentation-only work, check headings, stale references, empty files, and wording clarity.