sokrates-people-config

Merges duplicate contributor identities from git history into Sokrates config-people.json files.

3|1|Updated Aug 26, 2026
One-click install
npx skills add https://github.com/zeljkoobrenovic/sokrates-skills --skill sokrates-people-config-zeljkoobrenovic
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sokrates-people-config
Source: https://github.com/zeljkoobrenovic/sokrates-skills/tree/main/skills/config/sokrates-people-config
Command: npx skills add https://github.com/zeljkoobrenovic/sokrates-skills --skill sokrates-people-config-zeljkoobrenovic

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Git history records the same person under many e-mail addresses and user names, inflating contributor counts and distorting Sokrates metrics like bus factor and team size. This Skill resolves those duplicate identities into a reviewed config-people.json so every contributor number reflects real people. ## Core Features & Use Cases - Rule-based identity merging: Applies seven explicit, confidence-rated rules (same e-mail, same user-name key, GitHub noreply forms, matching logins, shared local parts, name-derived local parts, similar names) while excluding bots and generic names like admin or root. - Repository and landscape modes: Builds _sokrates/config-people.json from one repository's git-history.txt, or a landscape-wide _sokrates_landscape/config-people.json that imports each repository's existing people config as trusted evidence. - Human review trail: Writes config-people-for-review.json listing every applied merge with its rules and evidence, plus candidates not applied, so a human can accept or reject decisions; existing hand-made entries are always preserved. - Use Case: A landscape shows 900 contributors but the team suspects duplicates. Run the script in dry-run mode, review the flagged merges, then write the config and re-run Sokrates to get accurate bus-factor numbers. ## Quick Start Ask the AI to build and review the contributor identity config for your repository or landscape by running the build_people_config.py script with the appropriate path.

Frequently Asked Questions about sokrates-people-config

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I merge duplicate contributors in Sokrates?

Run build_people_config.py with --repo pointing at a repository containing git-history.txt, or --landscape pointing at a landscape root. It writes config-people.json with merged identities and a config-people-for-review.json listing every merge for human verification.

How do I fix inflated bus factor or contributor counts in Sokrates?

Inflated counts usually come from one person committing under several e-mail addresses. This Skill resolves those identities into config-people.json entries with emailPatterns, so Sokrates collapses them into one person and reports accurate bus-factor and team-size numbers.

What identity matching rules does the people config script use?

It applies seven confidence-rated rules: same e-mail, same normalized user name, GitHub noreply address forms, e-mail local part matching a GitHub login, same local part across domains, local parts derived from name patterns, and similar user names. Bots and generic names like admin are excluded.

Does the script overwrite my hand-edited config-people.json?

No. Existing config-people.json entries are loaded first and seeded as certain merge groups, so hand-made entries, links, and images are preserved on every re-run. Rejected merges stay rejected because the tool never modifies existing entries.

When should I use --min-confidence medium instead of high?

Use medium in organizations where one login maps to one person across domains, since it additionally merges same-local-part and name-derived-address candidates. Avoid it for open-source portfolios where the same local part on different domains often belongs to different people.

What if a repository has no git-history.txt file?

The script falls back to reading contributor data from the repository's analysisResults inside _sokrates/reports/data/data.zip. Note that those contributors may already reflect a previous config-people.json merge, so git-history.txt is the preferred source.