Repository navigation
Apply the oss-init conventions: just ci, AGENTS.md, hardened CI - #33
Merged
Merged
Conversation
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
1 of 2 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
just ciis the quality gate (format, lint, type check, JSR manifest check, tests, build, nixfmt), the same recipe CI runs;just testforwards its arguments intact. Theverifynpm script is removed. The flake drops flake-utils fornixpkgs.lib.genAttrsover the same systems, is nixfmt-formatted, and the dev shell adds just and nixfmt..gitignorecovers/.envrc,.direnv/,result,/.claude/worktrees/;.gitattributeskeeps LF..claude/CLAUDE.md→ rootAGENTS.md(layer table,just ci, layout, the commit convention in use), plus the ADR/spec procedures and their rules.checkrunsjust ciin the dev shell (nix-develop);testkeeps the service containers. Both job names stay because the ruleset requires them. publish.yml: permissions widened on the job only,${{ }}values reach scripts throughenv:,gh release upload --clobberfor the plan, nix-develop instead ofnix 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,actionlintcheck,testwith services)🤖 Generated with Claude Code
https://claude.ai/code/session_01N3xvJ1TaozjYSE6eoyo9mq