“Đã cài nhưng không dùng được” có thể là lỗi nhận diện, lỗi chọn skill hoặc lỗi khi chạy công cụ. Xác định đang dừng ở bước nào sẽ giúp tránh cài lại nhiều lần mà vẫn giữ nguyên nguyên nhân.
“Installed but not working” can mean failed discovery, failed selection or a runtime failure. Identify the failing stage before repeatedly reinstalling the same files.
Trong bài nàyOn this page
1. Ghi triệu chứng trước khi sửa1. Record the symptom before changing anything
Ghi tên và phiên bản agent, thư mục đang mở, ID skill, cách cài, đường dẫn đích và thông báo lỗi nguyên văn. Dùng một skill để thử trước; thay nhiều thư mục hoặc cấu hình cùng lúc khiến khó biết thay đổi nào có tác dụng.
- Không có trong danh sách: kiểm tra discovery và phạm vi.
- Có trong danh sách nhưng agent bỏ qua: kiểm tra mô tả, tên gọi và chế độ invocation.
- Agent đọc runbook rồi lỗi: kiểm tra helper, runtime, đầu vào và quyền.
Record the agent and version, open directory, skill ID, installation method, destination and exact error. Start with one skill. Changing several paths or settings at once hides which change affected the outcome.
- Absent from the list: investigate discovery and scope.
- Listed but ignored: check its description, name and invocation mode.
- Runbook read, then failure: inspect helpers, runtime, inputs and permissions.
2. Nếu skill không xuất hiện2. If the skill is missing
- Đúng đường dẫn và máy: Codex hiện dùng
.agents/skills; Claude Code dùng.claude/skills. Phạm vi cá nhân nằm dưới home tương ứng. Một skill trên laptop chưa chắc tồn tại trong container, SSH host hoặc phiên cloud. - Đúng cấu trúc: cần
skills/ten-skill/SKILL.md, không thêm một tầng thư mục giải nén ngoài ý muốn. Kiểm tra cả chữ hoa củaSKILL.mdtrên hệ thống phân biệt hoa thường. - Frontmatter hợp lệ: các dấu
---phải bao quanh metadata;namevàdescriptioncần giá trị có nghĩa. Không sao chép cả dấu code fence Markdown vào tệp. - Phạm vi phiên làm việc: mở đúng repository và thử một phiên mới nếu ứng dụng chưa cập nhật danh sách. Với monorepo, kiểm tra vị trí thư mục con theo tài liệu agent.
- Symlink còn nguồn: nếu cài bằng
link, xác nhận clone VAS chưa bị di chuyển hoặc xóa. Một liên kết tồn tại vẫn có thể trỏ tới tệp đã mất.
- Correct path and machine: current Codex uses
.agents/skills; Claude Code uses.claude/skills. Personal locations sit under the corresponding home directory. A laptop installation may not exist in a container, SSH host or cloud session. - Correct structure: expect
skills/skill-name/SKILL.md, without an accidental extra archive directory. Check filename case on case-sensitive systems. - Valid frontmatter: surround metadata with
---; provide meaningfulnameanddescriptionvalues. Do not paste Markdown code fences into the file. - Session scope: open the correct repository and try a new session if the list is stale. For monorepos, check nested-directory behavior in the agent documentation.
- Live symlink target: a
linkinstallation needs its source clone. A symlink can exist even when its target has disappeared.
Đoạn Python sau chỉ đọc đường dẫn. Thay ví dụ bằng tệp của bạn; False nghĩa là chưa thấy một tệp thường ở vị trí đó.
This Python check only reads the path. Replace the example with your file; False means no regular file is available there.
from pathlib import Path
skill = Path("/absolute/path/to/project/.agents/skills/webapp-testing/SKILL.md")
print("Resolved path:", skill.resolve())
print("Runbook exists:", skill.is_file())
print("Skill folder is a link:", skill.parent.is_symlink())
3. Nếu có skill nhưng agent không chọn3. If the skill is available but not selected
Thử gọi trực tiếp theo giao diện agent: Codex CLI/IDE hỗ trợ chọn skill bằng $ hoặc /skills; Claude Code có /ten-skill cho skill cho phép gọi trực tiếp. Sau đó đối chiếu tên và đường dẫn runbook mà agent đọc.
Nếu gọi trực tiếp được nhưng tự chọn không ổn, xem lại description: nó có nêu đúng tác vụ đang yêu cầu không? Trong Claude Code, kiểm tra thêm disable-model-invocation và user-invocable. Đừng suy ra quy tắc của một agent áp dụng giống hệt cho agent khác.
Nếu có nhiều bản trùng tên ở các phạm vi, xác định bản được nạp trước khi cập nhật hoặc gỡ. Tránh cài thêm một bản thứ ba để thử vận may.
Try explicit invocation in the supported interface: Codex CLI/IDE offers $ selection or /skills; Claude Code supports /skill-name for user-invocable skills. Compare the loaded name and runbook path with the intended installation.
If explicit invocation works but automatic matching does not, check whether the description covers the requested task. In Claude Code, inspect disable-model-invocation and user-invocable too. Do not assume one application implements another application’s invocation rules.
When duplicate names exist across scopes, identify the loaded copy before updating or removing anything. Adding another duplicate makes diagnosis harder.
4. Nếu đọc được runbook nhưng tác vụ lỗi4. If the runbook loads but the task fails
Đây thường là vấn đề môi trường thực thi. Một runbook có thể cần scripts/, references/ hoặc assets đi kèm. Chỉ copy SKILL.md có thể làm thiếu thành phần; kiểm tra tệp cụ thể được nhắc trong thông báo lỗi và inventory nguồn.
Phân biệt thiếu tệp với thiếu package, trình duyệt, Docker, tài khoản hay quyền mạng. Ví dụ, webapp-testing được nhận diện không có nghĩa Playwright và browser runtime đã sẵn sàng. Chỉ thiết lập phần còn thiếu sau khi thống nhất phạm vi và quyền.
./vas status phản ánh thông tin mà CLI quản lý, không kiểm tra thay cho discovery của agent. Nếu thiếu receipt hợp lệ, không tự sửa manifest để ép gỡ tệp. Kiểm tra cách cài và quyền sở hữu thư mục trước.
This is usually an execution-environment problem. A runbook can depend on bundled scripts, references or assets. Copying only SKILL.md may omit them; inspect the exact missing path and source inventory.
Distinguish missing files from missing packages, browsers, Docker, accounts or network access. Discovering webapp-testing does not establish that Playwright and a browser runtime are ready. Provision only the missing prerequisites within the agreed scope.
./vas status reports CLI-managed information; it does not verify native agent discovery. If a valid receipt is absent, do not fabricate manifest entries to force removal. Check the installation method and directory ownership first.
5. Xác minh từng thay đổi5. Verify each change
Sau mỗi sửa đổi, lặp lại đúng thao tác thất bại ban đầu và ghi kết quả. Một báo cáo ngắn nên có mẫu sau; loại thông tin đăng nhập, token và nội dung riêng trước khi chia sẻ.
After each change, repeat the original failing action and record the result. Use a short report like this, removing credentials, tokens and private content before sharing.
Agent / version:
Working directory and execution environment:
Skill ID and resolved SKILL.md path:
Installation method and scope:
Expected behavior:
Observed error:
One change attempted:
Result of repeating the original check:
Remaining blocker:
Với lỗi khó tái hiện, áp dụng systematic-debugging để giữ từng giả thuyết và bằng chứng. Xem thêm hướng dẫn riêng cho Codex và Claude Code.
For harder failures, use systematic-debugging to track hypotheses and evidence. See the installation guides for Codex and Claude Code.