codymaster 4.4.4 → 4.5.1
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/CHANGELOG.md +33 -0
- package/README.md +29 -14
- package/commands/demo.md +1 -1
- package/dist/context-bus.js +70 -0
- package/dist/context-db.js +265 -0
- package/dist/continuity.js +12 -0
- package/dist/file-watcher.js +79 -0
- package/dist/index.js +152 -1
- package/dist/l0-indexer.js +158 -0
- package/dist/mcp-context-server.js +400 -0
- package/dist/migrate-json-to-sqlite.js +126 -0
- package/dist/skill-chain.js +19 -3
- package/dist/token-budget.js +108 -0
- package/dist/uri-resolver.js +203 -0
- package/package.json +7 -1
- package/skills/_shared/helpers.md +50 -14
- package/skills/cm-autopilot/SKILL.md +29 -0
- package/skills/cm-autopilot/scripts/autopilot.py +190 -0
- package/skills/cm-continuity/SKILL.md +90 -28
- package/skills/cm-quality-gate/SKILL.md +11 -1
- package/skills/cm-safe-deploy/SKILL.md +38 -2
- package/skills/cm-security-gate/SKILL.md +158 -34
- package/skills/cm-skill-chain/SKILL.md +47 -1
- package/skills/cm-start/SKILL.md +11 -2
- package/skills/cm-test-gate/SKILL.md +3 -0
- package/skills/boxme-git-config/SKILL.md +0 -56
- package/skills/boxme-local-dev/SKILL.md +0 -66
- package/skills/jobs-to-be-done/SKILL.md +0 -266
- package/skills/jobs-to-be-done/references/case-studies.md +0 -154
- package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
- package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
- package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
- package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
- package/skills/marketplace-report-crawler/SKILL.md +0 -176
- package/skills/marketplace-report-crawler/config/accounts.json +0 -41
- package/skills/marketplace-report-crawler/config/report-types.json +0 -422
- package/skills/marketplace-report-crawler/config/sessions.json +0 -3
- package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
- package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
- package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
- package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
- package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
- package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
- package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
- package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
- package/skills/medical-research/SKILL.md +0 -194
- package/skills/medical-research/scripts/evidence_checker.py +0 -288
- package/skills/mom-test/SKILL.md +0 -267
- package/skills/mom-test/references/avoiding-bad-data.md +0 -221
- package/skills/mom-test/references/case-studies.md +0 -306
- package/skills/mom-test/references/commitment-advancement.md +0 -219
- package/skills/mom-test/references/finding-conversations.md +0 -251
- package/skills/mom-test/references/processing-learning.md +0 -256
- package/skills/mom-test/references/question-patterns.md +0 -198
- package/skills/pandasai-analytics/SKILL.md +0 -251
- package/skills/release-it/SKILL.md +0 -235
- package/skills/release-it/references/anti-patterns.md +0 -279
- package/skills/release-it/references/capacity-planning.md +0 -285
- package/skills/release-it/references/chaos-engineering.md +0 -325
- package/skills/release-it/references/deployment-strategies.md +0 -331
- package/skills/release-it/references/observability.md +0 -301
- package/skills/release-it/references/stability-patterns.md +0 -355
- package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
- package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
- package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
- package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
- package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
- package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
- package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
- package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
- package/skills/skill-creator-ultra/README.md +0 -1242
- package/skills/skill-creator-ultra/SKILL.md +0 -388
- package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
- package/skills/skill-creator-ultra/agents/comparator.md +0 -202
- package/skills/skill-creator-ultra/agents/grader.md +0 -223
- package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
- package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
- package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
- package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
- package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
- package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
- package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
- package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
- package/skills/skill-creator-ultra/install.ps1 +0 -289
- package/skills/skill-creator-ultra/install.sh +0 -313
- package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
- package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
- package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
- package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
- package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
- package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
- package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
- package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
- package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
- package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
- package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
- package/skills/skill-creator-ultra/resources/checklist.md +0 -243
- package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
- package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
- package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
- package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
- package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
- package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
- package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
- package/skills/skill-creator-ultra/resources/schemas.md +0 -430
- package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
- package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
- package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
- package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
- package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
- package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
- package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
- package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
- package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
- package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
- package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
- package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
- package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
- package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
- package/skills/tailwind-mastery/SKILL.md +0 -229
- package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
- package/skills/vercel-react-best-practices/README.md +0 -123
- package/skills/vercel-react-best-practices/SKILL.md +0 -143
- package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
- package/skills/vercel-react-best-practices/rules/_template.md +0 -28
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
- package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
- package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
- package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
- package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
- package/skills/web-design-guidelines/SKILL.md +0 -39
|
@@ -1,499 +0,0 @@
|
|
|
1
|
-
# 🔍 Advanced Patterns — Các mô hình nâng cao cho Skill phức tạp
|
|
2
|
-
|
|
3
|
-
Tài liệu này hướng dẫn cách tạo các skill **phức tạp hơn** skill cơ bản. Mỗi pattern bao gồm: **Khi nào dùng**, **Cấu trúc**, và **Ví dụ thực tế**.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Pattern 1: Skill có Scripts (Executable Skills)
|
|
8
|
-
|
|
9
|
-
> 📖 **Hướng dẫn chi tiết:** Xem `resources/script_integration.md` cho tài liệu toàn diện.
|
|
10
|
-
|
|
11
|
-
### Khi nào dùng?
|
|
12
|
-
|
|
13
|
-
Khi skill cần **thao tác hệ thống**: chạy lệnh terminal, đọc/ghi file, tương tác với API,
|
|
14
|
-
tính toán chính xác (tài chính, thống kê), hoặc kết nối database/service bên ngoài.
|
|
15
|
-
|
|
16
|
-
| Không có Script | Có Script |
|
|
17
|
-
| --- | --- |
|
|
18
|
-
| AI chỉ sinh text/markdown | AI chạy lệnh, đọc file, gọi API |
|
|
19
|
-
| AI tự tính → hay sai | Tính toán chính xác 100% |
|
|
20
|
-
| Phụ thuộc context window | Xử lý file lớn, dữ liệu nhiều |
|
|
21
|
-
|
|
22
|
-
### Cấu trúc
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
skills/my-skill/
|
|
26
|
-
├── SKILL.md
|
|
27
|
-
└── scripts/
|
|
28
|
-
├── main.py ← Script chính (BẮT BUỘC có --help)
|
|
29
|
-
├── helpers.py ← Hàm tiện ích
|
|
30
|
-
└── requirements.txt ← Dependencies (nếu cần)
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 3 Phương pháp Gọi Script
|
|
34
|
-
|
|
35
|
-
#### Phương pháp A: Direct Call (Gọi trực tiếp)
|
|
36
|
-
|
|
37
|
-
Script đơn giản, ít tham số:
|
|
38
|
-
|
|
39
|
-
```markdown
|
|
40
|
-
# Instructions
|
|
41
|
-
1. Kiểm tra health staging:
|
|
42
|
-
- Chạy: `./scripts/check_staging.sh`
|
|
43
|
-
- Nếu output chứa "✅" → OK, tiếp bước 2
|
|
44
|
-
- Nếu output chứa "❌" → Dừng, báo user
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
#### Phương pháp B: Argument Mapping (Ánh xạ tham số) ⭐ KHUYẾN KHÍCH
|
|
48
|
-
|
|
49
|
-
AI trích xuất thông tin từ câu nói user → truyền vào cờ script:
|
|
50
|
-
|
|
51
|
-
```markdown
|
|
52
|
-
# Instructions
|
|
53
|
-
1. Phân tích yêu cầu user để xác định:
|
|
54
|
-
- **Môi trường** mục tiêu → Truyền cờ `--env`
|
|
55
|
-
- **Branch** (nếu chỉ định) → Truyền cờ `--branch`
|
|
56
|
-
2. Thực thi: `python scripts/deploy.py --env <env> --branch <branch>`
|
|
57
|
-
|
|
58
|
-
## Bảng ánh xạ tham số:
|
|
59
|
-
| User nói | Cờ `--env` | Lệnh đầy đủ |
|
|
60
|
-
| --- | --- | --- |
|
|
61
|
-
| "deploy lên dev" | `dev` | `python scripts/deploy.py --env dev` |
|
|
62
|
-
| "đẩy lên production" | `prod` | `python scripts/deploy.py --env prod` |
|
|
63
|
-
| "thử nhưng chưa chạy thật" | + `--dry-run` | `...deploy.py --env dev --dry-run` |
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
#### Phương pháp C: Black Box (Hộp đen)
|
|
67
|
-
|
|
68
|
-
Script phức tạp, nhiều tham số — AI tự học cách dùng:
|
|
69
|
-
|
|
70
|
-
```markdown
|
|
71
|
-
# Instructions
|
|
72
|
-
1. Tool `scripts/data_processor.py` là **hộp đen**.
|
|
73
|
-
KHÔNG ĐƯỢC đọc mã nguồn.
|
|
74
|
-
2. Chạy `python scripts/data_processor.py --help` để tìm hiểu interface.
|
|
75
|
-
3. Trích xuất thông tin từ user → Tự cấu trúc lệnh → Thực thi.
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Lợi ích Black Box:**
|
|
79
|
-
|
|
80
|
-
- 💾 Tiết kiệm context window (không nạp source code)
|
|
81
|
-
- 🎯 Giảm lỗi suy luận (tập trung "cách dùng" vs "cách hoạt động")
|
|
82
|
-
- 🔄 Tự thích ứng (thêm cờ mới → AI tự phát hiện qua `--help`)
|
|
83
|
-
|
|
84
|
-
### Ví dụ thực tế: Skill phân tích codebase
|
|
85
|
-
|
|
86
|
-
```python
|
|
87
|
-
# scripts/analyze_codebase.py
|
|
88
|
-
import argparse, os, sys, json
|
|
89
|
-
|
|
90
|
-
def count_files_by_extension(directory):
|
|
91
|
-
stats = {}
|
|
92
|
-
for root, dirs, files in os.walk(directory):
|
|
93
|
-
dirs[:] = [d for d in dirs if d not in ['node_modules', '.git', 'dist']]
|
|
94
|
-
for f in files:
|
|
95
|
-
ext = os.path.splitext(f)[1] or '(no ext)'
|
|
96
|
-
stats[ext] = stats.get(ext, 0) + 1
|
|
97
|
-
return stats
|
|
98
|
-
|
|
99
|
-
def analyze(directory):
|
|
100
|
-
result = {
|
|
101
|
-
'total_files': 0,
|
|
102
|
-
'total_lines': 0,
|
|
103
|
-
'files_by_type': count_files_by_extension(directory),
|
|
104
|
-
'largest_files': [],
|
|
105
|
-
}
|
|
106
|
-
code_ext = {'.py', '.js', '.ts', '.tsx', '.jsx', '.vue', '.css', '.html'}
|
|
107
|
-
file_sizes = []
|
|
108
|
-
for root, dirs, files in os.walk(directory):
|
|
109
|
-
dirs[:] = [d for d in dirs if d not in ['node_modules', '.git', 'dist']]
|
|
110
|
-
for f in files:
|
|
111
|
-
filepath = os.path.join(root, f)
|
|
112
|
-
ext = os.path.splitext(f)[1]
|
|
113
|
-
result['total_files'] += 1
|
|
114
|
-
if ext in code_ext:
|
|
115
|
-
try:
|
|
116
|
-
lines = sum(1 for line in open(filepath, encoding='utf-8', errors='ignore')
|
|
117
|
-
if line.strip() and not line.strip().startswith(('#','//')))
|
|
118
|
-
except: lines = 0
|
|
119
|
-
result['total_lines'] += lines
|
|
120
|
-
file_sizes.append((filepath, lines))
|
|
121
|
-
file_sizes.sort(key=lambda x: x[1], reverse=True)
|
|
122
|
-
result['largest_files'] = [
|
|
123
|
-
{'path': os.path.relpath(p, directory), 'lines': l}
|
|
124
|
-
for p, l in file_sizes[:10]
|
|
125
|
-
]
|
|
126
|
-
return result
|
|
127
|
-
|
|
128
|
-
if __name__ == '__main__':
|
|
129
|
-
parser = argparse.ArgumentParser(description="Phân tích codebase")
|
|
130
|
-
parser.add_argument('--dir', default='.', help='Thư mục cần phân tích')
|
|
131
|
-
parser.add_argument('--format', choices=['json', 'text'], default='json')
|
|
132
|
-
args = parser.parse_args()
|
|
133
|
-
result = analyze(args.dir)
|
|
134
|
-
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Quy tắc cho Script Skills
|
|
138
|
-
|
|
139
|
-
- ✅ Script PHẢI dùng `argparse` (Python) hoặc flags tương đương
|
|
140
|
-
- ✅ Script PHẢI hỗ trợ `--help` (AI đọc để tự học cách dùng)
|
|
141
|
-
- ✅ Script PHẢI có `--dry-run` cho thao tác destructive
|
|
142
|
-
- ✅ Output qua **stdout** (JSON khuyến khích), errors qua **stderr**
|
|
143
|
-
- ✅ Exit code: `0` = OK, `≠0` = lỗi
|
|
144
|
-
- ❌ KHÔNG để script truy cập mạng mà không thông báo user
|
|
145
|
-
- ❌ KHÔNG để script xóa/sửa file mà không xin phép
|
|
146
|
-
- ❌ KHÔNG hardcode credentials (dùng env vars)
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## Pattern 2: Skill có Multi-Resource (Template-Heavy Skills)
|
|
151
|
-
|
|
152
|
-
### Khi nào dùng?
|
|
153
|
-
|
|
154
|
-
Khi skill cần **nhiều file mẫu** (templates) để sinh ra các loại output khác nhau.
|
|
155
|
-
|
|
156
|
-
### Cấu trúc
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
skills/report-generator/
|
|
160
|
-
├── SKILL.md
|
|
161
|
-
└── resources/
|
|
162
|
-
├── templates/
|
|
163
|
-
│ ├── weekly_report.md ← Mẫu báo cáo tuần
|
|
164
|
-
│ ├── monthly_report.md ← Mẫu báo cáo tháng
|
|
165
|
-
│ ├── sprint_review.md ← Mẫu sprint review
|
|
166
|
-
│ └── incident_report.md ← Mẫu báo cáo sự cố
|
|
167
|
-
├── styles/
|
|
168
|
-
│ └── report_format.md ← Quy tắc format chung
|
|
169
|
-
└── glossary.md ← Bộ thuật ngữ chuẩn
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Cách tham chiếu trong SKILL.md
|
|
173
|
-
|
|
174
|
-
```markdown
|
|
175
|
-
# Instructions
|
|
176
|
-
1. Hỏi user cần loại báo cáo nào (tuần/tháng/sprint/incident).
|
|
177
|
-
2. Đọc template tương ứng từ `resources/templates/<loại>.md`.
|
|
178
|
-
3. Đọc quy tắc format từ `resources/styles/report_format.md`.
|
|
179
|
-
4. Thu thập dữ liệu từ user.
|
|
180
|
-
5. Sinh báo cáo theo template, tuân thủ format chuẩn.
|
|
181
|
-
6. Sử dụng thuật ngữ từ `resources/glossary.md` để đảm bảo nhất quán.
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Ví dụ template — Báo cáo tuần
|
|
185
|
-
|
|
186
|
-
```markdown
|
|
187
|
-
# 📊 Báo cáo tuần — [Tên dự án]
|
|
188
|
-
|
|
189
|
-
**Tuần:** [Số tuần] | **Từ:** [DD/MM] **→** [DD/MM/YYYY]
|
|
190
|
-
**Người viết:** [Tên]
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## 1. Tổng quan
|
|
195
|
-
|
|
196
|
-
| Chỉ số | Tuần trước | Tuần này | Xu hướng |
|
|
197
|
-
|---|---|---|---|
|
|
198
|
-
| Tasks hoàn thành | _ | _ | ↑↓→ |
|
|
199
|
-
| Bugs phát hiện | _ | _ | ↑↓→ |
|
|
200
|
-
| Bugs đã fix | _ | _ | ↑↓→ |
|
|
201
|
-
|
|
202
|
-
## 2. Công việc đã hoàn thành
|
|
203
|
-
- [ ] Task 1: _mô tả_
|
|
204
|
-
- [ ] Task 2: _mô tả_
|
|
205
|
-
|
|
206
|
-
## 3. Vấn đề gặp phải
|
|
207
|
-
- **Vấn đề 1:** _mô tả_ → **Giải pháp:** _mô tả_
|
|
208
|
-
|
|
209
|
-
## 4. Kế hoạch tuần tới
|
|
210
|
-
- [ ] Task dự kiến 1
|
|
211
|
-
- [ ] Task dự kiến 2
|
|
212
|
-
|
|
213
|
-
## 5. Rủi ro
|
|
214
|
-
| Rủi ro | Mức độ | Biện pháp |
|
|
215
|
-
|---|---|---|
|
|
216
|
-
| _mô tả_ | 🔴🟡🟢 | _biện pháp_ |
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Quy tắc cho Multi-Resource Skills
|
|
220
|
-
|
|
221
|
-
- ✅ Đặt templates vào **sub-folder** riêng (`templates/`, `styles/`)
|
|
222
|
-
- ✅ Mỗi template phải **tự đủ** (có thể dùng độc lập)
|
|
223
|
-
- ✅ Thêm `glossary.md` nếu có thuật ngữ chuyên ngành
|
|
224
|
-
- ❌ KHÔNG để template quá 200 dòng — tách thành nhiều file
|
|
225
|
-
- ❌ KHÔNG hardcode dữ liệu thật vào template
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Pattern 3: Skill có Context-Aware Logic (Adaptive Skills)
|
|
230
|
-
|
|
231
|
-
### Khi nào dùng?
|
|
232
|
-
|
|
233
|
-
Khi skill cần **hành xử khác nhau** tùy vào ngữ cảnh (loại dự án, ngôn ngữ lập trình, framework...).
|
|
234
|
-
|
|
235
|
-
### Cấu trúc
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
skills/test-generator/
|
|
239
|
-
├── SKILL.md
|
|
240
|
-
└── resources/
|
|
241
|
-
├── strategies/
|
|
242
|
-
│ ├── react_testing.md ← Strategy cho React
|
|
243
|
-
│ ├── nextjs_testing.md ← Strategy cho Next.js
|
|
244
|
-
│ ├── python_testing.md ← Strategy cho Python
|
|
245
|
-
│ └── generic_testing.md ← Strategy chung
|
|
246
|
-
└── patterns/
|
|
247
|
-
├── unit_test.md ← Pattern unit test
|
|
248
|
-
├── integration_test.md ← Pattern integration test
|
|
249
|
-
└── e2e_test.md ← Pattern end-to-end test
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Cách viết logic adaptive trong SKILL.md
|
|
253
|
-
|
|
254
|
-
```markdown
|
|
255
|
-
# Instructions
|
|
256
|
-
|
|
257
|
-
## Bước 1: Nhận diện ngữ cảnh
|
|
258
|
-
1. Kiểm tra `package.json` hoặc `requirements.txt` để xác định tech stack.
|
|
259
|
-
2. Dựa vào tech stack, chọn strategy phù hợp:
|
|
260
|
-
- **React** → Đọc `resources/strategies/react_testing.md`
|
|
261
|
-
- **Next.js** → Đọc `resources/strategies/nextjs_testing.md`
|
|
262
|
-
- **Python** → Đọc `resources/strategies/python_testing.md`
|
|
263
|
-
- **Khác** → Đọc `resources/strategies/generic_testing.md`
|
|
264
|
-
|
|
265
|
-
## Bước 2: Xác định loại test
|
|
266
|
-
1. Hỏi user hoặc tự xác định loại test cần tạo:
|
|
267
|
-
- **Unit test** → Đọc `resources/patterns/unit_test.md`
|
|
268
|
-
- **Integration test** → Đọc `resources/patterns/integration_test.md`
|
|
269
|
-
- **End-to-end test** → Đọc `resources/patterns/e2e_test.md`
|
|
270
|
-
|
|
271
|
-
## Bước 3: Sinh test code
|
|
272
|
-
1. Kết hợp strategy + pattern để sinh test phù hợp.
|
|
273
|
-
2. Đảm bảo test tuân thủ conventions của dự án hiện tại.
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Quy tắc cho Adaptive Skills
|
|
277
|
-
|
|
278
|
-
- ✅ **Decision tree rõ ràng** — Điều kiện nào → Hành vi nào
|
|
279
|
-
- ✅ Mỗi strategy/pattern là **file riêng** (dễ mở rộng)
|
|
280
|
-
- ✅ Luôn có **fallback** strategy (generic) cho trường hợp không nhận diện được
|
|
281
|
-
- ❌ KHÔNG để logic rẽ nhánh quá 3 cấp (quá phức tạp → tách thành nhiều skill)
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Pattern 4: Skill có Validation & Guardrails (Safety-First Skills)
|
|
286
|
-
|
|
287
|
-
### Khi nào dùng?
|
|
288
|
-
|
|
289
|
-
Khi skill thao tác với **dữ liệu nhạy cảm** hoặc **hệ thống production** (database, deployment, API keys...).
|
|
290
|
-
|
|
291
|
-
### Cấu trúc
|
|
292
|
-
|
|
293
|
-
```
|
|
294
|
-
skills/db-query-assistant/
|
|
295
|
-
├── SKILL.md
|
|
296
|
-
└── resources/
|
|
297
|
-
├── allowed_operations.md ← Danh sách thao tác được phép
|
|
298
|
-
├── dangerous_patterns.md ← Các pattern nguy hiểm cần chặn
|
|
299
|
-
└── review_checklist.md ← Checklist review trước khi chạy
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### Cách viết guardrails trong SKILL.md
|
|
303
|
-
|
|
304
|
-
```markdown
|
|
305
|
-
# Instructions
|
|
306
|
-
|
|
307
|
-
## Bước 0: Safety Check (BẮT BUỘC trước mọi thao tác)
|
|
308
|
-
1. Đọc `resources/dangerous_patterns.md` để biết cần chặn gì.
|
|
309
|
-
2. Kiểm tra query/lệnh của user có chứa pattern nguy hiểm không:
|
|
310
|
-
- `DROP TABLE`, `DELETE FROM` (không có WHERE)
|
|
311
|
-
- `TRUNCATE`, `ALTER TABLE ... DROP COLUMN`
|
|
312
|
-
- Bất kỳ thao tác nào ảnh hưởng >1000 rows
|
|
313
|
-
3. Nếu phát hiện pattern nguy hiểm → **DỪNG LẠI** → Cảnh báo user → Yêu cầu xác nhận.
|
|
314
|
-
|
|
315
|
-
## Bước 1: Xác nhận môi trường
|
|
316
|
-
- "Đây là môi trường **production** hay **development**?"
|
|
317
|
-
- Nếu production → Bật chế độ **tối thận trọng** (mọi thao tác phải confirm).
|
|
318
|
-
|
|
319
|
-
# Constraints
|
|
320
|
-
- 🚫 TUYỆT ĐỐI KHÔNG chạy DELETE/DROP trên production mà không có backup
|
|
321
|
-
- 🚫 TUYỆT ĐỐI KHÔNG hiển thị credentials/API keys trong output
|
|
322
|
-
- ⚠️ Mọi query thay đổi dữ liệu PHẢI chạy trong transaction
|
|
323
|
-
- ⚠️ Mọi query PHẢI có LIMIT (tối đa 1000 rows)
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
### Ví dụ `dangerous_patterns.md`
|
|
327
|
-
|
|
328
|
-
```markdown
|
|
329
|
-
# ⚠️ Dangerous SQL Patterns — Phải chặn hoặc cảnh báo
|
|
330
|
-
|
|
331
|
-
## 🔴 Cấm tuyệt đối (Block)
|
|
332
|
-
| Pattern | Lý do |
|
|
333
|
-
|---|---|
|
|
334
|
-
| `DROP TABLE` | Mất toàn bộ bảng, không khôi phục được |
|
|
335
|
-
| `DROP DATABASE` | Mất toàn bộ database |
|
|
336
|
-
| `TRUNCATE TABLE` | Xóa toàn bộ dữ liệu, không log |
|
|
337
|
-
| `DELETE FROM table` (không WHERE) | Xóa toàn bộ dữ liệu |
|
|
338
|
-
| `UPDATE table SET` (không WHERE) | Sửa toàn bộ dữ liệu |
|
|
339
|
-
|
|
340
|
-
## 🟡 Cần xác nhận (Confirm)
|
|
341
|
-
| Pattern | Lý do |
|
|
342
|
-
|---|---|
|
|
343
|
-
| `ALTER TABLE ... DROP COLUMN` | Mất dữ liệu cột |
|
|
344
|
-
| `DELETE FROM ... WHERE` (>100 rows) | Ảnh hưởng nhiều dữ liệu |
|
|
345
|
-
| `GRANT ALL PRIVILEGES` | Rủi ro bảo mật |
|
|
346
|
-
| Bất kỳ DDL nào trên production | Thay đổi cấu trúc |
|
|
347
|
-
|
|
348
|
-
## 🟢 An toàn (Allow)
|
|
349
|
-
| Pattern | Ghi chú |
|
|
350
|
-
|---|---|
|
|
351
|
-
| `SELECT` (có LIMIT) | Chỉ đọc dữ liệu |
|
|
352
|
-
| `INSERT INTO` (1 row) | Thêm 1 dòng |
|
|
353
|
-
| `CREATE INDEX` | Cải thiện performance |
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
### Quy tắc cho Safety-First Skills
|
|
357
|
-
|
|
358
|
-
- ✅ **Bước 0 luôn là Safety Check** — Chạy TRƯỚC mọi thứ
|
|
359
|
-
- ✅ Phân biệt rõ **Block** / **Confirm** / **Allow**
|
|
360
|
-
- ✅ Log mọi thao tác nguy hiểm
|
|
361
|
-
- ❌ KHÔNG BAO GIỜ auto-run thao tác destructive
|
|
362
|
-
- ❌ KHÔNG BAO GIỜ hiển thị secrets/credentials
|
|
363
|
-
|
|
364
|
-
---
|
|
365
|
-
|
|
366
|
-
## Pattern 5: Skill có Pipeline (Multi-Step Workflow Skills)
|
|
367
|
-
|
|
368
|
-
### Khi nào dùng?
|
|
369
|
-
|
|
370
|
-
Khi skill cần thực hiện **chuỗi thao tác tuần tự**, mỗi bước phụ thuộc vào kết quả bước trước.
|
|
371
|
-
|
|
372
|
-
### Cấu trúc
|
|
373
|
-
|
|
374
|
-
```
|
|
375
|
-
skills/deploy-pipeline/
|
|
376
|
-
├── SKILL.md
|
|
377
|
-
├── scripts/
|
|
378
|
-
│ ├── step1_lint.sh ← Lint code
|
|
379
|
-
│ ├── step2_test.sh ← Chạy test
|
|
380
|
-
│ ├── step3_build.sh ← Build production
|
|
381
|
-
│ └── step4_deploy.sh ← Deploy lên server
|
|
382
|
-
└── resources/
|
|
383
|
-
├── pipeline_config.md ← Cấu hình pipeline
|
|
384
|
-
└── rollback_guide.md ← Hướng dẫn rollback
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
### Cách viết pipeline trong SKILL.md
|
|
388
|
-
|
|
389
|
-
```markdown
|
|
390
|
-
# Instructions
|
|
391
|
-
|
|
392
|
-
## Pipeline: Lint → Test → Build → Deploy
|
|
393
|
-
|
|
394
|
-
### Stage 1: Lint Check ✅❌
|
|
395
|
-
1. Chạy `scripts/step1_lint.sh`.
|
|
396
|
-
2. **Nếu PASS** → Chuyển sang Stage 2.
|
|
397
|
-
3. **Nếu FAIL** → Dừng lại, báo lỗi, đề xuất fix.
|
|
398
|
-
|
|
399
|
-
### Stage 2: Run Tests ✅❌
|
|
400
|
-
1. Chạy `scripts/step2_test.sh`.
|
|
401
|
-
2. **Nếu PASS** → Chuyển sang Stage 3.
|
|
402
|
-
3. **Nếu FAIL** → Dừng lại, hiển thị test failures.
|
|
403
|
-
|
|
404
|
-
### Stage 3: Build Production ✅❌
|
|
405
|
-
1. Chạy `scripts/step3_build.sh`.
|
|
406
|
-
2. **Nếu PASS** → Hỏi user: "Sẵn sàng deploy không?"
|
|
407
|
-
3. **Nếu FAIL** → Phân tích build error, đề xuất fix.
|
|
408
|
-
|
|
409
|
-
### Stage 4: Deploy (Cần xác nhận) ✅❌
|
|
410
|
-
1. ⚠️ **BẮT BUỘC** user confirm trước khi deploy.
|
|
411
|
-
2. Chạy `scripts/step4_deploy.sh`.
|
|
412
|
-
3. **Nếu PASS** → Báo thành công, cung cấp URL.
|
|
413
|
-
4. **Nếu FAIL** → Đọc `resources/rollback_guide.md`, thực hiện rollback.
|
|
414
|
-
|
|
415
|
-
## Progress Tracking
|
|
416
|
-
In ra trạng thái pipeline sau mỗi stage:
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
Pipeline Status:
|
|
420
|
-
[✅] Stage 1: Lint — PASSED (0 errors)
|
|
421
|
-
[✅] Stage 2: Test — PASSED (42/42 tests)
|
|
422
|
-
[🔄] Stage 3: Build — IN PROGRESS...
|
|
423
|
-
[⏳] Stage 4: Deploy — WAITING
|
|
424
|
-
|
|
425
|
-
```
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
### Quy tắc cho Pipeline Skills
|
|
429
|
-
|
|
430
|
-
- ✅ Mỗi stage phải có **PASS/FAIL** rõ ràng
|
|
431
|
-
- ✅ FAIL ở stage nào → **DỪNG ngay** (không chạy stage tiếp)
|
|
432
|
-
- ✅ Stage cuối (destructive) luôn cần **user confirm**
|
|
433
|
-
- ✅ Luôn có **rollback plan**
|
|
434
|
-
- ❌ KHÔNG skip stage (trừ khi user explicitly yêu cầu)
|
|
435
|
-
- ❌ KHÔNG auto-deploy mà không hỏi
|
|
436
|
-
|
|
437
|
-
---
|
|
438
|
-
|
|
439
|
-
## Pattern 6: Skill kế thừa (Composable Skills)
|
|
440
|
-
|
|
441
|
-
### Khi nào dùng?
|
|
442
|
-
|
|
443
|
-
Khi skill mới có thể **tận dụng** skill đã có, tránh viết lại logic.
|
|
444
|
-
|
|
445
|
-
### Cách hoạt động
|
|
446
|
-
|
|
447
|
-
Skill B có thể **gọi** Skill A bằng cách hướng dẫn AI:
|
|
448
|
-
|
|
449
|
-
```markdown
|
|
450
|
-
# Instructions (Skill B: full-deploy)
|
|
451
|
-
1. Đầu tiên, kích hoạt skill `code-reviewer` để review code.
|
|
452
|
-
2. Nếu review PASS, kích hoạt skill `test-runner` để chạy test.
|
|
453
|
-
3. Nếu test PASS, tiếp tục với logic deploy của skill này.
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
### Quy tắc cho Composable Skills
|
|
457
|
-
|
|
458
|
-
- ✅ Ghi rõ **tên skill** cần kích hoạt
|
|
459
|
-
- ✅ Ghi rõ **điều kiện** kích hoạt (khi nào gọi, khi nào skip)
|
|
460
|
-
- ✅ Mỗi skill con phải **hoạt động độc lập** được
|
|
461
|
-
- ❌ KHÔNG tạo vòng lặp (A gọi B gọi A)
|
|
462
|
-
- ❌ KHÔNG gọi quá 3 skill con (quá phức tạp → cần tách lại)
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
## 📊 Bảng tổng hợp: Chọn Pattern nào?
|
|
467
|
-
|
|
468
|
-
| Tình huống | Pattern phù hợp |
|
|
469
|
-
|---|---|
|
|
470
|
-
| Cần chạy lệnh/xử lý file | **Pattern 1:** Script Skills |
|
|
471
|
-
| Cần nhiều file mẫu/template | **Pattern 2:** Multi-Resource |
|
|
472
|
-
| Hành vi thay đổi theo ngữ cảnh | **Pattern 3:** Context-Aware |
|
|
473
|
-
| Thao tác nhạy cảm/production | **Pattern 4:** Safety-First |
|
|
474
|
-
| Chuỗi bước tuần tự | **Pattern 5:** Pipeline |
|
|
475
|
-
| Tận dụng skill có sẵn | **Pattern 6:** Composable |
|
|
476
|
-
|
|
477
|
-
---
|
|
478
|
-
|
|
479
|
-
## 💡 Kết hợp nhiều Pattern
|
|
480
|
-
|
|
481
|
-
Một skill phức tạp có thể **kết hợp** nhiều pattern:
|
|
482
|
-
|
|
483
|
-
```
|
|
484
|
-
skills/advanced-deployer/
|
|
485
|
-
├── SKILL.md ← Pipeline (P5) + Safety (P4) + Adaptive (P3)
|
|
486
|
-
├── scripts/ ← Script (P1)
|
|
487
|
-
│ ├── lint.sh
|
|
488
|
-
│ ├── test.sh
|
|
489
|
-
│ └── deploy.sh
|
|
490
|
-
└── resources/ ← Multi-Resource (P2)
|
|
491
|
-
├── strategies/
|
|
492
|
-
│ ├── vercel_deploy.md
|
|
493
|
-
│ ├── aws_deploy.md
|
|
494
|
-
│ └── docker_deploy.md
|
|
495
|
-
├── dangerous_patterns.md ← Safety guardrails
|
|
496
|
-
└── rollback_guide.md
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
> ⚠️ **Nguyên tắc vàng:** Dù kết hợp bao nhiêu pattern, skill vẫn phải làm **DUY NHẤT 1 VIỆC** (deploy). Nếu skill bắt đầu "ôm đồm" → tách thành nhiều skill + dùng Pattern 6 (Composable).
|