# shiplog
[](https://crates.io/crates/shiplog)
[](https://docs.rs/shiplog)
[](#license)
> Review evidence loop for people who need receipts, not review prose.
shiplog turns work evidence into a review-readiness loop: diagnose setup,
inspect status, collect receipts, repair gaps, rerun, compare, and share
safely.
## Install
```bash
cargo install shiplog --locked
```
With optional LLM-assisted workstream clustering:
```bash
cargo install shiplog --locked --features llm
```
Prerequisites: Rust 1.95+. Token-backed sources use environment variables such
as `GITHUB_TOKEN`, `GITLAB_TOKEN`, `JIRA_TOKEN`, or `LINEAR_API_KEY`; local git,
JSON, and manual evidence can run without provider tokens.
## What you get
| Setup preflight | `shiplog doctor --setup` |
| Agent setup state | `shiplog doctor --setup --json` |
| Review-loop status | `shiplog status --latest` |
| Agent review state | `shiplog status --latest --json` |
| Evidence intake | `shiplog intake --last-6-months --explain` |
| Repair queue | `shiplog repair plan --latest` |
| Local journal repair | `shiplog journal add --from-repair <repair_id>` |
| Repair movement | `shiplog repair diff --latest` |
| Packet movement | `shiplog runs diff --latest` |
| Share posture | `shiplog share explain manager --latest` |
| Full GitHub history | `shiplog github activity plan` |
## First useful loop
Start with setup and status:
```bash
shiplog init --guided
shiplog doctor --setup
shiplog sources status
shiplog doctor --setup --json
shiplog status --latest
```
Collect the first packet:
```bash
shiplog intake --last-6-months --explain
shiplog status --latest
```
Repair and compare when status says the packet needs evidence:
```bash
shiplog repair plan --latest
shiplog journal add --from-repair <repair_id>
shiplog intake --last-6-months --explain
shiplog repair diff --latest
shiplog runs diff --latest
shiplog share explain manager --latest
```
## Read vs write
Read-only commands:
- `shiplog doctor --setup`
- `shiplog sources status`
- `shiplog doctor --setup --json`
- `shiplog status --latest`
- `shiplog status --latest --json`
- `shiplog repair plan --latest`
- `shiplog repair diff --latest`
- `shiplog runs diff --latest`
- `shiplog share explain manager --latest`
- `shiplog github activity status --out ./out/github-full`
Write-producing commands:
- `shiplog init --guided`
- `shiplog intake --last-6-months --explain`
- `shiplog journal add --from-repair <repair_id>`
- `shiplog github activity report --out ./out/github-full`
- `shiplog github activity merge --out ./out/github-full`
- explicit `shiplog share manager|public` rendering commands
`doctor`, `status`, and `share explain` do not render profile artifacts. Use
explicit share commands only after share explanation or verification says the
profile is ready.
## Agent-readable surfaces
- `shiplog doctor --setup --json` exposes setup readiness without provider
probing, writes, or secret values.
- `shiplog status --latest --json` exposes the review-loop state, blockers,
next actions, write posture, and receipt references without scraping terminal
prose.
- `shiplog report export-agent-pack --latest` exports report receipts for
support and automation workflows.
Agents should consume JSON receipts, not `packet.md` or terminal prose.
## Read next
| First run | [Rapid first-intake guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/rapid-first-intake.md) |
| Setup | [Guided setup and doctor guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/guided-setup-doctor.md) |
| Recurring use | [Recurring review-loop guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/recurring-review-loop.md) |
| Full GitHub history | [GitHub activity harvest guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/github-activity-harvest.md) |
| Repair | [Evidence repair loop guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/evidence-repair-loop.md) |
| Review-ready packet and share posture | [Review-ready packet guide](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/guides/review-ready-packet.md) |
| Configuration | [Config reference](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/config-reference.md) |
| Status JSON contract | [Review-loop status schema](https://github.com/EffortlessMetrics/shiplog/blob/main/docs/schemas/review-loop-status-v1.md) |
| Release history | [CHANGELOG](https://github.com/EffortlessMetrics/shiplog/blob/main/CHANGELOG.md) |
## What shiplog does not do
- Does not write performance-review prose.
- Does not score employees.
- Does not mutate provider records.
- Does not query providers from `doctor` or `status`.
- Does not render manager/public packets from `status` or `share explain`.
- Does not enable optional LLM clustering unless built with `--features llm`
and configured explicitly.
## License
Dual licensed under [MIT](https://github.com/EffortlessMetrics/shiplog/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/EffortlessMetrics/shiplog/blob/main/LICENSE-APACHE), at your option.