## Syntax & Dependencies (Critical)

### Trigger Signals

- Mismatched brackets/braces/parentheses, missing semicolons, keyword typos
- Module path referenced by `import`/`require`/`#include` for **project-internal** modules does not exist
- Missing required **project-internal** dependency (will cause `Cannot find module` at runtime)

### Judgment Process

**Syntax Correctness**:
1. `Read` scans the changed code, checking bracket pairing (`()`, `[]`, `{}`), semicolon closure, and keyword spelling
2. For complex expressions: verify operator precedence and nesting levels are reasonable

**Dependency Existence** (only check project-internal modules, skip third-party packages):
1. Extract all `import`/`require`/`#include` statements, distinguishing between project-internal modules and third-party packages (internal modules start with `./`, `../`, `@/` and other project aliases)
2. For project-internal modules: `find_definition` verifies whether the imported module path exists
3. On failure, fall back to `Grep` to search for module definition files in the project
4. For third-party packages: skip directly (third-party dependencies that need to be installed are not visible, cannot confirm dependency status)

### Evidence Construction

After confirming a defect, the output must include:
- Defect location (syntax error/missing dependency location, with file:line number)
- Defect type (bracket mismatch/module not found/package not declared)
- Specific description (missing module name, mismatched bracket pair)

### Exclusions

- Third-party package imports (`import express from 'express'` and other non-project-internal modules, third-party dependencies are not visible)
- Dynamic imports (`import(variable)`) cannot be statically analyzed
- TypeScript type imports (`import type`) do not affect runtime
