@wowok/skills 3.1.2 → 3.2.1
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/README.md +18 -7
- package/dist/installer.d.ts +4 -3
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +61 -13
- package/dist/installer.js.map +1 -1
- package/dist/targets.d.ts +34 -9
- package/dist/targets.d.ts.map +1 -1
- package/dist/targets.js +135 -21
- package/dist/targets.js.map +1 -1
- package/package.json +2 -2
- package/wowok-arbitrator/SKILL.md +60 -189
- package/wowok-auditor/SKILL.md +3 -3
- package/wowok-collaborator/SKILL.md +33 -73
- package/wowok-governance/SKILL.md +32 -71
- package/wowok-machine/SKILL.md +64 -206
- package/wowok-market/SKILL.md +25 -62
- package/wowok-messenger/SKILL.md +50 -172
- package/wowok-onboard/SKILL.md +50 -124
- package/wowok-order/SKILL.md +93 -211
- package/wowok-output/SKILL.md +59 -168
- package/wowok-planner/SKILL.md +26 -74
- package/wowok-provider/SKILL.md +66 -168
- package/wowok-supplier/SKILL.md +51 -76
package/wowok-auditor/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wowok-auditor
|
|
3
3
|
description: "WoWok pre-publish auditor — the static-analysis Skill that verifies Guard completeness, Machine soundness, fund-flow safety, permission consistency, and publish readiness BEFORE any irreversible publish operation (Service publish, Machine publish, Allocator binding freeze). This Skill is the orchestration guide for the L4 Harness Verify Loop. It does not mutate objects. It triggers the MCP risk engine, gathers evidence, and presents a pass/warn/fail report plus a publish decision. Use when: User is about to publish a Service, Machine, or lock an Allocator set; User asks to \"audit\", \"verify\", \"review\", \"check before publish\"; L4 Harness Verify Loop is invoked before an irreversible operation; User mentions \"fund flow\", \"refund path\", \"allocation sum\", \"guard completeness\"; User mentions \"machine cycle\", \"unreachable state\", \"permission index conflict\"; User wants a pre-publish go/no-go decision; A publish operation failed and root-cause analysis is needed."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "2.1.
|
|
5
|
+
version: "2.1.1"
|
|
6
6
|
role: shared
|
|
7
7
|
related: "wowok-planner, wowok-provider, wowok-machine"
|
|
8
8
|
---
|
|
@@ -39,7 +39,7 @@ Run an audit immediately before any irreversible operation:
|
|
|
39
39
|
|
|
40
40
|
1. **Service publish** — machine bound + published, allocators locked, arbitration/compensation invariants, buy_guard, contact, permission indices.
|
|
41
41
|
2. **Machine publish** — nodes/pairs/forwards become immutable afterward.
|
|
42
|
-
3. **
|
|
42
|
+
3. **Service fund-template lock** — `order_allocators` (the order distribution template and its trigger guards) is a Service create/update FIELD that becomes permanently immutable at `publish=true`; there is no separate bind op.
|
|
43
43
|
4. **Post-failure root-cause analysis** — a publish/assert failed (e.g. `E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND`, `E_ARBITRATION_PERMISSION_CONFLICT`); re-run to identify every remaining blocker, not just the one that aborted.
|
|
44
44
|
|
|
45
45
|
Scope adapts to blast radius: a single Service with no Machine skips machine checks automatically; a stack with cross-Machine supply chains runs the full chain. The engine derives applicable checks from the objects — do not hand-pick rules.
|
|
@@ -83,7 +83,7 @@ Presentation rules:
|
|
|
83
83
|
|
|
84
84
|
1. **FAIL blocks, WARN asks, PASS is silent.** CRITICAL/blocked findings are hard stops fixed by the owning Skill; MEDIUM/LOW are surfaced as advisories.
|
|
85
85
|
2. **Blast-radius first**: order findings by irreversibility — a post-publish Guard logic bug is permanent; an untested Guard or missing backup is recoverable.
|
|
86
|
-
3.
|
|
86
|
+
3. Group by the five coverage aspects — **Guard completeness, Machine soundness, fund-flow safety, permission consistency, publish readiness** (map each finding via its returned `object_type` and `risk_rule_id`), and state explicitly which objects were in scope. Quote the finding text the engine returns; never maintain a local rule list.
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wowok-collaborator
|
|
3
3
|
description: "WoWok Collaborator — the canonical skill for process collaborators who execute workflow forwards on behalf of a merchant: internal staff (permission entities) and external operators (named operators). Covers permission-index and named-operator routing, guard-gated evidence submission, and reputation protection. The collaborator carries PROCESS responsibility (no direct settlement stake) — the goal is to keep the workflow flowing and avoid stall blame. For the merchant who owns the Service, see wowok-provider. For the supplier who presents to Demands, see wowok-supplier. Use when: User is an operator/employee executing workflow steps (permission index); User is an external named operator advancing a Machine forward; User wants to submit guard evidence (proof/repository) for a forward; User mentions \"collaborator\", \"operator\", \"permission index\", \"named operator\", \"execute forward\"."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "2.
|
|
5
|
+
version: "2.1.0"
|
|
6
6
|
role: collaborator
|
|
7
7
|
related: "wowok-provider, wowok-machine, wowok-messenger"
|
|
8
8
|
---
|
|
@@ -11,88 +11,48 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
> **Role**: Collaborator (internal permission entity OR external named operator)
|
|
13
13
|
> **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (merchant), [wowok-machine](../wowok-machine/SKILL.md) (workflow), [wowok-messenger](../wowok-messenger/SKILL.md) (evidence exchange)
|
|
14
|
+
> Mechanics — routing, permission indexes, guard field lists, thresholds — are emitted by the MCP per query. Read them from the output; do not hand-maintain them here. Guard patterns: `schema_query` (`get_guard_design_patterns`, `get_safety_rules`).
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## MCP Knowledge Layer
|
|
18
|
-
|
|
19
|
-
The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
|
|
20
|
-
|
|
21
|
-
| Content | Access via (MCP action) | Applied Via |
|
|
22
|
-
|---------|--------------------------|-------------|
|
|
23
|
-
| Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `query_toolkit` query_type='participation_radar' | role derivation → `collaborator-interest` |
|
|
24
|
-
| Progress routing rule (namedOperator vs permissionIndex) | `schema_query` action='get_safety_rules' | `onchain_operations` progress/order |
|
|
25
|
-
| Guard design + submission patterns | `schema_query` action='get_guard_design_patterns' | guard-gated forwards |
|
|
26
|
-
| Node game (threshold cooperation) | `evaluation_operation` action='node_game' | multi-role forward evaluation |
|
|
16
|
+
## What is pushed down (do not duplicate)
|
|
27
17
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
| Capability | Where it surfaces |
|
|
19
|
+
|---|---|
|
|
20
|
+
| What you can execute now, and how | `query_toolkit` `participation_radar` — `operable[]` with per-forward `execution_path`, `permission_index` / `named_operator`, `guard`, and **`recommended_call`** |
|
|
21
|
+
| Concrete execution route | each operable forward's **`recommended_call`** (`tool` + `path` + `reason`) — the single source of truth; never hand-route from operator names |
|
|
22
|
+
| Interest analysis | radar `interest_analysis` (fund_flow / responsibility / leverage / stakes), derived as `collaborator-interest` |
|
|
23
|
+
| Guard design & safety rules | `schema_query` `get_guard_design_patterns` / `get_safety_rules` |
|
|
24
|
+
| Threshold cooperation (multi-contributor forwards) | `evaluation_operation` action `node_game` |
|
|
31
25
|
|
|
32
26
|
## Role: process responsibility, not settlement
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- **permission entity** (internal staff): granted a `permissionIndex` in the Service's Permission.
|
|
38
|
-
- **named operator** (external): resolved via Progress.namedOperator → LocalMark.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Core Interaction Principles
|
|
43
|
-
|
|
44
|
-
1. **Review-first**: State what you understand + what you can execute + the interaction contract before acting.
|
|
45
|
-
2. **User-driven**: the AI surfaces options; you decide; never auto-advance.
|
|
46
|
-
3. **Stay in scope**: only execute forwards your permission/named-operator grants — out-of-scope action creates semantic responsibility without authority.
|
|
47
|
-
4. **Default-config disclosure**: disclose defaults + caveats before acting.
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## What You Can Execute Now
|
|
52
|
-
|
|
53
|
-
Run `query_toolkit` query_type='participation_radar' with `radar_account` (your account) and `radar_targets: [{ progress: <the order's Progress object>, order: <the Order, optional but recommended> }]` (1–20 targets). It returns:
|
|
28
|
+
- You typically have **no direct settlement stake** (compensation is salary/contract off-chain, unless an Allocation slot explicitly routes to you).
|
|
29
|
+
- Your real stake is **reputation**: stall and dispute metrics are public and read by future counterparties.
|
|
30
|
+
- Sub-kind is **derived on-chain, never asserted**: `permission_entity` (granted a permission index in the Service's Permission) or `named_operator` (Progress.namedOperator → LocalMark). The radar tells you which.
|
|
54
31
|
|
|
55
|
-
|
|
56
|
-
- `waiting_on` — what the workflow waits on from other roles.
|
|
57
|
-
- `collaborator_kind` — internal vs external.
|
|
58
|
-
- `interest_analysis` → `collaborator-interest` (fund_flow / responsibility / leverage / stakes).
|
|
32
|
+
## Working procedure
|
|
59
33
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
34
|
+
1. **Review-first**: state what you understood, what the account can execute, and the interaction contract before acting.
|
|
35
|
+
2. **Read the radar**: `query_toolkit` `participation_radar` with `radar_account` and `radar_targets: [{ progress, order? }]` (1–20 targets). Present `operable` neutrally; if `branch_choice` is present, the user picks the branch — never auto-advance.
|
|
36
|
+
3. **Execute per `recommended_call`**: call exactly the tool/path the forward gives (the reason text carries the failure code you would hit on the wrong path). No `recommended_call` → that forward is not executable by this account; say so instead of trying.
|
|
37
|
+
4. **Stay in scope**: only execute forwards the account's permission/named-operator grants. Out-of-scope action creates semantic responsibility without authority.
|
|
63
38
|
|
|
64
|
-
##
|
|
39
|
+
## Guard-gated forwards
|
|
65
40
|
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
- `
|
|
69
|
-
|
|
70
|
-
Wrong path → "Permission denied" (abort code 5). The MCP safety rules carry the authoritative classification.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Guard-gated Forwards
|
|
75
|
-
|
|
76
|
-
A forward with a guard requires a `b_submission` (retained submission) before execution. Prepare your evidence (Repository/proof) in advance:
|
|
77
|
-
|
|
78
|
-
1. Upload evidence (Repository/proof data).
|
|
79
|
-
2. Execute the forward (two-phase: call → submission prompt → re-call with submission).
|
|
80
|
-
3. Advance the workflow.
|
|
81
|
-
|
|
82
|
-
Uploading evidence BEFORE executing reduces dispute probability and pre-builds the merchant's arbitration defense — your diligence is visible on-chain.
|
|
83
|
-
|
|
84
|
-
---
|
|
41
|
+
- The forward's `guard` field (and `workflow_operation` `list`/`task` → `options[].guard_submissions`) tells you exactly which `b_submission` fields must be supplied (name, value type, object type).
|
|
42
|
+
- Prepare evidence (Repository / Proof) **before** executing; exchange it via Messenger when it comes from another party.
|
|
43
|
+
- Execute once, with the `submission` values attached to the same call. Pre-uploading evidence reduces dispute probability and builds the merchant's arbitration defense — your diligence is visible on-chain.
|
|
85
44
|
|
|
86
|
-
##
|
|
45
|
+
## Principles
|
|
87
46
|
|
|
88
|
-
- **Momentum**: advance when you can;
|
|
89
|
-
- **Scope discipline**: never interfere outside your
|
|
90
|
-
- **Evidence first**:
|
|
91
|
-
- **Neutrality**:
|
|
47
|
+
- **Momentum**: advance when you can; a stall is publicly visible.
|
|
48
|
+
- **Scope discipline**: never interfere outside your granted forwards.
|
|
49
|
+
- **Evidence first**: a guarded forward is only as strong as its submission.
|
|
50
|
+
- **Neutrality**: surface trade-offs and options; the role decides, you do not.
|
|
51
|
+
- **Defaults disclosed**: disclose defaults and caveats before acting.
|
|
92
52
|
|
|
93
|
-
## Quick
|
|
53
|
+
## Quick reference
|
|
94
54
|
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
55
|
+
- No settlement stake — your currency is reputation.
|
|
56
|
+
- Route via `operable[].recommended_call`; do not infer the tool from the operator kind yourself.
|
|
57
|
+
- Guarded forward: read `guard_submissions`, collect the values, submit with the execute call.
|
|
58
|
+
- `node_game` surfaces the cooperation picture when a pair's threshold needs multiple distinct contributors.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wowok-governance
|
|
3
3
|
description: "WoWok Governance — the canonical skill for on-chain permission, data, and financial governance: the account that OWNS the objects keeps them healthy after setup. Covers Permission lifecycle (indexes, role assignment, entity table, admin transfer), Treasury/Allocation fund stewardship (deposit/withdraw, history audit, unclaimed payments), and Personal data boundaries (public identity, profile records). Governance is a continuous loop — inventory, decide, execute, audit — not a one-time setup. For building services, see wowok-provider. For market operations, see wowok-market. Use when: User wants to manage who can operate their objects (permission indexes, entity table); User wants to deposit/withdraw treasury funds or audit fund history; User has unclaimed payments or wants to check claimable balances; User wants to update their public on-chain profile or personal data; User mentions \"permission\", \"treasury\", \"governance\", \"manage assets\", \"audit funds\"."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "1.
|
|
5
|
+
version: "1.1.0"
|
|
6
6
|
role: shared
|
|
7
7
|
related: "wowok-provider, wowok-market, wowok-messenger"
|
|
8
8
|
---
|
|
@@ -11,85 +11,46 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
> **Role**: Object owner/admin — the account that carries administrative responsibility for Permission, Treasury, and Personal objects
|
|
13
13
|
> **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (service build), [wowok-market](../wowok-market/SKILL.md) (market ops), [wowok-messenger](../wowok-messenger/SKILL.md) (contact)
|
|
14
|
+
> Exact op shapes, field lists and enums live in the tool schemas — read `schema_query` `get` with `onchain_operations` (see the `permission` / `treasury` / `personal` `operation_type` branches) before mutating. Safety rules: `get_safety_rules`.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## MCP Knowledge Layer
|
|
18
|
-
|
|
19
|
-
The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
|
|
20
|
-
|
|
21
|
-
| Content | Access via (MCP action) | Applied Via |
|
|
22
|
-
|---------|--------------------------|-------------|
|
|
23
|
-
| Permission safety rules (owner/admin/entity hierarchy) | `schema_query` action='get_safety_rules' | `onchain_operations` permission |
|
|
24
|
-
| Treasury/Permission/Personal object schema | `schema_query` action='get' name='treasury'/'permission'/'personal' | governance operations |
|
|
25
|
-
| Unclaimed-payment detection | `keeper_operation` (payment_unclaimed scan) | monitor loop |
|
|
26
|
-
| Fund-flow event meanings (TreasuryEvent / AllocationEvent / RewardClaimEvent / RewardFundEvent) | event semantic registry | audit & monitor |
|
|
27
|
-
|
|
28
|
-
This Skill keeps the governance **conversation flow** — what to inventory, what to decide, what to execute, and how to audit.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Governance Is a Loop, Not a Setup
|
|
33
|
-
|
|
34
|
-
Inventory → Decide → Execute → Audit. Governance objects are LIVE: a permission change takes effect on the next call, a withdraw is irreversible, a personal profile record is permanently public. Every change deserves an audit pass after execution.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Domain 1: Permission Governance
|
|
16
|
+
## Governance is a loop, not a setup
|
|
39
17
|
|
|
40
|
-
|
|
18
|
+
Inventory → decide → execute → **audit (re-query the post-state every time)**. These objects are live: a grant change applies on the next call, a withdraw is irreversible, a profile record is permanently public.
|
|
41
19
|
|
|
42
|
-
|
|
43
|
-
- **Grants** (`table` field): assign with `add perm by index` (one index → many entities) or `add perm by entity` (one entity → many indexes); `set` variants REPLACE the existing list. `admin {op:'add'|'remove'|'set'}` controls admins; entity-level hygiene uses `del`/`swap`/`replace`/`copy`. A mis-assigned grant takes effect immediately. Exact op shapes: `schema_query` action='get' name='permission'.
|
|
44
|
-
- **Entity table**: review-first — read the current Permission via `query_toolkit` query_type='onchain_objects' before mutating.
|
|
45
|
-
- **Audit**: `query_toolkit` query_type='onchain_table_item_permission_perm' checks what a specific address may do; query_type='address_profile' shows an address's permission memberships across all objects.
|
|
20
|
+
## Domain 1 — Permission governance
|
|
46
21
|
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
22
|
+
- **Inventory before mutating**: read the Permission via `query_toolkit` `onchain_objects`; audit one address with `onchain_table_item_permission_perm`; see every membership an address holds across objects with `address_profile` (batch form `address_profiles`, up to 50).
|
|
23
|
+
- **Index naming is not an "index creation"**: custom permission indexes are the numeric IDs 1000–65535 (built-ins reserved below); a readable name is just a `remark` write (`set` / `remove` / `clear`).
|
|
24
|
+
- **Choose the op family by shape** (`permission_operation`, exact params in schema):
|
|
25
|
+
- one index → many entities: `add|set|remove perm by index`;
|
|
26
|
+
- one entity → many indexes: `add|set|remove perm by entity`;
|
|
27
|
+
- `set` REPLACES the whole list — warn before using; prefer `add`/`remove`;
|
|
28
|
+
- entity hygiene: `swap` / `replace` / `copy` / `del`;
|
|
29
|
+
- admins: `admin` `add|remove|set` — high-trust: a new admin controls the whole table.
|
|
30
|
+
- A removed entity's next call fails with permission#5 "Permission denied". Prefer one Permission per business-object family; reuse named indexes.
|
|
51
31
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
## Domain 2: Financial Governance
|
|
55
|
-
|
|
56
|
-
Fund stewardship across Treasury / Allocation / Reward / Payment.
|
|
57
|
-
|
|
58
|
-
- **Treasury**: deposit joins coins in (a Payment receipt is minted); withdraw splits balance out — irreversible, and when an `external_guard` is set the guard must validate first. `query_toolkit` query_type='onchain_table_item_treasury_history' audits every flow (op 0 Withdraw / 1 Deposit / 2 Receive) with amount + guard + timestamp.
|
|
59
|
-
- **Allocation**: runs distribute pool funds per sharing mode (Amount / Rate in bps — base 10000 = 100% / Surplus). Review allocator guards periodically — a stale guard blocks legitimate distributions.
|
|
60
|
-
- **Unclaimed payments**: recipients hold frozen CoinWrappers until they unwrap. The keeper `payment_unclaimed` scan owns this reminder surface — run `keeper_operation` to list claimable payments and nudge recipients via Messenger. NewPaymentEvent is deliberately NOT push-bridged, to avoid duplicate reminders (P2-4 channel split).
|
|
61
|
-
- **Reward pools**: RewardFundEvent in / RewardClaimEvent out; a dry pool blocks claims — watch balances before announcing campaigns.
|
|
62
|
-
|
|
63
|
-
---
|
|
32
|
+
## Domain 2 — Financial governance
|
|
64
33
|
|
|
65
|
-
|
|
34
|
+
- **Treasury**: deposit joins coins in (Payment receipt minted); withdraw splits balance out — irreversible, and an `external_guard` on the Treasury must authorize it. Audit every flow with `query_toolkit` `onchain_table_item_treasury_history` (op `0` Withdraw / `1` Deposit / `2` Receive; amount + guard + timestamp).
|
|
35
|
+
- **Allocation**: modes Amount (fixed) / Rate (basis points, 10000 = 100%; pure-Rate must sum to 10000) / Surplus (remainder drain, ≤1 per Allocator). Review allocator guards periodically — a stale guard blocks legitimate distributions.
|
|
36
|
+
- **Unclaimed payments**: recipients own frozen CoinWrappers until unwrapped. The keeper owns this reminder surface: `keeper_operation` `scan` then `tasks` with `detector: "payment_unclaimed"`; nudge recipients via Messenger. `NewPaymentEvent` is deliberately NOT push-suggestion-bridged, to avoid duplicate reminders.
|
|
37
|
+
- **Reward pools**: funds in (RewardFundEvent) / claims out (RewardClaimEvent); a dry pool blocks claims — watch balances before announcing campaigns.
|
|
66
38
|
|
|
67
|
-
|
|
68
|
-
- **Entity info**: description/info updates re-emit NewEntityEvent — counterparties' cached profiles refresh; keep descriptions accurate.
|
|
69
|
-
- **Repository data**: contribution/usage policies are designed at Repository level (see wowok-provider); governance audits consumption through the event stream.
|
|
39
|
+
## Domain 3 — Data governance
|
|
70
40
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Governance goals close the loop through three channels:
|
|
76
|
-
|
|
77
|
-
- **Push**: fund-flow events (TreasuryEvent / AllocationEvent / RewardClaimEvent / RewardFundEvent) become goal-bound suggestions via SuggestionBridge.
|
|
78
|
-
- **Pull**: keeper scans (payment_unclaimed, balance thresholds) repeat reminders until resolved.
|
|
79
|
-
- **Audit**: after every governance write, re-query the object and confirm the post-state matches the intent.
|
|
80
|
-
|
|
81
|
-
---
|
|
41
|
+
- **Personal profile is permanently public** — never anchor private data; show the current record before every mutation.
|
|
42
|
+
- **Profile/contact description updates emit NO on-chain event** (`NewEntityEvent` fires only on entity registration). Counterparties see updates on their next object read — there is no push; tell the user this instead of promising a refresh.
|
|
43
|
+
- Repository contribution/usage policy belongs to [wowok-provider](../wowok-provider/SKILL.md); governance audits consumption via the event stream.
|
|
82
44
|
|
|
83
|
-
##
|
|
45
|
+
## Loop channels
|
|
84
46
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
4. **Audit after**: every governance write ends with a re-query confirmation.
|
|
47
|
+
- **Push**: fund-flow events (Treasury / Allocation / RewardFund / RewardClaim) become goal-bound suggestions through the monitor SuggestionBridge.
|
|
48
|
+
- **Pull**: keeper scans (`payment_unclaimed`, `progress_actionable`) repeat reminders until resolved; standing `auto_execute` exists only for claim-to-self.
|
|
49
|
+
- **Audit**: after every governance write, re-query and confirm the post-state matches intent.
|
|
89
50
|
|
|
90
|
-
##
|
|
51
|
+
## Interaction rules
|
|
91
52
|
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
53
|
+
1. **Review-first**: current state + exact delta before executing.
|
|
54
|
+
2. **User-driven**: never auto-execute — withdraw and admin changes are irreversible.
|
|
55
|
+
3. **Disclose irreversibility** for withdraw, admin transfer, and any personal-data write.
|
|
56
|
+
4. **Audit after**: end every governance write with a re-query confirmation.
|