Skip to content
CAI
Software that uses CAICheck a score

CanineCC/ROF

45.1

Weak · 2 November 2026

51.3k

lines of production code

C#

with GDScript

1

measurement over time

CAI band scale
CAI lens gauges

How this codebase got here

Score

  • CAI 47 → 45 (-2.0)
  • Rubric changed (rubric-2026.08.12 → rubric-2026.11.1) — scores are not directly comparable.

Lenses

  • Code Health 61 → 55 (-6.4)
  • Architecture 76 → 55 (-20.5)
  • Maturity 31 → 33 (+2.0)
  • Readiness 58 → 50 (-8.4)
  • Security 63 → 78 (+15.0)
  • Performance 63 → 77 (+14.8)

Resolved (284)

  • AnimationIdMapping.GetAnimationTypeForState (cyclomatic 27) (Canine/Canine.TacticalBattleEngine/Animation/AnimationIdMapping.cs)
  • AnimationStateSystem.GetMovementAnimation (cyclomatic 17) (Canine/Canine.TacticalBattleEngine/Animation/AnimationStateSystem.cs)
  • BDD tests
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/Managers/BattlefieldManager.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/Managers/POINode.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/Managers/ProceduralForestManager.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/Managers/ProceduralForestManager.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/AchievementUIController.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/AnimationBrowser/AnimationBrowser.Model.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/AnimationBrowser/AnimationBrowser.Preview.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/DefenceEditDialog/DefenceEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/DefenceEditDialog/DefenceEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.Animation.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.DragDrop.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.Scene.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/UnitEditDialog/UnitEditDialog.Scene.cs)
  • BarePragmaDisable (RevivalOfForest/ROF.Game/Scripts/UI/ModdingTools/Utilities/GltfAnimationExtractor.cs)
  • …and 264 more

New (645)

  • BarePragmaDisable repeated across 11 files (RevivalOfForest/ROF.Game/Scripts/Managers/POINode.cs)
  • Change coupling: Program.cs ↔ WaypointMovementSystem.cs (Canine/Canine.TacticalBattleEngine.Benchmarks/Program.cs)
  • Change-coupling hub: NextTurnButton.cs → UnitSelectButton.cs, CameraController.cs, BattlefieldManager.cs (RevivalOfForest/ROF.Game/Scripts/UI/NextTurnButton.cs)
  • CommentedOutCode (Canine/Canine.TacticalBattleEngine.Tests/UnitTests/DirectCombatSystemRangeTest.cs)
  • CommentedOutCode (Canine/Canine.TacticalBattleEngine.Tests/UnitTests/DirectCombatSystemRangeTest.cs)
  • CommentedOutCode (Canine/Canine.TacticalBattleEngine.Tests/UnitTests/DirectCombatSystemRangeTest.cs)
  • CommentedOutCode (Canine/Canine.TacticalBattleEngine.Tests/UnitTests/DirectCombatSystemRangeTest.cs)
  • CommentedOutCode (Canine/Canine.TacticalBattleEngine.Tests/UnitTests/DirectCombatSystemRangeTest.cs)
  • CommentedOutCode (RevivalOfForest/ROF.Game/Assets/Trees/Big white oak/The packed scene/BigWhiteOak.cs)
  • CommentedOutCode (RevivalOfForest/ROF.Game/Scripts/UnitLogicRenderer.cs)
  • Dead code: CalculateIntermediateHash (Canine/Canine.TacticalBattleEngine.Benchmarks/Infrastructure/HashValidator.cs)
  • Dead code: CalculatePath (Canine/Canine.TacticalBattleEngine/Interfaces/ITerrainProvider.cs)
  • Dead code: CanUnitsInteract (Canine/Canine.TacticalBattleEngine.Tests/Testing/TestGameConfiguration.cs)
  • Dead code: ClearNonHumanUnits (Canine/Canine.TacticalBattleEngine/Simulation/SpawnManager.cs)
  • Dead code: CreateUnitsOnly (Canine/Canine.TacticalBattleEngine.Benchmarks/Infrastructure/BenchmarkScenarios.cs)
  • Dead code: DespawnEffectData (Canine/Canine.TacticalBattleEngine/Resources/DespawnEffectData.cs)
  • Dead code: FindHierarchicalPath (Canine/Canine.TacticalBattleEngine/Navigation/HierarchicalPathfindingGrid.cs)
  • Dead code: ForTeams (Canine/Canine.TacticalBattleEngine/AI/AIConfiguration.cs)
  • Dead code: GameSettingsData (Canine/Canine.TacticalBattleEngine/Resources/GameSettingsData.cs)
  • Dead code: GetAliveCount (Canine/Canine.TacticalBattleEngine/Simulation/SimulationState.cs)
  • …and 625 more

Architecture

  • 0 containers · 2 bounded contexts · 1 dependency edges (baseline)

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

Survey your own repository

CanineCC/ROF 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 2 November 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit afcbb332ebfc2b91334d4c818900b7fa8c29d3b1 — the exact code this score is about.
  • Scored under rubric-2026.11.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer measure-2026.11.1+preprod-2cc7d3782551.