# LLM Wiki Local-file LLM Wiki plugin for source ingestion, wiki browsing, query, lint, and maintenance workflows. ## Scope This package is the standalone home for LLM Wiki behavior. Wiki-specific routes, UI, prompts, tools, local-folder templates, migrations, fixtures, and tests live here rather than in Paperclip core. The alpha surface includes: - manifest-declared Wiki page, sidebar entry, and settings page - trusted local folder declaration for `raw/`, `wiki/`, `AGENTS.md`, `IDEA.md`, `wiki/index.md`, and `wiki/log.md` - plugin database namespace migration for wiki instances, sources, pages, operations, query sessions, and resource bindings - managed `Wiki Maintainer` agent, managed `LLM Wiki` project, and paused managed routines for wiki update processing, lint, and index refresh - plugin-operation issue creation using `surfaceVisibility: "plugin_operation"` - local source capture into `raw/` with metadata rows in the plugin DB namespace - opt-in company-scoped Paperclip event ingestion controls for issues, comments, and documents; event ingestion is disabled by default and routes captured raw provenance into the default space only - manual Paperclip project/root issue distillation and bounded backfill actions with explicit work items, operation issues, source caps, and estimated cost recording - Paperclip-derived distillation (cursor windows, manual `distill-now`, backfill) always writes into the default wiki space in Phase 1; non-default spaces remain on manual / raw-file ingest until per-space Paperclip ingestion profiles ship - Paperclip-derived distillation maintains `wiki/projects//standup.md` as the executive current-state view for each represented project, alongside durable `wiki/projects//index.md` knowledge pages - wiki page writes with plugin path validation, atomic local-folder writes, metadata/revision rows, backlink extraction, and optional stale-hash protection - wiki tools for search/read/write/propose patch/source/log/index/backlinks workflows ## Phase 5 Security Gate Paperclip-derived text ingestion stays limited to issue titles/descriptions, issue comments, and issue documents. - Issue attachments/assets are **metadata-only** in Phase 5. - Issue work products are **metadata-only** in Phase 5. - The wiki must not fetch `/api/assets/:id/content`, dereference work-product `url` fields, or store those capability-bearing links in source bundles/snapshots. The accepted policy lives in [doc/plans/2026-05-06-llm-wiki-paperclip-asset-security-gate.md](../../../doc/plans/2026-05-06-llm-wiki-paperclip-asset-security-gate.md). ## Development ```bash pnpm install pnpm dev # watch builds pnpm dev:ui # local dev server with hot-reload events pnpm test ``` From the Paperclip repo root: ```bash pnpm --filter @paperclipai/plugin-llm-wiki typecheck pnpm --filter @paperclipai/plugin-llm-wiki test pnpm --filter @paperclipai/plugin-llm-wiki build ``` ## Alpha Verification Run these commands from the Paperclip repo root before handing off alpha plugin changes: ```bash pnpm --filter @paperclipai/plugin-llm-wiki typecheck pnpm --filter @paperclipai/plugin-llm-wiki test pnpm --filter @paperclipai/plugin-llm-wiki build ``` The focused Vitest suite covers: - standalone package boundaries and package-local harness dependencies - required local folder bootstrap writes - raw source capture plus ingest metadata persistence - hidden plugin-operation issue creation for ingest/query/file-as-page workflows - disabled and enabled Paperclip event ingestion paths - managed routine declarations, manual distill/backfill work items, source cap handling, and backfill project/date scoping - atomic page writes, metadata/revision rows, backlinks, and stale-hash refusal - query session creation, run-id recording, stream event forwarding, and completion updates - filing a streamed query answer back into the wiki through a hidden operation Remaining alpha gaps: - Browser screenshot capture is maintained separately under `tests/screenshots`; generated `screenshots/` outputs are local artifacts and are ignored by git. - Host-level plugin install and live agent invocation still need Paperclip server/runtime smoke coverage when preparing a release candidate. ## Install Into Paperclip ```bash curl -X POST http://127.0.0.1:3100/api/plugins/install \ -H "Content-Type: application/json" \ -d '{"packageName":"/Users/dotta/paperclip/.paperclip/worktrees/PAP-3179-design-a-llm-wiki-plugin/packages/plugins/plugin-llm-wiki","isLocalPath":true}' ``` ## Build Options - `pnpm build` uses esbuild presets from `@paperclipai/plugin-sdk/bundlers`. - `pnpm build:rollup` uses rollup presets from the same SDK. After changing manifest-loaded assets such as skills, agent instructions, or templates, recompile the local plugin before re-enabling it: ```bash pnpm --filter @paperclipai/plugin-llm-wiki build ``` The package-local `dist/` directory is ignored by git, but local Paperclip installs load the compiled `dist/manifest.js` and `dist/worker.js` files at runtime. If activation failed before the rebuild, re-enable the plugin or restart the Paperclip dev server so the host imports the fresh bundle. ## Local File Layout ```text / AGENTS.md IDEA.md .gitignore raw/ .gitkeep wiki/ index.md log.md sources/ .gitkeep projects/ .gitkeep / index.md standup.md decisions.md history.md entities/ .gitkeep concepts/ .gitkeep synthesis/ .gitkeep ``` Use the settings page or `bootstrap-root` action to configure the folder and write the starter files. The plugin uses Paperclip's local folder API for path containment, symlink checks, read/write validation, and atomic writes. Bootstrap preserves existing files rather than overwriting operator edits. The default first-install skeleton is copied from the vanilla LLM Wiki layout, with `CLAUDE.md` renamed to `AGENTS.md` and Paperclip project overviews, standups, decisions, and history kept together under `wiki/projects//`. ## Managed Agent Instructions Plugin-managed agent instruction bundles live under: ```text agents//AGENTS.md ``` For this plugin the Wiki Maintainer source bundle is `agents/wiki-maintainer/AGENTS.md`. Any additional files in that folder are installed as sibling instruction files for the managed agent. The settings health check reports drift from these defaults, and resetting the managed agent asks for confirmation before replacing customized instructions.