每当用户想要为OpenClaw设计、分析或生成流程代码时使用此技能,包括:询问应该使用Lobster还是OpenProse,...
Mọi quyết định thiết kế đều bắt đầu từ hai câu hỏi này:
"Bước này đang nói chuyện với AI để lý luận, hiểu ngữ cảnh, ra quyết định?" → Đó là việc của OpenProse
"Bước này đang xác định điều gì xảy ra sau khi AI đã quyết định?" → Đó là việc của Lobster
Lobster làm tốtOpenProse làm tốtChạy chuỗi CLI theo thứ tự xác địnhĐọc kỹ năng, lý luận về ngữ cảnhCổng phê duyệt trước side effectsTạo và điều phối nhiều tác nhân AITruyền JSON giữa các bướcVòng lặp qua danh sách với AI xử lýResume với token sau khi approveChạy song song nhiều phiên AIKiểm tra schema, lưu fileQuản lý trạng thái giữa các phiên
Đọc references/layering-guide.md để có bảng phân tích chi tiết và danh sách anti-patterns.
Xác định loại input trước khi làm bất cứ điều gì:
.lobster, .prose, hoặc code Python/script) → đến Phần 3 (Phân tích)Hỏi lần lượt các câu sau (chỉ hỏi những câu chưa rõ từ ngữ cảnh):
Q1. Quy trình có bao nhiêu bước chính? Bước nào cần con người phê duyệt trước khi tiếp tục?
Q2. Có bước nào cần chạy song song không? (ví dụ: xử lý nhiều bài học cùng lúc, nhiều tác nhân nghiên cứu độc lập)
Q3. Có vòng lặp qua danh sách không? (ví dụ: lặp qua từng bài học, từng file, từng khách hàng)
Q4. Với mỗi bước: đây là bước AI lý luận (cần hiểu ngữ cảnh, ra quyết định) hay bước thực thi xác định (lưu file, gọi CLI, kiểm tra schema)?
Q5. Model đang dùng là gì? Có phải một trong các Prose Complete systems không?
Sau phỏng vấn: Vẽ sơ đồ tầng dạng text, xác nhận với người dùng trước khi chọn mode và sinh file.
Nếu model không phải Prose Complete system:
text
⚠️ CẢNH BÁO TƯƠNG THÍCH
Model [tên model] chưa được xác nhận là Prose Complete system.
- File .lobster: hoạt động đầy đủ ✓
- File .prose: có thể không chạy đúng — OpenProse cần model đủ
năng lực mô phỏng VM khi đọc spec.
Các lựa chọn:
A. Lobster only — chạy được ngay, AI reasoning qua llm-task
B. OpenProse only — tiếp tục nhưng cần test thực tế
C. Auto (mixed) — sinh cả hai, bạn chọn dùng cái nào sau khi test
Chờ người dùng xác nhận mode trước khi tiếp tục.
Chạy checklist này với mỗi file được cung cấp:
Có file Python/script làm cầu nối để đưa context vào LLM?
→ Triệu chứng: prepare_prompt.py, build_context.py, script đọc SKILL.md rồi nhét vào prompt
→ Vấn đề: Lobster đang làm việc của OpenProse
→ Fix: Chuyển sang OpenProse session — nó đọc skill file trực tiếp
Có workaround cho vòng lặp (script Python riêng vì "Lobster không có for-loop")?
→ Vấn đề: Đang ở sai tầng
→ Fix: OpenProse có for item in list: native
Có tự build logic spawn sub-agent thủ công (inject vào AGENTS.md, tự quản lý state)?
→ Vấn đề: Đang tái tạo thứ OpenProse đã có sẵn
→ Fix: OpenProse parallel: block + session isolation
approval: required có đặt trước bước có side effect không?
→ Nếu không: lỗi thiết kế nghiêm trọng — side effect có thể chạy mà không có kiểm soát
Dùng tools.allow: ["lobster"] thay vì tools.alsoAllow?
→ Cảnh báo: allow là allowlist thuần — có thể vô tình block các core tools khác
→ Fix: Dùng alsoAllow trừ khi chủ ý chạy restrictive mode
Context của phiên chính bị phình to do sub-agent không có isolation? → Fix: Mỗi OpenProse sub-session có context riêng
Đầu ra phân tích: Trình bày báo cáo ngắn theo cấu trúc:
text
VẤN ĐỀ: [mô tả]
NGUYÊN NHÂN: [giải thích tại sao đây là anti-pattern]
ĐỀ XUẤT: [cách sửa cụ thể]
Xác nhận người dùng đồng ý với đề xuất trước khi sinh file mới.
Sau phỏng vấn hoặc phân tích, hỏi người dùng chọn một trong ba mode:
Khi nào phù hợp:
Cách sinh:
.lobster chính làm orchestratorllm-task với schema rõ ràng.lobster gọi nhau có cấu trúcKhi nào phù hợp:
Cách sinh:
.prose chính# COMPATIBILITY: ở đầu file nếu model chưa được xác nhậnKhi nào phù hợp:
Cách sinh (thứ tự bắt buộc):
.prose làm tầng điều phối trước.prose.lobster tương ứng saufallback-orchestrator.lobster nếu model không phải Prose Completetext
workflows/
├── [tên-quy-trình].prose # Mode B hoặc C
├── [tên-quy-trình].lobster # Mode A hoặc C
├── gates/
│ └── [tên-gate].lobster # Các cổng phê duyệt tái sử dụng
└── workers/
└── [tên-worker].lobster # Các worker con
text
1. Kiểm tra thư mục workflows/ — tạo nếu chưa có
2. [Mode A] Sinh .lobster chính → sinh workers/ nếu cần
3. [Mode B] Sinh .prose → thêm ghi chú tương thích nếu cần
4. [Mode C] Sinh .prose → sinh .lobster được gọi bởi .prose → sinh workers/
5. Báo cáo danh sách file đã tạo
6. Hướng dẫn lệnh chạy cụ thể
yaml
# ============================================================
# COMPATIBILITY NOTE
# Model: [tên model] — chưa xác nhận là Prose Complete system
# .lobster files: hoạt động đầy đủ ✓
# .prose files: cần test thực tế — xem fallback-orchestrator.lobster
# nếu .prose không chạy đúng
# Prose Complete systems: Claude Code + Opus, OpenCode + Opus, Amp + Opus
# ============================================================
approval: required đặt trước mọi bước có side effectalsoAllow thay vì allowtimeoutMs và maxStdoutBytes cho mọi Lobster callid duy nhất.prose có requires: và ensures: rõ ràng (Mode B/C)args hoặc stdinCần tra cứuĐọc fileCú pháp đầy đủ .lobster, tham số runtime, approval flowreferences/lobster-spec.mdCú pháp .prose, state modes, slash commandsreferences/openprose-spec.mdBảng phân tầng chi tiết, danh sách anti-patternsreferences/layering-guide.mdVí dụ hoàn chỉnh curriculum pipelinereferences/examples/