Skip to content

The .sickbay/ Directory

Sickbay stores scan results and project metadata in a .sickbay/ directory at the root of your project. This directory is created automatically the first time you run a scan, or explicitly via sickbay init.

.sickbay/
  .gitignore        # Created by `sickbay init`
  baseline.json     # Created by `sickbay init`
  dep-tree.json     # Updated every scan
  history.json      # Appended every scan
  last-report.json  # Overwritten every scan

Files

baseline.json

A full SickbayReport snapshot captured by sickbay init. This is your project's starting point — the score everything else is measured against.

  • Created by: sickbay init
  • Updated: Only when you re-run sickbay init
  • Git: Should be committed (shared team baseline)

last-report.json

The complete SickbayReport from the most recent scan. Overwritten after every scan (terminal, TUI, or --json mode).

Used by:

  • sickbay diff — reads the baseline branch's copy via git show <branch>:.sickbay/last-report.json

  • sickbay badge — reads the last score to generate a badge without re-scanning

  • Web dashboard — served at /sickbay-report.json when using --web

  • Created by: Any scan (sickbay, sickbay tui, sickbay --json)

  • Updated: Every scan (overwritten)

  • Git: Should be committed so that sickbay diff can compare branches

history.json

An array of condensed scan entries used for trend tracking. Each entry records the timestamp, overall score, per-category scores, issue counts, and number of checks run. Capped at 100 entries (oldest are dropped).

Used by:

  • sickbay trend — displays score history and sparklines

  • Web dashboard History tab — renders line charts from this data

  • TUI Trend panel — sparkline charts for the last 10 scans

  • Created by: First scan after .sickbay/ exists

  • Updated: Every scan (appended)

  • Git: Ignored by default — local to each developer's machine

Example entry
json
{
  "timestamp": "2026-04-02T12:00:00.000Z",
  "overallScore": 84,
  "categoryScores": {
    "dependencies": 90,
    "security": 100,
    "code-quality": 75,
    "performance": 68,
    "git": 95
  },
  "summary": { "critical": 0, "warnings": 5, "info": 12 },
  "checksRun": 15
}

dep-tree.json

The resolved dependency tree for the project, generated by running <package-manager> ls --json --depth 1. Used by the web dashboard's dependency graph visualization.

  • Created by: Any scan
  • Updated: Every scan (overwritten)
  • Git: Not committed (can be large; regenerated on demand)

.gitignore

Created by sickbay init inside the .sickbay/ directory. Prevents history.json and cache/ from being committed.

history.json
dep-tree.json
cache/

sickbay init also adds entries to your project's root .gitignore:

.sickbay/history.json
.sickbay/dep-tree.json
.sickbay/cache/

Git strategy

FileCommit?Why
baseline.jsonYesShared team baseline for measuring improvement
last-report.jsonYesEnables sickbay diff across branches
history.jsonNoLocal scan history — each developer accumulates their own
dep-tree.jsonNoLarge, regenerated every scan
.gitignoreYesEnsures the above rules are applied

Monorepos

In a monorepo, the .sickbay/ directory lives at the workspace root. All packages' results are aggregated into the same set of files. Per-package data is nested inside the report JSON rather than split into separate directories.

Released under the MIT License.