Awesome-omni-skill discover
Extracts semantic memory from project analysis. Scans codebase, docs, and configs to understand tech stack, constraints, and goals.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/discover" ~/.claude/skills/diegosouzapw-awesome-omni-skill-discover && rm -rf "$T"
manifest:
skills/development/discover/SKILL.mdsource content
Discover Skill (Stage 1)
This skill analyzes existing projects and generates Gastown-compatible semantic memory.
When to Use
Use this skill when:
- Starting migration of an existing project
- Need to understand a codebase's tech stack
- Want to document project constraints and goals
- Preparing for roadmap generation (Stage 2)
Output Structure
project/ ├── .gt/ │ └── memory/ │ ├── semantic.json # Permanent facts (tech stack, constraints) │ ├── episodic.json # Decisions with TTL (optional) │ └── procedural.json # Learned patterns (optional) └── [existing project files]
Discovery Procedure
Scan these locations in priority order:
1. Package Files (Tech Stack Detection)
| File | Detects |
|---|---|
| Node.js runtime, framework, dependencies |
| Rust projects |
| Go projects |
| Python dependencies |
| Python projects (modern) |
| Ruby projects |
| Java/Maven projects |
| Java/Gradle projects |
2. Configuration Files (Service Detection)
| File | Detects |
|---|---|
, | Firebase |
| Cloudflare Workers |
| Vercel deployment |
| Netlify deployment |
| Containerization |
| Container build |
| Environment variables |
| CI/CD (GitHub Actions) |
3. Documentation (Project Understanding)
| File | Provides |
|---|---|
| Project description, setup |
| Architecture docs, ADRs, PRDs |
| Development workflow |
| Project history |
| License type |
4. Source Structure (Codebase Understanding)
| Directory | Indicates |
|---|---|
, , | Main code location |
, , | Test location |
, | Database schemas |
| UI component library |
, | API structure |
Tech Stack Extraction
Framework Detection
Look for these patterns in dependencies:
| Dependency | Framework |
|---|---|
| Next.js |
| React |
| Vue.js |
| Angular |
| Express.js |
| Fastify |
| Django |
| Flask |
| FastAPI |
| Ruby on Rails |
| Gin (Go) |
Database Detection
| Indicator | Database |
|---|---|
, | PostgreSQL |
| MySQL |
, | MongoDB |
| Redis |
| Prisma ORM |
| Drizzle ORM |
| TypeORM |
Auth Detection
| Indicator | Auth System |
|---|---|
| Firebase Auth |
| Auth0 |
| NextAuth.js |
| Passport.js |
| Clerk |
| Supabase Auth |
Output: semantic.json
{ "$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"] } }
Memory Types
Semantic Memory (Required)
Permanent facts that don't change:
- Project name and type
- Primary programming language
- Tech stack components
- Architectural constraints
- Non-goals
Episodic Memory (Optional)
Decisions with time-to-live (~30 days):
- Architecture decisions
- Library choices with rationale
- Trade-offs made
Procedural Memory (Optional)
Learned patterns:
- Code conventions
- Testing patterns
- Deployment procedures
Quality Gates
| Gate | Requirement |
|---|---|
| semantic.json is valid JSON |
| project.name is not null or empty |
| At least 2 tech_stack fields populated |
| evidence.files_analyzed has 1+ entries |
Validation
python plugins/lisa/hooks/validate.py --stage discover
Error Handling
If unable to detect something:
- Set field to
rather than guessingnull - Add to
list (if pattern exists)evidence.unresolved - Document what was searched and why it failed
Next Steps
After discover completes:
- Proceed to Stage 2 (Plan) →
skills/plan/SKILL.md - Or proceed directly to Stage 3 (Structure) if roadmap exists