docs: sponsors section, and keep competitor notes out of the public repo - #57
Merged
Merged
Conversation
The notes are a competitor teardown written for maintainers: they carry
internal judgements ("do not move toward it", "the earlier note overstated
this") and quote the other project's implementation scale. That reads
differently once the repository is public, so the file stays on the
maintainer's machine and leaves the tracked set.
Its row in docs/internal/README.md goes with it, otherwise
scripts/check-docs.py fails on the dangling relative link.
Both sponsors are also built-in Providers, so providers.lock.json now says so: relationship moves from "none" to "sponsor" and each disclosure field carries the text. public-site-operations.md names those fields as the source of truth for commercial disclosure, and a README that acknowledges a sponsor while the lock file declares no relationship would be two contradictory public statements about the same fact. Both READMEs repeat the boundary the policy already requires: sponsorship does not affect Agent rank, compatibility conclusions, default selection, or connection tests, and the built-in order lives in the lock file regardless. The NOTICE trademark section had to split. It claimed every mark in the project implies no "endorsement, affiliation or sponsorship", which a sponsor logo contradicts by definition. Agent marks stay nominative use; sponsor marks are a separate, permission-based case that keeps its brand colours. They ship in the two READMEs only and reach no release binary, since manifest_embed.go embeds the lock files and frontend/dist but never docs/.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #48. Addresses the actionable half of #49.
Sponsors section (#48)
Both READMEs get a
Sponsors/赞助section before the licence section, withthe PPIO and Novita logos linking to each site. The logos live in
docs/assets/sponsors/and are referenced with<img height="48">rather thanMarkdown image syntax, because the source files are 640×640 and Markdown gives
no way to constrain the rendered size. Both PNGs have an alpha channel, so they
read correctly on GitHub's light and dark themes.
Three things follow from adding a sponsor, and they are in this PR because
leaving any of them out would make the repository contradict itself:
providers.lock.jsonnow declares the relationship. PPIO and Novita arealso the two built-in Providers, and both entries said
relationship: "none"with an empty
disclosure.docs/public-site-operations.mdnames those fieldsas the source of truth for commercial disclosure, so a README that thanks a
sponsor while the lock file denies any relationship would be two contradictory
public statements about the same fact. They now say
sponsorand carrydisclosure text.
Both READMEs restate the boundary the policy already requires: sponsorship
does not affect Agent rank, compatibility conclusions, default selection, or
connection tests, and the built-in ordering lives in the lock file regardless.
The NOTICE trademark section had to split. It asserted that every mark in
the project implies no "endorsement, affiliation or sponsorship" — which a
sponsor logo contradicts by definition. Agent marks remain nominative use,
single-colour,
fill="currentColor". Sponsor marks are now a separate,permission-based case that keeps its published brand colours, appears only in
the two READMEs, and reaches no release binary:
manifest_embed.goembeds thelock files and
frontend/dist, neverdocs/.docs/assets/sponsors/asset-rights.jsonrecords source, owner, and SHA-256 perlogo, matching how the Agent marks are inventoried, since
docs/distribution-compliance-policy.mdrequires every third-party file toanswer for its provenance.
Competitor notes (#49)
docs/internal/cc-switch-reference-notes.mdleaves the tracked set and stays onthe maintainer's machine. It is a teardown of CC Switch carrying internal
judgements ("do not move toward it", "the earlier note overstated this") and
quoting the other project's implementation scale — which reads differently once
the repository is public. Its row in
docs/internal/README.mdgoes with it,otherwise
scripts/check-docs.pyfails on the dangling relative link.Note that #49's main subject needed no action:
docs/status-dot-ui-plan.mdwasnever committed. It is listed in
.git/info/excludeas a deliberately untrackedlocal plan, and
git ls-tree HEAD docs/contains only the three policydocuments, so no external reader would ever see it.
Open questions for the reviewer
basis: "permission-from-owner", inferred from thesponsors having supplied their own logos. If the actual basis differs (brand
resource page, a brand guideline constraining usage), that field should say so.
referral_urlis left empty for both. Correct for sponsorship withoutreferral revenue; if there is any, the field and the disclosure wording both
need updating.
Verification
go build ./...,go vet ./...,go test ./...all pass. Frontendpnpm run test: 165 tests across 24 files.python3 scripts/check-docs.pypasses on 48files (links resolve, language split holds).
python3 scripts/generate_third_party_licenses.py --checkexits 0.Rebased onto
c88881e.🤖 Generated with Claude Code