failproofai 0.0.6-beta.1 → 0.0.6-beta.3

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 (177) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +4 -3
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/index.html +1 -1
  28. package/.next/standalone/.next/server/app/index.rsc +15 -15
  29. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  32. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  33. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  38. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  52. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~kmh8w._.js → [root-of-the-server]__096k.db._.js} +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rh.18_._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 0-dm_9a6nsc2l.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 01pmw1-asbek~.js} +2 -2
  72. package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 051m32nx~n5yr.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0a-yctdwn368y.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0l-mu4okl-cj1.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{08t08igdql9yt.js → 0mazj-p-~2kc6.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
  78. package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 156zca6aewyr-.js} +1 -1
  79. package/.next/standalone/CHANGELOG.md +18 -0
  80. package/.next/standalone/bin/failproofai.mjs +91 -4
  81. package/.next/standalone/dist/cli.mjs +1156 -55
  82. package/.next/standalone/docs/ar/built-in-policies.mdx +140 -103
  83. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  84. package/.next/standalone/docs/ar/examples.mdx +86 -33
  85. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  86. package/.next/standalone/docs/built-in-policies.mdx +3 -3
  87. package/.next/standalone/docs/de/built-in-policies.mdx +97 -60
  88. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  89. package/.next/standalone/docs/de/examples.mdx +72 -18
  90. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  91. package/.next/standalone/docs/es/built-in-policies.mdx +91 -54
  92. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  93. package/.next/standalone/docs/es/examples.mdx +73 -19
  94. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  95. package/.next/standalone/docs/fr/built-in-policies.mdx +99 -62
  96. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  97. package/.next/standalone/docs/fr/examples.mdx +78 -24
  98. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  99. package/.next/standalone/docs/he/built-in-policies.mdx +139 -99
  100. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  101. package/.next/standalone/docs/he/examples.mdx +87 -33
  102. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  103. package/.next/standalone/docs/hi/built-in-policies.mdx +203 -166
  104. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  105. package/.next/standalone/docs/hi/examples.mdx +90 -36
  106. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  107. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  108. package/.next/standalone/docs/i18n/README.de.md +46 -46
  109. package/.next/standalone/docs/i18n/README.es.md +42 -42
  110. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  111. package/.next/standalone/docs/i18n/README.he.md +83 -83
  112. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  113. package/.next/standalone/docs/i18n/README.it.md +72 -72
  114. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  115. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  116. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  117. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  118. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  119. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  120. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  121. package/.next/standalone/docs/it/built-in-policies.mdx +115 -78
  122. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  123. package/.next/standalone/docs/it/examples.mdx +93 -39
  124. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  125. package/.next/standalone/docs/ja/built-in-policies.mdx +155 -118
  126. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  127. package/.next/standalone/docs/ja/examples.mdx +76 -22
  128. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  129. package/.next/standalone/docs/ko/built-in-policies.mdx +103 -66
  130. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  131. package/.next/standalone/docs/ko/examples.mdx +87 -33
  132. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  133. package/.next/standalone/docs/pt-br/built-in-policies.mdx +72 -35
  134. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  135. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  136. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  137. package/.next/standalone/docs/ru/built-in-policies.mdx +135 -98
  138. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  139. package/.next/standalone/docs/ru/examples.mdx +77 -22
  140. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  141. package/.next/standalone/docs/tr/built-in-policies.mdx +126 -89
  142. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  143. package/.next/standalone/docs/tr/examples.mdx +97 -42
  144. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  145. package/.next/standalone/docs/vi/built-in-policies.mdx +116 -81
  146. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  147. package/.next/standalone/docs/vi/examples.mdx +93 -38
  148. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  149. package/.next/standalone/docs/zh/built-in-policies.mdx +117 -82
  150. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  151. package/.next/standalone/docs/zh/examples.mdx +90 -36
  152. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  153. package/.next/standalone/package.json +1 -1
  154. package/.next/standalone/server.js +1 -1
  155. package/.next/standalone/src/auth/login.ts +104 -0
  156. package/.next/standalone/src/auth/logout.ts +50 -0
  157. package/.next/standalone/src/auth/token-store.ts +64 -0
  158. package/.next/standalone/src/hooks/builtin-policies.ts +27 -21
  159. package/.next/standalone/src/hooks/handler.ts +35 -15
  160. package/.next/standalone/src/relay/daemon.ts +362 -0
  161. package/.next/standalone/src/relay/pid.ts +76 -0
  162. package/.next/standalone/src/relay/queue.ts +225 -0
  163. package/bin/failproofai.mjs +91 -4
  164. package/dist/cli.mjs +1156 -55
  165. package/package.json +1 -1
  166. package/src/auth/login.ts +104 -0
  167. package/src/auth/logout.ts +50 -0
  168. package/src/auth/token-store.ts +64 -0
  169. package/src/hooks/builtin-policies.ts +27 -21
  170. package/src/hooks/handler.ts +35 -15
  171. package/src/relay/daemon.ts +362 -0
  172. package/src/relay/pid.ts +76 -0
  173. package/src/relay/queue.ts +225 -0
  174. package/.next/standalone/.next/static/chunks/0wlyoif4_kj_t.js +0 -6
  175. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
  176. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
  177. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Chính sách Tích hợp
3
- description: "Cả 30 chính sách tích hợp giúp bắt những chế độ lỗi phổ biến của agent"
2
+ title: Các chính sách tích hợp sẵn
3
+ description: "Tất cả 30 chính sách tích hợp sẵn để bắt các chế độ lỗi phổ biến của agent"
4
4
  icon: shield
5
5
  ---
6
6
 
7
- failproofai được cung cấp với 30 chính sách tích hợp giúp bắt những chế độ lỗi phổ biến của agent. Mỗi chính sách kích hoạt trên một loại sự kiện hook và tên công cụ cụ thể. Chín chính sách chấp nhận các tham số cho phép bạn điều chỉnh hành vi của chúng mà không cần viết code. Bốn chính sách quy trình làm việc thực thi đường ống commit → push → PR → CI trước khi Claude dừng lại.
7
+ failproofai đi kèm với 30 chính sách tích hợp sẵn để bắt các chế độ lỗi phổ biến của agent. Mỗi chính sách kích hoạt trên một loại sự kiện hook cụ thể và tên công cụ. Chín chính sách chấp nhận các tham số cho phép bạn tinh chỉnh hành vi của chúng mà không cần viết mã. Bốn chính sách quy trình làm việc thực thi đường dẫn commit → push → PR → CI trước khi Claude dừng lại.
8
8
 
9
9
  ---
10
10
 
@@ -12,46 +12,47 @@ failproofai được cung cấp với 30 chính sách tích hợp giúp bắt nh
12
12
 
13
13
  Các chính sách được nhóm thành các danh mục:
14
14
 
15
- | Danh mục | Chính sách | Loại Hook |
15
+ | Danh mục | Chính sách | Loại hook |
16
16
  |----------|----------|-----------|
17
- | [Lệnh nguy hiểm](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
- | [Bí mật (sanitizers)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
- | [Môi trường](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
- | [Truy cập tệp](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
17
+ | [Các lệnh nguy hiểm](#các-lệnh-nguy-hiểm) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
+ | [Bí mật (các công cụ khử trùng)](#bí-mật-các-công-cụ-khử-trùng) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
+ | [Môi trường](#môi-trường) | block-env-files, protect-env-vars | PreToolUse |
20
+ | [Truy cập tệp](#truy-cập-tệp) | block-read-outside-cwd, block-secrets-write | PreToolUse |
21
21
  | [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
22
- | [Cơ sở dữ liệu](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
- | [Cảnh báo](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
- | [Quy trình làm việc](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
25
-
26
- - **`block-`** — dừng agent khỏi tiếp tục.
27
- - **`warn-`** — cung cấp cho agent ngữ cảnh bổ sung để nó có thể tự điều chỉnh.
28
- - **`sanitize-`** — xóa dữ liệu nhạy cảm từ đầu ra công cụ trước khi agent thấy nó.
22
+ | [Cơ sở dữ liệu](#cơ-sở-dữ-liệu) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
+ | [Cảnh báo](#cảnh-báo) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
+ | [Trình quản gói](#trình-quản-lý-gói) | prefer-package-manager | PreToolUse |
25
+ | [Quy trình làm việc](#quy-trình-làm-việc) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
26
+
27
+ - **`block-`** — dừng agent không cho tiếp tục.
28
+ - **`warn-`** — cung cấp cho agent ngữ cảnh bổ sung để thể tự sửa chữa.
29
+ - **`sanitize-`** — xoá các dữ liệu nhạy cảm từ đầu ra công cụ trước khi agent nhìn thấy.
29
30
  - **`require-`** — chặn sự kiện Stop cho đến khi các điều kiện được đáp ứng.
30
31
 
31
32
  ---
32
33
 
33
34
  <Tip>
34
- Mỗi chính sách hỗ trợ một trường `hint` tùy chọn trong `policyParams`. Hint được thêm vào thông báo deny hoặc instruct mà Claude thấy, cung cấp hướng dẫn hành động mà không cần sửa đổi code chính sách. Hoạt động với các chính sách tích hợp, tùy chỉnh và quy ước. Xem [Cấu hình → hint](/vi/configuration#hint-cross-cutting) để biết chi tiết.
35
+ Mỗi chính sách hỗ trợ một trường `hint` tùy chọn trong `policyParams`. Hint được thêm vào thông báo deny hoặc instruct mà Claude nhìn thấy, cung cấp hướng dẫn hữu ích mà không cần sửa đổi chính sách. Hoạt động với các chính sách tích hợp sẵn, tùy chỉnh và quy ước. Xem [Configuration → hint](/vi/configuration#hint-cross-cutting) để biết chi tiết.
35
36
  </Tip>
36
37
 
37
38
  ---
38
39
 
39
- ## Lệnh nguy hiểm
40
+ ## Các lệnh nguy hiểm
40
41
 
41
- Ngăn chặn agent chạy các thao tác khó hoàn tác hoặc có thể gây hại cho hệ thống chủ.
42
+ Ngăn chặn agent chạy các hoạt động khó hoàn tác hoặc có thể làm hỏng hệ thống chủ.
42
43
 
43
44
  ### `block-sudo`
44
45
 
45
46
  **Sự kiện:** PreToolUse (Bash)
46
- **Mặc định:** Từ chối bất kỳ lệnh `sudo` nào.
47
+ **Mặc định:** Từ chối mọi lệnh `sudo`.
47
48
 
48
- Chặn các lệnh gồm từ khóa `sudo`. Khớp mẫu được thực hiện trên các token lệnh được phân tích cú pháp, không phải chuỗi thô, để ngăn chặn vòng qua tiêm toán tử shell.
49
+ Chặn các lần gọi bao gồm từ khóa `sudo`. Khớp mẫu được thực hiện trên các token lệnh đã phân tích cú pháp, không phải chuỗi thô, để ngăn chặn vòng qua tiêm toán tử shell.
49
50
 
50
51
  **Tham số:**
51
52
 
52
- | Tham số | Kiểu | Mặc định | Mô tả |
53
+ | Tham số | Loại | Mặc định | Mô tả |
53
54
  |-------|------|---------|-------------|
54
- | `allowPatterns` | `string[]` | `[]` | Tiền tố lệnh chính xác được phép. Mỗi mục được khớp với các token argv được phân tích cú pháp. |
55
+ | `allowPatterns` | `string[]` | `[]` | Tiền tố lệnh chính xác được phép. Mỗi mục được so khớp với các token argv đã phân tích cú pháp. |
55
56
 
56
57
  **Ví dụ:**
57
58
 
@@ -65,10 +66,10 @@ Chặn các lệnh gồm từ khóa `sudo`. Khớp mẫu được thực hiện
65
66
  }
66
67
  ```
67
68
 
68
- Với cấu hình này, `sudo systemctl status nginx` được phép, nhưng `sudo rm /etc/hosts` bị từ chối.
69
+ Với cấu hình này, `sudo systemctl status nginx` được cho phép, nhưng `sudo rm /etc/hosts` bị từ chối.
69
70
 
70
71
  <Note>
71
- Mẫu được khớp với các token được phân tích cú pháp, không phải chuỗi lệnh thô. Điều này ngăn chặn vòng qua toán tử shell được thêm vào (ví dụ: `sudo systemctl status x; rm -rf /` không khớp với `sudo systemctl status *`).
72
+ Các mẫu được so khớp với các token đã phân tích cú pháp, không phải chuỗi lệnh thô. Điều này ngăn chặn vòng qua các toán tử shell được thêm vào (ví dụ: `sudo systemctl status x; rm -rf /` không khớp với `sudo systemctl status *`).
72
73
  </Note>
73
74
 
74
75
  ---
@@ -80,9 +81,9 @@ Mẫu được khớp với các token được phân tích cú pháp, không ph
80
81
 
81
82
  **Tham số:**
82
83
 
83
- | Tham số | Kiểu | Mặc định | Mô tả |
84
+ | Tham số | Loại | Mặc định | Mô tả |
84
85
  |-------|------|---------|-------------|
85
- | `allowPaths` | `string[]` | `[]` | Đường dẫn an toàn để xóa đệ quy (ví dụ: `/tmp`). |
86
+ | `allowPaths` | `string[]` | `[]` | Các đường dẫn an toàn để xóa đệ quy (ví dụ: `/tmp`). |
86
87
 
87
88
  **Ví dụ:**
88
89
 
@@ -116,14 +117,14 @@ Không có tham số.
116
117
 
117
118
  ---
118
119
 
119
- ## Bí mật (sanitizers)
120
+ ## Bí mật (các công cụ khử trùng)
120
121
 
121
- Ngăn agent rò rỉ thông tin xác thực vào ngữ cảnh hoặc đầu ra của chúng. Các chính sách sanitizer kích hoạt trên sự kiện **PostToolUse**. Khi Claude chạy lệnh Bash, đọc tệp hoặc gọi bất kỳ công cụ nào, các chính sách này kiểm tra đầu ra trước khi được trả về Claude. Nếu phát hiện mẫu bí mật, chính sách trả về quyết định deny ngăn chặn đầu ra được chuyển lại.
122
+ Ngăn chặn agent rò rỉ thông tin xác thực vào ngữ cảnh hoặc đầu ra của chúng. Các chính sách khử trùng kích hoạt trên các sự kiện **PostToolUse**. Khi Claude chạy lệnh Bash, đọc tệp hoặc gọi bất kỳ công cụ nào, các chính sách này kiểm tra đầu ra trước khi được trả về cho Claude. Nếu phát hiện mẫu bí mật, chính sách trả về quyết định deny ngăn chặn đầu ra được truyền lại.
122
123
 
123
124
  ### `sanitize-jwt`
124
125
 
125
- **Sự kiện:** PostToolUse (tất cả công cụ)
126
- **Mặc định:** Làm mờ các token JWT (ba đoạn base64url được phân tách bằng `.`).
126
+ **Sự kiện:** PostToolUse (tất cả các công cụ)
127
+ **Mặc định:** Che đi các token JWT (ba phân đoạn base64url được phân tách bằng `.`).
127
128
 
128
129
  Không có tham số.
129
130
 
@@ -131,14 +132,14 @@ Không có tham số.
131
132
 
132
133
  ### `sanitize-api-keys`
133
134
 
134
- **Sự kiện:** PostToolUse (tất cả công cụ)
135
- **Mặc định:** Làm mờ các định dạng kóa API thông dụng: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), kóa truy cập AWS (`AKIA`), kóa Stripe (`sk_live_`, `sk_test_`),kóa API Google (`AIza`).
135
+ **Sự kiện:** PostToolUse (tất cả các công cụ)
136
+ **Mặc định:** Che đi các định dạng khóa API phổ biến: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), Khóa truy cập AWS (`AKIA`), Khóa Stripe (`sk_live_`, `sk_test_`) và Khóa API Google (`AIza`).
136
137
 
137
138
  **Tham số:**
138
139
 
139
- | Tham số | Kiểu | Mặc định | Mô tả |
140
+ | Tham số | Loại | Mặc định | Mô tả |
140
141
  |-------|------|---------|-------------|
141
- | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Các mẫu regex bổ sung để coi bí mật. |
142
+ | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Các mẫu regex bổ sung để coi như bí mật. |
142
143
 
143
144
  **Ví dụ:**
144
145
 
@@ -159,8 +160,8 @@ Không có tham số.
159
160
 
160
161
  ### `sanitize-connection-strings`
161
162
 
162
- **Sự kiện:** PostToolUse (tất cả công cụ)
163
- **Mặc định:** Làm mờ chuỗi kết nối cơ sở dữ liệu chứa thông tin xác thực nhúng (ví dụ: `postgresql://user:password@host/db`).
163
+ **Sự kiện:** PostToolUse (tất cả các công cụ)
164
+ **Mặc định:** Che đi các chuỗi kết nối cơ sở dữ liệu chứa thông tin xác thực nhúng (ví dụ: `postgresql://user:password@host/db`).
164
165
 
165
166
  Không có tham số.
166
167
 
@@ -168,8 +169,8 @@ Không có tham số.
168
169
 
169
170
  ### `sanitize-private-key-content`
170
171
 
171
- **Sự kiện:** PostToolUse (tất cả công cụ)
172
- **Mặc định:** Làm mờ các khối PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, v.v.).
172
+ **Sự kiện:** PostToolUse (tất cả các công cụ)
173
+ **Mặc định:** Che đi các khối PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, v.v.).
173
174
 
174
175
  Không có tham số.
175
176
 
@@ -177,8 +178,8 @@ Không có tham số.
177
178
 
178
179
  ### `sanitize-bearer-tokens`
179
180
 
180
- **Sự kiện:** PostToolUse (tất cả công cụ)
181
- **Mặc định:** Làm mờ các header `Authorization: Bearer <token>` nơi token có 20 ký tự trở lên.
181
+ **Sự kiện:** PostToolUse (tất cả các công cụ)
182
+ **Mặc định:** Che đi tiêu đề `Authorization: Bearer <token>` trong đó token có 20 ký tự trở lên.
182
183
 
183
184
  Không có tham số.
184
185
 
@@ -186,14 +187,14 @@ Không có tham số.
186
187
 
187
188
  ## Môi trường
188
189
 
189
- Bảo vệ cấu hình môi trường nhạy cảm khỏi bị agent đọc hoặc tiếp xúc.
190
+ Bảo vệ cấu hình môi trường nhạy cảm không bị agent đọc hoặc lộ ra.
190
191
 
191
192
  ### `block-env-files`
192
193
 
193
194
  **Sự kiện:** PreToolUse (Bash, Read)
194
- **Mặc định:** Từ chối đọc tệp `.env` thông qua `cat .env`, các lệnh gọi công cụ Read với `.env` làm đường dẫn tệp, v.v.
195
+ **Mặc định:** Từ chối đọc các tệp `.env` qua `cat .env`, các lệnh gọi công cụ Read với `.env` đường dẫn tệp, v.v.
195
196
 
196
- Không chặn `.envrc` hoặc các tệp liên quan môi trường khác - chỉ các tệp được đặt tên chính xác là `.env`.
197
+ Không chặn `.envrc` hoặc các tệp liên quan môi trường khác - chỉ các tệp tên chính xác là `.env`.
197
198
 
198
199
  Không có tham số.
199
200
 
@@ -202,7 +203,7 @@ Không có tham số.
202
203
  ### `protect-env-vars`
203
204
 
204
205
  **Sự kiện:** PreToolUse (Bash)
205
- **Mặc định:** Từ chối các lệnh in biến môi trường: `printenv`, `env`, `echo $VAR`.
206
+ **Mặc định:** Từ chối các lệnh in các biến môi trường: `printenv`, `env`, `echo $VAR`.
206
207
 
207
208
  Không có tham số.
208
209
 
@@ -210,18 +211,18 @@ Không có tham số.
210
211
 
211
212
  ## Truy cập tệp
212
213
 
213
- Giúp agent làm việc trong ranh giới dự án và tránh xa các tệp nhạy cảm.
214
+ Giữ cho agent hoạt động trong ranh giới dự án và tránh xa các tệp nhạy cảm.
214
215
 
215
216
  ### `block-read-outside-cwd`
216
217
 
217
218
  **Sự kiện:** PreToolUse (Read, Bash)
218
- **Mặc định:** Từ chối đọc tệp bên ngoài thư mục làm việc hiện tại (gốc dự án).
219
+ **Mặc định:** Từ chối đọc các tệp bên ngoài thư mục làm việc hiện tại (gốc dự án).
219
220
 
220
221
  **Tham số:**
221
222
 
222
- | Tham số | Kiểu | Mặc định | Mô tả |
223
+ | Tham số | Loại | Mặc định | Mô tả |
223
224
  |-------|------|---------|-------------|
224
- | `allowPaths` | `string[]` | `[]` | Tiền tố đường dẫn tuyệt đối được phép ngay cả khi bên ngoài cwd. |
225
+ | `allowPaths` | `string[]` | `[]` | Các tiền tố đường dẫn tuyệt đối được phép ngay cả khi bên ngoài cwd. |
225
226
 
226
227
  **Ví dụ:**
227
228
 
@@ -240,11 +241,11 @@ Giúp agent làm việc trong ranh giới dự án và tránh xa các tệp nh
240
241
  ### `block-secrets-write`
241
242
 
242
243
  **Sự kiện:** PreToolUse (Write, Edit)
243
- **Mặc định:** Từ chối ghi vào tệp thường được sử dụng cho kóa riêng tư và chứng chỉ: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
244
+ **Mặc định:** Từ chối ghi vào các tệp thường được sử dụng cho khóa riêng tư và chứng chỉ: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
244
245
 
245
246
  **Tham số:**
246
247
 
247
- | Tham số | Kiểu | Mặc định | Mô tả |
248
+ | Tham số | Loại | Mặc định | Mô tả |
248
249
  |-------|------|---------|-------------|
249
250
  | `additionalPatterns` | `string[]` | `[]` | Các mẫu tên tệp bổ sung (kiểu glob) để chặn. |
250
251
 
@@ -264,7 +265,7 @@ Giúp agent làm việc trong ranh giới dự án và tránh xa các tệp nh
264
265
 
265
266
  ## Git
266
267
 
267
- Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh khó hoàn tác.
268
+ Ngăn chặn các push, force-push và lỗi nhánh đột ngột khó hoàn tác.
268
269
 
269
270
  ### `block-push-master`
270
271
 
@@ -273,9 +274,9 @@ Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh
273
274
 
274
275
  **Tham số:**
275
276
 
276
- | Tham số | Kiểu | Mặc định | Mô tả |
277
+ | Tham số | Loại | Mặc định | Mô tả |
277
278
  |-------|------|---------|-------------|
278
- | `protectedBranches` | `string[]` | `["main", "master"]` | Tên nhánh không thể được push trực tiếp. |
279
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Tên nhánh không thể push trực tiếp. |
279
280
 
280
281
  **Ví dụ:**
281
282
 
@@ -290,7 +291,7 @@ Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh
290
291
  ```
291
292
 
292
293
  <Tip>
293
- Để cho phép push đến tất cả các nhánh ( hiệu lực vô hiệu hóa chính sách này mà không xóa khỏi `enabledPolicies`), hãy đặt `protectedBranches: []`.
294
+ Để cho phép push tới tất cả các nhánh (thực tế vô hiệu hóa chính sách này mà không cần xóa khỏi `enabledPolicies`), hãy đặt `protectedBranches: []`.
294
295
  </Tip>
295
296
 
296
297
  ---
@@ -298,13 +299,13 @@ Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh
298
299
  ### `block-work-on-main`
299
300
 
300
301
  **Sự kiện:** PreToolUse (Bash)
301
- **Mặc định:** Từ chối kiểm tra nhánh `main` hoặc `master` trực tiếp.
302
+ **Mặc định:** Từ chối kiểm tra các nhánh `main` hoặc `master` trực tiếp.
302
303
 
303
304
  **Tham số:**
304
305
 
305
- | Tham số | Kiểu | Mặc định | Mô tả |
306
+ | Tham số | Loại | Mặc định | Mô tả |
306
307
  |-------|------|---------|-------------|
307
- | `protectedBranches` | `string[]` | `["main", "master"]` | Tên nhánh không thể được kiểm tra trực tiếp. |
308
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Tên nhánh không thể kiểm tra trực tiếp. |
308
309
 
309
310
  ---
310
311
 
@@ -313,7 +314,7 @@ Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh
313
314
  **Sự kiện:** PreToolUse (Bash)
314
315
  **Mặc định:** Từ chối `git push --force` và `git push -f`.
315
316
 
316
- Không có tham số chính sách cụ thể. Sử dụng [`hint`](/vi/configuration#hint-cross-cutting) chéo để gợi ý các lựa chọn thay thế:
317
+ Không có tham số cụ thể chính sách. Sử dụng [`hint`](/vi/configuration#hint-cross-cutting) chuyên toàn để gợi ý các lựa chọn thay thế:
317
318
 
318
319
  ```json
319
320
  {
@@ -348,7 +349,7 @@ Không có tham số.
348
349
  ### `warn-all-files-staged`
349
350
 
350
351
  **Sự kiện:** PreToolUse (Bash)
351
- **Mặc định:** Hướng dẫn Claude xem lại những gì nó đang staging khi chạy `git add -A` hoặc `git add .`. Không chặn lệnh.
352
+ **Mặc định:** Hướng dẫn Claude xem xét những gì nó đang sử dụng khi chạy `git add -A` hoặc `git add .`. Không chặn lệnh.
352
353
 
353
354
  Không có tham số.
354
355
 
@@ -356,7 +357,7 @@ Không có tham số.
356
357
 
357
358
  ## Cơ sở dữ liệu
358
359
 
359
- Bắt các thao tác SQL tàn phá trước khi chúng thực thi trên cơ sở dữ liệu của bạn.
360
+ Bắt các hoạt động SQL tàn phá trước khi chúng thực thi đối với cơ sở dữ liệu của bạn.
360
361
 
361
362
  ### `warn-destructive-sql`
362
363
 
@@ -378,18 +379,18 @@ Không có tham số.
378
379
 
379
380
  ## Cảnh báo
380
381
 
381
- Cung cấp cho agent ngữ cảnh bổ sung trước các thao tác tiềm ẩn rủi ro nhưng không tàn phá.
382
+ Cung cấp cho agent ngữ cảnh bổ sung trước các hoạt động rủi ro nhưng không tàn phá.
382
383
 
383
384
  ### `warn-large-file-write`
384
385
 
385
386
  **Sự kiện:** PreToolUse (Write)
386
- **Mặc định:** Hướng dẫn Claude xác nhận trước khi ghi tệp lớn hơn 1024 KB.
387
+ **Mặc định:** Hướng dẫn Claude xác nhận trước khi ghi các tệp lớn hơn 1024 KB.
387
388
 
388
389
  **Tham số:**
389
390
 
390
- | Tham số | Kiểu | Mặc định | Mô tả |
391
+ | Tham số | Loại | Mặc định | Mô tả |
391
392
  |-------|------|---------|-------------|
392
- | `thresholdKb` | `number` | `1024` | Ngưỡng kích thước tệp tính bằng kilobyte vượt quá đó sẽ cảnh báo. |
393
+ | `thresholdKb` | `number` | `1024` | Ngưỡng kích thước tệp tính bằng kilobyte trên đó cảnh báo được cấp. |
393
394
 
394
395
  **Ví dụ:**
395
396
 
@@ -404,7 +405,7 @@ Cung cấp cho agent ngữ cảnh bổ sung trước các thao tác tiềm ẩn
404
405
  ```
405
406
 
406
407
  <Note>
407
- Trình xử lý hook thực thi giới hạn stdin 1 MB cho các tải trọng. Để kiểm tra chính sách này với nội dung nhỏ, hãy đặt `thresholdKb` thành giá trị tốt bên dưới 1024.
408
+ Trình xử lý hook thực thi giới hạn stdin 1 MB trên các tải trọng. Để kiểm tra chính sách này với nội dung nhỏ, hãy đặt `thresholdKb` thành giá trị tốt dưới 1024.
408
409
  </Note>
409
410
 
410
411
  ---
@@ -421,7 +422,7 @@ Không có tham số.
421
422
  ### `warn-background-process`
422
423
 
423
424
  **Sự kiện:** PreToolUse (Bash)
424
- **Mặc định:** Hướng dẫn Claude cẩn thận khi khởi chạy quy trình nền qua `nohup`, `&`, `disown` hoặc `screen`.
425
+ **Mặc định:** Hướng dẫn Claude cẩn thận khi khởi chạy các quá trình nền qua `nohup`, `&`, `disown` hoặc `screen`.
425
426
 
426
427
  Không có tham số.
427
428
 
@@ -436,14 +437,50 @@ Không có tham số.
436
437
 
437
438
  ---
438
439
 
440
+ ## Trình quản lý gói
441
+
442
+ Thực thi trình quản lý gói nào được agent phép sử dụng.
443
+
444
+ ### `prefer-package-manager`
445
+
446
+ **Sự kiện:** PreToolUse (Bash)
447
+ **Mặc định:** Vô hiệu hóa. Khi được bật, chặn bất kỳ lệnh trình quản lý gói nào không có trong danh sách `allowed` và hướng dẫn Claude viết lại lệnh bằng trình quản lý được phép.
448
+
449
+ Phát hiện: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
450
+
451
+ | Tham số | Loại | Mặc định | Mô tả |
452
+ |-----------|------|---------|-------------|
453
+ | `allowed` | string[] | `[]` | Tên trình quản lý gói được phép. Bất kỳ trình quản lý được phát hiện nào không có trong danh sách này đều bị chặn. Khi trống, chính sách là không hoạt động. |
454
+ | `blocked` | string[] | `[]` | Tên trình quản lý bổ sung để chặn ngoài danh sách tích hợp sẵn (ví dụ: `['pdm', 'pipx']`). |
455
+
456
+ Danh sách chặn tích hợp sẵn bao gồm: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Sử dụng `blocked` để thêm các trình quản lý không có trong danh sách này.
457
+
458
+ **Ví dụ cấu hình:**
459
+
460
+ ```json
461
+ {
462
+ "enabledPolicies": ["prefer-package-manager"],
463
+ "policyParams": {
464
+ "prefer-package-manager": {
465
+ "allowed": ["uv", "bun"],
466
+ "blocked": ["pdm", "pipx"]
467
+ }
468
+ }
469
+ }
470
+ ```
471
+
472
+ Với cấu hình này, `pip install flask` và `pdm install flask` đều bị từ chối với thông báo hướng dẫn Claude sử dụng `uv` hoặc `bun`. Các lệnh như `uv pip install flask` được cho phép vì `uv` có trong danh sách cho phép và được kiểm tra trước tiên.
473
+
474
+ ---
475
+
439
476
  ## Hành vi AI
440
477
 
441
478
  Phát hiện khi agent bị kẹt hoặc có hành vi bất thường.
442
479
 
443
480
  ### `warn-repeated-tool-calls`
444
481
 
445
- **Sự kiện:** PreToolUse (tất cả công cụ)
446
- **Mặc định:** Hướng dẫn Claude xem xét lại khi cùng một công cụ được gọi 3 lần trở lên với các tham số giống hệt nhau - một dấu hiệu phổ biến cho thấy agent bị kẹt trong vòng lặp.
482
+ **Sự kiện:** PreToolUse (tất cả các công cụ)
483
+ **Mặc định:** Hướng dẫn Claude cân nhắc kỹ khi cùng một công cụ được gọi 3 lần trở lên với các tham số giống hệt - một dấu hiệu phổ biến của agent bị kẹt trong vòng lặp.
447
484
 
448
485
  Không có tham số.
449
486
 
@@ -451,14 +488,14 @@ Không có tham số.
451
488
 
452
489
  ## Quy trình làm việc
453
490
 
454
- Thực thi quy trình làm việc kỷ luật ở cuối phiên. Các chính sách này kích hoạt trên sự kiện **Stop** và từ chối Claude dừng lại cho đến khi mỗi điều kiện được đáp ứng. Chúng tuân theo chuỗi phụ thuộc tự nhiên: commit → push → PR → CI. Nếu chính sách từ chối, các chính sách sau trong chuỗi bị bỏ qua (deny rút ngắn).
491
+ Thực thi quy trình làm việc kỷ luật ở cuối phiên. Các chính sách này kích hoạt trên sự kiện **Stop** và từ chối Claude dừng lại cho đến khi mỗi điều kiện được đáp ứng. Chúng tuân theo chuỗi phụ thuộc tự nhiên: commit → push → PR → CI. Nếu chính sách từ chối, các chính sách sau đó trong chuỗi sẽ bị bỏ qua (deny ngắn mạch).
455
492
 
456
- Tất cả các chính sách quy trình làm việc **fail-open**: nếu công cụ được yêu cầu không có sẵn (ví dụ: `gh` không được cài đặt, không có git remote), chính sách cho phép với thông báo thông tin giải thích tại sao kiểm tra bị bỏ qua.
493
+ Tất cả các chính sách quy trình làm việc **fail-open**: nếu công cụ được yêu cầu không có sẵn (ví dụ: `gh` chưa cài đặt, không có git remote), chính sách cho phép với thông báo thông tin giải thích do kiểm tra bị bỏ qua.
457
494
 
458
495
  ### `require-commit-before-stop`
459
496
 
460
497
  **Sự kiện:** Stop
461
- **Mặc định:** Từ chối dừng khi có những thay đổi chưa được commit (tệp đã sửa đổi, được stage hoặc chưa theo dõi). Trả về thông báo thông tin khi thư mục làm việc sạch sẽ.
498
+ **Mặc định:** Từ chối dừng khi có các thay đổi chưa được commit (các tệp đã sửa đổi, đã chuẩn bị hoặc chưa theo dõi). Trả về thông báo thông tin khi thư mục làm việc sạch sẽ.
462
499
 
463
500
  Không có tham số.
464
501
 
@@ -467,13 +504,13 @@ Không có tham số.
467
504
  ### `require-push-before-stop`
468
505
 
469
506
  **Sự kiện:** Stop
470
- **Mặc định:** Từ chối dừng khi có những commit chưa được push hoặc khi nhánh hiện tại không có nhánh remote theo dõi. Gợi ý `git push -u` để tạo nhánh theo dõi nếu cần. Fail open nếu không có remote được cấu hình.
507
+ **Mặc định:** Từ chối dừng khi có các commit chưa được push hoặc khi nhánh hiện tại không có nhánh remote theo dõi. Gợi ý `git push -u` để tạo nhánh theo dõi nếu cần. Fails open nếu không có remote được cấu hình.
471
508
 
472
509
  **Tham số:**
473
510
 
474
- | Tham số | Kiểu | Mặc định | Mô tả |
511
+ | Tham số | Loại | Mặc định | Mô tả |
475
512
  |-------|------|---------|-------------|
476
- | `remote` | `string` | `"origin"` | Tên remote để push đến. |
513
+ | `remote` | `string` | `"origin"` | Tên remote để push tới. |
477
514
 
478
515
  **Ví dụ:**
479
516
 
@@ -492,14 +529,13 @@ Không có tham số.
492
529
  ### `require-pr-before-stop`
493
530
 
494
531
  **Sự kiện:** Stop
495
- **Mặc định:** Từ chối dừng khi không có pull request cho nhánh hiện tại, hoặc khi PR hiện có bị đóng/hợp nhất. Hướng dẫn Claude tạo PR với `gh pr create`.
532
+ **Mặc định:** Từ chối dừng khi không có pull request cho nhánh hiện tại hoặc khi PR hiện có bị đóng/hợp nhất. Hướng dẫn Claude tạo PR bằng `gh pr create`.
496
533
 
497
534
  Không có tham số.
498
535
 
499
536
  <Note>
500
537
  Chính sách này yêu cầu [GitHub CLI](https://cli.github.com/) (`gh`) được cài đặt và xác thực.
501
- Chạy `gh auth login` với một token truy cập cá nhân có phạm vi `repo` để truy cập đọc
502
- pull request. Nếu `gh` không được cài đặt hoặc không được xác thực, chính sách fail open và báo cáo lý do cho Claude.
538
+ Chạy `gh auth login` với một token truy cập cá nhân có phạm vi `repo` để truy cập đọc các yêu cầu kéo. Nếu `gh` không được cài đặt hoặc không được xác thực, chính sách sẽ fail open và báo cáo lý do cho Claude.
503
539
  </Note>
504
540
 
505
541
  ---
@@ -507,14 +543,13 @@ pull request. Nếu `gh` không được cài đặt hoặc không được xác
507
543
  ### `require-ci-green-before-stop`
508
544
 
509
545
  **Sự kiện:** Stop
510
- **Mặc định:** Từ chối dừng khi các kiểm tra CI đang thất bại hoặc vẫn chạy trên nhánh hiện tại. Kiểm tra cả chạy quy trình GitHub Actions và kiểm tra bot của bên thứ ba (ví dụ: CodeRabbit, SonarCloud, Codecov). Xem xét kết luận `skipped` thành công. Trả về thông báo thông tin khi tất cả các kiểm tra vượt qua.
546
+ **Mặc định:** Từ chối dừng khi các kiểm tra CI đang thất bại hoặc vẫn đang chạy trên nhánh hiện tại. Kiểm tra cả chạy quy trình làm việc GitHub Actions và kiểm tra bot của bên thứ ba (ví dụ: CodeRabbit, SonarCloud, Codecov). Coi `skipped` và `cancelled` kết luận thành công. Trả về thông báo thông tin khi tất cả các kiểm tra đều đạt.
511
547
 
512
548
  Không có tham số.
513
549
 
514
550
  <Note>
515
551
  Chính sách này yêu cầu [GitHub CLI](https://cli.github.com/) (`gh`) được cài đặt và xác thực.
516
- Chạy `gh auth login` với một token truy cập cá nhân có phạm vi `repo` để truy cập đọc
517
- chạy quy trình Actions và API Kiểm tra. Nếu `gh` không được cài đặt hoặc không được xác thực, chính sách fail open và báo cáo lý do cho Claude.
552
+ Chạy `gh auth login` với một token truy cập cá nhân có phạm vi `repo` để truy cập đọc các chạy quy trình làm việc Actions và API Kiểm tra. Nếu `gh` không được cài đặt hoặc không được xác thực, chính sách sẽ fail open và báo cáo lý do cho Claude.
518
553
  </Note>
519
554
 
520
555
  ---
@@ -534,4 +569,4 @@ Xóa một chính sách cụ thể khỏi `enabledPolicies` trong cấu hình c
534
569
  }
535
570
  ```
536
571
 
537
- Các chính sách không được liệt kê trong `enabledPolicies` không chạy, ngay cả khi có mục nhập `policyParams` cho chúng.
572
+ Các chính sách không được liệt kê trong `enabledPolicies` không chạy, ngay cả khi có các mục `policyParams` tồn tại cho chúng.