Add explainers/protected-attribute.md.
The foundational concept the entire project rests on: what a protected attribute is, which ones the law recognizes (and how that varies by jurisdiction and domain), and why removing them outright ("fairness through unawareness") does not remove the bias — it just hides it behind proxies. A strong beginner on-ramp that most other explainers can link back to.
Suggested structure (match roc-curve-auc.md): one-sentence definition → why it matters for fairness → core concept → concrete example tied to a repo audit → runnable detection code → limitations → related concepts/projects/further reading.
Related: proxy-variables, proxy-entanglement, disparate-treatment.
See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page.
Freeze-safe: explainers are fully open during the paper freeze. If you quote any Fair Code benchmark result, use the frozen numbers in paper/results-frozen/ (never re-run your own) — see CLAUDE.md.
Add
explainers/protected-attribute.md.The foundational concept the entire project rests on: what a protected attribute is, which ones the law recognizes (and how that varies by jurisdiction and domain), and why removing them outright ("fairness through unawareness") does not remove the bias — it just hides it behind proxies. A strong beginner on-ramp that most other explainers can link back to.
Suggested structure (match roc-curve-auc.md): one-sentence definition → why it matters for fairness → core concept → concrete example tied to a repo audit → runnable detection code → limitations → related concepts/projects/further reading.
Related: proxy-variables, proxy-entanglement, disparate-treatment.
See CONTRIBUTING.md: add
explainers/<slug>.mdplus a one-line entry inassets/explainers-data.json; the build script generates the page.