Skip to content

docs: sponsors section, and keep competitor notes out of the public repo - #57

Merged
yujiezhang-ops merged 2 commits into
mainfrom
docs/sponsors-and-internal-cleanup
Aug 6, 2026
Merged

docs: sponsors section, and keep competitor notes out of the public repo#57
yujiezhang-ops merged 2 commits into
mainfrom
docs/sponsors-and-internal-cleanup

Conversation

@yujiezhang-ops

Copy link
Copy Markdown
Collaborator

Closes #48. Addresses the actionable half of #49.

Sponsors section (#48)

Both READMEs get a Sponsors / 赞助 section before the licence section, with
the PPIO and Novita logos linking to each site. The logos live in
docs/assets/sponsors/ and are referenced with <img height="48"> rather than
Markdown 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.json now declares the relationship. PPIO and Novita are
also the two built-in Providers, and both entries said relationship: "none"
with an empty disclosure. docs/public-site-operations.md names those fields
as 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 sponsor and carry
disclosure 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.go embeds the
lock files and frontend/dist, never docs/.

docs/assets/sponsors/asset-rights.json records source, owner, and SHA-256 per
logo, matching how the Agent marks are inventoried, since
docs/distribution-compliance-policy.md requires every third-party file to
answer for its provenance.

Competitor notes (#49)

docs/internal/cc-switch-reference-notes.md leaves the tracked set and stays on
the 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.md goes with it,
otherwise scripts/check-docs.py fails on the dangling relative link.

Note that #49's main subject needed no action: docs/status-dot-ui-plan.md was
never committed. It is listed in .git/info/exclude as a deliberately untracked
local plan, and git ls-tree HEAD docs/ contains only the three policy
documents, so no external reader would ever see it.

Open questions for the reviewer

  • The rights manifest records basis: "permission-from-owner", inferred from the
    sponsors having supplied their own logos. If the actual basis differs (brand
    resource page, a brand guideline constraining usage), that field should say so.
  • referral_url is left empty for both. Correct for sponsorship without
    referral revenue; if there is any, the field and the disclosure wording both
    need updating.

Verification

go build ./..., go vet ./..., go test ./... all pass. Frontend pnpm run test: 165 tests across 24 files. python3 scripts/check-docs.py passes on 48
files (links resolve, language split holds).
python3 scripts/generate_third_party_licenses.py --check exits 0.

Rebased onto c88881e.

🤖 Generated with Claude Code

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/.
@yujiezhang-ops
yujiezhang-ops merged commit c07db87 into main Aug 6, 2026
4 checks passed
@yujiezhang-ops
yujiezhang-ops deleted the docs/sponsors-and-internal-cleanup branch August 7, 2026 09:52
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.

docs: README 新增赞助名单板块

1 participant