From 898b52edcb47bcb3e9d6106e74ca73e74ea01e70 Mon Sep 17 00:00:00 2001 From: sillylaird Date: Thu, 3 Sep 2026 00:33:59 +0000 Subject: import live www.sillylaird.ca webroot --- .../code-review-excellence/scripts/pr-analyzer.py | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 .agents/skills/code-review-excellence/scripts/pr-analyzer.py (limited to '.agents/skills/code-review-excellence/scripts/pr-analyzer.py') diff --git a/.agents/skills/code-review-excellence/scripts/pr-analyzer.py b/.agents/skills/code-review-excellence/scripts/pr-analyzer.py new file mode 100755 index 0000000..86d2b26 --- /dev/null +++ b/.agents/skills/code-review-excellence/scripts/pr-analyzer.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import subprocess +from pathlib import Path + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description='Summarize git diff size for review planning.') + parser.add_argument('--repo', default='.', help='Repository path') + parser.add_argument('--base', default='HEAD~1', help='Base revision') + parser.add_argument('--head', default='HEAD', help='Head revision') + return parser.parse_args() + + +def main() -> int: + args = parse_args() + repo = Path(args.repo).resolve() + result = subprocess.run( + ['git', '-C', str(repo), 'diff', '--numstat', args.base, args.head], + capture_output=True, + text=True, + check=False, + ) + if result.returncode != 0: + print(result.stderr.strip() or 'git diff failed') + return result.returncode + files = 0 + added = 0 + deleted = 0 + for line in result.stdout.splitlines(): + parts = line.split(' ') + if len(parts) != 3: + continue + a, d, _ = parts + if a.isdigit(): + added += int(a) + if d.isdigit(): + deleted += int(d) + files += 1 + print(f'files={files}') + print(f'added={added}') + print(f'deleted={deleted}') + return 0 + + +if __name__ == '__main__': + raise SystemExit(main()) -- cgit v1.2.3