cerber-core 1.1.0 → 1.1.1

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 CHANGED
@@ -71,7 +71,14 @@ Ongoing savings: $6,000/month per developer
71
71
 
72
72
  ## 🎯 What is Cerber Core?
73
73
 
74
- Cerber Core is a comprehensive toolkit for maintaining code quality and architecture in growing Node.js projects.
74
+ **Cerber Core is a control system for Node.js architecture.**
75
+
76
+ **Critical distinction:** Cerber does NOT design your system. Cerber EXECUTES your design.
77
+
78
+ ```
79
+ You decide → CERBER.md (roadmap)
80
+ Cerber guards → enforces your decisions
81
+ ```
75
82
 
76
83
  ### 💎 The Core Value: Your Roadmap Becomes Executable Law
77
84
 
@@ -138,6 +145,81 @@ export const BACKEND_SCHEMA = {
138
145
 
139
146
  ---
140
147
 
148
+ ## 🎯 ONE SOURCE OF TRUTH
149
+
150
+ **Critical principle:** Cerber does NOT design your system. Cerber enforces YOUR design.
151
+
152
+ ### The Rule
153
+
154
+ ```
155
+ 📜 CERBER.md = Your roadmap (single source of truth)
156
+ 🛡️ Guardian = Enforces CERBER.md rules
157
+ 📋 Schema files = Optional mirrors of CERBER.md (NOT source of truth)
158
+ ```
159
+
160
+ **What this means:**
161
+
162
+ ✅ **CERBER.md defines everything** - architecture, rules, team mode
163
+ ✅ **Cerber executes CERBER.md** - no assumptions, no magic
164
+ ✅ **Schema files are user-owned** - Cerber helps, never decides
165
+ ✅ **You design. Cerber guards.** - separation of concerns
166
+
167
+ ❌ **Cerber does NOT guess your architecture**
168
+ ❌ **Cerber does NOT infer folder structures**
169
+ ❌ **Cerber does NOT auto-design systems**
170
+
171
+ ### Schema Mode: Strict vs Template_Only
172
+
173
+ In `CERBER.md` contract, you control schema generation:
174
+
175
+ ```yaml
176
+ schema:
177
+ enabled: true
178
+ file: BACKEND_SCHEMA.ts
179
+ mode: strict # or template_only
180
+ ```
181
+
182
+ **For mature teams → `mode: strict`**
183
+ - ✅ Cerber NEVER creates schema file
184
+ - ✅ You create schema based on YOUR architecture
185
+ - ✅ Full control, no helpers, no assumptions
186
+ - ✅ `npx cerber init` shows: "You must create BACKEND_SCHEMA.ts"
187
+
188
+ **For beginners → `mode: template_only`**
189
+ - ✅ Cerber creates minimal template if file missing
190
+ - ⚠️ Template says: "NOT SOURCE OF TRUTH - Edit to match CERBER.md"
191
+ - ✅ Empty structures, commented examples only
192
+ - ✅ Helper scaffold, NOT design decision
193
+
194
+ **Default:** `template_only` (backward compatible)
195
+
196
+ **Philosophy:**
197
+
198
+ ```
199
+ Traditional tools:
200
+ → Auto-generate everything
201
+ → Assume folder structures
202
+ → "Helpful" magic that creates chaos
203
+
204
+ Cerber Core:
205
+ → Execute CERBER.md contract
206
+ → Never assume architecture
207
+ → One decision point (CERBER.md)
208
+ → Works WITH AI agents, not against them
209
+ ```
210
+
211
+ **Why this matters:**
212
+
213
+ When your team (or AI agents) follow ONE source of truth:
214
+ - ✅ No conflicts between "docs" and "reality"
215
+ - ✅ No drift between "schema" and "roadmap"
216
+ - ✅ Clear authority: CERBER.md decides, Cerber enforces
217
+ - ✅ Architecture stays intact as team/AI scales
218
+
219
+ **This is not "another tool". This is a control system.**
220
+
221
+ ---
222
+
141
223
  ## 🚀 Quick Start
142
224
 
143
225
  ### 30-Second Setup ⚡ (New in v1.1.0!)
@@ -174,6 +256,13 @@ guardian:
174
256
  enabled: true
175
257
  schemaFile: BACKEND_SCHEMA.ts
176
258
 
259
+ schema:
260
+ enabled: true
261
+ file: BACKEND_SCHEMA.ts
262
+ mode: template_only # strict (mature teams) | template_only (beginners)
263
+ # strict = You create schema, Cerber never generates
264
+ # template_only = Cerber creates minimal helper if missing
265
+
177
266
  health:
178
267
  enabled: true
179
268
  endpoint: /api/health
@@ -223,10 +312,12 @@ npm install cerber-core --save-dev
223
312
 
224
313
  ### Choose Your Path
225
314
 
315
+ > ⚠️ **Note:** Examples below show common patterns. Copy and **customize to YOUR architecture**. Schema files are templates, not decisions.
316
+
226
317
  #### 🎨 **Frontend Developer (React/Vue/Angular)**
227
318
 
228
319
  ```bash
229
- # 1. Copy frontend schema example
320
+ # 1. Copy frontend schema example (then customize!)
230
321
  cp node_modules/cerber-core/examples/frontend-schema.ts ./FRONTEND_SCHEMA.ts
231
322
 
232
323
  # 2. Copy validation script
@@ -248,10 +339,12 @@ git commit -m "test"
248
339
  - ✅ Required imports (`react`, `react-dom`)
249
340
  - ✅ Required files (`tsconfig.json`, `vite.config.ts`)
250
341
 
342
+ **Then customize:** Edit FRONTEND_SCHEMA.ts to match YOUR folder structure, YOUR rules, YOUR tech stack.
343
+
251
344
  #### ⚙️ **Backend Developer (Node.js/Express/NestJS)**
252
345
 
253
346
  ```bash
254
- # 1. Copy backend schema example
347
+ # 1. Copy backend schema example (then customize!)
255
348
  cp node_modules/cerber-core/examples/backend-schema.ts ./BACKEND_SCHEMA.ts
256
349
 
257
350
  # 2. Copy validation script
@@ -265,6 +358,8 @@ npx husky add .husky/pre-commit "node scripts/validate-schema.mjs"
265
358
  # 4. Add health endpoint
266
359
  ```
267
360
 
361
+ **Then customize:** Edit BACKEND_SCHEMA.ts to match YOUR routes, YOUR layers, YOUR security rules.
362
+
268
363
  ```javascript
269
364
  // server.js (ESM)
270
365
  import express from 'express';
@@ -375,6 +470,27 @@ cerber-repair
375
470
  cerber-focus
376
471
  ```
377
472
 
473
+ ---
474
+
475
+ ## ⚠️ Important: Schema Files Are NOT Source of Truth
476
+
477
+ Before diving into examples below, understand this:
478
+
479
+ **📋 Schema files (BACKEND_SCHEMA.ts, FRONTEND_SCHEMA.ts):**
480
+ - Are **examples** and **optional templates**
481
+ - Mirror YOUR architecture decisions from CERBER.md
482
+ - Are user-owned and user-created (in strict mode)
483
+ - Should be customized to YOUR project structure
484
+
485
+ **📜 CERBER.md:**
486
+ - Is the ONLY source of truth
487
+ - Defines your roadmap, rules, team mode
488
+ - Controls if/how Cerber helps with schema generation
489
+
490
+ **Cerber does NOT design your system. The examples below show patterns - YOU decide which patterns fit YOUR architecture.**
491
+
492
+ ---
493
+
378
494
  ### Guardian Setup (3 minutes)
379
495
 
380
496
  **1. Create architecture schema:**
@@ -1216,10 +1332,12 @@ Break-even: Day 1 ✅
1216
1332
 
1217
1333
  ## 💡 Examples
1218
1334
 
1335
+ > ⚠️ **Remember:** Examples show patterns, NOT decisions. Copy and customize to YOUR architecture defined in CERBER.md.
1336
+
1219
1337
  ### Complete Examples in `/examples`
1220
1338
 
1221
- - [**Frontend (React + Guardian)**](examples/frontend-schema.ts) - React/Vue architecture rules
1222
- - [**Backend (Express + Cerber)**](examples/backend-schema.ts) - Node.js/Express patterns
1339
+ - [**Frontend (React + Guardian)**](examples/frontend-schema.ts) - React/Vue patterns (customize to your structure)
1340
+ - [**Backend (Express + Cerber)**](examples/backend-schema.ts) - Node.js/Express patterns (customize to your layers)
1223
1341
  - [**Health Checks**](examples/health-checks.ts) - 6 production-ready checks
1224
1342
  - [**SOLO Integration**](examples/solo-integration/) - Automation setup
1225
1343
  - [**TEAM Integration**](examples/team-integration/) - Module system setup
package/bin/cerber CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  /**
4
4
  * Cerber Core - Unified CLI
@@ -0,0 +1,48 @@
1
+ /**
2
+ * ⚠️ CERBER TEMPLATE (NOT SOURCE OF TRUTH)
3
+ *
4
+ * This file is a starting point. Edit it to match YOUR architecture.
5
+ * The source of truth is CERBER.md.
6
+ *
7
+ * Generated by: npx cerber init
8
+ * Project: {{PROJECT_NAME}}
9
+ *
10
+ * See: https://github.com/Agaslez/cerber-core#guardian-configuration
11
+ */
12
+
13
+ export const BACKEND_SCHEMA = {
14
+ version: "1.0.0",
15
+
16
+ // Your architecture rules (customize)
17
+ rules: [],
18
+
19
+ // Patterns that should never appear in your code
20
+ forbiddenPatterns: [
21
+ // Uncomment and customize based on your tech stack:
22
+ // {
23
+ // pattern: /password\s*=\s*['"][^'"]+['"]/i,
24
+ // name: "Hardcoded passwords",
25
+ // severity: "error"
26
+ // },
27
+ // {
28
+ // pattern: /api[_-]?key\s*=\s*['"][^'"]+['"]/i,
29
+ // name: "Hardcoded API keys",
30
+ // severity: "error"
31
+ // }
32
+ ]
33
+ };
34
+
35
+ export default BACKEND_SCHEMA;
36
+
37
+ /**
38
+ * 💡 Next Steps:
39
+ *
40
+ * 1. Define your project structure in CERBER.md (single source of truth)
41
+ * 2. Add forbiddenPatterns for your tech stack
42
+ * 3. Add requiredImports rules for your architecture layers
43
+ * 4. Test with: npx cerber-guardian
44
+ *
45
+ * Full examples:
46
+ * - node_modules/cerber-core/examples/backend-schema.ts
47
+ * - node_modules/cerber-core/examples/frontend-schema.ts
48
+ */
@@ -1 +1 @@
1
- {"version":3,"file":"contract-parser.d.ts","sourceRoot":"","sources":["../../src/cli/contract-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMjE,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAU3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CA8EpE;AAsHD,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAM,GAAG,KAAK,GAAG,MAAc,GAAG,cAAc,CA+BxF"}
1
+ {"version":3,"file":"contract-parser.d.ts","sourceRoot":"","sources":["../../src/cli/contract-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMjE,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAU3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CA8EpE;AAyID,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAM,GAAG,KAAK,GAAG,MAAc,GAAG,cAAc,CAqCxF"}
@@ -102,6 +102,7 @@ function parseSimpleYaml(yamlContent) {
102
102
  guardian: {},
103
103
  health: {},
104
104
  ci: {},
105
+ schema: {},
105
106
  team: {}
106
107
  };
107
108
  let currentSection = null;
@@ -201,6 +202,23 @@ function validateContract(contract) {
201
202
  contract.ci.postDeploy = { enabled: false };
202
203
  }
203
204
  }
205
+ // Check schema section (optional but if present, validate)
206
+ if (contract.schema) {
207
+ if (typeof contract.schema.enabled !== 'boolean') {
208
+ errors.push('schema.enabled must be true or false');
209
+ }
210
+ if (contract.schema.enabled) {
211
+ if (!contract.schema.file) {
212
+ errors.push('schema.file is required when schema is enabled');
213
+ }
214
+ if (!contract.schema.mode) {
215
+ errors.push('schema.mode is required (strict or template_only)');
216
+ }
217
+ if (contract.schema.mode && !['strict', 'template_only'].includes(contract.schema.mode)) {
218
+ errors.push('schema.mode must be "strict" or "template_only"');
219
+ }
220
+ }
221
+ }
204
222
  return {
205
223
  valid: errors.length === 0,
206
224
  errors
@@ -235,6 +253,12 @@ export function getDefaultContract(mode = 'dev') {
235
253
  healthUrlVar: 'CERBER_HEALTH_URL',
236
254
  authHeaderSecret: 'CERBER_HEALTH_AUTH_HEADER'
237
255
  }
256
+ },
257
+ schema: {
258
+ enabled: true,
259
+ file: 'BACKEND_SCHEMA.ts',
260
+ mode: 'template_only',
261
+ description: 'Project architecture contract (user-owned)'
238
262
  }
239
263
  };
240
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract-parser.js","sourceRoot":"","sources":["../../src/cli/contract-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-parser.js","sourceRoot":"","sources":["../../src/cli/contract-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAC;AA6EzD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG1E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAiC,WAAW,EAAE,MAAM,YAAY,CAAC;AAqFxE,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG1E"}
package/dist/cli/init.js CHANGED
@@ -43,6 +43,14 @@ ci:
43
43
  waitSeconds: 90
44
44
  healthUrlVar: CERBER_HEALTH_URL
45
45
  authHeaderSecret: CERBER_HEALTH_AUTH_HEADER
46
+
47
+ schema:
48
+ enabled: true
49
+ file: BACKEND_SCHEMA.ts
50
+ mode: template_only # strict | template_only
51
+ description: "Project architecture contract (user-owned)"
52
+ # strict = Cerber never creates schema, you must create it
53
+ # template_only = Cerber creates minimal template if missing
46
54
  \`\`\`
47
55
 
48
56
  ---
@@ -169,7 +177,7 @@ export async function initCommand(options = {}) {
169
177
  console.log(chalk.bold.green('✅ Cerber initialization complete!'));
170
178
  console.log('');
171
179
  // Step 5: Show next steps
172
- showNextSteps(contract, options);
180
+ await showNextSteps(contract, options, files, projectRoot);
173
181
  }
174
182
  async function updatePackageJson(projectRoot) {
175
183
  const packagePath = path.join(projectRoot, 'package.json');
@@ -189,7 +197,16 @@ async function updatePackageJson(projectRoot) {
189
197
  console.log(chalk.yellow('⚠️ Could not update package.json (file may not exist)'));
190
198
  }
191
199
  }
192
- function showNextSteps(contract, options) {
200
+ async function fileExists(filePath) {
201
+ try {
202
+ await fs.access(filePath);
203
+ return true;
204
+ }
205
+ catch {
206
+ return false;
207
+ }
208
+ }
209
+ async function showNextSteps(contract, options, generatedFiles, projectRoot) {
193
210
  console.log(chalk.bold('📝 Next Steps:'));
194
211
  console.log('');
195
212
  if (contract.guardian.enabled && !options.noHusky) {
@@ -198,8 +215,42 @@ function showNextSteps(contract, options) {
198
215
  console.log(' npx husky install');
199
216
  console.log('');
200
217
  }
201
- if (contract.guardian.enabled) {
202
- console.log(chalk.cyan(`2. Create your schema file: ${contract.guardian.schemaFile}`));
218
+ // Schema section (based on schema config in CERBER.md)
219
+ if (contract.schema && contract.schema.enabled) {
220
+ const schemaFile = contract.schema.file;
221
+ const schemaGenerated = generatedFiles.some(f => f.path.endsWith(schemaFile));
222
+ const schemaExists = await fileExists(path.join(projectRoot, schemaFile));
223
+ if (schemaGenerated) {
224
+ // Template was generated
225
+ console.log(chalk.cyan(`2. Customize your architecture schema:`));
226
+ console.log(chalk.yellow(` ⚠️ ${schemaFile} is a TEMPLATE (not source of truth)`));
227
+ console.log(` Edit it to match your architecture defined in CERBER.md`);
228
+ console.log(' See: https://github.com/Agaslez/cerber-core#guardian-configuration');
229
+ }
230
+ else if (!schemaExists && contract.schema.mode === 'strict') {
231
+ // Strict mode: schema required but not generated
232
+ console.log(chalk.cyan(`2. Create your schema file:`));
233
+ console.log(chalk.yellow(` Schema mode: strict (you must create ${schemaFile})`));
234
+ console.log(` Template: npx cerber init --print-schema-template > ${schemaFile}`);
235
+ console.log(' See: https://github.com/Agaslez/cerber-core#guardian-configuration');
236
+ }
237
+ else if (schemaExists) {
238
+ // Schema exists, don't mention creating it
239
+ console.log(chalk.green(`✅ Schema file exists: ${schemaFile}`));
240
+ }
241
+ console.log('');
242
+ }
243
+ else if (contract.guardian.enabled) {
244
+ // Legacy: guardian enabled but no schema config (backward compat)
245
+ const schemaGenerated = generatedFiles.some(f => f.path.endsWith(contract.guardian.schemaFile));
246
+ if (schemaGenerated) {
247
+ console.log(chalk.cyan(`2. Customize your architecture schema:`));
248
+ console.log(` Edit: ${contract.guardian.schemaFile}`);
249
+ console.log(' Add your project-specific rules and patterns');
250
+ }
251
+ else {
252
+ console.log(chalk.cyan(`2. Create your schema file: ${contract.guardian.schemaFile}`));
253
+ }
203
254
  console.log(' See: https://github.com/Agaslez/cerber-core#guardian-configuration');
204
255
  console.log('');
205
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare class TemplateGenerator {
22
22
  private renderTemplate;
23
23
  private loadTemplate;
24
24
  private applyReplacements;
25
+ private fileExists;
25
26
  private getPostDeployBlock;
26
27
  private ensureExecutable;
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../src/cli/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE,WAAgB;IAO9E,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YA0B/B,qBAAqB;YA4BrB,mBAAmB;YAwBnB,eAAe;YAsBf,iBAAiB;IAkBzB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAgCzC,cAAc;YAKd,YAAY;IAU1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;CAkC/B"}
1
+ {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../src/cli/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE,WAAgB;IAO9E,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YA0B/B,qBAAqB;YA8CrB,mBAAmB;YAwBnB,eAAe;YAsBf,iBAAiB;IAkBzB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAgCzC,cAAc;YAKd,YAAY;IAU1B,OAAO,CAAC,iBAAiB;YASX,UAAU;IASxB,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;CAkC/B"}
@@ -54,6 +54,22 @@ export class TemplateGenerator {
54
54
  content: guardianScript,
55
55
  generated: true
56
56
  });
57
+ // Generate schema file ONLY if schema.enabled AND mode is template_only AND file doesn't exist
58
+ if (this.contract.schema && this.contract.schema.enabled) {
59
+ const schemaPath = path.join(this.projectRoot, this.contract.schema.file);
60
+ const schemaExists = await this.fileExists(schemaPath);
61
+ if (!schemaExists && this.contract.schema.mode === 'template_only') {
62
+ const projectName = path.basename(this.projectRoot);
63
+ const schemaContent = await this.renderTemplate('BACKEND_SCHEMA.ts.tpl', {
64
+ PROJECT_NAME: projectName
65
+ });
66
+ files.push({
67
+ path: schemaPath,
68
+ content: schemaContent,
69
+ generated: true
70
+ });
71
+ }
72
+ }
57
73
  // .husky/pre-commit
58
74
  if (this.contract.guardian.hook === 'husky') {
59
75
  const preCommitHook = await this.renderTemplate('pre-commit.tpl', {
@@ -168,6 +184,15 @@ export class TemplateGenerator {
168
184
  }
169
185
  return result;
170
186
  }
187
+ async fileExists(filePath) {
188
+ try {
189
+ await fs.access(filePath);
190
+ return true;
191
+ }
192
+ catch {
193
+ return false;
194
+ }
195
+ }
171
196
  getPostDeployBlock() {
172
197
  return ` cerber-postdeploy:
173
198
  name: Post-Deploy Health Gate
@@ -1 +1 @@
1
- {"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../src/cli/template-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../src/cli/template-generator.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface CerberContract {
11
11
  guardian: GuardianConfig;
12
12
  health: HealthConfig;
13
13
  ci: CIConfig;
14
+ schema: SchemaConfig;
14
15
  team?: TeamConfig;
15
16
  }
16
17
  export interface GuardianConfig {
@@ -43,6 +44,13 @@ export interface TeamConfig {
43
44
  schemaOwners?: string[];
44
45
  reviewRequired?: boolean;
45
46
  }
47
+ export interface SchemaConfig {
48
+ enabled: boolean;
49
+ file: string;
50
+ mode: 'strict' | 'template_only';
51
+ owners?: string[];
52
+ description?: string;
53
+ }
46
54
  export interface ContractParseResult {
47
55
  success: boolean;
48
56
  contract?: CerberContract;
@@ -57,6 +65,7 @@ export interface InitOptions {
57
65
  force?: boolean;
58
66
  dryRun?: boolean;
59
67
  printTemplate?: boolean;
68
+ printSchemaTemplate?: boolean;
60
69
  noHusky?: boolean;
61
70
  noWorkflow?: boolean;
62
71
  noHealth?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,eAAe,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -1,6 +1,13 @@
1
1
  /**
2
- * Example Backend Schema for Guardian
3
- * Shows typical architecture rules for Node.js/Express backends
2
+ * ⚠️ EXAMPLE PATTERN (NOT SOURCE OF TRUTH)
3
+ *
4
+ * This shows common Node.js/Express architecture patterns.
5
+ * DO NOT copy blindly - customize to YOUR project structure.
6
+ *
7
+ * The source of truth is CERBER.md.
8
+ * This file is a template showing possible rules - YOU decide which fit YOUR architecture.
9
+ *
10
+ * See: https://github.com/Agaslez/cerber-core#one-source-of-truth
4
11
  */
5
12
 
6
13
  import type { GuardianSchema } from '../src/types';
@@ -1,6 +1,13 @@
1
1
  /**
2
- * Example Frontend Schema for Guardian
3
- * Shows typical architecture rules for React/Vue frontends
2
+ * ⚠️ EXAMPLE PATTERN (NOT SOURCE OF TRUTH)
3
+ *
4
+ * This shows common React/Vue architecture patterns.
5
+ * DO NOT copy blindly - customize to YOUR project structure.
6
+ *
7
+ * The source of truth is CERBER.md.
8
+ * This file is a template showing possible rules - YOU decide which fit YOUR architecture.
9
+ *
10
+ * See: https://github.com/Agaslez/cerber-core#one-source-of-truth
4
11
  */
5
12
 
6
13
  import type { GuardianSchema } from '../src/types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cerber-core",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Your architecture roadmap becomes executable law. Guardian blocks commits that violate your plan. Pay architect once, Cerber enforces forever. Save $6k/month/dev.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,48 @@
1
+ /**
2
+ * ⚠️ CERBER TEMPLATE (NOT SOURCE OF TRUTH)
3
+ *
4
+ * This file is a starting point. Edit it to match YOUR architecture.
5
+ * The source of truth is CERBER.md.
6
+ *
7
+ * Generated by: npx cerber init
8
+ * Project: {{PROJECT_NAME}}
9
+ *
10
+ * See: https://github.com/Agaslez/cerber-core#guardian-configuration
11
+ */
12
+
13
+ export const BACKEND_SCHEMA = {
14
+ version: "1.0.0",
15
+
16
+ // Your architecture rules (customize)
17
+ rules: [],
18
+
19
+ // Patterns that should never appear in your code
20
+ forbiddenPatterns: [
21
+ // Uncomment and customize based on your tech stack:
22
+ // {
23
+ // pattern: /password\s*=\s*['"][^'"]+['"]/i,
24
+ // name: "Hardcoded passwords",
25
+ // severity: "error"
26
+ // },
27
+ // {
28
+ // pattern: /api[_-]?key\s*=\s*['"][^'"]+['"]/i,
29
+ // name: "Hardcoded API keys",
30
+ // severity: "error"
31
+ // }
32
+ ]
33
+ };
34
+
35
+ export default BACKEND_SCHEMA;
36
+
37
+ /**
38
+ * 💡 Next Steps:
39
+ *
40
+ * 1. Define your project structure in CERBER.md (single source of truth)
41
+ * 2. Add forbiddenPatterns for your tech stack
42
+ * 3. Add requiredImports rules for your architecture layers
43
+ * 4. Test with: npx cerber-guardian
44
+ *
45
+ * Full examples:
46
+ * - node_modules/cerber-core/examples/backend-schema.ts
47
+ * - node_modules/cerber-core/examples/frontend-schema.ts
48
+ */
@@ -0,0 +1,48 @@
1
+ /**
2
+ * ⚠️ CERBER TEMPLATE (NOT SOURCE OF TRUTH)
3
+ *
4
+ * This file is a starting point. Edit it to match YOUR architecture.
5
+ * The source of truth is CERBER.md.
6
+ *
7
+ * Generated by: npx cerber init
8
+ * Project: {{PROJECT_NAME}}
9
+ *
10
+ * See: https://github.com/Agaslez/cerber-core#guardian-configuration
11
+ */
12
+
13
+ export const BACKEND_SCHEMA = {
14
+ version: "1.0.0",
15
+
16
+ // Your architecture rules (customize)
17
+ rules: [],
18
+
19
+ // Patterns that should never appear in your code
20
+ forbiddenPatterns: [
21
+ // Uncomment and customize based on your tech stack:
22
+ // {
23
+ // pattern: /password\s*=\s*['"][^'"]+['"]/i,
24
+ // name: "Hardcoded passwords",
25
+ // severity: "error"
26
+ // },
27
+ // {
28
+ // pattern: /api[_-]?key\s*=\s*['"][^'"]+['"]/i,
29
+ // name: "Hardcoded API keys",
30
+ // severity: "error"
31
+ // }
32
+ ]
33
+ };
34
+
35
+ export default BACKEND_SCHEMA;
36
+
37
+ /**
38
+ * 💡 Next Steps:
39
+ *
40
+ * 1. Define your project structure in CERBER.md (single source of truth)
41
+ * 2. Add forbiddenPatterns for your tech stack
42
+ * 3. Add requiredImports rules for your architecture layers
43
+ * 4. Test with: npx cerber-guardian
44
+ *
45
+ * Full examples:
46
+ * - node_modules/cerber-core/examples/backend-schema.ts
47
+ * - node_modules/cerber-core/examples/frontend-schema.ts
48
+ */