knowledge-source-ingest

Ingestion incrémentielle de sources externes énumérables dans Knowledge, avec identité canonique, instantanés de manifeste, différences conscientes des chevauchements et réconciliation des éléments modifiés ou supprimés. Inclut un outil générique de manifeste et un adaptateur Discrawl en lecture seule.

Qu'est-ce que knowledge-source-ingest ?

Cette compétence permet à un agent IA (comme Claude Code, Cursor, ou Codex) d'ingérer de manière incrémentielle des collections bornées provenant de sources externes (canaux de discussion, flux de tickets, fils d'actualité, boîtes aux lettres) dans une base de connaissances Knowledge. Elle garantit une identité de source stable et canonique à chaque exécution, en réutilisant la même page source à chaque fois. Elle conserve des instantanés (snapshots) sous forme de manifestes attachés, avec des hachages de contenu, pour permettre une détection précise des différences (ajouts, modifications, suppressions) entre les exécutions, même en cas de chevauchement des couvertures temporelles. La compétence utilise un outil générique de manifeste (source-manifest.mjs) pour générer, planifier et comparer les instantanés, et intègre un adaptateur en lecture seule pour la source Discrawl (ex : Discord). Elle ne crée ni planificateur ni démon : elle est conçue pour être exécutée à la demande par un agent autorisé.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence d'ingestion de source

Utilisez cette compétence pour des collections bornées telles que des canaux de discussion, des flux de tickets, des fils d'actualité ou des boîtes aux lettres où des exécutions ultérieures peuvent chevaucher une couverture antérieure. Lisez les conventions partagées, la publication et le protocole de manifeste. Après l'acquisition, acheminez les documents et conversations via knowledge-ingest, qui utilise knowledge-entities pour l'enrichissement des entités. Acheminez les réunions via knowledge-meeting-ingest. Cette compétence possède l'identité et la couverture de la source ; les flux de travail d'ingestion transforment le contenu conservé en connaissances connectées utiles. Pour créer des travaux d'ingestion récurrents, utilisez d'abord knowledge-automation.

Contrat

  • Résolvez une clé fournisseur/source stable avant de lire le contenu. Les étiquettes d'affichage sont des libellés, jamais une identité.
  • Maintenez une page source canonique unique avec source_role: canonical, provider et source_key. Réutilisez-la à chaque exécution.
  • Pour chaque observation bornée, conservez le manifeste généré en tant que pièce jointe sur une page source avec source_role: snapshot, couverture exacte, heure d'observation, hachage du manifeste, nombre, exhaustivité, marqueur de progression (watermark) et dépendance vers la page source canonique.
  • Les manifestes conservent des identifiants d'élément stables et des hachages de contenu, pas le texte source. Conservez le contenu original/exporté séparément comme preuve lorsque cela est autorisé.
  • Interrogez les pages d'instantanés précédentes pour la même clé fournisseur/source avant de planifier. Téléchargez leurs manifestes, vérifiez les hachages des pièces jointes et transmettez tous les instantanés qui se chevauchent au planificateur. Ne vous fiez pas à la mémoire de la conversation.
  • Réutilisez les octets source inchangés et les enregistrements existants. Continuez l'enrichissement précédemment omis à partir de ces sources conservées lorsque cela est demandé ; un manifeste inchangé ne signifie pas que l'enrichissement des entités a déjà eu lieu. Ingérez les éléments ajoutés. Réconciliez les éléments modifiés avec les pages/déclarations existantes. Considérez la suppression comme un état source observé, pas une autorisation à effacer Knowledge ; corrigez ou retirez uniquement lorsque les preuves le justifient.
  • Un instantané complet peut établir une absence dans sa couverture exacte. Les instantanés partiels ou inconnus ne le peuvent pas ; les identifiants manquants non résolus restent non résolus.

Procédure

  1. Inspectez knowledge_status et knowledge_ontology pour la portée prévue du coffre (vault) et les champs source, puis recherchez dans Knowledge la source canonique et les instantanés antérieurs par clé fournisseur/source. Si une ingestion privée au propriétaire se résout de manière inattendue en une portée de conversation ou un coffre vide après un redémarrage, arrêtez-vous avant d'écrire et restaurez la portée autorisée prévue ; n'inférez jamais que la couverture antérieure est absente de la mauvaise portée.
  2. Acquérez une exportation bornée avec un lecteur approuvé. Pour Discrawl, exécutez scripts/discrawl-normalize.mjs avec son archive en lecture seule configurée, l'ID de canal exact lorsqu'il est connu, et les bornes RFC3339 [since,before). Le payload normalisé inclut des ID d'auteur stables ainsi que des champs d'affichage observés dans l'archive. Conservez le JSONL brut et créez une transcription lisible ligne par ligne séparée lorsque la relecture humaine ou les citations de ligne sont nécessaires.
  3. Générez un manifeste déterministe avec scripts/source-manifest.mjs snapshot. Attachez-le avant de publier la page d'instantané ; enregistrez le SHA-256 renvoyé.
  4. Téléchargez tous les manifestes antérieurs qui se chevauchent et exécutez scripts/source-manifest.mjs plan. Inspectez les intervalles couverts/non couverts et les listes ajouté/modifié/supprimé/inchangé/non résolu.
  5. Testez 3 à 5 éléments ou discussions substantiels, puis ingérez via knowledge-ingest (ou knowledge-meeting-ingest pour les réunions). Pour les discussions, regroupez les messages associés avec leur contexte de réponse ; utilisez knowledge-entities pour enrichir les personnes, entreprises, projets et concepts pertinents à partir de leurs contributions. Reportez les développements pris en charge dans l'État (State), des chronologies datées et des rétroliens contextuels, pas seulement un résumé de canal. Utilisez des ID externes stables dans les citations de source et l'instantané conservé comme dépendance. Réutilisez ses originaux plutôt que de télécharger une copie par discussion.
  6. Publiez ou mettez à jour les enregistrements dérivés, puis publiez la page d'instantané. Un instantané est complete uniquement lorsque l'acquisition et la création du manifeste ont couvert l'intervalle déclaré ; l'extraction dérivée peut encore être partielle et doit être signalée comme telle.
  7. Relisez la page canonique, la page d'instantané, la pièce jointe, les enregistrements dérivés et les connexions dépendantes de la source. Vérifiez les hachages et la couverture exacte.

Exemple Discrawl

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

N'incluez pas d'identifiants, de chemins d'archive ou de contenu brut privé dans le texte des pages Knowledge. Aucun planificateur, démon de connecteur ou tâche d'ingestion appartenant à un plugin n'est créé ; la compétence et les scripts prennent en charge un flux de travail exécuté par un agent autorisé.

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.

Skills associés