AI Slop Code Risk Monitor

vastsa/PI-Desktop

SlopCodeMonitor badge for vastsa/PI-Desktop Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).
1.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for vastsa/PI-Desktop. SynthScan examined 703,339 lines of code across 2709 source files, recording 774 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.3
Adjusted Signal
1.3
Raw Pattern Score
100%
Time Factor
—
Last Push
—
Stars
—
Language
703.3K
Lines of Code
2.7K
Files
774
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 5.2/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 714 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

Are imports declared and package/API names verified? 24 finding(s).

Agent Over-Engineering Ratio 4.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 613 finding(s).

PR Review Velocity Impact 6.1/100 · LOW

Which changes need focused human review? 774 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 6MEDIUM 44LOW 724

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 774 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers577 hits · 586 pts
SeverityFileLineSnippetContext
LOWscripts/e2e/transcript-long-history.tsx116export async function transcriptLongHistoryProbe() {CODE
LOWscripts/e2e/settings-scroll.jsx230async function exerciseBrazilianPortuguese() {CODE
LOWscripts/e2e/settings-scroll.jsx265async function exerciseProxyDraftRestoration() {CODE
LOWscripts/e2e/scroll-input-ownership.ts6export function probeScrollInputOwnership(scroller: HTMLElement) {CODE
LOWscripts/e2e/transcript-render.tsx50async function markdownLinkInteractionProbe(CODE
LOWscripts/e2e/transcript-render.tsx138async function contextMenuSubmenuInteractionProbe() {CODE
LOWscripts/e2e/browser-pane-lifecycle.ts8export async function checkBrowserPaneLifecycle(CODE
LOWscripts/e2e/transcript-auto-collapse.tsx17export async function transcriptAutoCollapseProbe() {CODE
LOWscripts/e2e/work-panel-tab-close.tsx177async function runTabContextMenuUserPath(): Promise<TabContextMenuPathResult> {CODE
LOWscripts/e2e/work-panel-tab-close.tsx280async function runPluginViewMenuLayerPath(): Promise<PluginViewMenuLayerResult> {CODE
LOWscripts/e2e/transcript-minimap-jump.tsx86export async function transcriptMinimapJumpProbe() {CODE
LOWpackages/host-runtime/src/chat-ref-resolve.ts217async function canonicalPathOrMissingTail(path: string): Promise<string | null> {CODE
LOWpackages/host-runtime/src/turn-persistence.ts27function isDuplicateMessageIdError(error: unknown): boolean {CODE
LOWpackages/host-runtime/src/session-message-input.ts24export async function resolveSessionMessageInput(CODE
LOWpackages/host-runtime/src/workspace-files.ts182export async function resolveRealPathWithinRoot(CODE
LOWpackages/host-runtime/src/workspace-files.ts205export async function resolveRealPathForCreateWithinRoot(CODE
LOWpackages/host-runtime/src/launch-resolver.ts122export function createHeadlessLaunchResolver(options: HeadlessLaunchResolverOptions): LaunchResolver {CODE
LOWpackages/host-runtime/src/launch-resolver.ts143 async function activeUserSubagentDocuments(projectPath: string | undefined): Promise<UserSubagentDocument[]> {CODE
LOWpackages/host-runtime/src/launch-resolver.ts175 async function resolveEffectiveCommandShell(): Promise<CommandShellCatalog> {CODE
LOWpackages/host-runtime/src/plan-execution.ts68export function executionListFromResponse(value: unknown): PlanExecution[] {CODE
LOWpackages/host-runtime/src/live-work/context.ts13export function buildLiveWorkClassifierInput(input: {CODE
LOWpackages/host-runtime/src/live-work/coordinator.ts10export function liveWorkUnselectedSessionId(callId: string): string {CODE
LOWpackages/host-runtime/src/live-work/coordinator.ts1088function isKnownAdmissionRejection(code: string | undefined): boolean {CODE
LOWpackages/plugin-sdk/src/theme-css.ts234export function findThemeCssUrlReferences(masked: string): ThemeCssUrlReference[] {CODE
LOWpackages/plugin-sdk/src/theme-css.ts286function rewriteThemeAssetReferences(CODE
LOW⚡packages/plugin-sdk/src/theme-variables.ts15export function isPluginThemeVariableName(value: unknown): value is string {CODE
LOW⚡packages/plugin-sdk/src/theme-variables.ts19export function validatePluginThemeVariableDeclaration(value: unknown): value is PluginThemeVariableContrib {CODE
LOW⚡packages/plugin-sdk/src/theme-variables.ts29export function validatePluginThemeVariables(declarations: readonly PluginThemeVariableContrib[], values: unknown): PlugCODE
LOWpackages/plugin-sdk/src/theme-variables.ts51export function normalizePluginThemeVariableValues(declarations: readonly PluginThemeVariableContrib[], values: unknown)CODE
LOWpackages/plugin-sdk/src/theme-variables.ts57export function formatPluginThemeVariables(themeId: string, declarations: readonly PluginThemeVariableContrib[], values:CODE
LOWpackages/plugin-sdk/src/net-policy.ts189export function isNetSocketUrlAllowedWithGrant(CODE
LOWpackages/plugin-sdk/src/index.ts491export function resolvePluginLocalizedString(CODE
LOWpackages/shared/src/racp.ts279export function eventEnvelopeSequencingIsValid(envelope: RacpEventEnvelope): boolean {CODE
LOWpackages/shared/src/racp.ts344export function allowedDecisionsAreCoherent(request: RacpApprovalRequest): boolean {CODE
LOWpackages/shared/src/racp.ts564export function protocolVersionsCompatible(server: string, client: string): boolean {CODE
LOWpackages/shared/src/racp.ts832export function effectiveRemotePermissionMode(input: RacpCeilingInput): RacpPermissionMode {CODE
LOWpackages/shared/src/composer-trigger.ts34export function normalizeLargePasteThreshold(value: unknown): number {CODE
LOWpackages/shared/src/composer-trigger.ts60export function rewriteIdeographicCommaTrigger(value: string): string {CODE
LOWpackages/shared/src/composer-trigger.ts183export function serializeComposerFileReferences(CODE
LOWpackages/shared/src/composer-trigger.ts205export function serializeInlineComposerFileReferences(CODE
LOWpackages/shared/src/composer-trigger.ts235export function stripInlineComposerFileReferenceTokens(CODE
LOWpackages/shared/src/composer-trigger.ts253export function restoreInlineComposerFileReferenceTokens(CODE
LOWpackages/shared/src/network-policy.ts116export function allowInsecureUserEndpoints(settings: unknown): boolean {CODE
LOWpackages/shared/src/network-policy.ts121export function needsInsecureEndpointNotice(settings: unknown): boolean {CODE
LOWpackages/shared/src/transcript-truncation.ts15export function resolveTranscriptTruncation(CODE
LOWpackages/shared/src/provider-endpoint.ts111export function discoveryStyleForApiStyle(apiStyle?: string | null): DiscoveryStyle {CODE
LOWpackages/shared/src/provider-endpoint.ts176export function providerEndpointDefinitionsForHost(host: string): readonly ProviderEndpointDefinition[] {CODE
LOWpackages/shared/src/provider-endpoint.ts185export function providerEndpointDefinitionForUrl(CODE
LOWpackages/shared/src/changelog-runtime.ts4export function normalizeChangelogVersion(CODE
LOWpackages/shared/src/certificate-errors.ts21export function isCertificateVerificationError(code: unknown): boolean {CODE
LOWpackages/shared/src/github-feedback.ts28export function formatFeedbackEnvironment(info: FeedbackIssueContext): string {CODE
LOWpackages/shared/src/public-network.ts236export function isAcceptableUserEndpointAddress(CODE
LOWpackages/shared/src/public-network.ts387export function isAcceptableResolvedAddress(CODE
LOWpackages/shared/src/public-network.ts404export function isPublicNetworkPolicyFailure(error: unknown): boolean {CODE
LOWpackages/shared/src/public-network.ts432export function publicNetworkRefusalReason(error: unknown): PublicNetworkRefusalReason | undefined {CODE
LOWpackages/shared/src/public-network.ts511export function publicNetworkRefusalDetail(error: unknown): PublicNetworkRefusalDetail | undefined {CODE
LOWpackages/shared/src/network-proxy.ts240export function settingsForInactiveProxyMode(CODE
LOWpackages/shared/src/provider-presets.ts404export function addressesPublishedVendorHost(baseUrl: string | undefined): boolean {CODE
LOWpackages/shared/src/provider-presets.ts497export function isDeepSeekReasoningReplay(input: {CODE
LOWpackages/shared/src/provider-presets.ts510export function isOfficialDeepSeekEndpoint(input: { baseUrl?: string }): boolean {CODE
517 more matches not shown…
Decorative Section Separators35 hits · 120 pts
SeverityFileLineSnippetContext
MEDIUMscripts/macos-signing-diagnostics.sh60# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/macos-signing-diagnostics.sh62# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh128# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh130# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh137# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh139# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/macos-signing-diagnostics.sh150# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/macos-signing-diagnostics.sh153# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh168# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh170# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh176# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh178# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh184# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/macos-signing-diagnostics.sh189# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/macos-signing-diagnostics.sh203# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/macos-signing-diagnostics.sh205# ---------------------------------------------------------------------------COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js45// ── 上限 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js100// ── 敏感路径黑名单(读与写都拒绝) ──────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js123// ── 模块状态 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js155// ── 错误 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js171// ── 路径安全 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js411// ── 项目组与基点(0.5.0) ────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js561// ── 忽略规则(.gitignore / .ignore 语义子集) ────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js676// ── 审计 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js691// ── git 状态(0.7.0) ───────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js1308// ── 文件监听(0.8.0) ───────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js1521// ── 编辑器探测与「通过…打开」(0.9.0) ─────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js2240// ── 读 ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js2430// ── 写 ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js2517// ── 新建 / 重命名 / 移动 / 删除 ────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js2653// ── 搜索(分页 + 会话游标) ─────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js2760// ── SQLite(只读浏览 + 查询) ───────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js3256// ── 偏好 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js3338// ── 通道路由 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/desktop/resources/plugins/pi.file-manager/main.js3380// ── 生命周期 ────────────────────────────────────────────────────────────────COMMENT
Over-Commented Block120 hits · 118 pts
SeverityFileLineSnippetContext
LOWcrates/host-core/src/scratch.rs1//! Per-session scratch directories (D114).COMMENT
LOWcrates/host-core/src/user_subagents.rs41/// never see their handles. That scan also `prune`s state for records it noCOMMENT
LOWcrates/host-core/src/background_tasks.rs1//! Background command tasks: long-lived processes started from a chat turnCOMMENT
LOWcrates/host-core/src/background_tasks.rs21use tokio::sync::{watch, Mutex};COMMENT
LOWcrates/host-core/src/todos.rs1//! Session checklist: validation, storage, and the single write path.COMMENT
LOWcrates/host-core/src/todos.rs281COMMENT
LOWcrates/host-core/src/transcripts.rs1//! Per-session transcript files (D119).COMMENT
LOWcrates/host-core/src/transcripts.rs121#[derive(Debug, Clone, Serialize, Deserialize)]COMMENT
LOWcrates/host-core/src/transcripts.rs141/// turn, and because the suffix grows with every turn the file grewCOMMENT
LOWcrates/host-core/src/transcripts.rs481}COMMENT
LOWcrates/host-core/src/transcripts.rs1301 Ok(())COMMENT
LOWcrates/host-core/src/transcripts.rs1321///COMMENT
LOWcrates/host-core/src/transcripts.rs1481 data_dir: &Path,COMMENT
LOWcrates/host-core/src/transcripts.rs1601/// The file is streamed once to record where its matching lines are, and onlyCOMMENT
LOWcrates/host-core/src/sessions.rs141 /// True when this session is the transcript owned by a scheduled-task run.COMMENT
LOWcrates/host-core/src/sessions.rs181 #[serde(skip_serializing_if = "Option::is_none")]COMMENT
LOWcrates/host-core/src/sessions.rs201 /// Original text for a slash template or Skill invocation.COMMENT
LOWcrates/host-core/src/sessions.rs221 #[serde(skip_serializing_if = "Option::is_none")]COMMENT
LOWcrates/host-core/src/sessions.rs241 /// For user messages that own regenerate history: total revision count.COMMENT
LOWcrates/host-core/src/sessions.rs261 #[serde(skip_serializing_if = "Option::is_none")]COMMENT
LOWcrates/host-core/src/sessions.rs301 #[serde(skip_serializing_if = "Vec::is_empty")]COMMENT
LOWcrates/host-core/src/sessions.rs2461/// row.COMMENT
LOWcrates/host-core/src/sessions.rs2801}COMMENT
LOWcrates/host-core/src/sessions.rs3521 /// The user root as it now stands on disk, for the renderer's pager.COMMENT
LOWcrates/host-core/src/sessions.rs4061COMMENT
LOWcrates/host-core/src/keyboard.rs1//! Windows-only global keyboard fallback for shortcuts reserved by the shell.COMMENT
LOWcrates/host-core/src/state.rs41 /// Subagent definitions the user owns, alongside the builtin and per-projectCOMMENT
LOWcrates/host-core/src/state.rs61 pub plugin_import_rates: HashMap<String, Vec<Instant>>,COMMENT
LOWcrates/host-core/src/state.rs81 /// Abort can race ahead of tools.execute because host RPC requests run inCOMMENT
LOWcrates/host-core/src/workspace.rs201 root == candidateCOMMENT
LOWcrates/host-core/src/network_policy.rs1//! Trust policy for the endpoints the user enters themselves, as host-coreCOMMENT
LOWcrates/host-core/src/permissions.rs141 /// read/inspect core plus Bash; only their submit tool differs, and that oneCOMMENT
LOWcrates/host-core/src/permissions.rs201 declared_risk,COMMENT
LOWcrates/host-core/src/session_search.rs61}COMMENT
LOWcrates/host-core/src/user_skills.rs61 pub level: Option<String>,COMMENT
LOWcrates/host-core/src/user_skills.rs281///COMMENT
LOWcrates/host-core/src/user_skills.rs401 directory.join(stem).join("SKILL.md")COMMENT
LOWcrates/host-core/src/agent_capabilities.rs341 _ => self.level == CapabilityLevel::Global,COMMENT
LOWcrates/host-core/src/agent_capabilities.rs381///COMMENT
LOWcrates/host-core/src/activation.rs1use serde::{Deserialize, Serialize};COMMENT
LOWcrates/host-core/src/tools/shell.rs461 .ok_or_else(|| "Command Prompt (cmd.exe) was not found".into())COMMENT
LOWcrates/host-core/src/tools/shell.rs601}COMMENT
LOWcrates/host-core/src/tools/ignore_rules.rs1//! Workspace ignore rules (spec 03-runtime/15, D032).COMMENT
LOWcrates/host-core/src/tools/mod.rs41/// per-result budgets (`BUDGET_SHELL` and friends). The retained copy is whatCOMMENT
LOWcrates/host-core/src/tools/mod.rs561}COMMENT
LOWcrates/host-core/src/tools/mod.rs601 direction: Direction::Tail,COMMENT
LOWcrates/host-core/src/tools/mod.rs661 /// permission mode. `inherit` and absent behave identically.COMMENT
LOWcrates/host-core/src/tools/mod.rs1081/// How long host-core waits for Electron main to answer an approvedCOMMENT
LOWcrates/host-core/src/plugins/renderer.rs1//! Renderer-slot declarations: `manifest.renderer` and its two whitelists.COMMENT
LOWcrates/host-core/src/plugins/registry.rs21 ///COMMENT
LOWcrates/host-core/src/plugins/registry.rs61 let _ = mgr.reload_from_disk();COMMENT
LOWcrates/host-core/src/plugins/device.rs1//! Stable device identity for the plugin center's download interface.COMMENT
LOWcrates/host-core/src/plugins/resolve.rs1//! The plugin center's download interface.COMMENT
LOWcrates/host-core/src/plugins/manifest.rs21 #[serde(default, rename = "rendererCallMethods")]COMMENT
LOWcrates/host-core/src/plugins/reviews.rs1//! Anonymous plugin reviews read from the plugin center.COMMENT
LOWcrates/host-core/src/plugins/progress.rs1//! Progress an install reports while it runs, and the way a user cancels one.COMMENT
LOWcrates/host-core/src/plugins/install.rs701 ))COMMENT
LOWcrates/host-core/src/plugins/marketplace.rs281 "sourceUrl": self.market_source_url(),COMMENT
LOWcrates/host-core/src/plugins/marketplace.rs641 }COMMENT
LOWcrates/host-core/src/plugins/providers.rs521 })COMMENT
60 more matches not shown…
Modern AI Meta-Vocabulary7 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMdocs/spec/08-meta/decisions-log.md2579## 2026-08-24 — Subagents use event-driven idle and duration timeoutsCOMMENT
MEDIUMdocs/spec/02-architecture/03-repo-structure.md43│ └── plugin-devkit/ # pi-plugin CLI: scaffold, check, pack, publishCODE
MEDIUMdocs/zh-CN/spec/02-architecture/03-repo-structure.md44│ └── plugin-devkit/ # pi-plugin CLI:scaffold、check、pack、publishCODE
MEDIUMexamples/plugins/roundtable/main.js24 `## Roundtable orchestration plan`,CODE
MEDIUMexamples/plugins/roundtable/skills/roundtable.md71## How the parent agent orchestratesCOMMENT
MEDIUMapps/desktop/electron/main/runtime/sidecar.ts658 // Plugin authoring (D171): scaffold, validate and package a plugin withoutCOMMENT
MEDIUMapps/desktop/electron/main/ipc/plugin-ipc.ts283 // scaffold only writes files; loading waits for the same review as a folderCOMMENT
Fake / Example Data16 hits · 16 pts
SeverityFileLineSnippetContext
LOWcrates/host-core/src/sessions.rs7339 let filler = "lorem ipsum dolor sit amet ".repeat(60);CODE
LOWcrates/host-core/src/sessions.rs7339 let filler = "lorem ipsum dolor sit amet ".repeat(60);CODE
LOWpackages/i18n/src/locales/de/index.ts48 "placeholder": "pnpm install",CODE
LOWpackages/i18n/src/locales/de/index.ts148 "placeholder": "Plugins nach Name oder Pinyin durchsuchen",CODE
LOWpackages/i18n/src/locales/de/index.ts348 "placeholder": "Bitten Sie PI-Desktop um Hilfe bei allem",CODE
LOWpackages/i18n/src/locales/de/index.ts2240 "placeholder": "Wert eingeben",CODE
LOWpackages/i18n/src/locales/fr/index.ts48 "placeholder": "pnpm install",CODE
LOWpackages/i18n/src/locales/fr/index.ts148 "placeholder": "Rechercher des plugins par nom ou pinyin",CODE
LOWpackages/i18n/src/locales/fr/index.ts348 "placeholder": "Demandez à PI-Desktop de vous aider pour tout",CODE
LOWpackages/i18n/src/locales/fr/index.ts2240 "placeholder": "Saisissez une valeur",CODE
LOWpackages/i18n/src/locales/es/index.ts48 "placeholder": "pnpm install",CODE
LOWpackages/i18n/src/locales/es/index.ts148 "placeholder": "Buscar complementos por nombre o pinyin",CODE
LOWpackages/i18n/src/locales/es/index.ts348 "placeholder": "Pídale ayuda a PI-Desktop con cualquier cosa",CODE
LOWpackages/i18n/src/locales/es/index.ts2240 "placeholder": "Escribe un valor",CODE
LOW…esktop/resources/plugins/pi.browser/views/browser.html207 input.placeholder = t("placeholder");CODE
LOWapps/desktop/electron/main/oauth.ts275 placeholder: "placeholder" in prompt ? prompt.placeholder : undefined,CODE
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/adr/0179-import-model-configuration.md65 Placeholder values (`YOUR_API_KEY`, `${VAR}`) are treated as missing.CODE
HIGHpackages/shared/src/model-config-import.test.ts119 options: { apiKey: "YOUR_API_KEY" },CODE
HIGHpackages/shared/src/model-config-import.test.ts446 expect(publicModelConfigCandidate(drafts("YOUR_API_KEY")[0]).hasSecret).toBe(false);CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGH…sktop/electron/main/remote/pi-host-bootstrap-script.ts127 elif command -v shasum >/dev/null 2>&1; thenCODE
HIGH…sktop/electron/main/remote/pi-host-bootstrap-script.ts152 elif command -v wget >/dev/null 2>&1; thenCODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHdocs/spec/04-ux/07-ui-design-system.md35### 3.1 AI-generated page copyCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcrates/host-core/src/plugins/install.rs740 // Prefer curl for robust HTTPS support on developer and CI machines.COMMENT
MEDIUMapps/desktop/electron/main/bootstrap/window.ts1863 // Destination + theme captures (robust via __PI_DESKTOP__ hooks).COMMENT
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippetContext
LOWapps/desktop/electron/main/mcp-oauth.ts221 // Step 1: Probe endpoint to check for 401 with WWW-AuthenticateCOMMENT
LOWapps/desktop/electron/main/mcp-oauth.ts256 // Step 2: Fallback to standard RFC 9728 paths if not in WWW-AuthenticateCOMMENT
LOWapps/desktop/electron/main/mcp-oauth.ts291 // Step 3: Fetch Authorization Server Metadata (RFC 8414)COMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWapps/desktop/electron/main/mcp-oauth.ts221 // Step 1: Probe endpoint to check for 401 with WWW-AuthenticateCOMMENT
LOWapps/desktop/electron/main/mcp-oauth.ts256 // Step 2: Fallback to standard RFC 9728 paths if not in WWW-AuthenticateCOMMENT
LOWapps/desktop/electron/main/mcp-oauth.ts291 // Step 3: Fetch Authorization Server Metadata (RFC 8414)COMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/publish-screenshots.py20CODE
LOWscripts/make-icon.py16CODE
LOWscripts/make-dmg-background.py11CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/plugin-devkit/src/templates.ts466## How to useCOMMENT
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/e2e/config-sync-s3-admin.py101 except Exception as error:CODE