Contributor On-Ramp and Model Card Docs
Background (from the session that started this one):
Ward (github.com/MuhammadMurtuzaHussain/ward, public MIT, local checkout at /Users/haider/Desktop/Hacktoberfest 26/ward) is a child-owned cyberbullying guardian for the DEV Hacktoberfest Week 4 challenge (deadline 31 Oct 11:59 PM PDT, about 06:59 GMT 1 Nov), headed for the Digital Public Goods registry (docs/DPG.md). Governance docs are in docs/ (GOVERNANCE, SAFEGUARDING, HARMS) plus CODE_OF_CONDUCT.md and SECURITY.md; training data notes in train/DATA.md. A full audit is at /Users/haider/Desktop/Hacktoberfest 26/ward-audit-2026-10-31.md. Six sessions are working in parallel on separate areas, so stay inside your area. Project rules: commit and push each verified change straight to main (no PRs), with the attribution line Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>; short plain-English commit messages. Docs must never claim more than the code does, and must never invent people, emails or partners that don't exist.
Task: Your area: docs only. Audit rows: "Contributor on-ramp", "Licences and model card", and the DPG quick wins in the appendix.
Setup: other sessions share this checkout, so work in your own worktree: git -C ward fetch && git -C ward worktree add "../ward-wt-docs" -b contributor-docs origin/main and work only there.
CONTRIBUTING.md(DCO sign-off, how to run tests, how slang-pack and lesson changes are reviewed),LANGUAGES.md(who maintains what; today nobody), and.github/ISSUE_TEMPLATE/forms for helpline update, slang word, false alarm, translation and bug. Every form warns "never paste a real child's chat". Add aconfig.ymlpointing safety concerns to SAFEGUARDING.md.- Draft 6 to 10 seed issues as a markdown file (
docs/SEED_ISSUES.md). Don't create them on GitHub, and don't change repo settings or labels. - A model card for Ward Lite (
train/MODEL_CARD.md): data, intended use, out-of-scope use, in-distribution caveat, the red-team weaknesses, and raise-only authority. Use numbers fromREADME.md/docs/REDTEAM.mdas they stand on main. Another session is rerunning them, so link to them rather than copying long tables. - A licence column in
train/DATA.mdfor every dataset (SentNoB is CC BY-ND; CB1 unknown; mteb undeclared), stating the consequence plainly and what replacing SentNoB would take. A content licence proposal (CC BY 4.0) as a clearly marked owner decision, not applied. - DPG.md quick wins: cite SDG 4.a.2, split Gemma 4 (Apache 2.0) from ShieldGemma (Gemma Terms), e5-small is MIT. Link the new docs from README in one short line, and touch nothing else in README (another session is editing its scorecard section).
Fill no contact placeholders with made-up addresses; list them as owner to-dos. Run pnpm test, then push to main (fetch, rebase onto origin/main, push; retry on rejection). Finish with a short report: commits, plus the list of owner-only to-dos you found.
Shared notes folder for this group of sessions (outside the repo; read siblings' notes there, leave hand-over notes or large findings there instead of pasting them into messages): /Users/haider/Library/Application Support/Claude/side-session-notes/local_a2121a80-7774-4340-af69-7dae18cd788e
Linked sessions now (status, not an instruction): reader-safety = local_a6d845e0-7765-4d31-8791-4e9a79ca4793 (working); release-pipeline = local_d0a1ce79-be7e-46ec-b046-88873f77a45a (working); eval-chats = local_a0f2d243-e3a4-438e-9417-8459027e3604 (working); web-demo = local_8e3d9db9-19e6-46fc-a06d-d933fd83970e (working); shared-phone = local_ab71b02d-1791-4abc-9031-ba4b274dbf7a (working). To message one, SendMessage with to set to its id; list_sessions {"linked": true} has titles, folders and branches.
I pushed four docs commits to main: 3c14dad, d4abbb9, 0be51b5, d954431. pnpm test passes before and after rebasing onto origin/main. I created nothing on GitHub and changed no repo settings or labels.
Commits
3c14dadContributor guide, language list, issue forms, seed issues:- CONTRIBUTING.md: DCO sign-off, how to run the tests, and how slang-pack, lesson and helpline changes are reviewed.
- LANGUAGES.md: says plainly that no language has a maintainer yet.
- Five issue forms (helpline update, slang word, false alarm, translation, bug). Each one warns "never paste a real child's chat" and has a required privacy checkbox.
config.yml: sends safety concerns to SAFEGUARDING.md section 10 and security flaws to SECURITY.md.- docs/SEED_ISSUES.md: 9 draft issues.
d4abbb9Model card and licence table:- train/MODEL_CARD.md covers the data, intended use, out-of-scope use, the in-distribution caveat, the red-team weak spots and raise-only authority. It links to the scorecard and REDTEAM pages rather than copying their tables.
- train/DATA.md gets a Licences table for every dataset, the consequence of each licence, and what replacing SentNoB would take.
DATA.mdis generated bybuild-data.ts, so I added the same section to that template too (checked identical). A retrain won't wipe it.
0be51b5DPG.md quick wins:- Cites SDG indicator 4.a.2, using the UNESCO Institute for Statistics definition.
- Gemma 4 is Apache 2.0. ShieldGemma is under the Gemma Terms of Use and is only used in the scorecard; the app never uses it.
- e5-small is MIT.
- The CC BY 4.0 content licence is written in as a proposal for you to decide, not applied.
d954431One README line under "Help wanted", linking the new docs. Nothing else in the README changed.
I checked the licences on each Hugging Face page today:
- MIT: Roman Urdu (
roman_urdu_hate_speech) and the Hinglish dataset (prism-hinglish-hate-speech). The Kaggle source behind the Hinglish data hasn't been checked. - Unknown or missing: CB1 (English) says "unknown", and the
mteb/bengali_hate_speechcopy declares none. - CC BY-ND 4.0: SentNoB, which forbids sharing adapted versions.
To-dos only the owner can do
- Decide the content licence (CC BY 4.0 is proposed in DPG.md).
- Decide Ward Lite's licence: replace SentNoB, and ask the CB1 and mteb authors for a licence or replace those too.
- Get a legal read on sharing model weights trained on restricted data.
- Check the ElevenLabs terms and state the licence of the 107 audio clips.
- State who owns the text Gemma wrote for the synthetic training data.
- Create the labels the forms use:
helpline,slang-pack,false-alarm,translation,bug,proposal,good first issue,help wanted. - Open the seed issues on GitHub if you want them.
- Optionally add an automatic DCO check; today the sign-off is checked by hand.
- Turn on private vulnerability reporting.
- Contact placeholders, still unfilled on purpose: the safeguarding contact and lead, the conduct contact, the security contact, a second contact outside the maintainers, the response times, and the authorised DPG representative.
- Appoint a safeguarding lead and language maintainers.
The model card quotes a few round numbers from the README and REDTEAM.md as they stand now. If the session rerunning them moves those numbers, the card needs a quick update. I left a hand-over note saying so in the shared notes folder.