Skip to content

packages/protocol has no linter — its lint script is an echo #169

Description

@rodriguecyber

Difficulty: Beginner · You'll need: npm, a linter config · Size: config + whatever it flags

What's going on

packages/protocol/package.json:

"lint": "echo \"No lint configured yet\""

It prints a message and exits 0. The root npm run lint runs --workspaces --if-present, so this counts as a passing lint across the whole monorepo.

Why it matters

packages/protocol is the shared contract between a TypeScript server and a Go agent. It is the one package where a stray character has consequences in two languages — and it is the only package with no linter.

The drift is already visible. packages/protocol/src/container.ts:98:

  env : string[]

A stray space before the colon, in the source of truth, that no tool will ever flag.

Where the other packages stand

Package Linter
apps/server ESLint + Prettier
apps/web oxlint
packages/protocol ❌ an echo

The fix

Pick one and wire it up. oxlint is the lightest option and already a dev dependency in apps/web, so it adds no new tooling to the repo. ESLint would match apps/server instead. Either is defensible — say which and why.

Then fix what it reports. Expect it to be a short list; this package is ~500 lines of mostly type declarations.

Scope note

Keep this to wiring up the linter and fixing what it flags. Reformatting the whole package in the same PR would bury the interesting part of the diff. If a formatter is also wanted, that is a separate change.

How to verify

npm run lint --workspace=@docksight/protocol   # actually lints now
npm run lint                                   # root still passes
npm run build --workspace=@docksight/protocol
npm run test  --workspace=@docksight/protocol

Done when

  • packages/protocol runs a real linter
  • Everything it reports is fixed
  • npm run lint from the root still passes
  • The protocol still builds and its conformance check passes

Good first contribution. Adding tooling to a project is a normal, useful contribution that people rarely get to practise. The judgment call — which linter, and keeping the diff small — is the part worth doing carefully.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions