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 scanFiles
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 viagit show <branch>:.sickbay/last-report.jsonsickbay badge— reads the last score to generate a badge without re-scanningWeb dashboard — served at
/sickbay-report.jsonwhen using--webCreated by: Any scan (
sickbay,sickbay tui,sickbay --json)Updated: Every scan (overwritten)
Git: Should be committed so that
sickbay diffcan 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 sparklinesWeb 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/existsUpdated: Every scan (appended)
Git: Ignored by default — local to each developer's machine
Example entry
{
"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
| File | Commit? | Why |
|---|---|---|
baseline.json | Yes | Shared team baseline for measuring improvement |
last-report.json | Yes | Enables sickbay diff across branches |
history.json | No | Local scan history — each developer accumulates their own |
dep-tree.json | No | Large, regenerated every scan |
.gitignore | Yes | Ensures 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.