aws-samples / aws-samples/sample-autonomous-cloud-coding-agents
fix(tooling): cdk/scripts is excluded from eslint, so its eslint-disable directives are inert
- Dominant language
- TypeScript
- Stars
- 143
- Forks
- 46
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 20
Description
**Component:** cdk (tooling)
## Describe the bug
`cdk/eslint.config.mjs:49` scopes the TypeScript config to `['src/**/*.ts', 'test/**/*.ts']`, so `cdk/scripts/` is never linted:
```
$ npx eslint scripts/generate-bootstrap-template.ts
0:0 warning File ignored because no matching configuration was supplied
```
Two consequences:
1. **The `eslint-disable` directives already in those files are inert.** `scripts/generate-bootstrap-template.ts` carries five of them. They read as deliberate suppressions of real rules, but nothing is being suppressed because no rule ever runs — so a reader can't tell which are load-bearing and which are leftovers.
2. **`mise //cdk:eslint` runs `eslint --fix src test`**, so even widening the config's `files` glob would not lint `scripts/` until that task is updated too. Both halves need changing.
This was harmless while `scripts/` was write-only tooling invoked by mise. It matters more now: `cdk/test/bootstrap/bootstrap-template.test.ts` imports `buildTemplate()` and `renderTemplate()` from the generator ([#867](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/pull/867)), so generator code is on a test path while sitting outside the lint surface that governs everything else it touches.
## Expected behavior
Either `cdk/scripts/**/*.ts` is linted like `src/` and `test/`, or the exclusion is deliberate and recorded — with the inert `eslint-disable` comments removed so they don't imply otherwise.
## Current behavior
`scripts/` is silently unlinted. `eslint` reports the ignore only as a warning, so `mise //cdk:eslint` passes and nothing signals the gap.
## Reproduction steps
```bash
cd cdk
npx eslint scripts/generate-bootstrap-template.ts # "File ignored because no matching configuration"
grep -c eslint-disable scripts/generate-bootstrap-template.ts # 5 inert directives
grep -n "files:" eslint.config.mjs | head -2 # src/** and test/** only
```
## Possible solution
1. Add `scripts/**/*.ts` to the `files` glob at `eslint.config.mjs:49`, probably as its own block — scripts are Node-side and may legitimately want different rules than CDK constructs (`no-console` being the obvious one, since these are CLI tools that print).
2. Update the `//cdk:eslint` task in `cdk/mise.toml` from `src test` to include `scripts`.
3. Fix or delete whatever the newly-active rules flag, including the five directives that are currently no-ops.
Worth checking whether `cli/` and `docs/` have the same gap — `//cli:eslint` passes `src test build-tools`, so it may already cover its equivalent.
## Notes
Raised by @ayushtr-aws while reviewing [#867](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/pull/867) as pre-existing and out of scope for that PR. Filing separately as suggested.
## Environment
- Commit `e96dc21e` (also present well before it — the config predates the PR)
Contributor guide
Research direction
Start with cdk/eslint.config.mjs:49 and cdk/mise.toml, then run the reproduction commands from the issue against scripts/generate-bootstrap-template.ts. Check the newly linted cdk/scripts files and the five eslint-disable directives, including any rules they expose. Done means the scripts are covered by the project lint task and the directives or resulting violations are intentional and resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- eslint, typescript
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100