Detects project tech stack, languages, frameworks, and security-relevant features. Use when you need to understand the project structure for security analysis or audit scoping.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Detects and provides context about the current project's technology stack, security-relevant features, and structure.
.claude/project-context.json is freshThe skill produces or reads .claude/project-context.json:
{
"name": "project-name",
"type": "web-api | web-app | cli | library | mobile | other",
"languages": ["typescript", "python", "go", ...],
"frameworks": ["express", "django", "react", ...],
"features": {
"authentication": true | false,
"oauth": true | false,
"file-upload": true | false,
"websockets": true | false,
"database": true | false,
"api": true | false,
"graphql": true | false,
"payments": true | false,
"email": true | false,
"logging": true | false
},
"directories": {
"source": "src/",
"tests": "tests/",
"config": "config/"
},
"detected_at": "2025-12-15T10:30:00Z",
"security_notes": []
}
| Indicator | Language |
|---|---|
*.ts, *.tsx, tsconfig.json | TypeScript |
*.js, *.jsx, *.mjs | JavaScript |
*.py, requirements.txt, pyproject.toml | Python |
*.go, go.mod | Go |
*.rs, Cargo.toml | Rust |
*.java, pom.xml, build.gradle | Java |
*.rb, Gemfile | Ruby |
*.php, composer.json | PHP |
*.cs, *.csproj | C# |
| Indicator | Framework |
|---|---|
express in package.json | Express.js |
fastify in package.json | Fastify |
next in package.json | Next.js |
react in package.json | React |
vue in package.json | Vue.js |
angular in package.json | Angular |
django in requirements | Django |
flask in requirements | Flask |
fastapi in requirements | FastAPI |
gin-gonic in go.mod | Gin |
fiber in go.mod | Fiber |
spring in pom.xml | Spring |
rails in Gemfile | Rails |
laravel in composer.json | Laravel |
| Feature | Detection Method |
|---|---|
| authentication | Auth middleware, passport, JWT imports, login routes |
| oauth | OAuth libraries, social auth configs, OIDC |
| file-upload | Multer, file upload handlers, S3 clients |
| websockets | Socket.io, WS library, WebSocket handlers |
| database | ORM imports, database clients, migration files |
| api | REST routes, API directories, OpenAPI specs |
| graphql | GraphQL libraries, schema files, resolvers |
| payments | Stripe, PayPal, payment webhooks |
| Nodemailer, SendGrid, email templates | |
| logging | Winston, Bunyan, logging middleware |
| Type | Indicators |
|---|---|
| web-api | API routes, no frontend build, REST/GraphQL |
| web-app | Frontend framework + backend routes |
| cli | Bin entry, commander/yargs, no web server |
| library | npm publish config, no app entry point |
| mobile | React Native, Flutter, mobile SDKs |
When context is detected, map to relevant security concerns:
| Feature | Security Domains |
|---|---|
| authentication | V6 (Authentication), V7 (Session) |
| oauth | V10 (OAuth/OIDC) |
| file-upload | V5 (File Handling) |
| api | V4 (API Security), V1 (Encoding) |
| database | V2 (Validation), V14 (Data Protection) |
| graphql | V4 (API Security), introspection |
| payments | PCI DSS, V12 (Communications) |
| websockets | V17 (WebRTC/WS), V6 (Auth) |
To detect project context, use the Read and Glob tools:
Find config files using Glob:
package.json, requirements.txt, go.mod, Cargo.toml, etc.Read package files to detect frameworks:
package.json for JS/TS dependenciesrequirements.txt or pyproject.toml for Pythongo.mod for Go modulesScan for feature indicators using Grep:
passport|jwt|bcrypt|sessionprisma|sequelize|mongoose|sqlalchemymulter|multipart|uploadWrite context to .claude/project-context.json
Create or edit .claude/project-context.json directly for:
When context exists and is fresh (<24h old):
.claude/project-context.json# Check if context is stale (>24h)
if [ -f .claude/project-context.json ]; then
detected_at=$(jq -r '.detected_at' .claude/project-context.json)
# Compare with current time
fi
The audit-orchestrator uses project context to:
Hooks use project context to:
This skill is designed to be identical to devloop's project-context skill, allowing both plugins to share the same detection logic and generated context.
{
"name": "ecommerce-api",
"type": "web-api",
"languages": ["typescript", "sql"],
"frameworks": ["express", "prisma", "jest"],
"features": {
"authentication": true,
"oauth": true,
"file-upload": true,
"websockets": false,
"database": true,
"api": true,
"graphql": false,
"payments": true,
"email": true,
"logging": true
},
"directories": {
"source": "src/",
"tests": "tests/",
"config": "config/"
},
"detected_at": "2025-12-15T10:30:00Z",
"security_notes": [
"Payment processing detected - PCI DSS considerations apply",
"File uploads detected - validate types and scan for malware"
]
}
Skill: asvs-requirements - ASVS chapter mappingSkill: vulnerability-patterns - Language-specific patterns