Loading...
Loading...
Phân việc dạng ĐỒ THỊ PHỤ THUỘC trên PLAN.md — trả lời 5 câu hỏi (task này cần việc gì · cái gì chạy song song · phụ thuộc vào gì · tồn tại để làm gì trong graph · liên hệ graph cũ) bằng tool tất định, dispatch theo lớp topo có KHOÁ + lease + generation, state lưu bền append-only (events.jsonl), 2 file python vẽ (1 graph / atlas 2D mọi graph), mọi câu trả lời của model gắn nhãn chắc|gợi-ý|không-biết + nguồn, audit bịa=0. Gọi khi user nói "orca-graph", "graph phân việc", "task nào song song", "phụ thuộc gì", "vẽ graph task", "dispatch theo graph", "/orca-graph".
npx skill4agent add rheinmir/setup orca-graphorca-workflowharness/scripts/orca-graph.pyfdk/tools/graph-viz.pyfdk/tools/graph-atlas.pyllmwiki/graph/https://github.com/Rheinmir/orca-graph~/.orca-graph/repo/curl -fsSL https://raw.githubusercontent.com/Rheinmir/orca-graph/main/install.sh | bash~/.orca-graph/bin/orca-graphorca-issue/propose/planevals/vt-matrix.jsonout_of_scoperun --strictPLAN.md → build → graph.json (cache) + events.jsonl (nguồn chân lý, append-only) → ask (5 câu hỏi) → next/lock/set/run theo lớp topo → verify (+ qc) → audit → graph-viz / graph-atlas / control-roomproposed → ready (mọi deps xong) → locked → dispatched → done | done_unverified | failed | unknownblockedstateverifiedfreshstale--if-revunknownfaileddoneqc**QC:**spec_hashverifyverifyby != "reconcile"emit()runset doneemit()donedone_unverifiedreconcileready**QC:**| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | | có | ≥ 3 task; dòng |
| In | lý do cạnh | nên có | |
| In | claim tài nguyên | khi dùng chung | |
| In | store | không | mặc định |
| In | | không | gắn graph con vào node graph mẹ |
| In | agent + lệnh agent | khi dispatch | tên agent cho |
| Out | | có | graph + state bền |
| Out | output | có | cycle, deps suy luận ( |
| Out | answer có nhãn + nguồn | khi model trả lời | chấm theo rubric 1 / 0 / 0.3 / 0.5 / bịa 0 |
| Out | HTML graph + atlas 2D + | có | 2 file python vẽ + generator control-room |
| Out | | khi kết | kết quả mở lại từng nguồn, bịa = 0 |
run --strictblockedanswerkhông-biếtgợi-ý**Depends:**events.jsonlgraph.jsonbuild**Resources:**lock**Depends:**audit-edgesEDGE_UNJUSTIFIEDadd-nodeplan_version + 1graph.jsonplan/propose/planorca-issuecheck-cyclesgợi-ýblockedunknownfailedreconcilekhông-biết| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | repo có harness | Bước 0: pre-work sweep | sweep xong | không harness → bỏ |
| W02 | judgment | PLAN | Bước 1: PLAN có chưa; chưa → skill | PLAN.md | thiếu Depends → tool suy, nhãn gợi-ý |
| W03 | deterministic | PLAN.md | Bước 2: | graph.json + cảnh báo cycle, xung đột file | xung đột → thêm Depends hoặc chấp nhận có lý do |
| W03b | deterministic | graph.json | Bước 2b: | bảng finding (chỉ đọc) | |
| W04 | judgment | graph | Bước 3: 5 câu hỏi bằng | answer có nhãn | không nguồn → không-biết |
| W05 | effect | graph.json | Bước 4: vẽ | HTML + gate | kind lạ → B06 |
| W06 | effect | graph đã duyệt | Bước 5: vòng | node done | lease hết → B05 |
| W07 | deterministic | graph xong | Bước 6: | audit-log + atlas | bịa > 0 → báo |
pull-gate-sweep.shplan/plan**Depends:** Task 1, Task 3**Verify:** <lệnh rc 0>gợi-ýpython3 harness/scripts/orca-graph.py build <PLAN.md>ask <id> needsask <id> parallelask <id> deps <n>ask <id> why <n>ask <id> relatedansweranswer <id> <n> --q why --label chắc|gợi-ý|không-biết --score S --evidence file:path:line edge:a->b event:<op_key> absence:<lệnh> --text "..."gợi-ýkhông-biếtchắcpython3 fdk/tools/graph-viz.py llmwiki/graph/<id>.graph.jsongate-create**Kind:** build|test|fix|research|docs|design|review|security|infra|data|migrate|deploy|release|cleanup|integration|wikibuildengine/kind-glyphs.json~/.orca-graph/repo/engine/kind~/.orca-graph/kind-glyphs.local.json/raise-issuekind-glyphs.jsonnextnext <id> # node ready = chạy song song NGAY; blocked = HITL, KHÔNG dispatch headless
lock <id> <n> --by <agent> # O_EXCL + lease (mặc định 90 phút); heartbeat <id> <n> khi chờ lâu
set <id> <n> dispatched --op-key <uuid> # rồi orca orchestration dispatch --task … --inject (brief NGUYÊN VĂN từ PLAN)
set <id> <n> done --gen <gen> --op-key <uuid> # gen lấy từ output lệnh dispatched; gen cũ → STALE, không publishnextunknownreconcile <id> <n>sync-orca <id> --runaudit <id>audit-log.jsonlgraph-atlas.py llmwiki/graph/| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | user_optional | việc cần tách graph con dưới một node | | vượt depth 6 hoặc 20 node → tool từ chối | W03 |
| B02 | conditional_required | | | kết quả plan_version cũ → STALE | W06 |
| B03 | user_optional | user muốn dừng / tiếp / huỷ | | | W06 |
| B04 | capability_optional | muốn một lệnh thay 4 lệnh gõ tay | | node thiếu verify → từ chối headless | W06 |
| B05 | recovery | agent im lặng quá lease | | tối đa 3 attempt rồi failed | W06 |
| B06 | conditional_required | | tool sinh glyph tạm vào | không tự thêm vào sổ mặc định | W05 |
| B07 | user_optional | muốn mirror sang sổ Orca | | — | W06 |
| B09 | user_optional | user yêu cầu thêm việc / "vẽ thêm node" khi graph đã có | | sinh cycle / > 20 node / dep lạ → tool từ chối, PLAN nguyên vẹn | W05 |
| B10 | recovery | | node khác đang giữ claim xung đột → làm node ready khác trước, | không tự | W06 |
| B08 | conditional_required | node khai | chạy QC độc lập sau verify rc 0; fail → | không khai → hành vi cũ | W06 |
doneverifycheck-cycleslintbuild --strictauditgợi-ýblockednextbuildask t2 parallelnextlock --byset done --genauditsrc/api.tsbuild**Depends:** Task 2unknownreconcileanswer … --label không-biếtchắcbuild <PLAN> --parent <gid>/<node>child_graphdone_unverifiedblockedblocked**Depends:** other-graph/t3check-cycles [dir]a/t2 → b/t3 → a/t2lint <id>build --strict—Task 1 và Task 2<gid>/<tid>build,;**Depends:** Task 1 (data), other-graph/t3 (control)preferencespec_hashaudit-edges <id> [--json] [--strict]EDGE_UNJUSTIFIEDEDGE_INFERREDPREFERENCE_REMOVABLEPREFERENCE_HAS_HIDDEN_CONSTRAINT--strictEDGE_UNJUSTIFIEDlockexclusivecapacity:Nsharedsharedsharedlocknextunlockunknownbuildℹ … cùng claimask <id> waitingdatagateresourcequeuecontrolretrynonenextask parallelreconcile-items --expected A,B,C --verdicts rows.jsonl [--universe N]supported|refuted|inconclusiveitem_id{A,A,B}verdict: nullstatuserrored_idsCONFLICTING_OUTCOME--allow-emptycoverageunknown/tc-rundry-streak --prev N --complete 0|1 --new Ncost-envelope <id> [--reviewers N] [--max-attempts N]max_callsexpectedbuildplan_version + 1superseded[]spec_hashfresh=staleset done --plan-version Nrunplan_versionreadyadd-node--blockslocked|dispatchedbuild--blocks t5--parentcontrol <id> pause|resume|cancel|statuspause_requestedpausedlocked|dispatchednextlockactivecancelledbuild --max-parallel Nlockrun <id> <node> [--hb 15] [--lease-sec 60] [--strict] -- <lệnh agent>donefailedverify--allow-unverified~/.orca-graph/registry.jsonORCA_GRAPH_NO_DAEMON=1ORCA_GRAPH_HOMErunfilesnotedone--strictgit checkout.graph.json.events.jsonl.locks/watch [--once] [--interval 5] [--idle-sec 600]daemon.lockunknownfdk/tools/build-control-room.pyllmwiki/html/control-room.htmlrundoneverify**Verify:**/orca-graphaskanswerauditbuildrelated