Estimate: 40m · Type: code · Depends on: 6.17.1
Reframe the public access level as "Building in public" across copy + the make-public control (no schema change — public stays the enum value; this is presentation). In the 6.12.8 access control: label/describe public as "Building in public" with the explainer copy (what becomes visible; sign-in only to submit/upvote/comment). Centralize the i18n strings (buildInPublic.*). Keep setAccessLevel as the write path. Add the explainer/confirm dialog content as a reusable piece (used by 6.17.3).
public as "Building in public" with the explainer; other levels unchanged.app/(authed)/settings/project/members/_components/ProjectMembersSettings.tsx; projectsService.setAccessLevel; messages/en.json (+ locales); design 6.17.1