Skip to content

Skill Samples – Ví dụ về Agent Skills

Tài liệu này tổng hợp một số Agent Skills mẫu để minh họa cách tạo và sử dụng skills hiệu quả. Mỗi ví dụ bao gồm cấu trúc thư mục, nội dung SKILL.md, phân tích chi tiết và bài học rút ra.


1. Skill: Scaffold React Component

Mục đích: Tạo React component mới theo đúng convention của dự án.

Cấu trúc thư mục

.github/skills/scaffold-react-component/
├── SKILL.md
└── templates/
    └── Component.tsx.template

SKILL.md

---
name: scaffold-react-component
description: Tạo React component mới theo convention của dự án. Kích hoạt khi user yêu cầu tạo component, page, hoặc UI element mới trong React.
---

# Scaffold React Component

## Quy tắc tạo component

### Cấu trúc thư mục
Mỗi component phải nằm trong thư mục riêng:

    src/components/<ComponentName>/
    ├── index.tsx           # Component chính
    ├── styles.module.css   # CSS Modules
    ├── types.ts            # TypeScript interfaces
    └── __tests__/
        └── <ComponentName>.test.tsx

### Coding Conventions
- Sử dụng **functional components** với TypeScript
- Props interface: `<ComponentName>Props`
- Export default từ `index.tsx`
- CSS Modules cho styling, không dùng inline styles
- Mỗi component phải có ít nhất 1 unit test

### Template
Tham khảo [Component.tsx.template](./templates/Component.tsx.template) cho cấu trúc cơ bản.

### Ví dụ
Khi user yêu cầu "Tạo component Button", hãy:
1. Tạo thư mục `src/components/Button/`
2. Tạo `index.tsx` với ButtonProps interface
3. Tạo `styles.module.css` với class `.button`
4. Tạo test file cơ bản
5. Export trong `src/components/index.ts`

Phân tích

Thành phần Giá trị
Trigger Khi user yêu cầu tạo component mới
Output Bộ file hoàn chỉnh theo convention
Tài nguyên bổ sung Template file trong thư mục templates/

Bài học rút ra: Skill này đảm bảo mọi component mới đều tuân theo cùng một cấu trúc. Thay vì phải giải thích convention mỗi lần, Copilot tự động áp dụng đúng pattern.


2. Skill: Git Commit Convention

Mục đích: Đảm bảo commit message tuân theo Conventional Commits.

SKILL.md

---
name: git-commit-convention
description: Viết commit message theo Conventional Commits. Kích hoạt khi user yêu cầu tạo commit, viết commit message, hoặc commit code.
---

# Git Commit Convention

## Format

    <type>(<scope>): <subject>

    <body>

    <footer>

## Types
- `feat`: Tính năng mới
- `fix`: Sửa lỗi
- `docs`: Thay đổi documentation
- `style`: Formatting, không thay đổi logic
- `refactor`: Refactor code, không thêm feature hay fix bug
- `test`: Thêm hoặc sửa test
- `chore`: Thay đổi build process, auxiliary tools

## Quy tắc
- Subject không quá 50 ký tự
- Viết bằng tiếng Anh
- Không kết thúc subject bằng dấu chấm
- Dùng imperative mood: "Add feature" thay vì "Added feature"
- Body giải thích WHY, không phải WHAT

## Ví dụ
- `feat(auth): add OAuth2 login with Google`
- `fix(api): handle null response from payment gateway`
- `refactor(utils): extract date formatting to shared helper`

Phân tích

Thành phần Giá trị
Trigger Khi user yêu cầu commit hoặc viết commit message
Output Commit message đúng format
Đặc điểm Không cần tài nguyên bổ sung, chỉ cần instructions

Bài học rút ra: Không phải skill nào cũng cần scripts hay templates. Đôi khi chỉ cần hướng dẫn rõ ràng là đủ để Copilot thực hiện đúng.


3. Skill: API Endpoint Generator

Mục đích: Tạo REST API endpoint mới theo chuẩn của dự án.

Cấu trúc thư mục

.github/skills/create-api-endpoint/
├── SKILL.md
└── examples/
    ├── controller-example.ts
    ├── service-example.ts
    └── test-example.ts

SKILL.md

---
name: create-api-endpoint
description: Tạo REST API endpoint mới bao gồm controller, service, validation và test. Kích hoạt khi user yêu cầu tạo API, endpoint, route mới.
---

# Tạo REST API Endpoint

## Kiến trúc

Mỗi endpoint tuân theo kiến trúc 3 lớp:

    Controller (routes + validation)
        ↓
    Service (business logic)
        ↓
    Repository (database access)

## Các file cần tạo

Khi tạo endpoint mới cho resource `<Resource>`:

1. **Controller**: `src/controllers/<resource>.controller.ts`
   - Định nghĩa routes
   - Input validation với Zod schema
   - Gọi service methods

2. **Service**: `src/services/<resource>.service.ts`
   - Business logic
   - Error handling
   - Gọi repository methods

3. **Validation**: `src/validators/<resource>.validator.ts`
   - Zod schemas cho request body, params, query

4. **Test**: `src/__tests__/<resource>.test.ts`
   - Unit test cho service
   - Integration test cho controller

## HTTP Methods và Status Codes

| Method | Action | Success Code | Error Code |
|--------|--------|-------------|------------|
| GET    | List   | 200         | 404        |
| GET    | Detail | 200         | 404        |
| POST   | Create | 201         | 400, 409   |
| PUT    | Update | 200         | 400, 404   |
| DELETE | Delete | 204         | 404        |

## Ví dụ
Tham khảo các file trong thư mục [examples/](./examples/) để xem mẫu triển khai.

Phân tích

Thành phần Giá trị
Trigger Khi user yêu cầu tạo API endpoint mới
Output Bộ file hoàn chỉnh (controller, service, validator, test)
Tài nguyên Examples cho từng loại file

Bài học rút ra: Với các tác vụ tạo nhiều file liên quan, skill nên mô tả rõ kiến trúc và mối quan hệ giữa các file. Ví dụ mẫu trong thư mục examples/ giúp Copilot hiểu chính xác code style mong muốn.


4. Skill: Code Review Checklist

Mục đích: Thực hiện code review theo checklist chuẩn.

SKILL.md

---
name: code-review-checklist
description: Review code theo checklist bảo mật và chất lượng. Kích hoạt khi user yêu cầu review code, kiểm tra code quality, hoặc security review.
---

# Code Review Checklist

## Quy trình review

Thực hiện review theo thứ tự ưu tiên:

### 1. Security (Ưu tiên cao nhất)
- [ ] Input validation: Mọi input từ user đều được validate
- [ ] SQL Injection: Sử dụng parameterized queries
- [ ] XSS: Output được escape đúng cách
- [ ] Authentication: Endpoints yêu cầu auth được bảo vệ
- [ ] Secrets: Không có hardcoded credentials, API keys

### 2. Correctness
- [ ] Logic đúng theo requirements
- [ ] Edge cases được xử lý (null, empty, boundary values)
- [ ] Error handling phù hợp
- [ ] Race conditions (nếu có concurrency)

### 3. Performance
- [ ] Không có N+1 query
- [ ] Indexes phù hợp cho queries thường dùng
- [ ] Không có memory leaks (event listeners, subscriptions)
- [ ] Caching hợp lý cho dữ liệu ít thay đổi

### 4. Maintainability
- [ ] Code dễ đọc, tên biến/hàm rõ nghĩa
- [ ] Không có code duplicate
- [ ] Functions không quá dài (< 30 dòng)
- [ ] Có test coverage cho logic quan trọng

## Format báo cáo

    ## Code Review Report

    ### Tổng quan
    [Tóm tắt ngắn về code được review]

    ### Vấn đề tìm thấy

    #### Critical
    - [Mô tả vấn đề + file:line + đề xuất sửa]

    #### Warning
    - [Mô tả vấn đề + file:line + đề xuất sửa]

    #### Suggestion
    - [Gợi ý cải thiện]

    ### Kết luận
    [Đánh giá tổng thể + recommendation]

Phân tích

Thành phần Giá trị
Trigger Khi user yêu cầu review code
Output Báo cáo review có cấu trúc
Đặc điểm Checklist + format báo cáo chuẩn

Bài học rút ra: Skills dạng checklist rất hiệu quả vì chúng đảm bảo không bỏ sót bước nào. Format báo cáo chuẩn giúp output nhất quán và dễ đọc.


5. Skill: Deploy Checklist

Mục đích: Kiểm tra các điều kiện trước khi deploy.

SKILL.md

---
name: deploy-checklist
description: Kiểm tra danh sách các điều kiện cần thiết trước khi deploy. Kích hoạt khi user đề cập đến deploy, release, hoặc go-live.
---

# Pre-Deploy Checklist

## Trước khi deploy

### Code Quality
- [ ] Tất cả tests pass
- [ ] Không có lint errors
- [ ] Code đã được review và approve
- [ ] Branch đã được merge từ main/develop mới nhất

### Environment
- [ ] Environment variables đã được cấu hình
- [ ] Database migrations đã sẵn sàng
- [ ] Third-party services đã được kiểm tra kết nối
- [ ] SSL certificates còn hiệu lực

### Monitoring
- [ ] Health check endpoint hoạt động
- [ ] Logging đã được cấu hình
- [ ] Alerts đã được thiết lập
- [ ] Rollback plan đã sẵn sàng

### Communication
- [ ] Team đã được thông báo về deploy schedule
- [ ] Changelog/release notes đã được chuẩn bị
- [ ] Customer support đã được brief (nếu có breaking changes)

Phân tích

Thành phần Giá trị
Trigger Khi user đề cập đến deploy hoặc release
Output Checklist kiểm tra pre-deploy

Bài học rút ra: Skill không chỉ dành cho code – nó có thể giúp standardize bất kỳ quy trình nào trong team.


Tổng kết

Các Pattern phổ biến khi tạo Skills

Pattern Mô tả Ví dụ
Scaffold Pattern Tạo bộ file theo template React Component, API Endpoint
Convention Pattern Enforce quy tắc nhất quán Commit Convention
Checklist Pattern Đảm bảo không bỏ sót Code Review, Deploy Checklist
Generator Pattern Tạo output có cấu trúc Migration, Documentation

Tips tạo Skill hiệu quả

  1. Description là chìa khóa: Viết description cụ thể với các từ khóa trigger rõ ràng
  2. Một skill, một mục đích: Tránh tạo skill quá phức tạp làm nhiều việc
  3. Kèm ví dụ: Copilot học tốt nhất từ examples cụ thể
  4. Test skill của bạn: Thử nhiều prompt khác nhau để đảm bảo skill được kích hoạt đúng lúc
  5. Chia sẻ với team: Commit skills vào .github/skills/ để team cùng hưởng lợi

Tài nguyên

  • Repository github/awesome-copilot chứa nhiều skills mẫu từ cộng đồng
  • Sử dụng lệnh /create-skill trong Copilot Chat để tạo skill nhanh