Repository Analysis

iflytek/skillhub

Self-hosted, open-source agent skill registry for enterprises. Publish & version skill packages, govern with RBAC and audit logs, deploy on-premise with Docker or Kubernetes.

4.6 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of iflytek/skillhub, a Java project with 4,840 GitHub stars. SynthScan v2.0 examined 226,337 lines of code across 1806 source files, recording 325 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 4.6 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

4.6
Adjusted Score
4.6
Raw Score
100%
Time Factor
2026-08-01
Last Push
4.8K
Stars
Java
Language
226.3K
Lines of Code
1.8K
Files
325
Pattern Hits
2026-08-02
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 58HIGH 2MEDIUM 76LOW 189

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 325 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators58 hits · 578 pts
SeverityFileLineSnippetContext
CRITICAL…ek/skillhub/infra/scanner/SkillScannerServiceTest.java21 org.assertj.core.api.Assertions.assertThatThrownBy(() ->CODE
CRITICAL…ek/skillhub/infra/scanner/SkillScannerServiceTest.java24 org.assertj.core.api.Assertions.assertThatThrownBy(() ->CODE
CRITICAL…ek/skillhub/infra/scanner/SkillScannerServiceTest.java27 org.assertj.core.api.Assertions.assertThatThrownBy(() ->CODE
CRITICAL…ek/skillhub/infra/scanner/SkillScannerServiceTest.java30 org.assertj.core.api.Assertions.assertThatThrownBy(() ->CODE
CRITICAL…a/com/iflytek/skillhub/infra/http/WebClientConfig.java27 reactor.netty.http.client.HttpClient reactorClient = reactor.netty.http.client.HttpClient.create()CODE
CRITICAL…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java29 new com.iflytek.skillhub.auth.session.PlatformSessionService(),CODE
CRITICAL…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java38 var principal = new com.iflytek.skillhub.auth.rbac.PlatformPrincipal(CODE
CRITICAL…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java78 new com.iflytek.skillhub.auth.session.PlatformSessionService(),CODE
CRITICAL…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java88 var principal = new com.iflytek.skillhub.auth.rbac.PlatformPrincipal(CODE
CRITICAL…tek/skillhub/auth/oauth/CustomOidcUserServiceTest.java180 new org.springframework.security.oauth2.core.OAuth2Error("access_denied")));CODE
CRITICAL…tek/skillhub/auth/identity/IdentityBindingService.java75 throw new com.iflytek.skillhub.auth.oauth.AccountPendingException();CODE
CRITICAL…tek/skillhub/auth/identity/IdentityBindingService.java78 throw new com.iflytek.skillhub.auth.oauth.AccountDisabledException();CODE
CRITICAL…tek/skillhub/auth/identity/IdentityBindingService.java101 throw new com.iflytek.skillhub.auth.oauth.AccountDisabledException();CODE
CRITICAL…tek/skillhub/auth/identity/IdentityBindingService.java103 throw new com.iflytek.skillhub.auth.oauth.AccountPendingException();CODE
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java85 .willReturn(List.of(new com.iflytek.skillhub.domain.namespace.NamespaceMember(1L, "owner-1", NamespaceRoCODE
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java134 mockMvc.perform(org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put("/api/v1/namespaces/teamCODE
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java182 .willReturn(new org.springframework.data.domain.PageImpl<>(List.of(), org.springframework.data.domain.PaSTRING
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java200 .willReturn(new org.springframework.data.domain.PageImpl<>(List.of(member), org.springframework.data.domSTRING
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java266 mockMvc.perform(org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete("/api/v1/namespaces/tSTRING
CRITICAL…skillhub/controller/NamespacePortalControllerTest.java286 mockMvc.perform(org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put("/api/v1/namespaces/teamSTRING
CRITICAL…ytek/skillhub/controller/GovernanceControllerTest.java182 mockMvc.perform(org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post("/api/v1/governance/notCODE
CRITICAL…ytek/skillhub/controller/GovernanceControllerTest.java183 .with(org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessorsCODE
CRITICAL…m/iflytek/skillhub/controller/SkillControllerTest.java176 new com.iflytek.skillhub.domain.skill.service.SkillLifecycleProjectionService.VersionProjection(CODE
CRITICAL…m/iflytek/skillhub/controller/SkillControllerTest.java178 new com.iflytek.skillhub.domain.skill.service.SkillLifecycleProjectionService.VersionProjection(CODE
CRITICAL…skillhub/controller/NamespaceWorkflowContractTest.java211 org.springframework.test.util.ReflectionTestUtils.setField(namespace, "id", id);CODE
CRITICAL…skillhub/controller/NamespaceWorkflowContractTest.java215 org.springframework.test.util.ReflectionTestUtils.setField(member, "id", id);CODE
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java129 var token = new com.iflytek.skillhub.auth.entity.ApiToken("user-42", "cli", "sk_123456", "hash-1", "[]");STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java130 org.springframework.test.util.ReflectionTestUtils.setField(token, "id", 7L);STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java131 org.springframework.test.util.ReflectionTestUtils.setField(token, "createdAt", java.time.Instant.parse("2026-03-STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java159 new com.iflytek.skillhub.auth.entity.ApiToken("user-42", "cli", "sk_123456", "hash-1", "[]"),STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java160 new com.iflytek.skillhub.auth.entity.ApiToken("user-42", "deploy", "sk_654321", "hash-2", "[]")STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java167 org.springframework.test.util.ReflectionTestUtils.setField(first, "id", 7L);STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java168 org.springframework.test.util.ReflectionTestUtils.setField(first, "createdAt", java.time.Instant.parse("2026-03-STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java169 org.springframework.test.util.ReflectionTestUtils.setField(second, "id", 8L);STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java170 org.springframework.test.util.ReflectionTestUtils.setField(second, "createdAt", java.time.Instant.parse("2026-03STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java195 var token = new com.iflytek.skillhub.auth.entity.ApiToken("user-42", "cli", "sk_123456", "hash-1", "[]");STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java196 org.springframework.test.util.ReflectionTestUtils.setField(token, "id", 7L);STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java197 org.springframework.test.util.ReflectionTestUtils.setField(token, "createdAt", java.time.Instant.parse("2026-03-STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java225 List.of(new com.iflytek.skillhub.auth.entity.ApiToken("user-42", "cli", "sk_123456", "hash-1", "[]")),STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java230 org.springframework.test.util.ReflectionTestUtils.setField(token, "id", 7L);STRING
CRITICAL…m/iflytek/skillhub/controller/TokenControllerTest.java231 org.springframework.test.util.ReflectionTestUtils.setField(token, "createdAt", java.time.Instant.parse("2026-03-STRING
CRITICAL…ek/skillhub/controller/ReviewPortalControllerTest.java216 .willThrow(new com.iflytek.skillhub.domain.shared.exception.DomainForbiddenException("review.no_permissiCODE
CRITICAL…ek/skillhub/controller/ReviewPortalControllerTest.java294 .andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.header()CODE
CRITICAL…ub/controller/portal/SkillLifecycleControllerTest.java351 org.springframework.test.util.ReflectionTestUtils.setField(namespace, "id", id);CODE
CRITICAL…ub/controller/portal/SkillLifecycleControllerTest.java355 org.springframework.test.util.ReflectionTestUtils.setField(skill, "id", id);CODE
CRITICAL…ub/controller/portal/SkillLifecycleControllerTest.java359 org.springframework.test.util.ReflectionTestUtils.setField(version, "id", id);CODE
CRITICAL…portal/SkillApprovalVisibilityFlowIntegrationTest.java136 .thenReturn(List.of(new com.iflytek.skillhub.domain.namespace.NamespaceMember(CODE
CRITICAL…ek/skillhub/controller/cli/CliSkillControllerTest.java138 new com.iflytek.skillhub.dto.cli.CliResolveResponse(CODE
CRITICAL…ek/skillhub/controller/cli/CliSkillControllerTest.java157 new com.iflytek.skillhub.dto.cli.CliResolveResponse(CODE
CRITICAL…ek/skillhub/controller/cli/CliSkillControllerTest.java214 )).willReturn(new com.iflytek.skillhub.dto.cli.CliDeleteResponse(CODE
CRITICAL…flytek/skillhub/service/SkillSearchAppServiceTest.java118 new com.iflytek.skillhub.domain.shared.exception.DomainBadRequestException(CODE
CRITICAL…va/com/iflytek/skillhub/config/SkillScannerConfig.java46 reactor.netty.http.client.HttpClient reactorClient = reactor.netty.http.client.HttpClient.create(connectionProviCODE
CRITICAL…iflytek/skillhub/service/SkillLifecycleAppService.java192 com.iflytek.skillhub.domain.skill.SkillVisibility.valueOf(targetVisibility),CODE
CRITICAL…llhub/domain/skill/service/SkillGovernanceService.java283 eventPublisher.publishEvent(new com.iflytek.skillhub.domain.event.SkillVersionYankedEvent(CODE
CRITICALdocs/superpowers/plans/2026-03-12-phase4-ops-polish.md2537 var ex = new com.iflytek.skillhub.domain.shared.exception.DomainBadRequestException("bad");CODE
CRITICALdocs/superpowers/plans/2026-03-12-phase4-ops-polish.md2544 var ex = new com.iflytek.skillhub.domain.shared.exception.DomainForbiddenException("forbidden");CODE
CRITICAL…superpowers/plans/2026-03-11-phase1-foundation-auth.md2530 return new org.springframework.security.oauth2.core.user.DefaultOAuth2User(CODE
CRITICAL…rs/specs/2026-03-12-phase3-review-cli-social-design.md611 SELECT new com.iflytek.skillhub.domain.skill.RatingStats(CODE
Decorative Section Separators72 hits · 234 pts
SeverityFileLineSnippetContext
MEDIUMweb/e2e/search-page-full.spec.ts29// ─── Search Input ────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-page-full.spec.ts103// ─── Sort / Filter ────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-page-full.spec.ts173// ─── Skill Count ──────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-page-full.spec.ts213// ─── Search Results ───────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-page-full.spec.ts266// ─── Pagination ───────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-page-full.spec.ts300// ─── Security ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts107// ─── Card Display After Search ────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts160// ─── Card Content & Search Relevance ─────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts188// ─── Card Click Navigation ────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts236// ─── Sort Switching Updates Cards ────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts275// ─── Pagination Card Updates ──────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts315// ─── Loading State ────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts331// ─── Responsive Layout ────────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts392// ─── Keyboard Navigation ──────────────────────────────────────────────────────COMMENT
MEDIUMweb/e2e/search-card-interaction.spec.ts435// ─── Error Handling ───────────────────────────────────────────────────────────COMMENT
MEDIUMcharts/skillhub/values.yaml1# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml3# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml5# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml7# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml62# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml64# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml68# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml70# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml79# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml81# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml84# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml86# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml28# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml30# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml46# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml48# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml100# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml102# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml186# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml188# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml278# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml280# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml363# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml365# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml420# ============================================================================COMMENT
MEDIUMcharts/skillhub/values.yaml422# ============================================================================COMMENT
MEDIUM…iflytek/skillhub/domain/user/ProfileReviewService.java126 // ── Private helpers ──────────────────────────────────────────────COMMENT
MEDIUMscripts/tests/publish-cli-test.sh219# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh221# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh229# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh231# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh240# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh242# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh252# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh254# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh262# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh264# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh276# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh278# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh296# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh298# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh337# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh339# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh350# ----------------------------------------------------------------------------COMMENT
MEDIUMscripts/tests/publish-cli-test.sh352# ----------------------------------------------------------------------------COMMENT
12 more matches not shown…
Hyper-Verbose Identifiers99 hits · 102 pts
SeverityFileLineSnippetContext
LOWweb/e2e/role-access-control.spec.ts5async function expectLeaveForbiddenRoute(page: Page, route: string) {CODE
LOWweb/e2e/dashboard-routes.spec.ts5async function expectRouteOpenOrRedirected(page: Page, route: string, heading: string) {CODE
LOWweb/e2e/promotions-review.spec.ts99 async function installPromotionRouteMock(page: Page, expectedSignatures: string[]) {CODE
LOWweb/e2e/promotions-review.spec.ts241 function expectPromotionRequestsSatisfied() {CODE
LOWweb/e2e/helpers/test-data-builder.ts85async function runCleanupTaskWithTimeout(task: CleanupTask): Promise<void> {CODE
LOWweb/e2e/helpers/test-data-builder.ts126function buildSkillPackageZipBuffer(suffix: string, options?: SeedSkillOptions): Buffer {CODE
LOWweb/e2e/helpers/test-data-builder.ts148function createSkillPackageZipFile(suffix: string, options?: SeedSkillOptions): { filePath: string; cleanup: () => void CODE
LOWweb/e2e/helpers/session.ts128async function restoreCachedSessionForAccount(page: Page, username: string): Promise<SessionSnapshot | null> {CODE
LOWweb/e2e/helpers/review-seed.ts26export async function createNamespaceReviewData(CODE
LOWweb/e2e/helpers/search-seed.ts57async function openProvidedPublisherSession(browser: Browser, testInfo: TestInfo): Promise<PublisherSession> {CODE
LOWweb/e2e/helpers/search-seed.ts73async function openAdhocPublisherSession(browser: Browser, testInfo: TestInfo): Promise<PublisherSession> {CODE
LOWweb/src/bootstrap.ts19function ensureRuntimeConfigFallback() {CODE
LOWweb/src/app/layout-main-content.ts12export function resolveAppMainContentPathname(CODE
LOWweb/src/app/router.tsx64 return function RoleProtectedRouteComponent(props: Record<string, unknown>) {CODE
LOWweb/src/features/skill/skill-delete-flow.ts4export function isDeleteSlugConfirmationValid(expectedSlug: string, typedSlug: string) {CODE
LOWweb/src/features/skill/skill-delete-flow.ts8export function resolveDeletedSkillReturnTo(returnTo?: string) {CODE
LOWweb/src/features/skill/install-command.tsx37export function buildSkillhubInstallCommand(namespace: string, slug: string, baseUrl: string): string {CODE
LOWweb/src/features/skill/code-language.ts28export function inferMarkdownCodeLanguage(value: string): string | undefined {CODE
LOWweb/src/features/skill/skill-action-error.ts1export function resolveSkillActionErrorTitle(action: 'download' | 'report') {CODE
LOWweb/src/features/skill/overview-collapse.ts5export function getOverviewCollapseMaxHeight(viewportWidth: number, viewportHeight: number) {CODE
LOWweb/src/features/skill/package-relative-link.ts84export function resolvePackageRelativeLink(CODE
LOWweb/src/features/notification/use-notifications.ts84export function useDeleteReadNotification(userId?: string | null) {CODE
LOWweb/src/features/notification/notification-bell.tsx8export function resolveNotificationUserId(user?: { userId?: string } | null) {CODE
LOWweb/src/features/notification/notification-content.ts29export function resolveNotificationDisplay(item: NotificationItem, language: string): NotificationDisplay {CODE
LOWweb/src/features/notification/notification-target.ts3export function resolveNotificationTarget(item: NotificationItem): string {CODE
LOW…/features/notification/use-notification-preferences.ts11export function useNotificationPreferences() {CODE
LOW…/features/notification/use-notification-preferences.ts22export function useUpdateNotificationPreferences() {CODE
LOWweb/src/features/notification/notification-page.ts11export function shouldShowNotificationPagination(total: number, pageSize: number) {CODE
LOWweb/src/features/notification/use-notification-sse.ts12export function attachNotificationSseListeners(CODE
LOW…/features/notification/notification-sse-coordinator.ts22export function isSharedBrowserSseEnabled() {CODE
LOW…/features/notification/notification-sse-coordinator.ts26export function createNotificationSseConnection(CODE
LOW…features/notification/notification-preference-form.tsx39export function NotificationPreferenceForm() {CODE
LOWweb/src/features/notification/notification-session.ts3export function getNotificationQueryKeyScope(userId?: string | null) {CODE
LOWweb/src/features/notification/notification-session.ts7export function clearSessionScopedQueries(queryClient: QueryClient) {CODE
LOWweb/src/features/admin/use-admin-users.ts101export function useTriggerUserPasswordReset() {CODE
LOWweb/src/features/admin/use-admin-labels.ts45export function useUpdateAdminLabelSortOrder() {CODE
LOWweb/src/features/publish/publish-error-utils.ts40export function isPrecheckConfirmationMessage(message?: string): boolean {CODE
LOWweb/src/features/publish/publish-error-utils.ts44export function isFrontmatterFailureMessage(message?: string): boolean {CODE
LOWweb/src/features/review/review-skill-detail.ts3export function getReviewSkillDocumentation(detail: ReviewSkillDetail) {CODE
LOWweb/src/features/review/review-paths.ts9export function buildNamespaceReviewsPath(slug: string) {CODE
LOWweb/src/features/review/review-paths.ts13export function buildNamespaceReviewDetailPath(slug: string, reviewId: number) {CODE
LOWweb/src/features/review/review-paths.ts17export function canAccessGlobalReviewCenter(platformRoles?: readonly string[]) {CODE
LOWweb/src/features/review/review-paths.ts21export function canManageNamespaceReviews(role?: NamespaceRole) {CODE
LOWweb/src/features/review/review-paths.ts25export function getPreferredNamespaceReviewEntry(CODE
LOWweb/src/features/review/review-error.ts1export function resolveReviewActionErrorDescription(error: unknown): string | undefined {CODE
LOWweb/src/features/governance/use-governance.ts30export function useGovernanceNotifications(page = 0, size = GOVERNANCE_PAGE_SIZE) {CODE
LOWweb/src/features/governance/use-governance.ts37export function useMarkGovernanceNotificationRead() {CODE
LOWweb/src/features/security-audit/display-state.ts3export function getSecurityAuditDisplayState(CODE
LOWweb/src/shared/hooks/skill-query-helpers.ts38export function shouldEnableNamespaceMemberCandidates(slug: string, search: string, enabled = true) {CODE
LOWweb/src/shared/hooks/use-namespace-queries.ts23async function searchNamespaceMemberCandidates(params: { slug: string; search: string }): Promise<NamespaceCandidateUserCODE
LOWweb/src/shared/hooks/use-namespace-queries.ts31async function updateNamespaceMemberRole(params: { slug: string; userId: string; role: NamespaceRole }): Promise<NamespaCODE
LOWweb/src/shared/hooks/use-namespace-queries.ts47function invalidateNamespaceQueries(queryClient: ReturnType<typeof useQueryClient>, slug: string) {CODE
LOWweb/src/shared/hooks/use-namespace-queries.ts90export function useNamespaceMemberCandidates(slug: string, search: string, enabled = true) {CODE
LOWweb/src/shared/hooks/use-namespace-queries.ts111export function useBatchAddNamespaceMembers() {CODE
LOWweb/src/shared/hooks/use-namespace-queries.ts122export function useUpdateNamespaceMemberRole() {CODE
LOWweb/src/shared/hooks/use-namespace-queries.ts205export function useTransferNamespaceOwnership() {CODE
LOWweb/src/shared/hooks/query-keys.ts19export function getAdminLabelDefinitionsQueryKey() {CODE
LOWweb/src/shared/hooks/label-query.ts3export function shouldFallbackVisibleLabelsError(error: unknown) {CODE
LOWweb/src/shared/hooks/use-label-queries.ts50function invalidateSkillLabelQueries(queryClient: ReturnType<typeof useQueryClient>, namespace: string, slug: string) {CODE
LOWweb/src/shared/lib/namespace-member-cache.ts27export function replaceNamespaceMemberRole(CODE
39 more matches not shown…
Structural Annotation Overuse28 hits · 55 pts
SeverityFileLineSnippetContext
LOWcli/RELEASE.md51### Step 1: Run the publish scriptCOMMENT
LOWcli/RELEASE.md71### Step 2: Merge the PRCOMMENT
LOWcli/RELEASE.md75### Step 3: Tag and pushCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md105### Step 1: Clarify the GoalCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md109### Step 2: Harvest the Raw MaterialCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md120### Step 3: Select the FrameworkCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md131### Step 4: Map Content to StructureCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md134### Step 5: Add Narrative DevicesCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md140### Step 6: Refine and CutCOMMENT
LOWbuiltin-skills/skills/storytelling-advisor/SKILL.md145### Step 7: End with a PunchCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md132### Step 1: Define the Decision ClearlyCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md139### Step 2: Identify the Decision TypeCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md150### Step 3: Collect the DataCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md160### Step 4: Apply the FrameworkCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md164### Step 5: Check for BiasCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md173### Step 6: Decide and CommitCOMMENT
LOWbuiltin-skills/skills/decision-matrix/SKILL.md180### Step 7: Review the OutcomeCOMMENT
LOWbuiltin-skills/skills/daily-standup-journal/SKILL.md134### Step 1: Identify the Session TypeCOMMENT
LOWbuiltin-skills/skills/daily-standup-journal/SKILL.md140### Step 2: Generate the PromptsCOMMENT
LOWbuiltin-skills/skills/daily-standup-journal/SKILL.md147### Step 3: Process the ResponsesCOMMENT
LOWbuiltin-skills/skills/daily-standup-journal/SKILL.md157### Step 4: Offer Optional ExportCOMMENT
LOWbuiltin-skills/skills/daily-standup-journal/SKILL.md161### Step 5: Surface Action ItemsCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md113### Step 1: Receive InputCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md122### Step 2: Classify Meeting TypeCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md134### Step 3: Extract Core CategoriesCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md146### Step 4: Structure the SummaryCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md153### Step 5: Flag Missed ItemsCOMMENT
LOWbuiltin-skills/skills/meeting-note-summarizer/SKILL.md161### Step 6: Provide a TL;DRCOMMENT
Fake / Example Data53 hits · 54 pts
SeverityFileLineSnippetContext
LOWweb/src/i18n/locales/zh.json175 "placeholder": "搜索技能...",CODE
LOWweb/src/i18n/locales/zh.json199 "placeholder": "搜索技能...",CODE
LOWweb/src/i18n/locales/en.json175 "placeholder": "Search skills...",CODE
LOWweb/src/i18n/locales/en.json199 "placeholder": "Search skills...",CODE
LOWweb/src/pages/settings/profile.test.ts34 useAuth: () => ({ user: { displayName: 'Test', avatarUrl: null, email: 'test@test.com' } }),CODE
LOW…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java39 "user-1", "User", "user@example.com", null, "github", Set.of()CODE
LOW…lytek/skillhub/auth/oauth/OAuth2LoginHandlersTest.java89 "user-1", "User", "user@example.com", null, "github", Set.of()CODE
LOW…tek/skillhub/auth/oauth/CustomOidcUserServiceTest.java41 "email", "user@example.com",CODE
LOW…tek/skillhub/auth/oauth/CustomOidcUserServiceTest.java50 "user@example.com",CODE
LOW…tek/skillhub/auth/oauth/CustomOidcUserServiceTest.java65 assertThat(claims.email()).isEqualTo("user@example.com");CODE
LOW…ub/repository/JpaProfileReviewQueryRepositoryTest.java47 UserAccount submitter = new UserAccount("user-1", "NewestName", "user@example.com", null);CODE
LOW…ub/repository/JpaProfileReviewQueryRepositoryTest.java48 UserAccount reviewer = new UserAccount("admin-1", "Admin Reviewer", "admin@example.com", null);CODE
LOW…skillhub/controller/UserProfileControllerUnitTest.java80 "user@example.com",CODE
LOW…skillhub/controller/UserProfileControllerUnitTest.java85 UserAccount user = new UserAccount("user-1", "ApprovedName", "user@example.com", "https://example.com/avatar.pngCODE
LOW…skillhub/controller/UserProfileControllerUnitTest.java115 "user@example.com",CODE
LOW…skillhub/controller/UserProfileControllerUnitTest.java120 UserAccount user = new UserAccount("user-1", "ApprovedName", "user@example.com", "https://example.com/avatar.pngCODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java90 "user-1", "OldName", "user@example.com",CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java122 var user = new UserAccount("user-1", "OldName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java141 var user = new UserAccount("user-1", "OldName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java204 var user = new UserAccount("user-1", "OldName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java221 var user = new UserAccount("user-1", "CurrentName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java234 .andExpect(jsonPath("$.data.email").value("user@example.com"))CODE
LOW…tek/skillhub/controller/UserProfileControllerTest.java241 var user = new UserAccount("user-1", "CurrentName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…skillhub/controller/NamespaceWorkflowContractTest.java78 UserAccount adminUser = new UserAccount("user-admin", "Admin", "admin@example.com", null);CODE
LOW…skillhub/controller/NamespaceWorkflowContractTest.java85 new UserAccount("user-admin", "Admin", "admin@example.com", null)CODE
LOW…skillhub/controller/NamespaceWorkflowContractTest.java95 .willReturn(List.of(new NamespaceCandidateUserResponse("user-admin", "Admin", "admin@example.com", "ACTICODE
LOW…skillhub/controller/NamespaceWorkflowContractTest.java133 .andExpect(jsonPath("$.data.email").value("admin@example.com"));CODE
LOW…skillhub/controller/NamespaceWorkflowContractTest.java142 .andExpect(jsonPath("$.data.items[0].email").value("admin@example.com"));CODE
LOW…b/controller/admin/AdminSkillReportControllerTest.java145 "admin", "admin", "admin@example.com", "", "github", Set.of("SKILL_ADMIN")CODE
LOW…b/controller/admin/AdminSkillReportControllerTest.java154 "super-admin", "super-admin", "admin@example.com", "", "github", Set.of("SUPER_ADMIN")CODE
LOW…controller/admin/AdminProfileReviewControllerTest.java62 var principal = new PlatformPrincipal("admin-1", "Admin", "admin@example.com", "", "github", Set.of("USER_ADMIN"CODE
LOW…controller/admin/AdminProfileReviewControllerTest.java72 var principal = new PlatformPrincipal("user-1", "User", "user@example.com", "", "github", Set.of("USER"));CODE
LOW…hub/controller/admin/UserManagementControllerTest.java69 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java134 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java160 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java185 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java208 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java231 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…hub/controller/admin/UserManagementControllerTest.java254 "user-42", "admin", "admin@example.com", "", "github", Set.of("USER_ADMIN")CODE
LOW…om/iflytek/skillhub/service/AuthMethodCatalogTest.java25 oauthProperties.getRegistration().put("placeholder", registration("PLACEHOLDER", "Placeholder"));CODE
LOW…skillhub/service/AdminProfileReviewAppServiceTest.java57 UserAccount submitter = new UserAccount("user-1", "NewestName", "user@example.com", null);CODE
LOW…skillhub/service/AdminProfileReviewAppServiceTest.java58 UserAccount reviewer = new UserAccount("admin-1", "Admin Reviewer", "admin@example.com", null);CODE
LOW…flytek/skillhub/service/SkillDeleteAppServiceTest.java154 new PlatformPrincipal("user-2", "User", "user@example.com", "", "session", java.util.Set.of("USER")),CODE
LOW…flytek/skillhub/service/SkillDeleteAppServiceTest.java236 new PlatformPrincipal("user-2", "User", "user@example.com", "", "session", java.util.Set.of("USER")),CODE
LOW…va/com/iflytek/skillhub/service/AuthMethodCatalog.java67 return !clientId.toLowerCase(Locale.ROOT).contains("placeholder");CODE
LOW…hub/domain/skill/metadata/SkillMetadataParserTest.java57 assertEquals("John Doe", metadata.frontmatter().get("author"));STRING
LOW…lytek/skillhub/domain/user/UserProfileServiceTest.java70 return new UserAccount("user-1", "OldName", "user@example.com", "https://example.com/avatar.png");CODE
LOW…/search/postgres/PostgresSearchRebuildServiceTest.java59 "author": "Jane Doe",CODE
LOW…/search/postgres/PostgresSearchRebuildServiceTest.java95 assertThat(document.searchText()).contains("Jane Doe");STRING
LOW…/search/postgres/PostgresSearchRebuildServiceTest.java240 "author": "Jane Doe"CODE
LOWdocs/openclaw-integration.md284 "displayName": "John Doe"CODE
LOWdocs/openclaw-integration-en.md284 "displayName": "John Doe"CODE
LOW.github/scripts/issue-triage-config.ts170 "placeholder",CODE
Modern AI Meta-Vocabulary4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMAGENTS.md43│ │ ├── service/ # App services (workflow orchestration)CODE
MEDIUMAGENTS.md181├── Makefile # Top-level build/test/dev orchestrationCODE
MEDIUMdocs/17-backend-annotation-findings.md56## 2. Several controllers still perform orchestration that belongs in application servicesCOMMENT
MEDIUMdocs/18-frontend-annotation-findings.md39## 3. Some pages still do too much orchestration instead of delegating to feature-level containersCOMMENT
Magic Placeholder Names2 hits · 8 pts
SeverityFileLineSnippetContext
HIGH…ain/skill/validation/BasicPrePublishValidatorTest.java85 token=YOUR_TOKEN_HERESTRING
HIGHscanner/docs/configuration.md338 SKILLHUB_SCANNER_AI_DEFENSE_API_KEY: "your-api-key-here"CODE
Unused Imports5 hits · 5 pts
SeverityFileLineSnippetContext
LOWscripts/build-builtin-skills.py4CODE
LOWscanner/backports/apply_1_0_2_llm_base_url_backport.py4CODE
LOWweekly/scripts/validate_site.py4CODE
LOWweekly/scripts/build_site.py4CODE
LOWweekly/scripts/sync_report_theme.py4CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWdeploy/k8s/base/configmap.yaml1apiVersion: v1COMMENT
LOW…superpowers/plans/2026-03-11-phase1-foundation-auth.md4401# 2. 安装前端依赖COMMENT
LOW…specs/2026-03-12-phase2-namespace-skill-core-design.md721 SearchResult search(SearchQuery query) {COMMENT
LOWcli/test/unit/commands/update-command.test.ts1import { describe, expect, test } from 'bun:test'COMMENT