chore: align CI to the hardened canon, add AGENTS.md#2
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates repository tooling/docs to match the shared “hardened canon”: CI is tightened and made more robust, JS-era config is removed, and agent-facing contributor instructions are consolidated into a single authoritative AGENTS.md.
Changes:
- Harden Nix CI configuration and make the test invocation independent of executable bits.
- Update luacheck invocation to Lua 5.1 semantics and tolerate intentionally-unused FFI stub arguments.
- Add
AGENTS.mdas the single agent instruction source (and makeCLAUDE.mdimport it), while removing legacy JS tooling files.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci.yml |
Hardens Nix config and updates test/luacheck invocations. |
AGENTS.md |
Adds consolidated build/test/lint + Lua 5.1 + FFI rules + toolchain pins for coding agents. |
CLAUDE.md |
Imports AGENTS.md so Claude Code reads the same instructions. |
package.json |
Removes legacy JS/Pulp tooling manifest. |
bower.json |
Removes legacy Bower manifest. |
.eslintrc.json |
Removes legacy ESLint configuration. |
Comments suppressed due to low confidence (1)
.eslintrc.json:1
- Since
.eslintrc.jsonis being removed,.gitignorestill contains!/.eslintrc.json, which is now a stale exception and can be confusing for future maintenance. Consider removing that line from.gitignoreas part of this cleanup.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7d2b1d8 to
6f8c080
Compare
CI: drop accept-flake-config (supply-chain risk; caches already pinned), run luacheck with --std lua51 --no-unused-args (matches the Lua 5.1 target and the curried-FFI idiom), invoke the test step via bash so it no longer needs the execute bit. AGENTS.md is the single instruction file the coding agents read natively; CLAUDE.md is a one-line @AGENTS.md import so Claude Code shares it. Also removes dead JavaScript-era package files. Tooling and docs only, no src/.
6f8c080 to
1ed1c0d
Compare
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.
Brings this fork in line with the shared tooling canon and gives the AI coding agents a single source of truth.
CI (
.github/workflows/ci.yml):accept-flake-config = true. It let a PR's own flakenixConfiginject extra substituters and keys, which is a supply-chain risk; the caches are already pinned inextra_nix_config, so nothing is lost.--std lua51 --no-unused-argsinstead of--std min.lua51matches the actual target (it knowsmath.pow/math.atan2, whichminflags), and--no-unused-argstolerates the curried fallback args the native FFI stubs ignore.bash ./scripts/testso it no longer depends on the file's execute bit.AGENTS.md+CLAUDE.md:AGENTS.mdis the one instruction file the coding agents read natively (Codex, Cursor, Copilot, Gemini CLI, Aider): the build/test/lint commands, the Lua 5.1 constraints, the FFI parenthesisation rule, and the toolchain pins.CLAUDE.mdis a one-line@AGENTS.mdimport so Claude Code reads the same file instead of a second copy that drifts out of sync.It also drops the dead
.eslintrc.json,bower.json,package.jsonleft over from the JavaScript build; the toolchain is spago plus nix now.Tooling and docs only, no
src/change, so there is no tag or package-set bump.Verification
luacheck passes locally with
--std lua51 --no-unused-args src/; the build runs green in CI.