mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 22:39:39 +00:00
## Summary Add 22 automated code review check definitions and 1 strict ESLint config to `.agents/checks/` for Amp-powered code review. ## Changes - **What**: 23 files in `.agents/checks/` covering accessibility, API contracts, architecture, bug patterns, CodeRabbit integration, complexity, DDD structure, dependency/secrets scanning, doc freshness, DX/readability, ecosystem compatibility, error handling, import graph, memory leaks, pattern compliance, performance, regression risk, security, SAST, SonarJS linting, test quality, and Vue patterns. Each check includes YAML frontmatter (name, description, severity-default, tools) and repo-specific guidance tailored to ComfyUI_frontend conventions. ## Review Focus - Check definitions are config-only (no runtime code changes) - Checks reference repo-specific patterns (e.g., `useErrorHandling` composable, `useToastStore`, `es-toolkit`, Tailwind 4, Vue Composition API) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9445-feat-add-Amp-code-review-checks-31a6d73d3650817a8466fe2f4440a350) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <action@github.com>
61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
/**
|
|
* Strict ESLint config for the sonarjs-lint review check.
|
|
*
|
|
* Uses eslint-plugin-sonarjs to get SonarQube-grade analysis without a server.
|
|
* This config is NOT used for regular development linting — only for the
|
|
* code review checks' static analysis pass.
|
|
*
|
|
* Install: pnpm add -D eslint eslint-plugin-sonarjs
|
|
* Run: pnpm dlx eslint --no-config-lookup --config .agents/checks/eslint.strict.config.js --ext .ts,.js,.vue {files}
|
|
*/
|
|
|
|
import sonarjs from 'eslint-plugin-sonarjs'
|
|
|
|
export default [
|
|
sonarjs.configs.recommended,
|
|
{
|
|
plugins: {
|
|
sonarjs
|
|
},
|
|
rules: {
|
|
// Bug detection
|
|
'sonarjs/no-all-duplicated-branches': 'error',
|
|
'sonarjs/no-element-overwrite': 'error',
|
|
'sonarjs/no-identical-conditions': 'error',
|
|
'sonarjs/no-identical-expressions': 'error',
|
|
'sonarjs/no-one-iteration-loop': 'error',
|
|
'sonarjs/no-use-of-empty-return-value': 'error',
|
|
'sonarjs/no-collection-size-mischeck': 'error',
|
|
'sonarjs/no-duplicated-branches': 'error',
|
|
'sonarjs/no-identical-functions': 'error',
|
|
'sonarjs/no-redundant-jump': 'error',
|
|
'sonarjs/no-unused-collection': 'error',
|
|
'sonarjs/no-gratuitous-expressions': 'error',
|
|
|
|
// Code smell detection
|
|
'sonarjs/cognitive-complexity': ['error', 15],
|
|
'sonarjs/no-duplicate-string': ['error', { threshold: 3 }],
|
|
'sonarjs/no-redundant-boolean': 'error',
|
|
'sonarjs/no-small-switch': 'error',
|
|
'sonarjs/prefer-immediate-return': 'error',
|
|
'sonarjs/prefer-single-boolean-return': 'error',
|
|
'sonarjs/no-inverted-boolean-check': 'error',
|
|
'sonarjs/no-nested-template-literals': 'error'
|
|
},
|
|
languageOptions: {
|
|
ecmaVersion: 2024,
|
|
sourceType: 'module'
|
|
}
|
|
},
|
|
{
|
|
ignores: [
|
|
'**/node_modules/**',
|
|
'**/dist/**',
|
|
'**/build/**',
|
|
'**/*.config.*',
|
|
'**/*.test.*',
|
|
'**/*.spec.*'
|
|
]
|
|
}
|
|
]
|