Update Contributors (solvcon)

SkillDev tools

Regenerate CONTRIBUTORS.md with contrib/lint/analyze-contributors.py and repair the identities the generator gets wrong. Use when the user asks to update the contributor list or add someone to CONTRIBUTORS.md.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Update Contributors (solvcon) skill

What this skill tells your AI

The instructions your AI receives, as published by solvcon/solvcon in .claude/skills/update-contributors/SKILL.md and read by ahel’s review.

CONTRIBUTORS.md is generated by contrib/lint/analyze-contributors.py: a contributor stays in the list when an address appears in a source-file copyright header or the identity reaches the commit threshold (5) on the local master ref.

python3 contrib/lint/analyze-contributors.py --update-file CONTRIBUTORS.md

The script reads the local master, not a remote-tracking ref, so fast-forward it first; a fetch alone leaves recent contributors out.

Repair a rejected identity in .mailmap

Git author identities are whatever a contributor's machine was configured with. When an identity carries an unreachable address (@...local, a bare host name, no @) or a non-ASCII name, the script prints it with the .mailmap lines that repair it. A kept identity is an error: the script refuses to write CONTRIBUTORS.md and exits 1. A dropped one is a warning, because its commits may belong to a listed contributor. Repair both in .mailmap at the repository root; never edit such an address into the list by hand. Leave a warning alone only when the real contributor cannot be found (for example a one-commit ident with no matching GitHub account).

Find the contributor's real name and address (their other commits, or the pull request they landed), then add one line per bad address:

Pat Doe <pat.doe@example.com> <pat@Pat-MacBook-Pro.local>

git log applies the mailmap before the script sees a commit, so the mapped commits count toward the real address, which is often what carries the identity over the threshold. Re-run the script and confirm a second run leaves the file unchanged.

Running the script with no arguments prints a keep/drop report with commit counts and reasons; use it to explain a threshold decision.

Signals

GitHub stars
76
Forks
73
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
update-contributors
Source
github.com/solvcon/solvcon