AI Slop Code RIsk Monitor

cft0808/edict

🏛️ 三省六部制 · OpenClaw Multi-Agent Orchestration System — 9 specialized AI agents with real-time dashboard, model config, and full audit trails

17.9 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for cft0808/edict, a Python project with 16,986 GitHub stars. SynthScan examined 38,937 lines of code across 168 source files, recording 424 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 17.9 (Elevated 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.

17.9
Adjusted Signal
17.9
Raw Pattern Score
100%
Time Factor
2026-09-28
Last Push
17.0K
Stars
Python
Language
38.9K
Lines of Code
168
Files
424
Pattern Hits
2026-10-12
Scan Date
0.21
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 13.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 9.7/100 · LOW

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

Agent Over-Engineering Ratio 51.5/100 · HIGH

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

PR Review Velocity Impact 62.4/100 · HIGH

Which changes need focused human review? 424 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 36MEDIUM 79LOW 309

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 424 distinct pattern matches across 11 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.

Decorative Section Separators65 hits · 200 pts
SeverityFileLineSnippetContext
MEDIUMuninstall.sh2# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMuninstall.sh4# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMuninstall.sh25# ── Step 0: 确认 ────────────────────────────────────────────COMMENT
MEDIUMuninstall.sh42# ── Step 1: 停止正在运行的服务 ────────────────────────────────COMMENT
MEDIUMuninstall.sh57# ── Step 2: 清理 OpenClaw 注册配置 ──────────────────────────────COMMENT
MEDIUMuninstall.sh102# ── Step 3: 清除 Workspace 目录 ─────────────────────────────────COMMENT
MEDIUMuninstall.sh119# ── Step 4: 清除本地数据缓存 ────────────────────────────────────COMMENT
MEDIUMuninstall.sh138# ── Step 5: 重启 Gateway ────────────────────────────────────────COMMENT
MEDIUMuninstall.sh152# ── Main ────────────────────────────────────────────────────COMMENT
MEDIUMinstall.sh2# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMinstall.sh4# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMinstall.sh27# ── Step 0: 依赖检查 ──────────────────────────────────────────COMMENT
MEDIUMinstall.sh50# ── Step 0.5: 备份已有 Agent 数据 ──────────────────────────────COMMENT
MEDIUMinstall.sh91# ── Step 1: 创建 Workspace ──────────────────────────────────COMMENT
MEDIUMinstall.sh123# ── Step 2: 注册 Agents ─────────────────────────────────────COMMENT
MEDIUMinstall.sh189# ── Step 3: 初始化 Data ─────────────────────────────────────COMMENT
MEDIUMinstall.sh239# ── Step 3.3: 创建 data 软链接确保数据一致 (Fix #88) ─────────COMMENT
MEDIUMinstall.sh293# ── Step 3.5: 设置 Agent 间通信可见性 (Fix #83) ──────────────COMMENT
MEDIUMinstall.sh304# ── Step 3.5b: 同步 API Key 到所有 Agent ──────────────────────────COMMENT
MEDIUMinstall.sh364# ── Step 4: 构建前端 ──────────────────────────────────────────COMMENT
MEDIUMinstall.sh389# ── Step 5: 首次数据同步 ────────────────────────────────────COMMENT
MEDIUMinstall.sh401# ── Step 6: 重启 Gateway ────────────────────────────────────COMMENT
MEDIUMinstall.sh411# ── Main ────────────────────────────────────────────────────COMMENT
MEDIUMstart.sh2# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMstart.sh5# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMedict.sh2# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMedict.sh5# ══════════════════════════════════════════════════════════════COMMENT
MEDIUMedict/朝堂议政_开发规格.md50// ── 消息类型 ────────────────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md79// ── 官员身份 ─────────────────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md105// ── Agent 运行时状态 ─────────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md113// ── 会话 ─────────────────────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md126// ── 随机事件(命运骰子)──────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md312// ── system prompt 生成器 ───────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md338// ── Agent 主类 ─────────────────────────────────────────────────COMMENT
MEDIUMedict/朝堂议政_开发规格.md448 // ── 私有方法 ────────────────────────────────────────────────COMMENT
MEDIUMedict/docker-compose.yml1# ══════════════════════════════════════════════════════COMMENT
MEDIUMedict/docker-compose.yml3# ══════════════════════════════════════════════════════COMMENT
MEDIUMedict/frontend/src/components/CourtDiscussion.tsx313 // ═══════════════════COMMENT
MEDIUMedict/frontend/src/components/CourtDiscussion.tsx315 // ═══════════════════COMMENT
MEDIUMedict/frontend/src/components/CourtDiscussion.tsx437 // ═══════════════════COMMENT
MEDIUMedict/frontend/src/components/CourtDiscussion.tsx439 // ═══════════════════COMMENT
MEDIUM⚡tests/test_sync_symlinks.py14# ── Bootstrap: make scripts/ importable ──────────────────────────COMMENT
MEDIUM⚡tests/test_sync_symlinks.py21# ────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_sync_symlinks.py23# ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_sync_symlinks.py51# ── Tests ────────────────────────────────────────────────────────COMMENT
MEDIUMdocs/task-dispatch-architecture.md1387# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1389# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1401# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1403# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1414# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1416# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1450# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1452# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1487# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1489# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1509# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1511# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1531# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1533# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMdocs/task-dispatch-architecture.md1549# ═══════════════════════════════════════════════════════════COMMENT
5 more matches not shown…
Empty Error Handlers36 hits · 180 pts
SeverityFileLineSnippetContext
HIGHedict/backend/app/api/websocket.py134except WebSocketDisconnect:CODE
HIGHedict/backend/app/workers/dispatch_worker.py200except (json.JSONDecodeError, OSError):CODE
HIGHedict/backend/app/workers/dispatch_worker.py226except (json.JSONDecodeError, OSError):CODE
HIGHedict/backend/app/workers/dispatch_worker.py245except (json.JSONDecodeError, OSError):CODE
HIGHedict/backend/app/workers/dispatch_worker.py301except OSError:CODE
HIGHedict/backend/app/workers/dispatch_worker.py626except OSError:CODE
HIGHdashboard/server.py346except Exception:CODE
HIGHdashboard/server.py431except ImportError:CODE
HIGHdashboard/server.py460except Exception:CODE
HIGHdashboard/server.py578except Exception:CODE
HIGHdashboard/server.py1776except Exception:CODE
HIGHdashboard/server.py2059except Exception:CODE
HIGHdashboard/server.py2344except (BrokenPipeError, ConnectionResetError):CODE
HIGHdashboard/server.py2361except (BrokenPipeError, ConnectionResetError):CODE
HIGHdashboard/server.py2376except (BrokenPipeError, ConnectionResetError):CODE
HIGHdashboard/server.py511except Exception:CODE
HIGHdashboard/server.py944except Exception:CODE
HIGHdashboard/server.py2567except (BrokenPipeError, ConnectionResetError):CODE
HIGHscripts/sync_agent_config.py190except Exception:CODE
HIGHscripts/sync_agent_config.py291except Exception:CODE
HIGHscripts/refresh_live_data.py54except Exception:CODE
HIGHscripts/fetch_morning_news.py99except Exception:CODE
HIGHscripts/fetch_morning_news.py164except Exception:CODE
HIGHscripts/file_lock.py53except OSError:CODE
HIGHscripts/sync_from_openclaw_runtime.py247except Exception:CODE
HIGHscripts/sync_from_openclaw_runtime.py257except Exception:CODE
HIGHscripts/skill_manager.py152except Exception:CODE
HIGHscripts/sync_officials_stats.py121except Exception: passCODE
HIGHscripts/sync_officials_stats.py100except Exception: passCODE
HIGHscripts/sync_officials_stats.py120except Exception: passCODE
HIGHscripts/utils.py65except ValueError:CODE
HIGHscripts/kanban_update.py121except Exception:CODE
HIGHscripts/kanban_update.py129except Exception:CODE
HIGHscripts/refresh_watcher.py93except Exception:CODE
HIGHscripts/refresh_watcher.py70except FileNotFoundError:CODE
HIGHscripts/apply_model_changes.py33except OSError:CODE
Excessive Try-Catch Wrapping127 hits · 120 pts
SeverityFileLineSnippetContext
LOWuninstall.sh79except Exception as e:CODE
LOWedict.sh187except Exception:CODE
LOWedict/backend/app/db.py39 except Exception:CODE
LOWedict/backend/app/api/admin.py27 except Exception as e:CODE
LOWedict/backend/app/api/admin.py35 except Exception as e:CODE
LOWedict/backend/app/api/websocket.py49 except Exception as e:CODE
LOWedict/backend/app/api/websocket.py75 except Exception as e:CODE
LOWedict/backend/app/api/websocket.py99 except Exception:CODE
LOWedict/backend/app/api/websocket.py132 except Exception:CODE
LOWedict/backend/app/api/websocket.py148 except Exception:CODE
LOWedict/backend/app/workers/outbox_relay.py45 except Exception as e:CODE
LOWedict/backend/app/workers/outbox_relay.py85 except Exception as exc:CODE
LOWedict/backend/app/workers/outbox_relay.py110 except Exception as dlq_err:CODE
LOWedict/backend/app/workers/dispatch_worker.py349 except Exception as e:CODE
LOWedict/backend/app/workers/dispatch_worker.py536 except Exception as e:CODE
LOWedict/backend/app/workers/dispatch_worker.py597 except Exception as e:CODE
LOWedict/backend/app/workers/orchestrator_worker.py98 except Exception as e:CODE
LOWedict/backend/app/workers/orchestrator_worker.py139 except Exception as e:CODE
LOWedict/backend/app/workers/orchestrator_worker.py341 except Exception as e:CODE
LOWedict/backend/app/channels/qq.py44 except Exception:CODE
LOWedict/backend/app/channels/base.py34 except Exception:CODE
LOWedict/scripts/kanban_update_edict.py120 except Exception:CODE
LOWedict/scripts/kanban_update_edict.py137 except Exception as e:CODE
LOWedict/scripts/kanban_update_edict.py155 except Exception as e:CODE
LOWedict/migration/migrate_json_to_pg.py158 except Exception as e:CODE
MEDIUMtests/test_task_mutation_race.py200def update_field_a():CODE
MEDIUMtests/test_task_mutation_race.py207def update_field_b():CODE
LOWtests/test_task_mutation_race.py204 except Exception as e:CODE
LOWtests/test_task_mutation_race.py211 except Exception as e:CODE
LOWdashboard/auth.py46 except Exception:CODE
LOWdashboard/auth.py80 except Exception:CODE
LOWdashboard/auth.py125 except Exception:CODE
MEDIUMdashboard/server.py155def _refresh():CODE
MEDIUMdashboard/server.py986def do_wake():CODE
MEDIUMdashboard/server.py2176def _do_dispatch():CODE
MEDIUMdashboard/server.py2341def handle(self):CODE
MEDIUMdashboard/server.py2660def do_refresh():CODE
MEDIUMdashboard/server.py2827def apply_async():CODE
LOW⚡dashboard/server.py578 except Exception:CODE
LOW⚡dashboard/server.py582 except Exception as e:CODE
LOWdashboard/server.py105 except Exception:CODE
LOWdashboard/server.py112 except Exception:CODE
LOWdashboard/server.py158 except Exception as e:CODE
LOWdashboard/server.py311 except Exception as e:CODE
LOWdashboard/server.py346 except Exception:CODE
LOWdashboard/server.py388 except Exception as e:CODE
LOWdashboard/server.py415 except Exception as e:CODE
LOWdashboard/server.py433 except Exception as e:CODE
LOWdashboard/server.py460 except Exception:CODE
LOWdashboard/server.py511 except Exception:CODE
LOWdashboard/server.py550 except Exception as e:CODE
LOWdashboard/server.py610 except Exception as e:CODE
LOWdashboard/server.py827 except Exception:CODE
LOWdashboard/server.py839 except Exception:CODE
LOWdashboard/server.py865 except Exception:CODE
LOWdashboard/server.py877 except Exception:CODE
LOWdashboard/server.py944 except Exception:CODE
LOWdashboard/server.py1004 except Exception as e:CODE
LOWdashboard/server.py1038 except Exception:CODE
LOWdashboard/server.py1571 except Exception:CODE
67 more matches not shown…
Unused Imports79 hits · 78 pts
SeverityFileLineSnippetContext
LOWedict/backend/app/config.py2CODE
LOWedict/backend/app/models/task.py2CODE
LOWedict/backend/app/models/event.py10CODE
LOWedict/backend/app/models/audit.py7CODE
LOWedict/backend/app/models/audit.py11CODE
LOWedict/backend/app/models/__init__.py3CODE
LOWedict/backend/app/models/__init__.py4CODE
LOWedict/backend/app/models/__init__.py5CODE
LOWedict/backend/app/models/__init__.py5CODE
LOWedict/backend/app/models/__init__.py6CODE
LOWedict/backend/app/models/__init__.py7CODE
LOWedict/backend/app/models/__init__.py8CODE
LOWedict/backend/app/api/tasks.py2CODE
LOWedict/backend/app/api/tasks.py6CODE
LOWedict/backend/app/api/tasks.py9CODE
LOWedict/backend/app/api/tasks.py14CODE
LOWedict/backend/app/api/events.py2CODE
LOWedict/backend/app/api/events.py5CODE
LOWedict/backend/app/api/__init__.py1CODE
LOWedict/backend/app/api/__init__.py2CODE
LOWedict/backend/app/api/__init__.py3CODE
LOWedict/backend/app/api/__init__.py4CODE
LOWedict/backend/app/api/__init__.py5CODE
LOWedict/backend/app/api/admin.py3CODE
LOWedict/backend/app/api/websocket.py17CODE
LOWedict/backend/app/workers/outbox_relay.py15CODE
LOWedict/backend/app/workers/__init__.py1CODE
LOWedict/backend/app/workers/__init__.py1CODE
LOWedict/backend/app/workers/__init__.py2CODE
LOWedict/backend/app/workers/__init__.py2CODE
LOWedict/backend/app/workers/dispatch_worker.py25CODE
LOWedict/backend/app/workers/dispatch_worker.py26CODE
LOWedict/backend/app/workers/dispatch_worker.py26CODE
LOWedict/backend/app/workers/dispatch_worker.py29CODE
LOWedict/backend/app/workers/orchestrator_worker.py21CODE
LOWedict/backend/app/workers/orchestrator_worker.py24CODE
LOWedict/backend/app/services/__init__.py1CODE
LOWedict/backend/app/services/__init__.py1CODE
LOWedict/backend/app/services/__init__.py2CODE
LOWedict/backend/app/channels/webhook.py1CODE
LOWedict/backend/app/channels/telegram.py1CODE
LOWedict/backend/app/channels/discord.py1CODE
LOWedict/backend/app/channels/__init__.py1CODE
LOWedict/backend/app/channels/qq.py1CODE
LOWedict/backend/app/channels/feishu.py1CODE
LOWedict/backend/app/channels/base.py1CODE
LOWedict/backend/app/channels/slack.py1CODE
LOWedict/backend/app/channels/wecom.py1CODE
LOWedict/migration/env.py24CODE
LOWedict/migration/env.py24CODE
LOWedict/migration/env.py24CODE
LOWedict/migration/env.py24CODE
LOWedict/migration/migrate_json_to_pg.py29CODE
LOWedict/migration/migrate_json_to_pg.py30CODE
LOWedict/migration/migrate_json_to_pg.py30CODE
LOWtests/test_e2e_kanban.py6CODE
LOWtests/test_e2e_kanban.py13CODE
LOWtests/test_e2e_kanban.py13CODE
LOWtests/test_e2e_kanban.py13CODE
LOWtests/test_cwe22_file_url.py7CODE
19 more matches not shown…
Hyper-Verbose Identifiers58 hits · 60 pts
SeverityFileLineSnippetContext
LOWedict/backend/app/channels/qq.py48def _resolve_api_url_and_token(base_url: str) -> tuple[str, str]:CODE
LOWtests/test_e2e_kanban.py82def test_short_title_rejected():CODE
LOWtests/test_e2e_kanban.py115def test_done_not_overwritable():CODE
LOW⚡tests/test_cwe22_file_url.py16def test_file_url_path_traversal_blocked(tmp_path):CODE
LOWtests/test_cwe22_file_url.py53def test_file_url_within_allowed_roots_works(tmp_path):CODE
LOWtests/test_cwe22_file_url.py82def test_file_url_etc_passwd_blocked(tmp_path):CODE
LOW⚡tests/test_task_mutation_race.py52 def test_modify_tasks_exists_and_callable(self, monkeypatch, tmp_path):CODE
LOW⚡tests/test_task_mutation_race.py57 def test_modify_task_exists_and_callable(self, monkeypatch, tmp_path):CODE
LOW⚡tests/test_task_mutation_race.py62 def test_modify_task_updates_single_task(self, monkeypatch, tmp_path):CODE
LOW⚡tests/test_task_mutation_race.py272 def test_modify_tasks_uses_atomic_json_update(self):CODE
LOW⚡tests/test_task_mutation_race.py281 def test_modify_task_delegates_to_modify_tasks(self):CODE
LOW⚡tests/test_task_mutation_race.py290 def test_handle_scheduler_retry_uses_modify_task(self):CODE
LOW⚡tests/test_task_mutation_race.py299 def test_handle_scheduler_rollback_uses_modify_task(self):CODE
LOWtests/test_task_mutation_race.py76 def test_modify_task_returns_false_for_missing(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py81 def test_modify_tasks_bulk_update(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py106 def test_scheduler_update_persists_atomically(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py123 def test_scheduler_update_missing_task(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py135 def test_scan_stalled_task_triggers_retry(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py179 def test_concurrent_writes_both_persist(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py241 def test_update_task_scheduler_no_load_save(self):CODE
LOWtests/test_task_mutation_race.py252 def test_handle_scheduler_scan_no_save_tasks(self):CODE
LOWtests/test_task_mutation_race.py316 def test_load_tasks_still_works(self, monkeypatch, tmp_path):CODE
LOWtests/test_task_mutation_race.py323 def test_save_tasks_still_works(self, monkeypatch, tmp_path):CODE
LOWtests/test_file_lock.py19def test_read_missing_returns_default(tmp_path):CODE
LOWtests/test_file_lock.py24def test_update_modifies_data(tmp_path):CODE
LOWtests/test_file_lock.py50def test_write_atomic_no_partial(tmp_path):CODE
LOWtests/test_sync_symlinks.py68 def test_idempotent_when_up_to_date(self, tmp_path):CODE
LOWtests/test_sync_symlinks.py78 def test_replaces_physical_copy(self, tmp_path):CODE
LOWtests/test_sync_symlinks.py91 def test_replaces_broken_symlink(self, tmp_path):CODE
LOWtests/test_sync_symlinks.py103 def test_skips_self_referential_via_directory_symlink(self, tmp_path):CODE
LOWtests/test_sync_symlinks.py137 def test_creates_symlinks_in_workspace(self, project):CODE
LOWtests/test_sync_symlinks.py156 def test_legacy_workspace_main(self, project):CODE
LOWtests/test_sync_symlinks.py174 def test_replaces_old_physical_copies(self, project):CODE
LOWtests/test_sync_symlinks.py187 def test_file_resolves_to_project_root(self, project):CODE
LOWtests/test_sync_symlinks.py203 def test_no_self_referential_symlinks_when_workspace_scripts_is_dir_symlink(CODE
LOWtests/test_kanban.py87def test_done_routes_to_review(tmp_path):CODE
LOWtests/test_kanban.py116def test_done_rejects_incomplete_todos(tmp_path):CODE
LOWtests/test_dashboard_dispatch.py11def test_dispatch_records_missing_openclaw_cli(monkeypatch, tmp_path):CODE
LOWtests/test_sync_agent_config.py15def test_sync_agent_config_accepts_allow_agents_key(tmp_path, monkeypatch):CODE
LOWtests/test_dashboard_review_action.py19def test_review_approve_rejects_incomplete_todos(monkeypatch):CODE
LOWtests/test_dashboard_review_action.py51def test_review_approve_allows_complete_todos(monkeypatch):CODE
LOWtests/test_state_machine_consistency.py59def test_state_transitions_consistent():CODE
LOW⚡tests/test_state_machine_consistency.py84def test_pending_confirm_exists():CODE
LOW⚡tests/test_state_machine_consistency.py93def test_pending_has_outgoing_edges():CODE
LOW⚡tests/test_state_machine_consistency.py99def test_terminal_states_have_no_outgoing():CODE
LOWtests/test_skill_manager.py27 def test_default_skills_do_not_use_removed_openclaw_hub(self):CODE
LOWtests/test_skill_manager.py39 def test_custom_hub_base_restores_hub_skill_urls(self):CODE
LOWtests/test_skill_manager.py59 def test_import_official_hub_uses_per_skill_recommended_agents(self):CODE
LOW⚡dashboard/server.py591def migrate_notification_config():CODE
LOWdashboard/server.py844def _get_agent_session_status(agent_id):CODE
LOWdashboard/server.py1180def handle_scheduler_escalate(task_id, reason=''):CODE
LOWdashboard/server.py1214def handle_scheduler_rollback(task_id, reason=''):CODE
LOWdashboard/server.py1393def _startup_recover_queued_dispatches():CODE
LOWdashboard/server.py1620def get_agent_activity_by_keywords(agent_id, keywords, limit=20):CODE
LOWdashboard/court_discuss.py411def _try_repair_truncated_discuss(content: str) -> dict | None:CODE
LOWscripts/sync_agent_config.py258def sync_scripts_to_workspaces():CODE
LOWscripts/kanban_update.py49def _load_canonical_transitions() -> dict:CODE
LOWscripts/kanban_update.py243def _infer_agent_id_from_runtime(task=None):CODE
Deep Nesting39 hits · 33 pts
SeverityFileLineSnippetContext
LOWedict/backend/app/api/websocket.py80CODE
LOWedict/backend/app/api/websocket.py104CODE
LOWedict/backend/app/workers/outbox_relay.py54CODE
LOWedict/backend/app/workers/dispatch_worker.py186CODE
LOWedict/backend/app/workers/dispatch_worker.py277CODE
LOWedict/backend/app/workers/dispatch_worker.py382CODE
LOWedict/backend/app/workers/orchestrator_worker.py149CODE
LOWedict/backend/app/services/event_bus.py116CODE
LOWedict/backend/app/services/event_bus.py194CODE
LOWedict/scripts/kanban_update_edict.py294CODE
LOWtests/test_task_mutation_race.py252CODE
LOWtests/test_state_machine_consistency.py17CODE
LOWdashboard/server.py351CODE
LOWdashboard/server.py887CODE
LOWdashboard/server.py1254CODE
LOWdashboard/server.py1459CODE
LOWdashboard/server.py1478CODE
LOWdashboard/server.py1620CODE
LOWdashboard/server.py1754CODE
LOWdashboard/server.py1842CODE
LOWdashboard/server.py1273CODE
LOWdashboard/server.py2403CODE
LOWdashboard/server.py2528CODE
LOWdashboard/court_discuss.py322CODE
LOWdashboard/court_discuss.py498CODE
LOWscripts/sync_agent_config.py60CODE
LOWscripts/sync_agent_config.py84CODE
LOWscripts/sync_agent_config.py258CODE
LOWscripts/refresh_live_data.py21CODE
LOWscripts/sync_from_openclaw_runtime.py62CODE
LOWscripts/sync_from_openclaw_runtime.py132CODE
LOWscripts/sync_from_openclaw_runtime.py208CODE
LOWscripts/skill_manager.py312CODE
LOWscripts/sync_officials_stats.py78CODE
LOWscripts/sync_officials_stats.py137CODE
LOWscripts/kanban_update.py49CODE
LOWscripts/kanban_update.py556CODE
LOWscripts/refresh_watcher.py46CODE
LOWscripts/apply_model_changes.py37CODE
Self-Referential Comments3 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_cwe22_file_url.py20 # Create a fake data dir with agent_configCOMMENT
MEDIUM⚡tests/test_cwe22_file_url.py28 # Create a temp OCLAW_HOME that doesn't contain the secret fileCOMMENT
MEDIUMtests/test_sync_symlinks.py38 # Create a couple of dummy scriptsCOMMENT
Over-Commented Block10 hits · 8 pts
SeverityFileLineSnippetContext
LOWrequirements.txt1# 三省六部 · Python 依赖COMMENT
LOWdocs/remote-skills-quickstart.md21 --description "MiniMax 多模态 CLI 技能"COMMENT
LOWdocs/remote-skills-quickstart.md41```COMMENT
LOWdocs/task-dispatch-architecture.md1061# - 参数3:to_dept(流转到谁)COMMENT
LOWdocs/task-dispatch-architecture.md1081# 效果:COMMENT
LOWdocs/task-dispatch-architecture.md1101# - 即时渲染为活动条目COMMENT
LOWdocs/task-dispatch-architecture.md1121# - task.output = "https://..."COMMENT
LOWdocs/task-dispatch-architecture.md1241# 尝试伪造门下省的准奏(直接改JSON)COMMENT
LOWdocs/task-dispatch-architecture.md1401# ═══════════════════════════════════════════════════════════COMMENT
LOWdocs/task-dispatch-architecture.md1561# - 完整活动流:79条活动记录COMMENT
Modern Structural Boilerplate5 hits · 5 pts
SeverityFileLineSnippetContext
LOWedict/backend/app/models/__init__.py10__all__ = ["AuditLog", "OutboxEvent", "Task", "TaskState", "Event", "Thought", "Todo"]CODE
LOWedict/backend/app/api/__init__.py7__all__ = [CODE
LOWedict/backend/app/workers/__init__.py4__all__ = [CODE
LOWedict/backend/app/services/__init__.py4__all__ = ["EventBus", "get_event_bus", "TaskService"]CODE
LOWedict/backend/app/channels/__init__.py46__all__ = [CODE
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMREADME_EN.md342│ ├── court_discuss.py # Court discussion (multi-agent LLM debate engine)CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWedict/backend/app/channels/__init__.py40 "placeholder": ch.placeholder,CODE