paperclip/packages/plugins/plugin-llm-wiki/skills/wiki-ingest/SKILL.md
Dotta 508355b8fc
[codex] Add LLM Wiki plugin package to master (#5716)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies.
> - The plugin system is the extension surface for optional product
capabilities without baking every workflow into core.
> - The LLM Wiki plugin package was reviewed in stacked PR #5592, which
targeted `pap-9173-llm-wiki-rest`.
> - The stack base PR #5597 merged to `master` before #5592 was merged
into that branch, so the plugin package never reached `master`.
> - A direct PR from `pap-9173-llm-wiki-rest` back to `master` would be
noisy because that branch has diverged from current `master`.
> - This pull request reapplies the reviewed
`packages/plugins/plugin-llm-wiki/` package onto current `master` and
updates Docker deps-stage manifest coverage.
> - The branch intentionally no longer changes `pnpm-workspace.yaml`
after maintainer feedback; because the new package is now a root
workspace importer, the remaining integration question is how
maintainers want the root lockfile handled under the current PR policy.

## What Changed

- Added the LLM Wiki plugin package under
`packages/plugins/plugin-llm-wiki/` from the merged PR #5592 head.
- Preserved the post-review cleanup from #5592: generated
design/screenshot artifacts are not committed, and `src/ui/index.tsx` /
`src/wiki.ts` are small public entrypoints.
- Added the new plugin package manifest to the Docker deps stage so
policy can validate package manifest coverage.
- Removed the earlier `pnpm-workspace.yaml` exclusion per maintainer
request, so the plugin is included by the existing `packages/plugins/*`
workspace glob.

## Verification

Current head:
- PGlite migration harness: ran migrations 001-003, verified old
non-space distillation unique constraints were removed, inserted
duplicate cursor and work-item keys in a second space, then reran
migration 003 successfully
- `node ./scripts/check-docker-deps-stage.mjs`
- `git diff --check`

Known current-head install result after removing the workspace
exclusion:
- `pnpm install --frozen-lockfile` fails because `pnpm-lock.yaml` has no
importer for `packages/plugins/plugin-llm-wiki/package.json`.

Previously verified on the same plugin source before the
workspace-exclusion removal:
- `pnpm --filter @paperclipai/plugin-sdk build`
- `cd packages/plugins/plugin-llm-wiki && pnpm install --lockfile=false
&& pnpm test`

## Risks

- The branch now includes `packages/plugins/plugin-llm-wiki` in the root
workspace but does not update `pnpm-lock.yaml`. Root frozen install will
fail until maintainers choose a lockfile path that fits repo policy.
- Committing `pnpm-lock.yaml` directly on this PR conflicts with the
current PR policy check, while excluding the package from
`pnpm-workspace.yaml` was rejected in maintainer feedback.
- The package includes UI code already reviewed in #5592; generated
screenshot/design artifacts were intentionally removed per maintainer
request, so visual review should regenerate screenshots locally if
needed.
- The package depends on plugin host support from #5597, which is
already merged to `master`.

> For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and
discuss it in `#dev` before opening the PR. Feature PRs that overlap
with planned core work may need to be redirected — check the roadmap
first. See `CONTRIBUTING.md`.

## Model Used

- OpenAI GPT-5 Codex via Codex CLI, tool use and local code execution
enabled; context window not exposed.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have run the targeted checks listed above
- [x] I have added or updated tests where applicable
- [ ] If this change affects the UI, I have included before/after
screenshots
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge

Stack context: #5592 was merged into `pap-9173-llm-wiki-rest` after
#5597 had already merged that branch to `master`, so this follow-up PR
is needed to carry the plugin package itself into `master`.

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-11 20:45:41 -05:00

3.8 KiB
Raw Blame History

name description
wiki-ingest Use when an operation issue asks you to ingest a captured source from `raw/` into the LLM Wiki, or when the user explicitly says "ingest <slug>". The issue body will name a file under `raw/` (e.g. `raw/karpathy-llm-wiki.md`) and ask for durable wiki pages. Do not invoke this skill for Paperclip activity bundles — those use `paperclip-distill` instead.

Wiki Ingest

Turn one source document into durable, interlinked wiki knowledge.

Inputs

  • An operation issue with operationType: "ingest" assigned to you.
  • A raw/ path mentioned in the issue body (always treat raw/ as immutable).
  • The operation issue's target wikiId, spaceSlug, and space root (otherwise stop and surface the missing config to the requester).

Workflow

  1. Read context first.
    • Read the target space's AGENTS.md for page conventions (filenames, frontmatter, voice, citation style).
    • Read the target space's wiki/index.md to see what already exists.
    • Read the target space's last ~20 entries of wiki/log.md to avoid re-ingesting a source or re-resolving a contradiction someone else already filed.
  2. Read the source end to end with wiki_read_source, passing the operation issue's wikiId and spaceSlug. Do not skim. Note the source's structure, claims, dates, and anything that contradicts existing pages.
  3. Plan, then confirm — but only if the user is in the loop. If the operation came from a routine (no live user), proceed. If a user is asking interactively, summarise the 35 takeaways you intend to file and ask which to emphasise before writing.
  4. Write the source page at wiki/sources/<slug>.md — ~300800 words, frontmatter per the wiki schema, neutral voice, key claims with quoted excerpts where they carry weight. The source page is the canonical citation target for everything else this skill writes.
  5. Update or create downstream pages in entities/, concepts/, and synthesis/. A typical ingest touches 515 pages; resist creating pages for ideas that only appear once.
  6. Wire the cross-links. Every claim that comes from the source cites it as (see [[wiki/sources/<slug>]]). Every entity / concept mentioned by name on more than one page links to its dedicated page.
  7. Flag contradictions; do not silently overwrite. When new material disagrees with an existing page, append a > ⚠ contradicted by [[wiki/sources/<slug>]] (YYYY-MM-DD) callout to the older page and note the conflict in the log.
  8. Refresh wiki/index.md with one-line summaries for any new pages.
  9. Append a log entry in wiki/log.md:
    ## [YYYY-MM-DD] ingest | <source title>
    - source: raw/<filename>
    - new pages: [[...]], [[...]]
    - updated pages: [[...]], [[...]]
    - notes: <one-line synthesis or open question>
    

Voice

  • Terse, factual, neutral. Reference material, not narrative.
  • No "Today I learned" or "This is interesting because" framing.
  • Quote the source verbatim when paraphrasing would lose precision.

Verification

Before closing the operation issue:

  • Source page exists at wiki/sources/<slug>.md with valid frontmatter and a sources: field pointing to the raw path.
  • Every new or updated page links back to the source page or a downstream page that does.
  • wiki/index.md lists every new page under the right category with a one-line summary.
  • wiki/log.md has the ingest entry with the exact filename heading format (so grep "^## \[" wiki/log.md keeps working).
  • Any contradiction between the new source and an older page is annotated, not silently overwritten.
  • No file under raw/ was modified.

Tools

wiki_list_sources, wiki_read_source, wiki_search, wiki_read_page, wiki_write_page. Always include the operation issue's wikiId and spaceSlug.