@wowok/skills 2.1.3 → 2.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 +7 -2
- package/dist/cli.js +189 -41
- package/dist/cli.js.map +1 -1
- package/dist/skills.d.ts +10 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +59 -2
- package/dist/skills.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
- package/scripts/install.js +227 -29
- package/wowok-arbitrator/SKILL.md +1 -1
- package/wowok-collaborator/SKILL.md +110 -0
- package/wowok-onboard/SKILL.md +4 -6
- package/wowok-order/SKILL.md +29 -10
- package/wowok-provider/SKILL.md +1 -1
- package/wowok-supplier/SKILL.md +133 -0
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":";;;AA4LA,8BAEC;AAKD,wCAEC;AAKD,0CAEC;AAKD,gDAEC;AAKD,sCAsCC;AAWD,0CA0CC;AAsBD,gDAYC;AAWD,gDAUC;AAkBD,kDAyBC;AAnZD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;GAIG;AACU,QAAA,iBAAiB,GAAG;IAC/B,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,aAAa;CACL,CAAC;AAIX,gFAAgF;AACnE,QAAA,mBAAmB,GAAoC;IAClE,cAAc,EAAE,6FAA6F;IAC7G,aAAa,EAAE,8CAA8C;IAC7D,gBAAgB,EAAE,8GAA8G;IAChI,aAAa,EAAE,sFAAsF;CACtG,CAAC;AAEW,QAAA,WAAW,GAAgB;IACtC,MAAM,EAAE;QACN,wBAAwB;QACxB;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,sKAAsK;YACnL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;SACnE;QAED,wBAAwB;QACxB;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,kRAAkR;YAC/R,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC9C;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,iPAAiP;YAC9P,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC5B;QAED,wBAAwB;QACxB;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iQAAiQ;YAC9Q,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC;SAChE;QAED,4BAA4B;QAC5B;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,gRAAgR;YAC7R,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC;SAChE;QAED,0BAA0B;QAC1B;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,oMAAoM;YACjN,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;SAC5C;QAED,6BAA6B;QAC7B;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,4LAA4L;YACzM,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;SAC/D;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gNAAgN;YAC7N,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,EAAE;SACZ;QAED,uDAAuD;QACvD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,0VAA0V;YACvW,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;SAC7C;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,yPAAyP;YACtQ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC;SAC9D;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,8OAA8O;YAC3P,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAC;SAC9D;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gYAAgY;YAC7Y,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,CAAC;SAC/D;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,mBAAW,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,mBAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAe;IAC7C,OAAO,mBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAA4B;IAC7D,OAAO,mBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,KAAK,GAAiE;QAC1E;YACE,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,8DAA8D;SAC5E;QACD;YACE,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,6DAA6D;SAC3E;QACD;YACE,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,qEAAqE;SACnF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE,+EAA+E;SAC7F;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,mDAAmD;SACjE;QACD;YACE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE,0CAA0C;SACxD;KACF,CAAC;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,GAAG,CAAC;QACJ,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEnC,oBAAoB;IACpB,IAAI,wFAAwF,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzG,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB;IACpB,IAAI,0FAA0F,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3G,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB;IACpB,IAAI,4FAA4F,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7G,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,wBAAwB;IACxB,IAAI,8FAA8F,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/G,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;IACtB,IAAI,4EAA4E,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7F,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,uCAAuC;IACvC,IAAI,qMAAqM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtN,MAAM,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,IAAI,8EAA8E,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uCAAuC;IACvC,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,YAAoB;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,sDAAsD;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAG,UAAU;QAAE,OAAO,aAAa,CAAC;IAChD,IAAI,QAAQ,GAAG,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IAKnD,OAAO,mBAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,EAAE,CAAC,CAAC,IAAI;QACb,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC;KAChD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAE/D;;;;;;;;;;;GAWG;AACH,SAAgB,mBAAmB,CAAC,eAAyB;IAK3D,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,yBAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrD,CAAC;IAEF,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,iBAAiB,CAAC,CAAC,CAAC,GAAG,2BAAmB,CAAC,CAAoB,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,UAAU;QACV,iBAAiB;QACjB,OAAO,EACL,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kDAAkD;gBAClF,oFAAoF;gBACpF,kCAAkC;gBAClC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,2BAAmB,CAAC,CAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7F,CAAC,CAAC,EAAE;KACT,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Skill role categories for AI selection
|
|
3
3
|
*/
|
|
4
|
-
export type SkillRole = 'customer' | 'provider' | 'arbitrator' | 'shared';
|
|
4
|
+
export type SkillRole = 'customer' | 'provider' | 'supplier' | 'collaborator' | 'arbitrator' | 'shared';
|
|
5
5
|
/**
|
|
6
6
|
* Skill loading mode
|
|
7
7
|
* - 'always': Always loaded, metadata in prompt
|
|
8
8
|
* - 'on-demand': Loaded only when description matches task
|
|
9
9
|
*/
|
|
10
10
|
export type LoadingMode = 'always' | 'on-demand';
|
|
11
|
-
export type ClientTarget = 'claude' | 'cursor' | 'windsurf' | 'codebuddy' | 'codex' | 'trae' | 'qoder' | 'roo' | 'agents' | 'copilot' | 'all';
|
|
11
|
+
export type ClientTarget = 'claude' | 'cursor' | 'windsurf' | 'codebuddy' | 'codex' | 'trae' | 'qoder' | 'roo' | 'cline' | 'kilo' | 'agents' | 'copilot' | 'all';
|
|
12
12
|
export declare const CLIENT_SKILL_DIRS: Record<Exclude<ClientTarget, 'all'>, string>;
|
|
13
13
|
export declare const CLIENT_FILE_EXT: Record<Exclude<ClientTarget, 'all'>, string>;
|
|
14
14
|
export declare const ALL_CLIENT_TARGETS: Exclude<ClientTarget, 'all'>[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAExG;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,GACT,KAAK,CAAC;AAEV,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAa1E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAaxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAE5D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB"}
|
package/dist/types.js
CHANGED
|
@@ -10,6 +10,8 @@ exports.CLIENT_SKILL_DIRS = {
|
|
|
10
10
|
trae: '.agents/skills',
|
|
11
11
|
qoder: '.qoder/skills',
|
|
12
12
|
roo: '.roo/skills',
|
|
13
|
+
cline: '.cline/skills',
|
|
14
|
+
kilo: '.kilo/skills',
|
|
13
15
|
agents: '.agents/skills',
|
|
14
16
|
copilot: '.github/prompts',
|
|
15
17
|
};
|
|
@@ -22,10 +24,12 @@ exports.CLIENT_FILE_EXT = {
|
|
|
22
24
|
trae: '.md',
|
|
23
25
|
qoder: '.md',
|
|
24
26
|
roo: '.md',
|
|
27
|
+
cline: '.md',
|
|
28
|
+
kilo: '.md',
|
|
25
29
|
agents: '.md',
|
|
26
30
|
copilot: '.prompt.md',
|
|
27
31
|
};
|
|
28
32
|
exports.ALL_CLIENT_TARGETS = [
|
|
29
|
-
'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'copilot',
|
|
33
|
+
'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'cline', 'kilo', 'copilot',
|
|
30
34
|
];
|
|
31
35
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,iBAAiB,GAAiD;IAC7E,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,eAAe;IACtB,GAAG,EAAE,aAAa;IAClB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;CAC3B,CAAC;AAEW,QAAA,eAAe,GAAiD;IAC3E,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,YAAY;CACtB,CAAC;AAEW,QAAA,kBAAkB,GAAmC;IAChE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;CACzG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wowok/skills",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
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",
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/",
|
|
12
12
|
"wowok-provider/",
|
|
13
|
+
"wowok-supplier/",
|
|
14
|
+
"wowok-collaborator/",
|
|
13
15
|
"wowok-arbitrator/",
|
|
14
16
|
"wowok-machine/",
|
|
15
17
|
"wowok-order/",
|
package/scripts/install.js
CHANGED
|
@@ -38,6 +38,9 @@ const SKILL_DIRS = [
|
|
|
38
38
|
'wowok-onboard',
|
|
39
39
|
'wowok-planner',
|
|
40
40
|
'wowok-auditor',
|
|
41
|
+
'wowok-supplier',
|
|
42
|
+
'wowok-collaborator',
|
|
43
|
+
'wowok-market',
|
|
41
44
|
];
|
|
42
45
|
|
|
43
46
|
/**
|
|
@@ -69,12 +72,14 @@ const CLIENT_DIRS = {
|
|
|
69
72
|
trae: path.join(os.homedir(), '.agents', 'skills'),
|
|
70
73
|
qoder: path.join(os.homedir(), '.qoder', 'skills'),
|
|
71
74
|
roo: path.join(os.homedir(), '.roo', 'skills'),
|
|
75
|
+
cline: path.join(os.homedir(), '.cline', 'skills'),
|
|
76
|
+
kilo: path.join(os.homedir(), '.kilo', 'skills'),
|
|
72
77
|
agents: path.join(os.homedir(), '.agents', 'skills'), // deprecated alias
|
|
73
78
|
copilot: path.join(os.homedir(), '.github', 'prompts'),
|
|
74
79
|
};
|
|
75
80
|
|
|
76
81
|
const ALL_CLIENT_TARGETS = [
|
|
77
|
-
'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'copilot',
|
|
82
|
+
'claude', 'cursor', 'windsurf', 'codebuddy', 'codex', 'trae', 'qoder', 'roo', 'cline', 'kilo', 'copilot',
|
|
78
83
|
];
|
|
79
84
|
|
|
80
85
|
function getPackageRoot() {
|
|
@@ -341,7 +346,11 @@ function main() {
|
|
|
341
346
|
console.log('[wowok-skills] Skills installed GLOBALLY + MCP server registered (all clients).');
|
|
342
347
|
console.log('[wowok-skills] To ALSO install skills into a project, cd into it and run `wowok-skills init`.');
|
|
343
348
|
} else if (event === 'preuninstall') {
|
|
344
|
-
|
|
349
|
+
// Use the same target list as postinstall (ALL_CLIENT_TARGETS) so the
|
|
350
|
+
// set of dirs we remove from is symmetric with the set we installed to.
|
|
351
|
+
// Object.keys(CLIENT_DIRS) would additionally include the 'agents' alias
|
|
352
|
+
// which is identical to 'trae' → redundant.
|
|
353
|
+
const targets = [...ALL_CLIENT_TARGETS];
|
|
345
354
|
console.log('[wowok-skills] Removing skills from all client dirs...');
|
|
346
355
|
|
|
347
356
|
let total = 0;
|
|
@@ -374,9 +383,141 @@ function countExisting(targetDir) {
|
|
|
374
383
|
/** MCP server npm package name */
|
|
375
384
|
const MCP_PACKAGE = '@wowok/agent-mcp';
|
|
376
385
|
|
|
386
|
+
/**
|
|
387
|
+
* Resolve CodeBuddy MCP config file according to its official priority rules.
|
|
388
|
+
* Reference: https://www.codebuddy.ai/docs/cli/mcp#configuration-file-locations
|
|
389
|
+
*
|
|
390
|
+
* USER scope priority (highest → lowest):
|
|
391
|
+
* 1. ~/.codebuddy/.mcp.json (recommended)
|
|
392
|
+
* 2. ~/.codebuddy/mcp.json (deprecated)
|
|
393
|
+
* 3. ~/.codebuddy.json (legacy)
|
|
394
|
+
*
|
|
395
|
+
* Read rule : pick the FIRST existing candidate.
|
|
396
|
+
* Write rule: if any file exists, merge into that first existing file;
|
|
397
|
+
* if none exist, create the highest-priority one (.mcp.json).
|
|
398
|
+
*/
|
|
399
|
+
function resolveCodeBuddyMcpFile() {
|
|
400
|
+
const home = os.homedir();
|
|
401
|
+
const candidates = [
|
|
402
|
+
path.join(home, '.codebuddy', '.mcp.json'), // 1. recommended
|
|
403
|
+
path.join(home, '.codebuddy', 'mcp.json'), // 2. deprecated
|
|
404
|
+
path.join(home, '.codebuddy.json'), // 3. legacy
|
|
405
|
+
];
|
|
406
|
+
const existing = candidates.find((p) => fs.existsSync(p));
|
|
407
|
+
return existing || candidates[0];
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Resolve VS Code globalStorage MCP settings files for a given extension ID.
|
|
412
|
+
*
|
|
413
|
+
* VS Code extensions store their settings under:
|
|
414
|
+
* <user-data>/User/globalStorage/<extensionId>/settings/<fileName>
|
|
415
|
+
*
|
|
416
|
+
* Where <user-data> depends on the platform and the installed VS Code
|
|
417
|
+
* *variant* (Code, Code - Insiders, VSCodium, Cursor). Only variants whose
|
|
418
|
+
* User directory actually exists on disk are returned.
|
|
419
|
+
*
|
|
420
|
+
* macOS: ~/Library/Application Support/{Code,Code - Insiders,VSCodium,Cursor}
|
|
421
|
+
* Windows: %APPDATA%\{Code,Code - Insiders,VSCodium,Cursor}
|
|
422
|
+
* Linux: ~/.config/{Code,Code - Insiders,VSCodium,Cursor}
|
|
423
|
+
*/
|
|
424
|
+
function resolveVscodeGlobalStorageFiles(extensionId, fileName) {
|
|
425
|
+
const home = os.homedir();
|
|
426
|
+
const vsBaseDirs = (() => {
|
|
427
|
+
switch (process.platform) {
|
|
428
|
+
case 'darwin':
|
|
429
|
+
return [path.join(home, 'Library', 'Application Support')];
|
|
430
|
+
case 'win32':
|
|
431
|
+
return [process.env.APPDATA || path.join(home, 'AppData', 'Roaming')];
|
|
432
|
+
default:
|
|
433
|
+
return [process.env.XDG_CONFIG_HOME || path.join(home, '.config')];
|
|
434
|
+
}
|
|
435
|
+
})();
|
|
436
|
+
|
|
437
|
+
const results = [];
|
|
438
|
+
const vsVariants = ['Code', 'Code - Insiders', 'VSCodium', 'Cursor'];
|
|
439
|
+
for (const base of vsBaseDirs) {
|
|
440
|
+
for (const variant of vsVariants) {
|
|
441
|
+
const vsUserDir = path.join(base, variant, 'User');
|
|
442
|
+
if (fs.existsSync(vsUserDir)) {
|
|
443
|
+
results.push(path.join(
|
|
444
|
+
vsUserDir,
|
|
445
|
+
'globalStorage',
|
|
446
|
+
extensionId,
|
|
447
|
+
'settings',
|
|
448
|
+
fileName,
|
|
449
|
+
));
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return results;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Resolve ALL Roo Code MCP config files that should receive the wowok entry.
|
|
458
|
+
* Roo Code ships in two forms and we should cover BOTH:
|
|
459
|
+
*
|
|
460
|
+
* (A) Standalone CLI config → ~/.roo/mcp_settings.json
|
|
461
|
+
* Reference: https://mcp.harishgarg.com/use/apple-script/mcp-server/with/43
|
|
462
|
+
*
|
|
463
|
+
* (B) VS Code extension (rooveterinaryinc.roo-cline) config. The extension
|
|
464
|
+
* stores MCP settings inside VS Code's globalStorage under its
|
|
465
|
+
* extension ID.
|
|
466
|
+
* References:
|
|
467
|
+
* - Path convention : https://www.skillmd.ai/skills/mcp-installer-1/
|
|
468
|
+
* - macOS/Windows : https://crosstrade.io/learn/connect-roo-code-to-ninjatrader-8-mcp
|
|
469
|
+
*/
|
|
470
|
+
function resolveRooMcpFiles() {
|
|
471
|
+
const results = [];
|
|
472
|
+
// (A) Standalone CLI config — always include this target
|
|
473
|
+
results.push(path.join(os.homedir(), '.roo', 'mcp_settings.json'));
|
|
474
|
+
// (B) VS Code extension globalStorage entries
|
|
475
|
+
results.push(...resolveVscodeGlobalStorageFiles(
|
|
476
|
+
'rooveterinaryinc.roo-cline',
|
|
477
|
+
'cline_mcp_settings.json',
|
|
478
|
+
));
|
|
479
|
+
return results;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Resolve ALL Cline (VS Code) MCP config files.
|
|
484
|
+
* Cline is a VS Code extension that stores MCP settings in globalStorage
|
|
485
|
+
* under its extension ID (saoudrizwan.claude-dev), filename cline_mcp_settings.json.
|
|
486
|
+
* Reference: https://www.skillmd.ai/skills/mcp-installer-1/
|
|
487
|
+
*/
|
|
488
|
+
function resolveClineMcpFiles() {
|
|
489
|
+
return resolveVscodeGlobalStorageFiles(
|
|
490
|
+
'saoudrizwan.claude-dev',
|
|
491
|
+
'cline_mcp_settings.json',
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* Resolve ALL Kilo Code MCP config files.
|
|
497
|
+
* Kilo Code reads MCP settings from two separate places (documented by Kilo):
|
|
498
|
+
* (A) VS Code extension → globalStorage/kilocode.kilo-code/settings/mcp_settings.json
|
|
499
|
+
* (B) CLI → ~/.kilocode/cli/global/settings/mcp_settings.json
|
|
500
|
+
* References:
|
|
501
|
+
* - https://kilo.ai/docs/features/mcp/using-mcp-in-cli
|
|
502
|
+
* - https://github.com/Kilo-Org/kilocode/blob/main/docs/file-locations.md
|
|
503
|
+
*/
|
|
504
|
+
function resolveKiloMcpFiles() {
|
|
505
|
+
const results = [];
|
|
506
|
+
results.push(...resolveVscodeGlobalStorageFiles(
|
|
507
|
+
'kilocode.kilo-code',
|
|
508
|
+
'mcp_settings.json',
|
|
509
|
+
));
|
|
510
|
+
results.push(path.join(os.homedir(), '.kilocode', 'cli', 'global', 'settings', 'mcp_settings.json'));
|
|
511
|
+
return results;
|
|
512
|
+
}
|
|
513
|
+
|
|
377
514
|
/**
|
|
378
515
|
* MCP config entries per client target.
|
|
379
516
|
* null means the client does not support MCP or manages it internally.
|
|
517
|
+
* Each entry may either provide a static `configPath` string, or a
|
|
518
|
+
* `resolveConfigPaths()` function that returns an array of concrete paths
|
|
519
|
+
* (for clients like CodeBuddy with priority-resolution rules, or Roo with
|
|
520
|
+
* multiple simultaneous install targets).
|
|
380
521
|
*/
|
|
381
522
|
const MCP_TARGET_CONFIGS = {
|
|
382
523
|
claude: {
|
|
@@ -388,7 +529,7 @@ const MCP_TARGET_CONFIGS = {
|
|
|
388
529
|
}
|
|
389
530
|
},
|
|
390
531
|
codebuddy: {
|
|
391
|
-
|
|
532
|
+
resolveConfigPaths: () => [resolveCodeBuddyMcpFile()],
|
|
392
533
|
merge: (config) => {
|
|
393
534
|
config.mcpServers = config.mcpServers || {};
|
|
394
535
|
config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
|
|
@@ -404,9 +545,26 @@ const MCP_TARGET_CONFIGS = {
|
|
|
404
545
|
}
|
|
405
546
|
},
|
|
406
547
|
qoder: {
|
|
407
|
-
configPath:
|
|
408
|
-
|
|
409
|
-
:
|
|
548
|
+
configPath: (() => {
|
|
549
|
+
// Qoder MCP config paths — confirmed by community guides:
|
|
550
|
+
// Windows : %APPDATA%\Qoder\mcp-settings.json
|
|
551
|
+
// macOS : ~/Library/Application Support/Qoder/mcp-settings.json
|
|
552
|
+
// Linux : ~/.config/qoder/mcp-settings.json
|
|
553
|
+
// Reference: github.com/oscar-wang-xin/mcp-session-saver/docs/MULTI_IDE_SETUP.md
|
|
554
|
+
if (process.platform === 'win32') {
|
|
555
|
+
return path.join(
|
|
556
|
+
process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'),
|
|
557
|
+
'Qoder', 'mcp-settings.json',
|
|
558
|
+
);
|
|
559
|
+
}
|
|
560
|
+
if (process.platform === 'darwin') {
|
|
561
|
+
return path.join(os.homedir(), 'Library', 'Application Support', 'Qoder', 'mcp-settings.json');
|
|
562
|
+
}
|
|
563
|
+
return path.join(
|
|
564
|
+
process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config'),
|
|
565
|
+
'qoder', 'mcp-settings.json',
|
|
566
|
+
);
|
|
567
|
+
})(),
|
|
410
568
|
merge: (config) => {
|
|
411
569
|
config.mcpServers = config.mcpServers || {};
|
|
412
570
|
config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
|
|
@@ -414,7 +572,23 @@ const MCP_TARGET_CONFIGS = {
|
|
|
414
572
|
}
|
|
415
573
|
},
|
|
416
574
|
roo: {
|
|
417
|
-
|
|
575
|
+
resolveConfigPaths: resolveRooMcpFiles,
|
|
576
|
+
merge: (config) => {
|
|
577
|
+
config.mcpServers = config.mcpServers || {};
|
|
578
|
+
config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
|
|
579
|
+
return config;
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
cline: {
|
|
583
|
+
resolveConfigPaths: resolveClineMcpFiles,
|
|
584
|
+
merge: (config) => {
|
|
585
|
+
config.mcpServers = config.mcpServers || {};
|
|
586
|
+
config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
|
|
587
|
+
return config;
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
kilo: {
|
|
591
|
+
resolveConfigPaths: resolveKiloMcpFiles,
|
|
418
592
|
merge: (config) => {
|
|
419
593
|
config.mcpServers = config.mcpServers || {};
|
|
420
594
|
config.mcpServers.wowok = { command: 'npx', args: ['-y', '@wowok/agent-mcp'] };
|
|
@@ -481,7 +655,10 @@ function getInstalledMcpVersion() {
|
|
|
481
655
|
*/
|
|
482
656
|
function getLatestMcpVersion() {
|
|
483
657
|
try {
|
|
484
|
-
|
|
658
|
+
// --prefer-online forces npm to bypass local cache and hit the registry
|
|
659
|
+
// directly. Without this flag, stale cache can return outdated version
|
|
660
|
+
// numbers (see project memory: components.mjs fix).
|
|
661
|
+
const output = execSync(`npm view --prefer-online ${MCP_PACKAGE} version`, {
|
|
485
662
|
encoding: 'utf-8',
|
|
486
663
|
stdio: 'pipe',
|
|
487
664
|
timeout: 15000,
|
|
@@ -575,6 +752,11 @@ function ensureMcpServer() {
|
|
|
575
752
|
* Write MCP server config entry for a given client target.
|
|
576
753
|
* Safely merges with any existing MCP configuration.
|
|
577
754
|
* Supports JSON format (most clients) and TOML format (Codex).
|
|
755
|
+
*
|
|
756
|
+
* When the target's MCP_TARGET_CONFIGS entry has `resolveConfigPaths()`
|
|
757
|
+
* (instead of a single `configPath` string) the function will iterate the
|
|
758
|
+
* returned array so multi-target clients (Roo, CodeBuddy with priority
|
|
759
|
+
* resolution) get every applicable location written to.
|
|
578
760
|
*/
|
|
579
761
|
function writeMcpConfig(target) {
|
|
580
762
|
const cfg = MCP_TARGET_CONFIGS[target];
|
|
@@ -591,7 +773,10 @@ function writeMcpConfig(target) {
|
|
|
591
773
|
if (fs.existsSync(cfg.configPath)) {
|
|
592
774
|
content = fs.readFileSync(cfg.configPath, 'utf-8');
|
|
593
775
|
}
|
|
594
|
-
|
|
776
|
+
// Line-level regex detection. Avoids false positives when the header
|
|
777
|
+
// appears inside a comment (e.g. `; [mcp_servers.wowok]`) or a
|
|
778
|
+
// multi-line string literal.
|
|
779
|
+
if (/^\s*\[mcp_servers\.wowok\]\s*$/m.test(content)) {
|
|
595
780
|
console.log(`[wowok-skills] MCP config already up to date: ${cfg.configPath}`);
|
|
596
781
|
return false;
|
|
597
782
|
}
|
|
@@ -606,30 +791,43 @@ function writeMcpConfig(target) {
|
|
|
606
791
|
}
|
|
607
792
|
|
|
608
793
|
// ── JSON format (all other clients) ────────────────────────────────
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
794
|
+
// Expand to an array of concrete paths so a single target can cover
|
|
795
|
+
// multiple physical files (priority resolution for CodeBuddy, CLI +
|
|
796
|
+
// VS Code variants for Roo/Cline/Kilo).
|
|
797
|
+
const configPaths = cfg.resolveConfigPaths ? cfg.resolveConfigPaths() : [cfg.configPath];
|
|
798
|
+
let anyWritten = false;
|
|
799
|
+
|
|
800
|
+
if (configPaths.length === 0) {
|
|
801
|
+
console.log(`[wowok-skills] MCP config: no config file detected for ${target} (client not installed) — skipped.`);
|
|
802
|
+
return false;
|
|
803
|
+
}
|
|
615
804
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
805
|
+
for (const configPath of configPaths) {
|
|
806
|
+
try {
|
|
807
|
+
let config = {};
|
|
808
|
+
const dir = path.dirname(configPath);
|
|
809
|
+
if (fs.existsSync(configPath)) {
|
|
810
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
811
|
+
}
|
|
619
812
|
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
console.log(`[wowok-skills] MCP config written: ${cfg.configPath}`);
|
|
624
|
-
return true;
|
|
625
|
-
}
|
|
813
|
+
const before = JSON.stringify(config);
|
|
814
|
+
config = cfg.merge(config);
|
|
815
|
+
const after = JSON.stringify(config);
|
|
626
816
|
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
817
|
+
if (before !== after) {
|
|
818
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
819
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
820
|
+
console.log(`[wowok-skills] MCP config written: ${configPath}`);
|
|
821
|
+
anyWritten = true;
|
|
822
|
+
} else {
|
|
823
|
+
console.log(`[wowok-skills] MCP config already up to date: ${configPath}`);
|
|
824
|
+
}
|
|
825
|
+
} catch (err) {
|
|
826
|
+
console.error(`[wowok-skills] ERROR writing MCP config for ${target} at ${configPath}: ${err.message}`);
|
|
827
|
+
}
|
|
632
828
|
}
|
|
829
|
+
|
|
830
|
+
return anyWritten;
|
|
633
831
|
}
|
|
634
832
|
|
|
635
833
|
/**
|
|
@@ -169,7 +169,7 @@ Customer dispute creates Arb directly at (1). State (0) entered only via `reset`
|
|
|
169
169
|
| **Messenger** (preferred) | Specific evidence, privacy-sensitive | Encrypted, off-chain |
|
|
170
170
|
| **on-chain feedback** | General clarification, procedural | Public, permanent |
|
|
171
171
|
|
|
172
|
-
**Best-move advice** (`evaluation_operation` → `arb_game`): pass `status` (7-state) + `perspective` (`
|
|
172
|
+
**Best-move advice** (`evaluation_operation` → `arb_game`): pass `status` (7-state) + `perspective` (`customer`/`merchant`/`arbitrator`) to get ranked moves (optimal + payoff + risk). Read the result; the role decides and acts.
|
|
173
173
|
|
|
174
174
|
---
|
|
175
175
|
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wowok-collaborator
|
|
3
|
+
description: |
|
|
4
|
+
WoWok Collaborator — the canonical skill for process collaborators who execute
|
|
5
|
+
workflow forwards on behalf of a merchant: internal staff (permission entities)
|
|
6
|
+
and external operators (named operators).
|
|
7
|
+
|
|
8
|
+
Covers permission-index and named-operator routing, guard-gated evidence
|
|
9
|
+
submission, and reputation protection. The collaborator carries PROCESS
|
|
10
|
+
responsibility (no direct settlement stake) — the goal is to keep the workflow
|
|
11
|
+
flowing and avoid stall blame.
|
|
12
|
+
|
|
13
|
+
For the merchant who owns the Service, see wowok-provider. For the supplier who
|
|
14
|
+
presents to Demands, see wowok-supplier.
|
|
15
|
+
when_to_use:
|
|
16
|
+
- User is an operator/employee executing workflow steps (permission index)
|
|
17
|
+
- User is an external named operator advancing a Machine forward
|
|
18
|
+
- User wants to submit guard evidence (proof/repository) for a forward
|
|
19
|
+
- User mentions "collaborator", "operator", "permission index", "named operator", "execute forward"
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# WoWok Collaborator Guide
|
|
23
|
+
|
|
24
|
+
> **Role**: Collaborator (internal permission entity OR external named operator)
|
|
25
|
+
> **Related Skills**: [wowok-provider](../wowok-provider/SKILL.md) (merchant), [wowok-machine](../wowok-machine/SKILL.md) (workflow), [wowok-messenger](../wowok-messenger/SKILL.md) (evidence exchange)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## MCP Knowledge Layer
|
|
30
|
+
|
|
31
|
+
The following content has been pushed down to the MCP knowledge layer and is applied automatically — this Skill does NOT duplicate it:
|
|
32
|
+
|
|
33
|
+
| Content | Access via (MCP action) | Applied Via |
|
|
34
|
+
|---------|--------------------------|-------------|
|
|
35
|
+
| Collaborator interest analysis (fund_flow / responsibility / leverage / stakes) | `project_operation` action='participation_radar' | role derivation → `collaborator-interest` |
|
|
36
|
+
| Progress routing rule (namedOperator vs permissionIndex) | `schema_query` action='get_safety_rules' | `onchain_operations` progress/order |
|
|
37
|
+
| Guard design + submission patterns | `schema_query` action='get_guard_design_patterns' | guard-gated forwards |
|
|
38
|
+
| Node game (threshold cooperation) | `evaluation_operation` action='node_game' | multi-role forward evaluation |
|
|
39
|
+
|
|
40
|
+
This Skill keeps the collaborator **conversation flow** — what you can execute now, what evidence to submit, and how to stay in scope.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Role: process responsibility, not settlement
|
|
45
|
+
|
|
46
|
+
The collaborator has **no direct settlement stake**. Your compensation is typically outside the on-chain order (salary/contract) unless the allocation explicitly routes a slot to you. Your stake is **reputation** — the stall/dispute metrics are public and read by future counterparties.
|
|
47
|
+
|
|
48
|
+
Two sub-kinds (derived on-chain, never asserted):
|
|
49
|
+
- **permission entity** (internal staff): granted a `permissionIndex` in the Service's Permission.
|
|
50
|
+
- **named operator** (external): resolved via Progress.namedOperator → LocalMark.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Core Interaction Principles
|
|
55
|
+
|
|
56
|
+
1. **Review-first**: State what you understand + what you can execute + the interaction contract before acting.
|
|
57
|
+
2. **User-driven**: the AI surfaces options; you decide; never auto-advance.
|
|
58
|
+
3. **Stay in scope**: only execute forwards your permission/named-operator grants — out-of-scope action creates semantic responsibility without authority.
|
|
59
|
+
4. **Default-config disclosure**: disclose defaults + caveats before acting.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## What You Can Execute Now
|
|
64
|
+
|
|
65
|
+
Run `project_operation` action='participation_radar' with your account + the order's Progress. It returns:
|
|
66
|
+
|
|
67
|
+
- `operable` — forwards YOU can execute right now (permission / named-operator path).
|
|
68
|
+
- `waiting_on` — what the workflow waits on from other roles.
|
|
69
|
+
- `collaborator_kind` — internal vs external.
|
|
70
|
+
- `interest_analysis` → `collaborator-interest` (fund_flow / responsibility / leverage / stakes).
|
|
71
|
+
|
|
72
|
+
Present it neutrally; the collaborator decides.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Routing
|
|
77
|
+
|
|
78
|
+
- Empty `namedOperator` (`""`) → `order.progress` (the order holder, NOT you).
|
|
79
|
+
- Non-empty role name → `progress.operate` with the named operator.
|
|
80
|
+
- `permissionIndex` → `progress.operate` with your granted index.
|
|
81
|
+
|
|
82
|
+
Wrong path → "Permission denied" (abort code 5). The MCP safety rules carry the authoritative classification.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Guard-gated Forwards
|
|
87
|
+
|
|
88
|
+
A forward with a guard requires a `b_submission` (retained submission) before execution. Prepare your evidence (Repository/proof) in advance:
|
|
89
|
+
|
|
90
|
+
1. Upload evidence (Repository/proof data).
|
|
91
|
+
2. Execute the forward (two-phase: call → submission prompt → re-call with submission).
|
|
92
|
+
3. Advance the workflow.
|
|
93
|
+
|
|
94
|
+
Uploading evidence BEFORE executing reduces dispute probability and pre-builds the merchant's arbitration defense — your diligence is visible on-chain.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Design Principles
|
|
99
|
+
|
|
100
|
+
- **Momentum**: advance when you can; the stall is publicly visible.
|
|
101
|
+
- **Scope discipline**: never interfere outside your permission/named-operator scope.
|
|
102
|
+
- **Evidence first**: guard-gated forwards are only as strong as the submission behind them.
|
|
103
|
+
- **Neutrality**: the AI surfaces trade-offs, never chooses the branch for you.
|
|
104
|
+
|
|
105
|
+
## Quick Reference
|
|
106
|
+
|
|
107
|
+
- You carry no settlement stake — your currency is reputation.
|
|
108
|
+
- `permissionIndex` → `progress.operate`; `namedOperator` role name → `progress.operate`.
|
|
109
|
+
- Guard-gated forward needs `b_submission` evidence before execution.
|
|
110
|
+
- Threshold cooperation (`node_game`) surfaces multi-role forward needs when a pair's threshold > 1.
|
package/wowok-onboard/SKILL.md
CHANGED
|
@@ -221,10 +221,7 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
|
|
|
221
221
|
|
|
222
222
|
### R11 — Publish Service
|
|
223
223
|
|
|
224
|
-
- **Semantic meaning**: Make the service live. Irreversible — `machine`, `order_allocators`, and `arbitrations` become permanently frozen.
|
|
225
|
-
- **Core elements to confirm**: confirm publish (Phase 2: only flips `publish: true`; all L1 fields were set in R5–R9).
|
|
226
|
-
- **Default config**: n/a — confirmation gate.
|
|
227
|
-
- **Reuse / Customize / Discover**: n/a.
|
|
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).
|
|
228
225
|
- **Dependencies**: R10 audit passed.
|
|
229
226
|
|
|
230
227
|
### R12 — Test Order (user-driven, next-node disclosure)
|
|
@@ -233,11 +230,12 @@ Each round below lists: **Semantic meaning**, **Core elements to confirm**, **De
|
|
|
233
230
|
- **Core elements to confirm**:
|
|
234
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.
|
|
235
232
|
- **Advance path**: at each node, the user chooses which next node to advance to.
|
|
236
|
-
- **Per-node disclosure (before each advance)**:
|
|
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 阈值配合).
|
|
237
235
|
- **Default config**: test account = service-creation account.
|
|
238
236
|
- **Reuse / Customize / Discover**: n/a (verification).
|
|
239
237
|
- **Dependencies**: Service published (R11) — `order_new` requires `bPublished=true`.
|
|
240
|
-
- **Sequence**: `order_new` →
|
|
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.
|
|
241
239
|
|
|
242
240
|
---
|
|
243
241
|
|