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.
Analyzes codebase structure, tech stack, patterns, and conventions for project onboarding and exploration.
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.