RepoPilot

laurent22 / joplin

Search laurent22/joplin

GitHub

Code

Understand laurent22/joplin's source layout and find a starting point for your task using the saved repository evidence.

Detailed import-graph metrics were not captured for this report.

How the code fits together

  • packages/fork-htmlparser2/src7 captured source files in this directory. Its responsibility has not been described in the saved analysis.
  • packages/fork-sax/lib1 captured source file in this directory. Its responsibility has not been described in the saved analysis.
  • packages/fork-uslug/lib1 captured source file in this directory. Its responsibility has not been described in the saved analysis.
  • packages/lib/lib1 captured source file in this directory. Its responsibility has not been described in the saved analysis.
  • packages/plugin-repo-cli/lib9 captured source files in this directory. Its responsibility has not been described in the saved analysis.

Files at c17f98efb419 · captured source folders.

Where to start reading

  1. Repository root
  2. Repository root
  3. Public API candidatename match
  4. Public API candidatename match
  5. Runtime candidatename match
  6. Runtime candidatename match

Find files for a task

Change the public API

Start with possible export surfaces, then check their consumers and tests. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.
  • File-name match for this task.

Trace runtime behavior

Start with possible startup or request handlers, then follow the calls for your scenario. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.

Add or update tests

Use a nearby test as a pattern. Read the root manifest or contribution guide for the correct test command. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.
  • File-name match for this task.

Change build or automation

Inspect the relevant configuration and the commands it runs before changing the workflow. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.
  • File-name match for this task.

File paths come from a snapshot of up to 500 captured paths; an omitted file may still exist.

  • Public and runtime candidates are based on file names; their exports and execution paths still need checking in source.
  • The file list was refreshed after the written analysis. Subsystem descriptions and suggested changes may describe an older revision.

Code quality and hotspots

Quality Score: 90/100

Low Risk

This repo is in good health with CI, tests, and active maintenance.

High complexity -10

Maintainability grade

Static analysis

How maintainable the code looks — from complexity, code issues, test presence, file size, and hotspot load. It grades the shape of the code, not defect risk, and doesn't replace review.

F
28/100
A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, F < 40
Cyclomatic complexityavg 119
0/35
Code issues3 errors, 153 warnings
0/20
Testspresent · ~81% of files
20/20
Largest file2,016 lines
6/15
Hotspot load4 high-risk files
2/10

Configuration status

CI/CD Pipeline — configured

Provider: GitHub Actions

12 GitHub Actions workflows

Test Suite — detected

2,261 test files detected

Stack: Jest/Vitest

Where: packages/app-cli/tests/enex_to_html · packages/app-cli/app · packages/app-cli/tests/enex_to_md

Test Coverage — ~81%heuristic

2,261 test files / 2,796 source files. This is a file-count ratio, not real line coverage — set up Codecov for authoritative numbers.

Dependency Scanning — no config detected

No Dependabot / Renovate / Snyk / Trivy / CodeQL config found. Enable Dependabot or Renovate.

Top hotspots

Files edited often AND hard to reason about. Churn = recent commit frequency, Complexity = branches and nesting, Risk = both combined. These are the highest-leverage targets for refactoring or testing.

models/ItemModel.ts
Churn: 56 (14 commits/180d)Complexity: 100Risk: 56
models/UserModel.ts
Churn: 52 (13 commits/180d)Complexity: 100Risk: 52

All hotspots

Files that change often and are complex tend to accumulate more bugs

Code metrics

Static analysis on sampled source files (up to 15 files).

Avg Cyclomatic Complexity119

Counts if/for/while/switch/catch/ternary branches

Errors / Warnings3 / 153

Secrets, empty catches, console.log, var usage, long lines