console-log-debugging
Severity: WarningCategory: Code Quality
Fixable: Yes Detects debug console statements that should not be in production code.
Why this matters
Debug console statements are common in AI-generated code and development workflows but should be removed before production. They clutter logs and may expose sensitive information.What it detects
The rule identifies debug patterns in console calls:console.log("here"),console.log("test"),console.log("debug")console.log("wtf"),console.log("???")console.log("==="),console.log("---")console.log("1"),console.log("2")(number strings)console.log(),console.dir(),console.table()with objects- Single variable logging:
console.log(someVar)
Examples
Bad: Debug console statements
Bad: Debug console statements
Good: Use proper logging
Good: Use proper logging
Auto-fix
This rule can automatically remove debug console statements when using the--fix flag.
Location
apps/cli/src/rules/console-log-debugging.ts:1
no-explicit-any
Severity: ErrorCategory: Type Safety
Fixable: Yes Disallows the use of the
any type in TypeScript.
Why this matters
Usingany defeats TypeScript’s type safety by disabling compile-time verification. This can lead to runtime errors that could have been caught during development.
What it detects
The rule flags all uses of theany type in:
- Variable declarations
- Function parameters
- Function return types
- Type aliases
- Property declarations
Examples
Bad: Using any
Bad: Using any
Good: Use proper types
Good: Use proper types
Auto-fix
This rule can automatically replaceany with unknown when using the --fix flag. You’ll still need to add proper type narrowing.
Location
apps/cli/src/rules/no-explicit-any.ts:1
no-await-in-loop
Severity: ErrorCategory: Performance Detects
await expressions inside loops that cause sequential execution.
Why this matters
Usingawait inside a loop causes operations to run sequentially instead of in parallel, significantly impacting performance. Use Promise.all() to run promises concurrently.
What it detects
The rule identifiesawait in:
forloopsfor...ofloopsfor...inloopswhileloopsdo...whileloops
Examples
Bad: Sequential await in loop
Bad: Sequential await in loop
Good: Parallel execution
Good: Parallel execution
When sequential is needed
Sometimes you actually need sequential execution (e.g., rate limiting):Performance impact
For 10 requests taking 100ms each:- Sequential (await in loop): 1000ms total
- Parallel (Promise.all): 100ms total
Location
apps/cli/src/rules/no-await-in-loop.ts:1
Best practices
Code quality checklist
- Use proper logging libraries instead of console.log
- Avoid
anytype - useunknownor specific types - Run async operations in parallel with Promise.all()
- Enable strict TypeScript compiler options
- Remove debug code before committing