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.
Files changed (190) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +29 -14
  3. package/commands/demo.md +1 -1
  4. package/dist/context-bus.js +70 -0
  5. package/dist/context-db.js +265 -0
  6. package/dist/continuity.js +12 -0
  7. package/dist/file-watcher.js +79 -0
  8. package/dist/index.js +152 -1
  9. package/dist/l0-indexer.js +158 -0
  10. package/dist/mcp-context-server.js +400 -0
  11. package/dist/migrate-json-to-sqlite.js +126 -0
  12. package/dist/skill-chain.js +19 -3
  13. package/dist/token-budget.js +108 -0
  14. package/dist/uri-resolver.js +203 -0
  15. package/package.json +7 -1
  16. package/skills/_shared/helpers.md +50 -14
  17. package/skills/cm-autopilot/SKILL.md +29 -0
  18. package/skills/cm-autopilot/scripts/autopilot.py +190 -0
  19. package/skills/cm-continuity/SKILL.md +90 -28
  20. package/skills/cm-quality-gate/SKILL.md +11 -1
  21. package/skills/cm-safe-deploy/SKILL.md +38 -2
  22. package/skills/cm-security-gate/SKILL.md +158 -34
  23. package/skills/cm-skill-chain/SKILL.md +47 -1
  24. package/skills/cm-start/SKILL.md +11 -2
  25. package/skills/cm-test-gate/SKILL.md +3 -0
  26. package/skills/boxme-git-config/SKILL.md +0 -56
  27. package/skills/boxme-local-dev/SKILL.md +0 -66
  28. package/skills/jobs-to-be-done/SKILL.md +0 -266
  29. package/skills/jobs-to-be-done/references/case-studies.md +0 -154
  30. package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
  31. package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
  32. package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
  33. package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
  34. package/skills/marketplace-report-crawler/SKILL.md +0 -176
  35. package/skills/marketplace-report-crawler/config/accounts.json +0 -41
  36. package/skills/marketplace-report-crawler/config/report-types.json +0 -422
  37. package/skills/marketplace-report-crawler/config/sessions.json +0 -3
  38. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
  39. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
  40. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
  41. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
  42. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
  43. package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
  44. package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
  45. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
  46. package/skills/medical-research/SKILL.md +0 -194
  47. package/skills/medical-research/scripts/evidence_checker.py +0 -288
  48. package/skills/mom-test/SKILL.md +0 -267
  49. package/skills/mom-test/references/avoiding-bad-data.md +0 -221
  50. package/skills/mom-test/references/case-studies.md +0 -306
  51. package/skills/mom-test/references/commitment-advancement.md +0 -219
  52. package/skills/mom-test/references/finding-conversations.md +0 -251
  53. package/skills/mom-test/references/processing-learning.md +0 -256
  54. package/skills/mom-test/references/question-patterns.md +0 -198
  55. package/skills/pandasai-analytics/SKILL.md +0 -251
  56. package/skills/release-it/SKILL.md +0 -235
  57. package/skills/release-it/references/anti-patterns.md +0 -279
  58. package/skills/release-it/references/capacity-planning.md +0 -285
  59. package/skills/release-it/references/chaos-engineering.md +0 -325
  60. package/skills/release-it/references/deployment-strategies.md +0 -331
  61. package/skills/release-it/references/observability.md +0 -301
  62. package/skills/release-it/references/stability-patterns.md +0 -355
  63. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
  64. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
  65. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
  66. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
  67. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
  68. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
  69. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
  70. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
  71. package/skills/skill-creator-ultra/README.md +0 -1242
  72. package/skills/skill-creator-ultra/SKILL.md +0 -388
  73. package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
  74. package/skills/skill-creator-ultra/agents/comparator.md +0 -202
  75. package/skills/skill-creator-ultra/agents/grader.md +0 -223
  76. package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
  77. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
  78. package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
  79. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
  80. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
  81. package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
  82. package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
  83. package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
  84. package/skills/skill-creator-ultra/install.ps1 +0 -289
  85. package/skills/skill-creator-ultra/install.sh +0 -313
  86. package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
  87. package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
  88. package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
  89. package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
  90. package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
  91. package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
  92. package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
  93. package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
  94. package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
  95. package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
  96. package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
  97. package/skills/skill-creator-ultra/resources/checklist.md +0 -243
  98. package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
  99. package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
  100. package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
  101. package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
  102. package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
  103. package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
  104. package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
  105. package/skills/skill-creator-ultra/resources/schemas.md +0 -430
  106. package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
  107. package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
  108. package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
  109. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
  110. package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
  111. package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
  112. package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
  113. package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
  114. package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
  115. package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
  116. package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
  117. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
  118. package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
  119. package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
  120. package/skills/tailwind-mastery/SKILL.md +0 -229
  121. package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
  122. package/skills/vercel-react-best-practices/README.md +0 -123
  123. package/skills/vercel-react-best-practices/SKILL.md +0 -143
  124. package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  125. package/skills/vercel-react-best-practices/rules/_template.md +0 -28
  126. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  127. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  128. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  129. package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  130. package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  131. package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  132. package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  133. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  134. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  135. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  136. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  137. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  138. package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  139. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  140. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  141. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  142. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  143. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  144. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  145. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  146. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  147. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  148. package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  149. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  150. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  151. package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  152. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  153. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  154. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  155. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  156. package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  157. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  158. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  159. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  160. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  161. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  162. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  163. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  164. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  165. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  166. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  167. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  168. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  169. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  170. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  171. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  172. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  173. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  174. package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  175. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  176. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  177. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  178. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  179. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  180. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  181. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  182. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  183. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  184. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  185. package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  186. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  187. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
  188. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  189. package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  190. 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).