@wowok/skills 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowok/skills",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "description": "WoWok AI Skills for Claude Code, Codex, Gemini CLI, Qwen Code, Grok Build, OpenCode, Google Antigravity, Cursor, Devin Desktop (formerly Windsurf), Trae, CodeBuddy, WorkBuddy, Qoder, Cline, Kilo Code and GitHub Copilot - dialogue orchestration layer on top of the WoWok MCP server (rules/reference knowledge is served by MCP directly since v2.0.0)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -2,237 +2,108 @@
2
2
  name: wowok-arbitrator
3
3
  description: "WoWok Arbitrator — build and operate on-chain arbitration services. Create Arbitration objects, configure voting rules (open or guard-based weighted), manage dispute cases through their full lifecycle, and earn fees from resolution. Core value: achieve trust consensus between merchants and users through transparent, fair, and efficient dispute resolution. Use when: User wants to create/configure an Arbitration service; User needs to handle dispute cases and voting processes; User wants to design voter eligibility and weight mechanisms; User mentions \"arbitration\", \"dispute\", \"voting\", \"arb\", \"judge\"."
4
4
  metadata:
5
- version: "2.0.0"
5
+ version: "2.1.0"
6
6
  role: arbitrator
7
7
  related: "wowok-order, wowok-messenger"
8
8
  ---
9
9
 
10
10
  # WoWok Arbitrator Guide
11
11
 
12
- Build trust through fair dispute resolution. Arbitration services enable neutral third parties to resolve conflicts between customers and merchants, earning fees while establishing on-chain reputation.
13
-
14
- > **Related Skills**: [wowok-order](../wowok-order/SKILL.md) (customer disputes), [wowok-provider](../wowok-provider/SKILL.md) (service arbitration config), [wowok-machine](../wowok-machine/SKILL.md) (workflow analysis), [wowok-messenger](../wowok-messenger/SKILL.md) (evidence exchange)
15
-
16
- ---
17
-
18
- ## MCP Knowledge Layer
19
-
20
- The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill no longer duplicates it:
21
-
22
- | Content | Access via (MCP action) | Applied Via |
23
- |---------|--------------------------|-------------|
24
- | Guard design rules (structural layers, data source classification, voting_guard table design) | `schema_query` action='get_guard_design_patterns' | `goal_operation` action='aggregate_risks' |
25
- | Safety rules (confirmation levels, immutability, object reuse) | `schema_query` action='get_safety_rules' | Pre-publish checks + `goal_operation` action='aggregate_risks' |
26
- | Arbitration-specific risks | auto-applied | `goal_operation` action='aggregate_risks' |
27
-
28
- This Skill keeps the arbitration **conversation flow**, **evidence collection** scripts, and **dispute resolution** guidance — the MCP layer handles the rule evaluation.
29
-
30
- ---
31
-
32
- ## Core Interaction Principles
33
-
34
- These four principles govern every arbitration build/handle step. They mirror the wowok-onboard model and are non-negotiable.
35
-
36
- 1. **Review-first**: State (a) what the AI understood about the arbitration, (b) the dependency order to build, and (c) the interaction contract — before the first choice.
37
- 2. **User-driven**: Every step is an explicit user decision; the AI provides a `recommend` but never auto-advances.
38
- 3. **Reuse / Customize / Discover (choose one of three)**: For every component (Permission, Voting/Usage Guards, Contact), surface all three avenues — reuse an existing object, customize a new one, or discover from other projects / the system.
39
- 4. **Default-config disclosure**: Disclose a new object's default config + important info + caveats BEFORE the user decides. No silent defaults.
40
-
41
- ---
42
-
43
- ## ⚠️ PRE-FLIGHT: Required Items Checklist
44
-
45
- **THIS SECTION IS MANDATORY.** Before ANY arbitration service creation, the AI MUST collect explicit user confirmation for EVERY required item. **Do NOT skip, do NOT fabricate, do NOT proceed with missing items.**
46
-
47
- ### The Golden Rule
48
-
49
- ```
50
- NEVER guess the user's fee model, voting structure, or Guard design.
51
- These are BUSINESS and GOVERNANCE decisions that ONLY the user can make.
52
-
53
- User hasn't provided it → ASK.
54
- User provides incomplete info → ASK for clarification.
55
- User says "just make something up" → REFUSE and explain why each item matters.
56
- ```
57
-
58
- ### Required Items
59
-
60
- | # | Item | User Must Provide | Why Not Fabricate |
61
- |---|------|-------------------|--------------------|
62
- | **1** | **Account** | Which account to operate from. Default `""` is fine. | Safe default exists |
63
- | **2** | **Arbitration Name** | Service name. What kind of arbitration? | Your brand and reputation on-chain |
64
- | **3** | **Fee** | How much per case? (e.g. "10 WOW per dispute") | IS your revenue model — you cannot guess pricing |
65
- | **4** | **Voting Guard(s)** | Who votes and with what weight? Open voting (centralized) or Guard-based (decentralized)? | ⛔ Guards are **immutable after creation** — wrong design = create replacement Guard |
66
- | **5** | **Usage Guard** | Who can file disputes? Public or restricted? | Controls your case volume and quality |
67
- | **6** | **Contact (um)** | Messenger Contact name/ID for evidence exchange | Without this, customers cannot submit evidence — service is broken |
68
-
69
- ### Information Collection Protocol
70
-
71
- Present checklist Steps 1-6 to user. Each item: "Reuse or create new? Provide details." Track status: [pending] / [confirmed: reuse <id>] / [confirmed: create]. ⛔ GATE: ALL Steps 1-6 must be [confirmed] before any on-chain action — NOT confirmed → STOP. Ask. Do NOT suggest creating arbitration.
72
-
73
- All subsequent on-chain operations use Step 1 (Account) as `env.account`.
74
-
75
- ### Anti-Fabrication Rules (HARD Constraints)
76
-
77
- | Never... | Because... |
78
- |----------|------------|
79
- | Invent a fee amount | You don't know their pricing strategy |
80
- | Assume usage_guard logic | You don't know their target audience |
81
- | Skip the checklist | Arbitration design decisions are on-chain and visible |
12
+ > Build trust through fair dispute resolution — neutral third-party resolution of customer/merchant conflicts, paid per case.
13
+ > **Tools**: `onchain_operations` operation_type=`arbitration` (service + most case ops); customer-side case ops live on operation_type=`order`.
14
+ > **Related**: [wowok-order](../wowok-order/SKILL.md) · [wowok-provider](../wowok-provider/SKILL.md) · [wowok-messenger](../wowok-messenger/SKILL.md)
82
15
 
83
16
  ---
84
17
 
85
- ## Core Architecture
86
-
87
- ### Two-Layer Design
88
-
89
- | Layer | Object | Purpose | Lifecycle |
90
- |-------|--------|---------|-----------|
91
- | **Service** | Arbitration | Rules, fees, voter configuration | Permanent |
92
- | **Case** | Arb | Individual dispute with state machine | Per dispute |
93
-
94
- **Separation of Powers**:
95
- - **Arbitrator controls**: Who can vote, voting weights, final verdict (`indemnity`)
96
- - **Customer controls**: Accept result or object, claim compensation timing
97
-
98
- Neither party can force outcome unilaterally — the design forces collaboration toward consensus.
99
-
100
- ### Arb State Machine
101
-
102
- Customer dispute creates Arb directly at (1). State (0) entered only via `reset`.
18
+ ## What the MCP already handles
103
19
 
104
- | State | Available Operations | Next State |
105
- |-------|---------------------|------------|
106
- | **(0) Revision Pending** | Customer (via Order): `arb_confirm` | → (1) |
107
- | **(1) Arbitrator_confirming** | Arbitrator: `confirm` → (2), `reset` → (0), feedback | → (2) or (0) |
108
- | **(2) Voting** | Arbitrator: vote, set deadline, `arbitration` → (3), feedback | → (3) |
109
- | **(3) Arbitrated** | Customer (via Order): `arb_objection` → (4), `arb_claim_compensation` → (5) | → (4) or (5) |
110
- | **(4) Objectionable** | Arbitrator: `reset` → (0), feedback | → (0) |
111
- | **(5) Finished** | Arbitrator: `withdraw` → (6) | → (6) |
112
- | **(6) Withdrawn** | Terminal | — |
20
+ - Guard design rules (voting-table design, `FixedValue`/`GuardIdentifier` weight sources, structural checks): `schema_query` action=`get_guard_design_patterns`; safety/confirmation: `get_safety_rules`; applied through `goal_operation` action=`aggregate_risks` and the publish/pre-call gates.
21
+ - Move guidance and the arbitration schema (`onchain_operations_arbitration`) carry exact field constraints — read the call output, don't memorize this file.
113
22
 
114
- **Key Flows**:
115
- - **Standard**: (1) → confirm → (2) → arbitration → (3) → arb_claim_compensation → (5) → withdraw → (6)
116
- - **With Revision**: (1) → reset → (0) → arb_confirm → (1) → confirm → (2) → ...
117
- - **With Objection**: ... → (3) → arb_objection → (4) → reset → (0) → ...
23
+ Keep the conversation flow, the governance questions, and the evidence discipline.
118
24
 
119
25
  ---
120
26
 
121
- ## Phase 1: Build Your Service
122
-
123
- ### Essential Configuration
124
-
125
- | Field | Purpose | Key Decision |
126
- |-------|---------|--------------|
127
- | `fee` | Revenue per case | Balance accessibility with sustainability |
128
- | `voting_guard` | Who votes, with what weight | Open (centralized) vs Guard-based (decentralized) |
129
- | `usage_guard` | Who can file disputes | Public vs invitation-only |
130
- | `um` | Contact for evidence exchange | Messenger addresses for WTS verification |
131
-
132
- **⚠️ Start paused** (`pause: true`). **Forgetting to unpause = all disputes silently rejected with no error.** Complete all configuration — fee, guards, um — before unpausing.
133
-
134
- **⚠️ Guard Immutability**: Once a Guard is created, its rules **cannot be modified**. If your `voting_guard` design is wrong, you must create a replacement Guard and reconfigure the Arbitration — wasteful but not fatal. Test with `gen_passport` before finalizing.
135
-
136
- **⚠️ Permission Isolation from Service** (CRITICAL for mainnet trust): The Arbitration's Permission object MUST be separate from the Service's Permission object. Sharing the same Permission — or having overlapping owner/admin addresses — breaks dispute fairness because the merchant can control arbitration operations (vote, confirm, execute rulings). For mainnet deployment, use a completely independent third-party Permission with a different owner and admin list. The evaluation engine deducts risk scores significantly for Permission overlap (-30 for same Permission, -20 for owner/admin overlap). Testnet may tolerate shared Permission for simplicity, but mainnet users should treat this as a critical trust factor.
137
-
138
- ### Voting Modes
27
+ ## Interaction principles
139
28
 
140
- **Open** (`voting_guard: []`): arbitrator casts votes directly (weight = 1). **Guard-based** (`voting_guard: [{guard, vote_weight}, ...]`): voters authenticate via Passport + Guard; weight from `FixedValue(u32)` or `GuardIdentifier(u8)`; max 50 guards (tiered voting). Voting guard construction rules (table design, computation trees, `GuardIdentifier` requirements) are served by MCP `schema_query` action='get_guard_design_patterns'. Test with `gen_passport` before finalizing.
29
+ 1. **Review-first**: restate the arbitration design, the build dependency order, and the interaction contract before the first choice.
30
+ 2. **User-driven**: every governance/business parameter is an explicit user decision; recommend, never auto-advance.
31
+ 3. **Reuse / customize / discover** for Permission, Guards, Contact.
32
+ 4. **Default disclosure**: show defaults and consequences before deciding. Network: the runtime uses the USER'S CURRENT network (client UI selection) — omit `env.network`; set it only when the user explicitly names a different network (mainnet is a different trust posture).
141
33
 
142
34
  ---
143
35
 
144
- ## Phase 2: Handle Cases
36
+ ## Pre-flight: business decisions (gate before any write)
145
37
 
146
- ### Case Lifecycle
38
+ Never invent a fee, a voting structure, or Guard logic — missing → ASK; "make something up" → REFUSE.
147
39
 
148
- | # | Step | State | Action |
149
- |---|------|-------|--------|
150
- | 1 | **Arrival** | (1) | Arb created via customer `dispute`. Fee locked, propositions recorded. |
151
- | 2 | **Review** ⚠️ | (1) | `confirm` (proceed) or `reset` (send back). **Insufficient → MUST reset.** |
152
- | 3 | **Voting** | (2) | Vote, set `voting_deadline` (≤ 3 days). Max 520 voters. |
153
- | 4 | **Finalize** ⛔ | (2)→(3) | `arbitration`: sets `feedback` + `indemnity`. **Irreversible** by arbitrator. |
154
- | 5 | **Resolution** | (3) | Customer: `arb_claim_compensation` → (5), or `arb_objection` → (4). |
155
- | 6 | **Objection** | (4) | Only `reset` → (0) for revision. |
156
- | 7 | **Withdraw** | (5)/(3)/(4) | Finished: **immediate**. Others: ⛔ **30-day mandatory wait**. |
40
+ 1. **Account** (`env.account`, default `""`).
41
+ 2. **Arbitration name + description/location** — the public brand.
42
+ 3. **Fee** per case (`fee`, smallest units) — revenue model; customer pays it when filing.
43
+ 4. **Voting Guards** — open (empty list, permission vote weight 1) or guard-based weighted list (≤50 Guards). Immutable once each Guard is created.
44
+ 5. **Usage Guard** (`usage_guard` or null) — who is allowed to file; null = anyone.
45
+ 6. **Contact `um`** — without it evidence exchange breaks.
157
46
 
158
- **Reset feedback channels**:
159
-
160
- | Channel | Use | Visibility |
161
- |---------|-----|------------|
162
- | **Messenger** (preferred) | Specific evidence, privacy-sensitive | Encrypted, off-chain |
163
- | **on-chain feedback** | General clarification, procedural | Public, permanent |
164
-
165
- **Best-move advice** (`evaluation_operation` → `arb_game`): pass `status` (7-state) + `perspective` (`customer`/`merchant`/`arbitrator`) to get ranked moves (optimal + payoff + risk). Read the result; the role decides and acts.
47
+ ⛔ All six confirmed before creating. Track pending/confirmed like the provider checklist.
166
48
 
167
49
  ---
168
50
 
169
- ## Phase 3: Business Model
51
+ ## Architecture
170
52
 
171
- ### Revenue Flow
53
+ Two objects: **Arbitration** (the service: fee, voting/usage Guards, `um`, `bPaused`, `balance`, Permission — permanent) and **Arb** (one per case: state machine, propositions, votes, fee held in escrow, verdict).
172
54
 
173
- Customer pays fee → locked in `Arb.fee` per case → `arb_withdraw()` transfers to `Arbitration.balance` → distributed via Allocation (revenue sharing) or Treasury (controlled withdrawal).
55
+ Separation of powers: the arbitrator sets process and verdict (`indemnity`); the CUSTOMER confirms filings, objects, and claims compensation. Neither side can finish a case unilaterally.
174
56
 
175
- ### Compensation System
57
+ ### Arb state machine (codes are the on-chain names used by `arb_game` too)
176
58
 
177
- Arbitrator sets `indemnity` → Customer claims via `order.arb_claim_compensation` → Funds transfer from `service.compensation_fund` to Order.
59
+ | # | State | Who moves, how |
60
+ |---|---|---|
61
+ | 0 | `Principal_confirming` | Customer via order `arb_confirm` ({arb, confirm, proposition?, description?}) → 1 |
62
+ | 1 | `Arbitrator_confirming` | Arbitrator `confirm` → 2 · `reset` (with feedback) → 0 · `feedback` |
63
+ | 2 | `Voting` | `vote` · `voting_deadline_change` · `arbitration` (verdict) → 3 · `feedback` |
64
+ | 3 | `Arbitrated` | Customer: `arb_objection` → 4 · `arb_claim_compensation` → 5 |
65
+ | 4 | `Objectionable` | Arbitrator `reset` → 0 (only exit) · `feedback` |
66
+ | 5 | `Finished` | Terminal; fee withdrawable immediately |
67
+ | 6 | `Withdrawn` | Terminal |
178
68
 
179
- > **Note**: The compensation payout comes from the **provider's** compensation_fund, not the arbitrator's funds. Customers should assess the provider's fund balance before purchase — this is covered in [wowok-order](../wowok-order/SKILL.md) E7 (Compensation Fund).
69
+ `feedback` may be written in ANY non-terminal state (0–4) and emits a permanent public `FeedbackEvent`. Flows: standard 1→2→3→5→6; revision loops through 0; objection loops 3→4→0.
180
70
 
181
71
  ---
182
72
 
183
- ## Integration
184
-
185
- ### Evidence (Messenger)
186
-
187
- 1. Customer queries Arbitration's `um` → gets Messenger addresses
188
- 2. Customer sends WTS evidence files (encrypted, off-chain)
189
- 3. Arbitrator verifies WTS authenticity (`verify_wts`)
190
- 4. Only verified evidence considered valid
191
-
192
- Dispute initiators should pre-screen their collection via `evaluation_operation` action `evidence_review` (list mode): it partitions items into usable/manual/rejected and yields `proof_candidates` to reference in the dispute description (the human picks — nothing attaches automatically). When a party's evidence is thin, point them to it before voting.
193
-
194
- **⚠️ `um` must be configured before unpausing** — without it customers cannot submit evidence.
73
+ ## Build phase
195
74
 
196
- ### Service Provider
75
+ Create the Arbitration **paused** (`pause: true`), configure, then `pause: false` last. While paused, filing ABORTS with arbitration error `E_PAUSED` (4) — it is an on-chain error, not a silent reject, but the practical damage is the same: no cases can arrive. Verify unpaused before going live.
197
76
 
198
- Providers list approved Arbitrations in their Service. Customers choose from this list when disputes arise.
77
+ - `fee`, `description`, `location` are settable by Permission.
78
+ - `voting_guard: {op:'add'|'set'|'remove'|'clear', guards:[…]}`. Each entry is `{guard, vote_weight}`: fixed u32 weight, or a u8 Guard-table identifier whose submitted number becomes the voter's weight at vote time (`FixedValue` / `GuardIdentifier`). Open = empty list → plain Permission vote, weight 1. Test every Guard with standalone `gen_passport` before adding — Guards are immutable from creation; a flawed voting Guard can only be replaced (the list itself stays mutable while configured pre-service / as allowed).
79
+ - `usage_guard`: a Guard address or null; when set, filing MUST pass it via Passport (`dispute_with_passport`), else plain `dispute` aborts `E_NEED_PASSPORT` (6).
80
+ - `um`: a Contact; evidence flows through its Messenger addresses.
81
+ - **Permission isolation (mainnet trust)**: the Arbitration's Permission MUST differ from every Service it's bound to — binding a shared one aborts `E_ARBITRATION_PERMISSION_CONFLICT` (33, enforced at Service bind). Separately, the buyer-side risk model scores same-Permission as **−6 points (critical)** and overlapping owner/admin as **−4 points (warning)** inside its 20-point trust dimension — even distinct objects with the same controllers fail the intent. Use a genuinely independent third-party Permission.
199
82
 
200
83
  ---
201
84
 
202
- ## Design Principles
85
+ ## Handling a case
203
86
 
204
- - **Fairness**: Separated powers (neither side can force outcome), revision cycles (`reset`), customer objection rights, transparent on-chain rules, 30-day withdrawal protection.
205
- - **Efficiency**: Clear state machine, weighted voting to reduce spam, deadline enforcement, fee incentive for timely resolution.
206
- - **Trust**: ⚠️ Feedback is permanently public — be reasoned and professional. Apply consistent standards. Monitor Messenger, verify WTS promptly.
87
+ 1. **Arrival**: customer files via `arbitration` `dispute: {order, description?, proposition[], fee:{balance}, namedArb?}` (≤20 propositions; fee locked in the Arb; excess fee is refunded). Arb appears at state 1.
88
+ 2. **Review (1)**: `confirm: {arb, voting_deadline}` — proceed, or `reset` with feedback when the filing is insufficient (don't escalate thin cases).
89
+ - `voting_deadline` is ms: **0 (default) = already-passed → direct verdict, voting impossible**; **null = open-ended**; a future timestamp = voting window (recommend ≥24h; ~3 days is a convention, NOT a chain limit).
90
+ 3. **Voting (2)**: `vote: {arb, votes:[indices…], voting_guard?}` — 0-based proposition indices; re-voting REPLACES the prior vote; ≤520 voters. With a deadline set, `arbitration` cannot run until it has passed (`E_VOTING_DEADLINE_NOT_PASSED`).
91
+ 4. **Verdict (2→3)**: `arbitration: {arb, feedback, indemnity}` — irreversible for the arbitrator; only customer objection/claim follows. **Indemnity is capped at 3× the order amount** (`MAX_INDEMNITY_MULTIPLE`, abort 9) and is paid from the SERVICE's `compensation_fund`, never from arbitrator funds.
92
+ 5. **Customer branch (3)**: claim → 5, or object with `arb_objection` → 4 → your `reset` sends it to 0 for revision.
93
+ 6. **Fee withdrawal**: `arb_withdraw: {arb}` — immediate at Finished; from Arbitrated/Objectionable only after 30 days past indemnity time (`WITHDRAW_DURATION_TIME`, abort 8). Then move the balance onward with `fees_transfer: {to:{allocation|{treasury}}, payment_remark, payment_index}`.
207
94
 
208
- ---
209
-
210
- ## Quick Reference
211
-
212
- ### Critical Constraints
213
-
214
- - Max 20 propositions per case
215
- - Max 520 voters per case
216
- - Max 50 voting guards per Arbitration
217
- - ⛔ 30-day withdrawal wait for non-finished cases (mandatory, cannot bypass)
218
- - ⛔ Guard is **immutable after creation** — test before finalizing
219
- - ⛔ `arbitration` verdict is **irreversible** by arbitrator — only customer can object
220
- - ⛔ `feedback` is **permanently public on-chain** — use Messenger for privacy-sensitive communication
95
+ **Move advice**: `evaluation_operation` action=`arb_game` with `status` (one of the 7 state names) and `perspective: customer|merchant|arbitrator` returns ranked moves/payoffs/risk — read-only; the role decides.
221
96
 
222
97
  ---
223
98
 
224
- ## Best Practices
225
-
226
- 1. **Configure before unpause**: Fee, contact, voting rules ready first. ⚠️ Unpause is the last step.
227
- 2. **Reset proactively**: Unclear case? Send back immediately with clear feedback (Messenger preferred for privacy).
228
- 3. **Verify all evidence**: Use `verify_wts` before evaluating — unverified evidence is not evidence.
229
- 4. **Write detailed feedback**: Your on-chain reputation is permanent. Be professional, reasoned, and fair.
230
- 5. **Set fair indemnity**: Proportional to order value and dispute nature.
231
- 6. **Test guards first**: Use `gen_passport` to verify voting_guard logic before deployment.
232
- 7. **Set reasonable deadlines**: Suggest ≤ 3 days for voting — balances efficiency with thoroughness.
99
+ ## Evidence & reputation
233
100
 
234
- ### Common Pitfalls
101
+ - Customer reads the Arbitration's `um`, sends WTS evidence off-chain via encrypted Messenger; arbitrator runs `messenger_operation` `verify_wts` before considering anything — unverified evidence is not evidence.
102
+ - Tell initiators to pre-sort with `evaluation_operation` action=`evidence_review` (list mode): usable/manual/rejected partition + `proof_candidates` for the dispute description; the human selects — nothing auto-attaches.
103
+ - On-chain `feedback` is permanent and public: reasoned, professional, consistent. Use Messenger for anything private.
235
104
 
236
- Served by `wowok_buildin_info` info='common mistakes' + MCP `schema_query` action='get_safety_rules'. Key ones: paused Arbitration rejects disputes silently (verify `pause: false`); wrong Guard design is immutable (test with `gen_passport` first); non-finished withdrawal has a 30-day lock; always `verify_wts` before ruling.
105
+ ## Hard constraints (quick reference)
237
106
 
238
- ---
107
+ - Propositions ≤20 · voters ≤520 · voting Guards ≤50 · indemnity ≤3× order amount.
108
+ - Paused ⇒ filing aborts (4); verdict needs deadline passed when one is set (7); non-finished withdrawal waits 30d (8).
109
+ - Guards immutable from creation — `gen_passport` first. Verdict irreversible for the arbitrator. Feedback permanent/public.
@@ -2,7 +2,7 @@
2
2
  name: wowok-auditor
3
3
  description: "WoWok pre-publish auditor — the static-analysis Skill that verifies Guard completeness, Machine soundness, fund-flow safety, permission consistency, and publish readiness BEFORE any irreversible publish operation (Service publish, Machine publish, Allocator binding freeze). This Skill is the orchestration guide for the L4 Harness Verify Loop. It does not mutate objects. It triggers the MCP risk engine, gathers evidence, and presents a pass/warn/fail report plus a publish decision. Use when: User is about to publish a Service, Machine, or lock an Allocator set; User asks to \"audit\", \"verify\", \"review\", \"check before publish\"; L4 Harness Verify Loop is invoked before an irreversible operation; User mentions \"fund flow\", \"refund path\", \"allocation sum\", \"guard completeness\"; User mentions \"machine cycle\", \"unreachable state\", \"permission index conflict\"; User wants a pre-publish go/no-go decision; A publish operation failed and root-cause analysis is needed."
4
4
  metadata:
5
- version: "2.1.0"
5
+ version: "2.1.1"
6
6
  role: shared
7
7
  related: "wowok-planner, wowok-provider, wowok-machine"
8
8
  ---
@@ -39,7 +39,7 @@ Run an audit immediately before any irreversible operation:
39
39
 
40
40
  1. **Service publish** — machine bound + published, allocators locked, arbitration/compensation invariants, buy_guard, contact, permission indices.
41
41
  2. **Machine publish** — nodes/pairs/forwards become immutable afterward.
42
- 3. **Allocator-set freeze** (`order_allocators` bind) — fund-flow paths lock with the Service.
42
+ 3. **Service fund-template lock** — `order_allocators` (the order distribution template and its trigger guards) is a Service create/update FIELD that becomes permanently immutable at `publish=true`; there is no separate bind op.
43
43
  4. **Post-failure root-cause analysis** — a publish/assert failed (e.g. `E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND`, `E_ARBITRATION_PERMISSION_CONFLICT`); re-run to identify every remaining blocker, not just the one that aborted.
44
44
 
45
45
  Scope adapts to blast radius: a single Service with no Machine skips machine checks automatically; a stack with cross-Machine supply chains runs the full chain. The engine derives applicable checks from the objects — do not hand-pick rules.
@@ -83,7 +83,7 @@ Presentation rules:
83
83
 
84
84
  1. **FAIL blocks, WARN asks, PASS is silent.** CRITICAL/blocked findings are hard stops fixed by the owning Skill; MEDIUM/LOW are surfaced as advisories.
85
85
  2. **Blast-radius first**: order findings by irreversibility — a post-publish Guard logic bug is permanent; an untested Guard or missing backup is recoverable.
86
- 3. Report grouped by the four coverage dimensions — **Guard completeness, Machine soundness, fund flow, publish readiness** — and state explicitly which objects were in scope. The individual checks inside each dimension are whatever MCP currently evaluates; quote the finding text returned, never a local rule list.
86
+ 3. Group by the five coverage aspects — **Guard completeness, Machine soundness, fund-flow safety, permission consistency, publish readiness** (map each finding via its returned `object_type` and `risk_rule_id`), and state explicitly which objects were in scope. Quote the finding text the engine returns; never maintain a local rule list.
87
87
 
88
88
  ---
89
89
 
@@ -2,7 +2,7 @@
2
2
  name: wowok-collaborator
3
3
  description: "WoWok Collaborator — the canonical skill for process collaborators who execute workflow forwards on behalf of a merchant: internal staff (permission entities) and external operators (named operators). Covers permission-index and named-operator routing, guard-gated evidence submission, and reputation protection. The collaborator carries PROCESS responsibility (no direct settlement stake) — the goal is to keep the workflow flowing and avoid stall blame. For the merchant who owns the Service, see wowok-provider. For the supplier who presents to Demands, see wowok-supplier. Use when: User is an operator/employee executing workflow steps (permission index); User is an external named operator advancing a Machine forward; User wants to submit guard evidence (proof/repository) for a forward; User mentions \"collaborator\", \"operator\", \"permission index\", \"named operator\", \"execute forward\"."
4
4
  metadata:
5
- version: "2.0.0"
5
+ version: "2.1.0"
6
6
  role: collaborator
7
7
  related: "wowok-provider, wowok-machine, wowok-messenger"
8
8
  ---
@@ -11,88 +11,48 @@ metadata:
11
11
 
12
12
  > **Role**: Collaborator (internal permission entity OR external named operator)
13
13
  > **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (merchant), [wowok-machine](../wowok-machine/SKILL.md) (workflow), [wowok-messenger](../wowok-messenger/SKILL.md) (evidence exchange)
14
+ > Mechanics — routing, permission indexes, guard field lists, thresholds — are emitted by the MCP per query. Read them from the output; do not hand-maintain them here. Guard patterns: `schema_query` (`get_guard_design_patterns`, `get_safety_rules`).
14
15
 
15
- ---
16
-
17
- ## MCP Knowledge Layer
18
-
19
- The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
20
-
21
- | Content | Access via (MCP action) | Applied Via |
22
- |---------|--------------------------|-------------|
23
- | Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `query_toolkit` query_type='participation_radar' | role derivation → `collaborator-interest` |
24
- | Progress routing rule (namedOperator vs permissionIndex) | `schema_query` action='get_safety_rules' | `onchain_operations` progress/order |
25
- | Guard design + submission patterns | `schema_query` action='get_guard_design_patterns' | guard-gated forwards |
26
- | Node game (threshold cooperation) | `evaluation_operation` action='node_game' | multi-role forward evaluation |
16
+ ## What is pushed down (do not duplicate)
27
17
 
28
- This Skill keeps the collaborator **conversation flow** — what you can execute now, what evidence to submit, and how to stay in scope.
29
-
30
- ---
18
+ | Capability | Where it surfaces |
19
+ |---|---|
20
+ | What you can execute now, and how | `query_toolkit` `participation_radar` — `operable[]` with per-forward `execution_path`, `permission_index` / `named_operator`, `guard`, and **`recommended_call`** |
21
+ | Concrete execution route | each operable forward's **`recommended_call`** (`tool` + `path` + `reason`) — the single source of truth; never hand-route from operator names |
22
+ | Interest analysis | radar `interest_analysis` (fund_flow / responsibility / leverage / stakes), derived as `collaborator-interest` |
23
+ | Guard design & safety rules | `schema_query` `get_guard_design_patterns` / `get_safety_rules` |
24
+ | Threshold cooperation (multi-contributor forwards) | `evaluation_operation` action `node_game` |
31
25
 
32
26
  ## Role: process responsibility, not settlement
33
27
 
34
- The collaborator has **no direct settlement stake**. Your compensation is typically outside the on-chain order (salary/contract) unless the allocation explicitly routes a slot to you. Your stake is **reputation** — the stall/dispute metrics are public and read by future counterparties.
35
-
36
- Two sub-kinds (derived on-chain, never asserted):
37
- - **permission entity** (internal staff): granted a `permissionIndex` in the Service's Permission.
38
- - **named operator** (external): resolved via Progress.namedOperator → LocalMark.
39
-
40
- ---
41
-
42
- ## Core Interaction Principles
43
-
44
- 1. **Review-first**: State what you understand + what you can execute + the interaction contract before acting.
45
- 2. **User-driven**: the AI surfaces options; you decide; never auto-advance.
46
- 3. **Stay in scope**: only execute forwards your permission/named-operator grants — out-of-scope action creates semantic responsibility without authority.
47
- 4. **Default-config disclosure**: disclose defaults + caveats before acting.
48
-
49
- ---
50
-
51
- ## What You Can Execute Now
52
-
53
- Run `query_toolkit` query_type='participation_radar' with `radar_account` (your account) and `radar_targets: [{ progress: <the order's Progress object>, order: <the Order, optional but recommended> }]` (1–20 targets). It returns:
28
+ - You typically have **no direct settlement stake** (compensation is salary/contract off-chain, unless an Allocation slot explicitly routes to you).
29
+ - Your real stake is **reputation**: stall and dispute metrics are public and read by future counterparties.
30
+ - Sub-kind is **derived on-chain, never asserted**: `permission_entity` (granted a permission index in the Service's Permission) or `named_operator` (Progress.namedOperator → LocalMark). The radar tells you which.
54
31
 
55
- - `operable` — forwards YOU can execute right now (permission / named-operator path).
56
- - `waiting_on` — what the workflow waits on from other roles.
57
- - `collaborator_kind` — internal vs external.
58
- - `interest_analysis` → `collaborator-interest` (fund_flow / responsibility / leverage / stakes).
32
+ ## Working procedure
59
33
 
60
- Present it neutrally; the collaborator decides.
61
-
62
- ---
34
+ 1. **Review-first**: state what you understood, what the account can execute, and the interaction contract before acting.
35
+ 2. **Read the radar**: `query_toolkit` `participation_radar` with `radar_account` and `radar_targets: [{ progress, order? }]` (1–20 targets). Present `operable` neutrally; if `branch_choice` is present, the user picks the branch — never auto-advance.
36
+ 3. **Execute per `recommended_call`**: call exactly the tool/path the forward gives (the reason text carries the failure code you would hit on the wrong path). No `recommended_call` → that forward is not executable by this account; say so instead of trying.
37
+ 4. **Stay in scope**: only execute forwards the account's permission/named-operator grants. Out-of-scope action creates semantic responsibility without authority.
63
38
 
64
- ## Routing
39
+ ## Guard-gated forwards
65
40
 
66
- - Empty `namedOperator` (`""`) → `order.progress` (the order holder, NOT you).
67
- - Non-empty role name → `progress.operate` with the named operator.
68
- - `permissionIndex` → `progress.operate` with your granted index.
69
-
70
- Wrong path → "Permission denied" (abort code 5). The MCP safety rules carry the authoritative classification.
71
-
72
- ---
73
-
74
- ## Guard-gated Forwards
75
-
76
- A forward with a guard requires a `b_submission` (retained submission) before execution. Prepare your evidence (Repository/proof) in advance:
77
-
78
- 1. Upload evidence (Repository/proof data).
79
- 2. Execute the forward (two-phase: call → submission prompt → re-call with submission).
80
- 3. Advance the workflow.
81
-
82
- Uploading evidence BEFORE executing reduces dispute probability and pre-builds the merchant's arbitration defense — your diligence is visible on-chain.
83
-
84
- ---
41
+ - The forward's `guard` field (and `workflow_operation` `list`/`task` → `options[].guard_submissions`) tells you exactly which `b_submission` fields must be supplied (name, value type, object type).
42
+ - Prepare evidence (Repository / Proof) **before** executing; exchange it via Messenger when it comes from another party.
43
+ - Execute once, with the `submission` values attached to the same call. Pre-uploading evidence reduces dispute probability and builds the merchant's arbitration defense — your diligence is visible on-chain.
85
44
 
86
- ## Design Principles
45
+ ## Principles
87
46
 
88
- - **Momentum**: advance when you can; the stall is publicly visible.
89
- - **Scope discipline**: never interfere outside your permission/named-operator scope.
90
- - **Evidence first**: guard-gated forwards are only as strong as the submission behind them.
91
- - **Neutrality**: the AI surfaces trade-offs, never chooses the branch for you.
47
+ - **Momentum**: advance when you can; a stall is publicly visible.
48
+ - **Scope discipline**: never interfere outside your granted forwards.
49
+ - **Evidence first**: a guarded forward is only as strong as its submission.
50
+ - **Neutrality**: surface trade-offs and options; the role decides, you do not.
51
+ - **Defaults disclosed**: disclose defaults and caveats before acting.
92
52
 
93
- ## Quick Reference
53
+ ## Quick reference
94
54
 
95
- - You carry no settlement stake — your currency is reputation.
96
- - `permissionIndex` → `progress.operate`; `namedOperator` role name → `progress.operate`.
97
- - Guard-gated forward needs `b_submission` evidence before execution.
98
- - Threshold cooperation (`node_game`) surfaces multi-role forward needs when a pair's threshold > 1.
55
+ - No settlement stake — your currency is reputation.
56
+ - Route via `operable[].recommended_call`; do not infer the tool from the operator kind yourself.
57
+ - Guarded forward: read `guard_submissions`, collect the values, submit with the execute call.
58
+ - `node_game` surfaces the cooperation picture when a pair's threshold needs multiple distinct contributors.
@@ -2,7 +2,7 @@
2
2
  name: wowok-governance
3
3
  description: "WoWok Governance — the canonical skill for on-chain permission, data, and financial governance: the account that OWNS the objects keeps them healthy after setup. Covers Permission lifecycle (indexes, role assignment, entity table, admin transfer), Treasury/Allocation fund stewardship (deposit/withdraw, history audit, unclaimed payments), and Personal data boundaries (public identity, profile records). Governance is a continuous loop — inventory, decide, execute, audit — not a one-time setup. For building services, see wowok-provider. For market operations, see wowok-market. Use when: User wants to manage who can operate their objects (permission indexes, entity table); User wants to deposit/withdraw treasury funds or audit fund history; User has unclaimed payments or wants to check claimable balances; User wants to update their public on-chain profile or personal data; User mentions \"permission\", \"treasury\", \"governance\", \"manage assets\", \"audit funds\"."
4
4
  metadata:
5
- version: "1.0.0"
5
+ version: "1.1.0"
6
6
  role: shared
7
7
  related: "wowok-provider, wowok-market, wowok-messenger"
8
8
  ---
@@ -11,85 +11,46 @@ metadata:
11
11
 
12
12
  > **Role**: Object owner/admin — the account that carries administrative responsibility for Permission, Treasury, and Personal objects
13
13
  > **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (service build), [wowok-market](../wowok-market/SKILL.md) (market ops), [wowok-messenger](../wowok-messenger/SKILL.md) (contact)
14
+ > Exact op shapes, field lists and enums live in the tool schemas — read `schema_query` `get` with `onchain_operations` (see the `permission` / `treasury` / `personal` `operation_type` branches) before mutating. Safety rules: `get_safety_rules`.
14
15
 
15
- ---
16
-
17
- ## MCP Knowledge Layer
18
-
19
- The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
20
-
21
- | Content | Access via (MCP action) | Applied Via |
22
- |---------|--------------------------|-------------|
23
- | Permission safety rules (owner/admin/entity hierarchy) | `schema_query` action='get_safety_rules' | `onchain_operations` permission |
24
- | Treasury/Permission/Personal object schema | `schema_query` action='get' name='treasury'/'permission'/'personal' | governance operations |
25
- | Unclaimed-payment detection | `keeper_operation` (payment_unclaimed scan) | monitor loop |
26
- | Fund-flow event meanings (TreasuryEvent / AllocationEvent / RewardClaimEvent / RewardFundEvent) | event semantic registry | audit & monitor |
27
-
28
- This Skill keeps the governance **conversation flow** — what to inventory, what to decide, what to execute, and how to audit.
29
-
30
- ---
31
-
32
- ## Governance Is a Loop, Not a Setup
33
-
34
- Inventory → Decide → Execute → Audit. Governance objects are LIVE: a permission change takes effect on the next call, a withdraw is irreversible, a personal profile record is permanently public. Every change deserves an audit pass after execution.
35
-
36
- ---
37
-
38
- ## Domain 1: Permission Governance
16
+ ## Governance is a loop, not a setup
39
17
 
40
- A Permission object defines WHO can perform WHICH operations on your business objects (Service / Machine / Treasury …).
18
+ Inventory → decide → execute → **audit (re-query the post-state every time)**. These objects are live: a grant change applies on the next call, a withdraw is irreversible, a profile record is permanently public.
41
19
 
42
- - **Indexes**: role indexes are numeric IDs (custom indexes start at 1000 — built-ins are reserved). Naming one for readability is a `remark {op:'set', index, remark}` write, not a "create index" call.
43
- - **Grants** (`table` field): assign with `add perm by index` (one index → many entities) or `add perm by entity` (one entity → many indexes); `set` variants REPLACE the existing list. `admin {op:'add'|'remove'|'set'}` controls admins; entity-level hygiene uses `del`/`swap`/`replace`/`copy`. A mis-assigned grant takes effect immediately. Exact op shapes: `schema_query` action='get' name='permission'.
44
- - **Entity table**: review-first — read the current Permission via `query_toolkit` query_type='onchain_objects' before mutating.
45
- - **Audit**: `query_toolkit` query_type='onchain_table_item_permission_perm' checks what a specific address may do; query_type='address_profile' shows an address's permission memberships across all objects.
20
+ ## Domain 1 — Permission governance
46
21
 
47
- Rules of thumb:
48
- - One Permission per business object family; reuse named indexes, don't proliferate unnamed ones.
49
- - Removing an entity is immediate — the next operation by that address fails with "Permission denied" (abort code 5).
50
- - Admin transfer is a high-trust operation: the new admin controls the whole table.
22
+ - **Inventory before mutating**: read the Permission via `query_toolkit` `onchain_objects`; audit one address with `onchain_table_item_permission_perm`; see every membership an address holds across objects with `address_profile` (batch form `address_profiles`, up to 50).
23
+ - **Index naming is not an "index creation"**: custom permission indexes are the numeric IDs 1000–65535 (built-ins reserved below); a readable name is just a `remark` write (`set` / `remove` / `clear`).
24
+ - **Choose the op family by shape** (`permission_operation`, exact params in schema):
25
+ - one index → many entities: `add|set|remove perm by index`;
26
+ - one entity → many indexes: `add|set|remove perm by entity`;
27
+ - `set` REPLACES the whole list — warn before using; prefer `add`/`remove`;
28
+ - entity hygiene: `swap` / `replace` / `copy` / `del`;
29
+ - admins: `admin` `add|remove|set` — high-trust: a new admin controls the whole table.
30
+ - A removed entity's next call fails with permission#5 "Permission denied". Prefer one Permission per business-object family; reuse named indexes.
51
31
 
52
- ---
53
-
54
- ## Domain 2: Financial Governance
55
-
56
- Fund stewardship across Treasury / Allocation / Reward / Payment.
57
-
58
- - **Treasury**: deposit joins coins in (a Payment receipt is minted); withdraw splits balance out — irreversible, and when an `external_guard` is set the guard must validate first. `query_toolkit` query_type='onchain_table_item_treasury_history' audits every flow (op 0 Withdraw / 1 Deposit / 2 Receive) with amount + guard + timestamp.
59
- - **Allocation**: runs distribute pool funds per sharing mode (Amount / Rate in bps — base 10000 = 100% / Surplus). Review allocator guards periodically — a stale guard blocks legitimate distributions.
60
- - **Unclaimed payments**: recipients hold frozen CoinWrappers until they unwrap. The keeper `payment_unclaimed` scan owns this reminder surface — run `keeper_operation` to list claimable payments and nudge recipients via Messenger. NewPaymentEvent is deliberately NOT push-bridged, to avoid duplicate reminders (P2-4 channel split).
61
- - **Reward pools**: RewardFundEvent in / RewardClaimEvent out; a dry pool blocks claims — watch balances before announcing campaigns.
62
-
63
- ---
32
+ ## Domain 2 — Financial governance
64
33
 
65
- ## Domain 3: Data Governance
34
+ - **Treasury**: deposit joins coins in (Payment receipt minted); withdraw splits balance out — irreversible, and an `external_guard` on the Treasury must authorize it. Audit every flow with `query_toolkit` `onchain_table_item_treasury_history` (op `0` Withdraw / `1` Deposit / `2` Receive; amount + guard + timestamp).
35
+ - **Allocation**: modes Amount (fixed) / Rate (basis points, 10000 = 100%; pure-Rate must sum to 10000) / Surplus (remainder drain, ≤1 per Allocator). Review allocator guards periodically — a stale guard blocks legitimate distributions.
36
+ - **Unclaimed payments**: recipients own frozen CoinWrappers until unwrapped. The keeper owns this reminder surface: `keeper_operation` `scan` then `tasks` with `detector: "payment_unclaimed"`; nudge recipients via Messenger. `NewPaymentEvent` is deliberately NOT push-suggestion-bridged, to avoid duplicate reminders.
37
+ - **Reward pools**: funds in (RewardFundEvent) / claims out (RewardClaimEvent); a dry pool blocks claims — watch balances before announcing campaigns.
66
38
 
67
- - **Personal profile** (`personal` operations): your public on-chain identity. Everything here is PERMANENTLY PUBLIC — never anchor private data. Review-first: show the current record before every mutation.
68
- - **Entity info**: description/info updates re-emit NewEntityEvent — counterparties' cached profiles refresh; keep descriptions accurate.
69
- - **Repository data**: contribution/usage policies are designed at Repository level (see wowok-provider); governance audits consumption through the event stream.
39
+ ## Domain 3 — Data governance
70
40
 
71
- ---
72
-
73
- ## Monitor Loop
74
-
75
- Governance goals close the loop through three channels:
76
-
77
- - **Push**: fund-flow events (TreasuryEvent / AllocationEvent / RewardClaimEvent / RewardFundEvent) become goal-bound suggestions via SuggestionBridge.
78
- - **Pull**: keeper scans (payment_unclaimed, balance thresholds) repeat reminders until resolved.
79
- - **Audit**: after every governance write, re-query the object and confirm the post-state matches the intent.
80
-
81
- ---
41
+ - **Personal profile is permanently public** — never anchor private data; show the current record before every mutation.
42
+ - **Profile/contact description updates emit NO on-chain event** (`NewEntityEvent` fires only on entity registration). Counterparties see updates on their next object read — there is no push; tell the user this instead of promising a refresh.
43
+ - Repository contribution/usage policy belongs to [wowok-provider](../wowok-provider/SKILL.md); governance audits consumption via the event stream.
82
44
 
83
- ## Core Interaction Principles
45
+ ## Loop channels
84
46
 
85
- 1. **Review-first**: always show current state + the exact delta before executing.
86
- 2. **User-driven**: surface options, never auto-execute — withdraw and admin transfer are irreversible.
87
- 3. **Disclose irreversibility**: say it explicitly for withdraw, admin transfer, and any personal-data write.
88
- 4. **Audit after**: every governance write ends with a re-query confirmation.
47
+ - **Push**: fund-flow events (Treasury / Allocation / RewardFund / RewardClaim) become goal-bound suggestions through the monitor SuggestionBridge.
48
+ - **Pull**: keeper scans (`payment_unclaimed`, `progress_actionable`) repeat reminders until resolved; standing `auto_execute` exists only for claim-to-self.
49
+ - **Audit**: after every governance write, re-query and confirm the post-state matches intent.
89
50
 
90
- ## Quick Reference
51
+ ## Interaction rules
91
52
 
92
- - Permission: index remarks → grants (`add perm by index`/`by entity`) → audit via permission_perm + address_profile.
93
- - Treasury: deposit/withdraw + history audit; external_guard gates withdrawals.
94
- - Unclaimed payments: keeper scan owns reminders; recipients unwrap CoinWrappers.
95
- - Personal data: permanently public — review before every write.
53
+ 1. **Review-first**: current state + exact delta before executing.
54
+ 2. **User-driven**: never auto-execute — withdraw and admin changes are irreversible.
55
+ 3. **Disclose irreversibility** for withdraw, admin transfer, and any personal-data write.
56
+ 4. **Audit after**: end every governance write with a re-query confirmation.