Orchestrator Tool Calls
336
10 unique tools
Sub-agent Tool Calls
732
bash / read / write / edit
Sub-agents
4
DeepSeek Harness fork
Real Cost
$4.97
228.3M tokens
Tool Usage per Sub-agent
4 agents
Tool Usage per Sub-agent
Code Quality Assessment
PHPMetrics
Code Quality Assessment
Code Quality Assessment
PHPMetrics 2.9.1Classes
204
Lines of Code
7.8K
Avg MI
78.9
Avg Complexity
5.2
Est. Bugs
25.7
avg 0.126/class
Violations
0
0 errors, 0 warnings
Complexity Distribution
Maintainability Distribution
Most Complex Classes
Form
App\Livewire\Admin\Products
Show
App\Livewire\Storefront\Checkout
ShippingCalculator
App\Services
DiscountService
App\Services
Show
App\Livewire\Storefront\Products
Least Maintainable
OrderService
Services · CCN 24 · 98 LOC
CartService
Services · CCN 20 · 106 LOC
PricingEngine
Services · CCN 19 · 84 LOC
Shipping
Settings · CCN 24 · 168 LOC
Show
Checkout · CCN 43 · 264 LOC
Most Coupled Classes
Product
21Order
21CheckoutService
20Store
19User
19Avg Efferent
2.94
Max LCOM
6
Notes
- •PHPMetrics flags 0 rule violations across 204 classes, with a healthy average MI of 78.9 - though 20.6% of classes still score below 55 (led by OrderService, CartService, and PricingEngine, all in App\Services).
- •SonarCloud tells a very different story on the same tree: 121 unresolved issues on PR #29 (13 bugs, 25 vulnerabilities, 83 code smells). The quality gate FAILED on new-code reliability (C), new-code security (C), AND new-code duplicated lines (4.3% vs a 3% threshold); only maintainability (A) and security-hotspot review (100%) passed.
- •The two most complex classes in the tree - the admin Product form (CCN 45) and the storefront checkout Show component (CCN 43) - are also two of the five least maintainable, a pattern that repeats across the build: complexity and low maintainability concentrate in the same handful of Livewire components and services rather than spreading evenly.
- •7.8K class-LOC across 204 classes (38.3 LOC/class average) with an 8.4% comment ratio. Order and Product are the most-coupled domain models (21 dependents each), consistent with a checkout/catalog-centric data model.
SonarCloud Analysis
PR #29
SonarCloud Analysis
Bugs
13
Vulnerabilities
25
Code Smells
83
Duplication
3.9%
Lines of Code
14,953
Reliability
C
13 bugs
Security
C
25 vulnerabilities
Maintainability
A
731min debt
Quality Gate Conditions
Top Issues by Rule (121 unresolved total)
Unused function parameters should be removed
Widespread across the API admin controllers (e.g. CollectionController) and several Livewire components - parameters accepted but never used inside the method body, mostly leftover from copy-pasted CRUD scaffolding.
Using pseudorandom number generators (PRNGs) is security-sensitive
The single largest VULNERABILITY category (25 of 25 total vulnerabilities): non-cryptographic `rand()`/`mt_rand()`-family calls used for things like admin search settings and discount-code suggestion generation, flagged even where the actual security impact is low.
Prefer tag over ARIA role
Storefront overlay components (cart drawer, search modal) use `role="dialog"` on a plain `<div>` instead of the native `<dialog>` element.
String literals should not be duplicated
Repeated date-format strings (e.g. `"Y-m-d\TH:i"` 3x in the Discount admin form) and route/status literals duplicated instead of centralized into constants.
Form inputs should have an associated label
Missing `id`/`<label for>` pairing on several admin form inputs (e.g. the product form) - the same class of accessibility gap our own manual QA found on the customer login/register pages, but SonarCloud catches it in admin Blade templates too.
Functions should not contain too many return statements
Guard-clause-heavy methods, notably the storefront checkout `Show` Livewire component, exceed the 3-return threshold.
The accessible name should be part of the visible label
Storefront product-card component's accessible name doesn't match its visible text.
HTML elements should have a language attribute
Several storefront account auth pages (e.g. forgot-password) are missing `lang`/`xml:lang` on `<html>`/`<body>`.
Cognitive Complexity of functions should not be too high
Concentrated in admin Livewire form components (e.g. Products\Form at complexity 24 vs. the 15 allowed) that branch heavily across create/edit/variant-matrix state.