@wowok/skills 3.0.1 → 3.0.3
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 +1 -1
- package/wowok-onboard/SKILL.md +115 -186
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wowok/skills",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
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",
|
package/wowok-onboard/SKILL.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wowok-onboard
|
|
3
3
|
description: |
|
|
4
|
-
WoWok First-Touch Onboarding — guides a
|
|
5
|
-
published Service through a
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
WoWok First-Touch Onboarding — guides a NEW user (vague first prompt) to their
|
|
5
|
+
first published Service through a business-first dialogue: a Review opening
|
|
6
|
+
followed by AT MOST 8 mandatory business questions (never technical field
|
|
7
|
+
prompts), then a dependency-aware auto-build with reuse/customize/discover for
|
|
8
|
+
the technical components. Every business decision (industry, network, location,
|
|
9
|
+
payment token, pricing, workflow, fund distribution, arbitration) is framed in
|
|
10
|
+
terms of who-wins-what and why — not which field to fill.
|
|
10
11
|
|
|
11
12
|
Use when a new user says "I want to open a shop", "I want to sell something",
|
|
12
13
|
"how do I start", or has no published Service yet. Produces a complete merchant
|
|
13
14
|
capability stack: Permission + Service (published) + Machine (published) +
|
|
14
|
-
Progress (bound) + Guards + Allocation + Contact
|
|
15
|
-
|
|
15
|
+
Progress (bound) + Guards + Allocation + Contact + Arbitration, verified by a
|
|
16
|
+
user-driven test order.
|
|
16
17
|
|
|
17
18
|
Not for existing merchants tuning operations — hand off to wowok-provider.
|
|
18
19
|
when_to_use:
|
|
@@ -25,7 +26,7 @@ when_to_use:
|
|
|
25
26
|
|
|
26
27
|
# WoWok First-Touch Onboarding
|
|
27
28
|
|
|
28
|
-
Guides a new merchant from zero to first published Service in a **Review opening + 12
|
|
29
|
+
Guides a new merchant from zero to first published Service in a **Review opening + AT MOST 8 mandatory business questions** (not 12 technical rounds). The AI speaks in **business / commercial terms** — it explains what each choice means for the merchant and the buyer (interests, causality, risk), and NEVER asks the user to fill a technical field. The MCP layer owns the technical defaults; this Skill owns the **business dialogue rhythm** and the **dependency-aware build order**.
|
|
29
30
|
|
|
30
31
|
> **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (post-onboard operations), [wowok-machine](../wowok-machine/SKILL.md) (workflow design), [wowok-messenger](../wowok-messenger/SKILL.md) (customer-service Contact), [wowok-arbitrator](../wowok-arbitrator/SKILL.md) (third-party Arbitration)
|
|
31
32
|
|
|
@@ -33,224 +34,152 @@ Guides a new merchant from zero to first published Service in a **Review opening
|
|
|
33
34
|
|
|
34
35
|
## MCP Knowledge Layer
|
|
35
36
|
|
|
36
|
-
The following content
|
|
37
|
+
The following content is pushed down to the MCP layer and applied automatically — this Skill does NOT duplicate it:
|
|
37
38
|
|
|
38
|
-
| Content | Access via (MCP action) | Applied
|
|
39
|
+
| Content | Access via (MCP action) | Applied via |
|
|
39
40
|
|---------|--------------------------|-------------|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
| Industry modes + expert description guidance | `industry_pack_operation` action='list_modes' / 'recommend_industry' (each mode now returns `location_sensitivity`, `trust_selling_points`, `build_notes`) | Q1 (industry) + Q5 (description optimization) |
|
|
42
|
+
| Cross-network build detection + mainnet migration checklist | `query_toolkit` query_type='migration_preflight' | Q2 (testnet vs mainnet) |
|
|
43
|
+
| Testnet faucet / mainnet bridge / airdrop / payment-token guidance | `wowok_buildin_info` action='funding guidance' / 'mainnet bridge tokens' | Q2 + Q4 |
|
|
44
|
+
| Third-party arbitrator discovery | `onchain_events` type='ArbitrationEvent' (dedupe by `object`) | Q8 (arbitration) |
|
|
45
|
+
| Safety rules (immutability, confirmation, object reuse) | `schema_query` action='get_safety_rules' | pre-publish + `goal_operation` action='aggregate_risks' |
|
|
46
|
+
| Guard / Machine / Arbitration / Treasury design rules | `schema_query` action='get_guard_design_patterns' | build + `aggregate_risks` |
|
|
47
|
+
| Common mistakes (field/unit/workflow pitfalls) | `wowok_buildin_info` action='common mistakes' | tool calls (proactive warnings) |
|
|
48
|
+
| Deployment checklist (publish readiness) | `goal_operation` action='aggregate_risks' | deployment-scanner D-01..D-20 |
|
|
49
|
+
| Multi-round memory (decisions / feedback / problems) | `goal_operation` (Goal) + TaskProcess streams | every confirmation / user objection |
|
|
50
|
+
|
|
51
|
+
This Skill keeps the **business dialogue flow**, the **≤8-question gate**, and the **dependency-aware build order**. The user's intent is recorded as a Goal (`goal_operation` action='create'); actual on-chain objects are created via `onchain_operations` in dependency order.
|
|
47
52
|
|
|
48
53
|
---
|
|
49
54
|
|
|
50
|
-
## Core Interaction Principles
|
|
51
|
-
|
|
52
|
-
These four principles govern EVERY round. They are non-negotiable and replace the old "linear script" model.
|
|
55
|
+
## Core Interaction Principles (non-negotiable)
|
|
53
56
|
|
|
54
|
-
1. **
|
|
55
|
-
2. **
|
|
56
|
-
3. **
|
|
57
|
-
4. **
|
|
57
|
+
1. **Business-first language (最重要的原则)**: Explain every choice as "what it means for you and for your customer" — role interests, incentives, cause-and-effect, risk. NEVER phrase a question as "set field X / pass parameter Y". Translate technical defaults into business consequences and surface them as recommendations the user can accept or override.
|
|
58
|
+
2. **Review-first**: Before the first question, output a review stating (a) understanding of the business, (b) the dependency-chain overview (abridged, business-framed), (c) the interaction contract, (d) the free-testnet / no-money-at-risk reassurance.
|
|
59
|
+
3. **User-driven + ≤8 mandatory questions**: There are AT MOST 8 business questions. Everything else is an AUTO technical step with a `recommend` default — the AI discloses the default and lets the user confirm or object, but never forces a new question beyond the 8.
|
|
60
|
+
4. **Reuse / Customize / Discover**: For every technical component (Permission, Machine, Guard, Contact, Treasury, Arbitration, Reward, Repository), surface three avenues — reuse an existing object, customize a new one, or discover from the system.
|
|
61
|
+
5. **Confirm + remember**: Every business decision (workflow, fund distribution, description, arbitration) is CONFIRMED by the user before acting. User objections/questions are recorded in the process memory (`decisions` / `feedback` streams) — the onboarding is multi-round, not linear.
|
|
62
|
+
6. **Default-config disclosure**: Before creating anything, disclose the default configuration and its business meaning; no silent defaults.
|
|
58
63
|
|
|
59
64
|
---
|
|
60
65
|
|
|
61
66
|
## Dependency Chain (Authoritative ODG)
|
|
62
67
|
|
|
63
|
-
The build order
|
|
68
|
+
The technical build order (hidden from the user as a field list; surfaced as business consequences):
|
|
64
69
|
|
|
65
70
|
```
|
|
66
|
-
Account (
|
|
67
|
-
└─ Permission (
|
|
68
|
-
├─ Service DRAFT (
|
|
69
|
-
├─ Machine nodes/forwards (business workflow)
|
|
70
|
-
│ └─
|
|
71
|
+
Account + network (testnet free first)
|
|
72
|
+
└─ Permission (who is allowed to operate — reuse strongly recommended)
|
|
73
|
+
├─ Service DRAFT (brand identity — editable until publish)
|
|
74
|
+
├─ Machine nodes/forwards (business workflow) + Guards (what must be proven at each step)
|
|
75
|
+
│ └─ PUBLISH Machine (immutable)
|
|
71
76
|
└─ Service Phase 1: bind machine + buy_guard + sales + order_allocators
|
|
72
|
-
├─ Sales (WIP URL
|
|
73
|
-
├─
|
|
74
|
-
└─
|
|
77
|
+
├─ Sales (products + WIP URL/hash) · order_allocators (who gets paid, on what condition)
|
|
78
|
+
├─ Contact (customer-service inbox) · Arbitration (independent dispute judge)
|
|
79
|
+
└─ audit → PUBLISH Service (L1-locked) → TEST ORDER
|
|
75
80
|
```
|
|
76
81
|
|
|
77
|
-
**Irreversibility
|
|
78
|
-
- `
|
|
79
|
-
- `compensation_fund > 0`
|
|
80
|
-
-
|
|
82
|
+
**Irreversibility (translated to the user as "decide now, can't change later"):**
|
|
83
|
+
- `machine`, `order_allocators`, `arbitrations` are **L1-locked after publish** — set them before publishing.
|
|
84
|
+
- `compensation_fund > 0` requires a bound Arbitration; the Arbitration must be independent of the Service's own control (otherwise the merchant is both player and referee).
|
|
85
|
+
- Machine nodes/forwards and Guard logic are immutable after the Machine is published.
|
|
81
86
|
|
|
82
87
|
---
|
|
83
88
|
|
|
84
|
-
## Review Opening Protocol (before
|
|
89
|
+
## Review Opening Protocol (before Q1)
|
|
85
90
|
|
|
86
|
-
When a new user expresses
|
|
91
|
+
When a new user expresses a vague intent, output this review FIRST (in business language), then ask the first question:
|
|
87
92
|
|
|
88
|
-
1. **Understanding
|
|
89
|
-
2. **
|
|
90
|
-
3. **Interaction contract** — state
|
|
91
|
-
|
|
92
|
-
- The user may pause at any round to ask questions or revisit an earlier decision.
|
|
93
|
-
- Every component offers **reuse / customize / discover**.
|
|
94
|
-
- Any default configuration is disclosed BEFORE the user decides.
|
|
95
|
-
4. **First question** — confirm the understanding is correct, then proceed to R1.
|
|
93
|
+
1. **Understanding** — restate what the user sells, to whom, and the rough business model.
|
|
94
|
+
2. **Journey overview** — show (abridged, non-technical) what will be built and where the user can intervene.
|
|
95
|
+
3. **Interaction contract** — state: at most 8 business questions; AI gives a `recommend` and waits; the user may pause/object/revisit at any time; every component offers reuse/customize/discover.
|
|
96
|
+
4. **Reassurance (first-use anxiety)** — testnet is completely free (faucet, no money at risk); mainnet needs gas only; you can practice before going live.
|
|
96
97
|
|
|
97
|
-
> ⚠️
|
|
98
|
+
> ⚠️ No user-choice interaction happens before this review is complete.
|
|
98
99
|
|
|
99
100
|
---
|
|
100
101
|
|
|
101
|
-
##
|
|
102
|
+
## The 8 Mandatory Business Questions
|
|
103
|
+
|
|
104
|
+
Ask these in order; stop at 8. Frame each in business terms. Every question maps to MCP lookups that return business-grade defaults (never raw technical tables to the user).
|
|
105
|
+
|
|
106
|
+
### Q1 — What do you sell, and to whom? (industry alignment)
|
|
107
|
+
|
|
108
|
+
- **Business meaning**: Your business type determines the trust mechanism (how a buyer feels safe paying you), the workflow (how an order progresses), and the money split. It is the single most consequential choice.
|
|
109
|
+
- **MCP**: `industry_pack_operation` action='recommend_industry' (business description → top-3 modes) or action='list_modes'. Each mode returns `location_sensitivity`, `trust_selling_points`, and `build_notes` — surface these as "here is what buyers in your industry worry about, and what a trustworthy shop emphasizes".
|
|
110
|
+
- **Output to user**: the recommended industry + "buyers in this industry mainly worry about: …", in plain language.
|
|
111
|
+
|
|
112
|
+
### Q2 — Practice on testnet first, or go straight to mainnet?
|
|
113
|
+
|
|
114
|
+
- **Business meaning**: Testnet is a free sandbox (faucet, zero money at risk) for you to try everything; mainnet is real money and needs gas. Strongly recommend testnet first.
|
|
115
|
+
- **Existing-build detection (migration)**: call `query_toolkit` query_type='migration_preflight' (account + source=testnet + target=mainnet). If the account already built on testnet, switch to the **mainnet customization guide** — re-confirm payment token / location / arbitration (the checklist is returned by the same query), rather than re-asking everything.
|
|
116
|
+
- **Reassurance**: testnet is free; mainnet gas can be obtained via bridge/airdrop (`wowok_buildin_info` action='funding guidance').
|
|
117
|
+
|
|
118
|
+
### Q3 — Where do you serve? (service area / location)
|
|
119
|
+
|
|
120
|
+
- **Business meaning**: For non-shipping services (in-person, local, digital-at-a-location) the service area is the purchase gate — a buyer must be able to tell "can this merchant serve me?". For shipping services it is the delivery region. This is important; do not skip.
|
|
121
|
+
- **MCP**: the chosen mode's `location_sensitivity` — `strict`/`near` = must set a correct service area (non-mailing); `logistics` = delivery region (mailing).
|
|
122
|
+
|
|
123
|
+
### Q4 — Which currency do you accept? (payment token)
|
|
124
|
+
|
|
125
|
+
- **Business meaning**: On testnet everything settles in WOW (free). On mainnet you may accept stablecoins (USDT/USDC) to reduce price-volatility disputes, or ETH/BTC/WOW. This is the "should I change the payment token when going live" decision.
|
|
126
|
+
- **MCP**: `wowok_buildin_info` action='funding guidance' (testnet=WOW) + action='mainnet bridge tokens' (USDT/USDC/ETH/BTC/WOW type tags).
|
|
102
127
|
|
|
103
|
-
|
|
128
|
+
### Q5 — What are your products, prices, and descriptions? (sales + WIP)
|
|
129
|
+
|
|
130
|
+
- **Business meaning**: What the buyer pays for, how much, and what the deliverable actually is. The description is your storefront copy — the AI should propose **industry-expert optimizations** (from `trust_selling_points` + `build_notes` + `key_risk`) and get the user's confirmation.
|
|
131
|
+
- **WIP**: if a product needs an immutable deliverable description (a "what you will get" file), it MUST be deployed to a public URL — on-chain stores only URL + hash. Recommend deploying it; on testnet it can be skipped (`wip: ""`), on mainnet strongly recommend.
|
|
132
|
+
- **Confirm**: show the optimized description + prices and ask the user to confirm or adjust.
|
|
133
|
+
|
|
134
|
+
### Q6 — How does an order progress to completion? (workflow)
|
|
135
|
+
|
|
136
|
+
- **Business meaning**: From paid → delivered → confirmed, who is responsible at each step and what must be proven (e.g. "buyer confirms receipt, not the seller"). This is the core of a trustworthy shop.
|
|
137
|
+
- **MCP**: the mode's `machine_shape` (business states) — present as a plain-language flow, disclose the default, let the user accept or propose changes.
|
|
138
|
+
- **Confirm + remember**: the AI MUST present a plain-language flow description and get explicit confirmation (or the user's objection/question), recorded in memory. Multi-round is expected.
|
|
139
|
+
|
|
140
|
+
### Q7 — How and when does money get released? (fund distribution)
|
|
141
|
+
|
|
142
|
+
- **Business meaning**: Who receives the money and on what condition (e.g. funds released only after delivery confirmation). This is the revenue model and is frozen once live — decide carefully.
|
|
143
|
+
- **MCP**: the mode's allocator default (e.g. merchant 97% + processor 3%; full refund on cancellation). Present the split in business terms, disclose the default, let the user confirm or change.
|
|
144
|
+
- **Confirm + remember**: explicit confirmation required (including "who gets paid when an order is cancelled/refunded"), recorded in memory.
|
|
145
|
+
|
|
146
|
+
### Q8 — Who judges a dispute? (arbitration)
|
|
147
|
+
|
|
148
|
+
- **Business meaning**: When you and a customer disagree, an INDEPENDENT third party must judge — it cannot be the seller, or buyers won't trust you. On testnet you may skip it; on mainnet it is strongly recommended.
|
|
149
|
+
- **MCP**: discover independent arbiters via `onchain_events` type='ArbitrationEvent' (dedupe by `object`, shortlist by location/fee/description). Never create your own Arbitration for your own Service (conflict of interest).
|
|
150
|
+
- **Confirm**: recommend a third-party arbiter (or skip on testnet), get confirmation.
|
|
104
151
|
|
|
105
152
|
---
|
|
106
153
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
- **
|
|
115
|
-
- **
|
|
116
|
-
- **
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- **Core elements to confirm**:
|
|
122
|
-
- **Reuse an existing Permission** (strongly recommended) OR **create new**.
|
|
123
|
-
- If new: `name`, `type_parameter`, and indexes (e.g. `1000 = provider`).
|
|
124
|
-
- **Default config**: a new Permission with index `1000 = provider`.
|
|
125
|
-
- **Reuse / Customize / Discover**: Reuse is strongly recommended (benefit: centralized control, no orphan Permission). Discover: check `local_mark_list` / `account_list` for existing Permissions.
|
|
126
|
-
- **Dependencies**: Account (R1).
|
|
127
|
-
|
|
128
|
-
### R3 — Service DRAFT (skeleton first)
|
|
129
|
-
|
|
130
|
-
- **Semantic meaning**: The Service is your brand's on-chain identity. Creating a **draft first** (unpublished) lets later Guards reference it by **LocalMark NAME**, breaking the Guard↔Service circular dependency (Guard needs Service name; Service needs Guard address). The draft is fully editable until publish.
|
|
131
|
-
- **Core elements to confirm**:
|
|
132
|
-
- Service `name` and `type_parameter` (what kind of service).
|
|
133
|
-
- **Default config**: unpublished draft; only name + type_parameter set now; machine/order_allocators/sales filled in R5–R7.
|
|
134
|
-
- **Reuse / Customize / Discover**: New Service (you have none). Name is the brand identity — confirm it carefully.
|
|
135
|
-
- **Dependencies**: Permission (R2).
|
|
136
|
-
|
|
137
|
-
### R4 — Business Flow + Permissions + Acceptance (Machine + Guards, INTEGRATED)
|
|
138
|
-
|
|
139
|
-
- **Semantic meaning**: The **core round** — design the order's state transitions (Machine nodes/forwards), WHO can advance each transition (forward permissions), and WHAT must be verified at each step (Guard acceptance). These three are designed together because a forward's Guard depends on the Machine's node names, and the Allocator's Guard depends on both Machine and Service.
|
|
140
|
-
- **Internal sub-order** (disclosed to the user):
|
|
141
|
-
1. Define Machine **nodes + forwards** (business states + transitions) — permissions resolved from R2's Permission indexes.
|
|
142
|
-
2. Define **Guards** (acceptance logic) — reference machine node names + service name via LocalMark NAME.
|
|
143
|
-
3. **Bind** Guards to forwards (still unpublished, reversible).
|
|
144
|
-
- **Core elements to confirm** (all three, explicitly):
|
|
145
|
-
- Business flow: node list + forward paths.
|
|
146
|
-
- Permissions: per-forward `namedOperator` (`""`=OrderHolder / role name) or `permissionIndex`.
|
|
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 `industry_pack_operation` action='list_modes'). Disclose these defaults FIRST, then let the user accept or customize.
|
|
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
|
-
- **Dependencies**: Service draft (R3) + Permission (R2).
|
|
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.
|
|
152
|
-
|
|
153
|
-
### R5 — Publish Machine
|
|
154
|
-
|
|
155
|
-
- **Semantic meaning**: Freeze the business workflow on-chain. After this, nodes/forwards are **immutable**.
|
|
156
|
-
- **Core elements to confirm**: confirm the Machine topology is final (export `machineNode2file` for backup/verification first).
|
|
157
|
-
- **Default config**: n/a — confirmation gate.
|
|
158
|
-
- **Reuse / Customize / Discover**: n/a (publication, not creation).
|
|
159
|
-
- **Dependencies**: R4.
|
|
160
|
-
|
|
161
|
-
### R6 — Sales (products with WIP)
|
|
162
|
-
|
|
163
|
-
- **Semantic meaning**: Define the sellable products — name, price, stock, and the **WIP file** (work-in-progress / product description). The WIP is a **public URL + hash** (`Sale.wip` = URL, `Sale.wip_hash` = hash), which customers fetch to understand the deliverable.
|
|
164
|
-
- **Core elements to confirm** (per product):
|
|
165
|
-
- `name`, `price` (u64, min unit), `stock`.
|
|
166
|
-
- `wip` (URL) + `wip_hash` — **the WIP MUST be deployed to a public endpoint** (on-chain only stores the URL + hash, not the file).
|
|
167
|
-
- **WIP public deployment (strongly recommended sub-task)**: user provides web/doc material → AI generates the WIP file + deploys to a public URL (recommend GitHub Pages / free static hosting).
|
|
168
|
-
- **⚠️ NO "set-without-deploy" option**: `sale.wip` is stored ON-CHAIN and every customer fetches it when ordering. The ONLY two valid choices are: (1) deploy the .wip file to a publicly reachable URL and set `wip` to that URL, or (2) leave `wip: ""` (TESTING ONLY — WIP verification skipped). Do NOT offer a placeholder/local path/localhost/LAN URL as `wip` — it passes merchant-side verification but aborts customer `order_new` 100% (INTERNAL TEST USE ONLY: local-network URLs require `env.network: "localnet"`).
|
|
169
|
-
- **Default config**: n/a — products are user business decisions (never fabricated).
|
|
170
|
-
- **Reuse / Customize / Discover**: Reuse an existing `sales` item (rare). Customize: define your own products. Discover: n/a.
|
|
171
|
-
- **Dependencies**: Service draft (R3).
|
|
172
|
-
|
|
173
|
-
### R7 — order_allocators (fund distribution + Treasury)
|
|
174
|
-
|
|
175
|
-
- **Semantic meaning**: Define how order funds are distributed — your revenue model. This is written to `service.order_allocators` and is **L1-locked after publish**, so it must be correct now.
|
|
176
|
-
- **Core elements to confirm**:
|
|
177
|
-
- Allocation mode per terminal outcome: **amount** (fixed) / **rate** (basis points, sum = 10000) / **surplus** (remainder, at most one).
|
|
178
|
-
- Recipient (`who`): `{Entity: name_or_address}` / `{GuardIdentifier: N}` / `{Signer: "signer"}`.
|
|
179
|
-
- **Merchant-type guidance (disclosed to the user)**:
|
|
180
|
-
- **Personal merchant** → route funds to the **Permission owner** (`Entity` referencing the owner's account) — simple, single-owner revenue.
|
|
181
|
-
- **Organization / multi-party** → route funds to a **Treasury** object (referenced as an `Entity` recipient; `Treasury.receive` index 253 intakes CoinWrapper). The AI MUST offer to **new or select a Treasury** via a sub-task, and surface a list of existing Treasury objects (query `onchain_objects` type=treasury) for convenience.
|
|
182
|
-
- **Default config**: industry mode's `allocator` strategy (e.g. `retail_d2c` = Merchant 97% + Processor 3% rate split). Disclose, then let the user confirm or change.
|
|
183
|
-
- **Reuse / Customize / Discover**: Reuse an existing Allocator pattern / Treasury. Customize the split. Discover other projects' allocator/Treasury setups.
|
|
184
|
-
- **Dependencies**: Machine published (R5); Guards (R4); Service draft (R3).
|
|
185
|
-
- **⚠️ L1-LOCKED**: `order_allocators` MUST be set here — after `service.publish` it is permanently frozen.
|
|
186
|
-
|
|
187
|
-
### R8 — Contact (customer-service channel)
|
|
188
|
-
|
|
189
|
-
- **Semantic meaning**: Contact is the bridge between the Service and Messenger: `Service.um → Contact → ims[]` (messenger endpoint addresses). Customers query the Contact's `ims[]` to find where to send messages. Without it, your service has no customer-service inbox.
|
|
190
|
-
- **Core elements to confirm**:
|
|
191
|
-
- **Reuse an existing Contact** OR **create new**.
|
|
192
|
-
- If new: configure the **local account as messenger** (`account_operation` → messenger, `enabled: true`) and set **anti-spam** policy.
|
|
193
|
-
- **Default config** (disclosed before creation):
|
|
194
|
-
- Contact is **mutable**; `im_add`/`im_remove` require permission index `453` (CONTACT_IM).
|
|
195
|
-
- Messenger must be `enabled: true` or the account has no endpoint.
|
|
196
|
-
- **Anti-spam four-layer model** (Blacklist → Friends → Guard → Stranger one-message limit): **Open** (public storefront) / **Guarded** (verified strangers) / **Closed** (friends-only) / **Defensive** (open + blacklist).
|
|
197
|
-
- **Reuse / Customize / Discover**: Reuse an existing Contact (one inbox for multiple services). Customize: new Contact + own messenger/anti-spam. Discover: `local_mark_list` for existing Contacts.
|
|
198
|
-
- **Dependencies**: Permission (R2) + Account (R1). Must happen BEFORE R11 (Service publish) if `customer_required` is set.
|
|
199
|
-
|
|
200
|
-
### R9 — Arbitration (third-party dispute resolution)
|
|
201
|
-
|
|
202
|
-
- **Semantic meaning**: Route disputes to an independent third party so neither you nor the customer controls the verdict — this builds trust. **Optional but strongly recommended.**
|
|
203
|
-
- **Core elements to confirm**:
|
|
204
|
-
- **Skip** arbitration, OR **REUSE an existing third-party Arbitration** (recommended).
|
|
205
|
-
- ⚠️ **Do NOT create your own Arbitration for your own Service** — `service.arbitration_add` asserts `arbitration.permission != service.permission` (`E_ARBITRATION_PERMISSION_CONFLICT`, 33): if the Arbitration shares your Service's Permission, you (the owner) would control dispute resolution, breaking fairness.
|
|
206
|
-
- If adding arbitration: also configure the **compensation fund** (see below).
|
|
207
|
-
- **Compensation fund**: internal `Balance<T>` on the Service (NOT a Treasury object), consumed by `arbitration::compensation_claim`. If `compensation_fund > 0`, `arbitrations` MUST be non-empty (else publish aborts `E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND` 25). Deposit via `compensation_fund_add`; withdraw via `compensation_fund_withdraw` requires `bPaused=true` + lock elapsed. Amount = user decision (cover realistic payouts).
|
|
208
|
-
- **Reuse / Customize / Discover**: Reuse an existing Arbitration (safety rules mark arbitration as `always_reuse` — query `schema_query` action='get_safety_rules'; customers choose from established arbiters). Discover: query `onchain_objects` type=arbitration for existing Arb services.
|
|
209
|
-
- **Dependencies**: Service draft (R3) + Permission (R2). Must happen BEFORE R11 (Service publish) if compensation_fund is configured.
|
|
210
|
-
|
|
211
|
-
### R10 — Optional Components + Pre-Publish Audit
|
|
212
|
-
|
|
213
|
-
- **Semantic meaning**: Add optional trust/attraction components (Reward for loyalty, supply-chain promises, Repository), then run a **final risk audit** before publishing.
|
|
214
|
-
- **Core elements to confirm** (each optional, each with default disclosure + reuse/customize/discover):
|
|
215
|
-
- Reward (discounts/loyalty).
|
|
216
|
-
- Supply-chain promises / Repository.
|
|
217
|
-
- Audit: `goal_operation` action='aggregate_risks' — fix ALL CRITICAL findings.
|
|
218
|
-
- **Default config**: none required — these are opt-in. The audit itself is mandatory.
|
|
219
|
-
- **Reuse / Customize / Discover**: each optional component can be created or discovered.
|
|
220
|
-
- **Dependencies**: R1–R9.
|
|
221
|
-
|
|
222
|
-
### R11 — Publish Service
|
|
223
|
-
|
|
224
|
-
- **Semantic meaning**: Make the service live. Irreversible — `machine`, `order_allocators`, and `arbitrations` become permanently frozen. Confirmation gate (Phase 2: only flips `publish: true`; all L1 fields were set in R5–R9). After publish the Service is immediately orderable — `publish` auto-sets `bPaused=false` (per MCP `ServicePublishedEvent` semantic; do NOT call a separate `pause:false`/unpause operation).
|
|
225
|
-
- **Dependencies**: R10 audit passed.
|
|
226
|
-
|
|
227
|
-
### R12 — Test Order (user-driven, next-node disclosure)
|
|
228
|
-
|
|
229
|
-
- **Semantic meaning**: Run a real order end-to-end to verify the flow. Unlike other rounds, this one advances through the Machine step by step, with the AI disclosing every reachable next node before each move.
|
|
230
|
-
- **Core elements to confirm**:
|
|
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
|
-
- **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 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
|
-
- **Default config**: test account = service-creation account.
|
|
236
|
-
- **Reuse / Customize / Discover**: n/a (verification).
|
|
237
|
-
- **Dependencies**: Service published (R11) — `order_new` requires `bPublished=true`.
|
|
238
|
-
- **Sequence**: `order_new` → read `workflow_guidance` (current node + reachable nodes) → user picks a next node → advance (`order.progress` for `namedOperator=""` / `progress.operate` otherwise) → relay `workflow_receipt` → repeat until terminal → `allocation.alloc_by_guard` → verify fund distribution.
|
|
154
|
+
## After the 8 Questions — Auto-Build (reuse / customize / discover)
|
|
155
|
+
|
|
156
|
+
With the 8 business decisions captured, build the objects in dependency order. These are NOT new forced questions — the AI discloses each default and lets the user confirm or object:
|
|
157
|
+
|
|
158
|
+
- **Permission** — reuse an existing one (strongly recommended; single control surface), else create.
|
|
159
|
+
- **Service draft** — created from Q1/Q3/Q5 answers; brand name confirmed once.
|
|
160
|
+
- **Machine + Guards** — built from the Q6 workflow; nodes/forwards/guards disclosed, R-M1-11 compliant (business states only, no `refunded`/`disputed` terminals).
|
|
161
|
+
- **Sales** — from Q5 (products + WIP URL/hash).
|
|
162
|
+
- **order_allocators** — from Q7 (fund split), L1-locked.
|
|
163
|
+
- **Contact** — reuse/create the customer-service inbox (mutable; anti-spam policy disclosed).
|
|
164
|
+
- **Arbitration** — from Q8 (independent third party; compensation fund if configured).
|
|
165
|
+
- **Optional**: Reward (loyalty/discounts), supply-chain promises, Repository — offered as opt-in, never forced.
|
|
166
|
+
|
|
167
|
+
Run `goal_operation` action='aggregate_risks' before publish; fix ALL CRITICAL findings, then publish and run a user-driven test order (per-node disclosure: AI recommends the next step, the user decides).
|
|
239
168
|
|
|
240
169
|
---
|
|
241
170
|
|
|
242
171
|
## Industry Selection Guide
|
|
243
172
|
|
|
244
|
-
|
|
173
|
+
Call `industry_pack_operation` action='list_modes' (8 builtin modes: `freelance` / `rental` / `education` / `travel` / `subscription` / `retail` / `retail_d2c` / `general`). If unsure, call action='recommend_industry' with the business description. Each mode now returns `location_sensitivity`, `trust_selling_points`, and `build_notes` — use these for Q3 (location) and Q5 (description optimization). Mid-onboarding iteration: action='derive_user_mode' / 'evolve_user_mode'.
|
|
245
174
|
|
|
246
175
|
---
|
|
247
176
|
|
|
248
177
|
## Deployment Checklist
|
|
249
178
|
|
|
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 (
|
|
179
|
+
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 (D-01..D-20). Fix ALL CRITICAL findings, then verify remaining hard gates via `query_toolkit` (onchain_objects). The authoritative checklist is served by MCP — do not re-derive it here.
|
|
251
180
|
|
|
252
181
|
---
|
|
253
182
|
|
|
254
183
|
## Common Errors
|
|
255
184
|
|
|
256
|
-
Known field-name / unit / workflow pitfalls are served by `wowok_buildin_info` action='common mistakes' (filter by `operation` or `category`). Error-code guidance (`E_ARBITRATION_PERMISSION_CONFLICT` 33, `E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND` 25, R-M1-11 refund routing)
|
|
185
|
+
Known field-name / unit / workflow pitfalls are served by `wowok_buildin_info` action='common mistakes' (filter by `operation` or `category`). Error-code guidance (`E_ARBITRATION_PERMISSION_CONFLICT` 33, `E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND` 25, R-M1-11 refund routing) appears above plus MCP `schema_query` action='get_safety_rules' / 'get_guard_design_patterns'. Consult those instead of a duplicated table.
|