Agent skill · software engineering · microsoft
author-contributions
Identify all files a specific author contributed to on a branch vs its upstream, tracing code through renames. Use when asked who edited what, what code an author contributed, or to audit authorship before a merge. This skill should be run as a subagent — it performs many git operations and returns a concise table.
Why this skill is useful
Adds a complex Python script that automates the process of tracing author contributions through git, which the AI wouldn't reliably generate on its own.
What it needs
Requires git, python installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 188,455 stars on the source repository.
What this skill does
When asked to find all files a specific author contributed to on a branch (compared to main or another upstream), follow this procedure. The goal is to produce a simple table that both humans and LLMs can consume. Run as a Subagent This skill involves many sequential git commands. Delegate it to a subagent with a prompt like: Find every file that author "Full Name" contributed to on branch <branch> compared to <upstream>. Trace contributions through file renames. Return a markdown table with columns: Status (DIRECT or VIARENAME), File Path, and Lines (+/-). Include a summary line at the end. Procedure 1. Identify the author's exact git identity Match the requested person to their exact --author= string. Do not guess — short usernames won't match full display names (resolve via git log or the GitHub MCP getme tool). 2. Collect all files the author directly committed to For each commit hash, extract touched files: Union all results into a set (authorfiles). 3. Build rename map across the entire branch For every commit on the branch (not just the author's), extract renames: Parse lines with R status to build a map: newpath → {oldpaths}. 4. Get the merge diff file list These are the files that will actually land when the branch merges. 5. Classify each file in the merge diff For each file in step 4: If it's in authorfiles → DIRECT Else, walk the rename map transitively (follow chains: current → old → older) and check if any ancestor is in authorfiles → VIARENAME Otherwise → not this author's contribution 6. Get diff stats 7. Return the table Format the result as a markdown table: Important Notes Use Python for the heavy lifting. Shell loops with inline comments break in zsh. Write a temp .py script, run it, then delete it. Author matching is exact. Always run step 1 first. --author does substring matching but you must verify the right person is matched (e.g., don't match "Joshua Smith" when looking for "Josh S."). …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills microsoft/author-contributions