.claude/skills/lisa-review-project/SKILL.md
This skill should be used when comparing Lisa's source templates against a target project's implementation to identify drift. It validates the Lisa directory, detects project types, scans template directories, compares files, categorizes changes, and offers to adopt improvements back into Lisa. This is the inverse of lisa:review-implementation.
npx skillsauth add codyswanngt/lisa lisa-review-projectInstall 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.
This skill compares Lisa's source templates against a target project that has Lisa applied, identifying what the project has changed from Lisa and offering to adopt those improvements back into Lisa.
This is the inverse of /lisa-review-implementation:
This skill must be run FROM the Lisa repository directory. The target project must have Lisa already applied.
Confirm running from Lisa by checking for src/core/lisa.ts.
If not in Lisa, error with:
This command must be run FROM the Lisa repository.
Current directory does not contain src/core/lisa.ts.
Usage: /lisa-review-project /path/to/target-project
If no project path provided, ask the user:
Which project would you like to review?
Path: [user provides path]
Validate the project path:
package.json (Node-based projects)Gemfile or config/application.rb (Rails projects)Parse the project's package.json and filesystem to detect its type(s):
package.json without "private": true AND has main, bin, exports, or filescdk.json exists OR aws-cdk in package.json dependenciesnest-cli.json exists OR @nestjs in package.json dependenciesapp.json exists OR eas.json exists OR expo in package.json dependenciestsconfig.json exists OR typescript in package.json dependenciesGemfile exists OR config/application.rb existsBuild the type hierarchy. Example: if expo detected, types = [all, typescript, expo]
If no types detected, use [all].
Instead of reading a manifest, scan Lisa's template directories directly to build the list of managed files.
For each type in the hierarchy (e.g., [all, typescript, expo]):
{type}/copy-overwrite/ — record each as (relativePath, "copy-overwrite", sourceTemplate){type}/copy-contents/ — record each as (relativePath, "copy-contents", sourceTemplate){type}/package-lisa/package.lisa.json exists, include package.json in the managed set and build its expected contents by merging every detected type's package-lisa template in hierarchy order.relativePath appears in multiple copy-* types, the most specific type wins (last in hierarchy).This gives you the complete list of Lisa-managed files and their source templates.
Skip these strategies (they're intentionally customized):
create-only - meant to be customized by projectmerge - already merged into project's fileFor files with source found and strategy is copy-overwrite or copy-contents:
diff -u "{lisa-source}" "{project-file}" || trueFor each drifted file, provide brief analysis:
Create a markdown report:
# Lisa Project Review
**Lisa Directory:** {lisa-path}
**Target Project:** {project-path}
**Project Types:** {types}
**Project Name:** {from package.json name or basename}
**Generated:** {current date/time ISO}
## Summary
- **Total managed files:** X
- **In sync:** X
- **Drifted:** X
- **Intentionally customized (create-only/merge):** X
- **Source not found:** X
## Drifted Files
### {relative/path/to/file}
**Source:** {type}/copy-overwrite/{path}
**Strategy:** copy-overwrite
**Category:** Improvement
<details>
<summary>View diff (Lisa <- Project)</summary>
\`\`\`diff
{diff output}
\`\`\`
</details>
**Analysis:** {Brief analysis of the change and why it matters}
---
[Repeat for each drifted file]
## Files Present in Lisa Templates but Missing from Project
These files exist in Lisa templates but not in the project:
- {file1}
- {file2}
This might mean:
- Lisa hasn't been applied to this project yet
- The file was deleted by the project
- The file is gitignored
## Intentionally Customized
These files use `create-only` or `merge` strategies and are meant to be customized:
- {file1}
- {file2}
## In Sync Files
<details>
<summary>X files match Lisa templates exactly</summary>
- {file1}
- {file2}
</details>
After the report, present the findings:
I found X files that have drifted from Lisa's templates.
[List files with categories]
Would you like to:
1. Review specific drifted files in detail
2. Adopt improvements from this project back into Lisa
3. Just view the full report
4. Done - no changes
If user wants to adopt improvements:
{type}/copy-overwrite/{path}?"typescript/ and all/, adopt to where it currently exists in Lisadocumentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
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.