RepoTrust

Leaderboard github.com

statusengine/interface

Angular based Web Interface for Statusengine

  • View repository ↗
  • PHP
  • ★ 16
  • commit f5e21cb07a6e
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

AI provenance

100%

explicit

Confidence
77%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

75/100

adequate

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

58/100

weak

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

AI provenance

100% explicit

Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals.

How the score is built

  • Explicitly attributed share100%
  • Unattributed share in AI-pace bursts0%
  • Estimated AI-generated share100%
  • AI tool configuration files1
  • Work sessions at AI pace2
  • Releases at AI pace0
  • Coding-style index (1.0+ means possible)0.00

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code2823,2142026-09-202026-09-22

Lines added per month all AI-attributed share

  1. 2026-0923,214 · 100% AI

Findings in AI-attributed lines vs the rest

From git blame: 17,886 lines trace to AI-attributed commits, 0 to others. Too few lines in one group for a fair comparison. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality3.58——
Security0.84——

Evidence by analyzer

Explicit AI attributionok26 items
attributed_commit_share
96.6%
attributed_commits
28
attributed_loc
23,214
attributed_loc_share
100.0%
commits
29
effective_loc
23,214
tools_detected
1
AI tool configurationok1 item
artifacts
1
earliest_adoption
2026-09-20
tools_configured
1
workflow_agents
0
Commit velocityok2 items
excluded_import_loc
7,980
flagged_loc
13,237
flagged_loc_share
86.9%
flagged_units
2
max_loc_per_hour
1,858.39
measured_loc
15,234
median_loc_per_hour
396.55
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
5
Release velocityok
flagged_releases
0
max_loc_per_day
0
releases
0
Coding styleok
count:assistant_voice
0
count:emoji_in_code
0
count:narrated_steps
0
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
0
files:narrated_steps
0
files:placeholder
0
index
0
lines_scanned
17,886
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0
per_kloc:narrated_steps
0
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
17,886
blame_failures
0
files_blamed
134
other_lines
0
quality:ai_findings
64
quality:ai_per_kloc
3.58
quality:other_findings
0
security:ai_findings
15
security:ai_per_kloc
0.84
security:other_findings
0

Code quality

75 adequate

Code quality is adequate: test-to-source ratio 0.26, no CI test run detected; 2% of function code in complex or long functions; 5% duplicated lines. Weakest area: testing.

How the score is built

  • Complexity95
  • Duplication72
  • Lint and smells79
  • Tests and CI58
  • Documentation65
  • Type safety99
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok2 items
complex_functions
2
function_nloc
8,025
functions
862
long_functions
0
many_param_functions
0
mean_ccn
2.67
p90_ccn
6
risky_nloc_share
1.7%
Duplication (jscpd)ok10 items
compared_lines
12,767
duplicated_lines
701
duplicated_share
5.5%
files
134
Lintok
category:correctness
64
findings
64
scanned_lines
17,821
weighted_findings
16.75
Tests and CIok2 items
  • CI config: .github/workflows/ci.yml .github/workflows/ci.yml
  • CI config: .github/workflows/release.yml .github/workflows/release.yml
check:ci_present
yes
check:ci_runs_lint
no
check:ci_runs_tests
no
check:has_tests
yes
check:test_ratio
no
check:tests_cochange
yes
ci_files
2
cochange_commits
22
cochange_share
77.3%
source_lines
17,886
test_lines
4,607
test_ratio
0.26
Documentationok2 items
  • README.md README.md
  • LICENSE LICENSE
check:changelog
no
check:contributing
no
check:license
yes
check:readme
yes
readme_lines
273
Type safetyok1 item
  • TypeScript strict type checking: frontend/tsconfig.json frontend/tsconfig.json
check:low_escape_density
yes
check:strict_config
no
escapes
0
escapes_per_kloc
0

Security

58 weak

Security posture is weak: 51 known vulnerabilities in 18 dependencies; 2 high-severity SAST findings; 9 high-severity workflow issues. Weakest area: dependencies.

How the score is built

  • Secrets100
  • Static analysis (SAST)87
  • Vulnerable dependencies17
  • CI workflows18
  • Security posture40
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
26
declared
26
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
0
secrets_nonprod
0
Static analysis (opengrep)ok
findings
16
findings_high
2
findings_low
0
findings_medium
14
parse_errors
3
scanned_lines
17,821
weighted_findings
7.10
Dependencies (osv-scanner)ok
penalty
106
vulnerabilities
51
vulnerable_packages
18
vulns_critical
1
vulns_high
18
vulns_low
4
vulns_medium
27
vulns_unknown
1
CI workflows (zizmor)ok
findings
12
findings_high
9
findings_low
0
findings_medium
3
penalty
104.40
workflows
2
Security postureok2 items
  • Security policy: docs/security.md docs/security.md
  • tools/a11y/package.json has no lockfile alongside it (unpinned dependencies) tools/a11y/package.json
check:dependency_updates
no
check:lockfiles
no
check:security_policy
yes
check:signed_commits
no
signed_commit_share
0.0%
unpinned_manifests
1
Release downloadsok3 items
binary_assets
2
signals
2
suspicious
0

Findings

1 critical29 high46 medium67 low

SeverityRuleLocationMessageTool
critical osv/GHSA-67c8-pqhq-4rmx frontend/package-lock.json [email protected] (npm) is affected by GHSA-67c8-pqhq-4rmx Dependencies (osv-scanner)
high zizmor/unpinned-uses .github/workflows/ci.yml:16 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:30 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:38 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:20 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:27 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/cache-poisoning .github/workflows/release.yml:32 runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:32 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/template-injection .github/workflows/release.yml:44 code injection via template expansion [confidence high] CI workflows (zizmor)
high zizmor/template-injection .github/workflows/release.yml:49 code injection via template expansion [confidence high] CI workflows (zizmor)
high opengrep/javascript.lang.security.detect-insecure-websocket deploy/docker-compose.yml:47 Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] Static analysis (opengrep)
high osv/GHSA-22jm-h49p-29qw frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-22jm-h49p-29qw Dependencies (osv-scanner)
high osv/GHSA-27r3-jxmh-p828 frontend/package-lock.json [email protected] (npm) is affected by GHSA-27r3-jxmh-p828 Dependencies (osv-scanner)
high osv/GHSA-2m5v-pch6-74hx frontend/package-lock.json [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx Dependencies (osv-scanner)
high osv/GHSA-2m5v-pch6-74hx frontend/package-lock.json [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx Dependencies (osv-scanner)
high osv/GHSA-46jr-4wx8-v453 frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-46jr-4wx8-v453 Dependencies (osv-scanner)
high osv/GHSA-4w7w-5xrc-9h26 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4w7w-5xrc-9h26 Dependencies (osv-scanner)
high osv/GHSA-57xq-rjx2-v5xh frontend/package-lock.json @angular/[email protected] (npm) is affected by GHSA-57xq-rjx2-v5xh Dependencies (osv-scanner)
high osv/GHSA-587h-7wmj-h5pm frontend/package-lock.json [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm Dependencies (osv-scanner)
high osv/GHSA-62vg-58rm-qff7 frontend/package-lock.json @angular/[email protected] (npm) is affected by GHSA-62vg-58rm-qff7 Dependencies (osv-scanner)
high osv/GHSA-68fv-2mgg-jv7q frontend/package-lock.json [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q Dependencies (osv-scanner)
high osv/GHSA-6qxp-vccf-f47h frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-6qxp-vccf-f47h Dependencies (osv-scanner)
high osv/GHSA-f897-62hf-6gxq frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-f897-62hf-6gxq Dependencies (osv-scanner)
high osv/GHSA-ff3f-86qr-9cv3 frontend/package-lock.json @angular/[email protected] (npm) is affected by GHSA-ff3f-86qr-9cv3 Dependencies (osv-scanner)
high osv/GHSA-mrhx-c7xc-m3w5 frontend/package-lock.json [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 Dependencies (osv-scanner)
high osv/GHSA-qrxm-fqhp-jwvm frontend/package-lock.json [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm Dependencies (osv-scanner)
high osv/GHSA-qrxm-fqhp-jwvm frontend/package-lock.json [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm Dependencies (osv-scanner)
high osv/GHSA-xjj6-f33q-929c frontend/package-lock.json [email protected] (npm) is affected by GHSA-xjj6-f33q-929c Dependencies (osv-scanner)
high osv/GHSA-xjj6-f33q-929c frontend/package-lock.json [email protected] (npm) is affected by GHSA-xjj6-f33q-929c Dependencies (osv-scanner)
high opengrep/go.lang.security.filepath-clean-misuse internal/httpapi/ui.go:60 `Clean` is not intended to sanitize against path traversal attacks. This function is for finding the shortest path name equivalent to the given input. Using `Clean` to sanitize file reads may expose this application to path traversal... Static analysis (opengrep)
medium opengrep/python.lang.correctness.common-mistakes.string-concat-in-list tools/dev/seed-perfdata.py:70 Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list? Lint
medium zizmor/excessive-permissions .github/workflows/ci.yml:13 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/ci.yml:16 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/release.yml:20 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium osv/GHSA-3g3m-2fjr-6pw4 frontend/package-lock.json [email protected] (npm) is affected by GHSA-3g3m-2fjr-6pw4 Dependencies (osv-scanner)
medium osv/GHSA-46wx-v44x-9hh2 frontend/package-lock.json [email protected] (npm) is affected by GHSA-46wx-v44x-9hh2 Dependencies (osv-scanner)
medium osv/GHSA-4h7h-rv7c-7m2v frontend/package-lock.json [email protected] (npm) is affected by GHSA-4h7h-rv7c-7m2v Dependencies (osv-scanner)
medium osv/GHSA-4m76-xfj5-7975 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4m76-xfj5-7975 Dependencies (osv-scanner)
medium osv/GHSA-4qv8-2p9j-2685 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4qv8-2p9j-2685 Dependencies (osv-scanner)
medium osv/GHSA-4qv8-2p9j-2685 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4qv8-2p9j-2685 Dependencies (osv-scanner)
medium osv/GHSA-55wc-3pg8-jfw6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-55wc-3pg8-jfw6 Dependencies (osv-scanner)
medium osv/GHSA-5r4p-p66f-jhc7 frontend/package-lock.json [email protected] (npm) is affected by GHSA-5r4p-p66f-jhc7 Dependencies (osv-scanner)
medium osv/GHSA-698v-4r3x-3vcv frontend/package-lock.json [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv Dependencies (osv-scanner)
medium osv/GHSA-6pq8-jhm2-2vcw frontend/package-lock.json [email protected] (npm) is affected by GHSA-6pq8-jhm2-2vcw Dependencies (osv-scanner)
medium osv/GHSA-6prh-2h8m-c8cw frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-6prh-2h8m-c8cw Dependencies (osv-scanner)
medium osv/GHSA-9fm3-97px-rjf6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-9fm3-97px-rjf6 Dependencies (osv-scanner)
medium osv/GHSA-9fm3-97px-rjf6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-9fm3-97px-rjf6 Dependencies (osv-scanner)
medium osv/GHSA-f72v-6w45-q472 frontend/package-lock.json [email protected] (npm) is affected by GHSA-f72v-6w45-q472 Dependencies (osv-scanner)
medium osv/GHSA-g3hv-75wg-m249 frontend/package-lock.json [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 Dependencies (osv-scanner)
medium osv/GHSA-h7mg-cq63-vhpq frontend/package-lock.json [email protected] (npm) is affected by GHSA-h7mg-cq63-vhpq Dependencies (osv-scanner)
medium osv/GHSA-jpvv-r467-5p4w frontend/package-lock.json @hono/[email protected] (npm) is affected by GHSA-jpvv-r467-5p4w Dependencies (osv-scanner)
medium osv/GHSA-qv5m-9pm6-hqp3 frontend/package-lock.json @hono/[email protected] (npm) is affected by GHSA-qv5m-9pm6-hqp3 Dependencies (osv-scanner)
medium osv/GHSA-qxg6-89mg-rqv8 frontend/package-lock.json @vitest/[email protected] (npm) is affected by GHSA-qxg6-89mg-rqv8 Dependencies (osv-scanner)
medium osv/GHSA-r825-w8mm-5pxw frontend/package-lock.json [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw Dependencies (osv-scanner)
medium osv/GHSA-rmxm-3fg6-px4f frontend/package-lock.json @hono/[email protected] (npm) is affected by GHSA-rmxm-3fg6-px4f Dependencies (osv-scanner)
medium osv/GHSA-rq7h-c2jc-7f22 frontend/package-lock.json [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 Dependencies (osv-scanner)
medium osv/GHSA-rvq5-wwqv-78pq frontend/package-lock.json @modelcontextprotocol/[email protected] (npm) is affected by GHSA-rvq5-wwqv-78pq Dependencies (osv-scanner)
medium osv/GHSA-rxp7-6hxx-x8q5 frontend/package-lock.json [email protected] (npm) is affected by GHSA-rxp7-6hxx-x8q5 Dependencies (osv-scanner)
medium osv/GHSA-w74x-v6f9-j3xg frontend/package-lock.json [email protected] (npm) is affected by GHSA-w74x-v6f9-j3xg Dependencies (osv-scanner)
medium osv/GHSA-wjr9-j795-jxcr frontend/package-lock.json [email protected] (npm) is affected by GHSA-wjr9-j795-jxcr Dependencies (osv-scanner)
medium osv/GHSA-xp26-3454-mjgp frontend/package-lock.json @vitest/[email protected] (npm) is affected by GHSA-xp26-3454-mjgp Dependencies (osv-scanner)
medium osv/GO-2026-5932 go.mod golang.org/x/[email protected] (Go) is affected by GO-2026-5932 Dependencies (osv-scanner)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/commands/audit.go:69 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.xss.no-fprintf-to-responsewriter internal/events/sse.go:116 Detected 'Fprintf' or similar writing to 'http.ResponseWriter'. This bypasses HTML escaping that prevents cross-site scripting vulnerabilities. Instead, use the 'html/template' package to render data to users. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.shared-url-struct-mutation internal/events/worker.go:225 Shared URL struct may have been accidentally mutated. Ensure that this behavior is intended. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.crypto.math-random-used internal/events/worker.go:9 Do not use `math/rand`. Use `crypto/rand` instead. [confidence medium] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.net.cookie-missing-secure internal/httpapi/handlers_auth.go:124 A session cookie was detected without setting the 'Secure' flag. The 'secure' flag for cookies prevents the client from transmitting the cookie over insecure channels such as HTTP. Set the 'Secure' flag by setting 'Secure' to 'true' in... Static analysis (opengrep)
medium opengrep/go.lang.security.audit.net.cookie-missing-secure internal/httpapi/handlers_auth.go:136 A session cookie was detected without setting the 'Secure' flag. The 'secure' flag for cookies prevents the client from transmitting the cookie over insecure channels such as HTTP. Set the 'Secure' flag by setting 'Secure' to 'true' in... Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/hosts.go:77 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/logentries.go:56 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/problems.go:169 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/services.go:67 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/summary.go:141 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/summary.go:171 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/summary.go:225 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
medium opengrep/go.lang.security.audit.database.string-formatted-query internal/repository/mysql/summary.go:272 String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low] Static analysis (opengrep)
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/bulk-actions.ts:33 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/bulk-actions.ts:33 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/command-fields.ts:19 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/command-fields.ts:19 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/command-fields.ts:95 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/command-fields.ts:95 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/object-settings.ts:36 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/commands/object-settings.ts:36 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/dashboard/kpi-tile.ts:19 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/dashboard/kpi-tile.ts:19 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/errors/forbidden.ts:14 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/errors/forbidden.ts:14 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/errors/not-found.ts:9 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/errors/not-found.ts:9 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/history/history-nav.ts:10 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/history/history-nav.ts:10 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/history/history-scope.ts:21 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/history/history-scope.ts:21 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/services/metrics-panel.ts:40 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/features/services/metrics-panel.ts:40 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/data-table.ts:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/data-table.ts:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/data-table.ts:81 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/data-table.ts:81 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/dialog.ts:29 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/dialog.ts:29 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/fact-list.ts:23 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/fact-list.ts:23 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/filter-toggle.ts:17 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/filter-toggle.ts:17 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/hour-bars.ts:29 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/hour-bars.ts:29 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/icon.ts:108 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/icon.ts:108 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/metric-chart.ts:58 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/metric-chart.ts:58 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/metric-chart.ts:90 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/metric-chart.ts:90 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/not-built-yet.ts:15 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/not-built-yet.ts:15 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/page-header.ts:10 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/page-header.ts:10 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/pagination.ts:14 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/pagination.ts:14 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/plugin-output.ts:21 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/plugin-output.ts:21 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/range-picker.ts:27 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/range-picker.ts:27 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/row-flags.ts:25 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/row-flags.ts:25 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-badge.ts:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-badge.ts:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-filter.ts:17 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-filter.ts:17 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-strip.ts:31 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/state-strip.ts:31 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toast-stack.ts:25 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toast-stack.ts:25 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toast-stack.ts:64 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toast-stack.ts:64 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toolbar.ts:13 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator frontend/src/app/shared/ui/toolbar.ts:13 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command tools/release/publish-test.sh:93 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low osv/GHSA-333x-w4r6-6crp frontend/package-lock.json [email protected] (npm) is affected by GHSA-333x-w4r6-6crp Dependencies (osv-scanner)
low osv/GHSA-3gg2-335m-rxc6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-3gg2-335m-rxc6 Dependencies (osv-scanner)
low osv/GHSA-9jrq-w75r-8gcw frontend/package-lock.json [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw Dependencies (osv-scanner)
low osv/GHSA-xhq7-xmqj-769h frontend/package-lock.json [email protected] (npm) is affected by GHSA-xhq7-xmqj-769h Dependencies (osv-scanner)

Tools and coverage

Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.

AnalyzerPillarStatusVersionFindingsNote
AI tool configurationAI provenanceoksignatures-v10
Explicit AI attributionAI provenanceoksignatures-v10
Release velocityAI provenanceokprov-40
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-40
Findings in AI-written linesAI provenanceokgit-blame0
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b41464
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityokzizmor 1.32.012
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.151
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b41416
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.10

Score history

Scores from different scoring versions aren't directly comparable.

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-14f5e21cb07a6eprov-5+qual-2+sec-2100%7558
2026-11-14f5e21cb07a6eprov-4+qual-2+sec-2100%7558

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/statusengine/interface/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/statusengine/interface/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/statusengine/interface/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/statusengine/interface/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/statusengine/interface/security.svg)](https://repotrust.synapticcyber.com/r/github.com/statusengine/interface/)
Full text report

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 100 explicit 77% 100%
Code quality 75 adequate 90% 100%
Security 58 weak 85% 100%

AI provenance

Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals.

  • Explicitly attributed share (lower bound): 100.0%
  • Unattributed share in AI-consistent velocity bursts: 0.0%
  • Estimated AI-generated share: 100.0%
AI tool Attributed commits Lines added
Claude Code 28 23,214
  • AI tooling configured in repo: claude-code

Current source lines last changed by AI-attributed commits: 17,886 of 17,886.

Too few lines in one group to compare finding densities.

Month Lines added Attributed to AI
2026-09 23,214 100%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (f5e21cb07a6e)
  • Claude Code: trailer 'Co-Authored-By: Claude' (fa12e9525f77)
  • Claude Code: trailer 'Co-Authored-By: Claude' (319e2abcf1fc)
  • Claude Code: trailer 'Co-Authored-By: Claude' (a22210bee4f6)
  • Claude Code: trailer 'Co-Authored-By: Claude' (36340b92d10d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (b2045d6c2f24)
  • Claude Code: trailer 'Co-Authored-By: Claude' (c9effaece77b)
  • Claude Code: trailer 'Co-Authored-By: Claude' (c2757f59fc82)
  • Claude Code: trailer 'Co-Authored-By: Claude' (e60b081a2cb5)
  • Claude Code: trailer 'Co-Authored-By: Claude' (f3cdf4a63229)
  • Claude Code: trailer 'Co-Authored-By: Claude' (2cf2b8c818d0)
  • Claude Code: trailer 'Co-Authored-By: Claude' (9d21c1b9e5e9)
  • Claude Code: trailer 'Co-Authored-By: Claude' (6bf2cf77321d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (3e110a6c1b40)
  • Claude Code: trailer 'Co-Authored-By: Claude' (1b897783c226)

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is adequate: test-to-source ratio 0.26, no CI test run detected; 2% of function code in complex or long functions; 5% duplicated lines. Weakest area: testing.

Area Score
Complexity (lizard) 95
Duplication 72
Code smells (Opengrep) 79
Tests and CI 58
Documentation 65
Type safety 99
Process (Scorecard review/maintenance) n/a
  • Functions: 862; mean complexity 2.7, 90th percentile 6; 2 complex and 0 long functions
  • Duplicated lines: 5.5% of 12,767 compared
  • Tests: 4,607 test lines for 17,886 source lines (ratio 0.26); CI test commands: none detected; 77% of recent source commits also change tests
  • Docs missing or thin: contributing, changelog

Most complex functions:

Security

Security posture is weak: 51 known vulnerabilities in 18 dependencies; 2 high-severity SAST findings; 9 high-severity workflow issues. Weakest area: dependencies.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 87
Vulnerable dependencies (OSV) 17
CI workflows (zizmor) 18
Posture (policy, updates, signing, lockfiles) 40
OpenSSF Scorecard n/a
  • Known vulnerabilities: 51 in 18 packages (critical 1, high 18, medium 27, low 4)

  • Posture checks passed: security policy; missing: dependency updates, signed commits, lockfiles

Top findings

Severity Finding Location
critical osv/GHSA-67c8-pqhq-4rmx: [email protected] (npm) is affected by GHSA-67c8-pqhq-4rmx frontend/package-lock.json
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] deploy/docker-compose.yml:47
high opengrep/go.lang.security.filepath-clean-misuse: Clean is not intended to sanitize against path traversal attacks. This function is for finding the shortest path name equivalent to the given input. Using Clean to sanitize file reads may expose this application to path traversal attacks, where an attacker could access arbitrary files on the ser [confidence medium] internal/httpapi/ui.go:60
high osv/GHSA-57xq-rjx2-v5xh: @angular/[email protected] (npm) is affected by GHSA-57xq-rjx2-v5xh frontend/package-lock.json
high osv/GHSA-62vg-58rm-qff7: @angular/[email protected] (npm) is affected by GHSA-62vg-58rm-qff7 frontend/package-lock.json
high osv/GHSA-ff3f-86qr-9cv3: @angular/[email protected] (npm) is affected by GHSA-ff3f-86qr-9cv3 frontend/package-lock.json
high osv/GHSA-22jm-h49p-29qw: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-22jm-h49p-29qw frontend/package-lock.json
high osv/GHSA-46jr-4wx8-v453: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-46jr-4wx8-v453 frontend/package-lock.json
high osv/GHSA-6qxp-vccf-f47h: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-6qxp-vccf-f47h frontend/package-lock.json
high osv/GHSA-f897-62hf-6gxq: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-f897-62hf-6gxq frontend/package-lock.json
high osv/GHSA-27r3-jxmh-p828: [email protected] (npm) is affected by GHSA-27r3-jxmh-p828 frontend/package-lock.json
high osv/GHSA-68fv-2mgg-jv7q: [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q frontend/package-lock.json
high osv/GHSA-2m5v-pch6-74hx: [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx frontend/package-lock.json
high osv/GHSA-qrxm-fqhp-jwvm: [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm frontend/package-lock.json
high osv/GHSA-xjj6-f33q-929c: [email protected] (npm) is affected by GHSA-xjj6-f33q-929c frontend/package-lock.json
high osv/GHSA-2m5v-pch6-74hx: [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx frontend/package-lock.json
high osv/GHSA-4w7w-5xrc-9h26: [email protected] (npm) is affected by GHSA-4w7w-5xrc-9h26 frontend/package-lock.json
high osv/GHSA-qrxm-fqhp-jwvm: [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm frontend/package-lock.json
high osv/GHSA-xjj6-f33q-929c: [email protected] (npm) is affected by GHSA-xjj6-f33q-929c frontend/package-lock.json
high osv/GHSA-587h-7wmj-h5pm: [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm frontend/package-lock.json
high osv/GHSA-mrhx-c7xc-m3w5: [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 frontend/package-lock.json
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:16
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:30
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:38
high zizmor/template-injection: code injection via template expansion [confidence high] .github/workflows/release.yml:44

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

  • Source lines: 17,886; test lines: 4,607
Language Lines
Go 12,985
TypeScript 8,475
Shell 494
JavaScript 389
Python 85
SQL 65