Repository Analysis

suitenumerique/docs

Docs is an open-source text editor: web-native, made for real-time collaboration, cleanly structured documents and sub-documents with full ownership of your data. Built to scale with Django and React.

14.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of suitenumerique/docs, a Python project with 16,698 GitHub stars. SynthScan v2.0 examined 134,430 lines of code across 848 source files, recording 1419 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 14.3 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

14.3
Adjusted Score
14.3
Raw Score
100%
Time Factor
2026-07-31
Last Push
16.7K
Stars
Python
Language
134.4K
Lines of Code
848
Files
1.4K
Pattern Hits
2026-08-02
Scan Date
0.12
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 9HIGH 92MEDIUM 45LOW 1273

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1419 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1157 hits · 1082 pts
SeverityFileLineSnippetContext
LOWdocumentation/resource_server.md71 def create_document_from_markdown(self, request):CODE
LOW…press/src/features/auth/api/useUserReconciliations.tsx34export function useUserReconciliationsQuery(CODE
LOW…rc/features/docs/doc-versioning/api/useDocVersions.tsx59export function useDocVersionsInfiniteQuery(CODE
LOW…end/apps/impress/src/features/docs/doc-export/utils.ts133export function odtRegisterParagraphStyleForBlock(CODE
LOW…ps/impress/src/features/docs/doc-export/utils_print.ts159function createPrintOnlyStyleElement() {CODE
LOW…features/docs/doc-export/blocks-mapping/headingPDF.tsx10function extractTextFromBlockContent(content: unknown[]): string {CODE
LOW…/src/features/docs/doc-share/api/useDocInvitations.tsx69export function useDocInvitationsInfinite(params: DocInvitationsParams) {CODE
LOW…rc/features/docs/doc-share/api/useDocAccessRequest.tsx54export function useCreateDocAccessRequest(CODE
LOWsrc/backend/demo/tests/test_commands_create_demo.py24def test_commands_create_demo():CODE
LOWsrc/backend/demo/management/commands/create_demo.py29def random_true_with_probability(probability):CODE
LOWsrc/backend/core/signals.py28def document_access_post_save(sender, instance, created, **kwargs): # pylint: disable=unused-argumentCODE
LOWsrc/backend/core/signals.py44def document_access_post_delete(sender, instance, **kwargs): # pylint: disable=unused-argumentCODE
LOWsrc/backend/core/models.py260 def _delete_documents_single_owner(self):CODE
LOWsrc/backend/core/models.py270 def _clear_user_created_documents(self):CODE
LOWsrc/backend/core/models.py278 def _handle_onboarding_documents_access(self):CODE
LOWsrc/backend/core/models.py238 def _delete_user_shared_documents_accesses(self):CODE
LOWsrc/backend/core/models.py313 def _duplicate_onboarding_sandbox_document(self):CODE
LOWsrc/backend/core/models.py343 def _convert_valid_invitations(self):CODE
LOWsrc/backend/core/models.py499 def process_reconciliation_request(self):CODE
LOWsrc/backend/core/models.py576 def prepare_documentaccess_reconciliation(self):CODE
LOWsrc/backend/core/models.py610 def prepare_document_favorite_reconciliation(self):CODE
LOWsrc/backend/core/models.py634 def prepare_linktrace_reconciliation(self):CODE
LOWsrc/backend/core/models.py654 def prepare_thread_reconciliation(self):CODE
LOWsrc/backend/core/models.py669 def prepare_comment_reconciliation(self):CODE
LOWsrc/backend/core/models.py684 def prepare_reaction_reconciliation(self):CODE
LOWsrc/backend/core/models.py696 def send_reconciliation_confirm_email(CODE
LOWsrc/backend/core/models.py721 def send_reconciliation_done_email(self, language=None):CODE
LOWsrc/backend/core/models.py799 def send_reconciliation_error_email(CODE
LOWsrc/backend/core/models.py905 def annotate_user_has_link_trace(self, user):CODE
LOWsrc/backend/core/models.py1155 def get_nb_accesses_cache_key(self):CODE
LOWsrc/backend/core/models.py1192 def invalidate_nb_accesses_cache(self):CODE
LOWsrc/backend/core/models.py1230 def compute_ancestors_links_paths_mapping(self):CODE
LOWsrc/backend/core/models.py1256 def ancestors_link_definition(self):CODE
LOWsrc/backend/core/models.py1271 def ancestors_link_definition(self, definition):CODE
LOWsrc/backend/core/models.py1853 def send_ask_for_access_email(self, email, language=None):CODE
LOWsrc/backend/core/malware_detection.py16def malware_detection_callback(file_path, status, error_info, **kwargs):CODE
LOWsrc/backend/core/choices.py89def get_equivalent_link_definition(ancestors_links):CODE
LOWsrc/backend/core/tasks/user_reconciliation.py84def user_reconciliation_csv_import_job(job_id):CODE
LOWsrc/backend/core/tasks/access.py9def reset_service_connections_in_cascade(document_id, user_id=None):CODE
LOWsrc/backend/core/tasks/search.py31def batch_indexer_throttle_acquire(timeout: int = 0, atomic: bool = True):CODE
LOWsrc/backend/core/tasks/search.py51def batch_document_indexer_task(timestamp):CODE
LOWsrc/backend/core/tasks/search.py66def trigger_batch_document_indexer(document):CODE
LOWsrc/backend/core/external_api/viewsets.py30 def _get_resource_server_actions(self, resource_name):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py33def test_api_utils_ai_user_rate_throttle_minute_limit(mock_time):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py69def test_ai_user_rate_throttle_hour_limit(mock_time):CODE
LOW…nd/core/tests/test_api_utils_ai_user_rate_throttles.py106def test_api_utils_ai_user_rate_throttle_day_limit(mock_time):CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py56def test_models_document_accesses_several_null_users():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py62def test_models_document_accesses_user_and_team_set():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py71def test_models_document_accesses_user_and_team_empty():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py15def test_models_document_accesses_str():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py28def test_models_document_accesses_unique_user():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py39def test_models_document_accesses_several_empty_teams():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py45def test_models_document_accesses_unique_team():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py83def test_models_document_access_get_abilities_anonymous():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py96def test_models_document_access_get_abilities_authenticated():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py113def test_models_document_access_get_abilities_for_owner_of_self_allowed():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py130def test_models_document_access_get_abilities_for_owner_of_self_last_on_root(CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py151def test_models_document_access_get_abilities_for_owner_of_self_last_on_child(CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py173def test_models_document_access_get_abilities_for_owner_of_owner():CODE
LOWsrc/backend/core/tests/test_models_document_accesses.py190def test_models_document_access_get_abilities_for_owner_of_administrator():CODE
1097 more matches not shown…
Cross-File Repetition82 hits · 410 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/core/tests/test_models_users.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…tests/documents/test_api_documents_create_for_owner.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…/tests/documents/test_api_documents_children_create.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…kend/core/tests/documents/test_api_documents_create.py0it should be possible to create several documents at the same time without causing any race conditions or data integritySTRING
HIGH…l_api/test_external_api_documents_attachment_upload.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…end/core/tests/external_api/test_external_api_users.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…_api/test_external_api_documents_link_configuration.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…core/tests/external_api/test_external_api_documents.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_accesses.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_versions.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…external_api/test_external_api_documents_invitation.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_favorite.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…e/tests/external_api/test_external_api_documents_ai.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…external_api/test_external_api_documents_media_auth.py0tests for the resource server api for documents accesses. not testing external api endpoints that are already tested in STRING
HIGH…s/external_api/test_external_api_documents_accesses.py0a user who is related to a document should be allowed to retrieve the associated document versions.STRING
HIGH…end/core/tests/documents/test_api_document_accesses.py0a user who is related to a document should be allowed to retrieve the associated document versions.STRING
HIGH…end/core/tests/documents/test_api_document_versions.py0a user who is related to a document should be allowed to retrieve the associated document versions.STRING
HIGH…tests/documents/test_api_documents_create_for_owner.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…kend/core/tests/documents/test_api_documents_create.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…/tests/documents/test_api_documents_children_create.py0tests for documents api endpoint in impress's core app: children createSTRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0anonymous users should not be able to request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0authenticated users should be able to request ai proxy to a document if the link reach and role permit it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0users who are not related to a document can't request ai transform if the link reach and role don't allow it.STRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0throttling per document should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utSTRING
HIGH…ore/tests/documents/test_api_documents_ai_translate.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…nd/core/tests/documents/test_api_documents_ai_proxy.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…ore/tests/documents/test_api_documents_ai_transform.py0throttling per user should be triggered on the ai transform endpoint. for full throttle class test see: `test_api_utils_STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…ackend/core/tests/documents/test_api_documents_list.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…nd/core/tests/documents/test_api_documents_trashbin.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…ore/tests/documents/test_api_documents_list_filters.py0tests for documents api endpoint in impress's core app: listSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0anonymous users should be allowed to retrieve the descendants of a public document.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0anonymous users should not be able to retrieve a document that is not public.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be able to retrieve the descendants of a public/authenticated document to which they are not STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be allowed to retrieve the descendants of a document who has a public or authenticated ancestSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0authenticated users should not be allowed to retrieve a document that is restricted and to which they are not related.STRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…ackend/core/tests/documents/test_api_documents_tree.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…sts/documents/test_api_documents_search_descendants.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…nd/core/tests/documents/test_api_documents_retrieve.py0authenticated users should be allowed to retrieve a restricted document to which they are related via a team whatever thSTRING
HIGH…re/tests/documents/test_api_documents_children_list.py0authenticated users should be allowed to retrieve a document if they are related to one of its ancestors whatever the roSTRING
22 more matches not shown…
Self-Referential Comments36 hits · 108 pts
SeverityFileLineSnippetContext
MEDIUM…files/docker-entrypoint-initdb.d/01_create_app_user.sh4# Create a non-superuser for the application to test migrations.COMMENT
MEDIUM.github/workflows/crowdin_download.yml62 # Create a new PRCOMMENT
MEDIUMsrc/backend/core/tests/test_models_documents.py973 # Create a document with 7 versionsCOMMENT
MEDIUM…/backend/core/tests/test_models_user_reconciliation.py356 # Create a reconciliation entry where only one email has been checkedCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py163 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py204 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py243 # Create a parent document firstCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py282 # Create a fake Markdown fileCOMMENT
MEDIUM…core/tests/external_api/test_external_api_documents.py362 # Create a document the user should NOT have access toCOMMENT
MEDIUMsrc/backend/core/tests/commands/test_clean_document.py33 # Create a root document with subdocumentsCOMMENT
MEDIUMsrc/backend/core/tests/commands/test_clean_document.py300 # Create a root document with subdocumentsCOMMENT
MEDIUM…/core/tests/documents/test_api_document_invitations.py547 # Create a new invitation to the same document with the exact same email addressCOMMENT
MEDIUM…nd/core/tests/documents/test_api_documents_trashbin.py386 # Create a new user with no owner access to any documentCOMMENT
MEDIUM…end/core/tests/documents/test_api_document_versions.py365 # Create a new version should not make it available to the user becauseCOMMENT
MEDIUM…end/core/tests/documents/test_api_document_versions.py433 # Create a new version should not make it available to the user becauseCOMMENT
MEDIUM…end/core/tests/documents/test_api_document_versions.py667 # Create a new version should make it available to the userCOMMENT
MEDIUM…end/core/tests/documents/test_api_document_versions.py705 # Create a new version should make it available to the userCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py26 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py59 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py113 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py152 # Create a fake Markdown fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py210 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py256 # Create an empty fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py290 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py328 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py432 # Create a fake DOCX fileCOMMENT
MEDIUM…tests/documents/test_api_documents_create_with_file.py489 # Create a file with Unicode characters in the nameCOMMENT
MEDIUM…ests/documents/test_api_documents_formatted_content.py87 # Create an access as a reader. This should unlock the access.COMMENT
MEDIUM…backend/core/tests/documents/test_api_documents_all.py47 # Create a document tree: parent -> child -> grandchildCOMMENT
MEDIUM…backend/core/tests/documents/test_api_documents_all.py406 # Create a document treeCOMMENT
MEDIUM…d/core/tests/documents/test_api_documents_duplicate.py809 # Create a complex tree:COMMENT
MEDIUM…/tests/documents/test_api_documents_children_create.py333 # Create a fake DOCX fileCOMMENT
MEDIUM…/tests/documents/test_api_documents_children_create.py381 # Create a fake DOCX fileCOMMENT
MEDIUM…ests/documents/test_api_documents_attachment_upload.py293 # Create a temporary file larger than the allowed sizeCOMMENT
MEDIUM…ackend/core/tests/documents/test_api_documents_move.py495 # Create a hierarchy: parent -> child -> grandchildCOMMENT
MEDIUMsrc/backend/core/api/viewsets.py1088 # Create a child documentCOMMENT
Hallucination Indicators9 hits · 90 pts
SeverityFileLineSnippetContext
CRITICALsrc/backend/core/validators.py3from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tasks/user_reconciliation.py8from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_document_accesses.py6from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_documents.py14from django.core.exceptions import ValidationErrorCODE
CRITICAL…d/core/tests/test_utils_create_tree_node_with_retry.py5from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALsrc/backend/core/tests/test_models_users.py9from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/utils/treebeard.py7from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALsrc/backend/core/api/viewsets.py20from django.core.exceptions import ValidationErrorCODE
CRITICALsrc/backend/core/api/__init__.py4from django.core.exceptions import ValidationErrorCODE
Structural Annotation Overuse29 hits · 55 pts
SeverityFileLineSnippetContext
LOWdocumentation/installation/scalingo.md18## Step 1: Create Your AppCOMMENT
LOWdocumentation/installation/scalingo.md22## Step 2: Provision AddonsCOMMENT
LOWdocumentation/installation/scalingo.md30## Step 3: Configure Environment VariablesCOMMENT
LOWdocumentation/installation/scalingo.md108## Step 4: DeployCOMMENT
LOWdocumentation/installation/scalingo.md124## Step 5: Create superuserCOMMENT
LOWdocumentation/installation/compose.md30## Step 1: Prepare your working environment:COMMENT
LOWdocumentation/installation/compose.md47## Step 2: ConfigurationCOMMENT
LOWdocumentation/installation/compose.md159## Step 3: Reverse proxy and SSL/TLSCOMMENT
LOWdocumentation/installation/compose.md188## Step 4: Start DocsCOMMENT
LOWdocumentation/installation/compose.md198## Step 5: Run the database migration and create Django admin userCOMMENT
LOWdocumentation/installation/compose.md217### Step 1: Edit the images tag with the desired versionCOMMENT
LOWdocumentation/installation/compose.md219### Step 2: Pull the imagesCOMMENT
LOWdocumentation/installation/compose.md225### Step 3: Restart your containersCOMMENT
LOWdocumentation/installation/compose.md231### Step 4: Run the database migrationCOMMENT
LOWdocumentation/examples/compose/minio/README.md8### Step 1: Prepare your working environment:COMMENT
LOWdocumentation/examples/compose/minio/README.md27### Step 3: Expose MinIO instanceCOMMENT
LOWdocumentation/examples/compose/minio/README.md71### Step 4: Start the serviceCOMMENT
LOWdocumentation/examples/compose/minio/README.md85### Step 1: Configure `mc` to connect to your MinIO Server with your root userCOMMENT
LOWdocumentation/examples/compose/minio/README.md93### Step 2: Create a new bucket with versioning enabledCOMMENT
LOWdocumentation/examples/compose/nginx-proxy/README.md12### Step 1: Prepare your working environment:COMMENT
LOWdocumentation/examples/compose/nginx-proxy/README.md19### Step 2: Edit `DEFAULT_EMAIL` in the compose file.COMMENT
LOWdocumentation/examples/compose/nginx-proxy/README.md23### Step 3: Create docker networkCOMMENT
LOWdocumentation/examples/compose/nginx-proxy/README.md31### Step 4: Start serviceCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md8### Step 1: Prepare your working environment:COMMENT
LOWdocumentation/examples/compose/keycloak/README.md27### Step 3: Expose keycloak instance on httpsCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md58### Step 4: Start the serviceCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md68### Step 1: Create a New RealmCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md75#### Step 2: Create a New ClientCOMMENT
LOWdocumentation/examples/compose/keycloak/README.md85#### Step 3: Get Client CredentialsCOMMENT
Fake / Example Data35 hits · 43 pts
SeverityFileLineSnippetContext
LOW…press/src/features/service-worker/plugins/ApiPlugin.ts254 creator: 'dummy-id',CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-header.spec.ts53 const editor = await writeInEditor({ page, text: 'Lorem ipsum' });CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-header.spec.ts57 await writeInEditor({ page, text: 'Lorem ipsum 2' });CODE
LOW…ontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts39 full_name: 'John Doe',CODE
LOW…tend/apps/e2e/__tests__/app-impress/doc-import.spec.ts59 name: 'Lorem Ipsum import Document',CODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md3# Lorem Ipsum import DocumentCOMMENT
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md11* **Bold text**: Lorem ipsum dolor sit amet.COMMENT
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md11* **Bold text**: Lorem ipsum dolor sit amet.COMMENT
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md39> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt.CODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md39> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt.CODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md60Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW…d/apps/e2e/__tests__/app-impress/assets/test_import.md60Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl eget ultricies tincidunt, nisl nisl aliquamCODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts29const expectedMarkdown = '# Example document\n\nLorem ipsum dolor sit amet.';CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts29const expectedMarkdown = '# Example document\n\nLorem ipsum dolor sit amet.';CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts31 '<h1>Example document</h1><p>Lorem ipsum dolor sit amet.</p>';CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts31 '<h1>Example document</h1><p>Lorem ipsum dolor sit amet.</p>';CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts57 text: 'Lorem ipsum dolor sit amet.',CODE
LOW…/frontend/servers/y-provider/__tests__/convert.test.ts57 text: 'Lorem ipsum dolor sit amet.',CODE
LOW…kend/core/tests/test_services_find_document_indexer.py473 token = "fake-token"CODE
LOWsrc/backend/core/tests/test_api_users.py390 factories.UserFactory(email="john.doe@example.com", full_name="John Doe")CODE
LOWsrc/backend/core/tests/test_api_users.py51 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py86 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py126 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py171 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOWsrc/backend/core/tests/test_api_users.py281 user = factories.UserFactory(email="user@example.com")CODE
LOWsrc/backend/core/tests/test_api_users.py419 user = factories.UserFactory(email="user@example.com", full_name="Example User")CODE
LOW…d/core/tests/serializers/test_user_light_serializer.py14 email="test@test.com",CODE
LOW…d/core/tests/serializers/test_user_light_serializer.py15 full_name="John Doe",CODE
LOW…d/core/tests/serializers/test_user_light_serializer.py19 assert serializer.data["full_name"] == "John Doe"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py225 user = UserFactory(full_name="John Doe", short_name="John")CODE
LOWsrc/backend/core/tests/authentication/test_backends.py264 full_name="John Doe", short_name="John", email="john.doe@example.com"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py306 full_name="John Doe", short_name="John", email="john.doe@example.com"CODE
LOWsrc/backend/core/tests/authentication/test_backends.py377 assert user.full_name == "John Doe"CODE
Cross-Language Confusion7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHsrc/backend/demo/management/commands/create_demo.py134 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py169 queue.push(document)CODE
HIGHsrc/backend/demo/management/commands/create_demo.py181 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py190 queue.push(CODE
HIGHsrc/backend/demo/management/commands/create_demo.py213 queue.push(CODE
HIGHsrc/backend/core/tests/test_services_search_indexers.py459 indexer.push(sample_data)CODE
HIGHsrc/backend/core/services/search_indexers.py167 self.push(serialized_batch)CODE
Over-Commented Block16 hits · 16 pts
SeverityFileLineSnippetContext
LOWdocumentation/examples/compose/compose.yaml61 # - VIRTUAL_HOST=${DOCS_HOST} # used by nginx proxyCOMMENT
LOWdocumentation/examples/compose/minio/compose.yaml21# networks:COMMENT
LOWdocumentation/examples/compose/keycloak/README.md41 # Uncomment and set your values if using our nginx proxy exampleCOMMENT
LOWdocumentation/examples/compose/keycloak/compose.yaml21 # environment:COMMENT
LOW…tures/docs/doc-presenter/components/PresenterSlide.tsx21 slide: PresenterSlideData;COMMENT
LOWsrc/helm/impress/values.yaml1# Default values for impress.COMMENT
LOWsrc/helm/impress/values.yaml61 path: /collaboration/ws/COMMENT
LOWsrc/helm/impress/values.yaml241 ## @extra backend.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConCOMMENT
LOWsrc/helm/impress/values.yaml321 ## @skip backend.job.annotations.argocd.argoproj.io/hookCOMMENT
LOWsrc/helm/impress/values.yaml341 ## @param backend.probes.liveness.targetPort [nullable] Configure port for backend HTTP liveness probeCOMMENT
LOWsrc/helm/impress/values.yaml401 ## @param backend.celery.args Override the celery container argsCOMMENT
LOWsrc/helm/impress/values.yaml501 envFrom: []COMMENT
LOWsrc/helm/impress/values.yaml521 targetPort: 8080COMMENT
LOWsrc/helm/impress/values.yaml561 extraVolumes: []COMMENT
LOWsrc/helm/impress/values.yaml761 # envFrom:COMMENT
LOWsrc/helm/impress/values.yaml781 annotations: {}COMMENT
Modern AI Meta-Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUM…nd/core/tests/test_services_converter_orchestration.py31 # Verify the orchestrationCOMMENT
MEDIUMsrc/backend/core/services/collaboration_services.py57 # Note: Collaboration microservice accepts only raw token, which is not recommendedCOMMENT
MEDIUMsrc/backend/core/services/converter_services.py112 # Note: Yprovider microservice accepts only raw token, which is not recommendedCOMMENT
MEDIUMsrc/backend/impress/settings.py914 # Y provider microserviceCOMMENT
MEDIUMsrc/backend/impress/settings.py924 # DocSpec API microserviceCOMMENT
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWsrc/backend/core/models.py2073 # Check if an identity already exists for the provided emailCOMMENT
LOWsrc/backend/core/external_api/permissions.py29 # Check if the user is authenticatedCOMMENT
LOW…ackend/core/tests/documents/test_api_documents_list.py424 # Check if the "is_favorite" annotation is correctly set for the favorited documentsCOMMENT
LOWsrc/backend/core/api/viewsets.py2030 # Check if the attachment is readyCOMMENT
LOWsrc/backend/core/api/viewsets.py2230 # Check if the attachment is readyCOMMENT
LOWsrc/backend/core/api/throttling.py46 # Check if this is a valid y-provider request and exempt from throttlingCOMMENT
LOWsrc/backend/core/api/permissions.py85 # Check if resource_id is passed in the contextCOMMENT
LOWsrc/backend/core/api/permissions.py93 # Check if the user has access to manage invitations (Owner/Admin roles)COMMENT
Modern Structural Boilerplate10 hits · 10 pts
SeverityFileLineSnippetContext
LOWsrc/backend/conftest.py41logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/malware_detection.py12logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/tasks/user_reconciliation.py18logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/utils/users.py12logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/utils/treebeard.py10logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/api/viewsets.py93logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/authentication/backends.py20logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/search_indexers.py21logger = logging.getLogger(__name__)CODE
LOWsrc/backend/core/services/converter_services.py13logger = logging.getLogger(__name__)CODE
LOWsrc/backend/impress/__init__.py5__all__ = ["celery_app"]CODE
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGH…end/core/tests/test_services_collaboration_services.py27 Creates a context manager to mock the reset-connections endpoint for collaboration services. Args: settSTRING
HIGHsrc/backend/core/api/viewsets.py444 DocumentViewSet API. This view set provides CRUD operations and additional actions for managing documents. STRING
Excessive Try-Catch Wrapping6 hits · 7 pts
SeverityFileLineSnippetContext
LOWsrc/backend/conftest.py113 except Exception: # pylint: disable=broad-except # noqa: BLE001CODE
LOWsrc/backend/conftest.py158 except Exception: # pylint: disable=broad-except # noqa: BLE001CODE
LOWsrc/backend/core/management/commands/index.py44 except Exception as err:CODE
LOW…agement/commands/update_files_content_type_metadata.py82 except Exception as exc: # noqaCODE
LOWsrc/backend/core/services/ai_services/blocknote.py73 except Exception as exc: # pylint: disable=broad-except #noqa: BLE001CODE
MEDIUMsrc/backend/core/services/ai_services/blocknote.py69def run_async_gen():CODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…kend/core/tests/documents/test_api_documents_update.py720# =============================================================================COMMENT
MEDIUM…kend/core/tests/documents/test_api_documents_update.py722# =============================================================================COMMENT
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOW…core/tests/external_api/test_external_api_documents.py320CODE
LOW…agement/commands/update_files_content_type_metadata.py18CODE
LOWsrc/backend/core/api/viewsets.py1345CODE
LOWsrc/backend/core/api/viewsets.py2415CODE
LOWsrc/backend/core/api/__init__.py12CODE
LOWsrc/backend/core/services/ai_services/blocknote.py133CODE
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHCONTRIBUTING.md170Remember that for your contributions to go through the CI, your commits have to be signed off with `git commit --signofCODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWgitlint/gitlint_emoji.py5CODE
LOWsrc/backend/core/apps.py19CODE
LOW…e/tests/external_api/test_external_api_documents_ai.py18CODE
LOWsrc/backend/impress/__init__.py3CODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/backend/core/middleware.py21CODE
LOWsrc/backend/core/middleware.py39CODE
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMsrc/backend/core/tests/test_services_ai_services.py270CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…apps/impress/src/features/help/components/HelpMenu.tsx43 * The onboarding can be disable, so we need to check if it's enabled before displaying the help menu.COMMENT