Hướng dẫn toàn diện để thiết lập các dự án CLI với các phương pháp hay nhất và khuyến nghị công cụ.
# Cli taste của AA
- Sử dụng pnpm làm trình quản lý gói (package manager) cho các dự án CLI. Độ tin cậy: 1.00
- Sử dụng TypeScript cho các dự án CLI. Độ tin cậy: 0.95
- Sử dụng tsup làm công cụ đóng gói (build tool) cho các dự án CLI. Độ tin cậy: 0.95
- Sử dụng vitest để kiểm thử các dự án CLI. Độ tin cậy: 0.95
- Sử dụng Commander.js để xử lý lệnh CLI. Độ tin cậy: 0.95
- Sử dụng clack cho việc nhập liệu tương tác của người dùng trong các dự án CLI. Độ tin cậy: 0.95
- Kiểm tra xung đột tên CLI hiện có trước khi chạy npm link. Độ tin cậy: 0.95
- Tổ chức các lệnh CLI trong một thư mục commands chuyên biệt với từng mô-đun được tách riêng. Độ tin cậy: 0.95
- Bao gồm một biểu ngữ chào mừng bằng nghệ thuật ASCII nhỏ kích thước 150px hiển thị tên CLI. Độ tin cậy: 0.95
- Sử dụng các cờ (flags) chữ thường cho các lệnh phiên bản và trợ giúp (-v, --version, -h, --help). Độ tin cậy: 0.85
- Bắt đầu các dự án với phiên bản 0.0.1 thay vì 1.0.0. Độ tin cậy: 0.85
- Lệnh kiểm tra phiên bản chỉ nên xuất ra số phiên bản mà không có nghệ thuật ASCII, biểu ngữ hay thông tin bổ sung nào khác. Độ tin cậy: 0.90
- Đọc phiên bản CLI từ package.json thay vì gán cứng (hardcode) trong mã nguồn. Độ tin cậy: 0.75
- Luôn sử dụng ora cho các vòng xoay tải (loading spinners) trong các dự án CLI. Độ tin cậy: 0.95
- Sử dụng picocolors để tô màu chuỗi ký tự trên terminal trong các dự án CLI. Độ tin cậy: 0.90
- Sử dụng Ink để xây dựng giao diện người dùng CLI tương tác trong các dự án CommandCode. Độ tin cậy: 0.80
- Sử dụng ink-spinner cho hiệu ứng hoạt ảnh đang tải trong các CLI dựa trên Ink. Độ tin cậy: 0.70
- Ẩn các cờ nội bộ khỏi phần trợ giúp: .addOption(new Option('--local').hideHelp()). Độ tin cậy: 0.90
- Sử dụng pnpm.onlyBuiltDependencies trong package.json để phê duyệt trước các bản dựng nhị phân gốc (native binary builds). Độ tin cậy: 0.60
- Sử dụng phông chữ ANSI Shadow cho nghệ thuật ASCII ở chiều rộng terminal lớn và ANSI Compact cho chiều rộng nhỏ. Độ tin cậy: 0.85
- Sử dụng tối giản các màu trắng, xám và đen cho biểu ngữ nghệ thuật ASCII. Độ tin cậy: 0.85
- Kiểm tra xem gói có thể xuất bản được hay không bằng cách sử dụng `npx can-i-publish` trước khi đóng gói hoặc xuất bản. Độ tin cậy: 0.85
Kiểm tra (lint) các tệp .env và .env.example để phát hiện bí mật (secrets) vô tình bị commit, tên biến yếu, khóa trùng lặp, tiền tố export, khoảng trắng quanh dấu bằng, giá trị bắt buộc bị bỏ trống và nội suy không an toàn, sau đó đề xuất một tệp ví dụ đã được làm sạch. Sử dụng khi người dùng hỏi "tệp .env này có an toàn để commit không?", "tại sao dotenv không tải được?", hoặc "so sánh tệp .env.example của tôi". Bao gồm trình kiểm tra bằng thư viện chuẩn Python đã được kiểm thử.
Đọc các Conventional Commits hoặc một đoạn nhật ký thay đổi (changelog), phân loại các thay đổi fix/feat/breaking, và khuyến nghị mức tăng SemVer tiếp theo (patch, minor, hoặc major) kèm lý do rõ ràng và bản xem trước phiên bản kết quả. Sử dụng khi người dùng hỏi "tôi nên phát hành phiên bản nào?", "đây có phải là thay đổi gây lỗi tương thích (breaking change) không?", hoặc "tăng SemVer từ các commit này". Bao gồm công cụ cố vấn bằng thư viện chuẩn Python đã được kiểm thử.
Các nguyên tắc hành vi nhằm giảm thiểu những lỗi lập trình thường gặp của LLM. Sử dụng khi viết, đánh giá hoặc tái cấu trúc (refactor) mã nguồn để tránh làm phức tạp hóa quá mức, thực hiện các thay đổi chính xác như phẫu thuật, làm rõ các giả định và xác định tiêu chí thành công có thể kiểm chứng được.
Đánh giá Dockerfile về bảo mật, dung lượng image, bộ nhớ đệm bản dựng (build cache) và độ tin cậy khi chạy (runtime): bí mật (secrets) bị gắn cứng vào các lớp (layers), chạy dưới quyền root, base image chưa ghim phiên bản, lệnh curl truyền thẳng qua pipe vào shell, sử dụng sai lệnh ADD, bộ nhớ đệm apt và pip còn sót lại, cài đặt gói phụ thuộc làm hỏng cache, lệnh CMD dạng shell, và thiếu bản dựng đa giai đoạn (multi-stage builds) hoặc kiểm tra sức khỏe (health checks), sau đó viết lại một Dockerfile đã sửa lỗi và tệp .dockerignore. Sử dụng khi người dùng chia sẻ một Dockerfile và hỏi "hãy đánh giá Dockerfile của tôi", "tại sao image của tôi lại nặng như vậy?", hoặc "container này có an toàn không?".