Skip to content

Apply the oss-init conventions and keep Pages permissions off PR builds - #4

Merged
lambdalisue merged 4 commits into
mainfrom
chore/oss-init
Oct 11, 2026
Merged

lambdalisue merged 4 commits into
mainfrom
chore/oss-init

Conversation

@lambdalisue

Copy link
Copy Markdown
Member

Summary

  • Skeleton: just ci runs the nixfmt check, npm ci, the build and the link check; CI runs the same recipe. The flake drops flake-utils, names Node 24 (the scripts rely on type stripping) and adds just and nixfmt. .gitignore and .gitattributes from the template.
  • Agent guide: .claude/CLAUDE.md → root AGENTS.md; the architecture rule no longer calls the repository "documents". No ADR/spec directories here, since docs/ is site content.
  • CI: the gate is its own ci job (nix-develop + just ci, PR runs cancel); only the deploy job gets pages/id-token write and keeps the non-cancelling pages group. Actions on their latest majors; upload-pages-artifact v5 includes hidden files explicitly so the deployed site stays the same (v4 stopped including dotfiles such as .vite/).
  • Fix: package.json is named after the repository and marked private.

Why

Brings the site in line with the oss-init conventions used across the org, and stops pull request builds from running with Pages write permissions.

Test Plan

  • nix develop -c just ci (build, 62 link checks, nixfmt)
  • nix flake check --no-build, actionlint
  • CI on this PR
  • After merge: the Pages deploy on main publishes the site as before

🤖 Generated with Claude Code

https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq

lambdalisue and others added 4 commits October 11, 2026 13:55
The quality gate was a set of npm scripts that CI and the guides each listed
on their own. `just ci` runs the build, the link check and a nixfmt check,
and CI runs the same recipe.

The flake lists its systems with nixpkgs.lib.genAttrs instead of
flake-utils and is formatted with nixfmt. The dev shell names Node 24, since
the scripts rely on Node's TypeScript type stripping, and provides just and
nixfmt. The repository ignores its own .envrc, .direnv, result and worktrees
instead of relying on a global ignore, and .gitattributes keeps checkouts LF
on every OS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq
A CLAUDE.md anywhere in the tree makes Claude Code ignore AGENTS.md, and
other agents read only AGENTS.md, so the guide lived where only one tool
looked. Its content moves to a root AGENTS.md with the layer table, the
quality gate (`just ci`), the layout, and the commit convention in use. The
architecture rule no longer calls the repository "documents".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq
Pull request builds ran with the Pages write and OIDC permissions and queued
behind deploys in the single "pages" group. The gate is now its own job: it
loads the dev shell and runs `just ci`, and a pull request cancels its
superseded runs. Only the deploy job gets pages and id-token write, and it
keeps the non-cancelling "pages" group.

The workflow reads the repository by default, the checkout no longer keeps
credentials, and the actions are on their latest majors. upload-pages-artifact
v4 stopped including dotfiles, so the build's .vite directory is included
explicitly to keep the deployed site the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq
The manifest was still named @probitas/docs, a scope the project does not
publish under, and without "private" a mistaken `npm publish` would try to
release the site. It is now named after the repository and private.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq
Copilot AI balanced review requested due to automatic review settings October 11, 2026 05:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@lambdalisue
lambdalisue merged commit 7ca8e32 into main Oct 11, 2026
2 checks passed
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.

2 participants