CommunityCoding & Developmentgithub.com

knowledge-source-ingest

Incrementally ingest enumerable external sources into Knowledge with canonical source identity, retained snapshot manifests, overlap-aware diffing, and reconciliation of changed or deleted items. Includes a generic manifest tool and a read-only Discrawl adapter.

What is knowledge-source-ingest?

knowledge-source-ingest is a Claude Code agent skill that incrementally ingest enumerable external sources into Knowledge with canonical source identity, retained snapshot manifests, overlap-aware diffing, and reconciliation of changed or deleted items. Includes a generic manifest tool and a read-only Discrawl adapter.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/extensions/knowledge/skills/knowledge-source-ingest

Installed? Explore more Coding & Development skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Source Ingest Skill

Use this for bounded collections such as chat channels, issue streams, feeds, or mailboxes where later runs can overlap prior coverage. Read shared conventions, publication, and the manifest protocol. After acquisition, route documents and conversations through knowledge-ingest, which uses knowledge-entities for entity enrichment. Route meetings through knowledge-meeting-ingest. This skill owns source identity and coverage; the ingestion workflows turn the retained content into useful connected knowledge. For creating recurring ingestion jobs, use knowledge-automation first.

Contract

  • Resolve a stable provider/source key before reading content. Display names are labels, never identity.
  • Maintain one canonical source page with source_role: canonical, provider, and source_key. Reuse it on every run.
  • For each bounded observation, preserve the generated manifest as an attachment on a source page with source_role: snapshot, exact coverage, observation time, manifest hash, count, completeness, watermark, and dependency on the canonical source page.
  • Manifests retain stable item IDs and content hashes, not source text. Preserve original/exported content separately as evidence where authorized.
  • Query prior snapshot pages for the same provider/source key before planning. Download their manifests, verify attachment hashes, and pass all overlapping snapshots to the planner. Do not rely on conversation memory.
  • Reuse unchanged source bytes and existing records. Continue previously omitted enrichment from those retained sources when requested; an unchanged manifest does not mean entity enrichment already happened. Ingest added items. Reconcile changed items against existing pages/claims. Treat deletion as observed source state, not permission to erase Knowledge; correct or withdraw only when the evidence warrants it.
  • A complete snapshot can establish absence inside its exact coverage. Partial or unknown snapshots cannot; unresolved missing IDs remain unresolved.

Procedure

  1. Inspect knowledge_status and knowledge_ontology for the intended vault scope and the source fields, then search Knowledge for the canonical source and prior snapshots by provider/source key. If an owner-private ingestion unexpectedly resolves to a conversation scope or an empty vault after a restart, stop before writing and restore the intended authorized scope; never infer that prior coverage is absent from the wrong scope.
  2. Acquire a bounded export with an approved reader. For Discrawl, run scripts/discrawl-normalize.mjs with its configured read-only archive, exact channel ID when known, and [since,before) RFC3339 bounds. The normalized payload includes stable author IDs plus archive-observed display fields. Preserve the raw JSONL, and create a separate line-stable readable transcript when human review or line citations are needed.
  3. Generate a deterministic manifest with scripts/source-manifest.mjs snapshot. Attach it before publishing the snapshot page; record the returned SHA-256.
  4. Download all overlapping prior manifests and run scripts/source-manifest.mjs plan. Inspect covered/uncovered intervals and the added/changed/deleted/unchanged/unresolved lists.
  5. Test 3–5 substantive items or discussions, then ingest through knowledge-ingest (or knowledge-meeting-ingest for meetings). For chat, group related messages with their reply context; use knowledge-entities to enrich relevant people, companies, projects and concepts from their contributions. Carry supported developments into State, dated timelines and contextual back-links, not only a channel digest. Use stable external IDs in source citations and the retained snapshot as a dependency. Reuse its originals rather than uploading one copy per discussion.
  6. Publish or update derived records, then publish the snapshot page. A snapshot is complete only when acquisition and manifest creation covered the declared interval; derived extraction may still be partial and must be reported as such.
  7. Read back the canonical page, snapshot page, attachment, derived records, and source-dependent connections. Verify hashes and exact coverage.

Discrawl example

node scripts/discrawl-normalize.mjs --config /approved/discrawl.yaml \
  --channel 1234567890 --since 2026-09-21T00:00:00-07:00 \
  --before 2026-09-28T00:00:00-07:00 --output messages.jsonl
node scripts/source-manifest.mjs snapshot --provider discord \
  --source-key discord:GUILD_ID:1234567890 \
  --coverage-start 2026-09-21T00:00:00-07:00 \
  --coverage-end 2026-09-28T00:00:00-07:00 \
  --input messages.jsonl --output manifest.jsonl.gz --summary snapshot.json
node scripts/source-manifest.mjs plan --current manifest.jsonl.gz \
  --previous prior-1.jsonl.gz --previous prior-2.jsonl.gz --output plan.json

Do not include credentials, archive paths, or raw private content in Knowledge page prose. No scheduler, connector daemon, or plugin-owned ingestion job is created; the skill and scripts support an authorized agent-run workflow.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Related Skills