project-fingerprinting
Project Fingerprinting Skill
Comprehensive project fingerprinting system that builds a multi-dimensional profile of any codebase. Used by the upgrade council to give specialist agents targeted context, eliminating irrelevant analysis and enabling framework-specific recommendations.
Fingerprint Schema
fingerprint:
# Core identity
name: string # from package.json name or directory
language: string # primary language
languages: string[] # all detected languages
# Framework detection
frameworks:
frontend: string[] # react, vue, angular, svelte, next, nuxt, etc.
backend: string[] # express, fastapi, django, nestjs, flask, etc.
meta: string[] # next (fullstack), nuxt (fullstack), remix, etc.
mobile: string[] # react-native, flutter, expo, etc.
# Infrastructure
infrastructure:
containerized: boolean
container_tool: docker | podman | none
orchestrated: boolean
orchestrator: kubernetes | docker-compose | nomad | none
ci_cd: github-actions | gitlab-ci | jenkins | circle-ci | azure-pipelines | none
cloud: aws | gcp | azure | vercel | netlify | none
iac: terraform | pulumi | cdk | cloudformation | none
monitoring: prometheus | datadog | newrelic | none
# Architecture
architecture:
pattern: monolith | monorepo | microservices | serverless | jamstack
api_style: rest | graphql | grpc | trpc | mixed | none
state_management: redux | zustand | jotai | recoil | mobx | context | pinia | vuex | none
orm: prisma | drizzle | typeorm | sequelize | sqlalchemy | django-orm | none
database: postgres | mysql | mongodb | sqlite | redis | none
auth: nextauth | clerk | auth0 | keycloak | passport | custom | none
monorepo_tool: nx | turborepo | lerna | pnpm-workspaces | none
# Quality signals
quality:
typescript:
enabled: boolean
strict: boolean
strict_null_checks: boolean
no_implicit_any: boolean
linter:
tool: eslint | biome | none
config_format: flat | legacy | none
formatter:
tool: prettier | biome | none
testing:
framework: jest | vitest | pytest | go-test | none
coverage_configured: boolean
e2e_framework: playwright | cypress | puppeteer | none
pre_commit: husky | lefthook | pre-commit | none
dependency_updates: dependabot | renovate | none
# Scale metrics
scale:
file_count: number
src_lines: number # approximate
dependency_count: number
dev_dependency_count: number
contributor_count: number # from git log --format='%ae' | sort -u | wc -l
commit_count_30d: number # activity level
age_days: number # first commit to now
# Package manager
package_manager: npm | pnpm | yarn | bun | pip | cargo | go-mod | maven | gradle
Detection Rules
Language Detection (priority order)
| Check | Language | Confidence |
|---|---|---|
tsconfig.json exists |
TypeScript | 0.95 |
*.ts files in src/ |
TypeScript | 0.90 |
package.json exists (no TS) |
JavaScript | 0.85 |
pyproject.toml or requirements.txt |
Python | 0.95 |
go.mod |
Go | 0.95 |
Cargo.toml |
Rust | 0.95 |
pom.xml or build.gradle |
Java/Kotlin | 0.90 |
*.rb + Gemfile |
Ruby | 0.90 |
*.cs + *.csproj |
C# | 0.90 |
*.swift + Package.swift |
Swift | 0.90 |
Framework Detection (package.json dependencies)
| Dependency | Framework | Category |
|---|---|---|
next |
Next.js | meta-framework |
react, react-dom |
React | frontend |
vue |
Vue.js | frontend |
@angular/core |
Angular | frontend |
svelte, @sveltejs/kit |
Svelte/SvelteKit | frontend/meta |
express |
Express | backend |
fastify |
Fastify | backend |
@nestjs/core |
NestJS | backend |
hono |
Hono | backend |
@remix-run/node |
Remix | meta-framework |
astro |
Astro | meta-framework |
nuxt |
Nuxt | meta-framework |
gatsby |
Gatsby | meta-framework |
react-native |
React Native | mobile |
expo |
Expo | mobile |
Python Framework Detection (requirements/pyproject)
| Dependency | Framework |
|---|---|
fastapi |
FastAPI |
django |
Django |
flask |
Flask |
starlette |
Starlette |
tornado |
Tornado |
aiohttp |
aiohttp |
Infrastructure Detection (file/directory patterns)
| Pattern | Infrastructure | Type |
|---|---|---|
Dockerfile |
Docker | container |
docker-compose.yml |
Docker Compose | orchestrator |
Chart.yaml |
Helm | orchestrator |
k8s/, kubernetes/ |
Kubernetes | orchestrator |
.github/workflows/ |
GitHub Actions | ci_cd |
.gitlab-ci.yml |
GitLab CI | ci_cd |
Jenkinsfile |
Jenkins | ci_cd |
terraform/, *.tf |
Terraform | iac |
Pulumi.yaml |
Pulumi | iac |
vercel.json |
Vercel | cloud |
netlify.toml |
Netlify | cloud |
firebase.json |
Firebase | cloud |
serverless.yml |
Serverless FW | cloud |
fly.toml |
Fly.io | cloud |
render.yaml |
Render | cloud |
Quality Detection
| Check | Detection |
|---|---|
tsconfig.json → "strict": true |
TypeScript strict mode |
.eslintrc* or eslint.config.* |
ESLint configured |
.prettierrc* or prettier.config.* |
Prettier configured |
jest.config.* or vitest.config.* |
Test framework |
.husky/ directory |
Pre-commit hooks |
renovate.json or .github/dependabot.yml |
Auto dependency updates |
playwright.config.* or cypress.config.* |
E2E testing |
biome.json or biome.jsonc |
Biome (lint + format) |
Architecture Pattern Detection
| Signal | Pattern |
|---|---|
packages/ or apps/ directory |
Monorepo |
turbo.json or nx.json |
Monorepo (confirmed) |
Multiple Dockerfiles + docker-compose.yml |
Microservices |
serverless.yml + functions/ |
Serverless |
Single src/ with both API + UI |
Monolith |
pages/ or app/ (Next.js) + api/ |
Fullstack monolith |
Quick Commands for Fingerprinting
# One-shot fingerprint collection script
echo "=== PACKAGE.JSON ===" && cat package.json 2>/dev/null | head -80
echo "=== TSCONFIG ===" && cat tsconfig.json 2>/dev/null | head -30
echo "=== DIR STRUCTURE ===" && ls -la src/ 2>/dev/null
echo "=== KEY FILES ===" && ls Dockerfile docker-compose.yml Chart.yaml .github/workflows/ 2>/dev/null
echo "=== GIT STATS ===" && git log --oneline --since='30 days ago' 2>/dev/null | wc -l
echo "=== CONTRIBUTORS ===" && git log --format='%ae' 2>/dev/null | sort -u | wc -l
echo "=== FILE COUNT ===" && find src/ -name '*.ts' -o -name '*.tsx' -o -name '*.py' -o -name '*.go' 2>/dev/null | wc -l
echo "=== LINE COUNT ===" && find src/ -name '*.ts' -o -name '*.tsx' 2>/dev/null | xargs wc -l 2>/dev/null | tail -1
Framework-Specific Signal Boosters
When a framework is detected, enable additional specialist checks:
Next.js Projects
- Check for
next/imageusage (vs raw<img>) - Check for
getServerSidePropsvsgetStaticProps(SSR vs SSG opportunities) - Check App Router vs Pages Router
- Check for middleware usage
- Check for ISR (Incremental Static Regeneration)
React SPA
- Check for React.lazy + Suspense (code splitting)
- Check for React.memo on frequently re-rendered components
- Check for proper key usage in lists
- Check for StrictMode enabled
Express/Fastify Backend
- Check for middleware ordering (helmet, cors, compression)
- Check for request validation (Zod, Joi, express-validator)
- Check for rate limiting
- Check for error handling middleware
FastAPI/Django
- Check for async endpoint usage (FastAPI)
- Check for Pydantic model usage
- Check for middleware stack
- Check for CORS configuration
Output
The fingerprint is passed to all council agents as context. It determines:
- Which specialist agents are most relevant to spawn
- Which detection patterns each specialist should focus on
- Framework-specific suggestions to consider
- Scale-appropriate recommendations (don't suggest enterprise patterns for a prototype)
More from lobbi-docs/claude
vision-multimodal
Vision and multimodal capabilities for Claude including image analysis, PDF processing, and document understanding. Activate for image input, base64 encoding, multiple images, and visual analysis.
242design-system
Apply and manage the AI-powered design system with 50+ curated styles
126complex-reasoning
Multi-step reasoning patterns and frameworks for systematic problem solving. Activate for Chain-of-Thought, Tree-of-Thought, hypothesis-driven debugging, and structured analytical approaches that leverage extended thinking.
105gcp
Google Cloud Platform services including GKE, Cloud Run, Cloud Storage, BigQuery, and Pub/Sub. Activate for GCP infrastructure, Google Cloud deployment, and GCP integration.
73kanban
Kanban methodology including boards, WIP limits, flow metrics, and continuous delivery. Activate for Kanban boards, workflow visualization, and lean project management.
62debugging
Debugging techniques for Python, JavaScript, and distributed systems. Activate for troubleshooting, error analysis, log investigation, and performance debugging. Includes extended thinking integration for complex debugging scenarios.
59