Skip to content

CLAUDE.md says this repo is private; it is public #86

Open

Description

@NewGraphEnvironment

What changes if we do it

CLAUDE.md stops asserting a repo visibility that is the opposite of the truth,
so nobody reasons from it the way I just did.

What happens if we never do it

The line reads as licence to put internal-only content in this repo. Nothing
would flag it, and by the time it mattered the content would already be public —
in the repo and on the pkgdown site, which serves CLAUDE.md and CLAUDE.html
verbatim and indexes them in search.json.

The stale claim

CLAUDE.md line 8:

- **Origin:** `NewGraphEnvironment/cd` (private)

gh repo view --json isPrivate returns false. The repo is public.

Found 2026-09-07 while checking .Rbuildignore during #84. I read the line,
treated it as fact, and started writing up a published-internal-content leak
before checking — which is the exact failure the line invites.

The second half, lower stakes

.Rbuildignore carries only LICENSE.md, _pkgdown.yml, docs, pkgdown,
.github. So planning/ and CLAUDE.md ship in the built tarball, and pkgdown
publishes CLAUDE.md (7,723 lines of agent instructions) as a page plus a
verbatim .md copy plus full-text search entries:

https://www.newgraphenvironment.com/cd/CLAUDE.html   -> 200
https://www.newgraphenvironment.com/cd/CLAUDE.md     -> 200
https://www.newgraphenvironment.com/cd/search.json   -> 200

Because the repo is public this discloses nothing new — it is untidy, not a leak,
and worth separating from the line above so the two are not conflated. The remedy
is the one in the pkgdown-publishing convention: remove CLAUDE.md in CI
before build_site() (deleting docs/CLAUDE.html afterwards leaves the .md
and the search index), and gate on a declared allowlist so a new root markdown
file cannot appear silently.

Suggested fix

  1. Correct the visibility line — and check the rest of the header block against
    reality while there.
  2. Add ^planning$, ^CLAUDE\.md$, ^scripts$, ^data-raw$ to .Rbuildignore
    as appropriate, then verify against the tarball rather than the config:
    R CMD build . >/dev/null && tar tzf cd_*.tar.gz | grep -c '^cd/planning/'
  3. Add the pre-build removal step and allowlist gate to pkgdown.yaml, and test
    the gate against both known answers before trusting it.

Activity

  1. NewGraphEnvironment commented on Sep 7, 2026

    @NewGraphEnvironment
    OwnerAuthor

    First half done on main: the visibility line now reads (public) and points at gh repo view --json isPrivate so the same staleness is cheap to re-check.

    Leaving this open for the second half, which is a real change rather than a doc fix: planning/ and CLAUDE.md still ship in the tarball and onto the pkgdown site. Because the repo is public that discloses nothing, so it is untidy rather than urgent — but the .Rbuildignore additions want verifying against the built tarball, and the pkgdown allowlist gate wants testing against both known answers, neither of which belongs in a drive-by commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions