@neyugn/agent-kits 0.1.0
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/LICENSE +21 -0
- package/README.md +514 -0
- package/README.vi.md +410 -0
- package/README.zh.md +410 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +422 -0
- package/kits/coder/ARCHITECTURE.md +289 -0
- package/kits/coder/agents/ai-engineer.md +344 -0
- package/kits/coder/agents/backend-specialist.md +270 -0
- package/kits/coder/agents/cloud-architect.md +363 -0
- package/kits/coder/agents/code-reviewer.md +284 -0
- package/kits/coder/agents/data-engineer.md +401 -0
- package/kits/coder/agents/database-specialist.md +251 -0
- package/kits/coder/agents/debugger.md +209 -0
- package/kits/coder/agents/devops-engineer.md +281 -0
- package/kits/coder/agents/documentation-writer.md +296 -0
- package/kits/coder/agents/frontend-specialist.md +298 -0
- package/kits/coder/agents/i18n-specialist.md +348 -0
- package/kits/coder/agents/integration-specialist.md +314 -0
- package/kits/coder/agents/mobile-developer.md +271 -0
- package/kits/coder/agents/multi-tenant-architect.md +281 -0
- package/kits/coder/agents/orchestrator.md +263 -0
- package/kits/coder/agents/performance-analyst.md +327 -0
- package/kits/coder/agents/project-planner.md +277 -0
- package/kits/coder/agents/queue-specialist.md +282 -0
- package/kits/coder/agents/realtime-specialist.md +267 -0
- package/kits/coder/agents/security-auditor.md +253 -0
- package/kits/coder/agents/test-engineer.md +315 -0
- package/kits/coder/agents/ux-researcher.md +388 -0
- package/kits/coder/rules/.cursorrules +287 -0
- package/kits/coder/rules/CLAUDE.md +287 -0
- package/kits/coder/rules/CODEX.md +287 -0
- package/kits/coder/rules/GEMINI.md +287 -0
- package/kits/coder/scripts/checklist.py +318 -0
- package/kits/coder/scripts/kit_status.py +292 -0
- package/kits/coder/scripts/skills_manager.py +243 -0
- package/kits/coder/scripts/verify_all.py +391 -0
- package/kits/coder/skills/accessibility-patterns/SKILL.md +372 -0
- package/kits/coder/skills/accessibility-patterns/scripts/a11y_checker.py +211 -0
- package/kits/coder/skills/ai-rag-patterns/SKILL.md +444 -0
- package/kits/coder/skills/api-patterns/SKILL.md +316 -0
- package/kits/coder/skills/api-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/api-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/api-patterns/scripts/api_validator.py +253 -0
- package/kits/coder/skills/api-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/auth-patterns/SKILL.md +267 -0
- package/kits/coder/skills/aws-patterns/SKILL.md +576 -0
- package/kits/coder/skills/brainstorming/SKILL.md +370 -0
- package/kits/coder/skills/brainstorming/assets/.gitkeep +1 -0
- package/kits/coder/skills/brainstorming/references/deep-dive.md +21 -0
- package/kits/coder/skills/brainstorming/scripts/validate.py +56 -0
- package/kits/coder/skills/clean-code/SKILL.md +240 -0
- package/kits/coder/skills/clean-code/assets/.gitkeep +1 -0
- package/kits/coder/skills/clean-code/references/deep-dive.md +21 -0
- package/kits/coder/skills/clean-code/scripts/lint_runner.py +186 -0
- package/kits/coder/skills/clean-code/scripts/validate.py +56 -0
- package/kits/coder/skills/database-design/SKILL.md +255 -0
- package/kits/coder/skills/database-design/assets/.gitkeep +1 -0
- package/kits/coder/skills/database-design/references/deep-dive.md +21 -0
- package/kits/coder/skills/database-design/scripts/schema_validator.py +272 -0
- package/kits/coder/skills/database-design/scripts/validate.py +56 -0
- package/kits/coder/skills/docker-patterns/SKILL.md +240 -0
- package/kits/coder/skills/documentation-templates/SKILL.md +441 -0
- package/kits/coder/skills/e2e-testing/SKILL.md +457 -0
- package/kits/coder/skills/flutter-patterns/SKILL.md +330 -0
- package/kits/coder/skills/frontend-design/SKILL.md +127 -0
- package/kits/coder/skills/github-actions/SKILL.md +349 -0
- package/kits/coder/skills/gitlab-ci-patterns/SKILL.md +466 -0
- package/kits/coder/skills/graphql-patterns/SKILL.md +558 -0
- package/kits/coder/skills/i18n-localization/SKILL.md +345 -0
- package/kits/coder/skills/i18n-localization/scripts/i18n_checker.py +267 -0
- package/kits/coder/skills/kubernetes-patterns/SKILL.md +357 -0
- package/kits/coder/skills/mermaid-diagrams/SKILL.md +351 -0
- package/kits/coder/skills/mobile-design/SKILL.md +305 -0
- package/kits/coder/skills/monitoring-observability/SKILL.md +458 -0
- package/kits/coder/skills/multi-tenancy/SKILL.md +317 -0
- package/kits/coder/skills/multi-tenancy/assets/.gitkeep +1 -0
- package/kits/coder/skills/multi-tenancy/references/deep-dive.md +21 -0
- package/kits/coder/skills/multi-tenancy/scripts/validate.py +56 -0
- package/kits/coder/skills/nodejs-best-practices/SKILL.md +220 -0
- package/kits/coder/skills/performance-profiling/SKILL.md +333 -0
- package/kits/coder/skills/performance-profiling/assets/.gitkeep +1 -0
- package/kits/coder/skills/performance-profiling/references/deep-dive.md +21 -0
- package/kits/coder/skills/performance-profiling/scripts/validate.py +56 -0
- package/kits/coder/skills/plan-writing/SKILL.md +360 -0
- package/kits/coder/skills/plan-writing/assets/.gitkeep +1 -0
- package/kits/coder/skills/plan-writing/references/deep-dive.md +21 -0
- package/kits/coder/skills/plan-writing/scripts/validate.py +56 -0
- package/kits/coder/skills/postgres-patterns/SKILL.md +361 -0
- package/kits/coder/skills/prompt-engineering/SKILL.md +277 -0
- package/kits/coder/skills/queue-patterns/SKILL.md +359 -0
- package/kits/coder/skills/queue-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/queue-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/queue-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/react-native-patterns/SKILL.md +393 -0
- package/kits/coder/skills/react-patterns/SKILL.md +319 -0
- package/kits/coder/skills/realtime-patterns/SKILL.md +506 -0
- package/kits/coder/skills/realtime-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/realtime-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/realtime-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/redis-patterns/SKILL.md +484 -0
- package/kits/coder/skills/security-fundamentals/SKILL.md +363 -0
- package/kits/coder/skills/security-fundamentals/assets/.gitkeep +1 -0
- package/kits/coder/skills/security-fundamentals/references/deep-dive.md +21 -0
- package/kits/coder/skills/security-fundamentals/scripts/security_scan.py +326 -0
- package/kits/coder/skills/security-fundamentals/scripts/validate.py +56 -0
- package/kits/coder/skills/seo-patterns/SKILL.md +262 -0
- package/kits/coder/skills/seo-patterns/scripts/seo_checker.py +211 -0
- package/kits/coder/skills/systematic-debugging/SKILL.md +478 -0
- package/kits/coder/skills/systematic-debugging/assets/.gitkeep +1 -0
- package/kits/coder/skills/systematic-debugging/references/deep-dive.md +21 -0
- package/kits/coder/skills/systematic-debugging/scripts/validate.py +56 -0
- package/kits/coder/skills/tailwind-patterns/SKILL.md +395 -0
- package/kits/coder/skills/terraform-patterns/SKILL.md +470 -0
- package/kits/coder/skills/testing-patterns/SKILL.md +285 -0
- package/kits/coder/skills/testing-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/testing-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/kits/coder/skills/testing-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/typescript-patterns/SKILL.md +417 -0
- package/kits/coder/skills/ui-ux-pro-max/SKILL.md +364 -0
- package/kits/coder/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/kits/coder/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/kits/coder/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/kits/coder/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/kits/coder/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/kits/coder/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/kits/coder/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/kits/coder/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/kits/coder/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/kits/coder/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/kits/coder/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/kits/coder/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/core.py +257 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/design_system.py +488 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/search.py +76 -0
- package/kits/coder/workflows/.gitkeep +20 -0
- package/kits/coder/workflows/create.md +152 -0
- package/kits/coder/workflows/debug.md +223 -0
- package/kits/coder/workflows/deploy.md +283 -0
- package/kits/coder/workflows/orchestrate.md +243 -0
- package/kits/coder/workflows/plan.md +134 -0
- package/kits/coder/workflows/test.md +237 -0
- package/kits/coder/workflows/ui-ux-pro-max.md +109 -0
- package/package.json +49 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: manual
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# GEMINI.md - AGT-Kit
|
|
6
|
+
|
|
7
|
+
> AI Agent Capability Expansion Toolkit - This file defines AI behavior in this workspace.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 🎯 Kit Purpose
|
|
12
|
+
|
|
13
|
+
AGT-Kit is a portable, modular AI agent system consisting of:
|
|
14
|
+
|
|
15
|
+
- **22 Specialist Agents** - Role-based AI personas
|
|
16
|
+
- **39 Skills** - Domain-specific knowledge modules
|
|
17
|
+
- **7 Workflows** - Slash command procedures
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## CRITICAL: AGENT & SKILL PROTOCOL
|
|
22
|
+
|
|
23
|
+
> **MANDATORY:** Read agent file + skills BEFORE any implementation.
|
|
24
|
+
|
|
25
|
+
### Modular Skill Loading
|
|
26
|
+
|
|
27
|
+
Agent activated → Check frontmatter `skills:` → Read SKILL.md → Apply.
|
|
28
|
+
|
|
29
|
+
- **Priority:** P0 (GEMINI.md) > P1 (Agent.md) > P2 (SKILL.md). All binding.
|
|
30
|
+
- **Enforcement:** Never skip reading. "Read → Understand → Apply" mandatory.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 📥 REQUEST CLASSIFIER
|
|
35
|
+
|
|
36
|
+
| Request Type | Trigger Keywords | Active Agents |
|
|
37
|
+
| ------------ | ------------------------ | -------------------------- |
|
|
38
|
+
| **QUESTION** | "what is", "explain" | - |
|
|
39
|
+
| **PLAN** | "plan", "lập kế hoạch" | project-planner |
|
|
40
|
+
| **CREATE** | "create", "build", "tạo" | orchestrator → specialists |
|
|
41
|
+
| **DEBUG** | "debug", "fix", "gỡ lỗi" | debugger |
|
|
42
|
+
| **TEST** | "test", "kiểm tra" | test-engineer |
|
|
43
|
+
| **DEPLOY** | "deploy", "release" | devops-engineer |
|
|
44
|
+
| **COMPLEX** | Multi-domain task | orchestrator (3+ agents) |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🤖 AGENT ROUTING
|
|
49
|
+
|
|
50
|
+
**Always analyze and select best agent(s) before responding.**
|
|
51
|
+
|
|
52
|
+
### Protocol
|
|
53
|
+
|
|
54
|
+
1. **Analyze**: Detect domains (Frontend, Backend, Security, etc.)
|
|
55
|
+
2. **Select**: Choose appropriate specialist(s)
|
|
56
|
+
3. **Announce**: `⚡ **@[agent] activated!**`
|
|
57
|
+
4. **Apply**: Use agent's persona and rules
|
|
58
|
+
|
|
59
|
+
### Tier 1: Master Agents
|
|
60
|
+
|
|
61
|
+
| Agent | Use When |
|
|
62
|
+
| ----------------- | ---------------------------------------------- |
|
|
63
|
+
| `orchestrator` | Complex tasks requiring multiple specialists |
|
|
64
|
+
| `project-planner` | Planning projects, creating task breakdowns |
|
|
65
|
+
| `debugger` | Investigating bugs, systematic problem solving |
|
|
66
|
+
|
|
67
|
+
### Tier 2: Development Specialists
|
|
68
|
+
|
|
69
|
+
| Agent | Use When |
|
|
70
|
+
| --------------------- | ----------------------------------- |
|
|
71
|
+
| `frontend-specialist` | React, Next.js, Vue, UI/UX work |
|
|
72
|
+
| `backend-specialist` | APIs, Node.js, Python, server logic |
|
|
73
|
+
| `mobile-developer` | React Native, Flutter, mobile apps |
|
|
74
|
+
| `database-specialist` | Schema design, queries, migrations |
|
|
75
|
+
| `devops-engineer` | CI/CD, deployment, infrastructure |
|
|
76
|
+
|
|
77
|
+
### Tier 3: Quality & Security
|
|
78
|
+
|
|
79
|
+
| Agent | Use When |
|
|
80
|
+
| --------------------- | ---------------------------------------- |
|
|
81
|
+
| `security-auditor` | Security reviews, vulnerability scanning |
|
|
82
|
+
| `code-reviewer` | PR reviews, code quality checks |
|
|
83
|
+
| `test-engineer` | Writing tests, TDD, test coverage |
|
|
84
|
+
| `performance-analyst` | Performance optimization, profiling |
|
|
85
|
+
|
|
86
|
+
### Tier 4: Domain Specialists
|
|
87
|
+
|
|
88
|
+
| Agent | Use When |
|
|
89
|
+
| ------------------------ | ------------------------------------------ |
|
|
90
|
+
| `realtime-specialist` | WebSocket, Socket.IO, event-driven |
|
|
91
|
+
| `multi-tenant-architect` | SaaS, tenant isolation, data partitioning |
|
|
92
|
+
| `queue-specialist` | Message queues, background jobs |
|
|
93
|
+
| `integration-specialist` | External APIs, webhooks, third-party |
|
|
94
|
+
| `ai-engineer` | LLM, RAG, AI/ML systems, prompt eng |
|
|
95
|
+
| `cloud-architect` | AWS, Azure, GCP, Terraform, multi-cloud |
|
|
96
|
+
| `data-engineer` | ETL, data pipelines, analytics, warehouses |
|
|
97
|
+
|
|
98
|
+
### Tier 5: Support Agents
|
|
99
|
+
|
|
100
|
+
| Agent | Use When |
|
|
101
|
+
| ---------------------- | ------------------------------------- |
|
|
102
|
+
| `documentation-writer` | Technical docs, API documentation |
|
|
103
|
+
| `i18n-specialist` | Internationalization, translations |
|
|
104
|
+
| `ux-researcher` | UX research, usability, accessibility |
|
|
105
|
+
|
|
106
|
+
### Routing Checklist
|
|
107
|
+
|
|
108
|
+
| Step | Check | If Unchecked |
|
|
109
|
+
| ---- | ------------------------------- | --------------------------------- |
|
|
110
|
+
| 1 | Correct agent identified? | → Analyze domain |
|
|
111
|
+
| 2 | Read agent's .md file? | → Open `.agent/agents/{agent}.md` |
|
|
112
|
+
| 3 | Announced @agent? | → Add announcement |
|
|
113
|
+
| 4 | Loaded skills from frontmatter? | → Check `skills:` field |
|
|
114
|
+
|
|
115
|
+
❌ Code without agent = PROTOCOL VIOLATION
|
|
116
|
+
❌ Skip announcement = USER CANNOT VERIFY
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 📜 WORKFLOWS (Slash Commands)
|
|
121
|
+
|
|
122
|
+
| Command | Description | Agent |
|
|
123
|
+
| -------------- | ------------------------------------ | --------------- |
|
|
124
|
+
| `/plan` | Create project plan, NO CODE | project-planner |
|
|
125
|
+
| `/create` | Build new application | orchestrator |
|
|
126
|
+
| `/debug` | Systematic debugging | debugger |
|
|
127
|
+
| `/test` | Generate and run tests | test-engineer |
|
|
128
|
+
| `/deploy` | Production deployment | devops-engineer |
|
|
129
|
+
| `/orchestrate` | Multi-agent coordination (3+ agents) | orchestrator |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 🛠️ SKILL LOADING PROTOCOL
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
User Request → Skill Description Match → Load SKILL.md → Apply
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Core Skills (Always Available)
|
|
140
|
+
|
|
141
|
+
- `clean-code` - Pragmatic coding standards (used by ALL agents)
|
|
142
|
+
- `testing-patterns` - Testing pyramid, AAA pattern
|
|
143
|
+
- `security-fundamentals` - OWASP 2025
|
|
144
|
+
|
|
145
|
+
### Domain Skills (39 total - see ARCHITECTURE.md)
|
|
146
|
+
|
|
147
|
+
Key skills: `api-patterns`, `database-design`, `react-patterns`, `typescript-patterns`, `docker-patterns`, `kubernetes-patterns`, `terraform-patterns`, `auth-patterns`, `graphql-patterns`, `redis-patterns`, `realtime-patterns`, `queue-patterns`, `multi-tenancy`, `ai-rag-patterns`, `prompt-engineering`, `monitoring-observability`, `frontend-design`, `mobile-design`, `tailwind-patterns`, `e2e-testing`, `performance-profiling`, `plan-writing`, `systematic-debugging`, `brainstorming`, `github-actions`, `gitlab-ci-patterns`
|
|
148
|
+
|
|
149
|
+
> 🔴 Full skill list: See `ARCHITECTURE.md` → Skills section
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## TIER 0: UNIVERSAL RULES
|
|
154
|
+
|
|
155
|
+
### 🌐 Language
|
|
156
|
+
|
|
157
|
+
- Non-English prompt → Respond in user's language
|
|
158
|
+
- Code comments/variables → Always English
|
|
159
|
+
- File names → Always English (kebab-case)
|
|
160
|
+
|
|
161
|
+
### 🧹 Clean Code
|
|
162
|
+
|
|
163
|
+
- Concise, no over-engineering, self-documenting
|
|
164
|
+
- Testing: Pyramid (Unit > Int > E2E) + AAA
|
|
165
|
+
- Performance: Measure first, Core Web Vitals
|
|
166
|
+
|
|
167
|
+
### 🗺️ System Map
|
|
168
|
+
|
|
169
|
+
> 🔴 Read `ARCHITECTURE.md` at session start.
|
|
170
|
+
|
|
171
|
+
**Paths:** Agents `.agent/agents/`, Skills `.agent/skills/`, Workflows `.agent/workflows/`
|
|
172
|
+
|
|
173
|
+
### 🧠 Read → Understand → Apply
|
|
174
|
+
|
|
175
|
+
Before coding: 1) What is the GOAL? 2) What PRINCIPLES? 3) How does this DIFFER from generic?
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## TIER 1: CODE RULES
|
|
180
|
+
|
|
181
|
+
### 📱 Project Routing
|
|
182
|
+
|
|
183
|
+
| Type | Agent | Skills |
|
|
184
|
+
| ---------------------------------- | ------------------- | ----------------------------- |
|
|
185
|
+
| MOBILE (iOS, Android, RN, Flutter) | mobile-developer | mobile-design |
|
|
186
|
+
| WEB (Next.js, React) | frontend-specialist | frontend-design |
|
|
187
|
+
| BACKEND (API, DB) | backend-specialist | api-patterns, database-design |
|
|
188
|
+
|
|
189
|
+
> 🔴 Mobile + frontend-specialist = WRONG.
|
|
190
|
+
|
|
191
|
+
### 🛑 Socratic Gate
|
|
192
|
+
|
|
193
|
+
For complex requests, STOP and ASK first:
|
|
194
|
+
|
|
195
|
+
| Request Type | Action |
|
|
196
|
+
| ------------------- | ------------------------------------- |
|
|
197
|
+
| New Feature / Build | Ask 3+ strategic questions |
|
|
198
|
+
| Code Edit / Bug Fix | Confirm understanding first |
|
|
199
|
+
| Vague Request | Ask Purpose, Users, Scope |
|
|
200
|
+
| Full Orchestration | User must confirm plan before Phase 2 |
|
|
201
|
+
|
|
202
|
+
**Never Assume.** If 1% unclear → ASK.
|
|
203
|
+
|
|
204
|
+
### 🎭 Mode Mapping
|
|
205
|
+
|
|
206
|
+
| Mode | Agent | Behavior |
|
|
207
|
+
| ---- | --------------- | ------------------------------- |
|
|
208
|
+
| plan | project-planner | 4-phase, NO CODE before Phase 4 |
|
|
209
|
+
| ask | - | Questions only |
|
|
210
|
+
| edit | orchestrator | Check {task-slug}.md first |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## TIER 2: DESIGN RULES
|
|
215
|
+
|
|
216
|
+
> Rules in specialist agents: Web → `frontend-specialist.md`, Mobile → `mobile-developer.md`
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 📜 SCRIPTS (Automation)
|
|
221
|
+
|
|
222
|
+
### When to Run Scripts
|
|
223
|
+
|
|
224
|
+
| Trigger | Script | Purpose |
|
|
225
|
+
| ---------------- | -------------------------- | ---------------------------------------- |
|
|
226
|
+
| Before PR/commit | `checklist.py` | Quick validation (Security, Lint, Tests) |
|
|
227
|
+
| Before deploy | `verify_all.py` | Full pre-deployment suite |
|
|
228
|
+
| Kit maintenance | `kit_status.py --validate` | Check kit integrity |
|
|
229
|
+
| Managing skills | `skills_manager.py` | Enable/disable/search skills |
|
|
230
|
+
|
|
231
|
+
### Master Scripts
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Quick check during development
|
|
235
|
+
python3 .agent/scripts/checklist.py .
|
|
236
|
+
|
|
237
|
+
# Full check with performance audits
|
|
238
|
+
python3 .agent/scripts/checklist.py . --url http://localhost:3000
|
|
239
|
+
|
|
240
|
+
# Pre-deployment verification
|
|
241
|
+
python3 .agent/scripts/verify_all.py . --url http://localhost:3000
|
|
242
|
+
|
|
243
|
+
# Kit status
|
|
244
|
+
python3 .agent/scripts/kit_status.py --validate
|
|
245
|
+
|
|
246
|
+
# Skill management
|
|
247
|
+
python3 .agent/scripts/skills_manager.py list
|
|
248
|
+
python3 .agent/scripts/skills_manager.py search <query>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Skill-Specific Scripts
|
|
252
|
+
|
|
253
|
+
| Skill | Script | When to Use |
|
|
254
|
+
| ------------------------ | --------------------- | -------------------------------- |
|
|
255
|
+
| `clean-code` | `lint_runner.py` | After code changes |
|
|
256
|
+
| `testing-patterns` | `test_runner.py` | After logic changes |
|
|
257
|
+
| `security-fundamentals` | `security_scan.py` | Before deploy, after deps change |
|
|
258
|
+
| `database-design` | `schema_validator.py` | After schema changes |
|
|
259
|
+
| `api-patterns` | `api_validator.py` | After API changes |
|
|
260
|
+
| `i18n-localization` | `i18n_checker.py` | After UI text changes |
|
|
261
|
+
| `seo-patterns` | `seo_checker.py` | After page changes |
|
|
262
|
+
| `accessibility-patterns` | `a11y_checker.py` | After UI changes |
|
|
263
|
+
|
|
264
|
+
### AI Script Protocol
|
|
265
|
+
|
|
266
|
+
1. **Security changes** → Run `security_scan.py`
|
|
267
|
+
2. **Database changes** → Run `schema_validator.py`
|
|
268
|
+
3. **API changes** → Run `api_validator.py`
|
|
269
|
+
4. **UI changes** → Run `a11y_checker.py`
|
|
270
|
+
5. **Before suggesting deploy** → Run `verify_all.py`
|
|
271
|
+
|
|
272
|
+
> 🔴 Full script documentation: See `ARCHITECTURE.md` → Scripts section
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 📊 Kit Statistics
|
|
277
|
+
|
|
278
|
+
| Metric | Count |
|
|
279
|
+
| --------- | ----- |
|
|
280
|
+
| Agents | 22 |
|
|
281
|
+
| Skills | 39 |
|
|
282
|
+
| Workflows | 7 |
|
|
283
|
+
| Scripts | 19 |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
> **Philosophy:** Modular agents + reusable skills + clear workflows + automated scripts = scalable AI assistance.
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
AGT-Kit Master Checklist Runner
|
|
4
|
+
=================================
|
|
5
|
+
|
|
6
|
+
Orchestrates validation scripts in priority order for any project type.
|
|
7
|
+
Designed to work with AGT-Kit's 37 skills.
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
python .agent/scripts/checklist.py <project_path>
|
|
11
|
+
python .agent/scripts/checklist.py . --url http://localhost:3000
|
|
12
|
+
python .agent/scripts/checklist.py . --quick
|
|
13
|
+
|
|
14
|
+
Priority Order (P0-P6):
|
|
15
|
+
P0: Security Scan (vulnerabilities, secrets)
|
|
16
|
+
P1: Lint & Type Check (code quality)
|
|
17
|
+
P2: Schema Validation (if database exists)
|
|
18
|
+
P3: Test Runner (unit/integration tests)
|
|
19
|
+
P4: UX Audit (accessibility, design)
|
|
20
|
+
P5: SEO Check (meta tags, Core Web Vitals)
|
|
21
|
+
P6: Performance (Lighthouse - requires URL)
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
import sys
|
|
25
|
+
import subprocess
|
|
26
|
+
import argparse
|
|
27
|
+
import json
|
|
28
|
+
from pathlib import Path
|
|
29
|
+
from typing import List, Optional, Dict, Any
|
|
30
|
+
from datetime import datetime
|
|
31
|
+
|
|
32
|
+
# ANSI colors for terminal output
|
|
33
|
+
class Colors:
|
|
34
|
+
HEADER = '\033[95m'
|
|
35
|
+
BLUE = '\033[94m'
|
|
36
|
+
CYAN = '\033[96m'
|
|
37
|
+
GREEN = '\033[92m'
|
|
38
|
+
YELLOW = '\033[93m'
|
|
39
|
+
RED = '\033[91m'
|
|
40
|
+
ENDC = '\033[0m'
|
|
41
|
+
BOLD = '\033[1m'
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def print_header(text: str):
|
|
45
|
+
print(f"\n{Colors.BOLD}{Colors.CYAN}{'='*60}{Colors.ENDC}")
|
|
46
|
+
print(f"{Colors.BOLD}{Colors.CYAN}{text.center(60)}{Colors.ENDC}")
|
|
47
|
+
print(f"{Colors.BOLD}{Colors.CYAN}{'='*60}{Colors.ENDC}\n")
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def print_step(text: str):
|
|
51
|
+
print(f"{Colors.BOLD}{Colors.BLUE}🔄 {text}{Colors.ENDC}")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def print_success(text: str):
|
|
55
|
+
print(f"{Colors.GREEN}✅ {text}{Colors.ENDC}")
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def print_warning(text: str):
|
|
59
|
+
print(f"{Colors.YELLOW}⚠️ {text}{Colors.ENDC}")
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def print_error(text: str):
|
|
63
|
+
print(f"{Colors.RED}❌ {text}{Colors.ENDC}")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# Define skill-based checks - maps to AGT-Kit skills
|
|
67
|
+
CORE_CHECKS = [
|
|
68
|
+
{
|
|
69
|
+
"name": "Security Scan",
|
|
70
|
+
"skill": "security-fundamentals",
|
|
71
|
+
"script": ".agent/skills/security-fundamentals/scripts/security_scan.py",
|
|
72
|
+
"priority": 0,
|
|
73
|
+
"required": True,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "Lint Check",
|
|
77
|
+
"skill": "clean-code",
|
|
78
|
+
"script": ".agent/skills/clean-code/scripts/lint_runner.py",
|
|
79
|
+
"priority": 1,
|
|
80
|
+
"required": True,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "Schema Validation",
|
|
84
|
+
"skill": "database-design",
|
|
85
|
+
"script": ".agent/skills/database-design/scripts/schema_validator.py",
|
|
86
|
+
"priority": 2,
|
|
87
|
+
"required": False,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "Test Runner",
|
|
91
|
+
"skill": "testing-patterns",
|
|
92
|
+
"script": ".agent/skills/testing-patterns/scripts/test_runner.py",
|
|
93
|
+
"priority": 3,
|
|
94
|
+
"required": False,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "UX Audit",
|
|
98
|
+
"skill": "frontend-design",
|
|
99
|
+
"script": ".agent/skills/frontend-design/scripts/ux_audit.py",
|
|
100
|
+
"priority": 4,
|
|
101
|
+
"required": False,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "SEO Check",
|
|
105
|
+
"skill": "seo-patterns",
|
|
106
|
+
"script": ".agent/skills/seo-patterns/scripts/seo_checker.py",
|
|
107
|
+
"priority": 5,
|
|
108
|
+
"required": False,
|
|
109
|
+
},
|
|
110
|
+
]
|
|
111
|
+
|
|
112
|
+
PERFORMANCE_CHECKS = [
|
|
113
|
+
{
|
|
114
|
+
"name": "Lighthouse Audit",
|
|
115
|
+
"skill": "performance-profiling",
|
|
116
|
+
"script": ".agent/skills/performance-profiling/scripts/lighthouse_audit.py",
|
|
117
|
+
"priority": 6,
|
|
118
|
+
"required": False,
|
|
119
|
+
"needs_url": True,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "E2E Tests",
|
|
123
|
+
"skill": "e2e-testing",
|
|
124
|
+
"script": ".agent/skills/e2e-testing/scripts/playwright_runner.py",
|
|
125
|
+
"priority": 7,
|
|
126
|
+
"required": False,
|
|
127
|
+
"needs_url": True,
|
|
128
|
+
},
|
|
129
|
+
]
|
|
130
|
+
|
|
131
|
+
QUICK_CHECKS = ["Security Scan", "Lint Check", "Test Runner"]
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def detect_project_type(project_path: Path) -> str:
|
|
135
|
+
"""Detect project type to filter relevant checks."""
|
|
136
|
+
if (project_path / "package.json").exists():
|
|
137
|
+
pkg = json.loads((project_path / "package.json").read_text())
|
|
138
|
+
deps = {**pkg.get("dependencies", {}), **pkg.get("devDependencies", {})}
|
|
139
|
+
|
|
140
|
+
if "next" in deps:
|
|
141
|
+
return "nextjs"
|
|
142
|
+
if "react" in deps:
|
|
143
|
+
return "react"
|
|
144
|
+
if "express" in deps or "fastify" in deps:
|
|
145
|
+
return "node-backend"
|
|
146
|
+
return "node"
|
|
147
|
+
|
|
148
|
+
if (project_path / "pyproject.toml").exists() or (project_path / "requirements.txt").exists():
|
|
149
|
+
return "python"
|
|
150
|
+
|
|
151
|
+
if (project_path / "pubspec.yaml").exists():
|
|
152
|
+
return "flutter"
|
|
153
|
+
|
|
154
|
+
if (project_path / "go.mod").exists():
|
|
155
|
+
return "go"
|
|
156
|
+
|
|
157
|
+
return "unknown"
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def run_script(check: Dict[str, Any], project_path: Path, url: Optional[str] = None) -> Dict[str, Any]:
|
|
161
|
+
"""Run a validation script and capture results."""
|
|
162
|
+
script_path = project_path / check["script"]
|
|
163
|
+
|
|
164
|
+
if not script_path.exists():
|
|
165
|
+
print_warning(f"{check['name']}: Script not found ({check['skill']} skill)")
|
|
166
|
+
return {
|
|
167
|
+
"name": check["name"],
|
|
168
|
+
"skill": check["skill"],
|
|
169
|
+
"passed": True,
|
|
170
|
+
"skipped": True,
|
|
171
|
+
"reason": "Script not found"
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
print_step(f"Running: {check['name']} ({check['skill']})")
|
|
175
|
+
|
|
176
|
+
# Build command
|
|
177
|
+
cmd = ["python", str(script_path), str(project_path)]
|
|
178
|
+
if url and check.get("needs_url"):
|
|
179
|
+
cmd.append(url)
|
|
180
|
+
|
|
181
|
+
try:
|
|
182
|
+
result = subprocess.run(
|
|
183
|
+
cmd,
|
|
184
|
+
capture_output=True,
|
|
185
|
+
text=True,
|
|
186
|
+
timeout=300 # 5 minute timeout
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
passed = result.returncode == 0
|
|
190
|
+
|
|
191
|
+
if passed:
|
|
192
|
+
print_success(f"{check['name']}: PASSED")
|
|
193
|
+
else:
|
|
194
|
+
print_error(f"{check['name']}: FAILED")
|
|
195
|
+
if result.stderr:
|
|
196
|
+
print(f" Error: {result.stderr[:200]}")
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
"name": check["name"],
|
|
200
|
+
"skill": check["skill"],
|
|
201
|
+
"passed": passed,
|
|
202
|
+
"output": result.stdout[:2000] if result.stdout else "",
|
|
203
|
+
"error": result.stderr[:500] if result.stderr else "",
|
|
204
|
+
"skipped": False
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
except subprocess.TimeoutExpired:
|
|
208
|
+
print_error(f"{check['name']}: TIMEOUT (>5 minutes)")
|
|
209
|
+
return {"name": check["name"], "skill": check["skill"], "passed": False, "skipped": False, "error": "Timeout"}
|
|
210
|
+
|
|
211
|
+
except Exception as e:
|
|
212
|
+
print_error(f"{check['name']}: ERROR - {str(e)}")
|
|
213
|
+
return {"name": check["name"], "skill": check["skill"], "passed": False, "skipped": False, "error": str(e)}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def print_summary(results: List[Dict], project_type: str) -> bool:
|
|
217
|
+
"""Print final summary report."""
|
|
218
|
+
print_header("📊 AGT-KIT CHECKLIST SUMMARY")
|
|
219
|
+
|
|
220
|
+
passed = sum(1 for r in results if r["passed"] and not r.get("skipped"))
|
|
221
|
+
failed = sum(1 for r in results if not r["passed"] and not r.get("skipped"))
|
|
222
|
+
skipped = sum(1 for r in results if r.get("skipped"))
|
|
223
|
+
|
|
224
|
+
print(f"Project Type: {project_type}")
|
|
225
|
+
print(f"Total Checks: {len(results)}")
|
|
226
|
+
print(f"{Colors.GREEN}✅ Passed: {passed}{Colors.ENDC}")
|
|
227
|
+
print(f"{Colors.RED}❌ Failed: {failed}{Colors.ENDC}")
|
|
228
|
+
print(f"{Colors.YELLOW}⏭️ Skipped: {skipped}{Colors.ENDC}")
|
|
229
|
+
print()
|
|
230
|
+
|
|
231
|
+
# Results by skill
|
|
232
|
+
print(f"{Colors.BOLD}Results by Skill:{Colors.ENDC}")
|
|
233
|
+
for r in results:
|
|
234
|
+
if r.get("skipped"):
|
|
235
|
+
status = f"{Colors.YELLOW}⏭️ {Colors.ENDC}"
|
|
236
|
+
elif r["passed"]:
|
|
237
|
+
status = f"{Colors.GREEN}✅{Colors.ENDC}"
|
|
238
|
+
else:
|
|
239
|
+
status = f"{Colors.RED}❌{Colors.ENDC}"
|
|
240
|
+
|
|
241
|
+
print(f" {status} {r['name']} ({r['skill']})")
|
|
242
|
+
|
|
243
|
+
print()
|
|
244
|
+
|
|
245
|
+
if failed > 0:
|
|
246
|
+
print_error(f"{failed} check(s) FAILED - Please fix before proceeding")
|
|
247
|
+
return False
|
|
248
|
+
else:
|
|
249
|
+
print_success("All checks PASSED ✨")
|
|
250
|
+
return True
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def main():
|
|
254
|
+
parser = argparse.ArgumentParser(
|
|
255
|
+
description="AGT-Kit Master Checklist - Validate project with AGT-Kit skills",
|
|
256
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
257
|
+
epilog="""
|
|
258
|
+
Examples:
|
|
259
|
+
python .agent/scripts/checklist.py . # Core checks
|
|
260
|
+
python .agent/scripts/checklist.py . --url http://localhost:3000 # + Performance
|
|
261
|
+
python .agent/scripts/checklist.py . --quick # Quick checks only
|
|
262
|
+
"""
|
|
263
|
+
)
|
|
264
|
+
parser.add_argument("project", help="Project path to validate")
|
|
265
|
+
parser.add_argument("--url", help="URL for performance checks (Lighthouse, Playwright)")
|
|
266
|
+
parser.add_argument("--quick", action="store_true", help="Run only quick checks (Security, Lint, Tests)")
|
|
267
|
+
parser.add_argument("--stop-on-fail", action="store_true", help="Stop on first critical failure")
|
|
268
|
+
|
|
269
|
+
args = parser.parse_args()
|
|
270
|
+
|
|
271
|
+
project_path = Path(args.project).resolve()
|
|
272
|
+
|
|
273
|
+
if not project_path.exists():
|
|
274
|
+
print_error(f"Project path does not exist: {project_path}")
|
|
275
|
+
sys.exit(1)
|
|
276
|
+
|
|
277
|
+
project_type = detect_project_type(project_path)
|
|
278
|
+
|
|
279
|
+
print_header("🚀 AGT-KIT MASTER CHECKLIST")
|
|
280
|
+
print(f"Project: {project_path}")
|
|
281
|
+
print(f"Type: {project_type}")
|
|
282
|
+
print(f"URL: {args.url if args.url else 'Not provided'}")
|
|
283
|
+
print(f"Mode: {'Quick' if args.quick else 'Full'}")
|
|
284
|
+
|
|
285
|
+
results = []
|
|
286
|
+
|
|
287
|
+
# Filter checks based on --quick flag
|
|
288
|
+
checks_to_run = CORE_CHECKS.copy()
|
|
289
|
+
if args.quick:
|
|
290
|
+
checks_to_run = [c for c in checks_to_run if c["name"] in QUICK_CHECKS]
|
|
291
|
+
|
|
292
|
+
# Run core checks
|
|
293
|
+
print_header("📋 CORE CHECKS")
|
|
294
|
+
for check in sorted(checks_to_run, key=lambda x: x["priority"]):
|
|
295
|
+
result = run_script(check, project_path)
|
|
296
|
+
results.append(result)
|
|
297
|
+
|
|
298
|
+
# Stop on critical failure if flag set
|
|
299
|
+
if args.stop_on_fail and check["required"] and not result["passed"] and not result.get("skipped"):
|
|
300
|
+
print_error(f"CRITICAL: {check['name']} failed. Stopping.")
|
|
301
|
+
print_summary(results, project_type)
|
|
302
|
+
sys.exit(1)
|
|
303
|
+
|
|
304
|
+
# Run performance checks if URL provided
|
|
305
|
+
if args.url and not args.quick:
|
|
306
|
+
print_header("⚡ PERFORMANCE CHECKS")
|
|
307
|
+
for check in PERFORMANCE_CHECKS:
|
|
308
|
+
result = run_script(check, project_path, args.url)
|
|
309
|
+
results.append(result)
|
|
310
|
+
|
|
311
|
+
# Print summary
|
|
312
|
+
all_passed = print_summary(results, project_type)
|
|
313
|
+
|
|
314
|
+
sys.exit(0 if all_passed else 1)
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
if __name__ == "__main__":
|
|
318
|
+
main()
|