Resolve music-history source licensing policy - #81
Conversation
Co-authored-by: FarPointer <47090086+FarPointer@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new “normalized fact” definition conflicts with the material-handling profile table’s guidance about using “original editorial wording,” which would create ambiguous policy and could lead to prohibited copying.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the music-history-db technical implementation strategy spec to resolve the previously contradictory Discogs licensing guidance by separating CC0 monthly dumps from restricted live API content, and by adding a source-by-source policy plus an explicit “fail-closed” licensing exit gate.
Changes:
- Clarifies which “structured foundation” sources are CC0 and explicitly excludes Discogs Restricted Data, MusicBrainz supplementary data, and non-Wikidata Wikimedia API content from that blanket statement.
- Adds a detailed “Source Licensing and Redistribution Policy” section with material-handling profiles and explicit GO/NO-GO decisions per source.
- Reframes the KEXP pilot documents as discovery-only/research material (not a publishable golden dataset source) and adds a source-access licensing exit gate.
File summaries
| File | Description |
|---|---|
| tools/specs/music-history-db/KSER_Music_History_Technical_Implementation_Strategy.md | Documents source-by-source licensing/redistribution policy and adds Discogs-specific GO/NO-GO + licensing exit gate language. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| | **CC0** | Use the named official API or dump and obey its access rules. | Raw data may be retained privately. Bulk raw data stays out of Git as a project policy. | May be stored with source URL, retrieval date, and `CC0-1.0`; use original editorial wording. | Avoid unnecessary source prose; material within the defined CC0 scope may be quoted. | Normalized facts and provenance may be committed; bulk raw data may not. | Normalized facts may be redistributed. Attribution is encouraged even when CC0 does not require it. | | ||
| | **ITEM** | Use only an approved API, download, or ordinary manual access. Check the license or rights statement for each item or collection. | Keep the minimum raw material privately only when its terms permit; record any retention limit. | Factual assertions in original wording may be stored with the item-level rights classification. | Only under the recorded open license, permission, or a documented legal exception; keep the quotation no longer than needed and attribute it. | Commit facts, citations, and rights metadata. Commit source content only when its license permits repository redistribution and all attribution/share-alike duties are met. | Publish facts and citations. Publish source content only when the item-level license or permission covers the artifact and its distribution. | | ||
| | **RESEARCH** | Manual research only; do not scrape, crawl, or bulk-extract. | Retain only private research notes and the minimum source excerpt allowed by the terms; never retain credentials or personal data. | Store only discrete facts in original wording after human review, with a citation; do not reproduce the source’s compilation or expression. | Only with permission or a documented legal exception, with attribution. | Do not commit raw responses, documents, media, or copied prose. Reviewed facts and citations may be committed. | Redistribute only reviewed facts, citations, and original summaries; no source media or prose. | |
What this changes
Resolves contradictory Discogs guidance by distinguishing CC0 monthly dumps from restricted live API content.
Checklist
README.mdupdated (or none needed)AGENTS.mdupdated if a working rule or convention changedPlaylist data
make checkpasses — cache rebuilt,verify.pygreen, zero-line cache diff — not applicableEvery override edit records a human decision, not an inference
publication-links.jsonentries come from real REST responses, not guessed IDsTooling
make lintandmake testpass — not applicableSafety
.env*,~/.czarchive.toml, API keys, OAuth tokens, or cookiesdiscarded/with aREADME.mdexplaining why — none