object-path-component
Skill13 starsChanged 33 days agoMITView on GitHub
Đọc, tạo, sửa, bật/tắt, xóa Path Component của Cogover Object qua API `/api/v1` (phiên Web App): thứ tự stage từ option field single-choice/radio-button, hướng dẫn, key fields, layout, action chain, nhóm trạng thái kết thúc. Dùng khi cần cấu hình Path Component bằng API thay vì trình duyệt; kiểm tra transition-rule constraint, xác minh sau khi ghi.
In this repository23 other files it gives its agents.
- agent-builderSkill
- app-menu-managerSkill
- build-cogover-appSkill
- cogover-api-authSkill
- cogover-custom-moduleSkill
- cogover-iconSkill
- cogover-overviewSkill
- create-cogover-objectsSkill
- dashboard-builderSkill
- document-templateSkill
- layout-scriptingSkill
- object-buttonSkill
- object-filterSkill
- object-formSkill
- object-history-trackingSkill
- object-infoSkill
- object-layoutSkill
- object-recordSkill
- object-transition-ruleSkill
- process-creatorSkill
- record-emailSkill
- report-builderSkill
- user-permissionSkill
The file
Files
Object Path Component
- Phiên bản:
1.0.1 - Ngày phát hành:
2026-09-11
Quản lý Path Component của Cogover Object chỉ bằng API, không dùng trang Settings hay tự động hóa trình duyệt. Chỉ dùng tài liệu đi kèm skill, thông tin người dùng cung cấp và response API của workspace; không đọc source code, bundle hay log nội bộ để suy contract. Tài liệu và API không đủ thông tin thì dừng và báo rõ phần còn thiếu.
Chuẩn bị
- Credential, header và quy ước response/lỗi chung: theo $cogover-api-auth. Mọi endpoint của skill dùng
/api/v1bằng phiên Web App. Ngoại lệ riêng:GET .../constrainttrảr: 1kèmdatakhi có transition-rule active vàr: 0vớidata: nullkhi không có; không coir: 1là lỗi ở endpoint này. - Đọc references/api-contract.md (endpoint, schema path/stage và
metaData, quy tắc update, validation, mã lỗi, mẫu request) trước khi lập payload hoặc gửi request. - Không đoán object slug, path ID, field ID, option slug, layout ID hay action ID: resolve từ response thật; nhiều kết quả cùng tên thì yêu cầu người dùng chọn, không tìm thấy thì dừng.
Quy trình
1. Chốt workspace và ý định
Xác định workspace domain, thao tác read | create | update | activate | deactivate | delete, object và path mục tiêu. Create mà thiếu name hoặc slug: tự suy luận cả hai từ mục đích, object và field; luôn dùng tiếng Anh trừ khi người dùng chỉ định rõ ngôn ngữ khác; chuẩn hóa slug theo quy tắc ở bước 5, kiểm tra trùng trong object và tự chọn giá trị duy nhất, không dừng để xin phê duyệt. Mặc định path active: luôn gửi rõ status: 1 trong create payload; chỉ gửi status: 0 khi người dùng yêu cầu inactive.
2. Resolve object, field và option
POST /api/v1/objects/object/get-by-slugvớiwithFields: 1; chỉ có tên thì phân trangPOST /api/v1/objects/object/getrồi match chính xác tại client.- Chọn duy nhất field thuộc object, đang active,
fieldTypelàsingle_choicehoặcradio_button. - Option lấy từ
field.options; nếu response không kèm option, thửPOST /api/v1/objects/multiple/getvớifield_idvàworkspace_idđã resolve. Fallback này không có trên mọi deployment: trả404thì dừng và báo thiếu nguồn option, không suy đoán. stage.valuelàoption.slug, không dùng nhãn hiển thị. Ghi lạicategory,sort,statusvà nhãn để validate/diễn giải. Response thiếu hẳn keycategory: chuẩn hóa thànhnullvà xử lý stage làintermediate, trừ trường hợp all-null dưới đây.- Khi
categorycủa mọi option đềunullvà chưa biết option nào là start/finish: tự phán đoán từoption.slugvà nhãn/bản dịch theo ngữ cảnh nghiệp vụ (không khớp từ khóa máy móc), không dừng để hỏi. Ngữ nghĩa vòng đời: khởi tạo (new,draft,open,pending) →TO DO; đang xử lý (in_progress,processing,review,approval,active) →IN PROGRESS; thành công (approved,completed,activated,renewed,won) →DONE PASS; không thành công hoặc chấm dứt (rejected,failed,cancelled,expired,terminated,lost) →DONE FAIL. Nếu cóconstraintStages, typestart | intermediate | finishtrong constraint là nguồn ưu tiên; suy luận ngữ nghĩa chỉ để phân biệtDONE PASSvớiDONE FAILvà sắp thứ tự trong cùng nhóm. Ghi rõ mapping đã suy luận trong diff/kết quả.
Tập stage: tạo mới theo hành vi UI đưa mỗi option do field trả về vào stage đúng một lần; khi sửa, giữ nguyên tập stage hiện có trừ khi người dùng yêu cầu, không tự thêm/xóa theo option mới/cũ. Stage trỏ tới option không còn tồn tại: dừng stage update và yêu cầu người dùng chọn xóa hay map sang option nào.
3. Đọc trạng thái hiện tại
- Tìm path bằng object slug/path slug, ID, hoặc
POST .../getcó filter object; match chính xác và phân trang đến hết. - Luôn đọc detail
GET .../path_component?id={id}trước update/delete; không dùng row từ list làm payload vì list thường không cóstages. - Sắp xếp
stagestheoindextrước khi so sánh. Parse từngstage.metaData(JSON string); parse thất bại thì báo rõ và không ghi đè stage đó. - Gọi
GET .../constraint?objectFieldId=...&objectTypeId=.... Có transition-rule active thì so sánh tập/thứ tự/loại stage vớiconstraintStages. Option all-null category: áp dụng suy luận ở bước 2 và dùng constraint để chốt type, không coi là blocker. Bất đồng khác: không tự khắc phục bằng cách đoán luồng.
4. Lập diff an toàn
Giữ nguyên mọi thuộc tính không được yêu cầu thay đổi. Nêu diff theo tên dễ đọc và ID/slug đã resolve.
- Chỉ đổi
name,status,descriptionhoặc finish-group: gửi patch tối thiểu vớiidvàobjectFieldIdhiện tại; bỏstageskhỏi body. - Có thay đổi stage: merge trên detail vừa đọc và gửi lại toàn bộ stage (server xóa và tạo lại stages khi
stageskhông rỗng). Giữ các key không nhận biết trong JSONmetaData, chỉ merge key mục tiêu; reindex stage từ1liên tiếp vàdisplayFieldstừ0. - Không đổi
slugbằng update (endpoint update không thay đổi slug). ĐổiobjectFieldIdchỉ sang field single-choice/radio-button khác trong cùng object, phải resolve field/option mới và gửi full stages hợp lệ cho field mới; không đổi field mà giữ stages cũ.
5. Validate trước khi ghi
statusvàfinishStagesGroupthuộc{0,1}; tên không rỗng, tối đa 255 ký tự; description tối đa 1000; path slug 2–100 ký tự gồm chữ thường Latin, chữ số và_, bắt đầu bằng chữ cái, không trùng trong cùng object.indexduy nhất, liên tiếp từ 1;valueduy nhất và khớp option slug hiện có.- Thứ tự nhóm
TO DO→IN PROGRESS/không category →DONE FAIL/DONE PASS; chỉ thay thứ tự bên trong từng nhóm. displayType: 1: từngdisplayFields[].fieldIdthuộc object và không phải field điều khiển path; tạo mới dùngrequired: falsetrừ khi người dùng yêu cầu field bắt buộc trong path, update giữ giá trị hiện tại.displayType: 2: resolvelayoutIdtừ layout của object cófunctionLayoutlà2hoặc3.- Gán
action: resolve ID qua danh sách button active mà UI cho phép; không dùng tên/slug button làm ID. - Chỉ bật
finishStagesGroupkhi có ít nhất một DONE stage vàfinishStagesGroupNamekhông rỗng; chỉ cấu hình màu cho DONE stages. - Mã lỗi
rnghiệp vụ: Validation và mã lỗi.
6. Ghi và xác minh
- Gửi create/update/deactivate sau khi payload vượt validation.
- Delete: truy vấn tất cả trang layout dùng
componentPathSlug; còn layout tham chiếu thì không delete và liệt kê layout cần gỡ. Không có dependency: yêu cầu xác nhận xóa rõ ràng rồi mới gửi{ "id": "..." }. - Sau create/update/activate/deactivate:
GETlại bằng ID, sort stage theo index, parse metadata và so sánh với intended state. Sau delete: xác minh ID không còn trả về. - Chỉ báo thành công khi HTTP thành công, response code hợp lệ và read-after-write khớp. Verification lệch: báo observed state, không tự động ghi lần hai.
Kết quả cần báo
Workspace/object/field/path đã resolve, thao tác đã gửi, diff quan trọng, ID do server trả về, kết quả verification và side effect/dependency nếu có.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

