Auto-generated tile from GitHub (10 skills)
92
94%
Does it follow best practices?
Impact
92%
1.16xAverage score across 44 eval scenarios
Advisory
Suggest reviewing before use
The reporting-service team has a working neostandard/ESLint v9 setup locally, but linting is entirely optional — nobody runs it before pushing, and the CI pipeline doesn't check it either. As a result, style regressions get merged regularly and code review is cluttered with formatting comments.
The team wants two things: first, lint violations should block the CI pipeline so that no non-compliant code can be merged. Second, developers should get fast feedback before they even push — ideally on only the files they changed, so it doesn't slow them down. The team uses GitHub Actions for CI. The project targets Node.js 20.
Your task is to set up CI and pre-commit lint enforcement for the project. Produce all configuration files needed to make this work, and write a brief integration-notes.md explaining the choices made.
Produce the following files:
.github/workflows/ci.yml — GitHub Actions CI workflow that includes lintingpackage.json — updated with pre-commit tooling and any required scriptsintegration-notes.md — short document explaining the integration decisionsThe following files are provided as inputs. Extract them before beginning.
=============== FILE: package.json =============== { "name": "reporting-service", "version": "1.0.0", "description": "Internal reporting microservice", "main": "index.js", "type": "module", "scripts": { "test": "node --test", "lint": "eslint .", "lint:fix": "eslint . --fix" }, "devDependencies": { "eslint": "^9.0.0", "neostandard": "^1.0.0" } }
=============== FILE: eslint.config.js =============== import neostandard from 'neostandard'
export default neostandard()
=============== FILE: index.js =============== export function generateReport (data) { return data.map(item => ({ id: item.id, value: item.value })) }
=============== FILE: .gitignore =============== node_modules/ dist/ coverage/
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
scenario-44
skills
documentation
fastify
init
linting-neostandard-eslint9
node
nodejs-core
rules
oauth
octocat
snipgrapher