@neyugn/agent-kits 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.vi.md +1 -1
- package/README.zh.md +1 -1
- package/common/COMMON.md +102 -38
- package/common/skills/filter-agent/SKILL.md +194 -0
- package/common/skills/filter-skill/SKILL.md +158 -180
- package/common/skills/scan-techstack/SKILL.md +167 -0
- package/common/skills/scan-techstack/scripts/techstack_scanner.py +335 -0
- package/common/workflows/filter.md +131 -44
- package/dist/cli.js +30 -6
- package/kits/coder/rules/AGENTS.md +23 -2
- package/kits/coder/rules/CLAUDE.md +23 -2
- package/kits/coder/rules/CURSOR.md +23 -2
- package/kits/coder/rules/GEMINI.md +23 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: filter-skill
|
|
3
|
-
description:
|
|
3
|
+
description: Recommend enabling/disabling skills based on detected techstack. Reduces noise from irrelevant skills in the workspace.
|
|
4
4
|
category: common
|
|
5
5
|
trigger: manual
|
|
6
6
|
workflow: /filter
|
|
@@ -8,165 +8,134 @@ workflow: /filter
|
|
|
8
8
|
|
|
9
9
|
# Filter Skill
|
|
10
10
|
|
|
11
|
-
> Workspace-aware skill
|
|
11
|
+
> Workspace-aware skill filtering for optimal AI performance.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
## 🎯 Purpose
|
|
16
16
|
|
|
17
|
-
Filter Skill
|
|
17
|
+
Filter Skill analyzes the **techstack profile** (from scan-techstack) and recommends which skills to **enable/disable** based on project needs. This:
|
|
18
18
|
|
|
19
|
-
1. **
|
|
20
|
-
2. **
|
|
21
|
-
3. **
|
|
22
|
-
4. **Persists profile** for use in subsequent sessions
|
|
19
|
+
1. **Reduces noise** - Only relevant skills are loaded
|
|
20
|
+
2. **Improves context** - AI focuses on applicable patterns
|
|
21
|
+
3. **Optimizes performance** - Less skill content to process
|
|
23
22
|
|
|
24
23
|
---
|
|
25
24
|
|
|
26
|
-
##
|
|
27
|
-
|
|
28
|
-
### Package Managers & Config Files
|
|
29
|
-
|
|
30
|
-
| File/Pattern | Detected Techstack |
|
|
31
|
-
| ------------------ | --------------------------------------- |
|
|
32
|
-
| `package.json` | Node.js, check dependencies for details |
|
|
33
|
-
| `pubspec.yaml` | Flutter/Dart |
|
|
34
|
-
| `pyproject.toml` | Python (Poetry/PDM) |
|
|
35
|
-
| `requirements.txt` | Python (pip) |
|
|
36
|
-
| `Cargo.toml` | Rust |
|
|
37
|
-
| `go.mod` | Go |
|
|
38
|
-
| `build.gradle` | Android (Java/Kotlin) |
|
|
39
|
-
| `Podfile` | iOS |
|
|
40
|
-
| `composer.json` | PHP |
|
|
41
|
-
| `Gemfile` | Ruby |
|
|
42
|
-
|
|
43
|
-
### Framework Markers
|
|
44
|
-
|
|
45
|
-
| File/Pattern | Framework | Enable Skills |
|
|
46
|
-
| ---------------------- | ---------------- | --------------------------------------------- |
|
|
47
|
-
| `next.config.*` | Next.js | react-patterns, frontend-design, seo-patterns |
|
|
48
|
-
| `vite.config.*` | Vite | react-patterns, frontend-design |
|
|
49
|
-
| `angular.json` | Angular | typescript-patterns, frontend-design |
|
|
50
|
-
| `nuxt.config.*` | Nuxt.js | frontend-design, seo-patterns |
|
|
51
|
-
| `tailwind.config.*` | Tailwind CSS | tailwind-patterns |
|
|
52
|
-
| `prisma/schema.prisma` | Prisma | database-design, postgres-patterns |
|
|
53
|
-
| `drizzle.config.*` | Drizzle | database-design |
|
|
54
|
-
| `docker-compose.*` | Docker | docker-patterns |
|
|
55
|
-
| `Dockerfile` | Docker | docker-patterns |
|
|
56
|
-
| `k8s/`, `kubernetes/` | Kubernetes | kubernetes-patterns |
|
|
57
|
-
| `.github/workflows/` | GitHub Actions | github-actions |
|
|
58
|
-
| `.gitlab-ci.yml` | GitLab CI | gitlab-ci-patterns |
|
|
59
|
-
| `terraform/`, `*.tf` | Terraform | terraform-patterns |
|
|
60
|
-
| `socket.io`, `ws` | WebSocket (deps) | realtime-patterns |
|
|
61
|
-
| `bullmq`, `bee-queue` | Queue (deps) | queue-patterns |
|
|
62
|
-
|
|
63
|
-
### Dependency Analysis (package.json)
|
|
64
|
-
|
|
65
|
-
| Dependency Pattern | Enable Skills |
|
|
66
|
-
| ----------------------- | ----------------------------------- |
|
|
67
|
-
| `react`, `react-dom` | react-patterns |
|
|
68
|
-
| `next` | react-patterns, seo-patterns |
|
|
69
|
-
| `@tanstack/react-query` | react-patterns |
|
|
70
|
-
| `graphql`, `@apollo` | graphql-patterns |
|
|
71
|
-
| `redis`, `ioredis` | redis-patterns |
|
|
72
|
-
| `pg`, `postgres` | postgres-patterns |
|
|
73
|
-
| `socket.io*` | realtime-patterns |
|
|
74
|
-
| `bullmq`, `bee-queue` | queue-patterns |
|
|
75
|
-
| `passport`, `@auth` | auth-patterns |
|
|
76
|
-
| `openai`, `langchain` | ai-rag-patterns, prompt-engineering |
|
|
77
|
-
| `playwright` | e2e-testing |
|
|
78
|
-
| `cypress` | e2e-testing |
|
|
79
|
-
| `jest`, `vitest` | testing-patterns |
|
|
80
|
-
| `eslint`, `prettier` | clean-code |
|
|
25
|
+
## 🔗 Dependency
|
|
81
26
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
## 📋 Workflow Steps
|
|
85
|
-
|
|
86
|
-
### Phase 1: Analysis
|
|
27
|
+
This skill requires **scan-techstack** to run first:
|
|
87
28
|
|
|
88
|
-
```plaintext
|
|
89
|
-
1. Scan workspace root for config files
|
|
90
|
-
2. Parse package managers (package.json, pubspec.yaml, etc.)
|
|
91
|
-
3. Detect framework markers
|
|
92
|
-
4. Analyze dependencies
|
|
93
|
-
5. Build techstack profile
|
|
94
29
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
1. Map techstack → required skills/agents
|
|
100
|
-
2. Identify unused skills (candidates for disable)
|
|
101
|
-
3. Identify missing skills (candidates for enable)
|
|
102
|
-
4. Generate recommendation table
|
|
30
|
+
/filter workflow:
|
|
31
|
+
1. scan-techstack → detect techstack
|
|
32
|
+
2. filter-skill → recommend skills (this skill)
|
|
33
|
+
3. filter-agent → recommend agents
|
|
103
34
|
```
|
|
104
35
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
AI will ask the user:
|
|
108
|
-
|
|
109
|
-
```markdown
|
|
110
|
-
## 🔍 Workspace Analysis Complete
|
|
111
|
-
|
|
112
|
-
**Detected Techstack:**
|
|
113
|
-
|
|
114
|
-
- Next.js 14 (App Router)
|
|
115
|
-
- TypeScript
|
|
116
|
-
- Tailwind CSS
|
|
117
|
-
- Prisma + PostgreSQL
|
|
118
|
-
- Redis
|
|
119
|
-
|
|
120
|
-
**Recommended Skills (Enable):**
|
|
121
|
-
| Skill | Reason |
|
|
122
|
-
|-------|--------|
|
|
123
|
-
| react-patterns | Next.js detected |
|
|
124
|
-
| tailwind-patterns | tailwind.config.js found |
|
|
125
|
-
| postgres-patterns | Prisma with PostgreSQL |
|
|
126
|
-
| redis-patterns | ioredis in dependencies |
|
|
127
|
-
|
|
128
|
-
**Recommended to Disable:**
|
|
129
|
-
| Skill | Reason |
|
|
130
|
-
|-------|--------|
|
|
131
|
-
| flutter-patterns | No pubspec.yaml |
|
|
132
|
-
| react-native-patterns | No mobile setup |
|
|
133
|
-
| queue-patterns | No queue dependencies |
|
|
36
|
+
---
|
|
134
37
|
|
|
135
|
-
|
|
38
|
+
## 📋 Skill Categories
|
|
136
39
|
|
|
137
|
-
|
|
138
|
-
2. Are there any techstacks you plan to add in the future? (e.g., mobile, CI/CD)
|
|
139
|
-
3. Are there any skills you want to force enable/disable?
|
|
140
|
-
```
|
|
40
|
+
### Core Skills (NEVER DISABLE)
|
|
141
41
|
|
|
142
|
-
|
|
42
|
+
These skills are ALWAYS enabled regardless of techstack:
|
|
143
43
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
44
|
+
| Skill | Reason |
|
|
45
|
+
| ----------------------- | ----------------------------- |
|
|
46
|
+
| `clean-code` | Universal coding standards |
|
|
47
|
+
| `brainstorming` | Socratic questioning protocol |
|
|
48
|
+
| `plan-writing` | Task breakdown and WBS |
|
|
49
|
+
| `systematic-debugging` | 4-phase debugging methodology |
|
|
50
|
+
| `testing-patterns` | Testing pyramid, AAA pattern |
|
|
51
|
+
| `security-fundamentals` | OWASP 2025 security basics |
|
|
52
|
+
|
|
53
|
+
### Frontend Skills
|
|
54
|
+
|
|
55
|
+
| Skill | Enable When |
|
|
56
|
+
| ------------------------ | ------------------------------- |
|
|
57
|
+
| `react-patterns` | React/Next.js detected |
|
|
58
|
+
| `typescript-patterns` | TypeScript detected |
|
|
59
|
+
| `tailwind-patterns` | Tailwind CSS detected |
|
|
60
|
+
| `frontend-design` | Any frontend framework |
|
|
61
|
+
| `seo-patterns` | Next.js, Nuxt.js (SSR) detected |
|
|
62
|
+
| `accessibility-patterns` | Frontend detected |
|
|
63
|
+
|
|
64
|
+
### Backend Skills
|
|
65
|
+
|
|
66
|
+
| Skill | Enable When |
|
|
67
|
+
| ----------------------- | -------------------------- |
|
|
68
|
+
| `api-patterns` | Backend framework detected |
|
|
69
|
+
| `auth-patterns` | Auth dependencies detected |
|
|
70
|
+
| `graphql-patterns` | GraphQL detected |
|
|
71
|
+
| `nodejs-best-practices` | Node.js detected |
|
|
72
|
+
|
|
73
|
+
### Database Skills
|
|
74
|
+
|
|
75
|
+
| Skill | Enable When |
|
|
76
|
+
| ------------------- | --------------------- |
|
|
77
|
+
| `database-design` | Any database detected |
|
|
78
|
+
| `postgres-patterns` | PostgreSQL detected |
|
|
79
|
+
| `redis-patterns` | Redis detected |
|
|
80
|
+
|
|
81
|
+
### Mobile Skills
|
|
82
|
+
|
|
83
|
+
| Skill | Enable When |
|
|
84
|
+
| ----------------------- | --------------------- |
|
|
85
|
+
| `flutter-patterns` | Flutter/Dart detected |
|
|
86
|
+
| `react-native-patterns` | React Native detected |
|
|
87
|
+
| `mobile-design` | Any mobile platform |
|
|
88
|
+
|
|
89
|
+
### DevOps Skills
|
|
90
|
+
|
|
91
|
+
| Skill | Enable When |
|
|
92
|
+
| -------------------------- | -------------------------- |
|
|
93
|
+
| `docker-patterns` | Docker detected |
|
|
94
|
+
| `kubernetes-patterns` | Kubernetes detected |
|
|
95
|
+
| `terraform-patterns` | Terraform detected |
|
|
96
|
+
| `github-actions` | GitHub Actions detected |
|
|
97
|
+
| `gitlab-ci-patterns` | GitLab CI detected |
|
|
98
|
+
| `monitoring-observability` | DevOps/Production detected |
|
|
99
|
+
|
|
100
|
+
### AI Skills
|
|
101
|
+
|
|
102
|
+
| Skill | Enable When |
|
|
103
|
+
| -------------------- | ---------------------------- |
|
|
104
|
+
| `ai-rag-patterns` | AI/LLM dependencies detected |
|
|
105
|
+
| `prompt-engineering` | AI/LLM dependencies detected |
|
|
106
|
+
|
|
107
|
+
### Realtime & Queue Skills
|
|
108
|
+
|
|
109
|
+
| Skill | Enable When |
|
|
110
|
+
| ------------------- | ------------------------------ |
|
|
111
|
+
| `realtime-patterns` | Socket.IO/WebSocket detected |
|
|
112
|
+
| `queue-patterns` | BullMQ/RabbitMQ detected |
|
|
113
|
+
| `multi-tenancy` | Multi-tenant patterns detected |
|
|
114
|
+
|
|
115
|
+
### Support Skills
|
|
116
|
+
|
|
117
|
+
| Skill | Enable When |
|
|
118
|
+
| ------------------------- | -------------------------- |
|
|
119
|
+
| `i18n-localization` | i18n dependencies detected |
|
|
120
|
+
| `documentation-templates` | Always available |
|
|
121
|
+
| `mermaid-diagrams` | Always available |
|
|
149
122
|
|
|
150
123
|
---
|
|
151
124
|
|
|
152
|
-
##
|
|
125
|
+
## 📊 Recommendation Output
|
|
153
126
|
|
|
154
127
|
```json
|
|
155
128
|
{
|
|
156
|
-
"version": "1.0",
|
|
157
|
-
"generatedAt": "2026-02-05T12:00:00Z",
|
|
158
|
-
"techstack": {
|
|
159
|
-
"languages": ["typescript", "python"],
|
|
160
|
-
"frameworks": ["nextjs", "tailwindcss"],
|
|
161
|
-
"databases": ["postgresql"],
|
|
162
|
-
"tools": ["docker", "github-actions"]
|
|
163
|
-
},
|
|
164
129
|
"skills": {
|
|
165
130
|
"enabled": [
|
|
166
131
|
"clean-code",
|
|
132
|
+
"testing-patterns",
|
|
133
|
+
"security-fundamentals",
|
|
167
134
|
"react-patterns",
|
|
168
135
|
"typescript-patterns",
|
|
169
136
|
"tailwind-patterns",
|
|
137
|
+
"frontend-design",
|
|
138
|
+
"api-patterns",
|
|
170
139
|
"database-design",
|
|
171
140
|
"postgres-patterns",
|
|
172
141
|
"docker-patterns",
|
|
@@ -177,71 +146,80 @@ AI will ask the user:
|
|
|
177
146
|
"react-native-patterns",
|
|
178
147
|
"mobile-design",
|
|
179
148
|
"queue-patterns",
|
|
180
|
-
"
|
|
149
|
+
"realtime-patterns",
|
|
150
|
+
"ai-rag-patterns",
|
|
151
|
+
"kubernetes-patterns"
|
|
181
152
|
],
|
|
182
|
-
"
|
|
183
|
-
"
|
|
184
|
-
"
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
153
|
+
"coreSkills": [
|
|
154
|
+
"clean-code",
|
|
155
|
+
"brainstorming",
|
|
156
|
+
"plan-writing",
|
|
157
|
+
"systematic-debugging",
|
|
158
|
+
"testing-patterns",
|
|
159
|
+
"security-fundamentals"
|
|
160
|
+
]
|
|
161
|
+
}
|
|
191
162
|
}
|
|
192
163
|
```
|
|
193
164
|
|
|
194
165
|
---
|
|
195
166
|
|
|
196
|
-
##
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
167
|
+
## 🔧 Mapping Rules
|
|
168
|
+
|
|
169
|
+
### Category → Skill Mapping
|
|
170
|
+
|
|
171
|
+
| Detected Category | Skills to ENABLE |
|
|
172
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
173
|
+
| `frontend` | react-patterns, typescript-patterns, frontend-design, tailwind-patterns, seo-patterns, accessibility-patterns |
|
|
174
|
+
| `backend` | api-patterns, nodejs-best-practices, auth-patterns |
|
|
175
|
+
| `mobile` | flutter-patterns OR react-native-patterns, mobile-design |
|
|
176
|
+
| `database` | database-design, postgres-patterns OR redis-patterns |
|
|
177
|
+
| `devops` | docker-patterns, kubernetes-patterns, github-actions, monitoring-observability |
|
|
178
|
+
| `ai` | ai-rag-patterns, prompt-engineering |
|
|
179
|
+
| `realtime` | realtime-patterns |
|
|
180
|
+
| `queue` | queue-patterns |
|
|
181
|
+
| `graphql` | graphql-patterns |
|
|
182
|
+
|
|
183
|
+
### Framework → Additional Skills
|
|
184
|
+
|
|
185
|
+
| Framework | Additional Skills |
|
|
186
|
+
| ------------- | ---------------------------------- |
|
|
187
|
+
| `nextjs` | seo-patterns, react-patterns |
|
|
188
|
+
| `tailwindcss` | tailwind-patterns |
|
|
189
|
+
| `prisma` | database-design, postgres-patterns |
|
|
190
|
+
| `socketio` | realtime-patterns |
|
|
191
|
+
| `gitlab-ci` | gitlab-ci-patterns |
|
|
192
|
+
| `terraform` | terraform-patterns |
|
|
206
193
|
|
|
207
194
|
---
|
|
208
195
|
|
|
209
|
-
##
|
|
210
|
-
|
|
211
|
-
User can override any recommendation:
|
|
196
|
+
## ⚠️ Important Notes
|
|
212
197
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
```
|
|
198
|
+
1. **Core skills always ON** - Never disable core skills
|
|
199
|
+
2. **Conservative approach** - When in doubt, keep skill enabled
|
|
200
|
+
3. **User override** - User can force enable/disable any skill
|
|
201
|
+
4. **Future planning** - Check user's future techstack plans before disabling
|
|
218
202
|
|
|
219
203
|
---
|
|
220
204
|
|
|
221
|
-
##
|
|
222
|
-
|
|
223
|
-
### With GEMINI.md / CLAUDE.md
|
|
224
|
-
|
|
225
|
-
Rule files should check `workspace-profile.json` when loading skills:
|
|
205
|
+
## 📄 Persistence
|
|
226
206
|
|
|
227
|
-
|
|
228
|
-
## Skill Loading Protocol
|
|
207
|
+
Results are saved to `.agent/profile.json`:
|
|
229
208
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"version": "1.0",
|
|
212
|
+
"generatedAt": "2026-02-05T12:00:00Z",
|
|
213
|
+
"analyzedBy": "filter-skill v1.0",
|
|
214
|
+
"skills": {
|
|
215
|
+
"enabled": [...],
|
|
216
|
+
"disabled": [...],
|
|
217
|
+
"userOverrides": {
|
|
218
|
+
"force-enabled": [],
|
|
219
|
+
"force-disabled": []
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
233
223
|
```
|
|
234
224
|
|
|
235
|
-
### With Orchestrator
|
|
236
|
-
|
|
237
|
-
Orchestrator agent should respect skill filtering when routing tasks.
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## ⚠️ Limitations
|
|
242
|
-
|
|
243
|
-
1. **Static analysis only** - Does not execute code to detect
|
|
244
|
-
2. **Config-based** - Relies on config files, may miss dynamic setups
|
|
245
|
-
3. **Monorepo** - Needs improvement to handle multiple packages
|
|
246
|
-
|
|
247
225
|
---
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scan-techstack
|
|
3
|
+
description: Analyze workspace to detect technologies, frameworks, and dependencies. Provides structured techstack profile for other skills (filter-skill, filter-agent).
|
|
4
|
+
category: common
|
|
5
|
+
trigger: manual
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Scan Techstack Skill
|
|
9
|
+
|
|
10
|
+
> Workspace technology detection and profiling.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🎯 Purpose
|
|
15
|
+
|
|
16
|
+
Scan Techstack is the **first step** in the filtering workflow. It:
|
|
17
|
+
|
|
18
|
+
1. **Scans workspace** for config files, package managers, and framework markers
|
|
19
|
+
2. **Parses dependencies** from package.json, pubspec.yaml, etc.
|
|
20
|
+
3. **Builds techstack profile** as structured output
|
|
21
|
+
4. **Provides data** for filter-skill and filter-agent to process
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 🔍 Detection Criteria
|
|
26
|
+
|
|
27
|
+
### Package Managers & Config Files
|
|
28
|
+
|
|
29
|
+
| File/Pattern | Detected Techstack |
|
|
30
|
+
| ------------------ | --------------------------------------- |
|
|
31
|
+
| `package.json` | Node.js, check dependencies for details |
|
|
32
|
+
| `pubspec.yaml` | Flutter/Dart |
|
|
33
|
+
| `pyproject.toml` | Python (Poetry/PDM) |
|
|
34
|
+
| `requirements.txt` | Python (pip) |
|
|
35
|
+
| `Cargo.toml` | Rust |
|
|
36
|
+
| `go.mod` | Go |
|
|
37
|
+
| `build.gradle` | Android (Java/Kotlin) |
|
|
38
|
+
| `Podfile` | iOS |
|
|
39
|
+
| `composer.json` | PHP |
|
|
40
|
+
| `Gemfile` | Ruby |
|
|
41
|
+
|
|
42
|
+
### Framework Markers
|
|
43
|
+
|
|
44
|
+
| File/Pattern | Framework | Category |
|
|
45
|
+
| ---------------------- | -------------- | -------- |
|
|
46
|
+
| `next.config.*` | Next.js | Frontend |
|
|
47
|
+
| `vite.config.*` | Vite | Frontend |
|
|
48
|
+
| `angular.json` | Angular | Frontend |
|
|
49
|
+
| `nuxt.config.*` | Nuxt.js | Frontend |
|
|
50
|
+
| `tailwind.config.*` | Tailwind CSS | Styling |
|
|
51
|
+
| `prisma/schema.prisma` | Prisma | Database |
|
|
52
|
+
| `drizzle.config.*` | Drizzle | Database |
|
|
53
|
+
| `docker-compose.*` | Docker | DevOps |
|
|
54
|
+
| `Dockerfile` | Docker | DevOps |
|
|
55
|
+
| `k8s/`, `kubernetes/` | Kubernetes | DevOps |
|
|
56
|
+
| `.github/workflows/` | GitHub Actions | CI/CD |
|
|
57
|
+
| `.gitlab-ci.yml` | GitLab CI | CI/CD |
|
|
58
|
+
| `terraform/`, `*.tf` | Terraform | IaC |
|
|
59
|
+
|
|
60
|
+
### Dependency Analysis (package.json)
|
|
61
|
+
|
|
62
|
+
| Dependency Pattern | Detected Category |
|
|
63
|
+
| ----------------------- | ------------------- |
|
|
64
|
+
| `react`, `react-dom` | React ecosystem |
|
|
65
|
+
| `next` | Next.js (SSR/SSG) |
|
|
66
|
+
| `@tanstack/react-query` | React data fetching |
|
|
67
|
+
| `graphql`, `@apollo` | GraphQL |
|
|
68
|
+
| `redis`, `ioredis` | Redis cache |
|
|
69
|
+
| `pg`, `postgres` | PostgreSQL |
|
|
70
|
+
| `socket.io*` | Real-time/WebSocket |
|
|
71
|
+
| `bullmq`, `bee-queue` | Message queues |
|
|
72
|
+
| `passport`, `@auth` | Authentication |
|
|
73
|
+
| `openai`, `langchain` | AI/LLM |
|
|
74
|
+
| `playwright`, `cypress` | E2E testing |
|
|
75
|
+
| `jest`, `vitest` | Unit testing |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 📋 Output Format
|
|
80
|
+
|
|
81
|
+
The scan produces a **TechstackProfile** object:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"success": true,
|
|
86
|
+
"analyzedAt": "2026-02-05T12:00:00Z",
|
|
87
|
+
"workspacePath": "/path/to/project",
|
|
88
|
+
"detection": {
|
|
89
|
+
"configFiles": ["package.json", "next.config.js", "tailwind.config.js"],
|
|
90
|
+
"languages": ["typescript", "javascript"],
|
|
91
|
+
"frameworks": ["nextjs", "tailwindcss"],
|
|
92
|
+
"databases": ["postgresql"],
|
|
93
|
+
"tools": ["docker", "github-actions"],
|
|
94
|
+
"dependencies": {
|
|
95
|
+
"npm": ["react", "next", "tailwindcss", "prisma", "@tanstack/react-query"]
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"categories": {
|
|
99
|
+
"frontend": true,
|
|
100
|
+
"backend": true,
|
|
101
|
+
"mobile": false,
|
|
102
|
+
"database": true,
|
|
103
|
+
"devops": true,
|
|
104
|
+
"ai": false,
|
|
105
|
+
"realtime": false,
|
|
106
|
+
"queue": false
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 🔧 Usage
|
|
114
|
+
|
|
115
|
+
### As Part of /filter Workflow (Recommended)
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
/filter
|
|
119
|
+
# Step 1: scan-techstack runs automatically
|
|
120
|
+
# Step 2: filter-skill uses scan results
|
|
121
|
+
# Step 3: filter-agent uses scan results
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Standalone (Debug/Verify)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Run script directly
|
|
128
|
+
python3 .agent/skills/scan-techstack/scripts/techstack_scanner.py .
|
|
129
|
+
|
|
130
|
+
# AI can also scan manually
|
|
131
|
+
/scan-techstack
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 📊 Category Detection Rules
|
|
137
|
+
|
|
138
|
+
| Category | Detected When |
|
|
139
|
+
| ---------- | ------------------------------------------------------ |
|
|
140
|
+
| `frontend` | React, Vue, Angular, Next.js, Nuxt, Tailwind detected |
|
|
141
|
+
| `backend` | Express, Fastify, NestJS, FastAPI, or API deps found |
|
|
142
|
+
| `mobile` | Flutter, React Native, iOS (Podfile), Android (Gradle) |
|
|
143
|
+
| `database` | Prisma, Drizzle, pg, mongodb, redis detected |
|
|
144
|
+
| `devops` | Docker, Kubernetes, Terraform, CI/CD configs found |
|
|
145
|
+
| `ai` | OpenAI, LangChain, or AI-related deps detected |
|
|
146
|
+
| `realtime` | Socket.IO, WebSocket dependencies found |
|
|
147
|
+
| `queue` | BullMQ, RabbitMQ, or queue dependencies found |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## ⚠️ Limitations
|
|
152
|
+
|
|
153
|
+
1. **Static analysis only** - Does not execute code
|
|
154
|
+
2. **Config-based** - Relies on config files, may miss dynamic setups
|
|
155
|
+
3. **Monorepo support** - Basic support, scans root only
|
|
156
|
+
4. **Package manager focus** - Best support for npm/yarn, basic for others
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 🔗 Integration
|
|
161
|
+
|
|
162
|
+
This skill is a **dependency** for:
|
|
163
|
+
|
|
164
|
+
- `filter-skill` - Uses techstack to recommend skill enable/disable
|
|
165
|
+
- `filter-agent` - Uses techstack to recommend agent disable
|
|
166
|
+
|
|
167
|
+
---
|