Codebase Auditor (L2 Coordinator)
Coordinates 9 specialized audit workers to perform comprehensive codebase quality analysis.
Purpose & Scope
- Coordinates 9 audit workers (ln-621 through ln-629) running in parallel
- Research current best practices for detected tech stack via MCP tools ONCE
- Pass shared context to all workers (token-efficient)
- Aggregate worker results into single consolidated report
- Create single refactoring task in Linear under Epic 0 with all findings
- Manual invocation by user; not part of Story pipeline
Workflow
- Discovery: Load tech_stack.md, principles.md, package manifests, auto-discover Team ID
- Research: Query MCP tools for current best practices per major dependency ONCE
- Build Context: Create contextStore with best practices + tech stack metadata
- Domain Discovery: Detect project domains from folder structure (NEW)
- Delegate: Two-stage delegation - global workers + domain-aware workers (UPDATED)
- Aggregate: Collect worker results, group by domain, calculate scores
- Generate Report: Build consolidated report with Domain Health Summary, Findings by Domain
- Create Task: Create Linear task in Epic 0 titled "Codebase Refactoring: [YYYY-MM-DD]"
Phase 1: Discovery
Load project metadata:
docs/project/tech_stack.md - detect tech stack for research
docs/principles.md - project-specific quality principles
- Package manifests:
package.json, requirements.txt, go.mod, Cargo.toml
- Auto-discover Team ID from
docs/tasks/kanban_board.md
Extract metadata only (not full codebase scan):
- Programming language(s)
- Major frameworks/libraries
- Database system(s)
- Build tools
- Test framework(s)
Phase 2: Research Best Practices (ONCE)
For each major dependency identified in Phase 1:
- Use
mcp__Ref__ref_search_documentation for current best practices
- Use
mcp__context7__get-library-docs for up-to-date library documentation
- Focus areas by technology type:
| Type |
Research Focus |
| Web Framework |
Async patterns, middleware, error handling, request lifecycle |
| ML/AI Libraries |
Inference optimization, memory management, batching |
| Database |
Connection pooling, transactions, query optimization |
| Containerization |
Multi-stage builds, security, layer caching |
| Language Runtime |
Idioms, performance patterns, memory management |
Build contextStore:
{
"tech_stack": {...},
"best_practices": {...},
"principles": {...},
"codebase_root": "..."
}
Phase 3: Domain Discovery
Purpose: Detect project domains from folder structure for domain-aware auditing.
Algorithm:
Priority 1: Explicit domain folders
- Check for:
src/domains/*/, src/features/*/, src/modules/*/
- Monorepo patterns:
packages/*/, libs/*/, apps/*/
- If found (>1 match) → use these as domains
Priority 2: Top-level src/ folders*
- List folders:
src/users/, src/orders/, src/payments/
- Exclude infrastructure:
utils, shared, common, lib, helpers, config, types, interfaces, constants, middleware, infrastructure, core
- If remaining >1 → use as domains
Priority 3: Fallback to global mode
- If <2 domains detected →
domain_mode = "global"
- All workers scan entire codebase (backward-compatible behavior)
Heuristics for domain detection:
| Heuristic |
Indicator |
Example |
| File count |
>5 files in folder |
src/users/ with 12 files |
| Structure |
controllers/, services/, models/ present |
MVC/Clean Architecture |
| Barrel export |
index.ts/index.js exists |
Module pattern |
| README |
README.md describes domain |
Domain documentation |
Output:
{
"domain_mode": "domain-aware",
"all_domains": [
{"name": "users", "path": "src/users", "file_count": 45, "is_shared": false},
{"name": "orders", "path": "src/orders", "file_count": 32, "is_shared": false},
{"name": "shared", "path": "src/shared", "file_count": 15, "is_shared": true}
]
}
Shared folder handling:
- Folders named
shared, common, utils, lib, core → mark is_shared: true
- Shared code audited but grouped separately in report
- Does not affect domain-specific scores
Phase 4: Delegate to Workers
CRITICAL: All delegations use Task tool with subagent_type: "general-purpose" for context isolation.
Prompt template:
Task(description: "Audit via ln-62X",
prompt: "Execute ln-62X-{worker}-auditor. Read skill from ln-62X-{worker}-auditor/SKILL.md. Context: {contextStore}",
subagent_type: "general-purpose")
Anti-Patterns:
- ❌ Direct Skill tool invocation without Task wrapper
- ❌ Any execution bypassing subagent context isolation
Phase 4a: Global Workers (PARALLEL)
Global workers scan entire codebase (not domain-aware):
| # |
Worker |
Priority |
What It Audits |
| 1 |
ln-621-security-auditor |
CRITICAL |
Hardcoded secrets, SQL injection, XSS, insecure deps |
| 2 |
ln-622-build-auditor |
CRITICAL |
Compiler/linter errors, deprecations, type errors |
| 5 |
ln-625-dependencies-auditor |
MEDIUM |
Outdated packages, unused deps, custom implementations |
| 6 |
ln-626-dead-code-auditor |
LOW |
Dead code, unused imports/variables, commented-out code |
| 7 |
ln-627-observability-auditor |
MEDIUM |
Structured logging, health checks, metrics, tracing |
| 8 |
ln-628-concurrency-auditor |
HIGH |
Race conditions, async/await, resource contention |
| 9 |
ln-629-lifecycle-auditor |
MEDIUM |
Bootstrap, graceful shutdown, resource cleanup |
Invocation (7 workers in PARALLEL):
FOR EACH worker IN [ln-621, ln-622, ln-625, ln-626, ln-627, ln-628, ln-629]:
Task(description: "Audit via " + worker,
prompt: "Execute " + worker + ". Read skill. Context: " + JSON.stringify(contextStore),
subagent_type: "general-purpose")
Phase 4b: Domain-Aware Workers (PARALLEL per domain)
Domain-aware workers run once per domain:
| # |
Worker |
Priority |
What It Audits |
| 3 |
ln-623-code-principles-auditor |
HIGH |
DRY/KISS/YAGNI violations, TODO/FIXME, error handling, DI |
| 4 |
ln-624-code-quality-auditor |
MEDIUM |
Cyclomatic complexity, O(n²), N+1 queries, magic numbers |
Invocation (2 workers × N domains):
IF domain_mode == "domain-aware":
FOR EACH domain IN all_domains:
domain_context = {
...contextStore,
domain_mode: "domain-aware",
current_domain: { name: domain.name, path: domain.path }
}
// Invoke both workers for this domain
Skill(skill="ln-623-code-principles-auditor", args=JSON.stringify(domain_context))
Skill(skill="ln-624-code-quality-auditor", args=JSON.stringify(domain_context))
ELSE:
// Fallback: invoke once for entire codebase (global mode)
Skill(skill="ln-623-code-principles-auditor", args=JSON.stringify(contextStore))
Skill(skill="ln-624-code-quality-auditor", args=JSON.stringify(contextStore))
Parallelism strategy:
- Phase 4a: All 7 global workers run in PARALLEL
- Phase 4b: All (2 × N) domain-aware invocations run in PARALLEL
- Example: 3 domains → 6 invocations (ln-363×3 + ln-364×3) in single message
Phase 5: Aggregate Results
Collect results from workers:
Global worker output (unchanged):
{
"category": "Security",
"score": 7,
"total_issues": 5,
"critical": 1,
"high": 2,
"medium": 2,
"low": 0,
"findings": [...]
}
Domain-aware worker output (NEW):
{
"category": "Architecture & Design",
"score": 6,
"domain": "users",
"scan_path": "src/users",
"total_issues": 4,
"critical": 1,
"high": 2,
"medium": 1,
"low": 0,
"findings": [
{
"severity": "CRITICAL",
"location": "src/users/controllers/UserController.ts:45",
"issue": "Controller directly uses Repository",
"principle": "Layer Separation (Clean Architecture)",
"recommendation": "Create UserService",
"effort": "L",
"domain": "users"
}
]
}
Aggregation steps:
- Global workers → merge findings (as before)
- Domain-aware workers → group by domain.name:
- Calculate domain-level scores (Architecture + Quality per domain)
- Build Domain Health Summary table
- Overall score → average of all category scores (Architecture/Quality averaged across domains)
- Severity summary → sum critical/high/medium/low across ALL workers
- Findings grouping:
- Global categories (Security, Build, etc.) → single table
- Domain-aware categories → subtables per domain
Output Format
## Codebase Audit Report - [DATE]
### Executive Summary
[2-3 sentences on overall codebase health, major risks, and key strengths]
### Compliance Score
| Category | Score | Notes |
|----------|-------|-------|
| Security | X/10 | ... |
| Build Health | X/10 | ... |
| Architecture & Design | X/10 | ... |
| Code Quality | X/10 | ... |
| Dependencies & Reuse | X/10 | ... |
| Dead Code | X/10 | ... |
| Observability | X/10 | ... |
| Concurrency | X/10 | ... |
| Lifecycle | X/10 | ... |
| **Overall** | **X/10** | |
### Severity Summary
| Severity | Count |
|----------|-------|
| Critical | X |
| High | X |
| Medium | X |
| Low | X |
### Domain Health Summary (NEW - if domain_mode="domain-aware")
| Domain | Files | Arch Score | Quality Score | Issues |
|--------|-------|------------|---------------|--------|
| users | 45 | 7/10 | 8/10 | 5 |
| orders | 32 | 5/10 | 6/10 | 8 |
| payments | 28 | 8/10 | 7/10 | 3 |
| shared | 15 | 6/10 | 9/10 | 2 |
| **Total** | **120** | **6.5/10** | **7.5/10** | **18** |
### Strengths
- [What's done well in this codebase]
- [Good patterns and practices identified]
### Findings by Category
#### 1. Security (Global)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| CRITICAL | src/api/auth.ts:45 | Hardcoded API key | Secrets Management | Move to .env | S |
#### 2. Build Health (Global)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| CRITICAL | Multiple files | TypeScript strict errors | Type Safety | Fix types | S |
#### 3. Architecture & Design (Domain-Grouped)
##### Domain: users (src/users/)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| CRITICAL | UserController.ts:12 | Controller→Repository bypass | Layer Separation | Add Service layer | L |
##### Domain: orders (src/orders/)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| HIGH | OrderService.ts:45 | DRY violation (duplicate validation) | DRY Principle | Extract to validators/ | M |
##### Domain: shared (src/shared/)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| MEDIUM | utils.ts:78 | TODO older than 6 months | Code Hygiene | Complete or remove | S |
#### 4. Code Quality (Domain-Grouped)
##### Domain: users (src/users/)
| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
|----------|----------|-------|-------------------|----------------|--------|
| HIGH | UserService.ts:120 | Complexity 25 | Maintainability | Split function | M |
... (continue for remaining global categories: 5-9)
### Recommended Actions (Priority-Sorted)
| Priority | Category | Domain | Location | Issue | Recommendation | Effort |
|----------|----------|--------|----------|-------|----------------|--------|
| CRITICAL | Security | - | src/api/auth.ts:45 | Hardcoded API key | Move to .env | S |
| CRITICAL | Architecture | users | UserController.ts:12 | Controller→Repository bypass | Add Service layer | L |
| CRITICAL | Build | - | Multiple files | TypeScript strict errors | Fix types | S |
| HIGH | Architecture | orders | OrderService.ts:45 | DRY violation | Extract to validators/ | M |
| HIGH | Code Quality | users | UserService.ts:120 | Complexity 25 | Split function | M |
### Priority Actions
1. Fix all Critical issues before next release
2. Address High issues within current sprint
3. Plan Medium issues for technical debt sprint
4. Track Low issues in backlog
### Sources Consulted
- [Framework] best practices: [URL from MCP Ref]
- [Library] documentation: [URL from Context7]
Phase 6: Create Linear Task
Create task in Epic 0:
- Title:
Codebase Refactoring: [YYYY-MM-DD]
- Description: Full report from Phase 5 (markdown format)
- Team: Auto-discovered from kanban_board.md
- Epic: 0 (technical debt / refactoring epic)
- Labels:
refactoring, technical-debt, audit
- Priority: Based on highest severity findings (Critical → Urgent, High → High, etc.)
Critical Rules
- Two-stage delegation: Global workers (7) + Domain-aware workers (2 × N domains)
- Domain discovery: Auto-detect domains from folder structure; fallback to global mode
- Parallel execution: All workers (global + domain-aware) run in PARALLEL
- Single context gathering: Research best practices ONCE, pass contextStore to all workers
- Metadata-only loading: Coordinator loads metadata only; workers load full file contents
- Domain-grouped output: Architecture & Code Quality findings grouped by domain
- Language preservation: Task description in project's language (EN/RU from kanban_board.md)
- Single task: Create ONE task with all findings; do not create multiple tasks
- Do not audit: Coordinator orchestrates only; audit logic lives in workers
Definition of Done
- Best practices researched via MCP tools for major dependencies
- Domain discovery completed (domain_mode determined)
- contextStore built with tech stack + best practices + domain info
- Global workers (7) invoked in PARALLEL
- Domain-aware workers (2 × N domains) invoked in PARALLEL
- All workers completed successfully (or reported errors)
- Results aggregated with domain grouping
- Domain Health Summary built (if domain_mode="domain-aware")
- Compliance score (X/10) calculated per category + overall
- Executive Summary and Strengths sections included
- Linear task created in Epic 0 with full report
- Sources consulted listed with URLs
Workers
See individual worker SKILL.md files for detailed audit rules:
Reference Files
- Principles:
docs/principles.md
- Tech stack:
docs/project/tech_stack.md
- Kanban board:
docs/tasks/kanban_board.md
Version: 5.0.0
Last Updated: 2025-12-23
1---2name: ln-620-codebase-auditor3description: Coordinates 9 specialized audit workers (security, build, architecture, code quality, dependencies, dead code, observability, concurrency, lifecycle). Researches best practices, delegates parallel audits, aggregates results into single Linear task in Epic 0.4---5
6# Codebase Auditor (L2 Coordinator)
7
8Coordinates 9 specialized audit workers to perform comprehensive codebase quality analysis.
9
10## Purpose & Scope
11
12- **Coordinates 9 audit workers** (ln-621 through ln-629) running in parallel
13- Research current best practices for detected tech stack via MCP tools ONCE
14- Pass shared context to all workers (token-efficient)
15- Aggregate worker results into single consolidated report
16- Create single refactoring task in Linear under Epic 0 with all findings
17- Manual invocation by user; not part of Story pipeline
18
19## Workflow
20
211) **Discovery:** Load tech_stack.md, principles.md, package manifests, auto-discover Team ID
222) **Research:** Query MCP tools for current best practices per major dependency ONCE
233) **Build Context:** Create contextStore with best practices + tech stack metadata
244) **Domain Discovery:** Detect project domains from folder structure (NEW)
255) **Delegate:** Two-stage delegation - global workers + domain-aware workers (UPDATED)
266) **Aggregate:** Collect worker results, group by domain, calculate scores
277) **Generate Report:** Build consolidated report with Domain Health Summary, Findings by Domain
288) **Create Task:** Create Linear task in Epic 0 titled "Codebase Refactoring: [YYYY-MM-DD]"
29
30## Phase 1: Discovery
31
32**Load project metadata:**
33- `docs/project/tech_stack.md` - detect tech stack for research
34- `docs/principles.md` - project-specific quality principles
35- Package manifests: `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`
36- Auto-discover Team ID from `docs/tasks/kanban_board.md`
37
38**Extract metadata only** (not full codebase scan):
39- Programming language(s)
40- Major frameworks/libraries
41- Database system(s)
42- Build tools
43- Test framework(s)
44
45## Phase 2: Research Best Practices (ONCE)
46
47**For each major dependency identified in Phase 1:**
48
491. Use `mcp__Ref__ref_search_documentation` for current best practices
502. Use `mcp__context7__get-library-docs` for up-to-date library documentation
513. Focus areas by technology type:
52
53| Type | Research Focus |
54|------|----------------|
55| Web Framework | Async patterns, middleware, error handling, request lifecycle |
56| ML/AI Libraries | Inference optimization, memory management, batching |
57| Database | Connection pooling, transactions, query optimization |
58| Containerization | Multi-stage builds, security, layer caching |
59| Language Runtime | Idioms, performance patterns, memory management |
60
61**Build contextStore:**
62```json
63{
64 "tech_stack": {...},
65 "best_practices": {...},
66 "principles": {...},
67 "codebase_root": "..."
68}
69```
70
71## Phase 3: Domain Discovery
72
73**Purpose:** Detect project domains from folder structure for domain-aware auditing.
74
75**Algorithm:**
76
771. **Priority 1: Explicit domain folders**
78 - Check for: `src/domains/*/`, `src/features/*/`, `src/modules/*/`
79 - Monorepo patterns: `packages/*/`, `libs/*/`, `apps/*/`
80 - If found (>1 match) → use these as domains
81
822. **Priority 2: Top-level src/* folders**
83 - List folders: `src/users/`, `src/orders/`, `src/payments/`
84 - Exclude infrastructure: `utils`, `shared`, `common`, `lib`, `helpers`, `config`, `types`, `interfaces`, `constants`, `middleware`, `infrastructure`, `core`
85 - If remaining >1 → use as domains
86
873. **Priority 3: Fallback to global mode**
88 - If <2 domains detected → `domain_mode = "global"`
89 - All workers scan entire codebase (backward-compatible behavior)
90
91**Heuristics for domain detection:**
92
93| Heuristic | Indicator | Example |
94|-----------|-----------|---------|
95| File count | >5 files in folder | `src/users/` with 12 files |
96| Structure | controllers/, services/, models/ present | MVC/Clean Architecture |
97| Barrel export | index.ts/index.js exists | Module pattern |
98| README | README.md describes domain | Domain documentation |
99
100**Output:**
101```json
102{
103 "domain_mode": "domain-aware",
104 "all_domains": [
105 {"name": "users", "path": "src/users", "file_count": 45, "is_shared": false},
106 {"name": "orders", "path": "src/orders", "file_count": 32, "is_shared": false},
107 {"name": "shared", "path": "src/shared", "file_count": 15, "is_shared": true}
108 ]
109}
110```
111
112**Shared folder handling:**
113- Folders named `shared`, `common`, `utils`, `lib`, `core` → mark `is_shared: true`
114- Shared code audited but grouped separately in report
115- Does not affect domain-specific scores
116
117## Phase 4: Delegate to Workers
118
119> **CRITICAL:** All delegations use Task tool with `subagent_type: "general-purpose"` for context isolation.
120
121**Prompt template:**
122```
123Task(description: "Audit via ln-62X",
124 prompt: "Execute ln-62X-{worker}-auditor. Read skill from ln-62X-{worker}-auditor/SKILL.md. Context: {contextStore}",
125 subagent_type: "general-purpose")
126```
127
128**Anti-Patterns:**
129- ❌ Direct Skill tool invocation without Task wrapper
130- ❌ Any execution bypassing subagent context isolation
131
132### Phase 4a: Global Workers (PARALLEL)
133
134**Global workers** scan entire codebase (not domain-aware):
135
136| # | Worker | Priority | What It Audits |
137|---|--------|----------|----------------|
138| 1 | ln-621-security-auditor | CRITICAL | Hardcoded secrets, SQL injection, XSS, insecure deps |
139| 2 | ln-622-build-auditor | CRITICAL | Compiler/linter errors, deprecations, type errors |
140| 5 | ln-625-dependencies-auditor | MEDIUM | Outdated packages, unused deps, custom implementations |
141| 6 | ln-626-dead-code-auditor | LOW | Dead code, unused imports/variables, commented-out code |
142| 7 | ln-627-observability-auditor | MEDIUM | Structured logging, health checks, metrics, tracing |
143| 8 | ln-628-concurrency-auditor | HIGH | Race conditions, async/await, resource contention |
144| 9 | ln-629-lifecycle-auditor | MEDIUM | Bootstrap, graceful shutdown, resource cleanup |
145
146**Invocation (7 workers in PARALLEL):**
147```javascript
148FOR EACH worker IN [ln-621, ln-622, ln-625, ln-626, ln-627, ln-628, ln-629]:
149 Task(description: "Audit via " + worker,
150 prompt: "Execute " + worker + ". Read skill. Context: " + JSON.stringify(contextStore),
151 subagent_type: "general-purpose")
152```
153
154### Phase 4b: Domain-Aware Workers (PARALLEL per domain)
155
156**Domain-aware workers** run once per domain:
157
158| # | Worker | Priority | What It Audits |
159|---|--------|----------|----------------|
160| 3 | ln-623-code-principles-auditor | HIGH | DRY/KISS/YAGNI violations, TODO/FIXME, error handling, DI |
161| 4 | ln-624-code-quality-auditor | MEDIUM | Cyclomatic complexity, O(n²), N+1 queries, magic numbers |
162
163**Invocation (2 workers × N domains):**
164```javascript
165IF domain_mode == "domain-aware":
166 FOR EACH domain IN all_domains:
167 domain_context = {
168 ...contextStore,
169 domain_mode: "domain-aware",
170 current_domain: { name: domain.name, path: domain.path }
171 }
172 // Invoke both workers for this domain
173 Skill(skill="ln-623-code-principles-auditor", args=JSON.stringify(domain_context))
174 Skill(skill="ln-624-code-quality-auditor", args=JSON.stringify(domain_context))
175ELSE:
176 // Fallback: invoke once for entire codebase (global mode)
177 Skill(skill="ln-623-code-principles-auditor", args=JSON.stringify(contextStore))
178 Skill(skill="ln-624-code-quality-auditor", args=JSON.stringify(contextStore))
179```
180
181**Parallelism strategy:**
182- Phase 4a: All 7 global workers run in PARALLEL
183- Phase 4b: All (2 × N) domain-aware invocations run in PARALLEL
184- Example: 3 domains → 6 invocations (ln-363×3 + ln-364×3) in single message
185
186## Phase 5: Aggregate Results
187
188**Collect results from workers:**
189
190**Global worker output (unchanged):**
191```json
192{
193 "category": "Security",
194 "score": 7,
195 "total_issues": 5,
196 "critical": 1,
197 "high": 2,
198 "medium": 2,
199 "low": 0,
200 "findings": [...]
201}
202```
203
204**Domain-aware worker output (NEW):**
205```json
206{
207 "category": "Architecture & Design",
208 "score": 6,
209 "domain": "users",
210 "scan_path": "src/users",
211 "total_issues": 4,
212 "critical": 1,
213 "high": 2,
214 "medium": 1,
215 "low": 0,
216 "findings": [
217 {
218 "severity": "CRITICAL",
219 "location": "src/users/controllers/UserController.ts:45",
220 "issue": "Controller directly uses Repository",
221 "principle": "Layer Separation (Clean Architecture)",
222 "recommendation": "Create UserService",
223 "effort": "L",
224 "domain": "users"
225 }
226 ]
227}
228```
229
230**Aggregation steps:**
231
2321. **Global workers** → merge findings (as before)
2332. **Domain-aware workers** → group by domain.name:
234 - Calculate domain-level scores (Architecture + Quality per domain)
235 - Build Domain Health Summary table
2363. **Overall score** → average of all category scores (Architecture/Quality averaged across domains)
2374. **Severity summary** → sum critical/high/medium/low across ALL workers
2385. **Findings grouping:**
239 - Global categories (Security, Build, etc.) → single table
240 - Domain-aware categories → subtables per domain
241
242## Output Format
243
244```markdown
245## Codebase Audit Report - [DATE]
246
247### Executive Summary
248[2-3 sentences on overall codebase health, major risks, and key strengths]
249
250### Compliance Score
251
252| Category | Score | Notes |
253|----------|-------|-------|
254| Security | X/10 | ... |
255| Build Health | X/10 | ... |
256| Architecture & Design | X/10 | ... |
257| Code Quality | X/10 | ... |
258| Dependencies & Reuse | X/10 | ... |
259| Dead Code | X/10 | ... |
260| Observability | X/10 | ... |
261| Concurrency | X/10 | ... |
262| Lifecycle | X/10 | ... |
263| **Overall** | **X/10** | |
264
265### Severity Summary
266
267| Severity | Count |
268|----------|-------|
269| Critical | X |
270| High | X |
271| Medium | X |
272| Low | X |
273
274### Domain Health Summary (NEW - if domain_mode="domain-aware")
275
276| Domain | Files | Arch Score | Quality Score | Issues |
277|--------|-------|------------|---------------|--------|
278| users | 45 | 7/10 | 8/10 | 5 |
279| orders | 32 | 5/10 | 6/10 | 8 |
280| payments | 28 | 8/10 | 7/10 | 3 |
281| shared | 15 | 6/10 | 9/10 | 2 |
282| **Total** | **120** | **6.5/10** | **7.5/10** | **18** |
283
284### Strengths
285- [What's done well in this codebase]
286- [Good patterns and practices identified]
287
288### Findings by Category
289
290#### 1. Security (Global)
291
292| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
293|----------|----------|-------|-------------------|----------------|--------|
294| CRITICAL | src/api/auth.ts:45 | Hardcoded API key | Secrets Management | Move to .env | S |
295
296#### 2. Build Health (Global)
297
298| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
299|----------|----------|-------|-------------------|----------------|--------|
300| CRITICAL | Multiple files | TypeScript strict errors | Type Safety | Fix types | S |
301
302#### 3. Architecture & Design (Domain-Grouped)
303
304##### Domain: users (src/users/)
305
306| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
307|----------|----------|-------|-------------------|----------------|--------|
308| CRITICAL | UserController.ts:12 | Controller→Repository bypass | Layer Separation | Add Service layer | L |
309
310##### Domain: orders (src/orders/)
311
312| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
313|----------|----------|-------|-------------------|----------------|--------|
314| HIGH | OrderService.ts:45 | DRY violation (duplicate validation) | DRY Principle | Extract to validators/ | M |
315
316##### Domain: shared (src/shared/)
317
318| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
319|----------|----------|-------|-------------------|----------------|--------|
320| MEDIUM | utils.ts:78 | TODO older than 6 months | Code Hygiene | Complete or remove | S |
321
322#### 4. Code Quality (Domain-Grouped)
323
324##### Domain: users (src/users/)
325
326| Severity | Location | Issue | Principle Violated | Recommendation | Effort |
327|----------|----------|-------|-------------------|----------------|--------|
328| HIGH | UserService.ts:120 | Complexity 25 | Maintainability | Split function | M |
329
330... (continue for remaining global categories: 5-9)
331
332### Recommended Actions (Priority-Sorted)
333
334| Priority | Category | Domain | Location | Issue | Recommendation | Effort |
335|----------|----------|--------|----------|-------|----------------|--------|
336| CRITICAL | Security | - | src/api/auth.ts:45 | Hardcoded API key | Move to .env | S |
337| CRITICAL | Architecture | users | UserController.ts:12 | Controller→Repository bypass | Add Service layer | L |
338| CRITICAL | Build | - | Multiple files | TypeScript strict errors | Fix types | S |
339| HIGH | Architecture | orders | OrderService.ts:45 | DRY violation | Extract to validators/ | M |
340| HIGH | Code Quality | users | UserService.ts:120 | Complexity 25 | Split function | M |
341
342### Priority Actions
3431. Fix all Critical issues before next release
3442. Address High issues within current sprint
3453. Plan Medium issues for technical debt sprint
3464. Track Low issues in backlog
347
348### Sources Consulted
349- [Framework] best practices: [URL from MCP Ref]
350- [Library] documentation: [URL from Context7]
351```
352
353## Phase 6: Create Linear Task
354
355Create task in Epic 0:
356- Title: `Codebase Refactoring: [YYYY-MM-DD]`
357- Description: Full report from Phase 5 (markdown format)
358- Team: Auto-discovered from kanban_board.md
359- Epic: 0 (technical debt / refactoring epic)
360- Labels: `refactoring`, `technical-debt`, `audit`
361- Priority: Based on highest severity findings (Critical → Urgent, High → High, etc.)
362
363## Critical Rules
364
365- **Two-stage delegation:** Global workers (7) + Domain-aware workers (2 × N domains)
366- **Domain discovery:** Auto-detect domains from folder structure; fallback to global mode
367- **Parallel execution:** All workers (global + domain-aware) run in PARALLEL
368- **Single context gathering:** Research best practices ONCE, pass contextStore to all workers
369- **Metadata-only loading:** Coordinator loads metadata only; workers load full file contents
370- **Domain-grouped output:** Architecture & Code Quality findings grouped by domain
371- **Language preservation:** Task description in project's language (EN/RU from kanban_board.md)
372- **Single task:** Create ONE task with all findings; do not create multiple tasks
373- **Do not audit:** Coordinator orchestrates only; audit logic lives in workers
374
375## Definition of Done
376
377- Best practices researched via MCP tools for major dependencies
378- Domain discovery completed (domain_mode determined)
379- contextStore built with tech stack + best practices + domain info
380- Global workers (7) invoked in PARALLEL
381- Domain-aware workers (2 × N domains) invoked in PARALLEL
382- All workers completed successfully (or reported errors)
383- Results aggregated with domain grouping
384- Domain Health Summary built (if domain_mode="domain-aware")
385- Compliance score (X/10) calculated per category + overall
386- Executive Summary and Strengths sections included
387- Linear task created in Epic 0 with full report
388- Sources consulted listed with URLs
389
390## Workers
391
392See individual worker SKILL.md files for detailed audit rules:
393- [ln-621-security-auditor](../ln-621-security-auditor/SKILL.md)
394- [ln-622-build-auditor](../ln-622-build-auditor/SKILL.md)
395- [ln-623-code-principles-auditor](../ln-623-code-principles-auditor/SKILL.md)
396- [ln-624-code-quality-auditor](../ln-624-code-quality-auditor/SKILL.md)
397- [ln-625-dependencies-auditor](../ln-625-dependencies-auditor/SKILL.md)
398- [ln-626-dead-code-auditor](../ln-626-dead-code-auditor/SKILL.md)
399- [ln-627-observability-auditor](../ln-627-observability-auditor/SKILL.md)
400- [ln-628-concurrency-auditor](../ln-628-concurrency-auditor/SKILL.md)
401- [ln-629-lifecycle-auditor](../ln-629-lifecycle-auditor/SKILL.md)
402
403## Reference Files
404
405- Principles: `docs/principles.md`
406- Tech stack: `docs/project/tech_stack.md`
407- Kanban board: `docs/tasks/kanban_board.md`
408
409---
410**Version:** 5.0.0
411**Last Updated:** 2025-12-23