paperclip/packages/plugins/plugin-llm-wiki/skills/wiki-lint/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.5 KiB
Raw Blame History


Wiki Lint

Audit, do not edit. Return findings the maintainer (human or agent) can triage.

Inputs

  • An operation issue with operationType: "lint".
  • The operation issue's target wikiId, spaceSlug, and space root. Lint only that space unless the issue explicitly says this is a multi-space sweep.

Workflow

  1. Walk the target space's wiki/index.md and wiki tree with wiki_search and wiki_read_page, always passing the operation issue's wikiId and spaceSlug. Build a mental map of: pages that exist, pages referenced from index.md, pages referenced from other pages, and raw sources.
  2. Check for the seven recurring issues, in this order:
    1. Contradictions — two pages making incompatible claims about the same entity, decision, or status. Flag both pages, name the conflicting claims, and quote evidence.
    2. Stale claims — a page asserts X, but a newer source under raw/ has superseded it. Flag the older page; never overwrite.
    3. Orphan pages — a wiki/ page is not linked from index.md and not referenced from any other wiki page. Either it should be linked, removed, or merged.
    4. Concept gaps — a term appears on three or more pages but has no dedicated wiki/concepts/<slug>.md. Recommend creating one.
    5. Broken [[wiki-links]] — a link target file does not exist.
    6. Weak provenance — a non-trivial claim is uncited or cites only the wiki itself in a circle. The original source ref should be findable.
    7. Index / log drift — pages exist that are not in index.md, or index.md lists pages that no longer exist. Recent operations in wiki/log.md that did not produce a corresponding page change.
  3. Return a triage list, grouped by severity:
    • critical: contradictions, broken links to active pages, fabricated citations.
    • medium: stale claims, weak provenance, large concept gaps.
    • low: orphans, log drift, small index gaps. Each item has: file path, evidence (a 12 line quote), suggested fix, and the operation that should follow up (ingest, paperclip-distill, index-refresh, manual review).
  4. Do not write to wiki/. Lint is read-only by design — the maintainer or the routine that follows decides which findings to act on.
  5. Append a log entry describing the run:
    ## [YYYY-MM-DD] lint | <N findings, M critical>
    - operation issue: <issue identifier>
    - critical: <count>
    - medium: <count>
    - low: <count>
    

Voice

  • Lead with the count by severity.
  • Each finding is one bullet. Resist commentary.
  • When in doubt about severity, say so and surface it as medium with a "verify" note.

Verification

Before closing the operation issue:

  • Findings are grouped by severity with file paths, evidence, and suggested fix per item.
  • No files under raw/ were modified. No files under wiki/ were modified except wiki/log.md.
  • If the run found nothing, the issue is closed with "no findings" and the log entry still exists so future audits can see this run happened.

Tools

wiki_search, wiki_read_page, wiki_list_sources, wiki_read_source, wiki_write_page (only wiki/log.md). Always include the operation issue's wikiId and spaceSlug.