@wowok/skills 2.2.2 → 2.2.4

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.
@@ -32,7 +32,7 @@ The following content has been pushed down to the MCP knowledge layer and is app
32
32
 
33
33
  | Content | Access via (MCP action) | Applied Via |
34
34
  |---------|--------------------------|-------------|
35
- | Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `project_operation` action='participation_radar' | role derivation → `collaborator-interest` |
35
+ | Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `query_toolkit` query_type='participation_radar' | role derivation → `collaborator-interest` |
36
36
  | Progress routing rule (namedOperator vs permissionIndex) | `schema_query` action='get_safety_rules' | `onchain_operations` progress/order |
37
37
  | Guard design + submission patterns | `schema_query` action='get_guard_design_patterns' | guard-gated forwards |
38
38
  | Node game (threshold cooperation) | `evaluation_operation` action='node_game' | multi-role forward evaluation |
@@ -62,7 +62,7 @@ Two sub-kinds (derived on-chain, never asserted):
62
62
 
63
63
  ## What You Can Execute Now
64
64
 
65
- Run `project_operation` action='participation_radar' with your account + the order's Progress. It returns:
65
+ Run `query_toolkit` query_type='participation_radar' with your account + the order's Progress. It returns:
66
66
 
67
67
  - `operable` — forwards YOU can execute right now (permission / named-operator path).
68
68
  - `waiting_on` — what the workflow waits on from other roles.
@@ -42,11 +42,11 @@ The following content has been pushed down to the MCP knowledge layer and is app
42
42
 
43
43
  | Content | Access via (MCP action) | Applied Via |
44
44
  |---------|--------------------------|-------------|
45
- | Node design rules (node type specs, forward guard patterns, topology limits) | auto-applied | `project_operation.create_project` (pass `project_industry`) + `project_operation.evaluate_project` |
46
- | Machine scene/template selection | auto-applied | `project_operation.create_project` (pass `project_industry`) |
47
- | Forward Guard design patterns | `schema_query` action='get_guard_design_patterns' | `project_operation.evaluate_project` |
48
- | Safety rules (immutability, confirmation) | `schema_query` action='get_safety_rules' | Pre-publish checks + `project_operation.evaluate_project` |
49
- | Publish gate (4-layer fail-closed: checklist → risk → user → environment) | auto-applied | `project_operation.evaluate_project` + pre-publish gate |
45
+ | Node design rules (node type specs, forward guard patterns, topology limits) | auto-applied | Industry mode defaults (`industry_pack_operation` action='list_modes') + `goal_operation` action='aggregate_risks' |
46
+ | Machine scene/template selection | auto-applied | Industry mode defaults (`industry_pack_operation` action='list_modes') |
47
+ | Forward Guard design patterns | `schema_query` action='get_guard_design_patterns' | `goal_operation` action='aggregate_risks' |
48
+ | Safety rules (immutability, confirmation) | `schema_query` action='get_safety_rules' | Pre-publish checks + `goal_operation` action='aggregate_risks' |
49
+ | Publish gate (4-layer fail-closed: checklist → risk → user → environment) | auto-applied | `goal_operation` action='aggregate_risks' + pre-publish gate |
50
50
 
51
51
  This Skill keeps the **workflow conversation guidance**, **business flow design patterns**, and **machine lifecycle scripts**. The MCP layer handles node-design rule evaluation, scene/template selection, and risk aggregation.
52
52
 
@@ -74,7 +74,7 @@ This Skill keeps the **workflow conversation guidance**, **business flow design
74
74
 
75
75
  A Guard validates the Forward's execution condition. **Retained submissions**: when `retained_submission` is set on a Guard, submitted values are stored in Progress history, uniquely located by `(current_node, next_node, forward_name)`. Later nodes query these values from history.
76
76
 
77
- > **Guard construction**: Forward Guard design patterns (table design, computation trees, query instructions) now live in the MCP knowledge layer — query via `schema_query` action='get_guard_design_patterns', auto-applied via `project_operation.evaluate_project`. Query available Guard instructions via `wowok_buildin_info`.
77
+ > **Guard construction**: Forward Guard design patterns (table design, computation trees, query instructions) now live in the MCP knowledge layer — query via `schema_query` action='get_guard_design_patterns', auto-applied via `goal_operation` action='aggregate_risks'. Query available Guard instructions via `wowok_buildin_info`.
78
78
 
79
79
  ### Threshold Mechanics
80
80
 
@@ -198,7 +198,7 @@ Decompose complex workflows into multiple Machines connected by Guard-based vali
198
198
  3. "Does any step depend on an external process completing first?"
199
199
  4. "Which party creates the sub-order, and which party verifies it?"
200
200
 
201
- > **Guard construction**: Cross-Machine Guards use `convert_witness` with Progress query instructions. Design rules now live in the MCP knowledge layer — query via `schema_query` action='get_guard_design_patterns', applied via `project_operation.evaluate_project`. Query available Guard instructions via `wowok_buildin_info`.
201
+ > **Guard construction**: Cross-Machine Guards use `convert_witness` with Progress query instructions. Design rules now live in the MCP knowledge layer — query via `schema_query` action='get_guard_design_patterns', applied via `goal_operation` action='aggregate_risks'. Query available Guard instructions via `wowok_buildin_info`.
202
202
 
203
203
  ### Dual-Signature Consensus
204
204
 
@@ -234,7 +234,7 @@ All stem from the same root: **every on-chain object has a publish/create freeze
234
234
  | `refunded` (terminal) | `refund_routing` (routing) → Allocator fires |
235
235
  | N/A (dispute) | `arbiter_rule` (routing) → Arbitration off-Machine (no Allocator) |
236
236
 
237
- A complete R-M1-11-compliant rental topology is auto-generated by `project_operation.create_project` with `project_industry='rental'`.
237
+ A complete R-M1-11-compliant rental topology ships as the `rental` industry mode's default Machine shape — query `industry_pack_operation` action='list_modes' for the per-industry defaults.
238
238
 
239
239
  ### Pre-Publish Validation Checklist
240
240
 
@@ -245,7 +245,7 @@ Before `publish: true`, verify:
245
245
  - [ ] **Every node has outgoing Forwards** (except terminals): no dead-end nodes
246
246
  - [ ] **Every node has incoming Pair** (except entry): no orphaned nodes
247
247
  - [ ] **All thresholds independently achievable**: no dead branches (competing Pair always wins first)
248
- - [ ] **⚠ R-M1-11 Compliance** (CRITICAL for deposit/refund scenarios): NO terminal nodes named `deposit_refunded`, `deposit_deducted`, `refunded`, or any name implying Machine-internal refund/deduction. Refund/deduction MUST flow through an **Allocator** triggered by a routing node (e.g., `return_approved`, `damage_confirmed`, `arbiter_rule`). Violating this causes funds to lock in the Machine with no Allocator path. Auto-enforced by MCP pre-publish checks and `project_operation.evaluate_project`.
248
+ - [ ] **⚠ R-M1-11 Compliance** (CRITICAL for deposit/refund scenarios): NO terminal nodes named `deposit_refunded`, `deposit_deducted`, `refunded`, or any name implying Machine-internal refund/deduction. Refund/deduction MUST flow through an **Allocator** triggered by a routing node (e.g., `return_approved`, `damage_confirmed`, `arbiter_rule`). Violating this causes funds to lock in the Machine with no Allocator path. Auto-enforced by MCP pre-publish checks and `goal_operation` action='aggregate_risks'.
249
249
  - [ ] All Guards exist on-chain and tested (use `gen_passport`)
250
250
  - [ ] `namedOperator` vs `permissionIndex` correct per Forward
251
251
  - [ ] Every Forward has at least one of `namedOperator` or `permissionIndex`
@@ -72,7 +72,7 @@ The on-chain **Contact** object (`operation_type: "contact"`) is the bridge betw
72
72
 
73
73
  **When to create**: Before Service publish, when `customer_required` is set (Service.um must point to a Contact). Reuse an existing Contact if you serve multiple Services with the same support channel.
74
74
 
75
- **Lifecycle**: Contact is mutable (unlike Proof/Guard). `im_add`/`im_remove` require permission index 453 (CONTACT_IM). No events emitted on IM mutations — poll `ims[]` field. If Contact is bound to `Permission.um` via `permission_um_set`, clear that binding BEFORE deleting the Contact (else dangling pointer). Full field constraints: MCP `schema_query` action='get' name='contact'.
75
+ **Lifecycle**: Contact is mutable (unlike Proof/Guard). IM mutations (`onchain_operations` contact with `ims: {op:'add'|'set'|'remove'|'clear', im:[...]}`) require permission index 453 (CONTACT_IM). No events emitted on IM mutations — poll `ims[]` field. If Contact is bound to `Permission.um`, clear that binding (permission op: `um: null`) BEFORE deleting the Contact (else dangling pointer). Full field constraints: MCP `schema_query` action='get' name='contact'.
76
76
 
77
77
  ---
78
78
 
@@ -37,13 +37,13 @@ The following content has been pushed down to the MCP knowledge layer and is app
37
37
 
38
38
  | Content | Access via (MCP action) | Applied Via |
39
39
  |---------|--------------------------|-------------|
40
- | Scenario mode defaults (per-industry Permission/Machine/Guard/Allocator) | `project_operation` action='list_modes' / 'create_project' | Auto-applied when `project_industry` is passed to `create_project` |
41
- | Safety rules (immutability, confirmation, object reuse) | `schema_query` action='get_safety_rules' | Pre-publish checks + `project_operation.evaluate_project` |
42
- | Guard / Machine / Arbitration / Treasury design rules | `schema_query` action='get_guard_design_patterns' | `project_operation.evaluate_project` |
40
+ | Scenario mode defaults (per-industry Permission/Machine/Guard/Allocator) | `industry_pack_operation` action='list_modes' / 'recommend_industry' | Referenced when recording the Goal (`goal_operation` action='create') and when building each object |
41
+ | Safety rules (immutability, confirmation, object reuse) | `schema_query` action='get_safety_rules' | Pre-publish checks + `goal_operation` action='aggregate_risks' |
42
+ | Guard / Machine / Arbitration / Treasury design rules | `schema_query` action='get_guard_design_patterns' | `goal_operation` action='aggregate_risks' |
43
43
  | Common mistakes (field/unit/workflow pitfalls) | `wowok_buildin_info` action='common mistakes' | Tool calls (proactive warnings) |
44
- | Deployment checklist (publish readiness) | `project_operation` action='evaluate_project' | deployment-scanner D-01..D-20 |
44
+ | Deployment checklist (publish readiness) | `goal_operation` action='aggregate_risks' (planned_objects / planned_operations) | deployment-scanner D-01..D-20 |
45
45
 
46
- This Skill keeps the **overall onboarding flow**, the **dependency-aware build order**, and the **user-driving interaction rhythm** (see below). Pass the user's industry to `create_project` (via `project_industry` parameter) and the MCP layer auto-fills the scenario defaults.
46
+ This Skill keeps the **overall onboarding flow**, the **dependency-aware build order**, and the **user-driving interaction rhythm** (see below). The user's intent is recorded as a **Goal** (`goal_operation` action='create'); industry/scenario defaults come from `industry_pack_operation` action='recommend_industry' / 'list_modes', and the plan pipeline is `goal_operation` action='analyze_intent' — actual on-chain objects are created via `onchain_operations` in dependency order.
47
47
 
48
48
  ---
49
49
 
@@ -53,7 +53,7 @@ These four principles govern EVERY round. They are non-negotiable and replace th
53
53
 
54
54
  1. **Review-first**: Before the first user choice, the AI MUST output a review that states (a) its understanding of the user's task, (b) the dependency-chain overview, and (c) the interaction contract. Only AFTER this review is the first choice presented.
55
55
  2. **User-driven**: Every round is driven by an explicit user decision. The AI provides a `recommend` option but NEVER auto-advances. The user may pause at any important round to ask questions.
56
- 3. **Reuse / Customize / Discover (三选一)**: For every component (Permission, Machine, Guard, Contact, Treasury, Arbitration, etc.), the AI MUST present three avenues — **reuse an existing object** (with its benefit), **customize a new object** (with its sub-task ability), or **discover an object** from other projects / the system. All three are mandatory to surface.
56
+ 3. **Reuse / Customize / Discover (choose one of three)**: For every component (Permission, Machine, Guard, Contact, Treasury, Arbitration, etc.), the AI MUST present three avenues — **reuse an existing object** (with its benefit), **customize a new object** (with its sub-task ability), or **discover an object** from other projects / the system. All three are mandatory to surface.
57
57
  4. **Default-config disclosure**: Before creating any new object, the AI MUST disclose the default configuration and important information (purpose, key settings, caveats), then let the user decide. No silent defaults.
58
58
 
59
59
  ---
@@ -110,7 +110,7 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
110
110
  - **Core elements to confirm**:
111
111
  - Account: **reuse an existing account** (name/address) or **create new** (default name).
112
112
  - Network: **testnet first** (recommended) or **mainnet directly**.
113
- - Industry mode: pass to `create_project` as `project_industry` — see the Industry Selection Guide below.
113
+ - Industry mode: resolved via `industry_pack_operation` action='recommend_industry' — see the Industry Selection Guide below.
114
114
  - **Default config**: new account with a default name; testnet network; industry mode auto-fills scenario defaults (Machine shape, Guards, Allocator).
115
115
  - **Reuse / Customize / Discover**: Reuse an existing account (benefit: keeps objects under one identity) — or create new.
116
116
  - **Dependencies**: none (foundation).
@@ -145,7 +145,7 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
145
145
  - Business flow: node list + forward paths.
146
146
  - Permissions: per-forward `namedOperator` (`""`=OrderHolder / role name) or `permissionIndex`.
147
147
  - Acceptance: per-forward Guard (or inline) — what must be verified before the transition executes.
148
- - **Default config**: the industry mode's `machine_shape` + `guards` (query `project_operation` action='list_modes'). Disclose these defaults FIRST, then let the user accept or customize.
148
+ - **Default config**: the industry mode's `machine_shape` + `guards` (query `industry_pack_operation` action='list_modes'). Disclose these defaults FIRST, then let the user accept or customize.
149
149
  - **Reuse / Customize / Discover**: Reuse an existing Machine template (`machineNode2file` export) or an existing Guard (`guard2file`). Customize: define your own nodes/forwards/guards. Discover: `machineNode2file` / `local_mark_list` for other projects' Machines/Guards.
150
150
  - **Dependencies**: Service draft (R3) + Permission (R2).
151
151
  - **R-M1-11 compliance**: Machine MUST use business-state nodes (e.g. `cancelled`, `returned`, `return_approved`), NOT dispute/refund terminal nodes (`refunded`, `deposit_refunded`, `disputed`, `arb`). Refund routes via Allocator; dispute routes via Arbitration.
@@ -214,7 +214,7 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
214
214
  - **Core elements to confirm** (each optional, each with default disclosure + reuse/customize/discover):
215
215
  - Reward (discounts/loyalty).
216
216
  - Supply-chain promises / Repository.
217
- - Audit: `evaluate_project` (risk) — fix ALL CRITICAL findings.
217
+ - Audit: `goal_operation` action='aggregate_risks' — fix ALL CRITICAL findings.
218
218
  - **Default config**: none required — these are opt-in. The audit itself is mandatory.
219
219
  - **Reuse / Customize / Discover**: each optional component can be created or discovered.
220
220
  - **Dependencies**: R1–R9.
@@ -230,8 +230,8 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
230
230
  - **Core elements to confirm**:
231
231
  - **Test account**: which account places the order — default is the **service-creation account**, but the user may choose another account to simulate a buyer.
232
232
  - **Advance path**: at each node, the user chooses which next node to advance to.
233
- - **Per-node disclosure (before each advance)**: the MCP injects `semantic.workflow_guidance` (on query_toolkit Progress results: `_workflow_guidance` / `_workflow_guidance_text`) listing **ALL** reachable next nodes with their operator (`namedOperator=""` → order holder / `permissionIndex` → role / named operator), forward, weight, guard, business meaning, and a K3-framed recommendation (gains/risks/consistency). Relay this full list to the user (who can act, with which permission/account), then let the user choose — **AI 推荐、人决策** (K3 P3).
234
- - **After each advance**: relay `semantic.workflow_receipt` — which account did what, whether the node migrated; if it did NOT migrate and threshold > 0, report threshold / accumulated weight / remaining / who must act next (K3 G4 阈值配合).
233
+ - **Per-node disclosure (before each advance)**: the MCP injects `semantic.workflow_guidance` (on query_toolkit Progress results: `_workflow_guidance` / `_workflow_guidance_text`) listing **ALL** reachable next nodes with their operator (`namedOperator=""` → order holder / `permissionIndex` → role / named operator), forward, weight, guard, business meaning, and a K3-framed recommendation (gains/risks/consistency). Relay this full list to the user (who can act, with which permission/account), then let the user choose — **AI recommends, human decides** (K3 P3).
234
+ - **After each advance**: relay `semantic.workflow_receipt` — which account did what, whether the node migrated; if it did NOT migrate and threshold > 0, report threshold / accumulated weight / remaining / who must act next (K3 G4 threshold coordination).
235
235
  - **Default config**: test account = service-creation account.
236
236
  - **Reuse / Customize / Discover**: n/a (verification).
237
237
  - **Dependencies**: Service published (R11) — `order_new` requires `bPublished=true`.
@@ -241,13 +241,13 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
241
241
 
242
242
  ## Industry Selection Guide
243
243
 
244
- When the user describes their business (R1), query the authoritative industry list via `project_operation` action='list_modes' — 8 entries: `freelance` / `rental` / `education` / `travel` / `subscription` / `retail` / `retail_d2c` / `general`. If unsure which fits, call `project_operation` action='recommend_industry' with the business description. Pass the chosen `project_industry` to `create_project` — MCP auto-fills the scenario defaults (Machine shape, Guards, Allocator). Mid-onboarding iteration: `derive_user_mode` / `evolve_user_mode`.
244
+ When the user describes their business (R1), query the authoritative industry list via `industry_pack_operation` action='list_modes' — 8 entries: `freelance` / `rental` / `education` / `travel` / `subscription` / `retail` / `retail_d2c` / `general`. If unsure which fits, call `industry_pack_operation` action='recommend_industry' with the business description. Reference the chosen mode when recording the Goal (`goal_operation` action='create') and when building the Service — its defaults (Machine shape, Guards, Allocator) inform each round's config disclosure. Mid-onboarding iteration: `industry_pack_operation` action='derive_user_mode' / 'evolve_user_mode'.
245
245
 
246
246
  ---
247
247
 
248
248
  ## Deployment Checklist
249
249
 
250
- Before declaring onboarding complete, run `project_operation` action='evaluate_project' (risk) — MCP auto-checks machine binding, order_allocators, buy_guard, arbitration isolation, R-M1-11 compliance, and publish readiness (deployment-scanner D-01..D-20). Fix ALL CRITICAL findings, then verify the remaining hard gates via `query_toolkit` (onchain_objects). The authoritative checklist is served by MCP — do not re-derive it here.
250
+ Before declaring onboarding complete, run `goal_operation` action='aggregate_risks' — MCP auto-checks machine binding, order_allocators, buy_guard, arbitration isolation, R-M1-11 compliance, and publish readiness (deployment-scanner D-01..D-20) against your planned objects/operations. Fix ALL CRITICAL findings, then verify the remaining hard gates via `query_toolkit` (onchain_objects). The authoritative checklist is served by MCP — do not re-derive it here.
251
251
 
252
252
  ---
253
253
 
@@ -3,9 +3,9 @@ name: wowok-order
3
3
  description: |
4
4
  WoWok Buyer Guide — TWO lifecycles in one skill:
5
5
 
6
- 1. PROSPECT (潜在用户尽调, pre-purchase): E1-E11 due diligence + consensus
6
+ 1. PROSPECT (prospect due diligence, pre-purchase): E1-E11 due diligence + consensus
7
7
  building + trust-score synthesis, ending in a buy/no-buy decision.
8
- 2. CUSTOMER (已下单履约, post-order): order creation, progress advancement,
8
+ 2. CUSTOMER (in-order fulfillment, post-order): order creation, progress advancement,
9
9
  fund management, and arbitration.
10
10
 
11
11
  For suppliers presenting to Demands, see wowok-supplier. For process
@@ -32,8 +32,8 @@ when_to_use:
32
32
 
33
33
  | Lifecycle | Role | Phases | Ends with |
34
34
  |-----------|------|--------|-----------|
35
- | **Prospect** (潜在用户尽调) | You have NOT ordered yet | Phase 1 (E1-E11) + Phase 2 | buy / no-buy decision |
36
- | **Customer** (已下单履约) | You are the Order `builder` | Phase 3-6 + Fund Management | funds withdrawn / dispute resolved |
35
+ | **Prospect** (prospect due diligence) | You have NOT ordered yet | Phase 1 (E1-E11) + Phase 2 | buy / no-buy decision |
36
+ | **Customer** (in-order fulfillment) | You are the Order `builder` | Phase 3-6 + Fund Management | funds withdrawn / dispute resolved |
37
37
 
38
38
  The prospect lifecycle is served primarily by MCP `trust_score` (`depth: "preorder"`) and the plug-in `evaluation_operation` — this skill keeps the dialogue flow. The customer lifecycle is on-chain (Order/Progress/Allocation/Arb).
39
39
 
@@ -14,53 +14,89 @@ always: true
14
14
 
15
15
  # Address Display Rules
16
16
 
17
- ## Override Condition
17
+ ## Environment split (read first)
18
18
 
19
- If user explicitly requests full/long addresses (e.g., "show full addresses", "do not abbreviate"),
20
- this skill's shortening rules are DISABLED — display complete 66-character addresses.
19
+ Address rendering differs by environment — pick the correct mode:
21
20
 
22
- ## Short Address Format
21
+ | Environment | Default display | Full address |
22
+ |---|---|---|
23
+ | **WoWok client** (rich renderer available) | Full address — the client converts it into an address chip (name, DEFAULT badge, type icon, popup) | Always |
24
+ | **Other AI clients** (plain MCP clients, markdown only) | Name when resolved, otherwise SHORTID; DEFAULT marker on the default account | ONLY when the user explicitly asks |
25
+
26
+ Rules that hold in BOTH environments:
27
+ - **NEVER truncate with `…`** (e.g. `0x00f6…a5839` is FORBIDDEN). It is neither a valid full address nor a valid SHORTID — it cannot be resolved, copied, or acted on. The only compact form allowed is the SHORTID transform defined below.
28
+ - The full 66-character address is ALWAYS present in the tool results injected into your context — nothing is lost when you display a name/SHORTID; you can produce the full address on request.
29
+
30
+ ## Inside the WoWok client (rich rendering — authoritative)
31
+
32
+ The client renders EVERY complete `0x`-prefixed address in your reply
33
+ automatically as the canonical address chip — local name, DEFAULT badge,
34
+ first-byte object-type icon, and hover popup (Explorer / Analyze / AI / copy).
35
+
36
+ Therefore:
37
+ - Write the full address in prose OR in inline code — both become chips.
38
+ - Do NOT attach names, labels, short ids, or parentheses to an address (no `(default)`, no `Name 0x<full-address>`); the client resolves and renders name/type/DEFAULT state itself.
39
+
40
+ ## Other AI clients (generic MCP clients — plain markdown, no custom renderer)
23
41
 
24
- **MUST APPLY TO ALL ADDRESSES AND OBJECT IDs** (0x prefix + 64 hex chars = 66 chars total).
42
+ External clients render standard markdown only (no popup, no chips). Default to
43
+ a CONCISE display — full 66-char addresses are noisy and are not shown unless
44
+ asked:
25
45
 
26
- Generate a short ID by the following rules:
27
- 1. Remove `0x` prefix → get the hex string
28
- 2. Take the first 5 characters (or fewer if the address is shorter)
46
+ - **Named** (account name or local_mark resolved via `local_names` / tool
47
+ results): show the NAME ONLY, e.g. `alice_wallet`. Never append an id.
48
+ - **Unnamed**: show the SHORTID (format below), e.g. `10EF-A11`.
49
+ - **Default account** (the on-chain default account, which has an empty name):
50
+ mark it as `(default)`, e.g. `(default) 10EF-A11`.
51
+ - In tables: name or SHORTID in the cell; the full address is omitted by default.
52
+ - **Full address on request**: when the user explicitly asks to see full /
53
+ detailed / complete addresses ("show the full address", "give me the complete
54
+ address", "copyable address"), output the COMPLETE `0x` + 64 hex chars
55
+ wrapped in inline code so it is one-click copyable in any markdown client.
56
+ When a name is known, put name + full address together:
57
+ **alice_wallet** `0xFULLADDRESS`.
58
+
59
+ ## User override
60
+
61
+ - Other clients, "show full / long / complete addresses" → output the full inline-code address for that reply.
62
+ - Other clients, "use short / compact" → SHORTID (already the default for unnamed addresses).
63
+ - WoWok client: always full addresses regardless — the chip renderer handles display.
64
+
65
+ ## SHORTID format
66
+
67
+ System-wide rule (identical to the client's `formatAddress`):
68
+ 1. Remove the `0x` prefix → hex string
69
+ 2. Keep the FIRST 4 and the LAST 3 hex chars, joined by `-`
29
70
  3. Convert to UPPERCASE
30
- 4. **If all 5 characters are the same character** (e.g., `00000` → `AAAAA`), fall back to the last 5 characters, prefixed with `...`
31
- 5. **If even the last 5 are all the same character** (extremely rare), find 5 consecutive characters near the middle that differ, wrapped with `...` on both sides
32
- 6. **Display rule**: no parentheses by default; parentheses are only used when paired with a name (see Display Format Rules below)
71
+ 4. 7 hex chars or fewer → the whole string, uppercased
72
+ 5. Empty / missing → `--`
33
73
 
34
74
  **Examples**:
35
- | Full Address | Short ID | Rule |
75
+ | Full Address | SHORTID | Rule |
36
76
  |---|---|---|
37
- | `0xa1d421902a3e5f2e4da7590e8f243712b3b3479d1a07c48c2de543184fc97a33` | `A1D42` | Normal: first 5 |
38
- | `0x00000123456789abcdef0123456789abcdef0123456789abcdef000000000000` | `...00000` | First 5 all same → last 5 |
39
- | `0x00000000000000000000000000000000000000000000000000000000000000000` | `...00000...` | Both ends all same → middle 5 |
40
- | `0x2` | `2` | Short address, take actual length |
77
+ | `0xa1d421902a3e5f2e4da7590e8f243712b3b3479d1a07c48c2de543184fc97a33` | `A1D4-A33` | first 4 + `-` + last 3 |
78
+ | `0x10ef0000000000000000000000000000000000000000000000000000000cda11` | `10EF-A11` | first 4 + `-` + last 3 |
79
+ | `0x2` | `2` | ≤7 chars, as-is |
41
80
 
42
- ## Resolution Priority & Display Format
81
+ ## Resolution priority
43
82
 
44
83
  **Query Tool**: `query_toolkit` with `query_type: "local_names"`
45
84
 
46
85
  Returns: `{ account?: string, local_mark?: string, address: string }`
47
86
 
48
- ### Display Format Rules (STRICT)
49
-
50
- | Condition | Display Format | Example |
51
- |-----------|----------------|---------|
52
- | **Both account AND local_mark exist** | `{account_name} \| {local_mark_name}({ID})` | `alice \| my_mark(A1D42)` |
53
- | **Only account exists** | `{account_name}({ID})` | `alice_wallet(A1D42)` |
54
- | **Only local_mark exists** | `{local_mark_name}({ID})` | `my_service(A1D42)` |
55
- | **Neither exists** | `{ID}` | `A1D42` |
87
+ - Named (account or local_mark resolved): display the name ONLY (WoWok client
88
+ renders the name chip itself; other clients show the name).
89
+ - Unnamed: WoWok client → full address (chip); other clients → SHORTID.
90
+ - The account with an empty name that is the on-chain default → other clients
91
+ tag it `(default)`; the WoWok client adds its DEFAULT badge automatically.
92
+ - When both an account name and a local_mark exist, prefer local_mark (object
93
+ names) for objects and the account name for user addresses.
56
94
 
57
95
  ---
58
96
 
59
- ## Name Length Limit
97
+ ## Name Display
60
98
 
61
- - **Maximum display length**: 20 characters
62
- - **Overflow handling**: Truncate to 17 chars + `...`
63
- - **Example**: `three_body_signature_service_v2` → `three_body_sig...`
99
+ - Display the resolved name in full — the client does NOT truncate names.
64
100
 
65
101
  # Amount Formatting Rules
66
102
 
@@ -100,10 +136,12 @@ Supported query types with `_money_display`:
100
136
  ```
101
137
  | # | Time | Sender | Service | Amount | Order |
102
138
  |---|------|--------|---------|--------|-------|
103
- | 1 | {time} | {name}(ABCDE) | {name}(ABCDE) | {amount} | ABCDE |
139
+ | 1 | {time} | {addr-cell} | {addr-cell} | {amount} | {addr-cell} |
104
140
  ```
105
141
 
106
- **Note**: `{name}` follows Display Format Rules above (account | local_mark). If no name, show only the short ID (no parentheses).
142
+ **Address cells follow the environment split above**:
143
+ - WoWok client → the cell contains the full address (rendered as an address chip automatically).
144
+ - Other clients → the cell contains the resolved name or the SHORTID (default account tagged `(default)`); full addresses only when the user explicitly asked for them.
107
145
 
108
146
  ## Event Type Fields
109
147
 
@@ -126,7 +164,7 @@ When user asks about field meanings:
126
164
  - **Sender**: Account that initiated the transaction
127
165
  - **Service**: Service object being ordered/interacted with
128
166
  - **Order Object**: Unique on-chain identifier for this order
129
- - **Short Address (ABCDE)**: Shortened ID for quick visual identification — see Short Address Format rules (first 5 chars; fallback to last 5 or middle 5 if all same)
167
+ - **Short Address (SHORTID)**: Compact display form (first 4 + `-` + last 3 hex chars, uppercase). Default for unnamed addresses in other AI clients; the WoWok client applies it automatically inside its address chips. Never hand-truncate with `…`.
130
168
 
131
169
  ## Amounts
132
170
  - **Raw**: Actual U64 integer stored on-chain
@@ -146,7 +184,10 @@ When user asks about field meanings:
146
184
  - [ ] Query `local_names` for resolution
147
185
  - [ ] Check for `_money_display` annotations in query results (primary amount source)
148
186
  - [ ] If `_money_display` absent, query `token_list` for manual amount formatting
149
- - [ ] Apply address format rules
187
+ - [ ] Address display: WoWok client → full `0x`+64 hex addresses (auto chips);
188
+ other clients → resolved name, or SHORTID for unnamed / `(default)` for the
189
+ default account; full inline-code address only when the user asks
190
+ - [ ] Never hand-truncate addresses with `…` — SHORTID is the only compact form
150
191
  - [ ] Apply amount format rules (use `_money_display` first; fallback to conservative)
151
192
  - [ ] Render final output
152
193
 
@@ -27,7 +27,7 @@ Converts natural-language intent into an executable Object Dependency Graph (ODG
27
27
 
28
28
  > **Layer**: L3 Skill, primary planner for L4 Harness Plan Loop
29
29
  > **Related Skills**: [wowok-onboard](../wowok-onboard/SKILL.md) (guided execution), [wowok-machine](../wowok-machine/SKILL.md) (workflow design), [wowok-provider](../wowok-provider/SKILL.md) (post-plan operations)
30
- > Industry modes, Guard design patterns, safety rules, and tool references now live in the MCP knowledge layer — query via `project_operation` (`recommend_industry` / `list_modes`) and `schema_query` (`get_guard_design_patterns` / `get_safety_rules` / `get_tool_reference`).
30
+ > Industry modes, Guard design patterns, safety rules, and tool references now live in the MCP knowledge layer — query via `industry_pack_operation` (`recommend_industry` / `list_modes`) and `schema_query` (`get_guard_design_patterns` / `get_safety_rules` / `get_tool_reference`).
31
31
 
32
32
  ---
33
33
 
@@ -96,7 +96,7 @@ The ODG (Object Dependency Graph) is the single output artifact, persisted via `
96
96
  }
97
97
  ```
98
98
 
99
- Each object has: `id`, `type`, `status` (planned/created/published), `reversible` (true/false), `dependencies` (other object IDs), `user_decisions` (typed fields). Phases gate progression — `risk_check` calls `evaluate_project` (evaluation_type='risk'), `final_audit` runs the pre-publish audit checklist (see wowok-auditor).
99
+ Each object has: `id`, `type`, `status` (planned/created/published), `reversible` (true/false), `dependencies` (other object IDs), `user_decisions` (typed fields). Phases gate progression — `risk_check` calls `goal_operation` action='aggregate_risks' (with planned objects/operations), `final_audit` runs the pre-publish audit checklist (see wowok-auditor).
100
100
 
101
101
  **Dependency-chain ordering rules (authoritative, verified from Move/SDK):**
102
102
  1. **Service DRAFT is created BEFORE Machine** — Guards reference the Service by LocalMark NAME, so the Service skeleton must exist first to break the Guard↔Service circular dependency.
@@ -28,17 +28,17 @@ when_to_use:
28
28
 
29
29
  ## MCP Knowledge Layer
30
30
 
31
- The following rule tables have been pushed down to the MCP knowledge layer and are automatically applied during project operations. You do NOT need to manually check these — the MCP server enforces them.
31
+ The following rule tables have been pushed down to the MCP knowledge layer and are automatically applied during on-chain operations. You do NOT need to manually check these — the MCP server enforces them.
32
32
 
33
33
  | Rule Category | Access via (MCP action) | Applied By |
34
34
  |---------------|--------------------------|------------|
35
- | Safety rules (confirmation, immutability, object reuse) | `schema_query` action='get_safety_rules' | `evaluate_project` + `onchain_operations` pre-publish |
36
- | Guard design patterns | `schema_query` action='get_guard_design_patterns' | `evaluate_project` (guard risk assessment) |
37
- | Machine topology rules | auto-applied | `evaluate_project` (machine risk assessment) |
38
- | Scenario mode defaults | `project_operation` action='list_modes' | `create_project` (pass `project_industry` parameter) |
35
+ | Safety rules (confirmation, immutability, object reuse) | `schema_query` action='get_safety_rules' | `goal_operation` action='aggregate_risks' + `onchain_operations` pre-publish |
36
+ | Guard design patterns | `schema_query` action='get_guard_design_patterns' | `goal_operation` action='aggregate_risks' (guard risk assessment) |
37
+ | Machine topology rules | auto-applied | `goal_operation` action='aggregate_risks' (machine risk assessment) |
38
+ | Scenario mode defaults | `industry_pack_operation` action='list_modes' / 'recommend_industry' | Referenced when recording the Goal and building the Service |
39
39
  | Tool reference (gas, faucet, wrappers) | `schema_query` action='get_tool_reference' | All tool calls automatically |
40
40
 
41
- **How to use**: Call `project_operation` with `action: "evaluate_project"` (evaluation_type='risk') after completing your puzzle — the MCP server will automatically apply all relevant safety rules and return risk findings.
41
+ **How to use**: Call `goal_operation` with `action: "aggregate_risks"` after completing your puzzle (pass your planned objects/operations) — the MCP server will automatically apply all relevant safety rules and return risk findings.
42
42
 
43
43
  ---
44
44
 
@@ -48,7 +48,7 @@ These four principles govern every service build/modify step. They mirror the wo
48
48
 
49
49
  1. **Review-first**: State (a) what the AI understood about the service, (b) the dependency order to build/modify, and (c) the interaction contract — before the first choice.
50
50
  2. **User-driven**: Every step is an explicit user decision; the AI provides a `recommend` but never auto-advances. The user may pause at any important step.
51
- 3. **Reuse / Customize / Discover (三选一)**: For every component (Permission, Machine, Guard, Treasury, Contact, Arbitration, etc.), surface all three avenues — reuse an existing object (benefit), customize a new one (sub-task ability), or discover from other projects / the system.
51
+ 3. **Reuse / Customize / Discover (choose one of three)**: For every component (Permission, Machine, Guard, Treasury, Contact, Arbitration, etc.), surface all three avenues — reuse an existing object (benefit), customize a new one (sub-task ability), or discover from other projects / the system.
52
52
  4. **Default-config disclosure**: Disclose a new object's default config + important info + caveats BEFORE the user decides. No silent defaults.
53
53
 
54
54
  ---
@@ -124,13 +124,13 @@ Once R1-R7 confirmed, execute in strict order. Sub-tools are invoked via `wowok(
124
124
 
125
125
  **STEP 7 — Trust (Arbitration + compensation_fund)**: REUSE third-party Arbitration (MUST NOT share Service's Permission — E_ARBITRATION_PERMISSION_CONFLICT 33; don't create your own). `compensation_fund_add` (internal Balance<T>, not Treasury); fund>0 requires non-empty arbitrations (E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND 25); withdraw needs bPaused + lock elapsed.
126
126
 
127
- **STEP 8 — Publication**: pre-publish verify — (1) machineNode2file, (2) guard2file, (3) evaluate_project risk → fix CRITICAL, (4) permission indexes granted, (5) arb permission isolation, (6) contact ims+enabled → `onchain_operations` service `publish: true` (L1-LOCKED: machine/order_allocators/arbitrations).
127
+ **STEP 8 — Publication**: pre-publish verify — (1) machineNode2file, (2) guard2file, (3) `goal_operation` aggregate_risks → fix CRITICAL, (4) permission indexes granted, (5) arb permission isolation, (6) contact ims+enabled → `onchain_operations` service `publish: true` (L1-LOCKED: machine/order_allocators/arbitrations).
128
128
 
129
129
  **STEP 9 — Post-publish + Test Order**: mutable fields (description/location/sales/customer_required/rewards add/repositories add). Test order: `order_new` (requires bPublished, else E_NOT_PUBLISHED) → disclose next nodes → advance (order.progress / progress.operate) → alloc_by_guard → verify distribution. User chooses test account (default: service-creation account).
130
130
 
131
131
  ### Post-Publish Mutability (SDK-LOCKED vs mutable)
132
132
 
133
- Served by MCP `schema_query` action='get_safety_rules' (immutability-after-publish). Summary: `buy_guard` / `sales` / `description` / `repositories` / `rewards` are mutable; `machine` / `order_allocators` / `arbitrations` are SDK-LOCKED (fork required to change).
133
+ Served by MCP `schema_query` action='get_safety_rules' (immutability-after-publish). Summary: `buy_guard` / `sales` / `description` / `repositories` / `rewards` are mutable; `machine` / `order_allocators` / `arbitrations` are SDK-LOCKED (a new Service version is required to change them).
134
134
 
135
135
  ---
136
136
 
@@ -138,7 +138,7 @@ Served by MCP `schema_query` action='get_safety_rules' (immutability-after-publi
138
138
 
139
139
  ### Service Object Relationships
140
140
 
141
- > **Boundary conditions**: Service/Machine are IMMUTABLE after publish; Payment is FROZEN at creation; Order/Progress/Arbitration operations are irreversible. Use `get_project_detail` to check whether a project has published objects.
141
+ > **Boundary conditions**: Service/Machine are IMMUTABLE after publish; Payment is FROZEN at creation; Order/Progress/Arbitration operations are irreversible. Use `query_toolkit` query_type='service_panorama' to check whether a Service has published objects.
142
142
 
143
143
  ```
144
144
  Service → permission, machine (immutable), order_allocators (immutable),
@@ -199,28 +199,28 @@ WOW is the default settlement token. For stablecoin-denominated revenue (fiat-pe
199
199
 
200
200
  ---
201
201
 
202
- ## Project Iteration: Fork vs In-Place
202
+ ## Service Iteration: New Version vs In-Place
203
203
 
204
- When a merchant wants to modify an existing service (change workflow, add allocators, update guards), the AI must determine whether to modify the current version (in-place) or fork a new version.
204
+ When a merchant wants to modify an existing service (change workflow, add allocators, update guards), the AI must determine whether to modify in place or build a new version.
205
205
 
206
206
  ### Decision Rule
207
207
 
208
208
  | Scenario | Strategy | MCP Action |
209
209
  |----------|----------|------------|
210
- | Service NOT yet published | **In-place** — modify the current version directly | `onchain_operations` (modify) |
211
- | Service IS published | **Fork** — create a new version, preserve original as read-only | `project_operation` → `create_version` (with `fork_from_version`) |
210
+ | Service NOT yet published | **In-place** — modify the current draft directly | `onchain_operations` (modify) |
211
+ | Service IS published | **New version** — build v2 objects and publish as a separate Service; v1 keeps running | `onchain_operations` (create + publish) |
212
212
 
213
- ### Fork Workflow
213
+ ### New-Version Workflow
214
214
 
215
- When the service is already published and the user wants structural changes, use MCP `project_operation` action `create_version` (with `fork_from_version` parameter; original v1 stays read-only; no on-chain objects copied since they're immutable). Then work on v2 reusing v1 on-chain objects by address and creating new objects only for changed parts. Publish v2 when ready — v1 continues running uninterrupted.
215
+ Published objects are IMMUTABLE on-chain — there is no in-place structural change and no version-fork tool. When the service is already published and the user wants structural changes, build the new version's objects with `onchain_operations`: reuse v1 objects by address where unchanged (Permission, Guards, Treasury, Contact…) and create new objects only for the changed parts (e.g. a new Machine). Then publish v2 as its own Service — v1 continues running uninterrupted as a separate, still-live Service.
216
216
 
217
- Before forking, verify necessity via `get_project_detail` → `has_published_object=true` confirms fork is required (published objects are immutable).
217
+ Before building v2, verify necessity via `query_toolkit` query_type='service_panorama' — a published Service confirms a new version is required (published objects are immutable).
218
218
 
219
- ### When to Recommend Forking
219
+ ### When to Recommend a New Version
220
220
 
221
- - User says "I want to change my workflow" → check if published → recommend fork
222
- - User says "I want to add a new product line" → if same Machine can handle it, in-place modify Service.sales; if needs new Machine, fork
223
- - User says "I want to change fund distribution" → if Service not published, in-place; if published, fork (allocators are frozen after publish)
221
+ - User says "I want to change my workflow" → check if published → recommend a new version
222
+ - User says "I want to add a new product line" → if same Machine can handle it, in-place modify Service.sales; if it needs a new Machine, a new version
223
+ - User says "I want to change fund distribution" → if Service not published, in-place; if published, a new version (allocators are frozen after publish)
224
224
 
225
225
  ---
226
226
 
@@ -32,9 +32,9 @@ The following content has been pushed down to the MCP knowledge layer and is app
32
32
  | Content | Access via (MCP action) | Applied Via |
33
33
  |---------|--------------------------|-------------|
34
34
  | Demand semantics (open vs guarded, present paths) | `schema_query` action='get' (demand object schema, or on-demand knowledge) | `onchain_operations` demand |
35
- | Supplier interest analysis (fund_flow / responsibility / leverage / stakes) | `project_operation` action='participation_radar' | role derivation → `supplier-interest` |
35
+ | Supplier interest analysis (fund_flow / responsibility / leverage / stakes) | `query_toolkit` query_type='participation_radar' | role derivation → `supplier-interest` |
36
36
  | Demand/service matching | `evaluation_operation` action='demand_match' | read-only ranking |
37
- | Safety rules (immutability, object reuse, confirmation) | `schema_query` action='get_safety_rules' | `evaluate_project` + pre-publish |
37
+ | Safety rules (immutability, object reuse, confirmation) | `schema_query` action='get_safety_rules' | `goal_operation` action='aggregate_risks' + pre-publish |
38
38
 
39
39
  This Skill keeps the supplier **conversation flow** — discover → present → fulfill → collect. The MCP layer handles rules, matching, and own-interest surfacing.
40
40
 
@@ -55,7 +55,7 @@ Your payment is a two-hop waterfall: main order escrow → allocation → your s
55
55
 
56
56
  1. **Review-first**: State (a) what the AI understood, (b) the decision order, and (c) the interaction contract — before the first choice.
57
57
  2. **User-driven**: Every step is an explicit user decision; the AI provides a `recommend` but never auto-advances.
58
- 3. **Reuse / Customize / Discover (三选一)**: For every component (service, passport, guard), surface reuse / customize / discover.
58
+ 3. **Reuse / Customize / Discover (choose one of three)**: For every component (service, passport, guard), surface reuse / customize / discover.
59
59
  4. **Default-config disclosure**: Disclose defaults + caveats BEFORE the user decides.
60
60
 
61
61
  ---
@@ -114,7 +114,7 @@ If the upstream merchant stalls or withholds, escalate in order:
114
114
 
115
115
  ## Own-Interest Surfacing
116
116
 
117
- Run `project_operation` action='participation_radar' with your account + sub-order progress. The MCP derives your role (supplier) and attaches `supplier-interest` (fund_flow / responsibility / leverage / stakes). Present it as neutral information — the supplier decides.
117
+ Run `query_toolkit` query_type='participation_radar' with your account + sub-order progress. The MCP derives your role (supplier) and attaches `supplier-interest` (fund_flow / responsibility / leverage / stakes). Present it as neutral information — the supplier decides.
118
118
 
119
119
  ---
120
120