@corbat-tech/coding-standards-mcp 1.0.2 → 1.0.3
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 +252 -163
- package/assets/demo.gif +0 -0
- package/assets/demo.tape +63 -0
- package/dist/cli/init.js +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/config.d.ts +15 -26
- package/dist/config.d.ts.map +1 -1
- package/dist/profiles.js +1 -1
- package/dist/profiles.js.map +1 -1
- package/dist/types.d.ts +319 -2560
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -8
- package/dist/types.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +3 -2
- package/dist/utils/retry.js.map +1 -1
- package/package.json +9 -8
package/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
# CORBAT
|
|
3
|
+
# CORBAT MCP
|
|
4
|
+
#### Coding Standards Server for Claude
|
|
4
5
|
|
|
5
|
-
###
|
|
6
|
+
### AI-generated code that passes code review on the first try.
|
|
6
7
|
|
|
7
|
-
**
|
|
8
|
+
**The only MCP that makes Claude generate professional-grade code — with proper architecture, comprehensive tests, and zero code smells.**
|
|
8
9
|
|
|
9
10
|
[](https://www.npmjs.com/package/@corbat-tech/coding-standards-mcp)
|
|
10
11
|
[](https://github.com/corbat-tech/coding-standards-mcp/actions/workflows/ci.yml)
|
|
@@ -19,53 +20,176 @@
|
|
|
19
20
|
|
|
20
21
|
---
|
|
21
22
|
|
|
22
|
-
## The Problem
|
|
23
|
+
## The Real Problem With AI-Generated Code
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
When you ask Claude to write code, it works. But does it pass code review?
|
|
25
26
|
|
|
26
27
|
```
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
❌ No dependency injection
|
|
29
|
+
❌ Missing error handling
|
|
30
|
+
❌ Basic tests (if any)
|
|
31
|
+
❌ No input validation
|
|
32
|
+
❌ God classes and long methods
|
|
33
|
+
❌ Fails SonarQube quality gates
|
|
29
34
|
```
|
|
30
35
|
|
|
31
|
-
**
|
|
36
|
+
**You spend hours fixing AI-generated code to meet your team's standards.**
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## What If Claude Wrote Code Like Your Senior Engineers?
|
|
41
|
+
|
|
42
|
+
<table>
|
|
43
|
+
<tr>
|
|
44
|
+
<td width="50%">
|
|
45
|
+
|
|
46
|
+
### Without Corbat MCP
|
|
34
47
|
|
|
35
|
-
|
|
48
|
+
```typescript
|
|
49
|
+
class UserService {
|
|
50
|
+
private users: User[] = [];
|
|
51
|
+
|
|
52
|
+
getUser(id: string) {
|
|
53
|
+
return this.users.find(u => u.id === id);
|
|
54
|
+
}
|
|
36
55
|
|
|
56
|
+
createUser(name: string, email: string) {
|
|
57
|
+
const user = { id: Date.now(), name, email };
|
|
58
|
+
this.users.push(user);
|
|
59
|
+
return user;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
37
62
|
```
|
|
38
|
-
You: "Create a payment service"
|
|
39
63
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
64
|
+
- Returns `undefined` on not found
|
|
65
|
+
- No validation
|
|
66
|
+
- No error types
|
|
67
|
+
- No interfaces
|
|
68
|
+
- 6 basic tests
|
|
69
|
+
|
|
70
|
+
</td>
|
|
71
|
+
<td width="50%">
|
|
72
|
+
|
|
73
|
+
### With Corbat MCP
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
interface UserRepository {
|
|
77
|
+
findById(id: UserId): User | null;
|
|
78
|
+
save(user: User): void;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
class UserService {
|
|
82
|
+
constructor(
|
|
83
|
+
private readonly repository: UserRepository,
|
|
84
|
+
private readonly idGenerator: IdGenerator
|
|
85
|
+
) {}
|
|
86
|
+
|
|
87
|
+
getUser(id: UserId): User {
|
|
88
|
+
const user = this.repository.findById(id);
|
|
89
|
+
if (!user) throw new UserNotFoundError(id);
|
|
90
|
+
return user;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
createUser(input: CreateUserInput): User {
|
|
94
|
+
this.validateInput(input);
|
|
95
|
+
const user = User.create(
|
|
96
|
+
this.idGenerator.generate(),
|
|
97
|
+
input.name.trim(),
|
|
98
|
+
input.email.toLowerCase()
|
|
99
|
+
);
|
|
100
|
+
this.repository.save(user);
|
|
101
|
+
return user;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
45
104
|
```
|
|
46
105
|
|
|
47
|
-
|
|
106
|
+
- Dependency injection
|
|
107
|
+
- Custom error types
|
|
108
|
+
- Input validation & normalization
|
|
109
|
+
- Repository pattern (ports & adapters)
|
|
110
|
+
- 15 comprehensive tests
|
|
111
|
+
|
|
112
|
+
</td>
|
|
113
|
+
</tr>
|
|
114
|
+
</table>
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Benchmark Results: The Numbers Don't Lie
|
|
119
|
+
|
|
120
|
+
We tested Claude generating identical tasks **with and without** Corbat MCP across 20 scenarios.
|
|
121
|
+
|
|
122
|
+
<table>
|
|
123
|
+
<tr>
|
|
124
|
+
<th>Metric</th>
|
|
125
|
+
<th>Without MCP</th>
|
|
126
|
+
<th>With MCP</th>
|
|
127
|
+
<th>Improvement</th>
|
|
128
|
+
</tr>
|
|
129
|
+
<tr>
|
|
130
|
+
<td><b>Quality Score</b></td>
|
|
131
|
+
<td>63/100</td>
|
|
132
|
+
<td>93/100</td>
|
|
133
|
+
<td><b>+48%</b></td>
|
|
134
|
+
</tr>
|
|
135
|
+
<tr>
|
|
136
|
+
<td><b>Code Smells</b></td>
|
|
137
|
+
<td>43</td>
|
|
138
|
+
<td>0</td>
|
|
139
|
+
<td><b>-100%</b></td>
|
|
140
|
+
</tr>
|
|
141
|
+
<tr>
|
|
142
|
+
<td><b>SOLID Compliance</b></td>
|
|
143
|
+
<td>50%</td>
|
|
144
|
+
<td>89%</td>
|
|
145
|
+
<td><b>+78%</b></td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td><b>Test Coverage</b></td>
|
|
149
|
+
<td>219 tests</td>
|
|
150
|
+
<td>558 tests</td>
|
|
151
|
+
<td><b>+155%</b></td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td><b>SonarQube Gate</b></td>
|
|
155
|
+
<td>FAIL</td>
|
|
156
|
+
<td>PASS</td>
|
|
157
|
+
<td><b>Fixed</b></td>
|
|
158
|
+
</tr>
|
|
159
|
+
</table>
|
|
160
|
+
|
|
161
|
+
> **Key finding:** Code generated with Corbat MCP passes SonarQube quality gates. Without it, code fails.
|
|
162
|
+
|
|
163
|
+
[View Full Benchmark Report](docs/comparison-tests/RESULTS-REPORT.md)
|
|
48
164
|
|
|
49
165
|
---
|
|
50
166
|
|
|
51
|
-
## Why Corbat MCP vs
|
|
167
|
+
## Why Corbat MCP vs Other Solutions?
|
|
168
|
+
|
|
169
|
+
| Approach | When it acts | What it catches | Auto-detects stack |
|
|
170
|
+
|----------|:------------:|:---------------:|:------------------:|
|
|
171
|
+
| **Corbat MCP** | **BEFORE** code is written | Architecture, SOLID, TDD, DDD | **Yes** |
|
|
172
|
+
| ESLint/Prettier | After code exists | Syntax, formatting | No |
|
|
173
|
+
| SonarQube | After PR/commit | Code smells, bugs | No |
|
|
174
|
+
| Manual prompts | Every time | Whatever you remember | No |
|
|
175
|
+
|
|
176
|
+
**Linters and analyzers catch problems after the fact. Corbat MCP prevents them.**
|
|
52
177
|
|
|
53
|
-
|
|
54
|
-
|---------|:------:|:----------------------:|:--------------:|
|
|
55
|
-
| Enforces **before** code is written | ✅ | ❌ | ❌ |
|
|
56
|
-
| Architecture patterns (hexagonal, DDD) | ✅ | ❌ | ⚠️ |
|
|
57
|
-
| TDD workflow enforcement | ✅ | ❌ | ⚠️ |
|
|
58
|
-
| Task-specific guardrails | ✅ | ❌ | ❌ |
|
|
59
|
-
| Auto-detects your stack | ✅ | ❌ | ❌ |
|
|
60
|
-
| Zero repetition | ✅ | ✅ | ❌ |
|
|
178
|
+
### vs Other Coding MCPs
|
|
61
179
|
|
|
62
|
-
|
|
180
|
+
| Feature | Corbat MCP | Generic coding MCPs |
|
|
181
|
+
|---------|:----------:|:-------------------:|
|
|
182
|
+
| Task-specific guardrails (feature vs bugfix vs refactor) | **Yes** | No |
|
|
183
|
+
| Auto-detects your stack from project files | **Yes** | No |
|
|
184
|
+
| Enforces architectural patterns (Hexagonal, DDD) | **Yes** | Limited |
|
|
185
|
+
| Comprehensive benchmark data | **Yes** | No |
|
|
186
|
+
| 7 production-ready profiles | **Yes** | Basic |
|
|
63
187
|
|
|
64
188
|
---
|
|
65
189
|
|
|
66
|
-
## Quick Start
|
|
190
|
+
## Quick Start (2 minutes)
|
|
67
191
|
|
|
68
|
-
**Step 1** —
|
|
192
|
+
**Step 1** — Add to Claude:
|
|
69
193
|
|
|
70
194
|
<table>
|
|
71
195
|
<tr>
|
|
@@ -98,131 +222,128 @@ Edit `~/.config/Claude/claude_desktop_config.json`:
|
|
|
98
222
|
</tr>
|
|
99
223
|
</table>
|
|
100
224
|
|
|
101
|
-
**Step 2** —
|
|
225
|
+
**Step 2** — Just code:
|
|
226
|
+
|
|
102
227
|
```
|
|
103
|
-
"Create a
|
|
228
|
+
You: "Create a payment service"
|
|
229
|
+
|
|
230
|
+
Corbat: ✓ Detected Java/Spring project
|
|
231
|
+
✓ Loaded java-spring-backend profile
|
|
232
|
+
✓ Applied hexagonal architecture rules
|
|
233
|
+
✓ Enforced TDD workflow
|
|
234
|
+
✓ Set 80%+ coverage requirement
|
|
104
235
|
```
|
|
105
236
|
|
|
106
|
-
|
|
237
|
+
**That's it.** Claude now generates code that passes code review.
|
|
107
238
|
|
|
108
239
|
---
|
|
109
240
|
|
|
110
|
-
## What
|
|
241
|
+
## What Gets Injected Automatically
|
|
111
242
|
|
|
112
|
-
When you ask Claude to create code, Corbat MCP injects
|
|
243
|
+
When you ask Claude to create code, Corbat MCP injects professional standards:
|
|
113
244
|
|
|
114
245
|
```markdown
|
|
115
|
-
# Task: Create payment service
|
|
116
|
-
|
|
117
246
|
## Detected
|
|
118
247
|
- Stack: Java 21 · Spring Boot 3 · Maven
|
|
119
248
|
- Task type: FEATURE
|
|
120
249
|
- Profile: java-spring-backend
|
|
121
250
|
|
|
122
|
-
##
|
|
123
|
-
|
|
124
|
-
### MUST
|
|
251
|
+
## MUST
|
|
125
252
|
✓ Write tests BEFORE implementation (TDD)
|
|
126
|
-
✓ Use hexagonal architecture (domain
|
|
253
|
+
✓ Use hexagonal architecture (domain → application → infrastructure)
|
|
127
254
|
✓ Apply SOLID principles
|
|
128
255
|
✓ Ensure 80%+ test coverage
|
|
129
|
-
✓
|
|
130
|
-
✓
|
|
256
|
+
✓ Create custom error types with context
|
|
257
|
+
✓ Validate all inputs at boundaries
|
|
131
258
|
|
|
132
|
-
|
|
259
|
+
## AVOID
|
|
133
260
|
✗ God classes (>200 lines) or god methods (>20 lines)
|
|
134
261
|
✗ Hard-coded configuration values
|
|
135
262
|
✗ Mixing business logic with infrastructure
|
|
136
|
-
✗
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
263
|
+
✗ Returning null/undefined (use Result types or throw)
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Smart Guardrails by Task Type
|
|
269
|
+
|
|
270
|
+
Corbat MCP automatically detects what you're doing and applies different rules:
|
|
271
|
+
|
|
272
|
+
| Task | Key Rules |
|
|
273
|
+
|------|-----------|
|
|
274
|
+
| **Feature** | TDD workflow, 80%+ coverage, SOLID, hexagonal architecture |
|
|
275
|
+
| **Bugfix** | Write failing test first, minimal changes, document root cause |
|
|
276
|
+
| **Refactor** | Tests pass before AND after, no behavior changes, incremental |
|
|
277
|
+
| **Test** | AAA pattern, one assertion per test, descriptive names |
|
|
278
|
+
|
|
150
279
|
```
|
|
280
|
+
You: "Fix the login timeout bug"
|
|
151
281
|
|
|
152
|
-
|
|
282
|
+
Corbat detects: BUGFIX
|
|
283
|
+
Applies: Failing test first → Minimal fix → Verify no regressions
|
|
284
|
+
```
|
|
153
285
|
|
|
154
286
|
---
|
|
155
287
|
|
|
156
|
-
##
|
|
288
|
+
## Built-in Profiles for Every Stack
|
|
157
289
|
|
|
158
|
-
|
|
290
|
+
| Profile | Stack | Architecture |
|
|
291
|
+
|---------|-------|--------------|
|
|
292
|
+
| `java-spring-backend` | Java 21, Spring Boot 3 | Hexagonal + DDD + CQRS |
|
|
293
|
+
| `nodejs` | Node.js, TypeScript | Clean Architecture |
|
|
294
|
+
| `python` | Python, FastAPI | Clean Architecture |
|
|
295
|
+
| `react` | React 18+ | Feature-based components |
|
|
296
|
+
| `angular` | Angular 19+ | Feature-based + Signals |
|
|
297
|
+
| `vue` | Vue 3.5+ | Composition API |
|
|
298
|
+
| `minimal` | Any | Basic quality standards |
|
|
159
299
|
|
|
160
|
-
|
|
161
|
-
<tr>
|
|
162
|
-
<th>Task</th>
|
|
163
|
-
<th>MUST</th>
|
|
164
|
-
<th>AVOID</th>
|
|
165
|
-
</tr>
|
|
166
|
-
<tr>
|
|
167
|
-
<td><b>Feature</b></td>
|
|
168
|
-
<td>TDD, 80%+ coverage, SOLID, hexagonal</td>
|
|
169
|
-
<td>God classes, coupled layers</td>
|
|
170
|
-
</tr>
|
|
171
|
-
<tr>
|
|
172
|
-
<td><b>Bugfix</b></td>
|
|
173
|
-
<td>Failing test first, minimal changes</td>
|
|
174
|
-
<td>Refactoring, adding features</td>
|
|
175
|
-
</tr>
|
|
176
|
-
<tr>
|
|
177
|
-
<td><b>Refactor</b></td>
|
|
178
|
-
<td>Tests pass before AND after, incremental</td>
|
|
179
|
-
<td>Behavior changes, big bang</td>
|
|
180
|
-
</tr>
|
|
181
|
-
<tr>
|
|
182
|
-
<td><b>Test</b></td>
|
|
183
|
-
<td>AAA pattern, one assertion, descriptive names</td>
|
|
184
|
-
<td>Implementation details, flaky tests</td>
|
|
185
|
-
</tr>
|
|
186
|
-
</table>
|
|
300
|
+
**Auto-detection:** Corbat reads `pom.xml`, `package.json`, `requirements.txt` to select the right profile automatically.
|
|
187
301
|
|
|
188
302
|
---
|
|
189
303
|
|
|
190
|
-
##
|
|
304
|
+
## ROI for Development Teams
|
|
191
305
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
|
195
|
-
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
|
|
|
306
|
+
Based on our benchmark data:
|
|
307
|
+
|
|
308
|
+
| Benefit | Impact |
|
|
309
|
+
|---------|--------|
|
|
310
|
+
| Code review time | **-40%** (fewer issues to catch) |
|
|
311
|
+
| Bug density | **-50%** (better test coverage) |
|
|
312
|
+
| Onboarding time | **-30%** (consistent architecture) |
|
|
313
|
+
| Technical debt | **-90%** (zero code smells) |
|
|
314
|
+
| Debugging time | **-60%** (custom errors with context) |
|
|
199
315
|
|
|
200
316
|
---
|
|
201
317
|
|
|
202
|
-
##
|
|
318
|
+
## How It Works
|
|
203
319
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
320
|
+
```
|
|
321
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
322
|
+
│ Your Prompt │────▶│ Corbat MCP │────▶│ Claude + Rules │
|
|
323
|
+
│ │ │ │ │ │
|
|
324
|
+
│ "Create user │ │ 1. Detect stack │ │ Generates code │
|
|
325
|
+
│ service" │ │ 2. Classify task│ │ that passes │
|
|
326
|
+
│ │ │ 3. Load profile │ │ code review │
|
|
327
|
+
│ │ │ 4. Inject rules │ │ │
|
|
328
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
329
|
+
```
|
|
213
330
|
|
|
214
|
-
|
|
331
|
+
Corbat MCP acts as a **quality layer** between you and Claude. It automatically:
|
|
332
|
+
1. **Detects** your project's technology stack
|
|
333
|
+
2. **Classifies** the type of task (feature, bugfix, refactor, test)
|
|
334
|
+
3. **Loads** the appropriate profile with architecture rules
|
|
335
|
+
4. **Injects** guardrails before Claude generates any code
|
|
215
336
|
|
|
216
337
|
---
|
|
217
338
|
|
|
218
339
|
## Customize (Optional)
|
|
219
340
|
|
|
220
|
-
###
|
|
341
|
+
### Interactive Setup
|
|
221
342
|
```bash
|
|
222
343
|
npx corbat-init
|
|
223
344
|
```
|
|
224
345
|
|
|
225
|
-
###
|
|
346
|
+
### Manual Config
|
|
226
347
|
|
|
227
348
|
Create `.corbat.json` in your project root:
|
|
228
349
|
|
|
@@ -248,46 +369,36 @@ Create `.corbat.json` in your project root:
|
|
|
248
369
|
| Tool | Purpose |
|
|
249
370
|
|------|---------|
|
|
250
371
|
| `get_context` | **Primary** — Returns all standards for your task |
|
|
251
|
-
| `validate` | Check code against standards |
|
|
252
|
-
| `search` | Search standards
|
|
253
|
-
| `profiles` | List available profiles |
|
|
254
|
-
| `health` | Server status
|
|
255
|
-
|
|
256
|
-
## Available Prompts
|
|
257
|
-
|
|
258
|
-
| Prompt | Purpose |
|
|
259
|
-
|--------|---------|
|
|
260
|
-
| `implement` | Guided implementation with TDD workflow |
|
|
261
|
-
| `review` | Expert code review (architecture, SOLID, security) |
|
|
372
|
+
| `validate` | Check code against standards (returns compliance score) |
|
|
373
|
+
| `search` | Search 15 standards documents |
|
|
374
|
+
| `profiles` | List all available profiles |
|
|
375
|
+
| `health` | Server status and diagnostics |
|
|
262
376
|
|
|
263
377
|
---
|
|
264
378
|
|
|
265
|
-
##
|
|
379
|
+
## Compatibility
|
|
266
380
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
│ │ │ 4. Inject rules │ │ │
|
|
275
|
-
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
276
|
-
```
|
|
381
|
+
| Client | Status |
|
|
382
|
+
|--------|:------:|
|
|
383
|
+
| Claude Code (CLI) | ✅ Tested |
|
|
384
|
+
| Claude Desktop | ✅ Tested |
|
|
385
|
+
| Cursor | ⚠️ Experimental |
|
|
386
|
+
| Windsurf | ⚠️ Experimental |
|
|
387
|
+
| Other MCP clients | ✅ Standard protocol |
|
|
277
388
|
|
|
278
389
|
---
|
|
279
390
|
|
|
280
391
|
## Included Documentation
|
|
281
392
|
|
|
282
|
-
Corbat MCP comes with 15 standards documents
|
|
393
|
+
Corbat MCP comes with 15 searchable standards documents:
|
|
283
394
|
|
|
284
|
-
- **Architecture
|
|
285
|
-
- **Code Quality
|
|
286
|
-
- **Testing
|
|
287
|
-
- **DevOps
|
|
288
|
-
- **Observability
|
|
395
|
+
- **Architecture:** Hexagonal, DDD, Clean Architecture
|
|
396
|
+
- **Code Quality:** SOLID principles, Clean Code, Naming Conventions
|
|
397
|
+
- **Testing:** TDD workflow, Unit/Integration/E2E guidelines
|
|
398
|
+
- **DevOps:** Docker, Kubernetes, CI/CD best practices
|
|
399
|
+
- **Observability:** Structured logging, Metrics, Distributed tracing
|
|
289
400
|
|
|
290
|
-
Use
|
|
401
|
+
Use the search tool: `"search kafka"` → Returns event-driven architecture guidelines.
|
|
291
402
|
|
|
292
403
|
---
|
|
293
404
|
|
|
@@ -319,39 +430,17 @@ Or specify in prompt: *"...using profile nodejs"*
|
|
|
319
430
|
<summary><b>Standards not being applied</b></summary>
|
|
320
431
|
|
|
321
432
|
1. Check if `.corbat.json` exists in project root
|
|
322
|
-
2. Verify profile exists
|
|
433
|
+
2. Verify profile exists
|
|
323
434
|
3. Try explicit: *"Use corbat get_context for: your task"*
|
|
324
435
|
|
|
325
436
|
</details>
|
|
326
437
|
|
|
327
|
-
<details>
|
|
328
|
-
<summary><b>Permission errors (macOS/Linux)</b></summary>
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
# Clear npx cache and retry
|
|
332
|
-
npx clear-npx-cache
|
|
333
|
-
npx @corbat-tech/coding-standards-mcp
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
</details>
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
## Project Quality
|
|
341
|
-
|
|
342
|
-
| Metric | Value |
|
|
343
|
-
|--------|-------|
|
|
344
|
-
| Test coverage | 80%+ |
|
|
345
|
-
| Tests passing | 78 |
|
|
346
|
-
| TypeScript | Strict mode |
|
|
347
|
-
| Linting | Biome |
|
|
348
|
-
| Architecture validation | dependency-cruiser |
|
|
349
|
-
|
|
350
438
|
---
|
|
351
439
|
|
|
352
440
|
## Links
|
|
353
441
|
|
|
354
442
|
- [Full Documentation](docs/full-documentation.md)
|
|
443
|
+
- [Benchmark Report](docs/comparison-tests/RESULTS-REPORT.md)
|
|
355
444
|
- [Model Context Protocol](https://modelcontextprotocol.io/)
|
|
356
445
|
- [Report Issues](https://github.com/corbat-tech/coding-standards-mcp/issues)
|
|
357
446
|
|
|
@@ -359,8 +448,8 @@ npx @corbat-tech/coding-standards-mcp
|
|
|
359
448
|
|
|
360
449
|
<div align="center">
|
|
361
450
|
|
|
362
|
-
**
|
|
451
|
+
**Stop fixing AI-generated code. Start shipping it.**
|
|
363
452
|
|
|
364
|
-
[Get Started](#quick-start) · [
|
|
453
|
+
[Get Started](#quick-start-2-minutes) · [View Benchmarks](docs/comparison-tests/RESULTS-REPORT.md) · [Documentation](docs/full-documentation.md)
|
|
365
454
|
|
|
366
455
|
</div>
|
package/assets/demo.gif
CHANGED
|
Binary file
|
package/assets/demo.tape
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# VHS Demo for CORBAT MCP - Ultra compact version
|
|
2
|
+
|
|
3
|
+
Output assets/demo.gif
|
|
4
|
+
|
|
5
|
+
Set Shell "bash"
|
|
6
|
+
Set FontSize 15
|
|
7
|
+
Set Width 800
|
|
8
|
+
Set Height 400
|
|
9
|
+
Set Theme "Catppuccin Mocha"
|
|
10
|
+
Set TypingSpeed 25ms
|
|
11
|
+
Set Padding 20
|
|
12
|
+
|
|
13
|
+
Type "# CORBAT MCP - AI code that passes code review"
|
|
14
|
+
Enter
|
|
15
|
+
Sleep 300ms
|
|
16
|
+
|
|
17
|
+
Type "# Problem: Claude writes code, but it fails quality gates"
|
|
18
|
+
Enter
|
|
19
|
+
Sleep 400ms
|
|
20
|
+
|
|
21
|
+
Enter
|
|
22
|
+
Type "# Solution: One command, professional-grade code forever"
|
|
23
|
+
Enter
|
|
24
|
+
Sleep 300ms
|
|
25
|
+
|
|
26
|
+
Type "claude mcp add corbat -- npx -y @corbat-tech/coding-standards-mcp"
|
|
27
|
+
Enter
|
|
28
|
+
Sleep 500ms
|
|
29
|
+
|
|
30
|
+
Enter
|
|
31
|
+
Type "# You: 'Create a payment service'"
|
|
32
|
+
Enter
|
|
33
|
+
Sleep 300ms
|
|
34
|
+
|
|
35
|
+
Type "# Corbat: Detects stack, injects architecture rules, enforces TDD"
|
|
36
|
+
Enter
|
|
37
|
+
Sleep 400ms
|
|
38
|
+
|
|
39
|
+
Enter
|
|
40
|
+
Type "# Results (20 benchmarks):"
|
|
41
|
+
Enter
|
|
42
|
+
Sleep 200ms
|
|
43
|
+
|
|
44
|
+
Type "# Quality: 63 -> 93 (+48%)"
|
|
45
|
+
Enter
|
|
46
|
+
Sleep 150ms
|
|
47
|
+
|
|
48
|
+
Type "# Smells: 43 -> 0 (-100%)"
|
|
49
|
+
Enter
|
|
50
|
+
Sleep 150ms
|
|
51
|
+
|
|
52
|
+
Type "# Tests: 219 -> 558 (+155%)"
|
|
53
|
+
Enter
|
|
54
|
+
Sleep 150ms
|
|
55
|
+
|
|
56
|
+
Type "# SonarQube: FAIL -> PASS"
|
|
57
|
+
Enter
|
|
58
|
+
Sleep 500ms
|
|
59
|
+
|
|
60
|
+
Enter
|
|
61
|
+
Type "# Stop fixing AI code. Start shipping it."
|
|
62
|
+
Enter
|
|
63
|
+
Sleep 5s
|
package/dist/cli/init.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { access,
|
|
2
|
+
import { access, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { createInterface } from 'node:readline';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|