Generated from cat-harness/skills/library/library-core/uploads-watch.md — do not edit here.

✎ Edit this page’s source

Watching the queue

uploads/ is the acquisition queue — content-acquisition puts things in it, library-ingestion takes them out. This is the step between: seeing that something arrived.

The queue path is read from the declaration, never written down. It is uploads/ relative to the instance, which is not where a repository-relative consumer would look — the segment that caused a live 404, recorded in content-acquisition. queueRepoRelative in scripts/upload-url.ts is the one place that arithmetic lives.

An arrival is not a backlog, and the difference is the whole point

A file sitting in the queue says nothing on its own: it may have landed a minute ago or been waiting since before this session. Reporting a queue’s contents as news is how a watcher becomes noise that gets ignored, and an ignored watcher is worse than none — it reads as coverage.

So report against a mark: what was there when this session began, or when the watch last ran. What is new since the mark is an arrival. Everything else is the backlog, and the backlog is mentioned once, as a count.

A backlog is still a finding. A queue that has held the same file for weeks means acquisition happened and ingestion did not, and nobody noticed. That is worth one line — not silence, and not a repeated alarm.

It reports; it does not act

Never ingest on a watcher’s say-so. A drop is somebody handing over a file, not an instruction to publish it: ingestion decides a bib slug, writes into library/, and is a judgement call that library-ingestion owns.

Never delete anything from the queue — that is deletion-requires-confirmation applied where it is most tempting, because a processed file looks spent. It is not: uploads/ is the raw record of what was handed over, and the derived entry in library/ is not a substitute for it. Report what could go, with sizes and ages, and wait to be told.

What to say when something arrived

Name the file, say when it landed, say what it appears to be — and then say the next step is ingestion and whether you are taking it. An arrival reported without a next step hands the reader a fact and a chore.

What to say when nothing did

Nothing, unless you were asked. A watch that reports every quiet interval trains its reader to skip it, and the one round that mattered goes with the rest.

Processes that run this skill

processstep(s) that name it
Content acquisitionRoute it, and watch the queue

folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed dev