Skip to content

Apply the oss-init conventions: just ci, AGENTS.md, hardened CI - #33

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

lambdalisue merged 3 commits into
mainfrom
chore/oss-init

Conversation

@lambdalisue

Copy link
Copy Markdown
Member

Summary

  • Skeleton: just ci is the quality gate (format, lint, type check, JSR manifest check, tests, build, nixfmt), the same recipe CI runs; just test forwards its arguments intact. The verify npm script is removed. The flake drops flake-utils for nixpkgs.lib.genAttrs over the same systems, is nixfmt-formatted, and the dev shell adds just and nixfmt. .gitignore covers /.envrc, .direnv/, result, /.claude/worktrees/; .gitattributes keeps LF.
  • Agent guide: .claude/CLAUDE.md → root AGENTS.md (layer table, just ci, layout, the commit convention in use), plus the ADR/spec procedures and their rules.
  • CI: check runs just ci in the dev shell (nix-develop); test keeps the service containers. Both job names stay because the ruleset requires them. publish.yml: permissions widened on the job only, ${{ }} values reach scripts through env:, gh release upload --clobber for the plan, nix-develop instead of nix develop -c. persist-credentials: false, PR runs cancel / main and publish runs finish, actions on their latest majors.

Why

Brings the repository in line with the oss-init conventions used across the org: one quality gate shared by developers and CI, a dev shell CI loads as is, an agent guide every agent reads, and hardened workflows. The commit convention, version scheme, release flow and package names are unchanged; no package is released by this change (nothing under packages/ is touched).

Test Plan

  • nix develop -c just ci (1284 pass; integration tests skip without services)
  • nix flake check --no-build, actionlint
  • CI on this PR (check, test with services)
  • Next release: publish job with nix-develop and setup-node

🤖 Generated with Claude Code

https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq

lambdalisue and others added 3 commits October 11, 2026 13:55
The gate was the `verify` npm script, while CI also checked the JSR
manifests and the build on its own, so passing it locally did not mean CI
would pass. `just ci` runs what CI's check job runs, plus a nixfmt check, and
`test` forwards its arguments intact. `verify` goes away rather than drift
from the gate.

The flake lists its systems with nixpkgs.lib.genAttrs instead of
flake-utils and is formatted with nixfmt, which the dev shell now provides
along with just. 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 ADR and spec procedures (docs/adr/README.md, docs/spec/README.md) and the
rules that make them get read land now, so records written from here on
follow them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq
CI ran its checks step by step, each wrapped in `nix develop -c`, so the list
could drift from what developers ran. The check job now loads the dev shell
with nicknovitski/nix-develop and runs `just ci`; the test job keeps the
service containers and uses the shell the same way. Both job names stay, as
the ruleset requires them.

Workflows read the repository by default and widen permissions per job,
checkouts no longer keep credentials, pull request runs cancel superseded
ones while main and publish runs finish, values reach scripts through env,
the plan upload survives a re-run (--clobber), and the actions are on their
latest majors.

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.

@codecov

codecov Bot commented Oct 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@lambdalisue
lambdalisue merged commit f4be8fc into main Oct 11, 2026
3 checks passed
@lambdalisue
lambdalisue deleted the chore/oss-init branch October 11, 2026 05:12
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