shiplog 0.2.1

CLI for generating self-review packets from GitHub/manual activity with receipts and coverage.
shiplog-0.2.1 is not a library.
Visit the last successful build: shiplog-0.9.0

shiplog

crates.io docs.rs License

Compile your GitHub activity into defensible self-review packets -- with receipts.

Installation

cargo install shiplog

With optional LLM-assisted workstream clustering:

cargo install shiplog --features llm

Prerequisites: Rust 1.92+, a GITHUB_TOKEN environment variable for GitHub ingestion.

Quick start

# 1. Collect events from GitHub
shiplog collect github \
  --user your-username \
  --since 2025-07-01 \
  --until 2026-01-01 \
  --mode merged \
  --out ./out

# 2. Curate workstreams
#    Copy workstreams.suggested.yaml to workstreams.yaml and edit.
#    shiplog never overwrites workstreams.yaml.
cp out/<run_id>/workstreams.suggested.yaml out/<run_id>/workstreams.yaml

# 3. Re-render the packet with your curated workstreams
shiplog render --run <run_id>

Output goes to out/<run_id>/ containing packet.md, ledger.events.jsonl, coverage.manifest.json, and optional redacted profiles.

Commands

Command Description
collect <source> Fetch events from a source and generate packet artifacts
render Re-render packet from existing ledger and workstreams
refresh <source> Re-fetch events while preserving curated workstreams.yaml
import Import an existing run directory and re-render
run <source> Legacy: collect + render in one shot

Sources

Source Description
github PR and review ingestion from GitHub API
json Import from canonical JSONL event files
manual Ingest non-GitHub work from a YAML events file

Key features

  • Receipts-first. Every claim traces to fetched evidence. Missing data is explicitly flagged, never silently omitted.
  • Coverage tracking. A coverage manifest documents API query windows, pagination limits, and gaps.
  • Deterministic redaction. Three profiles (internal/manager/public) with HMAC-SHA256 aliasing. Same key = same aliases across runs.
  • User-owned workstreams. Auto-generated suggestions in workstreams.suggested.yaml; your curated workstreams.yaml is never overwritten.
  • SQLite API cache. GitHub API responses are cached locally to avoid redundant requests on re-runs.
  • Zip bundles. Package output as a zip archive with SHA256 checksum manifests using --zip.

Redaction

Provide a key to generate redacted packets:

shiplog render --run <run_id> --redact-key my-stable-secret

This produces profiles/manager/packet.md (context preserved, details stripped) and profiles/public/packet.md (repos and workstreams aliased, sensitive fields removed).

Links

License

Dual licensed under MIT OR Apache-2.0, at your option.