AI Slop Code RIsk Monitor

yihong0618/bilingual_book_maker

Make bilingual epub books Using AI translate

34.0 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for yihong0618/bilingual_book_maker, a Python project with 9,867 GitHub stars. SynthScan examined 111,486 lines of code across 277 source files, recording 3411 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 34.0 (High 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.

34.0
Adjusted Signal
34.0
Raw Pattern Score
100%
Time Factor
2026-09-30
Last Push
9.9K
Stars
Python
Language
111.5K
Lines of Code
277
Files
3.4K
Pattern Hits
2026-10-12
Scan Date
0.12
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 70.3/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 3.1/100 · LOW

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

Agent Over-Engineering Ratio 78.8/100 · CRITICAL

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

PR Review Velocity Impact 83.9/100 · CRITICAL

Which changes need focused human review? 3411 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 32MEDIUM 253LOW 3126

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 3411 distinct pattern matches across 17 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 Identifiers2799 hits · 2442 pts
SeverityFileLineSnippetContext
LOWbook_maker/provider_loader.py213def _validate_endpoint_fields(name, provider):CODE
LOWbook_maker/cli.py2876def parallel_session_conflict(options):STRING
LOWbook_maker/endpoints.py419def resolve_classify_endpoint(options, run, provider, *, with_key=True):CODE
LOWbook_maker/pipeline/reading_edition.py326 def _settle_heading_attributes(self, result):CODE
LOWbook_maker/pipeline/reading_edition.py505def reading_edition_loader_class(CODE
LOWbook_maker/pipeline/pdf_figures.py189def parse_pdf_image_dpi_policy(text):CODE
LOWbook_maker/pipeline/docling_parser.py480def _record_failed_extraction(bundle, settings, page_range, *, reason, empty):CODE
LOWbook_maker/translator/base_translator.py858 def _fold_standing_instructions(self, turn):CODE
LOWbook_maker/translator/chatgptapi_translator.py138def _single_translation_model(language, source_language, field_language):CODE
LOWbook_maker/translator/chatgptapi_translator.py216def _single_field_description(language, source_language=None):CODE
LOWbook_maker/translator/chatgptapi_translator.py235def single_translation_schema(language, field_language=None):CODE
LOWbook_maker/translator/chatgptapi_translator.py650 def _ensure_structured_support(self, model=None):CODE
LOWbook_maker/translator/chatgptapi_translator.py685 def _demote_structured_outputs(self, reason):CODE
LOWbook_maker/translator/chatgptapi_translator.py790 def structured_json_with_image(CODE
LOWbook_maker/translator/chatgptapi_translator.py1278 def _note_temperature_rejected(self, model):CODE
LOWbook_maker/translator/chatgptapi_translator.py1319 def _structured_single_translation(self, text):CODE
LOWbook_maker/translator/chatgptapi_translator.py1632 def _create_structured_batch_messages(self, text_list, degree="strict"):CODE
LOWbook_maker/translator/chatgptapi_translator.py1706 def _do_structured_batch_translate(self, text_list):CODE
LOWbook_maker/translator/chatgptapi_translator.py1812 def _execute_structured_batch_translate(self, text_list, plist_len):CODE
LOWbook_maker/translator/chatgptapi_translator.py1896 def _execute_json_object_batch(self, messages):CODE
LOWbook_maker/translator/chatgptapi_translator.py2016 def add_to_batch_translate_queue(self, book_index, text):CODE
LOWbook_maker/translator/chatgptapi_translator.py2133 def create_batch_context_messages(self, index):CODE
LOWbook_maker/translator/qwen_translator.py155 def _create_translation_options(self):CODE
LOWbook_maker/translator/capabilities.py631 def note_temperature_rejected(self, model):CODE
LOWbook_maker/translator/capabilities.py660 def note_compact_cap_rejected(self, model):CODE
LOWbook_maker/translator/gemini_translator.py264 def _extract_translation_text(self, response_text: str) -> str:CODE
LOWbook_maker/translator/gemini_translator.py288 def _manage_conversation_history(self) -> None:CODE
LOWbook_maker/translator/gemini_translator.py471 def _batch_translate_with_retry(CODE
LOWbook_maker/loader/plan.py1188def _classed_inline_ancestors(node, owner, keep=frozenset()):CODE
LOWbook_maker/loader/disclosure.py359def is_prior_translation_metadata(item):CODE
LOWbook_maker/loader/disclosure.py694def allocate_translation_metadata_names(book, ids=None, files=None):CODE
LOWbook_maker/loader/md_loader.py437 def _translate_sections_parallel(self, pending, results, report):CODE
LOWbook_maker/loader/md_loader.py566 def _clone_translator_for_context(self):CODE
LOWbook_maker/loader/md_loader.py716 def _would_exceed_chunk_budget(self, batch, next_block):CODE
LOWbook_maker/loader/helper.py196def derive_translation_identity(new_book, source_book, *facets):CODE
LOWbook_maker/loader/helper.py303def has_restricted_content_model(element):CODE
LOWbook_maker/loader/helper.py326def append_inline_translation(element, text, translation_style="", language=None):CODE
LOWbook_maker/loader/helper.py562def translate_list_or_singles(model, texts):CODE
LOW⚡book_maker/loader/epub_loader.py3616 def _create_chapter_translator(self):CODE
LOW⚡book_maker/loader/epub_loader.py3621 def _clone_translator_for_context(self):CODE
LOWbook_maker/loader/epub_loader.py242def check_file_filters_against(book, only_filelist, exclude_filelist):CODE
LOWbook_maker/loader/epub_loader.py825 def _wants_translation_metadata(self):CODE
LOWbook_maker/loader/epub_loader.py855 def _run_translation_metadata(self):CODE
LOWbook_maker/loader/epub_loader.py974 def _is_content_only_excluded_tags(self, p):CODE
LOWbook_maker/loader/epub_loader.py1170 def _narrate_session_compact_budget(self):CODE
LOWbook_maker/loader/epub_loader.py1240 def _report_test_slice_requests(self, chapter_plans, unit_count):CODE
LOWbook_maker/loader/epub_loader.py1367 def _check_resume_run_fingerprint(self):CODE
LOWbook_maker/loader/epub_loader.py1461 def _prepare_translation_plan(self):CODE
LOWbook_maker/loader/epub_loader.py2182 def _append_inline_translation(unit, t_text, translation_style="", language=None):CODE
LOWbook_maker/loader/epub_loader.py2217 def _insert_anchored_translation(unit, t_text, translation_style="", language=None):CODE
LOWbook_maker/loader/epub_loader.py2256 def _write_single_translation(unit, t_text, translation_style="", language=None):CODE
LOWbook_maker/loader/epub_loader.py2613 def _insert_trans_preserving_tags(CODE
LOWbook_maker/loader/epub_loader.py2782 def _process_combined_paragraph(CODE
LOWbook_maker/loader/epub_loader.py2957 def _process_paragraph_sentence_mode(self, p, soup):CODE
LOWbook_maker/loader/epub_loader.py3000 def find_items_containing_string(self, book, search_string):CODE
LOWbook_maker/loader/epub_loader.py3489 def _record_translation_result(self, index, translated_text):CODE
LOWbook_maker/loader/epub_loader.py3502 def _process_chapter_parallel(self, chapter_data):CODE
LOWbook_maker/loader/epub_loader.py3652 def _translate_with_chapter_context(CODE
LOWbook_maker/loader/epub_loader.py3682 def _translate_paragraphs_acc_parallel(CODE
LOWbook_maker/loader/classify/session.py277def trunk_with_inline_example(trunk=None):CODE
2739 more matches not shown…
Decorative Section Separators197 hits · 742 pts
SeverityFileLineSnippetContext
MEDIUMbook_maker/classifier.py45# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py47# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py132# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py134# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py189# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py191# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py357# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py359# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py510# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/classifier.py512# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py342# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py344# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py485# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py487# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py541# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py543# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py666# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py668# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py813# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/decisions.py815# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/pdf_figures.py241# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/pdf_figures.py243# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/pdf_figures.py454# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/pipeline/pdf_figures.py456# --------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/loader/plan.py1423# ---------------------------------------------------------------------------COMMENT
MEDIUMbook_maker/loader/plan.py1439# ---------------------------------------------------------------------------COMMENT
MEDIUMtools/export_requirements.sh18# -----------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py140# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py142# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py261# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py263# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py304# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py306# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py363# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py365# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py527# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py529# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py182# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py184# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py305# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py307# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py350# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py352# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py77# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py79# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py401# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py403# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py639# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py641# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py783# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_to_epub_cli.py786# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_reading_edition_glossary.py118# --------------------------------------------------------------------------STRING
MEDIUMtests/test_reading_edition_glossary.py120# --------------------------------------------------------------------------STRING
MEDIUM⚡tests/test_reading_edition_glossary.py213# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_glossary.py215# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_glossary.py297# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_reading_edition_glossary.py299# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_endpoints.py748# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_endpoints.py750# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_pdf_formula.py61# --------------------------------------------------------------------------COMMENT
137 more matches not shown…
Excessive Try-Catch Wrapping131 hits · 144 pts
SeverityFileLineSnippetContext
LOWbook_maker/classifier.py165 except Exception:CODE
LOWbook_maker/classifier.py795 except Exception as err: # transport: refused, reset, timed outCODE
LOWbook_maker/codex_client.py61 except Exception:CODE
LOW⚡book_maker/codex_client.py458 except Exception:CODE
LOW⚡book_maker/codex_client.py466 except Exception:CODE
LOW⚡book_maker/codex_client.py472 except Exception:CODE
LOW⚡book_maker/codex_client.py476 except Exception:CODE
LOW⚡book_maker/codex_client.py481 except Exception:CODE
MEDIUMbook_maker/codex_client.py400def _unknown_feature(self):CODE
LOWbook_maker/cli.py482 except Exception as e: # noqa: BLE001 - re-raised as the sentence aboveCODE
LOWbook_maker/cli.py571 except Exception as e: # noqa: BLE001 - carried to main, re-raised thereCODE
LOWbook_maker/cli.py922 except Exception as e:CODE
MEDIUMbook_maker/cli.py3014 print("Error: please provide the path of your book using --book_name <path>")CODE
MEDIUMbook_maker/cli.py3017 print(f"Error: the book {options.book_name!r} does not exist.")CODE
LOWbook_maker/cli.py3599 except Exception as ex:CODE
LOWbook_maker/cli.py3607 except Exception as err:CODE
LOWbook_maker/cli.py3663 except Exception as err:CODE
LOWbook_maker/pipeline/pdf_common.py259 except Exception as err:CODE
LOWbook_maker/pipeline/pdf_common.py284 except Exception as err:CODE
MEDIUMbook_maker/pipeline/pdf_common.py108def _pdfium():CODE
LOWbook_maker/pipeline/translate.py450 except Exception as err:CODE
LOWbook_maker/pipeline/decisions.py927 except Exception as err:CODE
LOWbook_maker/pipeline/stages.py238 except Exception:CODE
LOWbook_maker/pipeline/pdf_figures.py711 except Exception as missing:CODE
LOWbook_maker/pipeline/pdf_figures.py830 except Exception as err:CODE
LOWbook_maker/pipeline/pdf_figures.py841 except Exception as err:CODE
LOWbook_maker/pipeline/pdf_figures.py855 except Exception as err:CODE
LOWbook_maker/pipeline/pdf_figures.py1038 except Exception:CODE
MEDIUMbook_maker/pipeline/pdf_figures.py692def _describe_recorded(block):CODE
LOWbook_maker/pipeline/progress.py176 except Exception:CODE
LOWbook_maker/pipeline/progress.py195 except Exception:CODE
LOWbook_maker/pipeline/docling_parser.py192 except Exception:CODE
LOWbook_maker/pipeline/docling_parser.py681 except Exception as err:CODE
LOWbook_maker/pipeline/docling_parser.py1013 except Exception as err:CODE
LOWbook_maker/pipeline/docling_parser.py1120 except Exception as err:CODE
LOWbook_maker/pipeline/docling_parser.py1390 except Exception:CODE
LOWbook_maker/pipeline/docling_parser.py1575 except Exception:CODE
MEDIUMbook_maker/pipeline/docling_parser.py1387def emit(self, record):CODE
MEDIUMbook_maker/pipeline/docling_parser.py1570def _installed_version():CODE
MEDIUMbook_maker/translator/chatgptapi_translator.py1297def _temperature_tolerant(self, call, model):CODE
MEDIUMbook_maker/translator/chatgptapi_translator.py1567def translate(self, text, needprint=True):CODE
LOWbook_maker/translator/chatgptapi_translator.py1390 except Exception:CODE
LOWbook_maker/translator/chatgptapi_translator.py1474 except Exception as e:CODE
LOWbook_maker/translator/chatgptapi_translator.py1571 except Exception as e:CODE
LOWbook_maker/translator/chatgptapi_translator.py1629 except Exception:CODE
LOWbook_maker/translator/chatgptapi_translator.py1747 except Exception as e:CODE
LOWbook_maker/translator/caiyun_translator.py59 except Exception as e:CODE
LOWbook_maker/translator/vision.py212 except Exception as e:CODE
LOWbook_maker/translator/qwen_translator.py261 except Exception as e:CODE
LOWbook_maker/translator/claude_translator.py447 except Exception:CODE
LOWbook_maker/translator/claude_translator.py495 except Exception as e:CODE
LOWbook_maker/translator/deepl_translator.py109 except Exception as e:CODE
LOWbook_maker/translator/capabilities.py284 except Exception as e:CODE
LOWbook_maker/translator/capabilities.py336 except Exception as e:CODE
LOWbook_maker/translator/capabilities.py391 except Exception as e:CODE
LOWbook_maker/translator/capabilities.py404 except Exception:CODE
LOWbook_maker/translator/capabilities.py442 except Exception as e:CODE
LOWbook_maker/translator/gemini_translator.py339 except Exception:CODE
LOWbook_maker/translator/gemini_translator.py356 except Exception as e:CODE
LOWbook_maker/translator/gemini_translator.py512 except Exception:CODE
71 more matches not shown…
Empty Error Handlers23 hits · 115 pts
SeverityFileLineSnippetContext
HIGHbook_maker/session_context.py1169except OSError:CODE
HIGHbook_maker/codex_client.py466except Exception:CODE
HIGHbook_maker/codex_client.py541except (ValueError, OSError):CODE
HIGHbook_maker/codex_client.py581except CodexError:CODE
HIGHbook_maker/codex_client.py458except Exception:CODE
HIGHbook_maker/codex_client.py481except Exception:CODE
HIGHbook_maker/codex_client.py476except Exception:CODE
HIGHbook_maker/pipeline/progress.py149except (AttributeError, ValueError):CODE
HIGHbook_maker/pipeline/progress.py195except Exception:CODE
HIGHbook_maker/pipeline/docling_parser.py625except ImportError:CODE
HIGHbook_maker/pipeline/docling_parser.py192except Exception:CODE
HIGHbook_maker/translator/qwen_translator.py136except StopIteration:CODE
HIGHbook_maker/translator/codex_translator.py366except CodexError:CODE
HIGHbook_maker/loader/pdf_loader.py271except Exception:CODE
HIGHbook_maker/loader/ledger.py420except OSError:CODE
HIGHbook_maker/loader/epub_loader.py2698except Exception:CODE
HIGHbook_maker/loader/epub_loader.py2719except Exception:CODE
HIGHbook_maker/loader/epub_loader.py2736except Exception:CODE
HIGHtests/test_endpoints.py895except Exception:CODE
HIGHtests/test_endpoints.py901except Exception:CODE
HIGHtests/test_context_mode_cli.py147except BaseException:CODE
HIGHtests/test_context_mode_cli.py211except BaseException:CODE
HIGHtests/hermetic/sitecustomize.py59except Exception: # pragma: no cover - tenacity is a hard dependencyCODE
AI Slop Vocabulary30 hits · 91 pts
SeverityFileLineSnippetContext
MEDIUMbook_maker/cli.py2864# below, and the `--to-epub` harness refuses it *before* it pays for a PDFSTRING
MEDIUMbook_maker/pipeline/bundle.py76# One page-selection spelling for the whole harness, numbered from 1 theCOMMENT
MEDIUMbook_maker/pipeline/translate.py49# Owned by the harness: the book is the bundle's, the resume decision isCOMMENT
MEDIUMbook_maker/pipeline/translate.py84# the harness sets for itself, and the record of which spelling of theCOMMENT
MEDIUMbook_maker/pipeline/reading_edition.py106 # the harness.COMMENT
MEDIUMbook_maker/pipeline/messages.py20# is shell-quoted so the command can be pasted. The harness export rebuildsCOMMENT
MEDIUMbook_maker/pipeline/messages.py31# The same refusal from the staged harness (`translate`, `run`), where thereCOMMENT
MEDIUMbook_maker/pipeline/messages.py447# the harness has no --to-epub, so its copy opens with its own condition.COMMENT
MEDIUMbook_maker/pipeline/to_epub.py233 # export and then the copy over `destination`, since the harnessCOMMENT
LOWbook_maker/translator/qwen_translator.py346 # once wiped the model it had just set.COMMENT
LOWbook_maker/loader/epub_loader.py2655 # Simpler approach: just set the translation and re-append code at the endCOMMENT
MEDIUM⚡tests/test_pdf_source_edit_guard.py141# The refusal, one reason per check, through the harnessCOMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py376 # the extraction has been paid for, and the harness can then only reportCOMMENT
MEDIUM⚡tests/test_reading_edition_parallel.py377 # "stopped before finishing (exit 1)". Decided: the harness refuses theCOMMENT
MEDIUMtests/test_reading_edition_glossary.py43SOURCE = """# The harnessCODE
MEDIUMtests/test_reading_edition_glossary.py168 bundle.bilingual_markdown.write_text("# The harness\n", encoding="utf-8")CODE
MEDIUMtests/test_reading_edition_glossary.py234 assert "{#the-harness}" in bundle.bilingual_markdown.read_text(encoding="utf-8")CODE
MEDIUMtests/test_reading_edition_glossary.py251 heading = sent["# The harness"]CODE
MEDIUM⚡tests/test_pdf_ocr_engine.py136 # the harness has no --to-epub; the rest of the sentence is the sameCOMMENT
MEDIUMtests/test_pdf_ocr_engine.py402# ------------------------------------------------------------------ harnessCOMMENT
MEDIUM⚡tests/test_pandoc_version.py91 # PATH and --pandoc is offered as the harness'sCOMMENT
MEDIUMtests/test_disclosure.py381 # The name is looked up by registry identity, and the hermetic harnessCOMMENT
MEDIUM⚡tests/test_bundle_pipeline.py1037# Mending a translation by hand: the harness export rebuilds the bundle's ownCOMMENT
MEDIUMtests/test_bundle_pipeline.py718 # The class used on its own states no language: the bundle harness isCOMMENT
MEDIUM⚡tests/test_bundle_pipeline.py566# The harness surfaceSTRING
MEDIUMtests/test_prompt_capture_server.py318 # harness). These tests are the opposite bargain — a real subprocessCOMMENT
MEDIUMtests/test_prompt_capture_server.py319 # against a real local endpoint — and the harness riding into theCOMMENT
MEDIUM⚡tests/test_prompt_sections.py383 # The hermetic harness (tests/hermetic, when it is on PYTHONPATH)COMMENT
LOW⚡tests/test_structured_classify.py720 # return over the value it had just set; every request went out withCOMMENT
MEDIUM⚡tests/test_pdf_ocr_replace_layer.py777# ---------------------------------------------------------------- harnessCOMMENT
Over-Commented Block76 hits · 71 pts
SeverityFileLineSnippetContext
LOWpyproject.toml41# The PDF reading edition (--to-epub): docling reads the PDF with layoutCOMMENT
LOWpyproject.toml101 "live_provider: calls a real translation provider (needs keys and network; run with -m live_provider)",COMMENT
LOWbook_maker/session_context.py41COMMENT
LOWbook_maker/session_context.py61# cost up to 56% more *and* was the only cell where register drift wasCOMMENT
LOWbook_maker/session_context.py81# measured that and it did not hold: on animal_farm through gpt-5.6-luna,COMMENT
LOWbook_maker/session_context.py101# 8192 stands anyway, by owner ruling and with that price known. The case isCOMMENT
LOWbook_maker/session_context.py121#COMMENT
LOWbook_maker/session_context.py141#COMMENT
LOWbook_maker/session_context.py381COMMENT
LOWbook_maker/session_context.py401# the model is being asked to compress its own context, not to write a reportCOMMENT
LOWbook_maker/session_context.py1041 summary: strCOMMENT
LOWbook_maker/classifier.py501 return base or "the endpoint's default host"COMMENT
LOWbook_maker/classifier.py521# reference with a lost skip costing 10 and an extra translate costing 1,COMMENT
LOWbook_maker/legacy_cli.py281 # Not an old alias: --model names an actual model id, which isCOMMENT
LOWbook_maker/cli.py641# 10 compactions at 500 against 6 at 3000, each one a place where the contextCOMMENT
LOWbook_maker/cli.py841 explicit `session` selects cached history.COMMENT
LOWbook_maker/cli.py981 return FalseCOMMENT
LOWbook_maker/cli.py3021 print(f"[yellow]deprecated:[/yellow] {escape(notice)}")COMMENT
LOWbook_maker/cli.py3061 print(COMMENT
LOWbook_maker/cli.py3421 # The translation metadata record embeds the operator's file (never a derivedCOMMENT
LOWbook_maker/endpoints.py101# aliases `jev-latest` (-> jev-1.13.0) and `jev-preview`, and versioned idsCOMMENT
LOWbook_maker/prompt_file.py41# is refused by name rather than silently dropped, because a misspelledCOMMENT
LOWbook_maker/pipeline/pdf_formula.py41# `mark` gives every undecoded formula a text, so the third branch isCOMMENT
LOWbook_maker/pipeline/pdf_figures.py61# docling's own pictures, in the same staging directory (the adapter'sCOMMENT
LOWbook_maker/pipeline/messages.py21# only the bundle's own EPUB and writes nothing beside the PDF (lead 260925,COMMENT
LOWbook_maker/pipeline/to_epub.py221 _print_image_usage(structure)COMMENT
LOWbook_maker/pipeline/docling_parser.py1041 )COMMENT
LOWbook_maker/pipeline/docling_parser.py1181COMMENT
LOWbook_maker/pipeline/preflight.py41# attributes and `$...$` math are all in it, and they are exactly theCOMMENT
LOWbook_maker/translator/base_translator.py281COMMENT
LOWbook_maker/translator/base_translator.py301 BATCH_SYS_MSG_PER_REQUEST = TrueCOMMENT
LOWbook_maker/translator/base_translator.py321 # printing success and dropping the fields.COMMENT
LOWbook_maker/translator/base_translator.py341 glossary_auto = NoneCOMMENT
LOWbook_maker/translator/base_translator.py481 # Nothing new this window. The vocabulary earlier windowsCOMMENT
LOWbook_maker/translator/base_translator.py501 # ---- session mode ------------------------------------------------------COMMENT
LOWbook_maker/translator/base_translator.py721 # the prose, exactly as every earlier run derived it.COMMENT
LOWbook_maker/translator/base_translator.py741 # CLI prints — what `--prompt` did with the operator's own sections isCOMMENT
LOWbook_maker/translator/base_translator.py1401 # system message onto this rung). Restoring the argument there wouldCOMMENT
LOWbook_maker/translator/chatgptapi_translator.py421 # The address this route calls when the command names none. None meansCOMMENT
LOWbook_maker/translator/chatgptapi_translator.py441 session = NoneCOMMENT
LOWbook_maker/translator/chatgptapi_translator.py461 # test) but is spelled here as a plain class attribute: importing theCOMMENT
LOWbook_maker/translator/chatgptapi_translator.py1741 # The reply arrived and did not answer the request. That is theCOMMENT
LOWbook_maker/translator/__init__.py21# services that speak only their own protocol and take no model at all.COMMENT
LOWbook_maker/translator/capabilities.py161# only caller (the session compact turn) truncates on this side anyway.COMMENT
LOWbook_maker/translator/codex_translator.py61COMMENT
LOWbook_maker/translator/codex_translator.py181COMMENT
LOWbook_maker/translator/codex_translator.py561 return textCOMMENT
LOWbook_maker/loader/plan.py461 return "link"COMMENT
LOWbook_maker/loader/plan.py561# Decoration a folio or a verse number routinely wears. Stripped from theCOMMENT
LOWbook_maker/loader/plan.py1081 chars: intCOMMENT
LOWbook_maker/loader/plan.py1401 for ordinal, unit in enumerate(fp.units):COMMENT
LOWbook_maker/loader/plan.py1421GROUP_MAX_CHARS = 500COMMENT
LOWbook_maker/loader/plan.py1441# Units one *general* (token-budget) group may carry.COMMENT
LOWbook_maker/loader/plan.py1461# budget is what actually caps the content of a request, and this is theCOMMENT
LOWbook_maker/loader/plan.py1481SUBSTRICT_GROUP_MAX_UNITS = GENERAL_GROUP_MAX_UNITS // 2COMMENT
LOWbook_maker/loader/plan.py1501# Also measured, and pointing the other way: per-content-token cost fallsCOMMENT
LOWbook_maker/loader/plan.py1521# floor, at the same 4:3 ratio it has always had — 1600, where the old pairCOMMENT
LOWbook_maker/loader/ledger.py41import tempfileCOMMENT
LOWbook_maker/loader/markers.py41INLINE_MARKER_MAX_CHARS = 40COMMENT
LOWbook_maker/loader/markers.py61# email address or an identifier is glued out of. A run of letters touchingCOMMENT
16 more matches not shown…
Deep Nesting69 hits · 56 pts
SeverityFileLineSnippetContext
LOWbook_maker/legacy_cli.py188CODE
LOWbook_maker/codex_client.py508CODE
LOWbook_maker/cli.py486CODE
LOWbook_maker/cli.py2975CODE
LOWbook_maker/utils.py500CODE
LOWbook_maker/structured.py38CODE
LOWbook_maker/endpoints.py340CODE
LOWbook_maker/pipeline/pdf_common.py229CODE
LOWbook_maker/pipeline/pdf_formula.py129CODE
LOWbook_maker/pipeline/pdf_formula.py171CODE
LOWbook_maker/pipeline/epub_export.py169CODE
LOWbook_maker/pipeline/decisions.py363CODE
LOWbook_maker/pipeline/decisions.py604CODE
LOWbook_maker/pipeline/decisions.py703CODE
LOWbook_maker/pipeline/decisions.py882CODE
LOWbook_maker/pipeline/pdf_figures.py770CODE
LOWbook_maker/pipeline/pdf_figures.py819CODE
LOWbook_maker/pipeline/pdf_headings.py163CODE
LOWbook_maker/pipeline/pdf_headings.py253CODE
LOWbook_maker/pipeline/docling_parser.py898CODE
LOWbook_maker/pipeline/preflight.py523CODE
LOWbook_maker/translator/chatgptapi_translator.py839CODE
LOWbook_maker/translator/chatgptapi_translator.py2133CODE
LOWbook_maker/translator/qwen_translator.py221CODE
LOWbook_maker/translator/capabilities.py515CODE
LOWbook_maker/translator/capabilities.py533CODE
LOWbook_maker/loader/srt_loader.py194CODE
LOWbook_maker/loader/plan.py232CODE
LOWbook_maker/loader/plan.py851CODE
LOWbook_maker/loader/plan.py946CODE
LOWbook_maker/loader/plan.py365CODE
LOWbook_maker/loader/plan.py896CODE
LOWbook_maker/loader/plan.py1847CODE
LOWbook_maker/loader/plan.py1926CODE
LOWbook_maker/loader/pdf_loader.py18CODE
LOWbook_maker/loader/pdf_loader.py169CODE
LOWbook_maker/loader/pdf_loader.py354CODE
LOWbook_maker/loader/disclosure.py252CODE
LOWbook_maker/loader/disclosure.py533CODE
LOWbook_maker/loader/txt_loader.py91CODE
LOWbook_maker/loader/md_loader.py126CODE
LOWbook_maker/loader/md_loader.py362CODE
LOWbook_maker/loader/font_obfuscation.py267CODE
LOWbook_maker/loader/epub_loader.py277CODE
LOWbook_maker/loader/epub_loader.py520CODE
LOWbook_maker/loader/epub_loader.py938CODE
LOWbook_maker/loader/epub_loader.py1461CODE
LOWbook_maker/loader/epub_loader.py2026CODE
LOWbook_maker/loader/epub_loader.py2120CODE
LOWbook_maker/loader/epub_loader.py2782CODE
LOWbook_maker/loader/epub_loader.py3209CODE
LOWbook_maker/loader/epub_loader.py3321CODE
LOWbook_maker/loader/epub_loader.py3502CODE
LOWbook_maker/loader/epub_loader.py3815CODE
LOWbook_maker/loader/epub_loader.py3827CODE
LOWbook_maker/loader/epub_loader.py4141CODE
LOWbook_maker/loader/epub_loader.py432CODE
LOWbook_maker/loader/classify/session.py383CODE
LOWbook_maker/loader/classify/model.py487CODE
LOWtools/docs_to_wiki.py152CODE
9 more matches not shown…
Magic Placeholder Names6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHREADME.md661export OPENAI_API_KEY=${your_api_key}CODE
HIGHREADME.md709export BBM_CAIYUN_API_KEY=${your_api_key}CODE
HIGHREADME-CN.md570export OPENAI_API_KEY=${your_api_key}CODE
HIGHREADME-CN.md608export BBM_CAIYUN_API_KEY=${your_api_key}CODE
HIGHdocs/zh/env_settings.md10export BBM_API_KEY=${your_api_key}CODE
HIGHdocs/en/env_settings.md10export BBM_API_KEY=${your_api_key}CODE
Unused Imports34 hits · 27 pts
SeverityFileLineSnippetContext
LOWbook_maker/session_context.py29CODE
LOWbook_maker/classifier.py43CODE
LOWbook_maker/codex_client.py31CODE
LOWbook_maker/glossary.py21CODE
LOWbook_maker/pipeline/__init__.py9CODE
LOWbook_maker/translator/codex_translator.py18CODE
LOWbook_maker/loader/plan.py66CODE
LOWbook_maker/loader/classify/session.py46CODE
LOWbook_maker/loader/classify/__init__.py30CODE
LOWbook_maker/loader/classify/__init__.py31CODE
LOWbook_maker/loader/classify/__init__.py32CODE
LOWbook_maker/loader/classify/__init__.py32CODE
LOWbook_maker/loader/classify/__init__.py32CODE
LOWbook_maker/loader/classify/__init__.py38CODE
LOWbook_maker/loader/classify/__init__.py39CODE
LOWtools/docs_to_wiki.py31CODE
LOWtools/pdf_to_book.py39CODE
LOWtools/pdf_to_book.py39CODE
LOWtools/pdf_to_book.py39CODE
LOWtools/pdf_to_book.py39CODE
LOWtests/test_corpus_epub_samples.py30CODE
LOWtests/test_corpus_epub_samples.py425CODE
LOWtests/test_pdf_to_epub_cli.py11CODE
LOWtests/test_pdf_formula.py13CODE
LOWtests/test_translation_plan.py2230CODE
LOWtests/test_translation_plan.py2230CODE
LOWtests/test_translation_plan.py2242CODE
LOWtests/test_translation_plan.py2013CODE
LOWtests/test_glossary.py10CODE
LOWtests/test_pdf_decisions.py29CODE
LOWtests/test_structured_classify.py11CODE
LOWtests/test_structured_classify.py12CODE
LOWtests/test_structured_classify.py14CODE
LOWtests/test_structured_classify.py30CODE
Self-Referential Comments5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMbook_maker/translator/claude_translator.py380 # Create a single message pair for all previous contextCOMMENT
MEDIUMbook_maker/loader/epub_loader.py2644 # Create a copy to work withCOMMENT
MEDIUMbook_maker/loader/epub_loader.py3514 # Create a chapter-specific translator instance to avoid context conflictsCOMMENT
MEDIUMbook_maker/loader/epub_loader.py3714 # Create a temporary translator with chapter contextCOMMENT
MEDIUMbook_maker/loader/epub_loader.py3948 # Create a simpler progress bar for parallel processingCOMMENT
AI Structural Patterns15 hits · 14 pts
SeverityFileLineSnippetContext
LOWbook_maker/pipeline/stages.py242CODE
LOWbook_maker/pipeline/to_epub.py139CODE
LOWbook_maker/pipeline/docling_parser.py898CODE
LOWbook_maker/pipeline/docling_parser.py1428CODE
LOWbook_maker/translator/chatgptapi_translator.py477CODE
LOWbook_maker/translator/qwen_translator.py76CODE
LOWbook_maker/translator/claude_translator.py187CODE
LOWbook_maker/translator/codex_translator.py210CODE
LOWbook_maker/loader/srt_loader.py32CODE
LOWbook_maker/loader/pdf_loader.py169CODE
LOWbook_maker/loader/txt_loader.py10CODE
LOWbook_maker/loader/md_loader.py37CODE
LOWbook_maker/loader/epub_loader.py277CODE
LOWtests/pipeline_helpers.py128CODE
LOWtests/pipeline_helpers.py322CODE
Modern AI Meta-Vocabulary3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMbook_maker/loader/ledger.py57# a context window.COMMENT
MEDIUM⚡tests/test_chatgptapi_translator.py1079 # all the joined blob — may be left in the context windowCOMMENT
MEDIUM⚡tests/test_cli.py1492 # `0` used to mean "size it from the model's own context window". OpenAI'sCOMMENT
Cross-Language Confusion2 hits · 8 pts
SeverityFileLineSnippetContext
HIGHbook_maker/cli.py3150 "model run rules on every row still null, an agent run hands "CODE
HIGHtests/test_translation_plan.py3498 them null, with no prior verdict to lean on. A person's ruling is aSTRING
Fake / Example Data12 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/test_translation_plan.py933 "dummy-key",CODE
LOWtests/test_translation_plan.py1368 "dummy-key",CODE
LOWtests/test_translation_plan.py2030 str(src), FakeModel, "dummy-key", resume=True, language="zh-hans"CODE
LOWtests/test_translation_plan.py2060 str(src), FakeModel, "dummy-key", resume=True, language="zh-hans"CODE
LOWtests/test_translation_plan.py2094 str(src), FakeModel, "dummy-key", resume=True, language="zh-hans"CODE
LOWtests/test_translation_plan.py2129 str(src), StopsPartway, "dummy-key", resume=True, language="zh-hans"CODE
LOWtests/test_plan_auto.py188 str(src), FakeModel, "dummy-key", resume=False, language="zh-hans"CODE
LOWtests/test_plan_auto.py277 str(src), FakeModel, "dummy-key", resume=False, language="zh-hans"CODE
LOWtests/test_plan_auto.py292 str(src), model_cls, "dummy-key", resume=True, language="zh-hans"CODE
LOWtests/test_plan_auto.py332 str(src), ClassifyingModel, "dummy-key", resume=False, language="zh-hans"CODE
LOWtests/test_plan_auto.py379 "fake-key",CODE
LOWtests/test_general_grouping_and_json_degree.py240 str(src), model_cls, "dummy-key", resume=False, language="zh-hans"CODE
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWbook_maker/translator/gemini_translator.py518 # Check if fatal error was already detected during batch attemptCOMMENT
LOWbook_maker/loader/epub_loader.py982 # Check if paragraph contains only excluded content tagsCOMMENT
LOWbook_maker/loader/epub_loader.py2631 # Check if paragraph has excluded content tagsCOMMENT
LOWbook_maker/loader/epub_loader.py2864 # Check if translation failedCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHbook_maker/translator/base_translator.py1356 Send one delimiter-separated request for a whole group. Args: text_list: List of texts to STRING
Modern Structural Boilerplate4 hits · 4 pts
SeverityFileLineSnippetContext
LOWbook_maker/pipeline/__init__.py11__all__ = ["PipelineError"]CODE
LOWbook_maker/loader/helper.py21logger = logging.getLogger(__name__)CODE
LOWbook_maker/loader/classify/__init__.py122__all__ = [CODE
LOWtools/pdf_to_book.py50__all__ = [CODE