@getcodesentinel/codesentinel 1.14.0 → 1.15.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 CHANGED
@@ -100,6 +100,8 @@ The CLI output now includes a deterministic `risk` block composed from those dim
100
100
  - `dependencyAmplificationZones`
101
101
  - file/module/dependency score tables
102
102
 
103
+ It also includes a deterministic `quality` block (`qualityScore`, dimension scores, and actionable top issues) computed independently from risk.
104
+
103
105
  The goal is a practical, engineering-grade model that supports both strategic architecture decisions and daily code review workflows.
104
106
 
105
107
  ## Monorepo Layout
@@ -109,6 +111,7 @@ The goal is a practical, engineering-grade model that supports both strategic ar
109
111
  - `packages/git-analyzer`: Git history and evolutionary signals.
110
112
  - `packages/dependency-firewall`: external dependency and supply chain signals.
111
113
  - `packages/risk-engine`: risk aggregation and scoring model.
114
+ - `packages/quality-engine`: quality posture aggregation and scoring model.
112
115
  - `packages/reporter`: structured report output (console, JSON, CI).
113
116
  - `packages/governance`: CI gate evaluation and enforcement policy checks.
114
117
  - `packages/cli`: user-facing CLI entrypoint.
@@ -360,12 +363,13 @@ Filters:
360
363
 
361
364
  ## Understanding Analyze Output
362
365
 
363
- `codesentinel analyze` returns one JSON document with four top-level blocks:
366
+ `codesentinel analyze` returns one JSON document with five top-level blocks:
364
367
 
365
368
  - `structural`: file dependency graph shape and graph metrics.
366
369
  - `evolution`: git-derived change behavior per file and coupling pairs.
367
370
  - `external`: dependency exposure for direct packages plus propagated transitive signals.
368
371
  - `risk`: deterministic composition of `structural + evolution + external`.
372
+ - `quality`: deterministic code health posture from local structural/evolution/test signals.
369
373
 
370
374
  Minimal shape:
371
375
 
@@ -380,6 +384,16 @@ Minimal shape:
380
384
  "hotspots": [],
381
385
  "fragileClusters": [],
382
386
  "dependencyAmplificationZones": []
387
+ },
388
+ "quality": {
389
+ "qualityScore": 0,
390
+ "normalizedScore": 0,
391
+ "dimensions": {
392
+ "modularity": 0,
393
+ "changeHygiene": 0,
394
+ "testHealth": 0
395
+ },
396
+ "topIssues": []
383
397
  }
384
398
  }
385
399
  ```
@@ -391,6 +405,11 @@ How to read `risk` first:
391
405
  - `fragileClusters`: groups of files with structural-cycle or co-change fragility.
392
406
  - `dependencyAmplificationZones`: files where external dependency pressure intersects with local fragility.
393
407
 
408
+ Score direction:
409
+
410
+ - `risk.riskScore`: higher means higher risk (worse).
411
+ - `quality.qualityScore`: higher means better quality posture.
412
+
394
413
  Interpretation notes:
395
414
 
396
415
  - Scores are deterministic for the same inputs and config.