Back to skills
SKILL.md
Analysis
ASecurityAnalyze project and auto-configure agents, skills, rules, and guides
- 43 stars
- 0 votes
- 0 copies
- 1 view
- Added September 9, 2026
Works with
Security analysis
100/100npx -y skills add baekenough/oh-my-customcode --skill analysis --agent claude-codeAre you the author of Analysis?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/baekenough-analysis)---
name: omcustom:analysis
description: Analyze project and auto-configure agents, skills, rules, and guides
scope: harness
argument-hint: "[target-dir] [--interview]"
user-invocable: true
---
# Project Analysis Skill
Scan a project's tech stack, compare against installed agents/skills, and auto-configure missing items.
## Options
```
--dry-run Show what would be added without making changes
--verbose Show detailed detection reasoning
--interview, -i Run interactive architecture interview before file-based detection
```
## Workflow
### Step 0: Architecture Interview (--interview only)
When `--interview` flag is provided, conduct an interactive AI interview before file-based detection. This captures human context that file scanning cannot determine.
**Interview flow** (sequential, AI-guided):
1. **프로젝트 유형**: "이 프로젝트는 어떤 종류입니까?"
→ 옵션: web app, REST API, CLI tool, library, monorepo, data pipeline, mobile app
2. **아키텍처 패턴**: "어떤 아키텍처를 따르고 있습니까?"
→ 옵션: microservices, monolith, serverless, event-driven, layered, hexagonal
3. **주요 언어**: "주로 사용하는 프로그래밍 언어는?"
→ 자유 입력, 알려진 에이전트와 매칭
4. **배포 대상**: "어디에 배포합니까?"
→ 옵션: AWS, GCP, Azure, Vercel, on-premises, Docker/K8s, edge
5. **팀 우선순위**: "팀의 주요 관심사는?"
→ 옵션: performance, security, developer experience, cost, scalability
**Interview results feed into Step 1 as weighted detection hints:**
- File evidence + interview agreement = `confidence: high`
- File evidence only = `confidence: medium` (unchanged from current)
- Interview only (no file evidence) = `confidence: suggested`
**Integration with report:**
```
Interview Insights (--interview):
Project type: REST API (user-specified, confirmed by file scan)
Architecture: microservices (user-specified)
Deployment: AWS + Docker (confirmed by file scan)
Team focus: security → sec-codeql-expert [suggested]
Suggested (from interview, no file evidence):
~ sec-codeql-expert [suggested — no CodeQL config found]
~ de-kafka-expert [suggested — no kafka deps found]
```
### Step 1: Project Scan
Detect tech stack by checking indicator files and dependency manifests.
| Indicator | Files to Check | Agent | Skill |
|-----------|---------------|-------|-------|
| TypeScript | tsconfig.json, *.ts, *.tsx | lang-typescript-expert | typescript-best-practices |
| React/Next.js | next.config.*, package.json (next dep) | fe-vercel-agent | react-best-practices |
| Vue.js | vue.config.*, *.vue | fe-vuejs-agent | - |
| Svelte | svelte.config.*, *.svelte | fe-svelte-agent | - |
| Flutter/Dart | pubspec.yaml, *.dart, lib/main.dart | fe-flutter-agent | - |
| Python | pyproject.toml, requirements.txt, *.py | lang-python-expert | python-best-practices |
| FastAPI | "fastapi" in imports/deps | be-fastapi-expert | fastapi-best-practices |
| Go | go.mod, *.go | lang-golang-expert | go-best-practices |
| Go Backend | go.mod + cmd/ or internal/ dirs | be-go-backend-expert | go-backend-best-practices |
| Rust | Cargo.toml, *.rs | lang-rust-expert | rust-best-practices |
| Kotlin | *.kt, build.gradle.kts | lang-kotlin-expert | kotlin-best-practices |
| Java | *.java, pom.xml | lang-java-expert | - |
| Spring Boot | spring-boot in deps | be-springboot-expert | springboot-best-practices |
| Express.js | "express" in deps | be-express-expert | - |
| NestJS | "@nestjs" in deps | be-nestjs-expert | - |
| Docker | Dockerfile, compose.yml | infra-docker-expert | docker-best-practices |
| AWS | CDK/SAM/CloudFormation files | infra-aws-expert | aws-best-practices |
| PostgreSQL | *.sql, pg in deps | db-postgres-expert | postgres-best-practices |
| Redis | redis in deps | db-redis-expert | redis-best-practices |
| Supabase | supabase in deps/config | db-supabase-expert | supabase-postgres-best-practices |
| Airflow | dags/*.py, airflow in deps | de-airflow-expert | airflow-best-practices |
| dbt | dbt_project.yml | de-dbt-expert | dbt-best-practices |
| Kafka | kafka in deps/config | de-kafka-expert | kafka-best-practices |
| Spark | spark in deps/config | de-spark-expert | spark-best-practices |
| Snowflake | snowflake in deps/config | de-snowflake-expert | snowflake-best-practices |
**Detection logic:**
```
1. Read package.json / go.mod / Cargo.toml / pyproject.toml / pom.xml
2. Glob for indicator files (tsconfig.json, *.vue, Dockerfile, etc.)
3. Grep dependencies for framework/library names
4. For verbose mode: log each indicator found and confidence level
```
### Step 2: Gap Analysis
Compare detected stack against what is already installed.
```
1. List existing agents: ls .claude/agents/*.md
2. List existing skills: find .claude/skills -name "SKILL.md"
3. For each detected indicator:
a. Check if required agent file exists → mark MISSING or PRESENT
b. Check if required skill directory exists → mark MISSING or PRESENT
4. Build two lists:
- missing_agents[] — agents needed but not present
- missing_skills[] — skills needed but not present
5. (Optional) Build unused list for suggestions:
- Agents present but no indicator matched → flag for review
```
### Step 3: Auto-Configure
Apply changes for all missing items (skip in --dry-run mode).
```
For each missing agent:
- If agent exists in templates/.claude/agents/ → copy to .claude/agents/
- Else → delegate to mgr-creator with detected domain context
For each missing skill:
- If skill exists in templates/.claude/skills/ → copy to .claude/skills/
- Else → log as "skill not available in templates, manual setup needed"
Rules:
- Keep all existing rules (they are universal, never remove)
Guides:
- Verify templates/guides/ directory has relevant reference docs
- Log missing guide topics as suggestions only (no auto-copy)
```
### Step 4: Report
Output a structured summary after the run.
```
[analysis] Project: <detected project name or path>
Tech Stack Detected:
- TypeScript (tsconfig.json found)
- React/Next.js (next in package.json deps)
- Docker (Dockerfile found)
Agents:
+ lang-typescript-expert [added]
+ fe-vercel-agent [added]
~ infra-docker-expert [already present, skipped]
Skills:
+ typescript-best-practices [added]
+ react-best-practices [added]
~ docker-best-practices [already present, skipped]
Rules: no changes (universal rules kept as-is)
Guides: react/ — present
docker/ — present
typescript/ — present
Suggestions:
- infra-aws-expert not detected (no CDK/SAM files found)
- de-* agents not detected (no pipeline indicators found)
Summary: 2 agents added, 2 skills added, 0 removed
```
**--dry-run output** prefixes all additions with `[would add]` instead of `[added]` and makes no file changes.
**--verbose output** adds a Detection section before the report:
```
Detection Details:
tsconfig.json → TypeScript confirmed
package.json[next] → Next.js confirmed (confidence: high)
package.json[react] → React confirmed (confidence: high)
Dockerfile → Docker confirmed
no go.mod found → Go skipped
no Cargo.toml found → Rust skipped
```
### Step 5: Adaptive Harness Integration
After analysis completes, offer adaptive-harness optimization:
```
[Analysis Complete] Tech stack detected. Optimize harness for this project?
├── Yes → Run /omcustom:adaptive-harness --optimize (deactivate unused, suggest missing)
├── Dry-run → Run /omcustom:adaptive-harness --optimize --dry-run (show changes only)
└── Skip → Keep current harness configuration
```
If user selects Yes or Dry-run, invoke the adaptive-harness skill with the analysis results as context. The project profile generated by analysis feeds directly into adaptive-harness optimization.
## Integration
| Skill | Integration |
|-------|-------------|
| adaptive-harness | Called after analysis to optimize harness based on detected stack |
## Example Invocation
```
/analysis
/analysis --dry-run
/analysis --verbose
/analysis --dry-run --verbose
```
## Notes
- Always run `--dry-run` first on unfamiliar projects to preview changes
- Agents and skills are additive only — existing items are never removed automatically
- For stacks not in the detection table, delegate to `mgr-creator` for dynamic agent creation
- Rules are never auto-removed; they are project-universal
Attribution
Comments
Loading comments…