@corbat-tech/coding-standards-mcp 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +246 -187
- package/dist/analysis/code-analyzer.d.ts +1 -0
- package/dist/analysis/code-analyzer.d.ts.map +1 -1
- package/dist/analysis/code-analyzer.js +6 -0
- package/dist/analysis/code-analyzer.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +25 -6
- package/dist/config.js.map +1 -1
- package/dist/logger.d.ts +20 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +35 -0
- package/dist/logger.js.map +1 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +8 -0
- package/dist/resources.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +14 -7
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
**Works with GitHub Copilot, Continue, Cline, Tabnine, Amazon Q, and [25+ more tools](docs/compatibility.md)**
|
|
24
24
|
|
|
25
|
+
⚡ **Try it in 30 seconds** — just add the config below and start coding.
|
|
26
|
+
|
|
25
27
|
</div>
|
|
26
28
|
|
|
27
29
|
---
|
|
@@ -32,13 +34,16 @@ AI-generated code works, but rarely passes code review:
|
|
|
32
34
|
|
|
33
35
|
| Without Corbat | With Corbat |
|
|
34
36
|
|----------------|-------------|
|
|
37
|
+
| Methods with 50+ lines | Max 20 lines per method |
|
|
35
38
|
| No dependency injection | Proper DI with interfaces |
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
| God classes,
|
|
39
|
-
|
|
|
39
|
+
| `throw new Error('failed')` | Custom exceptions with context |
|
|
40
|
+
| Missing or minimal tests | Tests included, TDD approach |
|
|
41
|
+
| God classes, mixed concerns | SOLID principles, clean layers |
|
|
42
|
+
| Works on my machine | Production-ready patterns |
|
|
43
|
+
|
|
44
|
+
**Sound familiar?** You spend more time fixing AI code than writing it yourself.
|
|
40
45
|
|
|
41
|
-
**
|
|
46
|
+
**Corbat MCP solves this** by injecting your team's coding standards *before* the AI generates code — not after.
|
|
42
47
|
|
|
43
48
|
---
|
|
44
49
|
|
|
@@ -70,218 +75,252 @@ AI-generated code works, but rarely passes code review:
|
|
|
70
75
|
|
|
71
76
|
> [Complete setup guide](docs/setup.md) for all 25+ tools
|
|
72
77
|
|
|
73
|
-
**3. Done!** Corbat auto-detects your stack.
|
|
78
|
+
**3. Done!** Corbat auto-detects your stack and applies the right standards.
|
|
74
79
|
|
|
75
|
-
|
|
76
|
-
You: "Create a payment service"
|
|
80
|
+
> **Zero overhead.** Corbat runs locally and adds ~50ms to detect your stack. After that, it's just context for the AI.
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
✓ Profile: java-spring-backend
|
|
80
|
-
✓ Architecture: Hexagonal + DDD
|
|
81
|
-
✓ Testing: TDD, 80%+ coverage
|
|
82
|
-
```
|
|
82
|
+
> **Fully customizable.** Don't like a rule? Override it in `.corbat.json`. [Jump to customization →](#customize)
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
86
|
-
##
|
|
87
|
-
|
|
88
|
-
### Overall Impact
|
|
89
|
-
|
|
90
|
-
<div align="center">
|
|
91
|
-
|
|
92
|
-
| Metric | Without Corbat | With Corbat | **Improvement** |
|
|
93
|
-
|--------|:--------------:|:-----------:|:---------------:|
|
|
94
|
-
| **Quality Score** | 4.6/10 | 7.7/10 | **+67%** |
|
|
95
|
-
| **Custom Errors** | 3 | 18 | **+500%** |
|
|
96
|
-
| **Interfaces/Ports** | 19 | 41 | **+116%** |
|
|
97
|
-
| **Files (modularity)** | 55 | 95 | **+73%** |
|
|
98
|
-
|
|
99
|
-
</div>
|
|
86
|
+
## See It In Action
|
|
100
87
|
|
|
101
|
-
### By Complexity Level
|
|
102
|
-
|
|
103
|
-
| Category | Scenarios | Without | With | **Improvement** |
|
|
104
|
-
|----------|-----------|:-------:|:----:|:---------------:|
|
|
105
|
-
| **Basic** | UserService, REST API, React Form | 4.0 | 7.6 | **+90%** |
|
|
106
|
-
| **Intermediate** | Kafka Consumer, FastAPI, Go HTTP | 4.3 | 7.2 | **+67%** |
|
|
107
|
-
| **Advanced** | Saga, Circuit Breaker, Event Sourcing | 5.6 | 8.2 | **+46%** |
|
|
108
|
-
|
|
109
|
-
### Pattern Detection
|
|
110
|
-
|
|
111
|
-
| Pattern | Without Corbat | With Corbat |
|
|
112
|
-
|---------|:--------------:|:-----------:|
|
|
113
|
-
| Hexagonal Architecture | 0/10 scenarios | **10/10** |
|
|
114
|
-
| Repository Pattern | 2/10 | **7/10** |
|
|
115
|
-
| Custom Error Types | 1/10 | **8/10** |
|
|
116
|
-
| Dependency Injection | 2/10 | **10/10** |
|
|
117
|
-
| Saga Pattern | 0/10 | **1/1** (when needed) |
|
|
118
|
-
|
|
119
|
-
### Real Example: Saga Pattern (Scenario 07)
|
|
120
|
-
|
|
121
|
-
<table>
|
|
122
|
-
<tr>
|
|
123
|
-
<th>Without Corbat</th>
|
|
124
|
-
<th>With Corbat</th>
|
|
125
|
-
</tr>
|
|
126
|
-
<tr>
|
|
127
|
-
<td>
|
|
128
|
-
|
|
129
|
-
```java
|
|
130
|
-
// Hardcoded rollback, not extensible
|
|
131
|
-
try {
|
|
132
|
-
targetAccount.credit(amount);
|
|
133
|
-
} catch (Exception e) {
|
|
134
|
-
rollbackDebit(sourceAccount, amount);
|
|
135
|
-
throw new TransferException(...);
|
|
136
|
-
}
|
|
137
88
|
```
|
|
138
|
-
|
|
139
|
-
</td>
|
|
140
|
-
<td>
|
|
141
|
-
|
|
142
|
-
```java
|
|
143
|
-
// Reusable Saga Pattern
|
|
144
|
-
public interface SagaStep<T> {
|
|
145
|
-
void execute(T context);
|
|
146
|
-
void compensate(T context);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
public class SagaOrchestrator<T> {
|
|
150
|
-
public void execute(T context) {
|
|
151
|
-
for (SagaStep<T> step : steps) {
|
|
152
|
-
step.execute(context);
|
|
153
|
-
executedSteps.add(step);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Auto-rollback on failure
|
|
157
|
-
}
|
|
89
|
+
You: "Create a user registration service"
|
|
158
90
|
```
|
|
159
91
|
|
|
160
|
-
|
|
161
|
-
</tr>
|
|
162
|
-
<tr>
|
|
163
|
-
<td>9 files, 292 LOC, manual rollback</td>
|
|
164
|
-
<td><b>17 files, 707 LOC, orchestrated compensation</b></td>
|
|
165
|
-
</tr>
|
|
166
|
-
</table>
|
|
167
|
-
|
|
168
|
-
[View full benchmark analysis with 10 scenarios](benchmarks/v2/ANALYSIS.md)
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Code Comparison
|
|
173
|
-
|
|
174
|
-
### Before: Without Corbat MCP
|
|
92
|
+
**Without Corbat**, you get:
|
|
175
93
|
|
|
176
94
|
```typescript
|
|
177
95
|
class UserService {
|
|
178
96
|
private users: Map<string, User> = new Map();
|
|
179
97
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
createUser(input: CreateUserInput): User {
|
|
185
|
-
if (!input.name) throw new Error('Name is required');
|
|
186
|
-
const user = { id: uuidv4(), ...input };
|
|
98
|
+
register(name: string, email: string, password: string) {
|
|
99
|
+
if (!name || !email || !password) throw new Error('Invalid input');
|
|
100
|
+
const user = { id: crypto.randomUUID(), name, email, password };
|
|
187
101
|
this.users.set(user.id, user);
|
|
188
102
|
return user;
|
|
189
103
|
}
|
|
190
104
|
}
|
|
191
|
-
// ✗
|
|
105
|
+
// ✗ Hardcoded storage ✗ Password in plain text ✗ Generic error ✗ No tests
|
|
192
106
|
```
|
|
193
107
|
|
|
194
|
-
|
|
108
|
+
**With Corbat**, you get:
|
|
195
109
|
|
|
196
110
|
```typescript
|
|
197
|
-
//
|
|
111
|
+
// Domain
|
|
198
112
|
interface UserRepository {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
existsByEmail(email: string): boolean;
|
|
113
|
+
save(user: User): Promise<void>;
|
|
114
|
+
findByEmail(email: string): Promise<User | null>;
|
|
202
115
|
}
|
|
203
116
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
117
|
+
class EmailAlreadyExistsError extends Error {
|
|
118
|
+
constructor(email: string) {
|
|
119
|
+
super(`Email already registered: ${email}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
208
122
|
|
|
209
|
-
//
|
|
210
|
-
class
|
|
123
|
+
// Application
|
|
124
|
+
class RegisterUserUseCase {
|
|
211
125
|
constructor(
|
|
212
126
|
private readonly repository: UserRepository,
|
|
213
|
-
private readonly
|
|
127
|
+
private readonly hasher: PasswordHasher
|
|
214
128
|
) {}
|
|
215
129
|
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
if (
|
|
219
|
-
return user;
|
|
220
|
-
}
|
|
130
|
+
async execute(input: RegisterUserInput): Promise<User> {
|
|
131
|
+
const existing = await this.repository.findByEmail(input.email);
|
|
132
|
+
if (existing) throw new EmailAlreadyExistsError(input.email);
|
|
221
133
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
this.repository.save(user);
|
|
134
|
+
const user = User.create({
|
|
135
|
+
...input,
|
|
136
|
+
password: await this.hasher.hash(input.password)
|
|
137
|
+
});
|
|
138
|
+
await this.repository.save(user);
|
|
227
139
|
return user;
|
|
228
140
|
}
|
|
229
141
|
}
|
|
230
|
-
// ✓ Repository interface ✓
|
|
142
|
+
// ✓ Repository interface ✓ Password hashing ✓ Custom error ✓ Testable
|
|
231
143
|
```
|
|
232
144
|
|
|
233
|
-
|
|
145
|
+
```typescript
|
|
146
|
+
// Test included
|
|
147
|
+
describe('RegisterUserUseCase', () => {
|
|
148
|
+
const repository = { save: vi.fn(), findByEmail: vi.fn() };
|
|
149
|
+
const hasher = { hash: vi.fn() };
|
|
150
|
+
const useCase = new RegisterUserUseCase(repository, hasher);
|
|
151
|
+
|
|
152
|
+
beforeEach(() => vi.clearAllMocks());
|
|
153
|
+
|
|
154
|
+
it('should hash password before saving', async () => {
|
|
155
|
+
repository.findByEmail.mockResolvedValue(null);
|
|
156
|
+
hasher.hash.mockResolvedValue('hashed_password');
|
|
157
|
+
|
|
158
|
+
await useCase.execute({ name: 'John', email: 'john@test.com', password: 'secret' });
|
|
159
|
+
|
|
160
|
+
expect(hasher.hash).toHaveBeenCalledWith('secret');
|
|
161
|
+
expect(repository.save).toHaveBeenCalledWith(
|
|
162
|
+
expect.objectContaining({ password: 'hashed_password' })
|
|
163
|
+
);
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
it('should reject duplicate emails', async () => {
|
|
167
|
+
repository.findByEmail.mockResolvedValue({ id: '1', email: 'john@test.com' });
|
|
168
|
+
|
|
169
|
+
await expect(
|
|
170
|
+
useCase.execute({ name: 'John', email: 'john@test.com', password: 'secret' })
|
|
171
|
+
).rejects.toThrow(EmailAlreadyExistsError);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**This is what "passes code review on the first try" looks like.**
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## What Corbat Enforces
|
|
181
|
+
|
|
182
|
+
Corbat injects these guardrails before code generation:
|
|
183
|
+
|
|
184
|
+
### Code Quality
|
|
185
|
+
| Rule | Why It Matters |
|
|
186
|
+
|------|----------------|
|
|
187
|
+
| **Max 20 lines per method** | Readable, testable, single-purpose functions |
|
|
188
|
+
| **Max 200 lines per class** | Single Responsibility Principle |
|
|
189
|
+
| **Meaningful names** | No `data`, `info`, `temp`, `x` |
|
|
190
|
+
| **No magic numbers** | Constants with descriptive names |
|
|
191
|
+
|
|
192
|
+
### Architecture
|
|
193
|
+
| Rule | Why It Matters |
|
|
194
|
+
|------|----------------|
|
|
195
|
+
| **Interfaces for dependencies** | Testable code, easy mocking |
|
|
196
|
+
| **Layer separation** | Domain logic isolated from infrastructure |
|
|
197
|
+
| **Hexagonal/Clean patterns** | Framework-agnostic business rules |
|
|
198
|
+
|
|
199
|
+
### Error Handling
|
|
200
|
+
| Rule | Why It Matters |
|
|
201
|
+
|------|----------------|
|
|
202
|
+
| **Custom exceptions** | `UserNotFoundError` vs `Error('not found')` |
|
|
203
|
+
| **Error context** | Include IDs, values, state in errors |
|
|
204
|
+
| **No empty catches** | Every error handled or propagated |
|
|
205
|
+
|
|
206
|
+
### Security (verified against OWASP Top 10)
|
|
207
|
+
| Rule | Why It Matters |
|
|
208
|
+
|------|----------------|
|
|
209
|
+
| **Input validation** | Reject bad data at boundaries |
|
|
210
|
+
| **No hardcoded secrets** | Environment variables only |
|
|
211
|
+
| **Parameterized queries** | Prevent SQL injection |
|
|
212
|
+
| **Output encoding** | Prevent XSS |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Benchmark Results v3.0
|
|
217
|
+
|
|
218
|
+
We evaluated Corbat across **15 real-world scenarios** in 6 languages.
|
|
219
|
+
|
|
220
|
+
### The Key Insight
|
|
221
|
+
|
|
222
|
+
Corbat generates **focused, production-ready code** — not verbose boilerplate:
|
|
223
|
+
|
|
224
|
+
| Scenario | With Corbat | Without Corbat | What This Means |
|
|
225
|
+
|----------|:-----------:|:--------------:|-----------------|
|
|
226
|
+
| Kotlin Coroutines | 236 lines | 1,923 lines | Same functionality, 8x less to maintain |
|
|
227
|
+
| Java Hexagonal | 623 lines | 2,740 lines | Clean architecture without the bloat |
|
|
228
|
+
| Go Clean Arch | 459 lines | 2,012 lines | Idiomatic Go, not Java-in-Go |
|
|
229
|
+
| TypeScript NestJS | 395 lines | 1,554 lines | Right patterns, right size |
|
|
230
|
+
|
|
231
|
+
**This isn't "less code for less code's sake"** — it's the right abstractions without over-engineering.
|
|
232
|
+
|
|
233
|
+
### Value Metrics
|
|
234
|
+
|
|
235
|
+
When we measure what actually matters for production code:
|
|
236
|
+
|
|
237
|
+
| Metric | Result | What It Means |
|
|
238
|
+
|--------|:------:|---------------|
|
|
239
|
+
| **Code Reduction** | 67% | Less to maintain, review, and debug |
|
|
240
|
+
| **Security** | 100% | Zero vulnerabilities across all scenarios |
|
|
241
|
+
| **Maintainability** | 93% win | Easier to understand and modify |
|
|
242
|
+
| **Architecture Efficiency** | 87% win | Better patterns per line of code |
|
|
243
|
+
| **Cognitive Load** | -59% | Faster onboarding for new developers |
|
|
244
|
+
|
|
245
|
+
📊 [Detailed value analysis](benchmarks/v3/CORBAT_VALUE_REPORT.md)
|
|
246
|
+
|
|
247
|
+
### Security: Zero Vulnerabilities Detected
|
|
248
|
+
|
|
249
|
+
Every scenario was analyzed using pattern detection for OWASP Top 10 vulnerabilities:
|
|
250
|
+
|
|
251
|
+
- ✓ No SQL/NoSQL injection patterns
|
|
252
|
+
- ✓ No XSS vulnerabilities
|
|
253
|
+
- ✓ No hardcoded credentials
|
|
254
|
+
- ✓ Input validation at all boundaries
|
|
255
|
+
- ✓ Proper error messages (no stack traces to users)
|
|
256
|
+
|
|
257
|
+
### Languages & Patterns Tested
|
|
258
|
+
|
|
259
|
+
| Language | Scenarios | Patterns |
|
|
260
|
+
|:--------:|:---------:|:---------|
|
|
261
|
+
| ☕ Java | 5 | Spring Boot, DDD Aggregates, Hexagonal, Kafka Events, Saga |
|
|
262
|
+
| 📘 TypeScript | 4 | Express REST, NestJS Clean, React Components, Next.js Full-Stack |
|
|
263
|
+
| 🐍 Python | 2 | FastAPI CRUD, Repository Pattern |
|
|
264
|
+
| 🐹 Go | 2 | HTTP Handlers, Clean Architecture |
|
|
265
|
+
| 🦀 Rust | 1 | Axum with Repository Trait |
|
|
266
|
+
| 🟣 Kotlin | 1 | Coroutines + Strategy Pattern |
|
|
267
|
+
|
|
268
|
+
📖 [Full benchmark methodology](benchmarks/v3/BENCHMARK_REPORT_V3.md) · [Value analysis](benchmarks/v3/CORBAT_VALUE_REPORT.md)
|
|
234
269
|
|
|
235
270
|
---
|
|
236
271
|
|
|
237
272
|
## Built-in Profiles
|
|
238
273
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
|
242
|
-
|
|
243
|
-
| `
|
|
244
|
-
| `
|
|
245
|
-
| `
|
|
246
|
-
| `
|
|
247
|
-
| `
|
|
248
|
-
| `
|
|
249
|
-
| `
|
|
250
|
-
| `
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
### Architecture Patterns Enforced
|
|
258
|
-
|
|
259
|
-
- **Hexagonal Architecture** — Ports & Adapters, infrastructure isolation
|
|
260
|
-
- **Domain-Driven Design** — Aggregates, Value Objects, Domain Events
|
|
261
|
-
- **SOLID Principles** — Single responsibility, dependency inversion
|
|
262
|
-
- **Clean Code** — Max 20 lines/method, meaningful names, no magic numbers
|
|
263
|
-
- **Error Handling** — Custom exceptions with context, no generic catches
|
|
264
|
-
- **Testing** — TDD workflow, unit + integration, mocking strategies
|
|
274
|
+
Corbat auto-detects your stack and applies the right standards:
|
|
275
|
+
|
|
276
|
+
| Profile | Stack | What You Get |
|
|
277
|
+
|---------|-------|--------------|
|
|
278
|
+
| `java-spring-backend` | Java 21 + Spring Boot 3 | Hexagonal + DDD, TDD with 80%+ coverage |
|
|
279
|
+
| `kotlin-spring` | Kotlin + Spring Boot 3 | Coroutines, Kotest + MockK |
|
|
280
|
+
| `nodejs` | Node.js + TypeScript | Clean Architecture, Vitest |
|
|
281
|
+
| `nextjs` | Next.js 14+ | App Router patterns, Server Components |
|
|
282
|
+
| `react` | React 18+ | Hooks, Testing Library, accessible components |
|
|
283
|
+
| `vue` | Vue 3.5+ | Composition API, Vitest |
|
|
284
|
+
| `angular` | Angular 19+ | Standalone components, Jest |
|
|
285
|
+
| `python` | Python + FastAPI | Async patterns, pytest |
|
|
286
|
+
| `go` | Go 1.22+ | Idiomatic Go, table-driven tests |
|
|
287
|
+
| `rust` | Rust + Axum | Ownership patterns, proptest |
|
|
288
|
+
| `csharp-dotnet` | C# 12 + ASP.NET Core 8 | Clean + CQRS, xUnit |
|
|
289
|
+
| `flutter` | Dart 3 + Flutter | BLoC/Riverpod, widget tests |
|
|
290
|
+
|
|
291
|
+
**Auto-detection:** Corbat reads `pom.xml`, `package.json`, `go.mod`, `Cargo.toml`, etc.
|
|
265
292
|
|
|
266
293
|
---
|
|
267
294
|
|
|
268
|
-
##
|
|
295
|
+
## When to Use Corbat
|
|
296
|
+
|
|
297
|
+
| Use Case | Why Corbat Helps |
|
|
298
|
+
|----------|------------------|
|
|
299
|
+
| **Starting a new project** | Correct architecture from day one |
|
|
300
|
+
| **Teams with juniors** | Everyone produces senior-level patterns |
|
|
301
|
+
| **Strict code review standards** | AI code meets your bar automatically |
|
|
302
|
+
| **Regulated industries** | Consistent security and documentation |
|
|
303
|
+
| **Legacy modernization** | New code follows modern patterns |
|
|
269
304
|
|
|
270
|
-
###
|
|
305
|
+
### When Corbat Might Not Be Needed
|
|
271
306
|
|
|
272
|
-
|
|
307
|
+
- Quick prototypes where quality doesn't matter
|
|
308
|
+
- One-off scripts you'll throw away
|
|
309
|
+
- Learning projects where you want to make mistakes
|
|
273
310
|
|
|
274
|
-
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Customize
|
|
275
314
|
|
|
276
|
-
###
|
|
315
|
+
### Option 1: Interactive Setup
|
|
277
316
|
|
|
278
317
|
```bash
|
|
279
318
|
npx corbat-init
|
|
280
319
|
```
|
|
281
320
|
|
|
282
|
-
|
|
321
|
+
Detects your stack and generates a `.corbat.json` with sensible defaults.
|
|
283
322
|
|
|
284
|
-
### Manual
|
|
323
|
+
### Option 2: Manual Configuration
|
|
285
324
|
|
|
286
325
|
Create `.corbat.json` in your project root:
|
|
287
326
|
|
|
@@ -292,60 +331,80 @@ Create `.corbat.json` in your project root:
|
|
|
292
331
|
"pattern": "hexagonal",
|
|
293
332
|
"layers": ["domain", "application", "infrastructure", "api"]
|
|
294
333
|
},
|
|
295
|
-
"ddd": {
|
|
296
|
-
"aggregates": true,
|
|
297
|
-
"valueObjects": true,
|
|
298
|
-
"domainEvents": true
|
|
299
|
-
},
|
|
300
334
|
"quality": {
|
|
301
335
|
"maxMethodLines": 20,
|
|
302
336
|
"maxClassLines": 200,
|
|
303
337
|
"minCoverage": 80
|
|
304
338
|
},
|
|
305
339
|
"rules": {
|
|
306
|
-
"always": [
|
|
307
|
-
|
|
340
|
+
"always": [
|
|
341
|
+
"Use records for DTOs",
|
|
342
|
+
"Prefer Optional over null"
|
|
343
|
+
],
|
|
344
|
+
"never": [
|
|
345
|
+
"Use field injection",
|
|
346
|
+
"Catch generic Exception"
|
|
347
|
+
]
|
|
308
348
|
}
|
|
309
349
|
}
|
|
310
350
|
```
|
|
311
351
|
|
|
352
|
+
### Option 3: Use a Template
|
|
353
|
+
|
|
354
|
+
**[Browse 14 ready-to-use templates](docs/templates.md)** for Java, Python, Node.js, React, Go, Rust, and more.
|
|
355
|
+
|
|
312
356
|
---
|
|
313
357
|
|
|
314
358
|
## How It Works
|
|
315
359
|
|
|
316
360
|
```
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
361
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
362
|
+
│ Your Prompt │────▶│ Corbat MCP │────▶│ AI + Rules │
|
|
363
|
+
└─────────────┘ └──────┬──────┘ └─────────────┘
|
|
364
|
+
│
|
|
365
|
+
┌──────────────┼──────────────┐
|
|
366
|
+
▼ ▼ ▼
|
|
367
|
+
┌────────────┐ ┌────────────┐ ┌────────────┐
|
|
368
|
+
│ 1. Detect │ │ 2. Load │ │ 3. Inject │
|
|
369
|
+
│ Stack │ │ Profile │ │ Guardrails │
|
|
370
|
+
└────────────┘ └────────────┘ └────────────┘
|
|
371
|
+
pom.xml hexagonal max 20 lines
|
|
372
|
+
package.json + DDD + interfaces
|
|
373
|
+
go.mod + SOLID + custom errors
|
|
323
374
|
```
|
|
324
375
|
|
|
376
|
+
Corbat doesn't modify AI output — it ensures the AI knows your standards *before* generating.
|
|
377
|
+
|
|
378
|
+
**Important:** Corbat provides context and guidelines to the AI. The actual code quality depends on how well the AI model follows these guidelines. In our testing, models like Claude and GPT-4 consistently respect these guardrails.
|
|
379
|
+
|
|
325
380
|
---
|
|
326
381
|
|
|
327
382
|
## Documentation
|
|
328
383
|
|
|
329
384
|
| Resource | Description |
|
|
330
385
|
|----------|-------------|
|
|
331
|
-
| [Setup Guide](docs/setup.md) | Installation for
|
|
386
|
+
| [Setup Guide](docs/setup.md) | Installation for Cursor, VS Code, JetBrains, and 25+ more |
|
|
332
387
|
| [Templates](docs/templates.md) | Ready-to-use `.corbat.json` configurations |
|
|
333
|
-
| [Compatibility](docs/compatibility.md) | Full list of supported tools |
|
|
334
|
-
| [Benchmark
|
|
335
|
-
| [API Reference](docs/full-documentation.md) | Tools, prompts, and configuration |
|
|
388
|
+
| [Compatibility](docs/compatibility.md) | Full list of supported AI tools |
|
|
389
|
+
| [Benchmark Analysis](benchmarks/v3/BENCHMARK_REPORT_V3.md) | Detailed results from 15 scenarios |
|
|
390
|
+
| [API Reference](docs/full-documentation.md) | Tools, prompts, and configuration options |
|
|
336
391
|
|
|
337
392
|
---
|
|
338
393
|
|
|
339
394
|
<div align="center">
|
|
340
395
|
|
|
341
|
-
|
|
396
|
+
### Stop fixing AI code. Start shipping it.
|
|
342
397
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
398
|
+
Add to your MCP config and you're done:
|
|
399
|
+
|
|
400
|
+
```json
|
|
401
|
+
{ "mcpServers": { "corbat": { "command": "npx", "args": ["-y", "@corbat-tech/coding-standards-mcp"] }}}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Your code reviews will thank you.**
|
|
405
|
+
|
|
406
|
+
---
|
|
348
407
|
|
|
349
|
-
*
|
|
408
|
+
*Developed by [corbat-tech](https://corbat.tech)*
|
|
350
409
|
|
|
351
410
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-analyzer.d.ts","sourceRoot":"","sources":["../../src/analysis/code-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"code-analyzer.d.ts","sourceRoot":"","sources":["../../src/analysis/code-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAsLD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAkGxD;AA0OD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwFvE"}
|
|
@@ -169,10 +169,16 @@ const GOOD_PRACTICES = [
|
|
|
169
169
|
{ pattern: /Result<|Either<|Option<|Maybe</g, name: 'result_types', weight: 8 },
|
|
170
170
|
{ pattern: /\.map\s*\(|\.filter\s*\(|\.reduce\s*\(/g, name: 'functional_style', weight: 3 },
|
|
171
171
|
];
|
|
172
|
+
/** Maximum allowed code size in characters (1MB) */
|
|
173
|
+
const MAX_CODE_SIZE = 1_000_000;
|
|
172
174
|
/**
|
|
173
175
|
* Analyze code and return issues, metrics, and score.
|
|
176
|
+
* @throws Error if code exceeds MAX_CODE_SIZE
|
|
174
177
|
*/
|
|
175
178
|
export function analyzeCode(code) {
|
|
179
|
+
if (code.length > MAX_CODE_SIZE) {
|
|
180
|
+
throw new Error(`Code input exceeds maximum size of ${MAX_CODE_SIZE} characters`);
|
|
181
|
+
}
|
|
176
182
|
const lines = code.split('\n');
|
|
177
183
|
const issues = [];
|
|
178
184
|
// 1. Detect anti-patterns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-analyzer.js","sourceRoot":"","sources":["../../src/analysis/code-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-analyzer.js","sourceRoot":"","sources":["../../src/analysis/code-analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAkChE;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;iBAUhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAkChE;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;iBAUhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAkClD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAgBnC;AAED,eAAO,MAAM,MAAM;;;;;;;;;;CAAe,CAAC;AAEnC;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC"}
|
package/dist/config.js
CHANGED
|
@@ -45,17 +45,38 @@ const ConfigSchema = z.object({
|
|
|
45
45
|
logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
|
|
46
46
|
enableVerboseErrors: z.boolean().default(false),
|
|
47
47
|
});
|
|
48
|
+
/** Valid log levels for validation */
|
|
49
|
+
const VALID_LOG_LEVELS = ['debug', 'info', 'warn', 'error'];
|
|
48
50
|
/**
|
|
49
51
|
* Detect current environment from NODE_ENV or CORBAT_ENV.
|
|
52
|
+
* Case-insensitive comparison for robustness.
|
|
50
53
|
*/
|
|
51
54
|
function detectEnvironment() {
|
|
52
|
-
const env = process.env.CORBAT_ENV || process.env.NODE_ENV || 'development';
|
|
55
|
+
const env = (process.env.CORBAT_ENV || process.env.NODE_ENV || 'development').toLowerCase();
|
|
53
56
|
if (env === 'production' || env === 'prod')
|
|
54
57
|
return 'production';
|
|
55
58
|
if (env === 'test')
|
|
56
59
|
return 'test';
|
|
57
60
|
return 'development';
|
|
58
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Safely parse an integer from environment variable with fallback.
|
|
64
|
+
*/
|
|
65
|
+
function parseIntWithFallback(value, fallback) {
|
|
66
|
+
if (!value)
|
|
67
|
+
return fallback;
|
|
68
|
+
const parsed = Number.parseInt(value, 10);
|
|
69
|
+
return Number.isNaN(parsed) ? fallback : parsed;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Validate and return log level from environment variable.
|
|
73
|
+
*/
|
|
74
|
+
function validateLogLevel(value, fallback) {
|
|
75
|
+
if (!value)
|
|
76
|
+
return fallback;
|
|
77
|
+
const normalized = value.toLowerCase();
|
|
78
|
+
return VALID_LOG_LEVELS.includes(normalized) ? normalized : fallback;
|
|
79
|
+
}
|
|
59
80
|
/**
|
|
60
81
|
* Load and validate configuration with environment-specific overrides.
|
|
61
82
|
*/
|
|
@@ -68,12 +89,10 @@ export function loadConfig() {
|
|
|
68
89
|
standardsDir: process.env.CORBAT_STANDARDS_DIR || join(rootDir, 'standards'),
|
|
69
90
|
defaultProfile: process.env.CORBAT_DEFAULT_PROFILE || 'java-spring-backend',
|
|
70
91
|
serverName: 'coding-standards-mcp',
|
|
71
|
-
serverVersion: '
|
|
92
|
+
serverVersion: '2.0.0',
|
|
72
93
|
environment,
|
|
73
|
-
cacheTtlMs: process.env.CORBAT_CACHE_TTL_MS
|
|
74
|
-
|
|
75
|
-
: envConfig.cacheTtlMs,
|
|
76
|
-
logLevel: process.env.CORBAT_LOG_LEVEL || envConfig.logLevel,
|
|
94
|
+
cacheTtlMs: parseIntWithFallback(process.env.CORBAT_CACHE_TTL_MS, envConfig.cacheTtlMs ?? 60_000),
|
|
95
|
+
logLevel: validateLogLevel(process.env.CORBAT_LOG_LEVEL, envConfig.logLevel ?? 'info'),
|
|
77
96
|
enableVerboseErrors: process.env.CORBAT_VERBOSE_ERRORS === 'true' || envConfig.enableVerboseErrors,
|
|
78
97
|
});
|
|
79
98
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAOtC;;GAEG;AACH,MAAM,kBAAkB,GAAoD;IAC1E,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,EAAE,0CAA0C;QAC9D,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,IAAI;KAC1B;IACD,UAAU,EAAE;QACV,UAAU,EAAE,OAAO,EAAE,4CAA4C;QACjE,QAAQ,EAAE,MAAM;QAChB,mBAAmB,EAAE,KAAK;KAC3B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,EAAE,uCAAuC;QACtD,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,IAAI;KAC1B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACtD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACjF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAIH
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -9,8 +9,28 @@ interface LogEntry {
|
|
|
9
9
|
timestamp: string;
|
|
10
10
|
level: LogLevel;
|
|
11
11
|
message: string;
|
|
12
|
+
correlationId?: string;
|
|
12
13
|
context?: Record<string, unknown>;
|
|
13
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute a function with a correlation ID for tracing.
|
|
17
|
+
* All log entries within the function will include this ID.
|
|
18
|
+
*/
|
|
19
|
+
export declare function withCorrelationId<T>(fn: () => T): T;
|
|
20
|
+
/**
|
|
21
|
+
* Execute an async function with a correlation ID for tracing.
|
|
22
|
+
* All log entries within the function will include this ID.
|
|
23
|
+
*/
|
|
24
|
+
export declare function withCorrelationIdAsync<T>(fn: () => Promise<T>): Promise<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Get the current correlation ID if one exists.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getCorrelationId(): string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Set a specific correlation ID for the current context.
|
|
31
|
+
* Useful when receiving a correlation ID from an external request.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runWithCorrelationId<T>(correlationId: string, fn: () => T): T;
|
|
14
34
|
/**
|
|
15
35
|
* Logger interface with level-specific methods.
|
|
16
36
|
*/
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;GAEG;AACH,UAAU,QAAQ;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAiBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEnD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE7E;AA+BD;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;qBACc,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;IAIjE;;OAEG;oBACa,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;IAIhE;;OAEG;oBACa,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;IAIhE;;OAEG;qBACc,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;CAGlE,CAAC;AAEF,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
1
3
|
import { config } from './config.js';
|
|
2
4
|
/**
|
|
3
5
|
* Log level priorities for filtering.
|
|
@@ -8,6 +10,37 @@ const LOG_LEVEL_PRIORITY = {
|
|
|
8
10
|
warn: 2,
|
|
9
11
|
error: 3,
|
|
10
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* AsyncLocalStorage for request-scoped correlation IDs.
|
|
15
|
+
*/
|
|
16
|
+
const correlationStore = new AsyncLocalStorage();
|
|
17
|
+
/**
|
|
18
|
+
* Execute a function with a correlation ID for tracing.
|
|
19
|
+
* All log entries within the function will include this ID.
|
|
20
|
+
*/
|
|
21
|
+
export function withCorrelationId(fn) {
|
|
22
|
+
return correlationStore.run(randomUUID(), fn);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Execute an async function with a correlation ID for tracing.
|
|
26
|
+
* All log entries within the function will include this ID.
|
|
27
|
+
*/
|
|
28
|
+
export async function withCorrelationIdAsync(fn) {
|
|
29
|
+
return correlationStore.run(randomUUID(), fn);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the current correlation ID if one exists.
|
|
33
|
+
*/
|
|
34
|
+
export function getCorrelationId() {
|
|
35
|
+
return correlationStore.getStore();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set a specific correlation ID for the current context.
|
|
39
|
+
* Useful when receiving a correlation ID from an external request.
|
|
40
|
+
*/
|
|
41
|
+
export function runWithCorrelationId(correlationId, fn) {
|
|
42
|
+
return correlationStore.run(correlationId, fn);
|
|
43
|
+
}
|
|
11
44
|
/**
|
|
12
45
|
* Check if a log level should be output based on configured level.
|
|
13
46
|
*/
|
|
@@ -22,10 +55,12 @@ function shouldLog(level) {
|
|
|
22
55
|
function log(level, message, context) {
|
|
23
56
|
if (!shouldLog(level))
|
|
24
57
|
return;
|
|
58
|
+
const correlationId = getCorrelationId();
|
|
25
59
|
const entry = {
|
|
26
60
|
timestamp: new Date().toISOString(),
|
|
27
61
|
level,
|
|
28
62
|
message,
|
|
63
|
+
...(correlationId ? { correlationId } : {}),
|
|
29
64
|
...(context && Object.keys(context).length > 0 ? { context } : {}),
|
|
30
65
|
};
|
|
31
66
|
// Output as JSON for structured logging
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBrC;;GAEG;AACH,MAAM,kBAAkB,GAA6B;IACnD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAU,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAI,EAAW;IAC9C,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAI,EAAoB;IAClE,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAI,aAAqB,EAAE,EAAW;IACxE,OAAO,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,KAAe;IAChC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAoB,CAAC;IACpD,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAS,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,OAAiC;IAC9E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,MAAM,KAAK,GAAa;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,OAAO;QACP,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;IAEF,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiC,EAAQ,EAAE;QAClE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiC,EAAQ,EAAE;QACjE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiC,EAAQ,EAAE;QACjE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiC,EAAQ,EAAE;QAClE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,CAAC"}
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAC5C,KAAK,CAAC;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,CAkCA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAC5C,KAAK,CAAC;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,CAkCA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAwE/G"}
|
package/dist/resources.js
CHANGED
|
@@ -55,6 +55,10 @@ export async function readResource(uri) {
|
|
|
55
55
|
// Specific profile
|
|
56
56
|
if (uri.startsWith('corbat://profiles/')) {
|
|
57
57
|
const profileId = uri.replace('corbat://profiles/', '');
|
|
58
|
+
// Validate profile ID to prevent path traversal attacks
|
|
59
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(profileId)) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
58
62
|
const profile = await getProfile(profileId);
|
|
59
63
|
if (!profile)
|
|
60
64
|
return null;
|
|
@@ -80,6 +84,10 @@ export async function readResource(uri) {
|
|
|
80
84
|
// Standards by category
|
|
81
85
|
if (uri.startsWith('corbat://standards/')) {
|
|
82
86
|
const category = uri.replace('corbat://standards/', '');
|
|
87
|
+
// Validate category to prevent path traversal attacks
|
|
88
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(category)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
83
91
|
const standards = await getStandardsByCategory(category);
|
|
84
92
|
if (standards.length === 0)
|
|
85
93
|
return null;
|
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8EjB,CAAC;AAmBF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBhF"}
|
package/dist/tools.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { classifyTaskType, detectProjectStack, getGuardrails, getProjectRules, loadProjectConfig } from './agent.js';
|
|
3
3
|
import { config } from './config.js';
|
|
4
|
+
import { formatErrorForResponse, ProfileNotFoundError, ToolInputError } from './errors.js';
|
|
4
5
|
import { getProfile, listProfiles, loadStandards } from './profiles.js';
|
|
5
6
|
/**
|
|
6
7
|
* SIMPLIFIED TOOL DEFINITIONS (5 tools instead of 13)
|
|
@@ -113,13 +114,15 @@ export async function handleToolCall(name, args) {
|
|
|
113
114
|
return handleProfiles();
|
|
114
115
|
case 'health':
|
|
115
116
|
return handleHealth();
|
|
116
|
-
default:
|
|
117
|
+
default: {
|
|
118
|
+
const error = new ToolInputError(name, 'Unknown tool', {
|
|
119
|
+
availableTools: ['get_context', 'validate', 'search', 'profiles', 'health'],
|
|
120
|
+
});
|
|
117
121
|
return {
|
|
118
|
-
content: [
|
|
119
|
-
{ type: 'text', text: `Unknown tool: ${name}. Available: get_context, validate, search, profiles, health` },
|
|
120
|
-
],
|
|
122
|
+
content: [{ type: 'text', text: formatErrorForResponse(error) }],
|
|
121
123
|
isError: true,
|
|
122
124
|
};
|
|
125
|
+
}
|
|
123
126
|
}
|
|
124
127
|
}
|
|
125
128
|
/**
|
|
@@ -140,11 +143,13 @@ async function handleGetContext(args) {
|
|
|
140
143
|
const profileId = projectConfig?.profile || detectedStack?.suggestedProfile || config.defaultProfile;
|
|
141
144
|
const profile = await getProfile(profileId);
|
|
142
145
|
if (!profile) {
|
|
146
|
+
const availableProfiles = (await listProfiles()).map((p) => p.id);
|
|
147
|
+
const error = new ProfileNotFoundError(profileId, availableProfiles);
|
|
143
148
|
return {
|
|
144
149
|
content: [
|
|
145
150
|
{
|
|
146
151
|
type: 'text',
|
|
147
|
-
text:
|
|
152
|
+
text: `${formatErrorForResponse(error)}\n\nRun \`corbat-init\` in your project to create a custom profile.`,
|
|
148
153
|
},
|
|
149
154
|
],
|
|
150
155
|
isError: true,
|
|
@@ -241,8 +246,9 @@ async function handleValidate(args) {
|
|
|
241
246
|
const profileId = config.defaultProfile;
|
|
242
247
|
const profile = await getProfile(profileId);
|
|
243
248
|
if (!profile) {
|
|
249
|
+
const error = new ProfileNotFoundError(profileId);
|
|
244
250
|
return {
|
|
245
|
-
content: [{ type: 'text', text:
|
|
251
|
+
content: [{ type: 'text', text: formatErrorForResponse(error) }],
|
|
246
252
|
isError: true,
|
|
247
253
|
};
|
|
248
254
|
}
|
|
@@ -309,8 +315,9 @@ async function handleValidate(args) {
|
|
|
309
315
|
async function handleSearch(args) {
|
|
310
316
|
const { query } = SearchSchema.parse(args);
|
|
311
317
|
if (!query.trim()) {
|
|
318
|
+
const error = new ToolInputError('search', 'Query cannot be empty');
|
|
312
319
|
return {
|
|
313
|
-
content: [{ type: 'text', text:
|
|
320
|
+
content: [{ type: 'text', text: formatErrorForResponse(error) }],
|
|
314
321
|
isError: true,
|
|
315
322
|
};
|
|
316
323
|
}
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@corbat-tech/coding-standards-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "AI coding standards that apply themselves - MCP server that enforces production-grade code",
|
|
5
5
|
"mcpName": "io.github.corbat-tech/coding-standards",
|
|
6
6
|
"type": "module",
|