# core/coordinators/code.coordinator.ts

> 12 lines of code and 1 definition.

Tree: GovLab Patterns
Language: typescript
Layer: application
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-core-coordinators-code-coordinator-ts
Source text: https://banes-lab.com/source/patterns/core/coordinators/code.coordinator.ts.txt

Listed in [core/coordinators](https://banes-lab.com/api/source/patterns/core/coordinators.md), before [core/coordinators/field.coordinator.ts](https://banes-lab.com/source/patterns/core/coordinators/field.coordinator.ts.md).

## Definitions

- `diagnose` (lexical_declaration, line 6, exported)

## Contained in

- [core/coordinators](https://banes-lab.com/anatomy/patterns/folder-patterns-core-coordinators.md)

## Uses

- [core/analyzers/concern.analyzer.ts](https://banes-lab.com/source/patterns/core/analyzers/concern.analyzer.ts.md)
- [core/analyzers/definition.analyzer.ts](https://banes-lab.com/source/patterns/core/analyzers/definition.analyzer.ts.md)
- [core/analyzers/dependency.analyzer.ts](https://banes-lab.com/source/patterns/core/analyzers/dependency.analyzer.ts.md)

## Linked from

- [core/analyzers](https://banes-lab.com/anatomy/patterns/folder-patterns-core-analyzers.md)

## Source

```typescript
import type { CodeFinding, CodeSymbol, DiagnoseInput } from "#types/code.types";
import { deadFindings, duplicateFindings } from "#core/analyzers/definition.analyzer";
import { callCycleFindings } from "#core/analyzers/dependency.analyzer";
import { crossConcernFindings } from "#core/analyzers/concern.analyzer";

export const diagnose = function diagnose(symbols: readonly CodeSymbol[], input: DiagnoseInput): CodeFinding[] {
    return [
        ...callCycleFindings(input.graph.edges),
        ...deadFindings(symbols, input.records, input.testUses),
        ...duplicateFindings(symbols),
        ...crossConcernFindings(symbols, input.graph.edges),
    ].sort((left, right) => right.relevance - left.relevance);
};
```
