From lisa
Extracts semantic memory from project analysis. Scans codebase, docs, and configs to understand tech stack, constraints, and goals.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lisa:discoverThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill analyzes existing projects and generates Gastown-compatible semantic memory.
This skill analyzes existing projects and generates Gastown-compatible semantic memory.
Use this skill when:
project/
├── .gt/
│ └── memory/
│ ├── semantic.json # Permanent facts (tech stack, constraints)
│ ├── episodic.json # Decisions with TTL (optional)
│ └── procedural.json # Learned patterns (optional)
└── [existing project files]
Scan these locations in priority order:
| File | Detects |
|---|---|
package.json | Node.js runtime, framework, dependencies |
Cargo.toml | Rust projects |
go.mod | Go projects |
requirements.txt | Python dependencies |
pyproject.toml | Python projects (modern) |
Gemfile | Ruby projects |
pom.xml | Java/Maven projects |
build.gradle | Java/Gradle projects |
| File | Detects |
|---|---|
.firebaserc, firebase.json | Firebase |
wrangler.toml | Cloudflare Workers |
vercel.json | Vercel deployment |
netlify.toml | Netlify deployment |
docker-compose.yml | Containerization |
Dockerfile | Container build |
*.env.example | Environment variables |
.github/workflows/ | CI/CD (GitHub Actions) |
| File | Provides |
|---|---|
README.md | Project description, setup |
docs/ | Architecture docs, ADRs, PRDs |
CONTRIBUTING.md | Development workflow |
CHANGELOG.md | Project history |
LICENSE | License type |
| Directory | Indicates |
|---|---|
src/, lib/, app/ | Main code location |
tests/, __tests__/, spec/ | Test location |
schemas/, migrations/ | Database schemas |
components/ | UI component library |
api/, routes/ | API structure |
Scan package and config files for dependencies, then map to canonical label names:
Use exact names above. If a dependency doesn't match a known canonical name, use the package name as-is.
{
"$schema": "semantic-memory-v1",
"project": {
"name": "my-app",
"type": "web-application",
"primary_language": "TypeScript",
"description": "A task management app for teams"
},
"tech_stack": {
"runtime": "Node.js 20",
"framework": "Next.js 14",
"database": "Neon PostgreSQL",
"auth": "Firebase Auth",
"deployment": "Vercel",
"styling": "Tailwind CSS",
"testing": "Vitest",
"orm": "Drizzle"
},
"personas": [
{"name": "Team Lead", "needs": ["assign tasks", "track progress"]},
{"name": "Developer", "needs": ["see my tasks", "update status"]}
],
"constraints": [
"Must support offline mode",
"GDPR compliant data handling"
],
"non_goals": [
"Mobile native app (web-only for MVP)",
"Enterprise SSO (future phase)"
],
"evidence": {
"last_scan": "2026-01-27T10:00:00Z",
"files_analyzed": ["package.json", "README.md", "docs/PRD.md"]
}
}
Permanent facts that don't change:
Decisions with time-to-live (~30 days):
Learned patterns:
| Gate | Requirement |
|---|---|
semantic_valid | semantic.json is valid JSON |
project_identified | project.name is not null or empty |
tech_stack_detected | At least 2 tech_stack fields populated |
evidence_recorded | evidence.files_analyzed has 1+ entries |
python plugins/lisa/hooks/validate.py --stage discover
If unable to detect something:
null rather than guessingevidence.unresolved list (if pattern exists)After discover completes:
skills/plan/SKILL.mdnpx claudepluginhub auge2u/lisa-helps-ralph-loops --plugin lisaReads project files (Gemfile, package.json, pyproject.toml, etc.) and stores tech stack facts in long-term memory. Use when you need to understand or document a project's structure.
Extracts tech stack, project structure, key patterns, and conventions from codebases via package.json scans, find, grep for JS/TS, Python, Go, Rust projects. Use before PRDs or planning.
Analyzes existing codebases to detect project types, frameworks, structures, and collision risks. Supports context, brownfield, and setup modes for feature planning.