docs: tighten legal posture language + Clippit upstream attribution#80
Conversation
…ibution TRADEMARKS.md and ADR-013 reframe CSI's copyright assertion as contested (merger doctrine / Feist) rather than settled, while preserving SpecR's neutral "we moot the question by sourcing from public-domain UFGS" stance. ADR-013 gains a "Related precedent" subsection citing Feist (499 U.S. 340), 17 U.S.C. § 102(b), and Veeck (293 F.3d 791) for future-reader context. Adds NOTICES at repo root with the upstream MIT copyright for Clippit and Open-Xml-PowerTools — defensive hygiene for the C# → TypeScript port of ListItemRetriever in src/parser/docx/styles.ts. Whether Computer Associates v. Altai (982 F.2d 693) would require this attribution for a cross-language port is genuinely unsettled; preserving it costs nothing and moots the question. styles.ts gains a brief file-header pointing to NOTICES. README's Trademarks section links to NOTICES. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR adds third-party license attribution for upstream DOCX parser code and strengthens the legal documentation around public-domain sourcing of MasterFormat seed data. A new NOTICES file preserves MIT licensing for Clippit/Open-Xml-PowerTools derivatives, referenced in README and documented in styles.ts. TRADEMARKS.md and ADR-013 are expanded to clarify merger-doctrine copyright limits and reinforce that spec_sections derive exclusively from the public-domain UFGS corpus. ChangesLicensing and copyright sourcing
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
After fetching the actual case texts, two overclaims in the prior commit
needed correction:
1. Removed "short functional designations" framing from TRADEMARKS.md and
ADR-013. That phrase is not from Feist (which addresses facts and
compilation copyright scope). It comes from a separate line of cases
(Southco v. Kanebridge, etc.) that wasn't cited, so the conflation
overstated what the cited authority actually says. Replaced with the
accurate Feist framing: facts are not copyrightable; compilation
copyright extends only to original selection and arrangement.
2. Rewrote the Veeck entry in ADR-013's Related precedent. The prior
wording called Veeck an "alternative merger-doctrine holding relevant
to industry numbering schemes." Reading the en banc opinion (via
OpenJurist), the court's merger reasoning is tied to the codes-as-law
context ("the law...can be expressed in only one way") and the opinion
expressly distinguishes cases involving private standards merely
referenced — not adopted — by legislation. MasterFormat is neither
adopted nor referenced. Veeck is cited for context on the broader
public-domain-via-adoption line, not as authority for SpecR's posture.
Also tightened "merger doctrine (17 U.S.C. § 102(b))" to "idea/expression
dichotomy (17 U.S.C. § 102(b))" — § 102(b) codifies the idea/expression
rule; the merger doctrine is a related judge-made application of it. The
prior shorthand was defensible but imprecise.
Citations verified: Feist via Cornell LII; § 102(b) verbatim via Cornell
LII; Veeck via OpenJurist (Justia returned 403). Computer Associates v.
Altai citation in NOTICES is unchanged — it is cited as the doctrinal
backdrop for the unsettled cross-language-port question, which matches
what Altai actually addresses (AFC test for non-literal copying).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Source-verified citations (follow-up commit f08cfdd)After verifying each cited authority against its actual text, two overclaims from the initial commit needed correction: What I verified
What I corrected1. 2. ADR-013 Related precedent — rewrote the Veeck entry. The opinion's merger reasoning is tied to the codes-as-law context ("the law…can be expressed in only one way"); the court expressly distinguished cases involving private standards merely referenced — not adopted — by legislation. MasterFormat is neither adopted nor referenced. So calling Veeck an "alternative merger-doctrine holding relevant to industry numbering schemes" overstated its reach. Now framed honestly: cited for context on the broader public-domain-via-adoption line, not as authority for SpecR's posture. 3. Tightened "merger doctrine (§ 102(b))" → "idea/expression dichotomy (§ 102(b))". § 102(b) codifies idea/expression; merger doctrine is a judge-made application of it. The prior shorthand was defensible but imprecise. What I did not change
|
Summary
Tightens legal/IP language in three places where the prior wording either overstated settled law, understated available defenses, or omitted attribution that moots a copyright question entirely. Preserves the repo's neutral "we moot the question by design" stance throughout.
TRADEMARKS.md— Reframes CSI's MasterFormat copyright assertion as contested (not uncontested fact) by citing the merger doctrine and Feist. Keeps the same length and tone.docs/adr/013-csi-sections-seed-public-domain-derivation.md— Softens the "CSI asserts copyright" framing in the Context section; strengthens the "bounded coverage" argument in Consequences as defensive evidence; adds aRelated precedentsubsection citing Feist, 17 U.S.C. § 102(b), and Veeck.NOTICES(new) — Preserves the upstream MIT copyright for Clippit (sergey-tihon/Clippit) and Open-Xml-PowerTools (EricWhiteDev/Open-Xml-PowerTools), bothCopyright (c) Microsoft Corporation, verified directly from the upstream repos viagh api. The TypeScript port ofListItemRetrieverlives insrc/parser/docx/styles.ts, which now carries a short file header pointing toNOTICES.README.md— One-line link toNOTICESunder the existing## Trademarkssection.Doctrines being respected
NOTICESfile moots for the Clippit port)The
NOTICESfile is characterized in code/commit as preserving upstream attribution, not as "fixing a license violation" — per the task spec, that legal question (cross-language port + AFC) is genuinely unsettled, and attribution is added as defensive hygiene.Non-goals (intentionally not done)
LICENSEunchanged — SpecR remains MITNOTICESis a conventional repo-root file, not a structural decision warranting ADR-014Test plan
pnpm lintclean (ESLint + tsc --noEmit + prettier)pnpm test— 462/462 passing (file-header comment doesn't affect anything at runtime)grep "CSI asserts" TRADEMARKS.md docs/adr/013-*.mdreturns revised language onlyClippit/ListItemRetrieverreference insrc/is reachable to attribution viaNOTICES(linked fromsrc/parser/docx/styles.tsheader + README)🤖 Generated with Claude Code
Summary by CodeRabbit