heraspec 0.1.14 → 0.1.15

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 (174) hide show
  1. package/LICENSE +187 -0
  2. package/README.md +94 -95
  3. package/bin/heraspec.js +195 -80
  4. package/bin/heraspec.js.map +2 -2
  5. package/dist/core/templates/skills/README.md +41 -38
  6. package/dist/core/templates/skills/campaign-plan/skill.md +76 -0
  7. package/dist/core/templates/skills/campaign-plan/skill.vi.md +76 -0
  8. package/dist/core/templates/skills/campaign-plan-skill.md +76 -0
  9. package/dist/core/templates/skills/campaign-plan-skill.vi.md +76 -0
  10. package/dist/core/templates/skills/code-review/skill.md +70 -0
  11. package/dist/core/templates/skills/code-review/skill.vi.md +70 -0
  12. package/dist/core/templates/skills/code-review-skill.md +70 -0
  13. package/dist/core/templates/skills/code-review-skill.vi.md +70 -0
  14. package/dist/core/templates/skills/content-creation/skill.md +69 -0
  15. package/dist/core/templates/skills/content-creation/skill.vi.md +69 -0
  16. package/dist/core/templates/skills/content-creation-skill.md +69 -0
  17. package/dist/core/templates/skills/content-creation-skill.vi.md +69 -0
  18. package/dist/core/templates/skills/content-optimization/skill.md +104 -0
  19. package/dist/core/templates/skills/debug/skill.md +69 -0
  20. package/dist/core/templates/skills/debug/skill.vi.md +69 -0
  21. package/dist/core/templates/skills/debug-skill.md +69 -0
  22. package/dist/core/templates/skills/debug-skill.vi.md +69 -0
  23. package/dist/core/templates/skills/deploy-documentation/skill.md +408 -0
  24. package/dist/core/templates/skills/design-system/knowledge/design-systems/airbnb/DESIGN.md +246 -0
  25. package/dist/core/templates/skills/design-system/knowledge/design-systems/airtable/DESIGN.md +89 -0
  26. package/dist/core/templates/skills/design-system/knowledge/design-systems/apple/DESIGN.md +313 -0
  27. package/dist/core/templates/skills/design-system/knowledge/design-systems/bmw/DESIGN.md +180 -0
  28. package/dist/core/templates/skills/design-system/knowledge/design-systems/cal/DESIGN.md +259 -0
  29. package/dist/core/templates/skills/design-system/knowledge/design-systems/claude/DESIGN.md +312 -0
  30. package/dist/core/templates/skills/design-system/knowledge/design-systems/clay/DESIGN.md +304 -0
  31. package/dist/core/templates/skills/design-system/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
  32. package/dist/core/templates/skills/design-system/knowledge/design-systems/cohere/DESIGN.md +266 -0
  33. package/dist/core/templates/skills/design-system/knowledge/design-systems/coinbase/DESIGN.md +129 -0
  34. package/dist/core/templates/skills/design-system/knowledge/design-systems/composio/DESIGN.md +307 -0
  35. package/dist/core/templates/skills/design-system/knowledge/design-systems/cursor/DESIGN.md +309 -0
  36. package/dist/core/templates/skills/design-system/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
  37. package/dist/core/templates/skills/design-system/knowledge/design-systems/expo/DESIGN.md +281 -0
  38. package/dist/core/templates/skills/design-system/knowledge/design-systems/figma/DESIGN.md +220 -0
  39. package/dist/core/templates/skills/design-system/knowledge/design-systems/framer/DESIGN.md +246 -0
  40. package/dist/core/templates/skills/design-system/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
  41. package/dist/core/templates/skills/design-system/knowledge/design-systems/ibm/DESIGN.md +332 -0
  42. package/dist/core/templates/skills/design-system/knowledge/design-systems/index.json +72 -0
  43. package/dist/core/templates/skills/design-system/knowledge/design-systems/intercom/DESIGN.md +146 -0
  44. package/dist/core/templates/skills/design-system/knowledge/design-systems/kraken/DESIGN.md +125 -0
  45. package/dist/core/templates/skills/design-system/knowledge/design-systems/linear.app/DESIGN.md +367 -0
  46. package/dist/core/templates/skills/design-system/knowledge/design-systems/lovable/DESIGN.md +298 -0
  47. package/dist/core/templates/skills/design-system/knowledge/design-systems/minimax/DESIGN.md +257 -0
  48. package/dist/core/templates/skills/design-system/knowledge/design-systems/mintlify/DESIGN.md +326 -0
  49. package/dist/core/templates/skills/design-system/knowledge/design-systems/miro/DESIGN.md +108 -0
  50. package/dist/core/templates/skills/design-system/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
  51. package/dist/core/templates/skills/design-system/knowledge/design-systems/mongodb/DESIGN.md +266 -0
  52. package/dist/core/templates/skills/design-system/knowledge/design-systems/notion/DESIGN.md +309 -0
  53. package/dist/core/templates/skills/design-system/knowledge/design-systems/nvidia/DESIGN.md +293 -0
  54. package/dist/core/templates/skills/design-system/knowledge/design-systems/ollama/DESIGN.md +267 -0
  55. package/dist/core/templates/skills/design-system/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
  56. package/dist/core/templates/skills/design-system/knowledge/design-systems/pinterest/DESIGN.md +230 -0
  57. package/dist/core/templates/skills/design-system/knowledge/design-systems/posthog/DESIGN.md +256 -0
  58. package/dist/core/templates/skills/design-system/knowledge/design-systems/raycast/DESIGN.md +268 -0
  59. package/dist/core/templates/skills/design-system/knowledge/design-systems/replicate/DESIGN.md +261 -0
  60. package/dist/core/templates/skills/design-system/knowledge/design-systems/resend/DESIGN.md +303 -0
  61. package/dist/core/templates/skills/design-system/knowledge/design-systems/revolut/DESIGN.md +185 -0
  62. package/dist/core/templates/skills/design-system/knowledge/design-systems/runwayml/DESIGN.md +244 -0
  63. package/dist/core/templates/skills/design-system/knowledge/design-systems/sanity/DESIGN.md +357 -0
  64. package/dist/core/templates/skills/design-system/knowledge/design-systems/sentry/DESIGN.md +262 -0
  65. package/dist/core/templates/skills/design-system/knowledge/design-systems/spacex/DESIGN.md +194 -0
  66. package/dist/core/templates/skills/design-system/knowledge/design-systems/spotify/DESIGN.md +246 -0
  67. package/dist/core/templates/skills/design-system/knowledge/design-systems/stripe/DESIGN.md +322 -0
  68. package/dist/core/templates/skills/design-system/knowledge/design-systems/supabase/DESIGN.md +255 -0
  69. package/dist/core/templates/skills/design-system/knowledge/design-systems/superhuman/DESIGN.md +252 -0
  70. package/dist/core/templates/skills/design-system/knowledge/design-systems/together.ai/DESIGN.md +263 -0
  71. package/dist/core/templates/skills/design-system/knowledge/design-systems/uber/DESIGN.md +295 -0
  72. package/dist/core/templates/skills/design-system/knowledge/design-systems/vercel/DESIGN.md +310 -0
  73. package/dist/core/templates/skills/design-system/knowledge/design-systems/voltagent/DESIGN.md +323 -0
  74. package/dist/core/templates/skills/design-system/knowledge/design-systems/warp/DESIGN.md +253 -0
  75. package/dist/core/templates/skills/design-system/knowledge/design-systems/webflow/DESIGN.md +92 -0
  76. package/dist/core/templates/skills/design-system/knowledge/design-systems/wise/DESIGN.md +173 -0
  77. package/dist/core/templates/skills/design-system/knowledge/design-systems/x.ai/DESIGN.md +257 -0
  78. package/dist/core/templates/skills/design-system/knowledge/design-systems/zapier/DESIGN.md +328 -0
  79. package/dist/core/templates/skills/design-system/skill.md +176 -0
  80. package/dist/core/templates/skills/documents/skill.md +104 -0
  81. package/dist/core/templates/skills/e2e-test/skill.md +119 -0
  82. package/dist/core/templates/skills/email-sequence/skill.md +68 -0
  83. package/dist/core/templates/skills/email-sequence/skill.vi.md +68 -0
  84. package/dist/core/templates/skills/email-sequence-skill.md +68 -0
  85. package/dist/core/templates/skills/email-sequence-skill.vi.md +68 -0
  86. package/dist/core/templates/skills/git-embed/skill.md +57 -0
  87. package/dist/core/templates/skills/integration-test/skill.md +118 -0
  88. package/dist/core/templates/skills/knowledge/README.md +63 -63
  89. package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -72
  90. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -27
  91. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -137
  92. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -39
  93. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +207 -207
  94. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -51
  95. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -369
  96. package/dist/core/templates/skills/knowledge/index.json +65 -65
  97. package/dist/core/templates/skills/perfex-module/module-codebase/skill.md +110 -0
  98. package/dist/core/templates/skills/project-memory/skill.md +222 -0
  99. package/dist/core/templates/skills/project-memory/skill.vi.md +223 -0
  100. package/dist/core/templates/skills/seo-audit/skill.md +75 -0
  101. package/dist/core/templates/skills/seo-audit/skill.vi.md +75 -0
  102. package/dist/core/templates/skills/seo-audit-skill.md +75 -0
  103. package/dist/core/templates/skills/seo-audit-skill.vi.md +75 -0
  104. package/dist/core/templates/skills/smart-explore/skill.md +141 -0
  105. package/dist/core/templates/skills/sourcecode-analyzer/skill.md +210 -0
  106. package/dist/core/templates/skills/sourcecode-analyzer/skill.vi.md +210 -0
  107. package/dist/core/templates/skills/spec-writer/skill.md +61 -0
  108. package/dist/core/templates/skills/spec-writer/skill.vi.md +61 -0
  109. package/dist/core/templates/skills/spec-writer-skill.md +61 -0
  110. package/dist/core/templates/skills/spec-writer-skill.vi.md +61 -0
  111. package/dist/core/templates/skills/sql-queries/skill.md +67 -0
  112. package/dist/core/templates/skills/sql-queries/skill.vi.md +67 -0
  113. package/dist/core/templates/skills/sql-queries-skill.md +67 -0
  114. package/dist/core/templates/skills/sql-queries-skill.vi.md +67 -0
  115. package/dist/core/templates/skills/suggestion/skill.md +118 -0
  116. package/dist/core/templates/skills/system-design/skill.md +70 -0
  117. package/dist/core/templates/skills/system-design/skill.vi.md +70 -0
  118. package/dist/core/templates/skills/system-design-skill.md +70 -0
  119. package/dist/core/templates/skills/system-design-skill.vi.md +70 -0
  120. package/dist/core/templates/skills/tech-debt/skill.md +70 -0
  121. package/dist/core/templates/skills/tech-debt/skill.vi.md +70 -0
  122. package/dist/core/templates/skills/tech-debt-skill.md +70 -0
  123. package/dist/core/templates/skills/tech-debt-skill.vi.md +70 -0
  124. package/dist/core/templates/skills/ui-ux/data/charts.csv +26 -0
  125. package/dist/core/templates/skills/ui-ux/data/colors.csv +97 -0
  126. package/dist/core/templates/skills/ui-ux/data/design-systems.csv +54 -0
  127. package/dist/core/templates/skills/ui-ux/data/landing.csv +31 -0
  128. package/dist/core/templates/skills/ui-ux/data/pages-proposed.csv +22 -0
  129. package/dist/core/templates/skills/ui-ux/data/pages.csv +10 -0
  130. package/dist/core/templates/skills/ui-ux/data/products.csv +97 -0
  131. package/dist/core/templates/skills/ui-ux/data/prompts.csv +24 -0
  132. package/dist/core/templates/skills/ui-ux/data/stacks/flutter.csv +53 -0
  133. package/dist/core/templates/skills/ui-ux/data/stacks/html-tailwind.csv +56 -0
  134. package/dist/core/templates/skills/ui-ux/data/stacks/nextjs.csv +53 -0
  135. package/dist/core/templates/skills/ui-ux/data/stacks/react-native.csv +52 -0
  136. package/dist/core/templates/skills/ui-ux/data/stacks/react.csv +54 -0
  137. package/dist/core/templates/skills/ui-ux/data/stacks/svelte.csv +54 -0
  138. package/dist/core/templates/skills/ui-ux/data/stacks/swiftui.csv +51 -0
  139. package/dist/core/templates/skills/ui-ux/data/stacks/vue.csv +50 -0
  140. package/dist/core/templates/skills/ui-ux/data/styles.csv +59 -0
  141. package/dist/core/templates/skills/ui-ux/data/typography.csv +58 -0
  142. package/dist/core/templates/skills/ui-ux/data/ux-guidelines.csv +100 -0
  143. package/dist/core/templates/skills/ui-ux/scripts/CODE_EXPLANATION.md +394 -0
  144. package/dist/core/templates/skills/ui-ux/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -0
  145. package/dist/core/templates/skills/ui-ux/scripts/SEARCH_MODES_GUIDE.md +238 -0
  146. package/dist/core/templates/skills/ui-ux/scripts/core.py +391 -0
  147. package/dist/core/templates/skills/ui-ux/scripts/search.py +73 -0
  148. package/dist/core/templates/skills/ui-ux/skill.md +595 -0
  149. package/dist/core/templates/skills/ui-ux/templates/accessibility-checklist.md +40 -0
  150. package/dist/core/templates/skills/ui-ux/templates/example-prompt-full-theme.md +333 -0
  151. package/dist/core/templates/skills/ui-ux/templates/page-types-guide.md +338 -0
  152. package/dist/core/templates/skills/ui-ux/templates/pages-proposed-summary.md +273 -0
  153. package/dist/core/templates/skills/ui-ux/templates/pre-delivery-checklist.md +42 -0
  154. package/dist/core/templates/skills/ui-ux/templates/prompt-template-full-theme.md +313 -0
  155. package/dist/core/templates/skills/ui-ux/templates/responsive-design.md +40 -0
  156. package/dist/core/templates/skills/unit-test/skill.md +111 -0
  157. package/dist/core/templates/skills/wordpress/plugin-check/skill.md +151 -0
  158. package/dist/core/templates/skills/wordpress/plugin-directory/skill.md +396 -0
  159. package/dist/core/templates/skills/wordpress/plugin-standard/skill.md +100 -0
  160. package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-dashboard.php +47 -0
  161. package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-settings.php +60 -0
  162. package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-css.css +22 -0
  163. package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-js.js +15 -0
  164. package/dist/core/templates/skills/wordpress/plugin-standard/templates/plugin-main.php +169 -0
  165. package/dist/core/templates/skills/wordpress/plugin-standard/templates/readme.txt +41 -0
  166. package/dist/core/templates/skills/wordpress/plugin-standard/templates/uninstall.php +21 -0
  167. package/dist/core/templates/skills/wordpress/ux-element/skill.md +83 -0
  168. package/dist/core/templates/skills/wordpress/ux-element/templates/Controller.php +50 -0
  169. package/dist/core/templates/skills/wordpress/ux-element/templates/Shortcode.php +23 -0
  170. package/dist/core/templates/skills/wordpress/ux-element/templates/Template.html +20 -0
  171. package/dist/core/templates/skills/wordpress/ux-element/templates/Thumbnail.svg +8 -0
  172. package/dist/core/templates/skills/wordpress/ux-element/templates/View.php +21 -0
  173. package/dist/index.js +195 -79
  174. package/package.json +1 -1
@@ -0,0 +1,67 @@
1
+ # Skill: SQL Queries (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ Write correct, readable, and highly performant SQL queries across all major database systems and data warehouse dialects (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks SQL).
6
+
7
+ ## When to Use
8
+
9
+ - When writing complex analytical queries involving CTEs, window functions, and cohort retention calculations.
10
+ - When optimizing slow-running SQL queries or translating queries between database dialects.
11
+ - When designing data models, schema migrations, and indexing strategies.
12
+
13
+ ## Step-by-Step Process
14
+
15
+ ### Step 1: Analyze Schema & Dialect
16
+ - Identify the target database engine (PostgreSQL, BigQuery, Snowflake, etc.).
17
+ - Review available table schemas, keys, indexes, and partitioning keys.
18
+
19
+ ### Step 2: Structure Using CTEs
20
+ - Break down complex logic into small, readable Common Table Expressions (CTEs) representing logical steps.
21
+
22
+ ### Step 3: Write Dialect-Specific Logic
23
+ - Implement date/time arithmetic, string manipulation, JSON/array functions, and window functions using syntax specific to the selected dialect.
24
+
25
+ ### Step 4: Performance Optimization
26
+ - Apply database-specific optimization rules:
27
+ - PostgreSQL: Use `EXPLAIN ANALYZE`, index columns, prefer `EXISTS` over `IN` for subqueries.
28
+ - BigQuery: Minimize scanned bytes, partition on date columns, use `APPROX_COUNT_DISTINCT`.
29
+ - Snowflake: Leverage clustering keys, transient tables, and avoid unnecessary warehouse resizing.
30
+
31
+ ### Step 5: Test & Debug
32
+ - Verify correct handling of boundary cases (division by zero, null fields, type mismatch casting).
33
+
34
+ ## Required Input
35
+
36
+ - **Database Engine**: PostgreSQL, BigQuery, Snowflake, etc.
37
+ - **Goal/Query Purpose**: What analytical question the query should answer.
38
+ - **Table Schema**: Definitions, keys, and partitioning details.
39
+
40
+ ## Expected Output
41
+
42
+ - **Optimized SQL Code**: Full query code formatted using uppercase keywords and standard alignment.
43
+ - **Performance Explanation**: Brief details on partition pruning, indexing, or dialect-specific functions used to speed up the query.
44
+ - **Query Flow Explanation**: Explanation of each CTE step for developer readability.
45
+
46
+ ## Tone & Rules
47
+
48
+ - Write clean, modern SQL using uppercase for keywords (SELECT, FROM, WHERE, etc.).
49
+ - Always qualify column names with table aliases when using JOINs.
50
+ - Avoid nested subqueries; always prefer Common Table Expressions (CTEs) for readability.
51
+
52
+ ## Available Templates
53
+
54
+ - None
55
+
56
+ ## Available Scripts
57
+
58
+ - None
59
+
60
+ ## Examples
61
+
62
+ See `examples/` directory.
63
+
64
+ ## Links to Other Skills
65
+
66
+ - **documents**: Use to document database schemas or technical data flow maps.
67
+ - **debug**: Use to diagnose and resolve errors returned by SQL execution engines.
@@ -0,0 +1,67 @@
1
+ # Kỹ năng: Truy vấn SQL (SQL Queries) (Cross-Cutting)
2
+
3
+ ## Mục đích
4
+
5
+ Viết các câu truy vấn SQL chính xác, dễ đọc và đạt hiệu năng tối ưu trên các hệ thống cơ sở dữ liệu và kho dữ liệu phổ biến (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks SQL).
6
+
7
+ ## Khi nào sử dụng
8
+
9
+ - Khi viết các câu truy vấn phân tích phức tạp có sử dụng CTEs, hàm cửa sổ (window functions) và tính toán tỷ lệ giữ chân khách hàng (cohort retention).
10
+ - Khi tối ưu hóa các câu lệnh SQL chạy chậm hoặc chuyển đổi cú pháp truy vấn giữa các hệ quản trị cơ sở dữ liệu khác nhau.
11
+ - Khi thiết kế mô hình dữ liệu, viết mã dịch chuyển cấu trúc bảng (migrations) và lập chiến lược đánh chỉ mục (indexing).
12
+
13
+ ## Quy trình từng bước
14
+
15
+ ### Bước 1: Phân tích Lược đồ & Cú pháp Dialect
16
+ - Xác định hệ quản trị cơ sở dữ liệu đích (PostgreSQL, BigQuery, Snowflake, v.v...).
17
+ - Xem xét cấu trúc các bảng dữ liệu, khóa chính/phụ, chỉ mục (indexes) và khóa phân vùng (partition keys).
18
+
19
+ ### Bước 2: Cấu trúc hóa bằng CTEs
20
+ - Chia nhỏ logic phức tạp thành các biểu thức bảng chung (Common Table Expressions - CTEs) dễ đọc, đại diện cho từng bước xử lý dữ liệu tuần tự.
21
+
22
+ ### Bước 3: Viết Logic Đặc thù theo Dialect
23
+ - Triển khai các phép toán ngày/tháng, xử lý chuỗi văn bản, trích xuất JSON/mảng và các hàm cửa sổ sử dụng đúng cú pháp của cơ sở dữ liệu đích.
24
+
25
+ ### Bước 4: Tối ưu hóa Hiệu năng (Performance Optimization)
26
+ - Áp dụng các quy tắc tối ưu đặc thù:
27
+ - PostgreSQL: Sử dụng `EXPLAIN ANALYZE` để xem chi tiết thực thi, đánh chỉ mục các cột lọc/join, ưu tiên `EXISTS` thay vì `IN` cho truy vấn con.
28
+ - BigQuery: Giảm thiểu dung lượng quét dữ liệu (scanned bytes), lọc theo cột phân vùng date, sử dụng `APPROX_COUNT_DISTINCT`.
29
+ - Snowflake: Tận dụng khóa gom cụm (clustering keys), bảng tạm thời (transient tables) và tránh thay đổi kích thước warehouse không cần thiết.
30
+
31
+ ### Bước 5: Kiểm thử & Sửa lỗi
32
+ - Xác minh cách xử lý các trường hợp đặc biệt (chia cho 0, giá trị null, ép kiểu dữ liệu mismatch).
33
+
34
+ ## Input yêu cầu
35
+
36
+ - **Database Engine**: Loại cơ sở dữ liệu (PostgreSQL, BigQuery, Snowflake, v.v...).
37
+ - **Mục đích truy vấn**: Câu hỏi nghiệp vụ cần trả lời bằng dữ liệu.
38
+ - **Lược đồ bảng (Table Schema)**: Định nghĩa các bảng, kiểu dữ liệu, các trường khóa và chi tiết phân vùng.
39
+
40
+ ## Output mong đợi
41
+
42
+ - **Mã lệnh SQL Tối ưu**: Câu lệnh SQL hoàn chỉnh được định dạng viết hoa các từ khóa chính và căn lề chuẩn mực.
43
+ - **Giải thích Hiệu năng**: Mô tả ngắn gọn về phân vùng dữ liệu, chỉ mục hoặc hàm đặc thù được dùng để tăng tốc truy vấn.
44
+ - **Giải thích Luồng truy vấn**: Giải thích rõ ràng mục đích của từng bước CTE để nhà phát triển dễ đọc hiểu.
45
+
46
+ ## Giọng điệu & Quy tắc
47
+
48
+ - Viết mã SQL sạch, hiện đại bằng cách viết hoa các từ khóa chuẩn (SELECT, FROM, WHERE, v.v...).
49
+ - Luôn đặt tên viết tắt (alias) cho các bảng và gọi tên cột kèm alias khi thực hiện JOINs.
50
+ - Hạn chế viết các truy vấn con lồng nhau phức tạp; luôn ưu tiên sử dụng CTEs để giữ code sạch sẽ.
51
+
52
+ ## Templates có sẵn
53
+
54
+ - Không có
55
+
56
+ ## Scripts có sẵn
57
+
58
+ - Không có
59
+
60
+ ## Ví dụ
61
+
62
+ Xem thư mục `examples/`.
63
+
64
+ ## Liên kết với các kỹ năng khác
65
+
66
+ - **documents**: Sử dụng để viết tài liệu thiết kế cơ sở dữ liệu hoặc sơ đồ luồng dữ liệu kỹ thuật.
67
+ - **debug**: Sử dụng để chẩn đoán và khắc phục các lỗi cú pháp/logic do công cụ cơ sở dữ liệu trả về.
@@ -0,0 +1,67 @@
1
+ # Skill: SQL Queries (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ Write correct, readable, and highly performant SQL queries across all major database systems and data warehouse dialects (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks SQL).
6
+
7
+ ## When to Use
8
+
9
+ - When writing complex analytical queries involving CTEs, window functions, and cohort retention calculations.
10
+ - When optimizing slow-running SQL queries or translating queries between database dialects.
11
+ - When designing data models, schema migrations, and indexing strategies.
12
+
13
+ ## Step-by-Step Process
14
+
15
+ ### Step 1: Analyze Schema & Dialect
16
+ - Identify the target database engine (PostgreSQL, BigQuery, Snowflake, etc.).
17
+ - Review available table schemas, keys, indexes, and partitioning keys.
18
+
19
+ ### Step 2: Structure Using CTEs
20
+ - Break down complex logic into small, readable Common Table Expressions (CTEs) representing logical steps.
21
+
22
+ ### Step 3: Write Dialect-Specific Logic
23
+ - Implement date/time arithmetic, string manipulation, JSON/array functions, and window functions using syntax specific to the selected dialect.
24
+
25
+ ### Step 4: Performance Optimization
26
+ - Apply database-specific optimization rules:
27
+ - PostgreSQL: Use `EXPLAIN ANALYZE`, index columns, prefer `EXISTS` over `IN` for subqueries.
28
+ - BigQuery: Minimize scanned bytes, partition on date columns, use `APPROX_COUNT_DISTINCT`.
29
+ - Snowflake: Leverage clustering keys, transient tables, and avoid unnecessary warehouse resizing.
30
+
31
+ ### Step 5: Test & Debug
32
+ - Verify correct handling of boundary cases (division by zero, null fields, type mismatch casting).
33
+
34
+ ## Required Input
35
+
36
+ - **Database Engine**: PostgreSQL, BigQuery, Snowflake, etc.
37
+ - **Goal/Query Purpose**: What analytical question the query should answer.
38
+ - **Table Schema**: Definitions, keys, and partitioning details.
39
+
40
+ ## Expected Output
41
+
42
+ - **Optimized SQL Code**: Full query code formatted using uppercase keywords and standard alignment.
43
+ - **Performance Explanation**: Brief details on partition pruning, indexing, or dialect-specific functions used to speed up the query.
44
+ - **Query Flow Explanation**: Explanation of each CTE step for developer readability.
45
+
46
+ ## Tone & Rules
47
+
48
+ - Write clean, modern SQL using uppercase for keywords (SELECT, FROM, WHERE, etc.).
49
+ - Always qualify column names with table aliases when using JOINs.
50
+ - Avoid nested subqueries; always prefer Common Table Expressions (CTEs) for readability.
51
+
52
+ ## Available Templates
53
+
54
+ - None
55
+
56
+ ## Available Scripts
57
+
58
+ - None
59
+
60
+ ## Examples
61
+
62
+ See `examples/` directory.
63
+
64
+ ## Links to Other Skills
65
+
66
+ - **documents**: Use to document database schemas or technical data flow maps.
67
+ - **debug**: Use to diagnose and resolve errors returned by SQL execution engines.
@@ -0,0 +1,67 @@
1
+ # Kỹ năng: Truy vấn SQL (SQL Queries) (Cross-Cutting)
2
+
3
+ ## Mục đích
4
+
5
+ Viết các câu truy vấn SQL chính xác, dễ đọc và đạt hiệu năng tối ưu trên các hệ thống cơ sở dữ liệu và kho dữ liệu phổ biến (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks SQL).
6
+
7
+ ## Khi nào sử dụng
8
+
9
+ - Khi viết các câu truy vấn phân tích phức tạp có sử dụng CTEs, hàm cửa sổ (window functions) và tính toán tỷ lệ giữ chân khách hàng (cohort retention).
10
+ - Khi tối ưu hóa các câu lệnh SQL chạy chậm hoặc chuyển đổi cú pháp truy vấn giữa các hệ quản trị cơ sở dữ liệu khác nhau.
11
+ - Khi thiết kế mô hình dữ liệu, viết mã dịch chuyển cấu trúc bảng (migrations) và lập chiến lược đánh chỉ mục (indexing).
12
+
13
+ ## Quy trình từng bước
14
+
15
+ ### Bước 1: Phân tích Lược đồ & Cú pháp Dialect
16
+ - Xác định hệ quản trị cơ sở dữ liệu đích (PostgreSQL, BigQuery, Snowflake, v.v...).
17
+ - Xem xét cấu trúc các bảng dữ liệu, khóa chính/phụ, chỉ mục (indexes) và khóa phân vùng (partition keys).
18
+
19
+ ### Bước 2: Cấu trúc hóa bằng CTEs
20
+ - Chia nhỏ logic phức tạp thành các biểu thức bảng chung (Common Table Expressions - CTEs) dễ đọc, đại diện cho từng bước xử lý dữ liệu tuần tự.
21
+
22
+ ### Bước 3: Viết Logic Đặc thù theo Dialect
23
+ - Triển khai các phép toán ngày/tháng, xử lý chuỗi văn bản, trích xuất JSON/mảng và các hàm cửa sổ sử dụng đúng cú pháp của cơ sở dữ liệu đích.
24
+
25
+ ### Bước 4: Tối ưu hóa Hiệu năng (Performance Optimization)
26
+ - Áp dụng các quy tắc tối ưu đặc thù:
27
+ - PostgreSQL: Sử dụng `EXPLAIN ANALYZE` để xem chi tiết thực thi, đánh chỉ mục các cột lọc/join, ưu tiên `EXISTS` thay vì `IN` cho truy vấn con.
28
+ - BigQuery: Giảm thiểu dung lượng quét dữ liệu (scanned bytes), lọc theo cột phân vùng date, sử dụng `APPROX_COUNT_DISTINCT`.
29
+ - Snowflake: Tận dụng khóa gom cụm (clustering keys), bảng tạm thời (transient tables) và tránh thay đổi kích thước warehouse không cần thiết.
30
+
31
+ ### Bước 5: Kiểm thử & Sửa lỗi
32
+ - Xác minh cách xử lý các trường hợp đặc biệt (chia cho 0, giá trị null, ép kiểu dữ liệu mismatch).
33
+
34
+ ## Input yêu cầu
35
+
36
+ - **Database Engine**: Loại cơ sở dữ liệu (PostgreSQL, BigQuery, Snowflake, v.v...).
37
+ - **Mục đích truy vấn**: Câu hỏi nghiệp vụ cần trả lời bằng dữ liệu.
38
+ - **Lược đồ bảng (Table Schema)**: Định nghĩa các bảng, kiểu dữ liệu, các trường khóa và chi tiết phân vùng.
39
+
40
+ ## Output mong đợi
41
+
42
+ - **Mã lệnh SQL Tối ưu**: Câu lệnh SQL hoàn chỉnh được định dạng viết hoa các từ khóa chính và căn lề chuẩn mực.
43
+ - **Giải thích Hiệu năng**: Mô tả ngắn gọn về phân vùng dữ liệu, chỉ mục hoặc hàm đặc thù được dùng để tăng tốc truy vấn.
44
+ - **Giải thích Luồng truy vấn**: Giải thích rõ ràng mục đích của từng bước CTE để nhà phát triển dễ đọc hiểu.
45
+
46
+ ## Giọng điệu & Quy tắc
47
+
48
+ - Viết mã SQL sạch, hiện đại bằng cách viết hoa các từ khóa chuẩn (SELECT, FROM, WHERE, v.v...).
49
+ - Luôn đặt tên viết tắt (alias) cho các bảng và gọi tên cột kèm alias khi thực hiện JOINs.
50
+ - Hạn chế viết các truy vấn con lồng nhau phức tạp; luôn ưu tiên sử dụng CTEs để giữ code sạch sẽ.
51
+
52
+ ## Templates có sẵn
53
+
54
+ - Không có
55
+
56
+ ## Scripts có sẵn
57
+
58
+ - Không có
59
+
60
+ ## Ví dụ
61
+
62
+ Xem thư mục `examples/`.
63
+
64
+ ## Liên kết với các kỹ năng khác
65
+
66
+ - **documents**: Sử dụng để viết tài liệu thiết kế cơ sở dữ liệu hoặc sơ đồ luồng dữ liệu kỹ thuật.
67
+ - **debug**: Sử dụng để chẩn đoán và khắc phục các lỗi cú pháp/logic do công cụ cơ sở dữ liệu trả về.
@@ -0,0 +1,118 @@
1
+ # Skill: Feature Suggestion (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ This skill is used to analyze existing project structure and suggest new features that would integrate well with the current codebase. It helps identify opportunities for enhancements and new functionality based on existing patterns and architecture.
6
+
7
+ ## When to Use
8
+
9
+ - When planning new features for a project
10
+ - When identifying gaps in functionality
11
+ - When analyzing project structure for enhancement opportunities
12
+ - When proposing improvements based on existing patterns
13
+ - When suggesting features that align with project architecture
14
+
15
+ ## Step-by-Step Process
16
+
17
+ ### Step 1: Analyze Project Structure
18
+ - Read and understand `heraspec/project.md`
19
+ - Review existing specs in `heraspec/specs/`
20
+ - Analyze existing changes and their patterns
21
+ - Identify project type and tech stack
22
+ - Map current feature set
23
+
24
+ ### Step 2: Identify Integration Points
25
+ - Find logical places for new features
26
+ - Identify patterns in existing code
27
+ - Determine appropriate project structure locations
28
+ - Consider dependencies and relationships
29
+ - Map feature hierarchy
30
+
31
+ ### Step 3: Generate Suggestions
32
+ - Create feature suggestions based on analysis
33
+ - Ensure suggestions align with project type
34
+ - Consider existing patterns and conventions
35
+ - Propose features that enhance current functionality
36
+ - Suggest improvements and extensions
37
+
38
+ ### Step 4: Organize Suggestions
39
+ - Group suggestions by category/domain
40
+ - Prioritize based on feasibility and value
41
+ - Create suggestion files in appropriate locations
42
+ - Link suggestions to existing features
43
+ - Document integration points
44
+
45
+ ### Step 5: Review and Refine
46
+ - Review suggestions for consistency
47
+ - Ensure suggestions follow project conventions
48
+ - Verify integration points are correct
49
+ - Refine based on project requirements
50
+ - Prepare for implementation planning
51
+
52
+ ## Required Input
53
+
54
+ - **Project structure**: Understanding of project organization
55
+ - **Existing specs**: Current feature specifications
56
+ - **Project type**: Type of project (plugin, module, app, etc.)
57
+ - **Tech stack**: Technologies used in the project
58
+ - **Domain context**: Business domain and requirements
59
+
60
+ ## Expected Output
61
+
62
+ - Feature suggestion files
63
+ - Suggestions organized by category
64
+ - Integration points identified
65
+ - Suggestions linked to existing features
66
+ - Documentation of suggested enhancements
67
+
68
+ ## Tone & Rules
69
+
70
+ ### Suggestion Quality
71
+ - Suggest features that add value
72
+ - Align with project type and architecture
73
+ - Consider existing patterns and conventions
74
+ - Propose realistic and feasible features
75
+ - Enhance rather than replace existing functionality
76
+
77
+ ### Integration
78
+ - Identify appropriate locations for features
79
+ - Consider dependencies and relationships
80
+ - Follow existing project structure
81
+ - Maintain consistency with current patterns
82
+ - Document integration approach
83
+
84
+ ### Documentation
85
+ - Clearly describe suggested features
86
+ - Explain integration points
87
+ - Link to related existing features
88
+ - Provide context and rationale
89
+ - Include implementation considerations
90
+
91
+ ### Limitations
92
+ - ❌ DO NOT suggest features that conflict with existing architecture
93
+ - ❌ DO NOT ignore project conventions
94
+ - ❌ DO NOT suggest overly complex features
95
+ - ❌ DO NOT duplicate existing functionality
96
+ - ❌ DO NOT suggest features without considering integration
97
+
98
+ ## Available Templates
99
+
100
+ - `templates/suggestion-template.md` - Template for feature suggestions
101
+ - `templates/suggestion-category-template.md` - Template for organizing suggestions by category
102
+
103
+ ## Available Scripts
104
+
105
+ - `scripts/analyze-project-structure.py` - Analyze project structure for suggestion opportunities
106
+
107
+ ## Examples
108
+
109
+ See `examples/` directory for reference:
110
+ - `good-suggestions/` - Well-structured feature suggestions
111
+ - `bad-suggestions/` - Examples to avoid
112
+
113
+ ## Links to Other Skills
114
+
115
+ - **documents**: Use to document suggestion rationale
116
+ - **unit-test**: Consider testability when suggesting features
117
+ - **integration-test**: Consider integration testing when suggesting features
118
+
@@ -0,0 +1,70 @@
1
+ # Skill: System Design (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ Evaluate architectural decisions, design API endpoints, model data schemas, and analyze trade-offs.
6
+
7
+ ## When to Use
8
+
9
+ - When architecting a new microservice, system, or database model
10
+ - When defining API boundaries and integration contracts between components
11
+ - When scaling system capacities and outlining horizontal/vertical tradeoffs
12
+
13
+ ## Step-by-Step Process
14
+
15
+ ### Step 1: Gather Requirements & Constraints
16
+ - List functional requirements (what the system must do)
17
+ - List non-functional requirements (throughput, scale, latency, availability)
18
+ - Identify technical constraints (team skill set, budget, timeline, existing stack)
19
+
20
+ ### Step 2: High-Level Design
21
+ - Map out system components (services, clients, data stores)
22
+ - Outline data flow and request/response lifecycles
23
+ - Choose datastores (SQL, NoSQL, Cache, Document store)
24
+
25
+ ### Step 3: Deep Dive & Contract Design
26
+ - Define database schema models and indexing strategies
27
+ - Design concrete API contracts (REST endpoints, GraphQL query structures, gRPC specs)
28
+ - Design error-handling patterns, caching strategies, and event queue definitions
29
+
30
+ ### Step 4: Trade-off Analysis
31
+ - Document choices explicitly using architectural trade-offs (e.g. Read latency vs Write latency)
32
+ - Formulate scaling strategies (sharding, replication, failover mechanisms)
33
+
34
+ ## Required Input
35
+
36
+ - Architecture goals, specifications, or user stories
37
+ - Expected load (requests per second, data size)
38
+ - Pre-existing tech stack constraints
39
+
40
+ ## Expected Output
41
+
42
+ - System design document containing:
43
+ - Architecture diagram (ASCII or Mermaid)
44
+ - Data model and DB schema
45
+ - API endpoint specifications
46
+ - Cache/Queue strategy
47
+ - Explicit trade-off analysis
48
+
49
+ ## Tone & Rules
50
+
51
+ - Every design decision must have a corresponding trade-off analyzed.
52
+ - Keep designs modular and explain service boundaries clearly.
53
+ - Avoid over-engineering. Design for 10x scale, but build for 1.5x scale.
54
+
55
+ ## Available Templates
56
+
57
+ - None
58
+
59
+ ## Available Scripts
60
+
61
+ - None
62
+
63
+ ## Examples
64
+
65
+ See `examples/` directory.
66
+
67
+ ## Links to Other Skills
68
+
69
+ - **documents**: Use to generate product and technical specification documents.
70
+ - **suggestion**: Use to analyze existing systems and suggest architectural improvements.
@@ -0,0 +1,70 @@
1
+ # Kỹ năng: Thiết kế Hệ thống (System Design) (Cross-Cutting)
2
+
3
+ ## Mục đích
4
+
5
+ Đánh giá các quyết định kiến trúc, thiết kế các API endpoint, mô hình hóa lược đồ dữ liệu (database schemas) và phân tích các yếu tố đánh đổi (trade-offs).
6
+
7
+ ## Khi nào sử dụng
8
+
9
+ - Khi thiết kế một microservice, hệ thống, hoặc mô hình cơ sở dữ liệu mới
10
+ - Khi định nghĩa các ranh giới API và hợp đồng tích hợp (integration contracts) giữa các component
11
+ - Khi mở rộng quy mô hệ thống và phác thảo các yếu tố đánh đổi giữa mở rộng theo chiều dọc và chiều ngang
12
+
13
+ ## Quy trình từng bước
14
+
15
+ ### Bước 1: Thu thập Yêu cầu & Ràng buộc
16
+ - Liệt kê các yêu cầu chức năng (hệ thống phải làm gì)
17
+ - Liệt kê các yêu cầu phi chức năng (throughput, quy mô, độ trễ, tính sẵn sàng)
18
+ - Xác định các ràng buộc kỹ thuật (năng lực của team, ngân sách, thời gian, công nghệ hiện có)
19
+
20
+ ### Bước 2: Thiết kế Mức Cao (High-Level Design)
21
+ - Phác thảo sơ đồ các component (services, clients, data stores)
22
+ - Phác thảo luồng dữ liệu và vòng đời của request/response
23
+ - Lựa chọn giải pháp lưu trữ (SQL, NoSQL, Cache, Document store)
24
+
25
+ ### Bước 3: Thiết kế Chi tiết & Hợp đồng API
26
+ - Định nghĩa các mô hình schema database và chiến lược đánh index
27
+ - Thiết kế hợp đồng API cụ thể (REST endpoints, cấu trúc GraphQL, đặc tả gRPC)
28
+ - Thiết kế cơ chế xử lý lỗi, chiến lược lưu cache và định nghĩa hàng đợi sự kiện (event queue)
29
+
30
+ ### Bước 4: Phân tích Đánh đổi (Trade-off Analysis)
31
+ - Tài liệu hóa rõ ràng các lựa chọn kiến trúc kèm phân tích đánh đổi (ví dụ: Tối ưu đọc vs. Tối ưu ghi)
32
+ - Xây dựng chiến lược mở rộng (sharding, replication, cơ chế failover)
33
+
34
+ ## Input yêu cầu
35
+
36
+ - Mục tiêu kiến trúc, đặc tả kỹ thuật hoặc user stories
37
+ - Tải trọng dự kiến (requests mỗi giây, kích thước dữ liệu)
38
+ - Ràng buộc về công nghệ hiện có của dự án
39
+
40
+ ## Output mong đợi
41
+
42
+ - Tài liệu thiết kế hệ thống bao gồm:
43
+ - Sơ đồ kiến trúc (ASCII hoặc Mermaid)
44
+ - Mô hình dữ liệu và DB schema
45
+ - Đặc tả kỹ thuật các API endpoint
46
+ - Chiến lược Cache/Queue
47
+ - Phân tích đánh đổi rõ ràng
48
+
49
+ ## Giọng điệu & Quy tắc
50
+
51
+ - Mọi quyết định thiết kế đều phải kèm theo phân tích đánh đổi tương ứng.
52
+ - Đảm bảo tính mô-đun của thiết kế và giải thích rõ ranh giới giữa các service.
53
+ - Tránh over-engineering (thiết kế quá phức tạp). Hãy thiết kế cho quy mô 10x nhưng xây dựng cho quy mô 1.5x trước.
54
+
55
+ ## Templates có sẵn
56
+
57
+ - Không có
58
+
59
+ ## Scripts có sẵn
60
+
61
+ - Không có
62
+
63
+ ## Ví dụ
64
+
65
+ Xem thư mục `examples/`.
66
+
67
+ ## Liên kết với các kỹ năng khác
68
+
69
+ - **documents**: Dùng để tạo tài liệu đặc tả kỹ thuật và sản phẩm.
70
+ - **suggestion**: Dùng để phân tích hệ thống hiện tại và đề xuất cải tiến kiến trúc.
@@ -0,0 +1,70 @@
1
+ # Skill: System Design (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ Evaluate architectural decisions, design API endpoints, model data schemas, and analyze trade-offs.
6
+
7
+ ## When to Use
8
+
9
+ - When architecting a new microservice, system, or database model
10
+ - When defining API boundaries and integration contracts between components
11
+ - When scaling system capacities and outlining horizontal/vertical tradeoffs
12
+
13
+ ## Step-by-Step Process
14
+
15
+ ### Step 1: Gather Requirements & Constraints
16
+ - List functional requirements (what the system must do)
17
+ - List non-functional requirements (throughput, scale, latency, availability)
18
+ - Identify technical constraints (team skill set, budget, timeline, existing stack)
19
+
20
+ ### Step 2: High-Level Design
21
+ - Map out system components (services, clients, data stores)
22
+ - Outline data flow and request/response lifecycles
23
+ - Choose datastores (SQL, NoSQL, Cache, Document store)
24
+
25
+ ### Step 3: Deep Dive & Contract Design
26
+ - Define database schema models and indexing strategies
27
+ - Design concrete API contracts (REST endpoints, GraphQL query structures, gRPC specs)
28
+ - Design error-handling patterns, caching strategies, and event queue definitions
29
+
30
+ ### Step 4: Trade-off Analysis
31
+ - Document choices explicitly using architectural trade-offs (e.g. Read latency vs Write latency)
32
+ - Formulate scaling strategies (sharding, replication, failover mechanisms)
33
+
34
+ ## Required Input
35
+
36
+ - Architecture goals, specifications, or user stories
37
+ - Expected load (requests per second, data size)
38
+ - Pre-existing tech stack constraints
39
+
40
+ ## Expected Output
41
+
42
+ - System design document containing:
43
+ - Architecture diagram (ASCII or Mermaid)
44
+ - Data model and DB schema
45
+ - API endpoint specifications
46
+ - Cache/Queue strategy
47
+ - Explicit trade-off analysis
48
+
49
+ ## Tone & Rules
50
+
51
+ - Every design decision must have a corresponding trade-off analyzed.
52
+ - Keep designs modular and explain service boundaries clearly.
53
+ - Avoid over-engineering. Design for 10x scale, but build for 1.5x scale.
54
+
55
+ ## Available Templates
56
+
57
+ - None
58
+
59
+ ## Available Scripts
60
+
61
+ - None
62
+
63
+ ## Examples
64
+
65
+ See `examples/` directory.
66
+
67
+ ## Links to Other Skills
68
+
69
+ - **documents**: Use to generate product and technical specification documents.
70
+ - **suggestion**: Use to analyze existing systems and suggest architectural improvements.
@@ -0,0 +1,70 @@
1
+ # Kỹ năng: Thiết kế Hệ thống (System Design) (Cross-Cutting)
2
+
3
+ ## Mục đích
4
+
5
+ Đánh giá các quyết định kiến trúc, thiết kế các API endpoint, mô hình hóa lược đồ dữ liệu (database schemas) và phân tích các yếu tố đánh đổi (trade-offs).
6
+
7
+ ## Khi nào sử dụng
8
+
9
+ - Khi thiết kế một microservice, hệ thống, hoặc mô hình cơ sở dữ liệu mới
10
+ - Khi định nghĩa các ranh giới API và hợp đồng tích hợp (integration contracts) giữa các component
11
+ - Khi mở rộng quy mô hệ thống và phác thảo các yếu tố đánh đổi giữa mở rộng theo chiều dọc và chiều ngang
12
+
13
+ ## Quy trình từng bước
14
+
15
+ ### Bước 1: Thu thập Yêu cầu & Ràng buộc
16
+ - Liệt kê các yêu cầu chức năng (hệ thống phải làm gì)
17
+ - Liệt kê các yêu cầu phi chức năng (throughput, quy mô, độ trễ, tính sẵn sàng)
18
+ - Xác định các ràng buộc kỹ thuật (năng lực của team, ngân sách, thời gian, công nghệ hiện có)
19
+
20
+ ### Bước 2: Thiết kế Mức Cao (High-Level Design)
21
+ - Phác thảo sơ đồ các component (services, clients, data stores)
22
+ - Phác thảo luồng dữ liệu và vòng đời của request/response
23
+ - Lựa chọn giải pháp lưu trữ (SQL, NoSQL, Cache, Document store)
24
+
25
+ ### Bước 3: Thiết kế Chi tiết & Hợp đồng API
26
+ - Định nghĩa các mô hình schema database và chiến lược đánh index
27
+ - Thiết kế hợp đồng API cụ thể (REST endpoints, cấu trúc GraphQL, đặc tả gRPC)
28
+ - Thiết kế cơ chế xử lý lỗi, chiến lược lưu cache và định nghĩa hàng đợi sự kiện (event queue)
29
+
30
+ ### Bước 4: Phân tích Đánh đổi (Trade-off Analysis)
31
+ - Tài liệu hóa rõ ràng các lựa chọn kiến trúc kèm phân tích đánh đổi (ví dụ: Tối ưu đọc vs. Tối ưu ghi)
32
+ - Xây dựng chiến lược mở rộng (sharding, replication, cơ chế failover)
33
+
34
+ ## Input yêu cầu
35
+
36
+ - Mục tiêu kiến trúc, đặc tả kỹ thuật hoặc user stories
37
+ - Tải trọng dự kiến (requests mỗi giây, kích thước dữ liệu)
38
+ - Ràng buộc về công nghệ hiện có của dự án
39
+
40
+ ## Output mong đợi
41
+
42
+ - Tài liệu thiết kế hệ thống bao gồm:
43
+ - Sơ đồ kiến trúc (ASCII hoặc Mermaid)
44
+ - Mô hình dữ liệu và DB schema
45
+ - Đặc tả kỹ thuật các API endpoint
46
+ - Chiến lược Cache/Queue
47
+ - Phân tích đánh đổi rõ ràng
48
+
49
+ ## Giọng điệu & Quy tắc
50
+
51
+ - Mọi quyết định thiết kế đều phải kèm theo phân tích đánh đổi tương ứng.
52
+ - Đảm bảo tính mô-đun của thiết kế và giải thích rõ ranh giới giữa các service.
53
+ - Tránh over-engineering (thiết kế quá phức tạp). Hãy thiết kế cho quy mô 10x nhưng xây dựng cho quy mô 1.5x trước.
54
+
55
+ ## Templates có sẵn
56
+
57
+ - Không có
58
+
59
+ ## Scripts có sẵn
60
+
61
+ - Không có
62
+
63
+ ## Ví dụ
64
+
65
+ Xem thư mục `examples/`.
66
+
67
+ ## Liên kết với các kỹ năng khác
68
+
69
+ - **documents**: Dùng để tạo tài liệu đặc tả kỹ thuật và sản phẩm.
70
+ - **suggestion**: Dùng để phân tích hệ thống hiện tại và đề xuất cải tiến kiến trúc.