codymaster 4.4.5 → 4.5.2

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