AI Slop Code RIsk Monitor

dramaclaw/dramaclaw

A general-purpose AIGC video engine: script to finished film in one pipeline — dramas, ads, product videos, otome games, and more. | 通用 AIGC 视频引擎 —— 从剧本到成片一条流水线,漫剧、广告、电商、乙游皆可

13.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for dramaclaw/dramaclaw, a Python project with 6,846 GitHub stars. SynthScan examined 930,418 lines of code across 2684 source files, recording 12394 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 13.9 (Moderate 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.

13.9
Adjusted Signal
13.9
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
6.8K
Stars
Python
Language
930.4K
Lines of Code
2.7K
Files
12.4K
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 36.8/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 5.7/100 · LOW

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

Agent Over-Engineering Ratio 45.7/100 · MEDIUM

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

PR Review Velocity Impact 54.3/100 · HIGH

Which changes need focused human review? 12394 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

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

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

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 1HIGH 212MEDIUM 557LOW 11624

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 12394 distinct pattern matches across 21 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 Identifiers9183 hits · 8019 pts
SeverityFileLineSnippetContext
LOW…end/src/features/viewer-kit/three-d/sourceTransform.ts37export function normalizeDirectorWorldSourceTransform(CODE
LOW…end/src/features/viewer-kit/three-d/sourceTransform.ts53export function constrainSourceTransformForType(CODE
LOW…end/src/features/viewer-kit/three-d/sourceTransform.ts60export function sourceTransformFromLegacyWorld(CODE
LOW…nd/src/features/viewer-kit/three-d/directorManifest.ts182export function directorPlacementSpaceForSource(source: { source_type?: DirectorWorldSourceType }): DirectorPlacementSpaCODE
LOW…nd/src/features/viewer-kit/three-d/directorManifest.ts306export function buildStandaloneWorldManifest(params: {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx156function blankDirectorWorldManifest(displayName: string): DirectorStageManifest {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx261function normalizeLegacySourceOption(CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx317function directorSourcesFromManifest(manifest: DirectorStageManifest): NormalizedDirectorSource[] {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx374function markerSnapshotFromOverlayItem(item: unknown, fallbackColor: string): MarkerSnapshot {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx390function actorSnapshotFromOverlayItem(item: unknown, fallbackColor: string): MarkerSnapshot {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx409function propSnapshotFromOverlayItem(item: unknown, fallbackColor: string): MarkerSnapshot {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx417function stagingSnapshotFromOverlayItem(item: unknown, fallbackColor: string): MarkerSnapshot {CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx483function snapshotToDirectorObjectLayer(CODE
LOW…c/features/viewer-kit/three-d/ThreeDDirectorDialog.tsx678function sceneSnapshotForPersistence(CODE
LOW…nd/src/features/viewer-kit/three-d/engine/flyCamera.ts85export function createFlyCameraController(options: FlyCameraControllerOptions): FlyCameraController {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts87export function calculateFrameCaptureRect(input: {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts145export function shouldHideEditorOverlaysForCapture(CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts406export function resolveViewerDevicePixelRatio(rawDpr: number | null | undefined): number {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts413export function resolveSnapshotWorldTransform(snap: ThreeDMarkerSnapshot): {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts443export function sampleActorAnimationPoseFrame(CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts680 function pickSplatOrientationEuler(CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts709 function applySourceViewDefaultCamera(url: string): boolean {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts721 function applyDefaultCameraForSplat(url: string): void {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1172 function instantiateActorProxyModel(color: pc.Color): pc.Entity {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1212 function setActorAnimationPlayback(actor: pc.Entity, playing: boolean): void {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1258 function raycastRayToHorizontalPlane(ray: pc.Ray, planeY: number): pc.Vec3 | null {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1677 function updateTranslateGizmoAttachment(): void {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1719 function syncMountedActorsForSelection(): void {CODE
LOW…nd/src/features/viewer-kit/three-d/engine/viewerApp.ts1862 function getSelectionScreenPosition(): SelectionScreenPosition | null {CODE
LOWfrontend/src/features/viewer-kit/pano/panoManifest.ts73export function legacyPanoInputToManifest(input: LegacyPanoManifestInput): PanoViewerManifest {CODE
LOWfrontend/src/features/app/errorDialogEvents.ts28export function subscribeOpenGlobalErrorDialog(CODE
LOW…d/src/features/version-update/version-update-events.ts9export function subscribeOpenVersionUpdateDialog(listener: () => void) {CODE
LOWfrontend/src/features/superchat/message-presentation.ts7export function resolveMessagePresentation({CODE
LOWfrontend/src/features/superchat/use-superchat.ts90function isInternalHiddenToolStatusName(name: string): boolean {CODE
LOWfrontend/src/features/superchat/use-superchat.ts138function freezoneCanvasCommandExecutionMode(): "manual_confirm" | "auto_execute" {CODE
LOWfrontend/src/features/superchat/use-superchat.ts200function updateCachedMessagesForScope(CODE
LOWfrontend/src/features/superchat/use-superchat.ts243function isFreezoneCanvasReferenceAttachmentLike(value: unknown): value is Record<string, unknown> {CODE
LOWfrontend/src/features/superchat/use-superchat.ts252function normalizeFreezoneCanvasReferenceAttachment(value: unknown): ChatAttachment | null {CODE
LOWfrontend/src/features/superchat/use-superchat.ts273function collectFreezoneCanvasReferenceAttachments(source: unknown, depth = 0): ChatAttachment[] {CODE
LOWfrontend/src/features/superchat/use-superchat.ts301function sameFreezoneCanvasReference(left: ChatAttachment, right: ChatAttachment): boolean {CODE
LOWfrontend/src/features/superchat/use-superchat.ts306function hydrateFreezoneCanvasReferences(message: ChatMessage, source: unknown): ChatMessage {CODE
LOWfrontend/src/features/superchat/use-superchat.ts543export function shouldKeepActiveTurnAfterScopeSync(CODE
LOWfrontend/src/features/superchat/use-superchat.ts643function hasEquivalentHistoryMessage(CODE
LOWfrontend/src/features/superchat/use-superchat.ts652function hasCompletedTurnInHistory(CODE
LOWfrontend/src/features/superchat/use-superchat.ts746function assistantPartsWithFinalText(CODE
LOWfrontend/src/features/superchat/use-superchat.ts781function assistantPartsForPersistence(CODE
LOWfrontend/src/features/superchat/use-superchat.ts811function isRealSkillStudioProgressStatusEvent(event: unknown): boolean {CODE
LOWfrontend/src/features/superchat/use-superchat.ts819function removeSkillStudioStatusParts(CODE
LOWfrontend/src/features/superchat/use-superchat.ts831function removeTransientSkillStudioStatusUiEvents(events: unknown[] | undefined): unknown[] | undefined {CODE
LOWfrontend/src/features/superchat/use-superchat.ts839function assistantPartsWithUiEvent(CODE
LOWfrontend/src/features/superchat/use-superchat.ts868function assistantPartsWithSequencedUiEvent(CODE
LOWfrontend/src/features/superchat/use-superchat.ts913function assistantPartsWithoutPart(CODE
LOWfrontend/src/features/superchat/use-superchat.ts927function mergeAssistantMessageParts(CODE
LOWfrontend/src/features/superchat/use-superchat.ts967function isRecoverableUiEventState(event: unknown): boolean {CODE
LOWfrontend/src/features/superchat/use-superchat.ts975function mergeRecoverableUiEventsFromCurrent(history: ChatMessage[], current: ChatMessage[]): ChatMessage[] {CODE
LOWfrontend/src/features/superchat/use-superchat.ts1191function upsertServerAssistantMessage(CODE
LOWfrontend/src/features/superchat/use-superchat.ts1241function removeSkillStudioStatusForTurn(CODE
LOWfrontend/src/features/superchat/use-superchat.ts1268function removeAllSkillStudioStatusForTurn(CODE
LOWfrontend/src/features/superchat/use-superchat.ts1312function updatePendingSkillStudioDraftChunksFromToolFrame(CODE
LOWfrontend/src/features/superchat/use-superchat.ts1371function hasSkillStudioDraftForTurn(messages: ChatMessage[], turnId: string): boolean {CODE
9123 more matches not shown…
Decorative Section Separators503 hits · 1667 pts
SeverityFileLineSnippetContext
MEDIUMce-allowlist.toml19# ── ee-terms 守栏豁免 ────────────────────────────────────────────────COMMENT
MEDIUMce-allowlist.toml80# ── banned-words 守栏豁免 ────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx819 // ── history (undo / redo) ────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx845 // ── duration probing (no history) ────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx872 // ── clip mutations (history-tracked) ─────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1225 // ── selected clip + playhead-relative source position ────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1346 // ── 复制 / 粘贴 / 副本 ─────────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1431 // ── snapping ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1462 // ── trim drag ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1541 // ── playhead seek / drag ──────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1604 // ── zoom ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tend/src/features/canvas/compose/VideoComposeModal.tsx1614 // ── export ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/features/canvas/application/imageData.ts244// ── 节点主体图:喂降采样副本 ────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/features/companion/petdex/petdex-pets.ts83// ─── 本地宠物目录 ───────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/stores/save-status-store.ts77// ─── aggregation ────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/stores/save-status-store.ts201// ─── scope key helpers ──────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/components/skeletons.tsx32// ─── Episodes grid (4-col card grid mimicking the real list) ────────────────COMMENT
MEDIUMfrontend/src/components/skeletons.tsx53// ─── Tasks (vertical rows with status pill + metadata) ──────────────────────COMMENT
MEDIUMfrontend/src/components/skeletons.tsx100// ─── Detail pane skeleton (header + paragraph + grid of tiles) ──────────────COMMENT
MEDIUM…nd/src/components/episode/task-controller-provider.tsx75// ─── Public types ───────────────────────────────────────────────────────────COMMENT
MEDIUM…nd/src/components/episode/task-controller-provider.tsx169// ─── Serialization ──────────────────────────────────────────────────────────COMMENT
MEDIUM…nd/src/components/episode/task-controller-provider.tsx200// ─── Registry (mutable, ref-held) ───────────────────────────────────────────COMMENT
MEDIUM…nd/src/components/episode/task-controller-provider.tsx234// ─── Context ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…nd/src/components/episode/task-controller-provider.tsx309// ─── Owner-internal helpers (used by useTaskController) ─────────────────────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx21// ─── Module mocks ───────────────────────────────────────────────────────────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx54// ─── serializeKey: pure key-dedup logic ────────────────────────────────────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx123// ─── isActiveStatus ────────────────────────────────────────────────────────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx138// ─── claimOwnership / releaseOwnership: deterministic ownership flow ──────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx194// ─── claim/release propagate hasOwner into the snapshot ────────────────────COMMENT
MEDIUM…_/components/episode/task-controller-provider.test.tsx284// ─── Integration tests: provider + useTaskController ───────────────────────COMMENT
MEDIUM…nts/episode/beat-workbench/render-plan-dialog.test.tsx9// ─── react-i18next: return the key so assertions can read stable text ──────COMMENT
MEDIUM…nts/episode/beat-workbench/render-plan-dialog.test.tsx22// ─── sonner: capture toast fires ───────────────────────────────────────────COMMENT
MEDIUM…nts/episode/beat-workbench/render-plan-dialog.test.tsx31// ─── /lib/queries/render-plan: manual mutations with per-test handlers ─────COMMENT
MEDIUMfrontend/src/hooks/use-task-controller.ts161 // ─── Reconcile once against /tasks list (owner-only) ─────────────────────COMMENT
MEDIUMfrontend/src/hooks/use-task-controller.ts267 // ─── Stream (owner-only) ─────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/hooks/use-task-controller.ts411 // ─── Logs rolling buffer (per-consumer; kept local) ──────────────────────COMMENT
MEDIUMfrontend/src/hooks/use-task-controller.ts517 // ─── Cancel mutation ─────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/lib/queries/projects.ts64// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/lib/queries/projects.ts70// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/ingest.tsx91// ─── form schema ─────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/ingest.tsx276// ─── helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/ingest.tsx393// ─── subcomponents ───────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/ingest.tsx980// ─── main component ──────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx57// ─── style constants (aligned with characters page) ─────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx71// ─── helpers ────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx156// ─── small components ───────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx236// ─── Top bar ────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx276// ─── Style list item ────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx340// ─── Preview box ────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx383// ─── Detail panel ───────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx734// ─── Empty detail ───────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx774// ─── Create dialog ──────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/styles.tsx1049// ─── Main ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx84// ─── stage descriptor (shared) ──────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx96// ─── helpers ────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx116// ─── Episode header 2-column layout ─────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx145// ─── Top bar ────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx537// ─── Episode list item ──────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/_app/projects.$project/episodes.tsx830// ─── Main ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/src/routes/_app/projects.$project/characters.lazy.tsx152// ─── constants ───────────────────────────────────────────────────────────────COMMENT
443 more matches not shown…
Unused Imports948 hits · 840 pts
SeverityFileLineSnippetContext
LOWdeploy/patch_hermes_acp_toolsets.py13CODE
LOWdeploy/verify_hermes_fork.py15CODE
LOWtests/test_p0_gray_execution_boundaries.py1CODE
LOWtests/test_fanout_partial_dispatch.py28CODE
LOWtests/test_freezone_mark_detect_egress.py19CODE
LOWtests/test_sketch_edit_execute_celery.py1CODE
LOWtests/test_hermes_events.py3CODE
LOWtests/test_chat_error_persistence.py1CODE
LOWtests/test_freezone_paths.py1CODE
LOWtests/test_superpower_model_config.py1CODE
LOWtests/test_frontend_i18n_scanner.py6CODE
LOWtests/test_api_sketch_pose_editor.py1CODE
LOWtests/test_p0g4t_service_operation_exclusion.py3CODE
LOWtests/test_hermes_worker_slot_construction.py13CODE
LOWtests/test_project_embedding_models.py1CODE
LOWtests/test_batch_render_video_actions_removed.py1CODE
LOWtests/test_api_freezone_projection.py1CODE
LOWtests/test_billing_fatal_predicate_invariant.py1CODE
LOWtests/test_brainclaw_control_context.py5CODE
LOWtests/test_cognee_pipeline_concurrency.py692CODE
LOWtests/test_media_relay.py1CODE
LOWtests/test_workflow_mcp.py1CODE
LOWtests/test_brainclaw_non_regression.py16CODE
LOWtests/test_freezone_canvas_generation_history.py9CODE
LOWtests/test_episode_patch_concurrency.py10CODE
LOWtests/conftest.py1CODE
LOWtests/test_p0g4l_scene_360_subprocess_egress.py17CODE
LOWtests/test_egress_dispatching_leak_diagnosability.py29CODE
LOWtests/test_p0g4g_ambient_egress_fallback.py12CODE
LOWtests/test_batch_render_removed.py1CODE
LOWtests/test_authz_error_http_contract.py15CODE
LOWtests/test_brainclaw_contract.py1CODE
LOWtests/test_p0g4a_model_core.py1CODE
LOWtests/test_task_envelope_consumer.py1CODE
LOWtests/test_api_auth_ports.py1CODE
LOWtests/test_hermes_operation_ledger.py8CODE
LOWtests/test_docker_persistence_config.py1CODE
LOWtests/test_freezone_canvas_lock_timing.py12CODE
LOWtests/test_p0g4c_video_egress.py3CODE
LOWtests/test_episode_optimizer_colors.py1CODE
LOWtests/test_scene_task_start_errors.py1CODE
LOWtests/test_media_thumbnails.py3CODE
LOWtests/test_api_generation_sketches.py1CODE
LOWtests/test_project_static_auth.py1CODE
LOWtests/test_p0g4k_grid_family_image_egress.py15CODE
LOWtests/test_api_asset_upload_offload.py1CODE
LOWtests/test_director_world_service.py1CODE
LOWtests/test_hermes_fork_pairing.py22CODE
LOWtests/test_evidence_metrics.py7CODE
LOWtests/test_p0_gray_shared_egress_seam.py1CODE
LOWtests/test_video_prompt_language.py1CODE
LOWtests/test_freezone_video_route_modes.py1CODE
LOWtests/test_api_gunicorn_worker.py8CODE
LOWtests/test_project_scope_split.py8CODE
LOWtests/test_task_runner_home_node_placement.py3CODE
LOWtests/test_task_runner_home_node_placement.py87CODE
LOWtests/test_task_runner_home_node_placement.py273CODE
LOWtests/test_content_adapter.py1CODE
LOWtests/test_api_render_settings.py1CODE
LOWtests/test_task_backend_queues.py9CODE
888 more matches not shown…
Empty Error Handlers161 hits · 805 pts
SeverityFileLineSnippetContext
HIGHtests/test_freezone_canvas_save_to_thread.py101except asyncio.CancelledError:CODE
HIGHtests/test_structured_builders.py2720except RuntimeError:CODE
HIGHtests/test_wysiwyg_consistency.py94except Exception:CODE
HIGHtests/test_wysiwyg_consistency.py106except Exception:CODE
HIGHtests/test_wysiwyg_consistency.py126except Exception:CODE
HIGHtests/test_wysiwyg_neo4j.py141except Exception:CODE
HIGHtests/test_wysiwyg_neo4j.py107except Exception:CODE
HIGHtests/test_wysiwyg_neo4j.py128except Exception:CODE
HIGHtests/test_wysiwyg_neo4j.py134except Exception:CODE
HIGHtests/test_wysiwyg_neo4j.py270except ImportError:CODE
HIGHtests/test_freezone_canvas_route_to_thread.py134except asyncio.CancelledError:CODE
HIGHscripts/backfill_thumbnails.py112except OSError:CODE
HIGHscripts/backfill_thumbnails.py141except OSError:CODE
HIGH.hermes/plugins/dramaclaw/__init__.py1921except Exception:CODE
HIGH.hermes/plugins/freezone/__init__.py5131except OSError:CODE
HIGH.hermes/plugins/freezone/__init__.py5178except OSError:CODE
HIGH.hermes/plugins/freezone/__init__.py5107except OSError:CODE
HIGHsrc/novelvideo/manual_shots.py83except (TypeError, ValueError):CODE
HIGHsrc/novelvideo/manual_shots.py209except (TypeError, ValueError):CODE
HIGHsrc/novelvideo/manual_shots.py216except (TypeError, ValueError):CODE
HIGHsrc/novelvideo/manual_shots.py483except OSError:CODE
HIGHsrc/novelvideo/manual_shots.py497except OSError:CODE
HIGHsrc/novelvideo/project_config.py278except FileNotFoundError:CODE
HIGHsrc/novelvideo/llm_instrumentation.py299except Exception:CODE
HIGHsrc/novelvideo/llm_instrumentation.py364except Exception:CODE
HIGHsrc/novelvideo/llm_instrumentation.py411except Exception:CODE
HIGHsrc/novelvideo/llm_instrumentation.py633except Exception:CODE
HIGHsrc/novelvideo/image_request_usage.py81except ValueError:CODE
HIGHsrc/novelvideo/stage_asset_tasks.py570except OSError:CODE
HIGHsrc/novelvideo/stage_asset_tasks.py578except OSError:CODE
HIGHsrc/novelvideo/stage_asset_tasks.py653except OSError:CODE
HIGHsrc/novelvideo/stage_asset_tasks.py658except OSError:CODE
HIGHsrc/novelvideo/stage_asset_tasks.py768except Exception:CODE
HIGHsrc/novelvideo/brainclaw_control_capability.py243except FileExistsError:CODE
HIGHsrc/novelvideo/model_gateway_settings.py696except RuntimeError:CODE
HIGHsrc/novelvideo/cognee/config.py407except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py421except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py655except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py983except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py108except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py952except Exception:CODE
HIGHsrc/novelvideo/cognee/config.py959except Exception:CODE
HIGHsrc/novelvideo/cognee/ladybug_access.py236except BaseException:CODE
HIGHsrc/novelvideo/chat/backend_sdk.py949except Exception:CODE
HIGHsrc/novelvideo/chat/service.py1609except (OSError, TypeError, ValueError, json.JSONDecodeError):CODE
HIGHsrc/novelvideo/chat/service.py3581except asyncio.CancelledError:CODE
HIGHsrc/novelvideo/chat/hermes_events.py77except json.JSONDecodeError:CODE
HIGHsrc/novelvideo/chat/hermes_egress.py164except Exception:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py509except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py517except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py560except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py602except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py903except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_workspace.py1367except OSError:CODE
HIGHsrc/novelvideo/chat/dramaclaw_mcp.py808except ValidationError:CODE
HIGHsrc/novelvideo/chat/message_repository.py37except OSError:CODE
HIGHsrc/novelvideo/chat/codex_app_server.py352except OSError:CODE
HIGHsrc/novelvideo/chat/codex_app_server.py252except OSError:CODE
HIGHsrc/novelvideo/chat/codex_app_server.py320except OSError:CODE
HIGHsrc/novelvideo/chat/hermes_sdk.py1563except Exception:CODE
101 more matches not shown…
Excessive Try-Catch Wrapping794 hits · 668 pts
SeverityFileLineSnippetContext
LOWtests/test_egress_dispatching_leak_diagnosability.py5 except Exception:STRING
LOWtests/test_egress_dispatching_leak_diagnosability.py8 except Exception:STRING
LOW⚡tests/test_wysiwyg_consistency.py126 except Exception:CODE
LOW⚡tests/test_wysiwyg_consistency.py468 except Exception as e:CODE
LOWtests/test_wysiwyg_consistency.py94 except Exception:CODE
LOWtests/test_wysiwyg_consistency.py106 except Exception:CODE
LOW⚡tests/test_wysiwyg_neo4j.py128 except Exception:CODE
LOW⚡tests/test_wysiwyg_neo4j.py134 except Exception:CODE
LOW⚡tests/test_wysiwyg_neo4j.py141 except Exception:CODE
LOWtests/test_wysiwyg_neo4j.py107 except Exception:CODE
LOWtests/test_wysiwyg_neo4j.py495 except Exception as e:CODE
LOWexamples/seedance2_fast_demo.py592 except Exception as exc:CODE
LOWscripts/migrate_docker_output.py87 except Exception:CODE
LOWscripts/convert_canvas_voice_refs.py309 except Exception as exc: # noqa: BLE001 - 一个项目失败不该中断整批CODE
LOWscripts/setup-hermes.sh42except Exception:CODE
LOWscripts/check_workflow_agent_contracts.py428 except Exception as exc:CODE
LOWscripts/check_workflow_agent_contracts.py432 except Exception as exc:CODE
LOWscripts/check_ce_port_closure.py69 except Exception as exc: # noqa: BLE001 — 启动失败本身即闭合失败CODE
LOWscripts/check_ce_port_closure.py81 except Exception as exc: # noqa: BLE001CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py826 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py833 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py840 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py847 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py863 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py912 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py923 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1113 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1122 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1346 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1354 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1362 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1478 except Exception as exc:CODE
LOW⚡.hermes/plugins/dramaclaw/__init__.py1490 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py284 except Exception:CODE
LOW.hermes/plugins/dramaclaw/__init__.py897 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py953 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1016 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1032 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1075 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1084 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1097 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1196 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1214 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1237 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1271 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1295 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1328 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1379 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1396 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1455 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1502 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1524 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1641 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1707 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1757 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1844 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py1921 except Exception:CODE
LOW.hermes/plugins/dramaclaw/__init__.py2002 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py2092 except Exception as exc:CODE
LOW.hermes/plugins/dramaclaw/__init__.py2190 except Exception as exc:CODE
734 more matches not shown…
Deep Nesting407 hits · 302 pts
SeverityFileLineSnippetContext
LOWtests/test_episode_patch_concurrency.py320CODE
LOWtests/test_p0g4c_video_egress.py213CODE
LOWtests/test_skill_import_capabilities.py59CODE
LOWtests/test_freezone_image_backend.py68CODE
LOWtests/test_queue_kind_literal_lanes.py202CODE
LOWtests/test_workflow_plan.py2274CODE
LOWtests/test_wysiwyg_consistency.py140CODE
LOWtests/test_wysiwyg_consistency.py288CODE
LOWtests/test_api_model_credit_cost.py29CODE
LOWtests/test_task_backend_registry.py39CODE
LOWtests/test_wysiwyg_neo4j.py80CODE
LOWtests/test_wysiwyg_neo4j.py159CODE
LOWtests/test_wysiwyg_neo4j.py340CODE
LOWtests/test_feature_models_cover_official_defaults.py25CODE
LOWtests/test_chat_service_user_agent_scope.py1656CODE
LOWtests/test_chat_service_user_agent_scope.py2362CODE
LOWtests/test_chat_service_user_agent_scope.py1682CODE
LOWtests/ports/test_registry.py344CODE
LOWscripts/check_frontend_i18n.py50CODE
LOWscripts/check_env_config.py321CODE
LOWscripts/check_env_config.py426CODE
LOWscripts/check_env_config.py474CODE
LOWscripts/backfill_thumbnails.py54CODE
LOWscripts/backfill_thumbnails.py94CODE
LOWscripts/lint_ce_imports.py85CODE
LOWscripts/lint_ce_imports.py116CODE
LOWscripts/check_workflow_agent_contracts.py78CODE
LOWscripts/check_workflow_agent_contracts.py117CODE
LOWscripts/analyze_hermes_requests.py38CODE
LOWscripts/analyze_hermes_requests.py92CODE
LOWscripts/check_dependency_licenses.py83CODE
LOWscripts/compliance/generate_p0b_artifacts.py293CODE
LOWscripts/benchmarks/skill_import_search.py130CODE
LOW.hermes/plugins/dramaclaw/__init__.py554CODE
LOW.hermes/plugins/dramaclaw/__init__.py748CODE
LOW.hermes/plugins/dramaclaw/__init__.py762CODE
LOW.hermes/plugins/dramaclaw/__init__.py1573CODE
LOW.hermes/plugins/dramaclaw/__init__.py1645CODE
LOW.hermes/plugins/dramaclaw/__init__.py1761CODE
LOW.hermes/plugins/dramaclaw/__init__.py1848CODE
LOW.hermes/plugins/dramaclaw/__init__.py2006CODE
LOW.hermes/plugins/dramaclaw/__init__.py2212CODE
LOW.hermes/plugins/dramaclaw/__init__.py570CODE
LOW.hermes/plugins/freezone/__init__.py518CODE
LOW.hermes/plugins/freezone/__init__.py2429CODE
LOW.hermes/plugins/freezone/__init__.py2889CODE
LOW.hermes/plugins/freezone/__init__.py3562CODE
LOW.hermes/plugins/freezone/__init__.py3817CODE
LOW.hermes/plugins/freezone/__init__.py3973CODE
LOW.hermes/plugins/freezone/__init__.py4140CODE
LOW.hermes/plugins/freezone/__init__.py4578CODE
LOW.hermes/plugins/freezone/__init__.py5308CODE
LOW.hermes/plugins/freezone/__init__.py6541CODE
LOW.hermes/plugins/freezone/__init__.py7301CODE
LOW.hermes/plugins/freezone/__init__.py7387CODE
LOW.hermes/plugins/freezone/__init__.py7477CODE
LOWsrc/novelvideo/brainclaw_outcome_runtime.py98CODE
LOWsrc/novelvideo/release_notes.py73CODE
LOWsrc/novelvideo/release_notes.py119CODE
LOWsrc/novelvideo/release_notes.py188CODE
347 more matches not shown…
Cross-Language Confusion41 hits · 211 pts
SeverityFileLineSnippetContext
HIGHtests/test_chat_error_persistence.py12 '({"provider_name":null})'CODE
HIGHtests/test_p0g4c_video_egress.py1455 return '{"type":"executing","data":{"prompt_id":"prompt-1","node":null}}'CODE
HIGHtests/test_chat_session_registry.py87 assert codex_scope_key("", **options) == '["main","home",null,"main-v1"]'CODE
HIGHtests/test_chat_session_registry.py104 == '["other","project","project-a",null,"canvas-v2"]'CODE
HIGH⚡tests/test_html_artifacts.py394@pytest.mark.parametrize('payload', ['[]', '{"version": 1}', '{"file": null}', '{'])CODE
HIGH⚡tests/test_chat_service_user_agent_scope.py970 assert chat_service._codex_scope_key("") == f'["main","home",null,"{protocol}"]'CODE
HIGHtests/test_chat_service_user_agent_scope.py836 f'["main","home",null,"{chat_service._CODEX_THREAD_PROTOCOL_VERSION}"]': (CODE
HIGHsrc/novelvideo/chat/canvas_outcome.py15 "{\"bridge_key\":\"actual returned key\",\"revision\":null}, or "CODE
HIGHsrc/novelvideo/chat/canvas_outcome.py16 "{\"bridge_key\":null,\"revision\":actual_returned_integer} for direct apply. "CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py337 stream: null,CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py338 recorder: null,CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py385 this.stream = null;CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py386 this.recorder = null;CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py391 if (this.recorder && this.recorder.state !== 'inactive') this.recorder.stop();CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py393 this.stream = null;CODE
HIGH⚡src/novelvideo/seedance2_i2v/character_voice_storage.py394 this.recorder = null;CODE
HIGHsrc/novelvideo/seedance2_i2v/character_voice_storage.py358 if (event.data && event.data.size > 0) this.chunks.push(event.data);CODE
HIGHsrc/novelvideo/seedance2_i2v/character_voice_storage.py358 if (event.data && event.data.size > 0) this.chunks.push(event.data);CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py90 if (value == null) {CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py104 operations.push(op);CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py123 undefined,CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py135 if (args.length === 6 && typeof args[5] === 'string') {CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py188 return undefined;CODE
HIGHsrc/novelvideo/director_world/block_world_builder.py214 process.stderr.write((error && error.stack) ? error.stack : String(error));CODE
HIGHsrc/novelvideo/director_world/stage_manifest.py192 # active field is null, so fall back to the available concrete source.COMMENT
HIGH⚡src/novelvideo/director_world/stage_manifest.py17 "pano_path": "pano_360.png" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py20 | "master_sharp.sog" | "reverse_sharp.sog" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py21 "pano_ply_path": "pano_depth.sog" | "pano_sharp_merged.sog" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py22 "pano_depth_ply_path": "pano_depth.sog" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py23 "master_ply_path": "master_sharp.sog" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py24 "reverse_ply_path": "reverse_sharp.sog" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py26 | "custom.ksplat" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py27 "collision_glb_path": "scene.collision.glb" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py28 "voxel_json_path": "scene.voxel.json" | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py31 "pano_sharp_args": {...} | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py35 } | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py36 "single_face_sharp_args": {...} | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py37 "master_sharp_args": {...} | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py38 "reverse_sharp_args": {...} | null,STRING
HIGH⚡src/novelvideo/director_world/stage_manifest.py39 "scene_360_args": {...} | null,STRING
HIGHsrc/novelvideo/freezone/jobs.py1922 "duration": 数字秒或 null,CODE
Modern Structural Boilerplate123 hits · 118 pts
SeverityFileLineSnippetContext
LOWtests/test_p0g4l_scene_360_subprocess_egress.py560 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOW⚡tests/test_p0g4c_video_egress.py1659 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOWtests/test_p0g4c_video_egress.py1536 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOW⚡tests/test_p0_gray_shared_egress_seam.py20 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOWtests/test_p0_gray_shared_egress_seam.py342 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOWtests/test_p0_gray_shared_egress_seam.py430 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOW⚡tests/test_task_runner_home_node_placement.py148 def update_progress_for_project(self, *_args, **kwargs) -> None:CODE
LOWtests/test_content_adapter.py115 async def update_episode(self, episode_number: int, **updates) -> None:CODE
LOWtests/test_task_runner_state_dir.py17 def update_progress_for_project(self, *args, **kwargs) -> None:CODE
LOW⚡tests/test_p0g4i_freezone_leaf_classification.py117 def update_progress_for_project(self, *_args, **_kwargs) -> None:CODE
LOWtests/test_task_script_runner_store_lifecycle.py13 def update_progress_for_project(self, *args, **kwargs) -> None:CODE
LOWtests/test_asset_compiler_prop_planning.py47 async def update_episode(self, episode_number: int, **updates) -> None:STRING
LOWtests/test_seedance2_panel_voice_offload.py18 async def update_beat_asset(self, **kwargs) -> None:CODE
LOWtests/test_seedance2_panel_voice_offload.py227 async def update_beat_asset(self, **kwargs) -> None:CODE
LOWtests/test_seedance2_panel_voice_offload.py270 async def update_beat_asset(self, **kwargs) -> None:CODE
LOWtests/test_seedance2_panel_voice_offload.py770 async def update_beat_asset(self, **kwargs) -> None:CODE
LOWtests/test_seedance2_panel_voice_offload.py818 async def update_beat_asset(self, **kwargs) -> None:CODE
LOW⚡tests/test_task_timeout.py21 def update_progress_for_project(self, *_args, **kwargs) -> None:CODE
LOWtests/contract/test_m08_chat_agent.py30def _set_task_signing_env(monkeypatch) -> None:CODE
LOWscripts/compliance/generate_p0b_artifacts.py700def update_readme_notice_reference() -> None:CODE
LOWsrc/novelvideo/sqlite_store.py65logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/sqlite_store.py907 async def update_character(self, name: str, **updates) -> None:CODE
LOWsrc/novelvideo/sqlite_store.py2018 async def update_episode(self, episode_number: int, **updates) -> None:CODE
LOWsrc/novelvideo/sqlite_store.py2399 async def set_sketch_colors(self, episode_number: int, colors: dict) -> None:CODE
LOWsrc/novelvideo/llm_instrumentation.py63def set_project_context(project_id: Optional[str]) -> None:CODE
LOWsrc/novelvideo/media_model_request_schema.py702def _set_path(target: dict[str, Any], path: str, value: Any) -> None:CODE
LOWsrc/novelvideo/task_state.py50logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/task_state.py1756def set_task_manager(manager: Optional[TaskStateManager]) -> None:CODE
LOWsrc/novelvideo/stage_asset_tasks.py42logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/structured_builders.py263def _settle_narrator(store: Any, appearances: dict) -> None:CODE
LOWsrc/novelvideo/i18n_message.py26__all__ = [CODE
LOW⚡src/novelvideo/model_gateway_settings.py234def set_model_gateway_mode(mode: str) -> None:CODE
LOW⚡src/novelvideo/model_gateway_settings.py238def set_custom_llm_mode(mode: str) -> None:CODE
LOWsrc/novelvideo/ui/__init__.py17__all__ = ["run_nicegui_app"]CODE
LOW⚡src/novelvideo/cognee/store.py1550 async def update_character(self, name: str, **updates) -> None:CODE
LOWsrc/novelvideo/cognee/store.py1698 async def update_episode(self, episode_number: int, **updates) -> None:CODE
LOWsrc/novelvideo/cognee/store.py1754 async def set_sketch_colors(self, episode_number: int, colors: dict) -> None:CODE
LOWsrc/novelvideo/cognee/config.py68logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/cognee/config.py388def _set_or_clear_env(key: str, value: str) -> None:CODE
LOWsrc/novelvideo/cognee/concurrency.py19logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/cognee/__init__.py38__all__ = [CODE
LOWsrc/novelvideo/chat/backend_sdk.py18__all__ = [CODE
LOW⚡src/novelvideo/chat/service.py2370def _set_active_agent_session_id(username: str, backend: str, thread_id: str) -> None:CODE
LOWsrc/novelvideo/chat/service.py1827def _set_setting(conn: sqlite3.Connection, key: str, value: str) -> None:CODE
LOWsrc/novelvideo/chat/service.py2385def _set_claude_session_id(username: str, project: str, session_id: str) -> None:CODE
LOWsrc/novelvideo/chat/service.py3898 async def _settle_turn_operation() -> None:CODE
LOWsrc/novelvideo/chat/hermes_pool.py1343__all__ = [CODE
LOWsrc/novelvideo/chat/hermes_egress.py238__all__ = [CODE
LOWsrc/novelvideo/chat/director_auto.py24logger = logging.getLogger(__name__)CODE
LOWsrc/novelvideo/chat/hermes_workspace.py1371__all__ = [STRING
LOWsrc/novelvideo/chat/hermes_sdk.py1579__all__ = ["HermesSdkClient", "HermesSdkThread", "HermesSessionUnavailableError"]CODE
LOWsrc/novelvideo/security/operator_auth.py18__all__ = ["get_prompt_export_password"]CODE
LOWsrc/novelvideo/security/__init__.py20__all__ = [CODE
LOWsrc/novelvideo/security/project_storage.py180__all__ = [CODE
LOWsrc/novelvideo/seedance2_i2v/panel_service.py1187__all__ = [CODE
LOWsrc/novelvideo/seedance2_i2v/__init__.py26__all__ = [CODE
LOWsrc/novelvideo/seedance2_i2v/voice_reference_service.py270__all__ = [CODE
LOWsrc/novelvideo/workflows/__init__.py12__all__ = [CODE
LOWsrc/novelvideo/workflows/script_writing.py51__all__ = [CODE
LOWsrc/novelvideo/agents/__init__.py10__all__ = [CODE
63 more matches not shown…
Over-Commented Block67 hits · 64 pts
SeverityFileLineSnippetContext
LOWce-allowlist.toml1# 守栏统一白名单(豁免清单)。COMMENT
LOWdocker-compose.brainclaw-evidence.yml1# DramaClaw with the BrainClaw evidence plane wired.COMMENT
LOW.gitleaks.toml1# gitleaks 配置 — dramaclaw-ceCOMMENT
LOWfrontend/scripts/build-public-mirror.sh1#!/usr/bin/env bashCOMMENT
LOWfrontend/src/main.tsx41 // hooks that need freshness (tasks, SSE-driven stages) either setCOMMENT
LOWfrontend/src/features/canvas/ui/NodeActionToolbar.tsx1401 // nodes still need access to **spawn-style** edit tools (relight /COMMENT
LOW…/src/features/canvas/ui/asset-board/AssetBoardView.tsx221 // 打开时把节点 id 传给顶栏 → 自动切到音频标签并高亮该 chip;左栏则退回可切换的文本COMMENT
LOWfrontend/src/features/canvas/nodes/VideoNode.tsx1581 id,COMMENT
LOWfrontend/src/features/canvas/nodes/VideoNode.tsx1721 }, [COMMENT
LOWfrontend/src/features/canvas/nodes/AudioNode.tsx261 // 节点挂载后若没有显式音色,则拉一次音色库 references 并落到第一条。COMMENT
LOW…features/canvas/nodes/shared/useImageGenerationForm.ts201 const [referenceErrorsOpen, setReferenceErrorsOpen] = useState(false);COMMENT
LOW…d/src/features/canvas/nodes/shared/videoFormOptions.ts21 "21:9",COMMENT
LOWfrontend/src/features/canvas/application/matteWorker.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…nd/src/features/canvas/application/resumeGeneration.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…rc/features/canvas/application/videoStoryNormalizer.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/features/canvas/application/imageData.ts201// fetched with CORS, otherwise the canvas taints and export throws. ThisCOMMENT
LOWfrontend/src/features/canvas/application/imageData.ts241 return hash ? `${busted}#${hash}` : busted;COMMENT
LOW…rc/features/canvas/infrastructure/freezoneAiGateway.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/features/canvas/domain/nodeRegistry.ts701// DOWNSTREAM_TARGET_WHITELIST 一起,是建边规则的单一事实来源:UI 层(连线菜单 /COMMENT
LOW…nd/src/features/canvas/domain/cameraMovementPresets.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/features/canvas/domain/storyboardGroup.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/features/freezone/AssetLibraryBrowser.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/features/freezone/useCanvasSync.ts741 );COMMENT
LOWfrontend/src/features/freezone/useCanvasSync.ts761 const statusRef = useRef<CanvasSyncStatus>("loading");COMMENT
LOWfrontend/src/features/freezone/useCanvasSync.ts1241 //COMMENT
LOWfrontend/src/features/freezone/useCanvasSync.ts1261 // 这一次挂载的节点先出 shell,再由升级队列每帧 3 个补成完整组件。COMMENT
LOWfrontend/src/stores/canvasStore.ts3121 if (!enclosing) {COMMENT
LOW…/features/canvas/video-node-generation-matrix.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…s__/features/canvas/catalog-image-model-params.test.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…eatures/canvas/image-gen-node-context-palette.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…atures/canvas/asset-board-generating-progress.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…atures/canvas/catalog-image-model-mode-wiring.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…/features/canvas/image-node-generation-matrix.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…ts__/features/canvas/natural-size-record-write.test.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…_/components/episode/task-controller-provider.test.tsx281 });COMMENT
LOW…sode/beat-workbench/render-plan-partial-retry.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOW…s__/lib/queries/sketches-missing-manual-retry.test.tsx1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/hooks/use-task-controller.ts101 // fresh object refs per render.COMMENT
LOWfrontend/src/hooks/use-task-controller.ts121 // registry entry. This is intentional — we want `isOwner` to flip duringCOMMENT
LOWfrontend/src/hooks/use-task-controller.ts201 if (tasksRes === undefined) return;COMMENT
LOWfrontend/src/lib/mention-markers.ts21 return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");COMMENT
LOWfrontend/src/lib/audioTranscode.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/lib/version-update-watch.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/lib/dom-reconciliation-guard.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/lib/app-router.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/lib/media-url.ts1// SPDX-License-Identifier: Elastic-2.0COMMENT
LOWfrontend/src/lib/media-url.ts61 }COMMENT
LOWtests/sandbox_linux_check.sh1#!/usr/bin/env bashCOMMENT
LOWtests/sandbox_smoke.sh1#!/usr/bin/env bashCOMMENT
LOWtests/test_transport_retry_disabled.py301 assert built, "the gateway never built a transport"COMMENT
LOWscripts/setup-hermes.sh1#!/usr/bin/env bashCOMMENT
LOWsrc/novelvideo/config.py1081# 竖屏 Panel 模式(每格竖屏,适合 I2V):COMMENT
LOWsrc/novelvideo/structured_extraction.py981COMMENT
LOWsrc/novelvideo/chat/service.py821 # Skill Studio authors catalog configuration. Media words inside a SkillCOMMENT
LOWsrc/novelvideo/agents/video_prompt_builder.py421# =============================================================================COMMENT
LOWsrc/novelvideo/utils/thumbnails.py41from typing import OptionalCOMMENT
LOWsrc/novelvideo/utils/thumbnails.py61 # 5504x3072 source from 16.9MP of decode to 1.4MP. Nodes are shown atCOMMENT
LOWsrc/novelvideo/utils/thumbnails.py81# Two independent ceilings, because neither one implies the other. A 200MB TIFFCOMMENT
LOWsrc/novelvideo/utils/thumbnails.py321 raise _ThumbnailDeclinedCOMMENT
LOWsrc/novelvideo/utils/thumbnails.py361 # Preserve exact source freshness where supported. Object-store FUSECOMMENT
7 more matches not shown…
Cross-File Repetition9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHtests/test_freezone_mark_detect_egress.py0echoes the caller's identity back, like both production implementations (ee `authz/port.py:169`, ce `ports/local/__init_STRING
HIGHtests/test_chat_ws_project_egress.py0echoes the caller's identity back, like both production implementations (ee `authz/port.py:169`, ce `ports/local/__init_STRING
HIGHtests/test_chat_ws_home_egress.py0echoes the caller's identity back, like both production implementations (ee `authz/port.py:169`, ce `ports/local/__init_STRING
HIGHsrc/novelvideo/model_gateway_settings.py0create table if not exists chat_settings ( key text primary key, value text not null, updated_at text not null )STRING
HIGHsrc/novelvideo/chat/store.py0create table if not exists chat_settings ( key text primary key, value text not null, updated_at text not null )STRING
HIGHsrc/novelvideo/chat/message_repository.py0create table if not exists chat_settings ( key text primary key, value text not null, updated_at text not null )STRING
HIGHsrc/novelvideo/verification/failure_registry.py0insert into sketch_failure_mode_defs ( code, layer, detection, prevention_rule, correction_template, negative_prompt_claSTRING
HIGHsrc/novelvideo/verification/global_registry_db.py0insert into sketch_failure_mode_defs ( code, layer, detection, prevention_rule, correction_template, negative_prompt_claSTRING
HIGH…ovelvideo/verification/cli/migrate_to_global_shared.py0insert into sketch_failure_mode_defs ( code, layer, detection, prevention_rule, correction_template, negative_prompt_claSTRING
AI Structural Patterns68 hits · 44 pts
SeverityFileLineSnippetContext
LOWsrc/novelvideo/manual_shots.py334CODE
LOWsrc/novelvideo/sqlite_store.py2561CODE
LOWsrc/novelvideo/structured_extraction.py355CODE
LOWsrc/novelvideo/newapi_provisioner.py899CODE
LOWsrc/novelvideo/task_state.py981CODE
LOWsrc/novelvideo/task_state.py1111CODE
LOWsrc/novelvideo/task_state.py1231CODE
LOWsrc/novelvideo/stage_asset_tasks.py672CODE
LOWsrc/novelvideo/stage_asset_tasks.py940CODE
LOWsrc/novelvideo/stage_asset_tasks.py1191CODE
LOWsrc/novelvideo/model_gateway_settings.py991CODE
LOWsrc/novelvideo/model_gateway_settings.py1184CODE
LOWsrc/novelvideo/model_gateway_settings.py1510CODE
LOWsrc/novelvideo/cognee/store.py2303CODE
LOWsrc/novelvideo/cognee/pipeline.py857CODE
LOWsrc/novelvideo/chat/service.py2947CODE
LOWsrc/novelvideo/chat/service.py3274CODE
LOWsrc/novelvideo/chat/service.py3452CODE
LOWsrc/novelvideo/chat/service.py3776CODE
LOWsrc/novelvideo/chat/service.py4547CODE
LOWsrc/novelvideo/chat/hermes_pool.py331CODE
LOWsrc/novelvideo/chat/hermes_pool.py995CODE
LOWsrc/novelvideo/seedance2_i2v/panel_service.py98CODE
LOWsrc/novelvideo/agents/video_prompt_builder.py152CODE
LOWsrc/novelvideo/utils/asset_resolver.py135CODE
LOW…c/novelvideo/director_world/control_frame_to_sketch.py414CODE
LOWsrc/novelvideo/director_world/scene_360_builder.py113CODE
LOWsrc/novelvideo/task_backend/subprocesses.py408CODE
LOWsrc/novelvideo/api/routes/freezone.py750CODE
LOWsrc/novelvideo/api/routes/freezone.py998CODE
LOWsrc/novelvideo/api/routes/freezone.py1958CODE
LOWsrc/novelvideo/api/routes/freezone.py2219CODE
LOWsrc/novelvideo/api/routes/freezone.py2766CODE
LOWsrc/novelvideo/api/routes/model_credits.py898CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py374CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py2470CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py3601CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py7804CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py4368CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py5797CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py6262CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py6462CODE
LOWsrc/novelvideo/generators/nanobanana_grid.py7732CODE
LOWsrc/novelvideo/generators/prompt_builder.py3826CODE
LOWsrc/novelvideo/generators/pool_indexer.py257CODE
LOWsrc/novelvideo/generators/pool_indexer.py850CODE
LOWsrc/novelvideo/generators/voxel_restyle.py120CODE
LOWsrc/novelvideo/generators/nanobanana_character.py207CODE
LOWsrc/novelvideo/generators/nanobanana_character.py396CODE
LOWsrc/novelvideo/generators/nanobanana_character.py430CODE
LOWsrc/novelvideo/generators/nanobanana_character.py1354CODE
LOWsrc/novelvideo/generators/video_generator.py921CODE
LOWsrc/novelvideo/generators/video_generator.py1935CODE
LOWsrc/novelvideo/generators/image_generator.py1149CODE
LOWsrc/novelvideo/generators/image_generator.py1325CODE
LOWsrc/novelvideo/generators/image_generator.py269CODE
LOWsrc/novelvideo/ports/usage.py140CODE
LOWsrc/novelvideo/ports/local/usage.py54CODE
LOWsrc/novelvideo/freezone/audio_node.py578CODE
LOWsrc/novelvideo/freezone/audio_node.py746CODE
8 more matches not shown…
AI Slop Vocabulary14 hits · 44 pts
SeverityFileLineSnippetContext
MEDIUM…ntend/src/features/canvas/application/audioDownload.ts33 // downloadUrlAsFile (robust cross-origin fallback + correct extension),COMMENT
MEDIUMfrontend/src/components/episode/header-collapse.tsx101 // animation rather than a guessed duration (robust to transition-lengthCOMMENT
MEDIUMfrontend/src/components/login/poster-column.tsx26 // Duplicate once for seamless marquee loop.COMMENT
MEDIUM⚡tests/test_fanout_partial_dispatch.py123# harness 照 tests/test_api_generation_sketches.py:29-116COMMENT
MEDIUM⚡tests/test_fanout_partial_dispatch.py391# harness 照 tests/test_api_render_regenerate.py:32-104COMMENT
MEDIUM⚡tests/test_freezone_mark_detect_egress.py138# --- harness ---------------------------------------------------------------COMMENT
MEDIUMtests/test_chat_ws_project_egress.py195# --- harness ---------------------------------------------------------------COMMENT
MEDIUMtests/test_chat_ws_project_egress.py735# --- guard: the harness must really be going through the WS route ----------COMMENT
LOW⚡tests/test_wysiwyg_consistency.py384 # We need to check identity — but for label matching we just use the tagCOMMENT
MEDIUM⚡tests/test_channel_task_limit_error_surface.py261# harness 照 tests/test_freezone_image_backend.py:224-253COMMENT
MEDIUMtests/test_chat_ws_home_egress.py209# --- harness ---------------------------------------------------------------COMMENT
MEDIUMtests/test_chat_ws_home_egress.py943# --- guard: the harness must really be going through the WS route ----------COMMENT
MEDIUMsrc/novelvideo/generators/prompt_builder.py1143 return f"""Generate a {rows}×{cols} storyboard grid. Each panel MUST be {panel_hint}. Full-color continuous imagCODE
MEDIUMsrc/novelvideo/generators/prompt_builder.py2591 render_opening = f"""Colorize this {rows}×{cols} storyboard SKETCH (first attached image / Image 1) into a full-CODE
Fake / Example Data38 hits · 34 pts
SeverityFileLineSnippetContext
LOWfrontend/public/locales/vi/translation.json796 "placeholder": "Sau khi tải kịch bản lên, hãy nhờ Xia Director đẩy tiến độ tập phim, hình ảnh, âm thanh hoặc video hCODE
LOWfrontend/public/locales/vi/translation.json2871 "placeholder": {CODE
LOWfrontend/public/locales/vi/translation.json3232 "placeholder": "Chưa có log nào."CODE
LOWfrontend/public/locales/vi/translation.json4550 "placeholder": "Chọn một khu vực",CODE
LOWfrontend/public/locales/vi/translation.json4902 "placeholder": "Nhập tên thư mục",CODE
LOWfrontend/public/locales/vi/translation.json6093 "placeholder": "Viết một câu chuyện, một cảnh hoặc ý tưởng nhân vật. Ví dụ: trong một nhà ga cũ giữa đêm mưa, một CODE
LOWfrontend/public/locales/vi/translation.json6110 "placeholder": "Thiết lập các tham số bên dưới để tạo video HD",CODE
LOWfrontend/public/locales/vi/translation.json6153 "placeholder": "Mô tả video bạn muốn tạo.",CODE
LOWfrontend/public/locales/zh/translation.json814 "placeholder": "上传剧本后,说出要推进的分集、画面、配音或成片任务",CODE
LOWfrontend/public/locales/zh/translation.json2985 "placeholder": {CODE
LOWfrontend/public/locales/zh/translation.json3433 "placeholder": "暂无日志输出。"CODE
LOWfrontend/public/locales/zh/translation.json4664 "placeholder": "请选择区域",CODE
LOWfrontend/public/locales/zh/translation.json5016 "placeholder": "请输入文件夹名称",CODE
LOWfrontend/public/locales/zh/translation.json6216 "placeholder": "写下故事、场景或角色灵感。例如:雨夜旧车站里,一封迟到的信改变了所有人的选择。",CODE
LOWfrontend/public/locales/zh/translation.json6233 "placeholder": "在下方配置参数生成高清视频",CODE
LOWfrontend/public/locales/zh/translation.json6276 "placeholder": "根据文字描述生成视频。",CODE
LOWfrontend/public/locales/en/translation.json814 "placeholder": "After uploading a script, ask Xia Director to advance episodes, visuals, audio, or final video",CODE
LOWfrontend/public/locales/en/translation.json2985 "placeholder": {CODE
LOWfrontend/public/locales/en/translation.json3433 "placeholder": "No log output yet."CODE
LOWfrontend/public/locales/en/translation.json4664 "placeholder": "Select a region",CODE
LOWfrontend/public/locales/en/translation.json5016 "placeholder": "Enter a folder name",CODE
LOWfrontend/public/locales/en/translation.json6216 "placeholder": "Write a story, scene, or character idea. For example: in an old station on a rainy night, a late lCODE
LOWfrontend/public/locales/en/translation.json6233 "placeholder": "Configure the parameters below to generate the HD video",CODE
LOWfrontend/public/locales/en/translation.json6276 "placeholder": "Describe the video to generate.",CODE
LOW…src/__tests__/features/superchat/use-superchat.test.ts3050 expect(JSON.stringify(draft)).not.toContain("placeholder");CODE
LOW…/__tests__/components/assets/character-search.test.tsx77 expect(input).toHaveAttribute("placeholder", "Search cast");CODE
LOWtests/test_cognee_pipeline_concurrency.py626 monkeypatch.setattr(config, "_resolve_llm_api_key", lambda *_args: "fake-key")CODE
LOWtests/test_cognee_pipeline_concurrency.py631 lambda _provider, _key: ("openai", "embedding", "1024", "fake-key"),CODE
LOWtests/test_freezone_image_backend.py459 async def fake_user():CODE
LOWtests/test_freezone_image_backend.py462 app.dependency_overrides[freezone_routes.get_api_user] = fake_userCODE
LOWtests/test_freezone_image_backend.py3644 async def fake_user():CODE
LOWtests/test_freezone_image_backend.py3647 app.dependency_overrides[freezone_routes.get_api_user] = fake_userCODE
LOWtests/test_workflow_plan.py2025 assert "placeholder" in result["errors"][0]["message"]CODE
LOWtests/test_indextts2_fal_smoke.py74 client = IndexTTS2FalClient(api_key="dummy-key-not-used")CODE
LOWtests/test_channel_task_limit_error_surface.py320 async def fake_user():CODE
LOWtests/test_channel_task_limit_error_surface.py323 app.dependency_overrides[freezone_routes.get_api_user] = fake_userCODE
LOWassets/readme/ASSET-LAYOUT-REVISION.md7Use case: ui-mockup. Recreate the asset-library feature illustration using Image 1 ONLY as LAYOUT reference, NOT its disCODE
LOWsrc/novelvideo/freezone/html_artifacts.py674 entry = {'placeholder': placeholder, 'path': path}CODE
Structural Annotation Overuse21 hits · 28 pts
SeverityFileLineSnippetContext
LOW…rmes/skills/dramaclaw/references/step-api-reference.md23### Step 1: 上传小说 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md30### Step 2: 摄入 [ASYNC -> ingest_fast, ep=0]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md43### Step 3: 配置项目 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md50### Step 4: 角色提取 [ASYNC -> build_characters, ep=0]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md75### Step 5: 角色 face_prompt 检查/补齐 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md93### Step 6: 分集规划 [ASYNC -> build_episodes, ep=0]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md109### Step 7: 肖像生成 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md120### Step 8: 身份规划 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md126### Step 9: 身份图生成 [SYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md176### Step 11: 场景 / 道具上下文 [SYNC/ASYNC]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md204### Step 12: 草图生成 [ASYNC -> sketch_generation]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md240### Step 13: 首帧生成 [ASYNC -> selected_regen]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md254### Step 14: 音频生成 [ASYNC -> audio_generation_indextts2]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md272### Step 15: 视频生成 [ASYNC -> single_video]COMMENT
LOW…rmes/skills/dramaclaw/references/step-api-reference.md292### Step 16: 合成 [ASYNC -> compose_episode]COMMENT
LOWsrc/novelvideo/cognee/store.py675 # Step 1: 添加原文到 CogneeCOMMENT
LOWsrc/novelvideo/cognee/store.py687 # Step 2: 构建知识图谱COMMENT
LOWsrc/novelvideo/cognee/store.py702 # Step 3: 创建向量索引(memify)COMMENT
LOWsrc/novelvideo/cognee/pipeline.py340 # Step 1: 通过 cognee.search 获取图谱上下文COMMENT
LOWsrc/novelvideo/cognee/pipeline.py387 # Step 2: LLM 结构化提取COMMENT
LOWsrc/novelvideo/cognee/pipeline.py1774 # Step 3: LLM 逐场景生成 environment_promptCOMMENT
Modern AI Meta-Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md369Provider adapters shipped in the gateway today (see the [channel support matrix](https://github.com/dramaclaw/dramaclaw-CODE
MEDIUMtests/contract/test_m01_auth.py190 # to an embedding model. The binding is permanent once written, so thisCOMMENT
MEDIUMreadme/README_th.md364adapter ของผู้ให้บริการที่มากับ gateway ในวันนี้ (ดูสถานะการตรวจสอบใน [ตารางรองรับ channel](https://github.com/dramaclawCODE
MEDIUMreadme/README_vi.md364Các adapter nhà cung cấp có sẵn trong gateway hiện nay (xem [ma trận hỗ trợ kênh](https://github.com/dramaclaw/dramaclawCODE
MEDIUM⚡src/novelvideo/api/routes/projects.py758 # embedding model. The binding is permanent once written, which is whyCOMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL…eatures/canvas/application/workflowHtmlRuntime.test.ts140 expect(mocks.state.updateNodeData.mock.calls.some(([, patch]) => "artifactId" in patch)).toBe(false);CODE
Verbosity Indicators6 hits · 6 pts
SeverityFileLineSnippetContext
LOWsrc/novelvideo/cognee/store.py675 # Step 1: 添加原文到 CogneeCOMMENT
LOWsrc/novelvideo/cognee/store.py687 # Step 2: 构建知识图谱COMMENT
LOWsrc/novelvideo/cognee/store.py702 # Step 3: 创建向量索引(memify)COMMENT
LOWsrc/novelvideo/cognee/pipeline.py340 # Step 1: 通过 cognee.search 获取图谱上下文COMMENT
LOWsrc/novelvideo/cognee/pipeline.py387 # Step 2: LLM 结构化提取COMMENT
LOWsrc/novelvideo/cognee/pipeline.py1774 # Step 3: LLM 逐场景生成 environment_promptCOMMENT
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/novelvideo/model_gateway_settings.py49 "your_api_key",CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWfrontend/scripts/build-public-mirror.sh18# Usage:COMMENT
LOWtests/sandbox_smoke.sh6# Usage:COMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtests/sandbox_smoke.sh98# Create a fake "other" userCOMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_chat_service_user_agent_scope.py5403CODE