Lint and Fix Loop: Trunk
Purpose
An autonomous loop for the agent to identify, fix, and verify linting and formatting violations using Trunk.
Loop Logic
- •Identify: Run
pnpm lint(which executestrunk check -yandeslint .) to list current violations. For a comprehensive check across the entire project, usepnpm lint:all(executestrunk check --allandeslint .). You can also runpnpm lint:eslintfor focused ESLint checks. - •Analyze: Examine the output from Trunk or ESLint, focusing on the file path, line number, and error message. Refer to ../common-references/troubleshooting.md for environment or runtime issues.
- •Fix:
- •For formatting issues, run
pnpm format(which executestrunk fmt). To format all files in the project, usepnpm format:all. - •For linting violations, apply the minimum necessary change to the source code to resolve the error. You can use
pnpm format:eslintto automatically fix many ESLint violations. - •For security-specific checks, you can run
pnpm run lint:security.
- •For formatting issues, run
- •Verify: Re-run
pnpm lint(orpnpm lint:allorpnpm lint:eslintdepending on what you used initially).- •If passed: Move to the next issue or finish if all are resolved.
- •If failed: Analyze the new failure and repeat the loop.
Termination Criteria
- •No more errors reported by
pnpm lint,pnpm lint:all, orpnpm lint:eslint. - •Reached max iteration limit (default: 5).
Examples
Scenario: Fixing a formatting violation
- •
pnpm lintreports formatting issues insrc/index.ts. - •Agent runs
pnpm format. - •
pnpm lintnow passes.
Scenario: Performing a full project cleanup
- •Agent runs
pnpm lint:allto check every file. - •Several formatting issues are found.
- •Agent runs
pnpm format:allto fix them all at once. - •
pnpm lint:allnow passes.
Scenario: Fixing ESLint violations
- •
pnpm lint:eslintreports several linting errors. - •Agent runs
pnpm format:eslint. - •
pnpm lint:eslintnow passes or shows fewer errors that require manual fixing.
Resources
- •Project Scripts: Definitions for all lint and format scripts.
- •Trunk CLI Reference: Common commands for linting and formatting.
- •Trunk Documentation: Official documentation for the Trunk CLI.