Agency/docs/decisions/004-no-per-repo-tier-weighting.md
Ryan Schultz 2bd59e53c9 docs: ADR 004; CHANGE_TEMPLATE; GitHub repo scope in config
- docs/decisions/004-no-per-repo-tier-weighting.md — records why all GitHub repos
  are weighted equally; prevents the question from being re-litigated from scratch
- docs/sites/CHANGE_TEMPLATE.md (renamed from RETIREMENT_TEMPLATE.md) — covers weight
  adjustments, scope changes, and full retirement in one template
- config.yaml — added github.repos list to define collection scope explicitly
- docs/sites/active/github.md — reverted to simple repo table; links to ADR 004
- docs/sites/active/README.md — GitHub section notes equal weighting with ADR 004 link
- docs/ARCHITECTURE.md — CHANGE_TEMPLATE linked from site governance section
- README.md — Contributing section links to both PROPOSAL_TEMPLATE and CHANGE_TEMPLATE

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 14:12:13 -05:00

2.6 KiB
Raw Permalink Blame History

ADR 004 — No per-repo tier weighting for GitHub

Date: 2026-05-11 Status: Accepted


Context

As we began defining which GitHub repositories to collect from, a question arose: should contributions to different repos be weighted differently? A commit to IfcOpenShell/IfcOpenShell — the core of the OSArch technical ecosystem — feels more significant than a commit to a smaller peripheral project.

A tier system was prototyped: repos assigned to core (×1.0), community (×0.5), or peripheral (×0.25) tiers, with the tier multiplying the base GitHub weight.


Decision

All GitHub repos are weighted equally. No tier system.


Why the tier system was rejected

Smaller repos self-regulate by activity volume. A repo with 50 total commits will naturally produce lower scores than one with 5,000. A contributor making 10 commits to a small repo is still making 10 commits — the number is honest. Applying a multiplier that says those commits are worth less encodes a judgment that the system probably shouldn't be making.

Tiers introduce implicit hierarchy between projects. Assigning a repo to peripheral is a statement about its value to the community. That is a politically loaded decision, especially for individual contributors whose primary work lives in smaller repos. It risks creating a two-class system of contributions.

The system should describe participation, not rank it. The agency signal is about visibility, not evaluation. The moment we start weighting some contributions as structurally more valuable than others, we are making governance decisions that belong to the community — not to the scoring algorithm.

Simplicity is a feature. The flat model is easier to explain, easier to trust, and harder to argue with. "A commit is a commit" is a defensible position. "A commit to this repo is worth twice as much as a commit to that repo" requires justification every time.


What was kept

The repo list in config.yaml remains. This defines the scope of collection — which repos are watched — without encoding any judgment about their relative importance.

github:
  repos:
    - IfcOpenShell/IfcOpenShell
    - brunopostle/ifcurl
    - brunopostle/ifcmerge
    - brunopostle/homemaker-addon
    - falken10vdl/bonsaiPR

Consequences

  • Scores are not artificially inflated or deflated based on which repo work happens in
  • Contributors to smaller or newer projects are not penalized
  • The community may revisit this if gaming is observed (e.g. trivial commits to in-scope repos to inflate scores) — that would be the legitimate trigger for reconsidering differential weighting