Repository Analysis

ZSeven-W/openpencil

The world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.

6.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ZSeven-W/openpencil, a Rust project with 4,059 GitHub stars. SynthScan v2.0 examined 431,195 lines of code across 1373 source files, recording 1490 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 6.6 places this repository in the Low AI signal 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).

6.6
Adjusted Score
6.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
4.1K
Stars
Rust
Language
431.2K
Lines of Code
1.4K
Files
1.5K
Pattern Hits
2026-07-14
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 40HIGH 1MEDIUM 480LOW 969

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 1490 distinct pattern matches across 13 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.

Decorative Section Separators338 hits · 1038 pts
SeverityFileLineSnippetContext
MEDIUMtools/check-widget-boundary.sh39# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh45# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh60# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh71# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh79# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh86# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh149# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh166# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh182# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh186# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh199# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh210# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh225# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-widget-boundary.sh227# ---------------------------------------------------------------------COMMENT
MEDIUMtools/check-jian-boundaries.sh49# ── Invariant 2: mobile targets don't pull jian-host-desktop. ─────────COMMENT
MEDIUMtools/check-jian-boundaries.sh71# ── Invariant 3: wasm32 has no jian-host-desktop / jian-skia. ──────────COMMENT
MEDIUMcrates/op-editor-core/src/agent_indicators.rs503// ── Relay (daemon → browser) ────────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/property_edit_mutators.rs473 // ── Multi-fill (indexed) selected-node mutators ────────────────COMMENT
MEDIUMcrates/op-editor-core/src/fills.rs868// ── Multi-fill (indexed) ops ───────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/agent_indicators_tests.rs462// ── Relay (daemon → browser) ────────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs24// ── helper: parse justify_content keyword ────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs37// ── helper: parse align_items keyword ────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs47// ── helper: parse layout keyword ─────────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs58// ── helper: parse text_align keyword ─────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs70// ── helper: parse text_align_vertical keyword ────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs81// ── helper: parse text_growth keyword ────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs92// ── helper: parse sizing keyword ──────────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs102// ── helper: build Padding from LayoutPropValue ────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs123// ── impl EditorState ──────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-editor-core/src/command_layout_prop.rs341// ── field writers ─────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs4// ── inject_missing_nav_surface_fill ──────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs54// ── round_active_nav_tab ─────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs267// ── strip_redundant_section_fill ─────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs339// ── clip_card_image_corners ──────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs376// ── fill_card_leading_image_width ────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs447// ── fix_notification_badge_overlay ───────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs513// ── convert_stacked_overlay_to_absolute ──────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs553// ── dominant_design_accent ───────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs574// ── strip_nested_card_decoration ─────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/tree_heuristics_tests.rs601// ── fix_invisible_text_band (glm banner-fill floor) ──────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs17// ── B2: Types for fix application ─────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs54// ── B2: apply_validation_fixes ────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs71 // ── Property fixes ────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs135 // ── Virtual property translation ──────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs170 // ── Typed property dispatch ───────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs313 // ── Structural fixes ──────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs411// ── B2: auto_fix_parent_layout_after_add_child ────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/validation_fixes_apply.rs522// ── helpers for node introspection ───────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/plan_repair.rs21// ── public(crate) helpers ─────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/plan_repair.rs206// ── Task B2: repair_plan_object + finalize_plan ───────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/plan_repair.rs483// ── Task B3: parse_orchestrator_response cascade ──────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/plan_repair.rs597// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs13// ── 从 TS `ai-runtime-config.ts` 逐字搬来的毫秒常量 ────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs69// ── 公开类型 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs123// ── 公开函数 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs222// ── 测试 ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs228 // ── bucket_for ────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs248 // ── orchestrator_timeouts ─────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs274 // ── sub_agent_timeouts ────────────────────────────────────────────────────COMMENT
MEDIUMcrates/op-orchestrator/src/timeouts.rs319 // ── builtin_planning_timeouts ─────────────────────────────────────────────COMMENT
278 more matches not shown…
Over-Commented Block919 hits · 908 pts
SeverityFileLineSnippetContext
LOWCargo.toml41thiserror = "1"COMMENT
LOWCargo.toml61# release build in the graph, including the excluded vendor/* path deps (theirCOMMENT
LOWdeny.toml41 # async-openai 0.36.x still depends on backoff 0.4.x, and RustSecCOMMENT
LOWtools/check-widget-boundary.sh1#!/usr/bin/env bashCOMMENT
LOWtools/check-widget-boundary.sh21# carry a real `impl Widget for X` — a stale file with the implCOMMENT
LOWtools/check-widget-boundary.sh41# arbitrary namespace segments) anywhere under op-host-web/src/.COMMENT
LOWtools/check-widget-boundary.sh61# Forward F2: no `fn layout(` / `fn access_node(` anywhere underCOMMENT
LOWtools/check-widget-boundary.sh81# line ALSO carries the `// glue:` marker AND the file isCOMMENT
LOWtools/check-widget-boundary.sh141 combined_paint="${outside_module_hits}"COMMENT
LOWtools/check-jian-boundaries.sh1#!/usr/bin/env bashCOMMENT
LOWtools/check-jian-boundaries.sh21# widget_host) compiles for iOS / Android cargo check, leavingCOMMENT
LOWtools/fetch-skia-artifact.sh1#!/usr/bin/env bashCOMMENT
LOWtools/check-wasm-bundle.sh1#!/usr/bin/env bashCOMMENT
LOWtools/check-wasm-bundle.sh21# Exit semantics:COMMENT
LOWtools/bundle-macos.sh1#!/bin/shCOMMENT
LOWtools/check-web-server-headless.sh1#!/usr/bin/env bashCOMMENT
LOWcrates/op-editor-core/src/variables_panel_state.rs1//! State-layer mirror of the variables panel's buttons.COMMENT
LOWcrates/op-editor-core/src/hoist_app_state.rs1//! Hoist node-level `state` to one document-root `MergeAppState`.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1//! Editor-UI overlay + panel state for `EditorState`.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs61 New,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs101///COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs121COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs261}COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs381COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs401 Commit,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs421 /// Merge the named branch into the current one through anCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs441 /// then bind the cloned repo. Reads url / dest from `clone_form`.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs481}COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs501}COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs521 /// cursor-move.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs541 /// Ready-state header: whether the branch-picker dropdown (openedCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs561 pub ahead: u32,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs581 /// Draft URL typed into the Remotes section's input box.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs601 /// Candidate `.op` files for the tracked-file picker subview, host-filledCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs621 /// `commit_input` and the commit re-fires after a successful save.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs641 pub loading: bool,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs801 variant: usize,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs841 /// Shared file-menu interaction state; `hover = None` means noCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs861 pub export_dialog_hover: Option<crate::export_dialog_state::ExportDialogButton>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs881 pub property_tab_hover: Option<PropertyTab>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs901 pub figma_import_open: bool,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs921 // --- Canvas preview (Play) mode -------------------------------COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs941 pub settings_input: jian_core::text_input::TextInputState,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs961 pub icon_picker_search: String,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs981 /// Which bare chat header button (chevron / maximize / new-chat)COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1001 pub pressed_button: Option<crate::button_press_state::ButtonPressTarget>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1021 pub window_fullscreen: bool,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1041 /// Active flex-layout mode for the property panel's row.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1081 pub fill_type_picker_index: usize,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1101 /// Live type-ahead filter for the font-family picker (TSCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1121 /// is "machine has none" rather than "not loaded yet").COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1141 /// Which row inside the open theme-preset dropdown the cursor is over —COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1161 pub variables_theme_rename_axis: Option<String>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1181 /// Variable row whose `⋯` overflow menu (Rename / Delete) is open.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1201 pub layer_context_menu: Option<LayerContextMenuState>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1221 /// computed each `apply_cursor_move` by `align_guides`, cleared onCOMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1241 /// Whether the floating Design-MD panel is shown.COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1261 pub design_md_request: Option<DesignMdRequest>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1281 pub component_browser_category: Option<crate::uikit::ComponentCategory>,COMMENT
LOWcrates/op-editor-core/src/editor_ui_state.rs1301 /// `uikit-store.persist()` counterpart).COMMENT
859 more matches not shown…
Modern AI Meta-Vocabulary132 hits · 411 pts
SeverityFileLineSnippetContext
MEDIUMcrates/op-editor-core/src/hoist_app_state.rs15/// (agentic-loop finalize, MCP inserts). `usize::MAX` is the weakestCOMMENT
MEDIUMcrates/op-editor-core/src/agent_indicators.rs312/// alone would clear, but a worker mid `add_frame` loop (scaffold justCOMMENT
MEDIUMcrates/op-editor-core/src/page_mutators.rs139 /// design) so the orchestrator's scaffold + role/cleanup passes areCOMMENT
MEDIUMcrates/op-orchestrator/src/app_shell.rs8//! plan-level "dashboard bespoke scaffold" (that pre-built the two-column root)COMMENT
MEDIUMcrates/op-orchestrator/src/app_shell.rs14//! passes already ran) and the agentic loop (`apply_loop_finalize` ran theCOMMENT
MEDIUMcrates/op-orchestrator/src/app_shell.rs30/// `dashboard_columns.rs` for parity with the removed scaffold.COMMENT
MEDIUMcrates/op-orchestrator/src/app_shell.rs679/// placing them side by side. Measured on the agentic loop: MiniMax-M3 emitsCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs7//! scaffold 之后数一次,subtask 全跑完再数一次,没涨即零内容。COMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs33/// Exposed `pub(crate)` so scaffold builders can pre-compute the sameCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs34/// baseline that [`descendant_count`] returns after applying the scaffoldCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs35/// commands — needed by the dashboard scaffold (Task C2) whose row/slotCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs63/// Pass ①:移动端重复状态栏去重。scaffold 注入了一个固定状态栏,COMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs1300/// orchestrator (and, in a later step, the agentic design loop) calls to runCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs1306/// orchestrator's cleanup stage now routes through here so a future agenticCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs1354 // deleted sparse scaffold id can be replaced by the kept rich root id.COMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs1377 // orchestrator (per-subtask role passes already ran) and the agenticCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup.rs1388 // horizontal layout (MiniMax-M3 in the agentic loop) — flip it to a rowCOMMENT
MEDIUMcrates/op-orchestrator/src/types.rs19 /// 只读访问当前文档 —— cleanup 判定空 scaffold、未来 S3cCOMMENT
MEDIUMcrates/op-orchestrator/src/app_shell_tests.rs669 // MiniMax-M3 in the agentic loop: the root already carries [Sidebar, Main]COMMENT
MEDIUMcrates/op-orchestrator/src/cleanup_desktop_dashboard.rs5//! scaffold, but weaker models can still emit a 1200px root whose mainCOMMENT
MEDIUMcrates/op-orchestrator/src/dashboard_columns_tests.rs2//! plus section sizing. The tests for the removed bespoke-scaffold helpersCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests.rs136 // 至少有 scaffold + 两个 subtask 的 InsertSubtree。COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests.rs656/// GOLDEN end-to-end (no LLM): dashboard plan → two-column scaffold →COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests.rs657/// scripted subtasks → finalize. The scaffold's Sidebar shell is authoredCOMMENT
MEDIUMcrates/op-orchestrator/src/cleanup_tests.rs105 // minimax2 reproduction: the agentic loop's model already split the root intoCOMMENT
MEDIUMcrates/op-orchestrator/src/loop_finalize_tests.rs1//! Tests for the Track-1 Step-4 agentic-loop finalize backstop.COMMENT
MEDIUMcrates/op-orchestrator/src/loop_finalize_tests.rs8/// children — the shape the agentic loop assembles by loop end (sectionsCOMMENT
MEDIUMcrates/op-orchestrator/src/loop_finalize_tests.rs114/// the realistic agentic-loop structure), the Class-A section passes run on theCOMMENT
MEDIUMcrates/op-orchestrator/src/concurrent.rs4//! N-root scaffold + semaphore/`join_all` worker fan-in) was collapsed into theCOMMENT
MEDIUMcrates/op-orchestrator/src/run.rs8//! 专用 scaffold)都收敛进这条路径 —— 它们的 per-subtask 产出与确定性后处理COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs9//! 完全一致,仅差并发并行度 / scaffold 形状(默认 + 基准路径都没用上)。COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs54/// Used to re-resolve the pre-built two-column scaffold's column ids after theCOMMENT
MEDIUMcrates/op-orchestrator/src/run.rs112 /// 规划 → 单根 scaffold → 顺序子 agent → 清理 的单一路径。COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs146 // sidebar+main scaffold) flow through this same single-root sequentialCOMMENT
MEDIUMcrates/op-orchestrator/src/run.rs148 // differing in wall-clock parallelism / scaffold shape, neither of whichCOMMENT
MEDIUMcrates/op-orchestrator/src/run.rs216 // scaffold 模板 bug —— 收尾后报内部错误。COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs232 // Route subtasks into the scaffold. For a pre-built two-columnCOMMENT
MEDIUMcrates/op-orchestrator/src/run.rs426 // 错误地移除 scaffold root 并返回 NoContent 而非 Aborted)。COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs448 // **全部**零内容(zero_content)才删 scaffold root。COMMENT
MEDIUMcrates/op-orchestrator/src/run.rs524 // 错误路径才移除空 scaffold root;abort / 正常零内容只回滚变量。COMMENT
MEDIUMcrates/op-orchestrator/src/dashboard_columns.rs6//! bespoke sidebar+main *scaffold* strategy (and the detection / surface-color /COMMENT
MEDIUMcrates/op-orchestrator/src/dashboard_columns.rs30/// app-shell scaffold without requiring a dashboard-content gate.COMMENT
MEDIUMcrates/op-orchestrator/src/dashboard_columns.rs64/// structural gate for pre-building the two-column scaffold, so a landing pageCOMMENT
MEDIUMcrates/op-orchestrator/src/prompt_tests.rs219 // Mobile UI guardrails now load via the `mobile-ui` skill (system prompt);COMMENT
MEDIUMcrates/op-orchestrator/src/prompt_tests.rs617 // Mobile UI guardrails now load via the `mobile-ui` skill (system prompt),COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs7//! - Append mode: no scaffold `InsertSubtree` for the root, every subtask'sCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs122/// (a) Append mode: run does NOT emit a scaffold-root InsertSubtree.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs126/// (one per subtask), NOT a scaffold-root InsertSubtree.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs130 // replaces it with ctx.target_parent_id (the live id) before any scaffold call.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs170 // NOT 3 (which would indicate a scaffold-root insert).COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs177 // If scaffold were inserted, it would be 4.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs270 // 1 pre-setup + 2 sub-agent InsertSubtrees = 3 total (no N scaffold roots).COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs332/// A request without `append_context` takes the normal scaffold+sequentialCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs333/// path: it inserts a scaffold root frame AND the sub-agent nodes.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs376 // Normal path: scaffold root + 2 subtask inserts = at least 3 InsertSubtree.COMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs450/// a multi-frame dashboard scaffold (sidebar + main + row frames). With theCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs451/// guard, the append fast-path takes priority — no scaffold-root InsertSubtreeCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs534 // No dashboard scaffold: total InsertSubtree count is exactlyCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs535 // 1 (pre-setup) + 2 (sub-agents) = 3. Dashboard scaffold would pushCOMMENT
MEDIUMcrates/op-orchestrator/src/run_tests_b4.rs792 // The scaffold root must now contain the sub-agent nodes (cleanup didn'tCOMMENT
72 more matches not shown…
Hallucination Indicators40 hits · 400 pts
SeverityFileLineSnippetContext
CRITICAL…p-host-web/src/widget_host/keyboard_settings_commit.rs14 let Some(focus) = self.editor_state.editor_ui.agent_settings.focus.take() else {CODE
CRITICAL…s/op-host-web/src/widget_host/variables_panel_press.rs190 self.editor_state.ui.variables.active_theme.remove(&axis);CODE
CRITICAL…s/op-host-web/src/widget_host/variables_panel_press.rs201 self.editor_state.ui.variables.active_theme.insert(CODE
CRITICAL…es/op-host-web/src/widget_host/keyboard_text_inputs.rs32 && self.editor_state.editor_ui.agent_settings.focus.is_some())CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard_git.rs12 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard_git.rs102 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard_git.rs240 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICAL…/src/widget_host/agent_settings_compact_press_tests.rs113 host.editor_state.editor_ui.agent_settings.acp_agents.len(),CODE
CRITICAL…/src/widget_host/agent_settings_compact_press_tests.rs134 host.editor_state.editor_ui.agent_settings.acp_agents.len(),CODE
CRITICALcrates/op-host-web/src/widget_host/settings_caret.rs27 if self.editor_state.editor_ui.agent_settings.focus.is_none() {CODE
CRITICALcrates/op-host-web/src/widget_host/settings_caret.rs37 if self.editor_state.editor_ui.agent_settings.focus.is_none() {CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard.rs16 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard.rs227 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard.rs408 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-web/src/widget_host/io_tests.rs181 assert!(borrowed.host.editor_state.editor_ui.recent_files.is_empty());CODE
CRITICALcrates/op-host-web/src/widget_host/release_input.rs197 let chat_model_pressed = self.editor_state.editor_ui.chat_model_picker.pressed.take();CODE
CRITICALcrates/op-host-web/src/widget_host/keyboard_edit_ops.rs180 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICAL…host-web/src/widget_host/property_panel_press_tests.rs571 host.editor_state.editor_ui.image_panel.search_query.clear();CODE
CRITICAL…tes/op-host-web/src/widget_host/overlay_press_tests.rs281 host.editor_state.editor_ui.file_menu.hover.is_some(),CODE
CRITICAL…host-web/src/widget_host/agent_settings_press_tests.rs212 assert!(host.editor_state.editor_ui.agent_settings.focus.is_none());CODE
CRITICAL…/op-host-web/src/widget_host/variables_panel_commit.rs101 if let Some(value) = self.editor_state.ui.variables.active_theme.remove(old_axis) {CODE
CRITICAL…es/op-host-web/src/widget_host/property_hover_tests.rs105 host.editor_state.editor_ui.locale_picker.hover.is_some(),CODE
CRITICALcrates/op-host-native/src/widget_host/scroll.rs532 && self.editor_state.editor_ui.git_panel.diff.is_some()CODE
CRITICALcrates/op-host-native/src/widget_host/scroll.rs693 && self.editor_state.editor_ui.git_panel.diff.is_some()CODE
CRITICALcrates/op-host-native/src/widget_host/shortcuts.rs90 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-native/src/widget_host/shortcuts.rs98 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICAL…p-host-native/src/widget_host/variables_panel_press.rs188 self.editor_state.ui.variables.active_theme.remove(&axis);CODE
CRITICAL…p-host-native/src/widget_host/variables_panel_press.rs199 self.editor_state.ui.variables.active_theme.insert(CODE
CRITICAL…tes/op-host-native/src/widget_host/release_feedback.rs11 let chat_model_pressed = self.editor_state.editor_ui.chat_model_picker.pressed.take();CODE
CRITICALcrates/op-host-native/src/widget_host/settings_caret.rs27 if self.editor_state.editor_ui.agent_settings.focus.is_none() {CODE
CRITICALcrates/op-host-native/src/widget_host/settings_caret.rs37 if self.editor_state.editor_ui.agent_settings.focus.is_none() {CODE
CRITICALcrates/op-host-native/src/widget_host/keyboard.rs70 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-native/src/widget_host/keyboard.rs82 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICALcrates/op-host-native/src/widget_host/keyboard.rs525 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICALcrates/op-host-native/src/widget_host/keyboard.rs532 if let Some(form) = self.editor_state.editor_ui.git_panel.clone_form.as_mut() {CODE
CRITICALcrates/op-host-native/src/widget_host/keyboard.rs1265 if self.editor_state.editor_ui.agent_settings.focus.is_some() {CODE
CRITICAL…es/op-host-native/src/widget_host/settings_dispatch.rs11 let Some(focus) = self.editor_state.editor_ui.agent_settings.focus.take() else {CODE
CRITICALcrates/op-host-native/src/widget_host/input.rs49 && self.editor_state.editor_ui.agent_settings.focus.is_some())CODE
CRITICALcrates/op-host-native/src/widget_host/input.rs63 self.editor_state.editor_ui.agent_settings.focus.is_some()CODE
CRITICAL…-host-native/src/widget_host/variables_panel_commit.rs103 if let Some(value) = self.editor_state.ui.variables.active_theme.remove(old_axis) {CODE
Fake / Example Data34 hits · 34 pts
SeverityFileLineSnippetContext
LOWcrates/op-editor-core/assets/shadcn-kit.json2096 "content": "John Doe",CODE
LOWcrates/op-editor-core/assets/shadcn-kit.json2322 "tags": ["skeleton", "loading", "placeholder", "shimmer"]CODE
LOWcrates/op-orchestrator/src/tree_heuristics_tests.rs402 {"type":"text","content":"Jane Doe"}CODE
LOWcrates/op-orchestrator/src/cleanup_typography.rs209 "placeholder",CODE
LOWcrates/op-orchestrator/src/cleanup_typography.rs266 "id": "placeholder",CODE
LOWcrates/op-orchestrator/src/cleanup_typography.rs312 assert!(pairs.contains(&("placeholder", 400)));CODE
LOWcrates/op-orchestrator/src/orchestration_self_check.rs439 "placeholder",CODE
LOWcrates/op-orchestrator/src/role_infer_tests.rs194 {"type":"text_input","id":"si","placeholder":"Search for food"}CODE
LOWcrates/op-orchestrator/src/role_infer_tests.rs227 {"type":"text_input","id":"si","placeholder":"Search"}CODE
LOWcrates/op-orchestrator/src/subagent.rs1002 {"type":"frame","id":"sb","name":"Search Bar","children":[{"type":"text_input","id":"si","placeholder":"CODE
LOWcrates/op-orchestrator/src/cleanup_tests.rs947 "id": "placeholder",CODE
LOWcrates/op-orchestrator/src/role_post_pass.rs199 .get("placeholder")CODE
LOWcrates/op-cli/assets/skill-bundle.json4 "skills/openpencil-design/SKILL.md": "---\nname: openpencil-design\ndescription: Use when designing UI with OpenPencCODE
LOWcrates/op-design-lint/src/detectors/widget_a11y.rs87 "type": "text_input", "id": "i1", "placeholder": "Search…"CODE
LOWcrates/op-design-lint/src/detectors/widget_a11y.rs112 let empty = node(json!({"type": "text_input", "id": "i1", "placeholder": ""}));CODE
LOWcrates/op-design-lint/src/detectors/widget_a11y.rs115 let blank = node(json!({"type": "text_input", "id": "i2", "placeholder": " "}));CODE
LOWcrates/op-host-native/src/widget_host/input_tests.rs1270 "x":24,"y":32,"width":220,"height":40,"placeholder":"Email"}CODE
LOWcrates/op-host-native/src/widget_host/input_tests.rs1298 "x":24,"y":32,"width":220,"height":40,"placeholder":"Email"}CODE
LOWcrates/op-pen-loader/src/adapter_tests.rs721 {"type":"text_input","id":"ti","value":"hi","placeholder":"Type"},CODE
LOWcrates/op-pen-loader/src/layout_scene_tests.rs884 "leadingIcon":"mail","trailingIcon":"eye","placeholder":"you@example.com"}]}]}"##,CODE
LOWcrates/op-pen-loader/src/widget_payload_tests.rs19 "placeholder":"Search","cornerRadius":8,CODE
LOWcrates/op-pen-loader/src/widget_payload_tests.rs37 "placeholder":"0","cornerRadius":6,CODE
LOW…p-editor-ui/src/widgets/property_panel_widget_tests.rs28 "x":24,"y":32,"width":220,"height":40,"placeholder":"Email"}CODE
LOW…p-editor-ui/src/widgets/property_panel_widget_tests.rs56 "placeholder":"Email address","value":"kai@example.com"}CODE
LOW…p-editor-ui/src/widgets/property_panel_widget_tests.rs85 "placeholder":"Email address",CODE
LOW…p-editor-ui/src/widgets/property_panel_widget_tests.rs219 "x":0,"y":0,"width":220,"height":40,"placeholder":"Email"}CODE
LOWcrates/op-codegen/src/codegen_targets.rs76 opt_attr("placeholder", n.placeholder.as_deref()),CODE
LOWcrates/op-codegen/src/codegen_targets.rs81 opt_attr("placeholder", n.placeholder.as_deref()),CODE
LOWcrates/op-host-desktop/src/image_search_session.rs552 .unwrap_or("placeholder")CODE
LOWcrates/op-host-desktop/src/image_search_session.rs608 | "placeholder"CODE
LOWcrates/op-ai-skills/skills/knowledge/code-to-design.md229{ "type": "text_input", "id": "email", "placeholder": "Email" }CODE
LOW…s/op-ai-skills/skills/phases/generation/design-code.md51- Never use lorem ipsum or generic "Your text here" placeholders.CODE
LOWcrates/op-ai-skills/src/lib.rs304 prompt.contains("placeholder"),CODE
LOWcrates/op-ai-skills/src/loader.rs242 assert!(skill.content.contains("placeholder"));CODE
AI Slop Vocabulary11 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMtools/check-web-browser-smoke.sh5# 1. `/smoke/step-1b.html` — pure CanvasKit mount harness.COMMENT
MEDIUMcrates/op-editor-core/src/fills.rs1027 /// stays robust to schema growth.COMMENT
MEDIUMcrates/op-orchestrator/src/app_shell.rs118/// more robust than a root-name keyword (the bug root "Barbershop ClientCOMMENT
LOWcrates/op-cli/assets/skill-bundle.json4 "skills/openpencil-design/SKILL.md": "---\nname: openpencil-design\ndescription: Use when designing UI with OpenPencCODE
MEDIUMcrates/op-host-web/src/web_design_md.rs20const DESIGN_MD_SYSTEM_PROMPT: &str = r##"You are a Design Systems Lead. Analyze the provided PenNode design tree and geCODE
MEDIUM…s/op-host-native/src/backend/skia/font_import_tests.rs14//! generation counter use strict `>` (robust to concurrent bumps from otherCOMMENT
MEDIUM…ost-native/src/widget_host/variables_panel_ux_tests.rs42/// panel rect — keeps the tests robust against geometry tweaks.COMMENT
MEDIUMcrates/op-host-services/src/design_md_llm.rs8const DESIGN_MD_SYSTEM_PROMPT: &str = r##"You are a Design Systems Lead. Analyze the provided PenNode design tree and geCODE
MEDIUMcrates/op-host-services/src/model_discovery.rs505/// robust whether the CLI replies newline-delimited orCOMMENT
MEDIUMcrates/op-smoke/Cargo.toml61# Direct openai-compat HTTP client for the smoke harness (OPENPENCIL_SMOKE_DIRECT=1)COMMENT
MEDIUMcrates/op-host-desktop/src/design_md_host.rs17const DESIGN_MD_SYSTEM_PROMPT: &str = r##"You are a Design Systems Lead. Analyze the provided PenNode design tree and geCODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHcrates/op-editor-core/src/editor_ui_state.rs1255 /// True while the desktop host is waiting for an AI-generatedCOMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…kills/skills/phases/planning/landing-page-predesign.md14## Step 1: Concept ExtractionCOMMENT
LOW…kills/skills/phases/planning/landing-page-predesign.md29## Step 2: Superfan SimulationCOMMENT
LOW…kills/skills/phases/planning/landing-page-predesign.md45## Step 3: Transformation MappingCOMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/package-appimage.sh22# Usage:COMMENT
LOWscripts/install-op.sh8# Usage:COMMENT
LOWscripts/package-deb.sh17# Usage:COMMENT
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtools/merge-settings-i18n.py888CODE
LOWtools/convert-locales.py90CODE
LOWscripts/ab-v9/run_matrix.py102CODE
LOWscripts/ab-v9/run_matrix.py328CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWcrates/op-cli/assets/skill-bundle.json4 "skills/openpencil-design/SKILL.md": "---\nname: openpencil-design\ndescription: Use when designing UI with OpenPencCODE
LOWcrates/op-cli/assets/skill-bundle.json4 "skills/openpencil-design/SKILL.md": "---\nname: openpencil-design\ndescription: Use when designing UI with OpenPencCODE
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/self-loop.sh88except Exception:CODE
LOWscripts/self-loop.sh92except Exception:CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/merge-settings-i18n.py16CODE