Files
bot-agents/.agents/memory/app-lint-and-local-rules.md
T
Danny Kim c02ab9b156
Check / check (pull_request) Successful in 37s
Add damem notes and skills
2026-10-16 08:28:47 +09:00

2.0 KiB

description
description
Apps use the npm lint plugins' configs, port their old deno-lint-plugin.ts rules into scripts/project-lint.ts, never override source files, and refactor instead of raising limits

Plugins

Apps consume the published plugins as npm devDependencies, through jsPlugins and the configs equivalent to what their Deno setup enabled:

  • @cunarist/eslint-plugin-explicit-types: concrete, naming, absence
  • @cunarist/eslint-plugin-import-check: import-check
  • @cunarist/eslint-plugin-lit: core, strict, dom-ref, reactive-controller, naming

Repo-local rules

The local scripts/deno-lint-plugin.ts that home, eximium, stockvibe, brain, memona, and memona-home carried is ported into scripts/project-lint.ts (project-lint-plugin) under the project namespace, same rule names and behavior. Depending on the repo: no-self-sync, no-sync-in-render, app-module-conventions, always-wildcard-export, no-class-extends, no-lit-nothing, no-title-attribute, prefer-wa-components, no-satisfies, no-unknown, restricted-types, no-line-lint-ignore, no-app-disposables-in-component, no-crepe-react-ui. @hugoalh rules map to Oxlint built-ins in configs.project.

memona's deno-lint-plugin.ts and its coding-standards memory are the house style the explicit-types rules came from; they win any conflict.

No overrides, refactor instead

Apps use no overrides for source files at all (the rule-registry exception exists only in plugin repos). Oxlint's default limits stay, and violations are refactored without behavior change in the same PR: barrels for max-dependencies, splits for max-lines/max-lines-per-function/ max-classes-per-file, an options object for max-params. Long Lit render() templates are split into smaller template functions or components. See lint-overrides-policy.

If a hand-written exception still looks truly necessary, ask the user first; when they're away, leave it failing or refactor, and log the question.