ingestlisted
Install: claude install-skill SentImperior666/TrialError
# /ingest — batch ingestion with a cost-estimate confirm gate
Design Section 6 (ingestion pipeline) + Section 12 M7 row. Every stage is
idempotent, content-hash-keyed, and resumable via the jobs ledger — killing
a worker mid-stage never loses progress, it just needs a `jobs tick` +
another `start-worker` to pick back up.
1. **Register the source** (one row per work; sha256-dedups automatically
— a duplicate `--content-file` refuses with `dedup_of` pointing at the
existing source, no second pipeline run):
```
trialerror ingest add-source --kind paper --title "<title>" \
--license-tier <open|academic_oa|user_owned_scan|commercial_restricted|unknown> \
--acquisition-route <author_posted|institutional|publisher_oa|user_scan|user_delivered|api|web> \
--launch-id <your launch_id> --content-file <path> [--authors "..."] [--year N] [--url ...]
```
License fields are REQUIRED at intake (design's licensing posture, C-0048/49
— never guess a tier; ask the user if unstated). `register` refuses an
`--acquisition-route` outside the program's configured allowlist
(`trialerror.toml [license]`), when one is configured.
2. **Acquire + enqueue the document** under that source. The raw file MUST
resolve under a configured ingest root (default `raw/` or `inbox/` —
the "manifest-glob wart" this design named and closed):
```
trialerror ingest add --source-id <SRC-id> --path raw/<file> --launch-id <your launch_id>
```
This prints a *