Skip to content
CAI
Software that uses CAICheck a score

rafaelfgx/Architecture

36.2

Weak · 21 September 2026

641

lines of production code

C#

with TypeScript

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system appears to be a codebase undergoing significant behavioral modifications across a large number of files, alongside routine dependency maintenance. The history indicates a major refactor or feature shift affecting the entire repository, rather than a specific, narrowly defined service. Without further context, it is difficult to determine the specific domain or purpose beyond these broad structural changes.

Behavioural changes

1 commit (0 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 1 commit, 126 files.

(repo-wide) · medium confidence · unverified

Dependencies

1 commit updating dependencies (7 manifests)

A dependency / build maintenance change in (dependencies) — 1 commit, 7 files.

(dependencies) · medium confidence · unverified

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 33 → 36 (+3.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 77 → 79 (+1.8)
  • Architecture 93 → 94 (+1.1)
  • Maturity 54 → 56 (+2.3)
  • Readiness 14 → 15 (+0.7)
  • Security 49 → 45 (-3.3)
  • Accessibility 40 → 58 (+18.2)

Resolved (12)

  • Dependency hygiene not measured — no packages were read
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium IaC: CKV2_GHA_1 (.github/workflows/build.yaml)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • single-commit history — no usable git history window to measure hotspots
  • single-maintainer — knowledge-concentration (bus factor) risk

New (17)

  • High IaC: WD-COMPOSE-0002 (docker-compose.yaml)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Inconsistent casing for domain property names in parameters. The domain types (User, Auth) define properties with PascalCase names (Name, Email, Status, Login, Password, Salt, Roles). However, the parameter string Name in UserRepository.ListModelAsync uses PascalCase, which is consistent. However, looking at AuthRepository.GetByLoginAsync, the parameter is string (unnamed in signature but conceptually login). More critically, compare Parameter: string Name in UserRepository.ListModelAsync with Property: public Architecture.Domain.User.Name. While both are 'Name', the parameter casing matches the property. Let's look for a clearer mismatch. Ah, Parameter: string Name vs Property: public Architecture.Domain.User.Name. This is consistent. Let's look at Parameter: string Login vs Property: public Architecture.Domain.Auth.Login. Consistent. Let's look at Parameter: string Password vs Property: public Architecture.Domain.Auth.Password. Consistent. Let's look at Parameter: string Email vs Property: public Architecture.Domain.User.Email. Consistent. Let's look at Parameter: string role vs Property: public Architecture.Domain.Auth.Roles. Here is a mismatch: the property is Roles (plural, PascalCase), but the parameter in AuthConfiguration.Configure is role (singular, camelCase). Similarly, Parameter: string name in ExampleConfiguration.Configure vs Property: public Architecture.Domain.User.Name (if it were related) or Parameter: string Name in UserRepository. Actually, ExampleConfiguration configures Example, not User. Example doesn't have a Name property listed. User has Name. Auth has Roles. The parameter role in AuthConfiguration is singular, while the domain property is Roles (plural). This suggests a semantic drift or inconsistency in how the collection is referred to in configuration vs domain model.
  • Inconsistent casing for the 'Id' parameter across different methods. UserController.Get and UserController.Delete use long id (camelCase), while GridUserRequest and GridExampleRequest types likely have an Id property (PascalCase) based on standard C# conventions for DTOs, but the parameters passed into handlers/controllers vary. Specifically, Parameter: long Id appears in GridUserRequest (likely a property or parameter in a request object context) and Parameter: long id appears in UserController.Get. While id is standard for local variables/parameters and Id for properties, the inconsistency arises if these parameters are meant to map directly to a property named Id. More clearly, Parameter: string Login in AuthConfiguration vs Property: public Architecture.Domain.Auth.Login. This is consistent. However, Parameter: string name in ExampleConfiguration vs Parameter: string Name in UserRepository. The casing differs (camelCase vs PascalCase) for the same concept 'Name'.
  • Medium IaC: CKV_DOCKER_2 (dockerfile)
  • Medium IaC: WD-DOCKER-0003 (dockerfile)
  • Medium IaC: WD-DOCKER-0003 (dockerfile)
  • Medium IaC: WD-DOCKER-0003 (dockerfile)
  • Medium IaC: WD-DOCKER-0004 (dockerfile)
  • No dependency advisory monitoring
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Shell project: Architecture.Model (source/Model/Architecture.Model.csproj)
  • Workflow token permissions not restricted

Changes since last survey

  • 1 commits — 1 feature/other, 0 fixes

By area

  • source/Web — 1 commit

Notable commits

  • change: .

API surface

  • 1 added · 1 removed (a removed endpoint is potentially breaking)

Added endpoints (1)

  • POST /api/auth

Removed endpoints (breaking) (1)

  • POST /api/auths

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

rafaelfgx/Architecture was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit c4c31dcdeb4fa09af153d9cabdd72ad8610c5c9d — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.