From 7fef9efd5e7ab7cf6fd752337f5847efd0f3e86f Mon Sep 17 00:00:00 2001 From: Brandon Corbett Date: Wed, 8 Jul 2026 12:42:23 -0400 Subject: [PATCH 1/2] chore: adopt Node 24 baseline and align AGENTS.md standards - .nvmrc -> 24 (single source of truth) - add engines.node >=24 <25 (none was declared) - CI setup-node uses node-version-file: .nvmrc (release.yml, verify-conformance.yml) - AGENTS.md: add the fells-code baseline working standards, trim now-duplicated commit/comment/em-dash rules --- .github/workflows/release.yml | 2 +- .github/workflows/verify-conformance.yml | 2 +- .nvmrc | 1 + AGENTS.md | 42 ++++++++++++++++++++---- package.json | 3 ++ 5 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 905d877..1b3e91d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version-file: '.nvmrc' cache: npm registry-url: https://registry.npmjs.org/ diff --git a/.github/workflows/verify-conformance.yml b/.github/workflows/verify-conformance.yml index 4e23267..2d7c8cf 100644 --- a/.github/workflows/verify-conformance.yml +++ b/.github/workflows/verify-conformance.yml @@ -73,7 +73,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 20 + node-version-file: '.nvmrc' - name: Set up pnpm uses: pnpm/action-setup@v4 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..a45fd52 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/AGENTS.md b/AGENTS.md index a14aa2b..4fae398 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,6 +11,41 @@ This repository is the Seamless Auth command-line tool (published as `seamless-c Use this file as the fast path. The verify harness has its own moving parts under [verify/](verify) (a Docker Compose stack plus a Playwright harness). +## Working Standards (fells-code baseline) + +These rules apply to every repository in the fells-code org. Repo-specific +guidance may extend them but must not contradict them. + +### Attribution +- Commit and open PRs solely under the repository owner's identity. Never + commit under an agent or assistant identity. +- Never attribute work to an AI assistant: no `Co-Authored-By: Claude` (or any + assistant) trailers, no "Generated with" / "Created with Claude" notes, and no + assistant branding or emoji anywhere in commit messages, PR or issue titles + and descriptions, changesets, code comments, or docs. + +### Comments +- Comment only when the code genuinely needs explaining: a non-obvious reason, a + gotcha, or an invariant. Never narrate what the code plainly does. + +### TODOs +- Every `TODO`/`FIXME` must reference a ticket, e.g. `// TODO(#123): ...`. + Do not leave a bare TODO. If no ticket exists, create one first. + +### Commits & branches +- Conventional Commits (`feat:`, `fix:`, `chore:`, `docs:`, `ci:`, `test:`). +- Descriptive branch names (`feat/...`, `fix/...`); never a `claude/` or other + tool-generated prefix. + +### Public-facing text +- No em dashes in commit messages, code comments, PR or issue text, changesets, + or docs. Use a comma, parentheses, or a separate sentence. + +### Before declaring work done +- Run the repo's checks (typecheck, lint, format, tests) and report real output. + Never claim a change works without running them. +- Match the surrounding code's style, naming, and comment density. + ## Start Here - Install dependencies: `npm install` @@ -78,6 +113,7 @@ Modes and sibling repos: ## Conventions - **TypeScript, ESM** (`"type": "module"`). Local imports use `.js` extensions (NodeNext resolution). +- Commit, comment, TODO, and attribution rules live in Working Standards above. - **Releases use Changesets.** A user-facing change needs a changeset (`npm run changeset`). A push to `main` opens a "version packages" PR that bumps the version and writes `CHANGELOG.md`; merging that PR publishes to npm. Do not hand-edit the version or `CHANGELOG.md`. @@ -88,12 +124,6 @@ Modes and sibling repos: - **Templates ref bump.** Shipping a change that depends on a new templates release is a two-step, cross-repo dance: release `seamless-templates` first, then bump `SEAMLESS_TEMPLATES_REF` ([src/core/images.ts](src/core/images.ts)) to that tag. -- **Commits**: Conventional Commits (`feat:`, `fix:`, `chore:`, `ci:`, `test:`, `docs:`). -- **Do not use em dashes** in public-facing text: commit messages, code comments, PR and issue - descriptions, changesets, and docs. Use a comma, parentheses, or a separate sentence instead. -- Keep comments minimal. Comment only when the code genuinely needs explaining (a non-obvious reason - or a gotcha); do not narrate what the code plainly does. - ## Before You Finish A Change - Run `npm run build` (the root package's only build step). diff --git a/package.json b/package.json index 13c4b68..52e166d 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,9 @@ "seamless": "dist/index.js" }, "type": "module", + "engines": { + "node": ">=24 <25" + }, "scripts": { "build": "tsc", "dev": "tsx src/index.ts", From d5717fe5ab03c8df35b0a466948e50355f3372f7 Mon Sep 17 00:00:00 2001 From: Brandon Corbett Date: Wed, 8 Jul 2026 14:33:46 -0400 Subject: [PATCH 2/2] chore: pin conformance workflow node to 24 and strengthen AGENTS.md checks rule - verify-conformance.yml is a reusable cross-repo workflow that checks out sibling repos into subpaths, so it cannot read a single repo .nvmrc; pin node-version: 24 directly (fixes 'node version file does not exist') - AGENTS.md: require all quality checks (tests, lint, typecheck, format) to pass --- .github/workflows/verify-conformance.yml | 4 +++- AGENTS.md | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/verify-conformance.yml b/.github/workflows/verify-conformance.yml index 2d7c8cf..d0ef9dc 100644 --- a/.github/workflows/verify-conformance.yml +++ b/.github/workflows/verify-conformance.yml @@ -73,7 +73,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version-file: '.nvmrc' + # Reusable workflow: it checks out sibling repos into subpaths, so there + # is no single repo .nvmrc to read here. Pin the Node major directly. + node-version: 24 - name: Set up pnpm uses: pnpm/action-setup@v4 diff --git a/AGENTS.md b/AGENTS.md index 4fae398..c71ffd9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -42,8 +42,12 @@ guidance may extend them but must not contradict them. or docs. Use a comma, parentheses, or a separate sentence. ### Before declaring work done -- Run the repo's checks (typecheck, lint, format, tests) and report real output. - Never claim a change works without running them. +- All code quality checks must pass before you open a PR or call the work done: + tests, linting, type checks, and formatting. Run them and report the real + output; do not open a PR while any check is failing. +- Typical commands: `npm run typecheck`, `npm run lint`, `npm run format:check` + (or `npm run format`), and `npm test`. Never claim a change works without + running them. - Match the surrounding code's style, naming, and comment density. ## Start Here