@wowok/skills 2.2.3 → 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.
- package/examples/Insurance/Insurance.md +77 -5
- package/examples/MyShop/MyShop.md +4 -0
- package/package.json +1 -1
- package/wowok-arbitrator/SKILL.md +1 -1
- package/wowok-onboard/SKILL.md +3 -3
- package/wowok-order/SKILL.md +4 -4
- package/wowok-output/SKILL.md +62 -29
- package/wowok-provider/SKILL.md +1 -1
- package/wowok-supplier/SKILL.md +1 -1
|
@@ -314,10 +314,10 @@ clock > progress.current_time + 10000
|
|
|
314
314
|
|
|
315
315
|
**Guard Table**:
|
|
316
316
|
|
|
317
|
-
| identifier | b_submission | value_type | value | Purpose |
|
|
318
|
-
|
|
319
|
-
| 0 | **true** | Address | (submitted at runtime) | Order ID submitted at runtime, converted to Progress via convert_witness |
|
|
320
|
-
| 1 | false | U64 | 10000 | Time-lock duration in ms (10 seconds for testing) |
|
|
317
|
+
| identifier | b_submission | value_type | value | name | Purpose |
|
|
318
|
+
|------------|-------------|-----------|-------|------|---------|
|
|
319
|
+
| 0 | **true** | Address | (submitted at runtime) | Order ID (submitted at runtime) | Order ID submitted at runtime, converted to Progress via convert_witness |
|
|
320
|
+
| 1 | false | U64 | 10000 | lock_duration_ms | Time-lock duration in ms (10 seconds for testing) |
|
|
321
321
|
|
|
322
322
|
> **Important**: `10000` ms (10 seconds) is for testing only. In production, set to a reasonable duration (e.g., 8 hours = 28800000 ms).
|
|
323
323
|
|
|
@@ -1107,7 +1107,78 @@ Fill in the `value` field with the Order ID (or Order name) and resubmit. The `s
|
|
|
1107
1107
|
> - Replace `0xfb8bed2f...` with the actual `insurance_withdraw_guard_treasury_v1` address from your Phase 1 response.
|
|
1108
1108
|
> - The `value` field accepts either an on-chain object ID or a named object reference (e.g., `"test_insurance_order_v1"`).
|
|
1109
1109
|
> - The `sharing` configuration (`{"Entity": "insurance_treasury_v1"}` at 100% Rate) determines where funds flow. Funds go to the fixed Treasury address regardless of who calls the allocation — this is the safe Entity-sharing pattern that prevents fund theft.
|
|
1110
|
-
> - After a successful withdrawal, the Allocation `balance` becomes `0
|
|
1110
|
+
> - After a successful withdrawal, the Allocation `balance` becomes `0`, a Payment object is created as an immutable record, and the recipient receives the funds as a **CoinWrapper** object (owned but NOT yet spendable). Complete Step 12 to unwrap it into spendable balance.
|
|
1111
|
+
|
|
1112
|
+
---
|
|
1113
|
+
|
|
1114
|
+
## Step 12: Receive Funds (Unwrap CoinWrapper — Single Action)
|
|
1115
|
+
|
|
1116
|
+
After `alloc_by_guard` distributes funds, each recipient receives a `CoinWrapper<T>` object — owned but not spendable. **The tool auto-unwraps in ONE action**: no need to query CoinWrapper IDs first, and no need to specify the coin type — received CoinWrappers are auto-enumerated and their inner token type (`CoinWrapper<T>`) is auto-derived on-chain.
|
|
1117
|
+
|
|
1118
|
+
Choose the variant matching the recipient (Treasury approach → 12.1; personal approach → 12.2).
|
|
1119
|
+
|
|
1120
|
+
### 12.1 Treasury Recipient (Approach 1)
|
|
1121
|
+
|
|
1122
|
+
**Prompt**: Receive recently arrived funds into "insurance_treasury_v1".
|
|
1123
|
+
|
|
1124
|
+
```json
|
|
1125
|
+
{
|
|
1126
|
+
"tool": "onchain_operations",
|
|
1127
|
+
"data": {
|
|
1128
|
+
"operation_type": "treasury",
|
|
1129
|
+
"data": {
|
|
1130
|
+
"object": "insurance_treasury_v1",
|
|
1131
|
+
"receive": "recently"
|
|
1132
|
+
},
|
|
1133
|
+
"env": {
|
|
1134
|
+
"account": "insurance_provider_v1",
|
|
1135
|
+
"network": "testnet"
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
> **How it works**: `receive: "recently"` auto-queries every `CoinWrapper` received by the Treasury and deposits them into the Treasury balance in a single transaction. The Treasury's token type (`0x2::wow::WOW`) must match the CoinWrapper's inner type (validated automatically).
|
|
1142
|
+
|
|
1143
|
+
### 12.2 Personal Recipient (Approach 2)
|
|
1144
|
+
|
|
1145
|
+
**Prompt**: Unwrap all CoinWrappers owned by "insurance_provider_v1" into spendable balance.
|
|
1146
|
+
|
|
1147
|
+
```json
|
|
1148
|
+
{
|
|
1149
|
+
"tool": "onchain_operations",
|
|
1150
|
+
"data": {
|
|
1151
|
+
"operation_type": "payment",
|
|
1152
|
+
"data": {
|
|
1153
|
+
"receive": true
|
|
1154
|
+
},
|
|
1155
|
+
"env": {
|
|
1156
|
+
"account": "insurance_provider_v1",
|
|
1157
|
+
"network": "testnet"
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
> **How it works (AUTO-RECEIVE)**: with `receive: true` and `object` omitted, the tool unwraps **every** CoinWrapper currently owned by the caller via `payment::unwrap_to_myself` in a single transaction, deleting the wrappers and transferring the underlying coins to the caller. The coin type is auto-derived from each wrapper's own on-chain type — `type_parameter` is only needed if auto-derivation fails.
|
|
1164
|
+
>
|
|
1165
|
+
> **Optional — unwrap a specific wrapper only**: pass `"object": "<coinwrapper_id_or_name>"` instead of omitting it.
|
|
1166
|
+
|
|
1167
|
+
### Verify Funds Received
|
|
1168
|
+
|
|
1169
|
+
```json
|
|
1170
|
+
{
|
|
1171
|
+
"tool": "query_toolkit",
|
|
1172
|
+
"data": {
|
|
1173
|
+
"query_type": "account_balance",
|
|
1174
|
+
"name_or_address": "insurance_treasury_v1",
|
|
1175
|
+
"network": "testnet",
|
|
1176
|
+
"no_cache": true
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
The Treasury (or personal) balance should now include the withdrawn `100000000` MIST (0.1 WOW). For the personal approach, query `"insurance_provider_v1"` instead.
|
|
1111
1182
|
|
|
1112
1183
|
---
|
|
1113
1184
|
|
|
@@ -1171,3 +1242,4 @@ Published Machine nodes are immutable (`MoveAbort code: 3`). Create a new Machin
|
|
|
1171
1242
|
- [ ] Step 10.2: Advance progress Initial -> Start
|
|
1172
1243
|
- [ ] Step 10.3: Advance progress Start -> Complete with submission (wait 10s after Step 10.2)
|
|
1173
1244
|
- [ ] Step 11: Withdraw funds via Allocation (alloc_by_guard with Treasury or personal withdraw guard)
|
|
1245
|
+
- [ ] Step 12: Receive funds (Treasury: `receive: "recently"` / Personal: `payment {receive: true}`) and verify balance
|
|
@@ -426,6 +426,8 @@ Create a Contact object to enable encrypted communication between customers and
|
|
|
426
426
|
}
|
|
427
427
|
```
|
|
428
428
|
|
|
429
|
+
> **Note**: Enabling messenger now registers the account on the messenger server **immediately and synchronously** — each account registers itself (its own identity, its own keys). The result includes `registered: true` on success, or `registered: false` with `registerError` if the server is unreachable (the background refresh retries automatically every 60s). If the operation result shows `registered: false`, retry the enable operation before proceeding — otherwise the counterpart's first message will fail with "Recipient not registered".
|
|
430
|
+
|
|
429
431
|
#### 4.2 Create After-Sales Contact Object
|
|
430
432
|
|
|
431
433
|
**Prompt**: Create a Contact object named "myshop_aftersales_contact_v2" with permission "myshop_permission_v2" for after-sales support.
|
|
@@ -1086,6 +1088,8 @@ After creating the order, the customer sends their shipping address and contact
|
|
|
1086
1088
|
}
|
|
1087
1089
|
```
|
|
1088
1090
|
|
|
1091
|
+
> **Note**: Same as merchant enable (Step 4.1): registration on the messenger server happens synchronously with the enable. Each party must enable messenger **in its own environment with its own account** — one side can never register the other.
|
|
1092
|
+
|
|
1089
1093
|
#### 2.1.2 Customer Sends Shipping Information
|
|
1090
1094
|
|
|
1091
1095
|
**Prompt**: Customer "myshop_customer" sends shipping address and contact information to merchant "myshop_merchant" via encrypted messenger.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wowok/skills",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.4",
|
|
4
4
|
"description": "WoWok AI Skills for Claude and other AI assistants - 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",
|
|
@@ -42,7 +42,7 @@ These four principles govern every arbitration build/handle step. They mirror th
|
|
|
42
42
|
|
|
43
43
|
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.
|
|
44
44
|
2. **User-driven**: Every step is an explicit user decision; the AI provides a `recommend` but never auto-advances.
|
|
45
|
-
3. **Reuse / Customize / Discover (
|
|
45
|
+
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.
|
|
46
46
|
4. **Default-config disclosure**: Disclose a new object's default config + important info + caveats BEFORE the user decides. No silent defaults.
|
|
47
47
|
|
|
48
48
|
---
|
package/wowok-onboard/SKILL.md
CHANGED
|
@@ -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 (
|
|
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
|
---
|
|
@@ -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
|
|
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`.
|
package/wowok-order/SKILL.md
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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** (
|
|
36
|
-
| **Customer** (
|
|
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
|
|
package/wowok-output/SKILL.md
CHANGED
|
@@ -14,23 +14,55 @@ always: true
|
|
|
14
14
|
|
|
15
15
|
# Address Display Rules
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Environment split (read first)
|
|
18
18
|
|
|
19
|
-
|
|
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
|
-
|
|
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.
|
|
23
39
|
|
|
24
|
-
|
|
25
|
-
the canonical address pill — local name (if any), system short id, auto-resolved
|
|
26
|
-
object-type icon, and hover actions (copy / message / AI / on-chain query).
|
|
27
|
-
Therefore: **write full `0x`-prefixed addresses in replies**; the client does the
|
|
28
|
-
display formatting. The text rules below apply only to plain-text contexts
|
|
29
|
-
where the client renderer is unavailable (CLI, raw logs).
|
|
40
|
+
## Other AI clients (generic MCP clients — plain markdown, no custom renderer)
|
|
30
41
|
|
|
31
|
-
|
|
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:
|
|
32
45
|
|
|
33
|
-
|
|
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
|
|
34
66
|
|
|
35
67
|
System-wide rule (identical to the client's `formatAddress`):
|
|
36
68
|
1. Remove the `0x` prefix → hex string
|
|
@@ -40,28 +72,25 @@ System-wide rule (identical to the client's `formatAddress`):
|
|
|
40
72
|
5. Empty / missing → `--`
|
|
41
73
|
|
|
42
74
|
**Examples**:
|
|
43
|
-
| Full Address |
|
|
75
|
+
| Full Address | SHORTID | Rule |
|
|
44
76
|
|---|---|---|
|
|
45
77
|
| `0xa1d421902a3e5f2e4da7590e8f243712b3b3479d1a07c48c2de543184fc97a33` | `A1D4-A33` | first 4 + `-` + last 3 |
|
|
46
78
|
| `0x10ef0000000000000000000000000000000000000000000000000000000cda11` | `10EF-A11` | first 4 + `-` + last 3 |
|
|
47
79
|
| `0x2` | `2` | ≤7 chars, as-is |
|
|
48
80
|
|
|
49
|
-
## Resolution
|
|
81
|
+
## Resolution priority
|
|
50
82
|
|
|
51
83
|
**Query Tool**: `query_toolkit` with `query_type: "local_names"`
|
|
52
84
|
|
|
53
85
|
Returns: `{ account?: string, local_mark?: string, address: string }`
|
|
54
86
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- A named object shows ONLY its name — no parentheses, no short id after it.
|
|
63
|
-
- When both an account name and a local_mark exist, prefer the local_mark
|
|
64
|
-
(object names) for objects and the account name for user addresses.
|
|
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.
|
|
65
94
|
|
|
66
95
|
---
|
|
67
96
|
|
|
@@ -107,11 +136,12 @@ Supported query types with `_money_display`:
|
|
|
107
136
|
```
|
|
108
137
|
| # | Time | Sender | Service | Amount | Order |
|
|
109
138
|
|---|------|--------|---------|--------|-------|
|
|
110
|
-
| 1 | {time} | {
|
|
139
|
+
| 1 | {time} | {addr-cell} | {addr-cell} | {amount} | {addr-cell} |
|
|
111
140
|
```
|
|
112
141
|
|
|
113
|
-
**
|
|
114
|
-
|
|
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.
|
|
115
145
|
|
|
116
146
|
## Event Type Fields
|
|
117
147
|
|
|
@@ -134,7 +164,7 @@ When user asks about field meanings:
|
|
|
134
164
|
- **Sender**: Account that initiated the transaction
|
|
135
165
|
- **Service**: Service object being ordered/interacted with
|
|
136
166
|
- **Order Object**: Unique on-chain identifier for this order
|
|
137
|
-
- **Short Address**:
|
|
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 `…`.
|
|
138
168
|
|
|
139
169
|
## Amounts
|
|
140
170
|
- **Raw**: Actual U64 integer stored on-chain
|
|
@@ -154,7 +184,10 @@ When user asks about field meanings:
|
|
|
154
184
|
- [ ] Query `local_names` for resolution
|
|
155
185
|
- [ ] Check for `_money_display` annotations in query results (primary amount source)
|
|
156
186
|
- [ ] If `_money_display` absent, query `token_list` for manual amount formatting
|
|
157
|
-
- [ ]
|
|
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
|
|
158
191
|
- [ ] Apply amount format rules (use `_money_display` first; fallback to conservative)
|
|
159
192
|
- [ ] Render final output
|
|
160
193
|
|
package/wowok-provider/SKILL.md
CHANGED
|
@@ -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 (
|
|
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
|
---
|
package/wowok-supplier/SKILL.md
CHANGED
|
@@ -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 (
|
|
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
|
---
|