Skip to content

feat: first-class CC NC/ND license families (CC-BY-NC, CC-BY-NC-SA, CC-BY-NC-ND, CC-BY-ND)#7

Merged
MyPrototypeWhat merged 14 commits into
mainfrom
m13t/adoring-taussig-e6b731
Jul 3, 2026
Merged

feat: first-class CC NC/ND license families (CC-BY-NC, CC-BY-NC-SA, CC-BY-NC-ND, CC-BY-ND)#7
MyPrototypeWhat merged 14 commits into
mainfrom
m13t/adoring-taussig-e6b731

Conversation

@MyPrototypeWhat

Copy link
Copy Markdown
Owner

Summary

  • Core: adds CC-BY-NC / CC-BY-NC-SA / CC-BY-NC-ND / CC-BY-ND to LicenseId + LICENSE_FACTS (NC: commercial/AI denied, redistribution → needs-review; ND: verbatim commercial allowed-with-attribution, AI/derivatives denied), extends the rights schema and lexicalReranker permissiveness table, and ships shared mapCcDeedUrl family mapping + a ccVersionFor guard helper.
  • Providers: openverse, flickr, wikimedia-commons, freesound, jamendo, europeana, internet-archive now emit faithful NC/ND family ids (+ CC version) instead of collapsing to proprietary; all 9 hand-rolled licenseVersion guards migrated to ccVersionFor (incl. rijksmuseum for consistency). rightsstatements.org mappings unchanged by design.
  • Why: the old collapse silently dropped legally required attribution for NC items used in moodboards, and use-verdicts named the wrong license ("not granted by proprietary") — both defects are now pinned by tests.

Fidelity changes, gate stays strict-deny: NC content is still denied for commercial/AI intents (verified E2E in openverse, jamendo, europeana, internet-archive, freesound). The one intended loosening is CC-BY-ND × commercial → allowed-with-attribution, matching the actual license grant.

Changeset included: minor bumps for core + the 7 output-changed providers; TS consumers with exhaustive switch over LicenseId need arms for the four new ids.

Test Plan

  • pnpm -r typecheck — 20/20 packages clean
  • pnpm test:run — 37 files, 259/259 tests (was 245 pre-wave; +14 new NC/ND behavioral tests incl. E2E moat assertions)
  • Straggler greps: no stale CC-BY || CC-BY-SA guards; every remaining proprietary mapping inspected (ARR / sampling deeds / copyrighted books / InC rightsstatements — all correct)

…nt polish

Five approved carry-over items from Tasks 1-8 code reviews:
- openverse: assert nc-sampling+ stays proprietary (bespoke deed, not a family)
- wikimedia-commons: assert versionless cc-by-nc stays unknown (not a false family match)
- freesound: reword the licenseVersion guard comment for clarity
- europeana: add a CC-BY-NC search() E2E fixture (family + version + denied)
- internet-archive: add a CC-BY-NC search() E2E fixture (family + version + denied)

Also fixes a stale jamendo comment (straggler grep during full verify) that
still described NC/ND deeds as collapsing to 'proprietary' — the code (via the
shared mapCcDeedUrl) has mapped them to their real families since 2ff09a8;
only the comment was out of date.
…filter, README ND invariant, shared family table, derived license enum
@MyPrototypeWhat MyPrototypeWhat merged commit e244bd7 into main Jul 3, 2026
1 check passed
@MyPrototypeWhat MyPrototypeWhat deleted the m13t/adoring-taussig-e6b731 branch July 3, 2026 08:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant