# projd
`projd` scans a software project directory and prints a structured project
report.
```bash
projd scan .
projd scan . --format terminal
projd scan . --format terminal --details
projd scan . --format terminal --style table
projd scan . --format terminal --style compact
projd scan . --format terminal --style plain
projd scan . --format terminal --no-unicode
projd scan . --format terminal --width 60 --color never
projd scan . --output report.md
projd scan . --format json
projd scan . --format json --output scan.json
projd scan . --output report.md --overwrite
```
When stdout is an interactive terminal, `projd scan` renders a table-first
terminal report. When stdout is redirected or `--output` is used, Markdown and
JSON remain stable for automation.
Terminal output has three styles:
- `table`: default human-readable report with structured tables.
- `compact`: table columns without box borders, useful for CI logs.
- `plain`: legacy line-oriented output with stable ASCII-friendly formatting.
The report aggregates repeated build systems, dependency ecosystems, code line
statistics, and test commands so workspace scans stay compact.
The terminal report also shows source-control state, license type, and known CI
providers detected by `projd-core`.
`projd-core` now provides a shared project health summary with a grade, score,
risk level, and signal evidence. The CLI renders that same model in terminal,
Markdown, and JSON output so future GUI views do not need separate health logic.
By default, repeated risks are grouped by code and severity. Use `--details`
to expand detail tables for CI files, dependency manifests, license paths, test
sources, and individual risk findings.
Color output is semantic: headings, status values, bars, lockfile counts, and
risk severities use different colors when `--color` enables ANSI output.
The scanner implementation lives in `projd-core` so the CLI and GUI share the
same project model.