25 KiB
| title | description | sidebar | ||
|---|---|---|---|---|
| Cách tùy chỉnh BMad | Tùy chỉnh agent và workflow trong khi vẫn giữ khả năng tương thích khi cập nhật |
|
Điều chỉnh persona của agent, chèn ngữ cảnh theo domain, thêm khả năng mới và cấu hình hành vi workflow mà không cần sửa các file đã cài. Các tùy chỉnh của bạn sẽ được giữ nguyên qua mọi lần cập nhật.
:::tip[Không muốn tự viết TOML? Hãy dùng bmad-customize]
Skill bmad-customize là trợ lý tạo cấu hình có hướng dẫn cho bề mặt override agent/workflow theo từng skill được mô tả trong tài liệu này. Nó quét những gì có thể tùy chỉnh trong bản cài đặt của bạn, giúp bạn chọn đúng bề mặt (agent hay workflow), ghi file override và xác minh merge đã áp dụng. Override ở mức cấu hình trung tâm (_bmad/custom/config.toml) chưa nằm trong phạm vi v1, nên phần đó vẫn cần viết tay theo mục Cấu hình trung tâm bên dưới. Hãy chạy skill này khi bạn muốn thay đổi theo từng skill; tài liệu này là phần tham chiếu cho có thể tùy chỉnh gì và merge hoạt động ra sao.
:::
Khi nào nên dùng
- Bạn muốn thay đổi tính cách hoặc phong cách giao tiếp của agent
- Bạn cần cung cấp cho agent các "persistent facts" để luôn nhớ, ví dụ "tổ chức của chúng tôi chỉ dùng AWS"
- Bạn muốn thêm các bước khởi động có tính thủ tục mà agent phải chạy mỗi phiên
- Bạn muốn thêm menu item tùy chỉnh để gọi skill hoặc prompt riêng
- Team của bạn cần các tùy chỉnh dùng chung được commit vào git, đồng thời vẫn cho phép mỗi cá nhân chồng thêm sở thích riêng
:::note[Điều kiện tiên quyết]
- BMad đã được cài trong dự án của bạn (xem Cách cài đặt BMad)
- Python 3.11+ có trên PATH của bạn (để chạy resolver; dùng stdlib
tomllib, không cầnpip install,uvhay virtualenv) - Một trình soạn thảo văn bản cho file TOML :::
Cách hoạt động
Mỗi skill có thể tùy chỉnh đều đi kèm một file customize.toml chứa cấu hình mặc định. File này định nghĩa toàn bộ bề mặt tùy chỉnh của skill, nên hãy đọc nó để biết có thể chỉnh gì. Bạn không bao giờ sửa trực tiếp file này. Thay vào đó, bạn tạo các file override dạng thưa, chỉ chứa những trường bạn muốn đổi.
Mô hình override ba lớp
Ưu tiên 1 (thắng): _bmad/custom/{skill-name}.user.toml (cá nhân, bị gitignore)
Ưu tiên 2: _bmad/custom/{skill-name}.toml (team/tổ chức, được commit)
Ưu tiên 3 (gốc): customize.toml của chính skill (mặc định)
Thư mục _bmad/custom/ ban đầu là rỗng. File chỉ xuất hiện khi ai đó thực sự bắt đầu tùy chỉnh.
Quy tắc merge theo hình dạng, không theo tên trường
Resolver áp dụng bốn quy tắc cấu trúc. Tên trường không được hardcode riêng; hành vi hoàn toàn được quyết định bởi dạng dữ liệu:
| Dạng | Quy tắc |
|---|---|
| Scalar (string, int, bool, float) | Giá trị override sẽ thắng |
| Table | Deep merge, tức merge đệ quy theo các quy tắc này |
Mảng các table mà mọi phần tử đều dùng cùng một trường định danh (code ở tất cả phần tử, hoặc id ở tất cả phần tử) |
Merge theo khóa đó, phần tử trùng khóa sẽ thay tại chỗ, phần tử mới sẽ append |
Mọi mảng khác (mảng scalar, table không có định danh, hoặc trộn code và id) |
Append: phần tử gốc trước, rồi team, rồi user |
Không có cơ chế xóa. Override không thể xóa phần tử mặc định. Nếu bạn cần vô hiệu hóa một menu item mặc định, hãy override nó theo code bằng mô tả hoặc prompt no-op. Nếu cần tái cấu trúc mảng sâu hơn, bạn phải fork skill.
Quy ước code / id. BMad dùng code (định danh ngắn như "BP" hoặc "R1") và id (định danh ổn định dài hơn) làm merge key cho mảng các table. Nếu bạn tự tạo một mảng table muốn có khả năng replace-by-key thay vì append-only, hãy chọn một quy ước duy nhất và dùng nhất quán cho toàn bộ mảng. Nếu trộn code ở phần tử này và id ở phần tử khác, resolver sẽ rơi về chế độ append vì nó không đoán merge theo khóa nào.
Một số trường của agent là chỉ đọc
agent.name và agent.title vẫn nằm trong customize.toml như metadata nguồn gốc, nhưng SKILL.md của agent không đọc hai trường này ở runtime, vì danh tính của agent được hardcode. Bạn đặt name = "Bob" trong file override cũng sẽ không có tác dụng. Nếu bạn thật sự cần một agent với tên khác, hãy copy thư mục skill, đổi tên và phát hành nó như một custom skill.
Các bước thực hiện
1. Tìm bề mặt tùy chỉnh của skill
Hãy mở file customize.toml trong thư mục skill đã được cài. Ví dụ với PM agent:
.claude/skills/bmad-agent-pm/customize.toml
(Đường dẫn cụ thể thay đổi theo IDE: Cursor dùng .cursor/skills/, Cline dùng .cline/skills/, v.v.)
Đây là schema chính thức. Mọi trường bạn nhìn thấy trong file này đều có thể tùy chỉnh, ngoại trừ các trường danh tính chỉ đọc đã nêu ở trên.
2. Tạo file override của bạn
Tạo thư mục _bmad/custom/ ở root dự án nếu nó chưa tồn tại. Sau đó tạo file đặt theo tên skill:
_bmad/custom/
bmad-agent-pm.toml # override của team (commit vào git)
bmad-agent-pm.user.toml # sở thích cá nhân (gitignore)
:::caution[KHÔNG copy nguyên file customize.toml]
File override phải thưa. Chỉ đưa vào những trường bạn thực sự muốn đổi, không hơn.
Mọi trường bạn bỏ qua sẽ tự động được kế thừa từ lớp bên dưới. Nếu bạn copy toàn bộ customize.toml vào file override, những bản cập nhật sau này sẽ không chảy vào các giá trị mặc định mới nữa và bạn sẽ âm thầm bị lệch qua mỗi release.
:::
Ví dụ: đổi icon và thêm một principle
# _bmad/custom/bmad-agent-pm.toml
# Chỉ ghi những trường cần đổi. Phần còn lại vẫn kế thừa.
[agent]
icon = "🏥"
principles = [
"Không phát hành bất cứ thứ gì không thể vượt qua kiểm toán của FDA.",
]
Ví dụ này append thêm principle mới vào danh sách mặc định và thay icon. Mọi trường khác vẫn giữ nguyên như bản gốc.
3. Tùy chỉnh đúng phần bạn cần
Mọi ví dụ bên dưới đều giả định schema agent phẳng của BMad. Các trường nằm trực tiếp trong [agent], không có các sub-table như metadata hay persona.
Scalar (icon, role, identity, communication_style). Scalar override sẽ thắng, nên bạn chỉ cần đặt những trường đang muốn đổi:
# _bmad/custom/bmad-agent-pm.toml
[agent]
icon = "🏥"
role = "Dẫn dắt product discovery cho domain healthcare có ràng buộc pháp lý."
communication_style = "Chính xác, nhạy với compliance, đặt các câu hỏi mang hình dạng kiểm soát ngay từ sớm."
Persistent facts, principles, activation hooks (các mảng append). Bốn mảng dưới đây đều là append-only. Phần tử của team được thêm sau mặc định, phần tử user được thêm cuối cùng.
[agent]
# Các fact tĩnh mà agent luôn giữ trong đầu trong cả phiên: quy tắc tổ chức,
# hằng số domain, sở thích của người dùng. Khác với runtime memory sidecar.
#
# Mỗi mục có thể là một câu literal, hoặc tham chiếu `file:` để nạp nội dung
# file làm facts (hỗ trợ cả glob).
persistent_facts = [
"Tổ chức của chúng tôi chỉ dùng AWS, không đề xuất GCP hay Azure.",
"Mọi PRD đều phải có legal sign-off trước khi engineering kickoff.",
"Người dùng mục tiêu là bác sĩ lâm sàng, không phải bệnh nhân, nên ví dụ phải bám theo đối tượng đó.",
"file:{project-root}/docs/compliance/hipaa-overview.md",
"file:{project-root}/_bmad/custom/company-glossary.md",
]
# Thêm vào hệ giá trị của agent
principles = [
"Không phát hành bất cứ thứ gì không thể vượt qua kiểm toán của FDA.",
"Giá trị người dùng là trước hết, compliance là luôn luôn.",
]
# Chạy TRƯỚC activation tiêu chuẩn (persona, persistent_facts, config, greet).
# Dùng cho pre-flight load, compliance checks, hoặc thứ gì cần có sẵn trong
# context trước khi agent tự giới thiệu.
activation_steps_prepend = [
"Quét {project-root}/docs/compliance/ và nạp mọi tài liệu liên quan HIPAA vào context.",
]
# Chạy SAU khi greet, TRƯỚC menu. Dùng cho thiết lập nặng về context mà bạn
# muốn chạy sau khi người dùng đã được chào.
activation_steps_append = [
"Đọc {project-root}/_bmad/custom/company-glossary.md nếu file tồn tại.",
]
Hai hook này có vai trò khác nhau. prepend chạy trước lời chào để agent có thể nạp ngữ cảnh cần thiết ngay cả khi cá nhân hóa lời chào. append chạy sau lời chào để người dùng không phải nhìn màn hình trống trong lúc agent quét một lượng lớn context.
Tùy chỉnh menu (merge theo code). Menu là một mảng table. Mỗi item có trường code, nên resolver merge theo mã này: item có code trùng sẽ thay tại chỗ, item mới sẽ được append.
Với TOML array-of-tables, mỗi item dùng cú pháp [[agent.menu]]:
# Thay item CE hiện có bằng một custom skill
[[agent.menu]]
code = "CE"
description = "Tạo Epic theo framework delivery của tổ chức"
skill = "custom-create-epics"
# Thêm item mới (RC chưa tồn tại trong mặc định)
[[agent.menu]]
code = "RC"
description = "Chạy compliance pre-check"
prompt = """
Đọc {project-root}/_bmad/custom/compliance-checklist.md
và quét toàn bộ tài liệu trong {planning_artifacts} theo checklist đó.
Báo cáo mọi khoảng trống và trích dẫn điều khoản quy định tương ứng.
"""
Mỗi menu item chỉ có đúng một trong hai trường skill hoặc prompt. Những item không xuất hiện trong file override của bạn sẽ giữ nguyên mặc định.
Tham chiếu file. Khi một trường văn bản cần trỏ tới file (trong persistent_facts, activation_steps_prepend, activation_steps_append, hoặc prompt của menu item), hãy dùng đường dẫn đầy đủ dựa trên {project-root}. Dù file nằm cạnh override trong _bmad/custom/, bạn vẫn nên viết rõ là {project-root}/_bmad/custom/info.md. Agent sẽ resolve {project-root} ở runtime.
4. Cá nhân và team
File của team (bmad-agent-pm.toml): commit vào git, áp dụng cho cả tổ chức. Dùng cho compliance rules, company persona, năng lực tùy chỉnh dùng chung.
File cá nhân (bmad-agent-pm.user.toml): tự động bị gitignore. Dùng cho điều chỉnh giọng điệu, sở thích workflow cá nhân và các fact riêng mà agent cần lưu ý cho riêng bạn.
# _bmad/custom/bmad-agent-pm.user.toml
[agent]
persistent_facts = [
"Khi trình bày phương án, luôn kèm ước lượng độ phức tạp ở mức thô (low/medium/high).",
]
Cách quá trình resolve diễn ra
Khi agent được kích hoạt, SKILL.md của nó sẽ gọi một shared Python script để merge ba lớp nói trên và trả về block kết quả ở dạng JSON. Script này dùng tomllib của Python stdlib, nên python3 thuần là đủ:
python3 {project-root}/_bmad/scripts/resolve_customization.py \
--skill {skill-root} \
--key agent
Yêu cầu: Python 3.11+ vì các phiên bản cũ hơn không có tomllib. Không cần pip install, không cần uv, không cần virtualenv. Bạn có thể kiểm tra bằng python3 --version. Trên một số nền tảng, python3 mặc định vẫn là 3.10 hoặc thấp hơn, nên có thể bạn sẽ phải cài 3.11+ riêng.
--skill trỏ vào thư mục skill đã cài, nơi có file customize.toml. Tên skill được lấy từ basename của thư mục, sau đó script sẽ tự tìm _bmad/custom/{skill-name}.toml và {skill-name}.user.toml.
Một số lệnh hữu ích:
# Resolve toàn bộ block agent
python3 {project-root}/_bmad/scripts/resolve_customization.py \
--skill /duong-dan/tuyet-doi/toi/bmad-agent-pm \
--key agent
# Resolve một trường cụ thể
python3 {project-root}/_bmad/scripts/resolve_customization.py \
--skill /duong-dan/tuyet-doi/toi/bmad-agent-pm \
--key agent.icon
# Dump toàn bộ
python3 {project-root}/_bmad/scripts/resolve_customization.py \
--skill /duong-dan/tuyet-doi/toi/bmad-agent-pm
Đầu ra luôn là JSON. Nếu script này không khả dụng trên một nền tảng nào đó, SKILL.md sẽ hướng dẫn agent đọc trực tiếp ba file TOML và áp dụng cùng các quy tắc merge.
Tùy chỉnh workflow
Workflow, tức các skill điều phối tiến trình nhiều bước như bmad-product-brief, dùng cùng cơ chế override như agent. Khác biệt là bề mặt tùy chỉnh của chúng nằm dưới [workflow] thay vì [agent]:
# _bmad/custom/bmad-product-brief.toml
[workflow]
# Giống agent: prepend/append chạy trước và sau activation mặc định của
# workflow. Override sẽ append vào mặc định.
activation_steps_prepend = [
"Nạp {project-root}/docs/product/north-star-principles.md làm context.",
]
activation_steps_append = []
# Cũng dùng semantics literal-hoặc-file: như phía agent. Những fact này được
# nạp làm context nền tảng trong suốt lần chạy workflow.
persistent_facts = [
"Mọi brief đều phải có một mục explicit về regulatory risk.",
"file:{project-root}/docs/compliance/product-brief-checklist.md",
]
# Scalar: chạy đúng một lần khi workflow hoàn tất output chính. Override thắng.
on_complete = "Tóm tắt brief trong ba gạch đầu dòng rồi hỏi người dùng có muốn gửi email qua skill gws-gmail-send không."
Cùng một quy ước trường có thể đi xuyên qua ranh giới agent/workflow: activation_steps_prepend, activation_steps_append, persistent_facts với tham chiếu file:, và các table kiểu menu [[...]] dùng code hoặc id làm khóa merge. Resolver áp dụng đúng bốn quy tắc cấu trúc đã nêu bất kể top-level key là gì. Tham chiếu từ SKILL.md cũng theo namespace tương ứng: {workflow.activation_steps_prepend}, {workflow.persistent_facts}, {workflow.on_complete}. Mọi trường bổ sung mà một workflow tự expose, ví dụ output path, toggle, review setting hay stage flag, cũng sẽ đi theo cùng cơ chế merge dựa trên shape. Muốn biết chính xác workflow đó cho chỉnh gì, hãy đọc customize.toml của nó.
Thứ tự activation
Workflow có thể tùy chỉnh sẽ chạy activation theo thứ tự cố định để bạn biết hook của mình được kích hoạt khi nào:
- Resolve block
[workflow]bằng merge base -> team -> user - Chạy
activation_steps_prependtheo đúng thứ tự - Nạp
persistent_factslàm ngữ cảnh nền tảng cho cả lần chạy - Nạp config (
_bmad/bmm/config.yaml) và resolve các biến chuẩn như tên dự án, ngôn ngữ, đường dẫn, ngày tháng - Chào người dùng
- Chạy
activation_steps_appendtheo đúng thứ tự
Sau bước 6, phần thân chính của workflow mới bắt đầu. Hãy dùng activation_steps_prepend khi bạn cần load context trước cả lúc cá nhân hóa lời chào; dùng activation_steps_append khi phần thiết lập khá nặng và bạn muốn người dùng thấy lời chào trước.
Phạm vi của đợt triển khai đầu tiên này
Khả năng tùy chỉnh đang được mở rộng dần. Những trường đã mô tả ở trên, gồm activation_steps_prepend, activation_steps_append, persistent_facts, on_complete, là bề mặt nền tảng mà mọi workflow có thể tùy chỉnh đều sẽ hỗ trợ, và chúng sẽ ổn định qua các phiên bản. Ngày hôm nay, chỉ với những trường này bạn đã có thể kiểm soát những điểm lớn: thêm bước trước/sau, ghim context nền tảng, kích hoạt hành động tiếp theo sau khi workflow hoàn tất.
Theo thời gian, từng workflow sẽ expose thêm các điểm tùy chỉnh chuyên biệt hơn gắn với chính công việc của workflow đó, ví dụ toggle ở từng bước, stage flag, đường dẫn template đầu ra hoặc review gate. Khi những trường đó xuất hiện, chúng sẽ được chồng thêm lên bề mặt nền tảng chứ không thay thế nó, nên những tùy chỉnh bạn viết hôm nay vẫn tiếp tục dùng được.
Nếu bạn đang cần một "núm tinh chỉnh" chi tiết hơn nhưng workflow chưa expose, hãy tạm dùng activation_steps_* và persistent_facts để điều hướng hành vi, hoặc mở issue mô tả chính xác điểm tùy chỉnh bạn muốn. Chính những nhu cầu đó sẽ quyết định trường nào được bổ sung tiếp theo.
Cấu hình trung tâm
customize.toml theo từng skill bao phủ hành vi sâu như hook, menu, persistent_facts, override persona cho một agent hay workflow đơn lẻ. Một bề mặt khác sẽ bao phủ trạng thái cắt ngang như các câu trả lời lúc cài đặt và roster agent mà những skill bên ngoài như bmad-party-mode, bmad-retrospective và bmad-advanced-elicitation sử dụng. Bề mặt đó nằm trong bốn file TOML ở root dự án:
_bmad/config.toml (do installer quản lý) team scope: câu trả lời lúc cài đặt + agent roster
_bmad/config.user.toml (do installer quản lý) user scope: user_name, language, skill level
_bmad/custom/config.toml (do con người viết) team overrides (commit vào git)
_bmad/custom/config.user.toml (do con người viết) personal overrides (gitignore)
Merge bốn lớp
Ưu tiên 1 (thắng): _bmad/custom/config.user.toml
Ưu tiên 2: _bmad/custom/config.toml
Ưu tiên 3: _bmad/config.user.toml
Ưu tiên 4 (gốc): _bmad/config.toml
Các quy tắc cấu trúc hoàn toàn giống phần per-skill customize: scalar override, table deep-merge, mảng dùng code hoặc id sẽ merge theo khóa, các mảng khác thì append.
Cái gì nằm ở đâu
Installer sẽ phân chia câu trả lời theo scope: khai báo trên từng prompt trong module.yaml:
- Các section
[core]và[modules.<code>]: chứa câu trả lời khi cài.scope = teamsẽ được ghi vào_bmad/config.toml;scope = usersẽ nằm trong_bmad/config.user.toml - Section
[agents.<code>]: "bản chất" của agent gồm code, name, title, icon, description, team, được chưng cất từ khốiagents:trongmodule.yamlcủa từng module. Phần này luôn ở scope team
Quy tắc chỉnh sửa
_bmad/config.tomlvà_bmad/config.user.tomlsẽ được tạo lại sau mỗi lần cài đặt từ những câu trả lời mà installer thu thập. Hãy coi chúng là output chỉ đọc; mọi chỉnh sửa trực tiếp sẽ bị ghi đè ở lần cài tiếp theo. Nếu muốn thay đổi bền vững một giá trị cài đặt, hãy chạy lại installer hoặc chồng giá trị đó bằng_bmad/custom/config.toml_bmad/custom/config.tomlvà_bmad/custom/config.user.tomlsẽ không bao giờ bị installer động vào. Đây mới là bề mặt đúng để thêm custom agent, override descriptor của agent, ép các thiết lập dùng chung cho team và ghim mọi giá trị bạn muốn giữ nguyên bất kể câu trả lời lúc cài là gì
Ví dụ: đổi thương hiệu cho một agent
# _bmad/custom/config.toml (commit vào git, áp dụng cho mọi developer)
[agents.bmad-agent-pm]
description = "PM trong domain healthcare, nhạy với compliance, luôn đặt câu hỏi theo hướng FDA ngay từ đầu."
icon = "🏥"
Resolver sẽ merge đè lên [agents.bmad-agent-pm] do installer sinh ra. bmad-party-mode và mọi roster consumer khác sẽ tự động thấy description mới này.
Ví dụ: thêm một agent hư cấu
# _bmad/custom/config.user.toml (cá nhân, gitignore)
[agents.kirk]
team = "startrek"
name = "Captain James T. Kirk"
title = "Starship Captain"
icon = "🖖"
description = "Một chỉ huy táo bạo, thích bẻ luật. Nói chuyện có các quãng ngắt đầy kịch tính. Suy nghĩ thành tiếng về gánh nặng của quyền chỉ huy."
Không cần tạo thư mục skill. Chỉ riêng "essence" này cũng đủ để party-mode spawn Kirk như một giọng nói trong cuộc bàn tròn. Bạn có thể lọc theo trường team để chỉ mời nhóm Enterprise.
Ví dụ: override thiết lập cài đặt của module
# _bmad/custom/config.toml
[modules.bmm]
planning_artifacts = "/shared/org-planning-artifacts"
Giá trị override này sẽ thắng mọi câu trả lời mà từng developer đã nhập khi cài trên máy của họ. Rất hữu ích khi bạn muốn ghim convention của cả team.
Khi nào dùng bề mặt nào
| Nhu cầu | Bề mặt nên dùng |
|---|---|
| Thêm lời nhắc gọi MCP tool vào mọi dev workflow | Theo từng skill: _bmad/custom/bmad-agent-dev.toml trong persistent_facts |
| Thêm menu item cho một agent | Theo từng skill: _bmad/custom/bmad-agent-{role}.toml với [[agent.menu]] |
| Đổi template đầu ra của một workflow | Theo từng skill: _bmad/custom/{workflow}.toml bằng scalar override |
| Đổi descriptor công khai của một agent | Cấu hình trung tâm: _bmad/custom/config.toml ở [agents.<code>] |
| Thêm custom agent hoặc agent hư cấu vào roster | Cấu hình trung tâm: _bmad/custom/config*.toml với entry mới [agents.<code>] |
| Ghim thiết lập cài đặt dùng chung của team | Cấu hình trung tâm: _bmad/custom/config.toml trong [modules.<code>] hoặc [core] |
Trong cùng một dự án, bạn hoàn toàn có thể dùng đồng thời cả hai bề mặt này.
Ví dụ thực chiến
Để xem các recipe thiên về doanh nghiệp như định hình một agent trên mọi workflow mà nó dispatch, ép workflow tuân thủ convention nội bộ, publish output lên Confluence và Jira, tùy chỉnh agent roster, hoặc thay template đầu ra bằng template riêng của tổ chức, hãy xem Cách mở rộng BMad cho tổ chức của bạn.
Khắc phục sự cố
Tùy chỉnh không xuất hiện?
- Kiểm tra file của bạn có nằm đúng trong
_bmad/custom/và dùng đúng tên skill không - Kiểm tra cú pháp TOML: string phải có ngoặc kép, table header dùng
[section], array-of-tables dùng[[section]], và mọi khóa scalar hay array của một table phải xuất hiện trước bất kỳ[[subtables]]nào của table đó trong file - Với agent, phần tùy chỉnh phải nằm dưới
[agent], và các trường bên dưới header đó sẽ thuộcagentcho tới khi bạn mở table header khác - Hãy nhớ rằng
agent.namevàagent.titlelà chỉ đọc, override vào đó sẽ không có tác dụng
Tùy chỉnh bị hỏng sau khi update?
- Bạn có copy nguyên file
customize.tomlvào file override không? Đừng làm vậy. File override chỉ nên chứa phần chênh lệch. Nếu copy nguyên file, bạn sẽ khóa cứng mặc định cũ và dần lệch khỏi các bản phát hành mới.
Muốn biết có thể tùy chỉnh gì?
- Chạy skill
bmad-customize. Nó sẽ liệt kê mọi skill có thể tùy chỉnh trong dự án, cho biết skill nào đã có override, rồi dẫn bạn qua quá trình thêm hoặc sửa một override - Hoặc đọc trực tiếp
customize.tomlcủa skill. Mọi trường ở đó đều có thể tùy chỉnh, trừnamevàtitle
Muốn reset?
- Xóa file override của bạn trong
_bmad/custom/, skill sẽ tự động rơi về cấu hình mặc định tích hợp sẵn