plugins/lisa-wiki-copilot/skills/lisa-wiki-ingest/SKILL.md
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.
npx skillsauth add codyswanngt/lisa lisa-wiki-ingestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The single entry point for getting knowledge into the wiki. It is a router: it never reimplements synthesis per source — it selects a connector to produce a sanitized source note, then the kernel performs the shared, ordered pipeline.
/ingest <url|file|prompt> — ingest one source. Classify the input and pick the
matching connector./ingest (no argument, or "do a full ingest") — iterate every enabled connector whose
side-effect policy permits unattended ingest: self + other registered projects' git/PR history,
project-scoped memory, roles, plus read-only registered sources (notion, jira, confluence,
quickbooks, …). external-write connectors (Slack OAuth, CRM writeback) are skipped unless the
run includes explicit external-write intent./ingest --dry-run — list the sources a full ingest would run; perform no writes.Before anything else, run node scripts/ensure-wiki.mjs --json and use the returned wikiRoot as the
base for the whole pipeline — never hardcode wiki/. This is mode-agnostic by design:
wiki.source in .lisa.config.json) — resolves the in-repo wiki root instantly;
the branch sync below proceeds against this repo's remote, exactly as before.wiki.source.url set) — ensure-wiki mirrors/refreshes the gitignored working copy
of the canonical wiki repo and returns its path. In this mode the "sync the branch" step below, and
the Commit/PR step (7), operate against the wiki repo's own remote (the mirror), not the host
project's origin. The host project repo is never written to.Run this once per ingest invocation, before any source is processed (skip for --dry-run, which
writes nothing). The point is to ingest on top of fresh state, never stale state. Operate in the wiki
root resolved in Step 0 — the host repo for a local wiki, the mirror for a remote one.
gh repo view --json defaultBranchRef -q .defaultBranchRef.name,
or git remote show origin | sed -n 's/.*HEAD branch: //p', or the origin/HEAD symbolic ref. If
the repo has no remote, note "no remote — skipping branch sync" and proceed.git fetch <remote> to update remote-tracking refs.<remote>/<default> (git pull --ff-only).<remote>/<default> in (per the project's convention)
so the branch is not behind the default.wiki/sources/<system>/ plus run
metadata. A connector writes only its source note + metadata — never synthesis/index/log/state.wiki/open-questions/, never asserted.wiki/index.md.wiki/log.md entry (fixed operation vocabulary).git diff --check, secret/tenant/contamination scans, touched-file guard.wiki/state/<system>/*.json cursor — only now, after 1–5 pass.config.git policy. If the ingest started on
the default branch, create a dedicated ingestion branch first — never commit ingestion straight to
the default. Push the branch and open a PR targeting the default remote branch (via the host's
PR mechanism — e.g. gh pr create --base <default>). Before enabling auto-merge, feed the safety
scan output into createWikiIngestPublicationPolicy from scripts/wiki-safety.mjs. Enable
auto-merge only when autoMergeAllowed is true. external-write runs, redacted runs, and any run
with sensitive findings are the exception — open the PR without auto-merge so a human reviews
them before it lands. The PR summary must include the policy's safe review summary: counts and
entity types only, never raw values, ranges, tokens, source snippets, or scanner output. If
auto-merge cannot be enabled (the host doesn't support it, branch protection forbids it, or the
policy requires review), leave the PR open and note that a human must merge.external-write/sensitive runs.
--dry-run does neither (it writes nothing).sourceRetention and sensitivity; do not invent facts.scripts/verify-wiki-safety.mjs) against the wiki files/source notes produced by
the ingest. The default built-in scan blocks unredacted private keys, tokens, and
common financial/person identifiers without printing raw values. Projects may
select --scanner gitleaks for local parity with Gitleaks, and may use
--scanner trufflehog as a stricter optional verification pass when installed;
if a selected scanner is unavailable, keep the ingest blocked for review.scripts/wiki-safety.mjs. Treat
reviewRequired or any summarized finding as a hard auto-merge stop. Use the
generated PR summary text as-is or preserve its shape so reviewers see entity
types and counts without raw sensitive values.lisa-wiki-add-ingest (scaffold a custom front-door that chains here), lisa-wiki-query,
lisa-wiki-lint, lisa-wiki-doctor.
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and