aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

fix(tooling): cdk/scripts is excluded from eslint, so its eslint-disable directives are inert

Open
#882 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.