Skip to content

feat(contributor-metrics): count *-site repository work as website - #1950

Merged
potiuk merged 3 commits into
apache:mainfrom
potiuk:contributor-metrics-repo-areas
Nov 1, 2026
Merged

potiuk merged 3 commits into
apache:mainfrom
potiuk:contributor-metrics-repo-areas

Conversation

@potiuk

@potiuk potiuk commented Nov 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Work in a repository that exists for one purpose carried no area unless someone labelled it. An ASF project's website repository (<project>-site) has no labeler, so contributors' website work showed as (unlabelled) in the contributor-growth briefs and reports and never counted toward area breadth.
  • contributor-metrics score gains a repeatable --repo-area GLOB=AREA: an item from a repository whose name matches GLOB (read from the item URL) also counts under AREA, labelled or not, and that area counts toward breadth.
  • The mapping is configuration, not code: a new contributor_activity.repository_areas key. The ASF organization maps "*-site" to website; the independent baseline maps nothing. contributor-to-committer, nomination and calibrate pass it wherever they run score, so candidates and past nominees are measured the same way (candidate-screen measures through contributor-to-committer).

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)
  • Other: organization manifests (organizations/ASF, organizations/independent)

Test plan

  • prek run --all-files passes, apart from two pytest cases in agent-isolation and vetted-ops that fail only inside the local agent sandbox and do not touch this change
  • tools/contributor-metrics: 91 tests pass, including new ones for unlabelled site work counted as website, the area added alongside labels, no effect without the flag, and the CLI flag's parsing and its error on a malformed value
  • Eval suite contributor-to-committer/step-2a-discount-automated (the step whose score command changed): 7/7 pass (case 6 failed once on 1.0 vs 1 and passed on re-run)
  • measured_tokens restamped for the three skills; spec contributor-growth.md updated
  • Other:

RFC-AI-0004 compliance

  • Vendor neutrality — the tool knows no organization; the ASF rule lives in the ASF organization manifest and reaches skills through the config chain

Linked issues

Notes for reviewers (optional)

  • Independent of the labels PR (family:dev / family:cross-family); both branch from main.

Generative AI: this change was written with Claude Code (Claude Opus 5) and reviewed by the PR author.

🤖 Generated with Claude Code

Work in a repository that exists for one purpose carried no area unless
someone labelled it, so an ASF project's website contributions showed up
as "(unlabelled)" and did not count toward area breadth.

contributor-metrics score takes a repeatable --repo-area GLOB=AREA: an
item from a repository whose name matches GLOB also counts under AREA,
labelled or not. The value comes from a new organization key,
contributor_activity.repository_areas; the ASF organization maps "*-site"
to "website", the independent baseline maps nothing. contributor-to-committer,
nomination and calibrate pass it wherever they score, so candidates and
past nominees are measured the same way.

Generated-by: Claude Opus 5
@github-actions github-actions Bot added family:tools tools/* family:docs Docs, MISSION.md, READMEs capability:stats Read-only dashboards, metrics, governance evidence family:contributor-growth contributor-growth skills substrate:analytics Tool substrate: read-only metrics / dashboards / renderers labels Nov 1, 2026
@potiuk
potiuk enabled auto-merge (squash) November 1, 2026 10:15
@github-actions github-actions Bot added the family:dev Repo dev: .asf.yaml, spec-loop specs, Node manifests, .claude/settings.json label Nov 1, 2026
@potiuk
potiuk merged commit f3adbcc into apache:main Nov 1, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capability:stats Read-only dashboards, metrics, governance evidence family:contributor-growth contributor-growth skills family:dev Repo dev: .asf.yaml, spec-loop specs, Node manifests, .claude/settings.json family:docs Docs, MISSION.md, READMEs family:tools tools/* substrate:analytics Tool substrate: read-only metrics / dashboards / renderers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant