Loading...
Loading...
Kiểm 'phủ hết' bằng diff với BỀ MẶT THẬT đọc từ code (trang, route, module API, lệnh CLI, cron, tool MCP) thay vì đếm số artefact: liệt kê bề mặt tất định ra surface.json @commit, giữ sổ phủ coverage.json (mục → artefact giải thích hoặc loại trừ có lý do), gác bằng test đỏ khi có mục mới chưa phủ, báo 'N/M mục'. Gọi khi user hỏi 'đã phủ hết chưa', 'có đủ chưa', 'tương ứng hết chức năng chưa', 'vét cạn', 'không lọt chức năng', 'coverage', 'sổ chức năng', khi sinh bài học/flow/docs cho một codebase, hoặc khi sắp báo một con số (19 bài, 18 flow) như thể đã đủ.
npx skill4agent add rheinmir/setup surface-coverage/orca-onboard/orca-onboard/teach-medomain-graph.jsonorca-onboardcode ──scan (script, tất định)──▶ surface.json {commit, items: page:/x · api:/x · module:x · cli:x …}
artefact (flow · bài · doc · op) ──người/agent ghi──▶ coverage.json {commit, items: mục → by[] | exclude:"lý do"}
surface.json ⊖ coverage.json ──check──▶ "N/M mục được phủ, K loại trừ" + danh sách CHƯA PHỦ + lỗi (rc 1)| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | thư mục code của sản phẩm | có | nơi đọc bề mặt; nên là git repo để ghi commit |
| In | bộ artefact đang khẳng định là phủ | có | flow, bài học, trang docs, op CLI/MCP, test |
| In | glob thư mục module API / lệnh CLI | không | khi khung không phải file-based router |
| Out | | có | mọi mục bề mặt kèm file nguồn và commit lúc đọc |
| Out | | có | mỗi mục → |
| Out | dòng báo cáo | có | thay mọi con số artefact trơn |
| Out | một test hoặc gate trong dự án chạy lại | có | đỏ khi bề mặt mọc thêm mục |
by[]excludefile:linefile:linefile:linescanmodule:--modulesrouter.get(app.post(surface.jsoncommit: nullN/Mui-kit-from-code| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | thư mục code | | | M = 0 → kiểm lại |
| W02 | judgment | | ghi | sổ phủ | — |
| W03 | deterministic | 2 file JSON (+ | | rc 0 + | rc 1 → W04 |
| W04 | judgment | danh sách CHƯA PHỦ + LỖI | lần code từng mục chưa phủ thành flow/bài mới (RULE-06); sửa | artefact mới + sổ cập nhật | quay W03, tối đa 3 vòng rồi báo partial |
| W05 | effect | sổ xanh | thêm test hoặc bước CI trong dự án chạy lại W01 + W03 trước mỗi lần sinh lại artefact | gate | dự án không có test runner → ghi lệnh vào README của artefact |
| W06 | judgment | kết quả | báo theo RULE-03: | báo cáo | — |
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional_required | khung không có router theo file | viết script nhỏ liệt kê route của khung đó, ghi cùng định dạng | khung file-based → skip | W02 |
| B02 | conditional_required | artefact là sổ chức năng CLI/MCP của chính app | bề mặt = route + lời gọi | — | W03 |
surface-coverage.py checkpython3 -m pytest -q harness/tests/test_surface_coverage.pyCHƯA PHỦ page:/…excludescancheckfile:line99 flow / 21 domaincheck62/62 trang, 37/37 modulelessons-coveragesurface.json