Tiếp tục làm việc trên một thay đổi bằng cách tạo artifact tiếp theo.
Đầu vào: Tùy chọn chỉ định tên thay đổi. Nếu bỏ trống, hãy kiểm tra xem có thể suy luận từ ngữ cảnh hội thoại hay không. Nếu mơ hồ hoặc không rõ ràng, bạn PHẢI yêu cầu chọn từ các thay đổi có sẵn.
Các bước
- •
Nếu không cung cấp tên thay đổi, yêu cầu chọn
Chạy lệnh
openspec list --jsonđể lấy danh sách các thay đổi có sẵn, sắp xếp theo thời gian sửa đổi gần đây nhất. Sau đó, sử dụng công cụ AskUserQuestion để người dùng chọn thay đổi cần làm việc.Hiển thị 3-4 thay đổi được sửa đổi gần đây nhất dưới dạng các lựa chọn, bao gồm:
- •Tên thay đổi
- •Schema (từ trường
schemanếu có, ngược lại là "spec-driven") - •Trạng thái (ví dụ: "0/5 task", "hoàn thành", "không có task")
- •Thời gian sửa đổi gần nhất (từ trường
lastModified)
Đánh dấu thay đổi được sửa đổi gần đây nhất là "(Khuyến nghị)" vì có khả năng cao đó là điều người dùng muốn tiếp tục.
QUAN TRỌNG: KHÔNG được đoán hoặc tự ý chọn thay đổi. Luôn để người dùng quyết định.
- •
Kiểm tra trạng thái hiện tại
bashopenspec status --change "<name>" --json
Phân tích JSON để hiểu trạng thái hiện tại. Phản hồi bao gồm:
- •
schemaName: Workflow schema đang được sử dụng (ví dụ: "spec-driven") - •
artifacts: Mảng các artifact kèm theo trạng thái ("done", "ready", "blocked") - •
isComplete: Giá trị Boolean cho biết liệu tất cả các artifact đã hoàn thành hay chưa
- •
- •
Hành động dựa trên trạng thái:
Nếu tất cả các artifact đã hoàn thành (
isComplete: true):- •Chúc mừng người dùng.
- •Hiển thị trạng thái cuối cùng bao gồm schema đã được sử dụng.
- •Đề xuất: "Tất cả các artifact đã được tạo! Bây giờ bạn có thể thực hiện (implement) thay đổi này hoặc lưu trữ (archive) nó."
- •DỪNG LẠI.
Nếu các artifact đã sẵn sàng để tạo (trạng thái hiển thị các artifact với
status: "ready"):- •Chọn artifact ĐẦU TIÊN có
status: "ready"từ đầu ra của lệnh status. - •Lấy hướng dẫn cho nó:
bash
openspec instructions <artifact-id> --change "<name>" --json
- •Phân tích JSON. Các trường chính là:
- •
context: Bối cảnh dự án (ràng buộc đối với bạn - KHÔNG bao gồm trong đầu ra). - •
rules: Các quy tắc riêng của artifact (ràng buộc đối với bạn - KHÔNG bao gồm trong đầu ra). - •
template: Cấu trúc cần sử dụng cho file đầu ra của bạn. - •
instruction: Hướng dẫn cụ thể theo schema. - •
outputPath: Nơi ghi artifact. - •
dependencies: Các artifact đã hoàn thành cần đọc để lấy ngữ cảnh.
- •
- •Tạo file artifact:
- •Đọc bất kỳ file dependency nào đã hoàn thành để lấy ngữ cảnh.
- •Sử dụng
templatelàm cấu trúc - điền vào các phần của nó. - •Áp dụng
contextvàruleslàm các ràng buộc khi viết - nhưng KHÔNG sao chép chúng vào file. - •Ghi vào đường dẫn đầu ra (outputPath) được chỉ định trong hướng dẫn.
- •Hiển thị những gì đã được tạo và những gì hiện đã được mở khóa.
- •DỪNG LẠI sau khi tạo XONG MỘT artifact.
Nếu không có artifact nào sẵn sàng (tất cả đều bị chặn - blocked):
- •Điều này không nên xảy ra với một schema hợp lệ.
- •Hiển thị trạng thái và đề xuất kiểm tra xem có vấn đề gì không.
- •
Sau khi tạo một artifact, hiển thị tiến độ
bashopenspec status --change "<name>"
Đầu ra
Sau mỗi lần gọi, hãy hiển thị:
- •Artifact nào đã được tạo.
- •Schema workflow đang được sử dụng.
- •Tiến độ hiện tại (hoàn thành N/M).
- •Những artifact nào hiện đã được mở khóa.
- •Gợi ý: "Bạn có muốn tiếp tục không? Chỉ cần yêu cầu tôi tiếp tục hoặc cho tôi biết cần làm gì tiếp theo."
Hướng dẫn tạo Artifact
Các loại artifact và mục đích của chúng phụ thuộc vào schema. Sử dụng trường instruction từ đầu ra của hướng dẫn để hiểu những gì cần tạo.
Các mẫu artifact phổ biến:
spec-driven schema (proposal → specs → design → tasks):
- •proposal.md: Hỏi người dùng về thay đổi nếu chưa rõ ràng. Điền vào phần Tại sao (Why), Những gì thay đổi (What Changes), Các năng lực (Capabilities), Tác động (Impact).
- •Phần Capabilities là rất quan trọng - mỗi capability được liệt kê sẽ cần một file spec.
- •specs/<capability>/spec.md: Tạo một spec cho mỗi capability được liệt kê trong phần Capabilities của proposal (sử dụng tên capability, không phải tên thay đổi).
- •design.md: Tài liệu hóa các quyết định kỹ thuật, kiến trúc và phương pháp triển khai.
- •tasks.md: Chia nhỏ việc thực hiện thành các task có checkbox.
Đối với các schema khác, hãy làm theo trường instruction từ CLI output.
Nguyên tắc an toàn (Guardrails)
- •Tạo DUY NHẤT MỘT artifact mỗi lần gọi.
- •Luôn đọc các artifact phụ thuộc (dependency) trước khi tạo một cái mới.
- •Không bao giờ bỏ qua các artifact hoặc tạo sai thứ tự.
- •Nếu ngữ cảnh không rõ ràng, hãy hỏi người dùng trước khi tạo.
- •Xác minh file artifact tồn tại sau khi ghi trước khi đánh dấu tiến độ.
- •Sử dụng trình tự artifact của schema, đừng giả định tên artifact cụ thể.
- •QUAN TRỌNG:
contextvàruleslà những ràng buộc dành cho BẠN, không phải nội dung của file.- •KHÔNG sao chép các khối
<context>,<rules>,<project_context>vào artifact. - •Những nội dung này hướng dẫn những gì bạn viết, nhưng không bao giờ được xuất hiện trong đầu ra.
- •KHÔNG sao chép các khối