Scan timing: clone 1.16s · analysis 10.31s · 0.4 MB · GitHub API rate-limit (preflight)
https://github.com/stenciljs/eslint-plugin
· scanned 2026-06-05 22:38 UTC (4 days, 7 hours ago)
· 10 languages
166 raw signals (32 security + 134 graph) 74th percentile · Typescript · small (2-20K LoC) System graph score 87 (lower by 9)
Last scanned 4 days, 7 hours ago · v2 · 91 actionable findings from 2 signal sources. 8 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
55.0 | 0.25 | 13.75 |
testing_score |
92.0 | 0.20 | 18.40 |
documentation_score |
77.0 | 0.15 | 11.55 |
practices_score |
77.0 | 0.15 | 11.55 |
code_quality |
77.4 | 0.10 | 7.74 |
| Overall | 1.00 | 78.0 |
All 343 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
rolldown.config.ts |
software | warning | rolldown.config.ts |
README.md |
software | healthy | README.md |
package.json |
software | healthy | package.json |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
package-lock.json |
software | healthy | package-lock.json |
LICENSE.md |
software | healthy | LICENSE.md |
tsconfig.json |
software | healthy | tsconfig.json |
vitest.config.ts |
software | warning | vitest.config.ts |
index.test.ts |
software | warning | tests/index.test.ts |
graceful-skip.test.ts |
software | healthy | tests/rules/graceful-skip.test.ts |
rule-tester-no-typeinfo.ts |
software | warning | tests/rules/rule-tester-no-typeinfo.ts |
rule-tester.ts |
software | warning | tests/rules/rule-tester.ts |
single-export.good.tsx |
software | healthy | tests/rules/single-export/single-export.good.tsx |
single-export.test.ts |
software | warning | tests/rules/single-export/single-export.test.ts |
single-export.wrong.tsx |
software | healthy | tests/rules/single-export/single-export.wrong.tsx |
methods-must-be-public.wrong.tsx |
software | healthy | tests/rules/methods-must-be-public/methods-must-be-public.w… |
methods-must-be-public.good.tsx |
software | healthy | tests/rules/methods-must-be-public/methods-must-be-public.g… |
methods-must-be-public.test.ts |
software | warning | tests/rules/methods-must-be-public/methods-must-be-public.t… |
own-methods-must-be-private.output.tsx |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
own-methods-must-be-private.wrong.tsx |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
own-methods-must-be-private.good.tsx |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
own-methods-must-be-private.test.ts |
software | warning | tests/rules/own-methods-must-be-private/own-methods-must-be… |
class-pattern.wrong.tsx |
software | healthy | tests/rules/class-pattern/class-pattern.wrong.tsx |
class-pattern.good.tsx |
software | healthy | tests/rules/class-pattern/class-pattern.good.tsx |
class-pattern.test.ts |
software | warning | tests/rules/class-pattern/class-pattern.test.ts |
element-type.test.ts |
software | warning | tests/rules/element-type/element-type.test.ts |
element-type.wrong.tsx |
software | healthy | tests/rules/element-type/element-type.wrong.tsx |
element-type.missing-type-annotation.tsx |
software | healthy | tests/rules/element-type/element-type.missing-type-annotati… |
element-type.good.tsx |
software | healthy | tests/rules/element-type/element-type.good.tsx |
element-type.explicit-any.tsx |
software | healthy | tests/rules/element-type/element-type.explicit-any.tsx |
props-must-be-public.wrong.tsx |
software | healthy | tests/rules/props-must-be-public/props-must-be-public.wrong… |
props-must-be-public.good.tsx |
software | healthy | tests/rules/props-must-be-public/props-must-be-public.good.… |
props-must-be-public.test.ts |
software | warning | tests/rules/props-must-be-public/props-must-be-public.test.… |
decorators-context.good.tsx |
software | healthy | tests/rules/decorators-context/decorators-context.good.tsx |
decorators-context.test.ts |
software | warning | tests/rules/decorators-context/decorators-context.test.ts |
decorators-context.wrong.tsx |
software | healthy | tests/rules/decorators-context/decorators-context.wrong.tsx |
ban-prefix.test.ts |
software | warning | tests/rules/ban-prefix/ban-prefix.test.ts |
ban-prefix.good.tsx |
software | healthy | tests/rules/ban-prefix/ban-prefix.good.tsx |
ban-prefix.wrong.tsx |
software | healthy | tests/rules/ban-prefix/ban-prefix.wrong.tsx |
reserved-member-names.test.ts |
software | warning | tests/rules/reserved-member-names/reserved-member-names.tes… |
reserved-member-names.wrong.tsx |
software | healthy | tests/rules/reserved-member-names/reserved-member-names.wro… |
reserved-member-names.good.tsx |
software | healthy | tests/rules/reserved-member-names/reserved-member-names.goo… |
dependency-suggestions.custom.ts |
software | warning | tests/rules/dependency-suggestions/dependency-suggestions.c… |
dependency-suggestions.test.ts |
software | warning | tests/rules/dependency-suggestions/dependency-suggestions.t… |
dependency-suggestions.good.ts |
software | warning | tests/rules/dependency-suggestions/dependency-suggestions.g… |
dependency-suggestions.bad.ts |
software | warning | tests/rules/dependency-suggestions/dependency-suggestions.b… |
async-methods.test.ts |
software | warning | tests/rules/async-methods/async-methods.test.ts |
async-methods.wrong.tsx |
software | healthy | tests/rules/async-methods/async-methods.wrong.tsx |
async-methods.good.tsx |
software | healthy | tests/rules/async-methods/async-methods.good.tsx |
strict-mutable.inline-valid.tsx |
software | healthy | tests/rules/strict-mutable/strict-mutable.inline-valid.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
MyComponent |
software | healthy | tests/rules/graceful-skip.test.ts:MyComponent |
SampleTag |
software | healthy | tests/rules/single-export/single-export.good.tsx:SampleTag |
SampleTag |
software | healthy | tests/rules/single-export/single-export.wrong.tsx:SampleTag |
SampleOtherTag |
software | healthy | tests/rules/single-export/single-export.wrong.tsx:SampleOth… |
SampleTag |
software | healthy | tests/rules/methods-must-be-public/methods-must-be-public.w… |
SampleTag |
software | healthy | tests/rules/methods-must-be-public/methods-must-be-public.g… |
SampleTag |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
SampleTag |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
SampleTag |
software | healthy | tests/rules/own-methods-must-be-private/own-methods-must-be… |
NoStartSampleTag |
software | healthy | tests/rules/class-pattern/class-pattern.wrong.tsx:NoStartSa… |
SampleTagComponent |
software | healthy | tests/rules/class-pattern/class-pattern.good.tsx:SampleTagC… |
TheSampleTag |
software | healthy | tests/rules/element-type/element-type.wrong.tsx:TheSampleTag |
TheSampleTag |
software | healthy | tests/rules/element-type/element-type.missing-type-annotati… |
TheSampleTag |
software | healthy | tests/rules/element-type/element-type.good.tsx:TheSampleTag |
TheSampleTag |
software | healthy | tests/rules/element-type/element-type.explicit-any.tsx:TheS… |
SampleTag |
software | healthy | tests/rules/props-must-be-public/props-must-be-public.wrong… |
SampleTag |
software | healthy | tests/rules/props-must-be-public/props-must-be-public.good.… |
SampleTag |
software | healthy | tests/rules/decorators-context/decorators-context.good.tsx:… |
SampleTag |
software | healthy | tests/rules/decorators-context/decorators-context.wrong.tsx… |
SampleTag |
software | healthy | tests/rules/ban-prefix/ban-prefix.good.tsx:SampleTag |
StandardTag |
software | healthy | tests/rules/ban-prefix/ban-prefix.good.tsx:StandardTag |
SampleTag |
software | healthy | tests/rules/ban-prefix/ban-prefix.wrong.tsx:SampleTag |
SampleTag |
software | healthy | tests/rules/reserved-member-names/reserved-member-names.wro… |
SampleTag |
software | healthy | tests/rules/reserved-member-names/reserved-member-names.goo… |
SampleTag |
software | healthy | tests/rules/async-methods/async-methods.wrong.tsx:SampleTag |
SampleTag |
software | healthy | tests/rules/async-methods/async-methods.good.tsx:SampleTag |
ExampleComponent |
software | healthy | tests/rules/strict-mutable/strict-mutable.inline-valid.tsx:… |
SampleTag |
software | healthy | tests/rules/strict-mutable/strict-mutable.good.tsx:SampleTag |
ExampleTag |
software | healthy | tests/rules/strict-mutable/strict-mutable.missing-assignmen… |
SampleTag |
software | healthy | tests/rules/strict-mutable/strict-mutable.wrong.tsx:SampleT… |
PlainClass |
software | healthy | tests/rules/strict-mutable/strict-mutable.non-component.tsx… |
SampleTag |
software | healthy | tests/rules/ban-default-true/ban-default-true.good.tsx:Samp… |
SampleTag |
software | healthy | tests/rules/ban-default-true/ban-default-true.wrong.tsx:Sam… |
SampleTag |
software | healthy | tests/rules/props-must-be-readonly/props-must-be-readonly.w… |
SampleTag |
software | healthy | tests/rules/props-must-be-readonly/props-must-be-readonly.g… |
SampleTag |
software | healthy | tests/rules/decorators-style/decorators-style.wrong.tsx:Sam… |
SampleTag |
software | healthy | tests/rules/decorators-style/decorators-style.good.tsx:Samp… |
SampleTag |
software | healthy | tests/rules/decorators-style/decorators-style.test.ts:Sampl… |
SampleTag |
software | healthy | tests/rules/own-props-must-be-private/own-props-must-be-pri… |
SampleTag |
software | healthy | tests/rules/own-props-must-be-private/own-props-must-be-pri… |
SampleTag |
software | healthy | tests/rules/own-props-must-be-private/own-props-must-be-pri… |
SampleTag |
software | healthy | tests/rules/render-returns-host/render-returns-host.good.ts… |
SampleTag |
software | healthy | tests/rules/render-returns-host/render-returns-host.wrong.t… |
SampleTag |
software | healthy | tests/rules/prefer-vdom-listener/prefer-vdom-listener.wrong… |
SampleTag |
software | healthy | tests/rules/prefer-vdom-listener/prefer-vdom-listener.good.… |
TheSampleTag |
software | healthy | tests/rules/enforce-slot-jsdoc/enforce-slot-jsdoc.no-jsdoc.… |
TheSampleTag |
software | healthy | tests/rules/enforce-slot-jsdoc/enforce-slot-jsdoc.good.tsx:… |
TheSampleTag |
software | healthy | tests/rules/enforce-slot-jsdoc/enforce-slot-jsdoc.hyphenate… |
TheSampleTag |
software | healthy | tests/rules/enforce-slot-jsdoc/enforce-slot-jsdoc.wrong.tsx… |
TheSampleTag |
software | healthy | tests/rules/enforce-slot-jsdoc/enforce-slot-jsdoc.hyphenate… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
helper |
software | healthy | tests/rules/ban-side-effects/ban-side-effects.good.ts:helper |
errors |
software | healthy | tests/rules/strict-boolean-conditions/strict-boolean-condit… |
isPrivate |
software | healthy | src/utils.ts:isPrivate |
isPrivateESTree |
software | healthy | src/utils.ts:isPrivateESTree |
getDecoratorList |
software | healthy | src/utils.ts:getDecoratorList |
hasStencilDecorator |
software | healthy | src/utils.ts:hasStencilDecorator |
getJSDocComments |
software | healthy | src/utils.ts:getJSDocComments |
getDecorator |
software | healthy | src/utils.ts:getDecorator |
parseDecorator |
software | healthy | src/utils.ts:parseDecorator |
decoratorName |
software | healthy | src/utils.ts:decoratorName |
isDecoratorNamed |
software | healthy | src/utils.ts:isDecoratorNamed |
stencilComponentContext |
software | healthy | src/utils.ts:stencilComponentContext |
getType |
software | healthy | src/utils.ts:getType |
getTextForTokenKind |
software | healthy | src/utils.ts:getTextForTokenKind |
checkName |
software | healthy | src/rules/reserved-member-names.ts:checkName |
getHtmlElementProperties |
software | healthy | src/rules/reserved-member-names.ts:getHtmlElementProperties |
isReservedMember |
software | healthy | src/rules/reserved-member-names.ts:isReservedMember |
instead |
software | healthy | src/rules/host-data-deprecated.ts:instead |
parseTag |
software | healthy | src/rules/element-type.ts:parseTag |
errorNode |
software | healthy | src/rules/single-export.ts:errorNode |
walk |
software | healthy | src/rules/strict-boolean-conditions.ts:walk |
cb |
software | healthy | src/rules/strict-boolean-conditions.ts:cb |
checkExpression |
software | healthy | src/rules/strict-boolean-conditions.ts:checkExpression |
parseOptions |
software | healthy | src/rules/strict-boolean-conditions.ts:parseOptions |
has |
software | healthy | src/rules/strict-boolean-conditions.ts:has |
getTypeFailure |
software | healthy | src/rules/strict-boolean-conditions.ts:getTypeFailure |
isBooleanUndefined |
software | healthy | src/rules/strict-boolean-conditions.ts:isBooleanUndefined |
handleUnion |
software | healthy | src/rules/strict-boolean-conditions.ts:handleUnion |
failureForKind |
software | healthy | src/rules/strict-boolean-conditions.ts:failureForKind |
triState |
software | healthy | src/rules/strict-boolean-conditions.ts:triState |
getKind |
software | healthy | src/rules/strict-boolean-conditions.ts:getKind |
is |
software | healthy | src/rules/strict-boolean-conditions.ts:is |
isObject |
software | healthy | src/rules/strict-boolean-conditions.ts:isObject |
binaryBooleanExpressionKind |
software | healthy | src/rules/strict-boolean-conditions.ts:binaryBooleanExpress… |
stringOr |
software | healthy | src/rules/strict-boolean-conditions.ts:stringOr |
isUnionType |
software | healthy | src/rules/strict-boolean-conditions.ts:isUnionType |
showLocation |
software | healthy | src/rules/strict-boolean-conditions.ts:showLocation |
showFailure |
software | healthy | src/rules/strict-boolean-conditions.ts:showFailure |
showExpectedTypes |
software | healthy | src/rules/strict-boolean-conditions.ts:showExpectedTypes |
showTypeFailure |
software | healthy | src/rules/strict-boolean-conditions.ts:showTypeFailure |
isTypeFlagSet |
software | healthy | src/rules/strict-boolean-conditions.ts:isTypeFlagSet |
checkStyle |
software | healthy | src/rules/decorators-style.ts:checkStyle |
getStyle |
software | healthy | src/rules/decorators-style.ts:getStyle |
getJSDoc |
software | healthy | src/rules/required-jsdoc.ts:getJSDoc |
getMutable |
software | healthy | src/rules/strict-mutable.ts:getMutable |
checkAssigment |
software | healthy | src/rules/strict-mutable.ts:checkAssigment |
getVars |
software | healthy | src/rules/no-unused-watch.ts:getVars |
checkWatch |
software | healthy | src/rules/no-unused-watch.ts:checkWatch |
isReservedAttribute |
software | healthy | src/rules/no-unused-watch.ts:isReservedAttribute |
calls |
software | healthy | src/rules/ban-side-effects.ts:calls |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
rules |
software | healthy | tests/rules |
single-export |
software | healthy | tests/rules/single-export |
methods-must-be-public |
software | healthy | tests/rules/methods-must-be-public |
own-methods-must-be-private |
software | healthy | tests/rules/own-methods-must-be-private |
class-pattern |
software | healthy | tests/rules/class-pattern |
element-type |
software | healthy | tests/rules/element-type |
props-must-be-public |
software | healthy | tests/rules/props-must-be-public |
decorators-context |
software | healthy | tests/rules/decorators-context |
ban-prefix |
software | healthy | tests/rules/ban-prefix |
reserved-member-names |
software | healthy | tests/rules/reserved-member-names |
dependency-suggestions |
software | healthy | tests/rules/dependency-suggestions |
async-methods |
software | healthy | tests/rules/async-methods |
strict-mutable |
software | healthy | tests/rules/strict-mutable |
ban-default-true |
software | healthy | tests/rules/ban-default-true |
props-must-be-readonly |
software | healthy | tests/rules/props-must-be-readonly |
decorators-style |
software | healthy | tests/rules/decorators-style |
ban-side-effects |
software | healthy | tests/rules/ban-side-effects |
own-props-must-be-private |
software | healthy | tests/rules/own-props-must-be-private |
render-returns-host |
software | healthy | tests/rules/render-returns-host |
prefer-vdom-listener |
software | healthy | tests/rules/prefer-vdom-listener |
enforce-slot-jsdoc |
software | healthy | tests/rules/enforce-slot-jsdoc |
no-unused-watch |
software | healthy | tests/rules/no-unused-watch |
required-prefix |
software | healthy | tests/rules/required-prefix |
required-jsdoc |
software | healthy | tests/rules/required-jsdoc |
host-data-deprecated |
software | healthy | tests/rules/host-data-deprecated |
strict-boolean-conditions |
software | healthy | tests/rules/strict-boolean-conditions |
configs |
software | healthy | tests/configs |
docs |
software | healthy | docs |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
rules |
software | healthy | src/rules |
configs |
software | healthy | src/configs |
| Label | Layer | Status | Path |
|---|---|---|---|
run-dev |
cicd | healthy | .github/workflows/release-orchestrator.yml |
run-production |
cicd | healthy | .github/workflows/release-orchestrator.yml |
publish |
cicd | healthy | .github/workflows/publish-npm.yml |
build_eslint_plugin |
cicd | healthy | .github/workflows/release-dev.yml |
get_dev_version |
cicd | healthy | .github/workflows/release-dev.yml |
publish_dev |
cicd | healthy | .github/workflows/release-dev.yml |
build_and_test |
cicd | healthy | .github/workflows/main.yml |
validate_bump |
cicd | healthy | .github/workflows/release-production.yml |
build_eslint_plugin |
cicd | healthy | .github/workflows/release-production.yml |
publish_production |
cicd | healthy | .github/workflows/release-production.yml |
build |
cicd | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::release-orchestrator |
cicd | healthy | .github/workflows/release-orchestrator.yml |
gha::publish-npm |
cicd | healthy | .github/workflows/publish-npm.yml |
gha::release-dev |
cicd | healthy | .github/workflows/release-dev.yml |
gha::main |
cicd | healthy | .github/workflows/main.yml |
gha::release-production |
cicd | healthy | .github/workflows/release-production.yml |
gha::build |
cicd | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-r0locv84 |
software | healthy | /tmp/repobility-clone-r0locv84 |
| Label | Layer | Status | Path |
|---|---|---|---|
port:11 |
network | healthy | .github/dependabot.yml |
This page is publicly accessible at:
https://repobility.com/scan/46609709-3f23-4bf1-bdcf-5c1d12a2d66a/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/46609709-3f23-4bf1-bdcf-5c1d12a2d66a/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.