Skip to content

[DX]: Add working lint and format gates aligned with OSS repo standards #85

@Fermionic-Lyu

Description

@Fermionic-Lyu

Summary

The SDK repo has a lint script, but the lint gate is currently not functional because the repo does not contain an ESLint config. It also does not have format / format:check scripts or Prettier configuration, so it is not aligned with the OSS repo's formatter/linter baseline.

This should be fixed as part of the cross-repo cleanup policy: every InsForge repo should have a working formatter and linter, with scripts and CI gates that are consistent with the OSS repo where practical.

Validation

Valid. On main@d7c4cf74cda6c6a80948cfa6d8137f9d0c0dbdf7:

  • package.json defines lint, but no format or format:check.
  • The repo has no eslint.config.*, .eslintrc*, .prettierrc*, prettier.config.*, or biome.json.
  • npm run lint fails because ESLint cannot find a configuration file.
  • CI runs typecheck/build/tests, but does not run lint or format checks.

Observed local lint failure:

> @insforge/sdk@1.3.0 lint
> eslint src --ext .ts

ESLint couldn't find a configuration file.

Relevant Code

  • package.json:23 through package.json:36 - scripts include lint and typecheck, but no format or format:check.
  • package.json:33 - lint runs eslint src --ext .ts.
  • package.json:62 through package.json:70 - ESLint packages exist, but Prettier and Prettier/ESLint integration do not.
  • .github/workflows/ci.yml:10 through .github/workflows/ci.yml:122 - CI runs typecheck, build, unit tests, and integration tests, but no lint or format check job.
  • InsForge/InsForge package.json:24 through InsForge/InsForge package.json:28 - OSS repo exposes lint, lint:fix, format, format:check, and typecheck.
  • InsForge/InsForge eslint.config.js:1 through InsForge/InsForge eslint.config.js:5 - OSS repo uses ESLint flat config with Prettier integration.

Proposed Solution

Add a working SDK quality gate aligned with the OSS repo:

  • Add an ESLint config for the SDK's TypeScript source and tests.
  • Add Prettier and format / format:check scripts.
  • Decide whether to use the same Prettier-in-ESLint integration as the OSS repo or separate format:check and lint steps.
  • Add CI steps for lint and format check.
  • Keep typecheck, unit tests, and build as separate gates.

Acceptance Criteria

  • npm run lint passes or reports real lint violations instead of failing due to missing config.
  • npm run format and npm run format:check exist.
  • CI runs lint and format checks on PRs.
  • The SDK's formatting/lint behavior is documented or obvious from package.json.
  • The setup stays compatible with Node >= 18 and the SDK's current TypeScript toolchain.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions