local-ingest
Local Ingest
Onboard a changelog without dispatching the remote fetch path. The remote path (releases admin source fetch → POST /v1/workflows/update → the API worker's DeterministicUpdateWorkflow, #1946) runs the body→records extraction server-side (incremental Haiku or the tool-loop) and bills that inference — even when it writes zero releases. A local Claude Code agent is already a capable model with web-fetch + file tools, so it can do the per-page extraction inline (folded into the session you're already in) and only needs a deterministic write path.
Core principle: the agent is the extractor. You fetch, you parse, you structure the records, and you POST them to the batch endpoint, which does a plain idempotent upsert with no AI on insert. The remote extraction loop never runs.
Local Claude Code only. This skill uses the Agent tool for sub-agent fan-out and assumes a persistent local filesystem and the CLI's RELEASES_API_* env. It sits alongside seeding-playbooks as a local-only operator skill — it is not deployed to the managed-agent fleet.
Cost contract
State this explicitly to the operator before a large run, and honor it:
- Spends: your agent's own tokens for fetch + extract, plus any sub-agents you fan out (your choice of model —
sonnetfor quality,haikufor bulk). - Does NOT spend: no server-side extraction (the update workflow's incremental-Haiku / tool-loop passes), no remote
web_fetchextraction.POST /v1/workflows/updateis never called. - The batch endpoint runs no AI on insert — no summarization, no marketing classifier, no feed enrichment. It does an
insertplus a fire-and-forget vector embed (waitUntil). The AI fields (title_generated/title_short/summary) are intentionally left empty; see Manual enrichment below for the deliberate follow-up paths.
The negative signal that confirms no remote run happened: in Axiom releases-cloudflare-logs there is no POST .../fetch?sessionId=det-… and no extract-deps-worker event for the source.