funifier-mcp 0.2.26 → 0.2.28

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.
Files changed (181) hide show
  1. package/.cursor/rules/funifier.mdc +38 -41
  2. package/.github/copilot-instructions.md +38 -41
  3. package/AGENTS.md +56 -49
  4. package/README.md +40 -22
  5. package/datasource-funifier-docs/.coverage.json +326 -0
  6. package/datasource-funifier-docs/.validation.json +593 -0
  7. package/datasource-funifier-docs/knowledge/guides/aggregates.md +182 -70
  8. package/datasource-funifier-docs/knowledge/guides/database-access.md +174 -88
  9. package/datasource-funifier-docs/knowledge/guides/java-entities.md +294 -204
  10. package/datasource-funifier-docs/knowledge/guides/java-libraries.md +202 -226
  11. package/datasource-funifier-docs/knowledge/guides/java-managers.md +343 -265
  12. package/datasource-funifier-docs/knowledge/guides/trigger-examples.md +180 -236
  13. package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +273 -191
  14. package/datasource-funifier-docs/knowledge/index.md +4 -1
  15. package/datasource-funifier-docs/knowledge/modules/achievement.md +1126 -28
  16. package/datasource-funifier-docs/knowledge/modules/action-log.md +469 -62
  17. package/datasource-funifier-docs/knowledge/modules/action.md +522 -70
  18. package/datasource-funifier-docs/knowledge/modules/auth.md +718 -69
  19. package/datasource-funifier-docs/knowledge/modules/avatar.md +483 -18
  20. package/datasource-funifier-docs/knowledge/modules/backup.md +603 -25
  21. package/datasource-funifier-docs/knowledge/modules/challenge.md +1048 -220
  22. package/datasource-funifier-docs/knowledge/modules/compact.md +469 -26
  23. package/datasource-funifier-docs/knowledge/modules/competition.md +811 -109
  24. package/datasource-funifier-docs/knowledge/modules/crossword.md +504 -28
  25. package/datasource-funifier-docs/knowledge/modules/csv-data.md +645 -20
  26. package/datasource-funifier-docs/knowledge/modules/custom-object.md +701 -36
  27. package/datasource-funifier-docs/knowledge/modules/database.md +730 -164
  28. package/datasource-funifier-docs/knowledge/modules/folder.md +935 -280
  29. package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +410 -15
  30. package/datasource-funifier-docs/knowledge/modules/lastmile.md +568 -29
  31. package/datasource-funifier-docs/knowledge/modules/leaderboard.md +595 -126
  32. package/datasource-funifier-docs/knowledge/modules/level.md +536 -54
  33. package/datasource-funifier-docs/knowledge/modules/lottery.md +809 -76
  34. package/datasource-funifier-docs/knowledge/modules/marketplace.md +688 -17
  35. package/datasource-funifier-docs/knowledge/modules/mystery.md +662 -52
  36. package/datasource-funifier-docs/knowledge/modules/notification.md +564 -26
  37. package/datasource-funifier-docs/knowledge/modules/patterns.md +519 -814
  38. package/datasource-funifier-docs/knowledge/modules/player.md +773 -73
  39. package/datasource-funifier-docs/knowledge/modules/point.md +380 -83
  40. package/datasource-funifier-docs/knowledge/modules/public.md +508 -178
  41. package/datasource-funifier-docs/knowledge/modules/question.md +619 -99
  42. package/datasource-funifier-docs/knowledge/modules/quiz.md +565 -120
  43. package/datasource-funifier-docs/knowledge/modules/scheduler.md +1092 -39
  44. package/datasource-funifier-docs/knowledge/modules/security.md +674 -112
  45. package/datasource-funifier-docs/knowledge/modules/staging.md +742 -19
  46. package/datasource-funifier-docs/knowledge/modules/story.md +565 -29
  47. package/datasource-funifier-docs/knowledge/modules/studio-page.md +470 -144
  48. package/datasource-funifier-docs/knowledge/modules/swap.md +552 -84
  49. package/datasource-funifier-docs/knowledge/modules/team.md +563 -45
  50. package/datasource-funifier-docs/knowledge/modules/trigger.md +876 -134
  51. package/datasource-funifier-docs/knowledge/modules/upload.md +468 -95
  52. package/datasource-funifier-docs/knowledge/modules/virtual-good.md +510 -63
  53. package/datasource-funifier-docs/knowledge/modules/webhook.md +375 -28
  54. package/datasource-funifier-docs/knowledge/modules/websocket.md +459 -26
  55. package/datasource-funifier-docs/knowledge/modules/widget.md +613 -27
  56. package/dist/cli/init.d.ts.map +1 -1
  57. package/dist/cli/init.js +42 -1
  58. package/dist/cli/init.js.map +1 -1
  59. package/dist/cli/init.test.js +74 -3
  60. package/dist/cli/init.test.js.map +1 -1
  61. package/dist/cli/persona.d.ts +3 -0
  62. package/dist/cli/persona.d.ts.map +1 -0
  63. package/dist/cli/persona.js +25 -0
  64. package/dist/cli/persona.js.map +1 -0
  65. package/dist/mcp/bundle.js +119 -93
  66. package/dist/mcp/check-update.d.ts +5 -0
  67. package/dist/mcp/check-update.d.ts.map +1 -1
  68. package/dist/mcp/check-update.js +21 -10
  69. package/dist/mcp/check-update.js.map +1 -1
  70. package/dist/mcp/check-update.test.d.ts +2 -0
  71. package/dist/mcp/check-update.test.d.ts.map +1 -0
  72. package/dist/mcp/check-update.test.js +33 -0
  73. package/dist/mcp/check-update.test.js.map +1 -0
  74. package/dist/mcp/index.js +2 -2
  75. package/dist/mcp/index.js.map +1 -1
  76. package/dist/mcp/prompts/templates.d.ts.map +1 -1
  77. package/dist/mcp/prompts/templates.js +35 -0
  78. package/dist/mcp/prompts/templates.js.map +1 -1
  79. package/dist/mcp/resources/documentation.d.ts +1 -1
  80. package/dist/mcp/resources/documentation.d.ts.map +1 -1
  81. package/dist/mcp/resources/documentation.js +39 -3
  82. package/dist/mcp/resources/documentation.js.map +1 -1
  83. package/dist/mcp/tools/connect.d.ts.map +1 -1
  84. package/dist/mcp/tools/connect.js +18 -8
  85. package/dist/mcp/tools/connect.js.map +1 -1
  86. package/dist/mcp/tools/database.d.ts.map +1 -1
  87. package/dist/mcp/tools/database.js +59 -47
  88. package/dist/mcp/tools/database.js.map +1 -1
  89. package/dist/mcp/tools/database.test.js +2 -2
  90. package/dist/mcp/tools/database.test.js.map +1 -1
  91. package/dist/mcp/tools/delete.d.ts.map +1 -1
  92. package/dist/mcp/tools/delete.js +13 -3
  93. package/dist/mcp/tools/delete.js.map +1 -1
  94. package/dist/mcp/tools/execute.d.ts.map +1 -1
  95. package/dist/mcp/tools/execute.js +20 -9
  96. package/dist/mcp/tools/execute.js.map +1 -1
  97. package/dist/mcp/tools/folder.d.ts.map +1 -1
  98. package/dist/mcp/tools/folder.js +22 -12
  99. package/dist/mcp/tools/folder.js.map +1 -1
  100. package/dist/mcp/tools/get.d.ts.map +1 -1
  101. package/dist/mcp/tools/get.js +16 -6
  102. package/dist/mcp/tools/get.js.map +1 -1
  103. package/dist/mcp/tools/index.d.ts +1 -1
  104. package/dist/mcp/tools/index.d.ts.map +1 -1
  105. package/dist/mcp/tools/index.js +28 -1
  106. package/dist/mcp/tools/index.js.map +1 -1
  107. package/dist/mcp/tools/list.d.ts.map +1 -1
  108. package/dist/mcp/tools/list.js +38 -14
  109. package/dist/mcp/tools/list.js.map +1 -1
  110. package/dist/mcp/tools/logs.d.ts.map +1 -1
  111. package/dist/mcp/tools/logs.js +15 -5
  112. package/dist/mcp/tools/logs.js.map +1 -1
  113. package/dist/mcp/tools/save.d.ts.map +1 -1
  114. package/dist/mcp/tools/save.js +14 -4
  115. package/dist/mcp/tools/save.js.map +1 -1
  116. package/dist/mcp/tools/save.test.js +3 -3
  117. package/dist/mcp/tools/save.test.js.map +1 -1
  118. package/dist/mcp/tools/search-docs.d.ts +3 -0
  119. package/dist/mcp/tools/search-docs.d.ts.map +1 -0
  120. package/dist/mcp/tools/search-docs.js +102 -0
  121. package/dist/mcp/tools/search-docs.js.map +1 -0
  122. package/package.json +6 -2
  123. package/skills/acquire-funifier-knowledge/SKILL.md +155 -0
  124. package/skills/acquire-funifier-knowledge/assets/templates/CONCERNS.md +25 -0
  125. package/skills/acquire-funifier-knowledge/assets/templates/CUSTOM_ENDPOINTS.md +24 -0
  126. package/skills/acquire-funifier-knowledge/assets/templates/CUSTOM_PAGES.md +24 -0
  127. package/skills/acquire-funifier-knowledge/assets/templates/GAME_MECHANICS.md +35 -0
  128. package/skills/acquire-funifier-knowledge/assets/templates/INTEGRATIONS.md +35 -0
  129. package/skills/acquire-funifier-knowledge/assets/templates/LEADERBOARDS.md +24 -0
  130. package/skills/acquire-funifier-knowledge/assets/templates/OVERVIEW.md +86 -0
  131. package/skills/acquire-funifier-knowledge/assets/templates/PLAYER_MODEL.md +31 -0
  132. package/skills/acquire-funifier-knowledge/assets/templates/SCHEDULERS.md +25 -0
  133. package/skills/acquire-funifier-knowledge/assets/templates/TECHNIQUES_AND_PATTERNS.md +26 -0
  134. package/skills/acquire-funifier-knowledge/assets/templates/TRIGGERS.md +27 -0
  135. package/skills/acquire-funifier-knowledge/references/funifier-inventory-checklist.md +81 -0
  136. package/skills/acquire-funifier-knowledge/references/game-techniques-taxonomy.md +62 -0
  137. package/skills/acquire-funifier-knowledge/references/mcp-call-patterns.md +118 -0
  138. package/skills/funifier/SKILL.md +88 -0
  139. package/skills/funifier/references/configure-security.md +96 -0
  140. package/skills/{funifier-create-action/SKILL.md → funifier/references/create-action.md} +0 -33
  141. package/skills/funifier/references/create-aggregate.md +144 -0
  142. package/skills/funifier/references/create-challenge.md +116 -0
  143. package/skills/funifier/references/create-competition.md +98 -0
  144. package/skills/funifier/references/create-crossword.md +574 -0
  145. package/skills/funifier/references/create-custom-object.md +91 -0
  146. package/skills/funifier/references/create-custom-page.md +135 -0
  147. package/skills/funifier/references/create-folder.md +104 -0
  148. package/skills/funifier/references/create-lastmile.md +643 -0
  149. package/skills/{funifier-create-leaderboard/SKILL.md → funifier/references/create-leaderboard.md} +0 -33
  150. package/skills/funifier/references/create-level.md +94 -0
  151. package/skills/funifier/references/create-lottery.md +913 -0
  152. package/skills/funifier/references/create-mystery.md +769 -0
  153. package/skills/funifier/references/create-notification.md +75 -0
  154. package/skills/{funifier-create-point/SKILL.md → funifier/references/create-point.md} +0 -33
  155. package/skills/funifier/references/create-quiz.md +98 -0
  156. package/skills/funifier/references/create-scheduler.md +141 -0
  157. package/skills/funifier/references/create-story.md +636 -0
  158. package/skills/funifier/references/create-swap.md +95 -0
  159. package/skills/{funifier-create-trigger/SKILL.md → funifier/references/create-trigger.md} +0 -33
  160. package/skills/funifier/references/create-virtual-good.md +96 -0
  161. package/skills/funifier/references/create-webhook.md +72 -0
  162. package/skills/funifier/references/create-websocket.md +71 -0
  163. package/skills/funifier/references/create-widget.md +76 -0
  164. package/skills/funifier/references/debug.md +87 -0
  165. package/skills/funifier/references/help.md +81 -0
  166. package/skills/funifier/references/implement-frontend.md +106 -0
  167. package/skills/funifier/references/import-csv.md +75 -0
  168. package/skills/funifier/references/manage-player.md +82 -0
  169. package/skills/funifier/references/manage-team.md +76 -0
  170. package/skills/funifier/references/upload-file.md +91 -0
  171. package/skills/funifier-create-aggregate/SKILL.md +0 -127
  172. package/skills/funifier-create-challenge/SKILL.md +0 -88
  173. package/skills/funifier-create-custom-page/SKILL.md +0 -127
  174. package/skills/funifier-create-level/SKILL.md +0 -87
  175. package/skills/funifier-create-quiz/SKILL.md +0 -87
  176. package/skills/funifier-create-scheduler/SKILL.md +0 -127
  177. package/skills/funifier-create-virtual-good/SKILL.md +0 -87
  178. package/skills/funifier-debug/SKILL.md +0 -92
  179. package/skills/funifier-help/SKILL.md +0 -86
  180. package/skills/funifier-implement-frontend/SKILL.md +0 -90
  181. package/skills/funifier-index/SKILL.md +0 -58
@@ -10,28 +10,6 @@ alwaysApply: true
10
10
 
11
11
  # Funifier Development Rules
12
12
 
13
- ## Code Quality Persona
14
-
15
- A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
16
-
17
- ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
18
-
19
- 1. **Analise cuidadosamente o problema ou o código existente.**
20
- 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
21
- 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
22
- 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
23
- 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
24
- - **SOLID**
25
- - **DRY (Don't Repeat Yourself)**
26
- - **KISS (Keep It Simple, Stupid)**
27
- - **YAGNI (You Aren't Gonna Need It)**
28
-
29
- Só então prossiga com a implementação.
30
-
31
- > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos — podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
32
-
33
- ---
34
-
35
13
  ## Funifier Documentation
36
14
 
37
15
  Source of truth: `datasource-funifier-docs/`
@@ -44,30 +22,49 @@ npx funifier-mcp search "<query>" --top 5 --min-score 0.3
44
22
 
45
23
  ## Skill Workflows
46
24
 
47
- | Skill | When to use |
48
- |-------|-------------|
49
- | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
50
- | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
51
- | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
52
- | `/funifier-create-challenge` | Create a Funifier challenge — missions with action rules and point rewards |
53
- | `/funifier-create-action` | Create a Funifier action — define trackable player behaviors with attributes |
54
- | `/funifier-create-point` | Create a Funifier point category — XP, coins, or custom metrics |
55
- | `/funifier-create-level` | Create Funifier levels — progression system based on accumulated points |
56
- | `/funifier-create-leaderboard` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
57
- | `/funifier-create-quiz` | Create a Funifier quiz — questionnaires with multiple-choice questions |
58
- | `/funifier-create-virtual-good` | Create a Funifier virtual good — catalog items players can purchase with points |
59
- | `/funifier-create-custom-page` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
60
- | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API — authentication, data fetching, and aggregate consumption |
61
- | `/funifier-debug` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
62
- | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
63
-
64
- Full workflow files: `skills/<skill-id>/SKILL.md`
25
+ | Reference | When to use |
26
+ |-----------|-------------|
27
+ | `skills/funifier/references/create-trigger.md` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
28
+ | `skills/funifier/references/create-scheduler.md` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
29
+ | `skills/funifier/references/create-aggregate.md` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
30
+ | `skills/funifier/references/create-challenge.md` | Create a Funifier challenge — missions with action rules and point rewards |
31
+ | `skills/funifier/references/create-action.md` | Create a Funifier action — define trackable player behaviors with attributes |
32
+ | `skills/funifier/references/create-point.md` | Create a Funifier point category — XP, coins, or custom metrics |
33
+ | `skills/funifier/references/create-level.md` | Create Funifier levels — progression system based on accumulated points |
34
+ | `skills/funifier/references/create-leaderboard.md` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
35
+ | `skills/funifier/references/create-quiz.md` | Create a Funifier quiz — questionnaires with multiple-choice questions |
36
+ | `skills/funifier/references/create-virtual-good.md` | Create a Funifier virtual good — catalog items players can purchase with points |
37
+ | `skills/funifier/references/create-custom-page.md` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
38
+ | `skills/funifier/references/implement-frontend.md` | Implement frontend code that consumes the Funifier API — authentication, data fetching, aggregate consumption, and static hosting on Funifier subdomain |
39
+ | `skills/funifier/references/debug.md` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
40
+ | `skills/funifier/references/help.md` | Get help with Funifier — routes to the right documentation or skill based on your question |
41
+ | `skills/funifier/references/manage-player.md` | Register and manage Funifier players — CRUD workflow for participant onboarding, team assignment, extra-field management, and status queries; use at the start of every project to set up participants |
42
+ | `skills/funifier/references/manage-team.md` | Create and manage Funifier teams — group players for collective challenges, team rankings, and collaborative goals; use when organizing players into competing or collaborating groups, not when only individual player setup is needed |
43
+ | `skills/funifier/references/create-competition.md` | Create a Funifier competition — timed ranking contests with player enrollment, position-based rewards, and execution; use when you need player sign-up, prizes by finish position, or a scheduled end date, not when an always-on leaderboard is enough |
44
+ | `skills/funifier/references/create-folder.md` | Create a Funifier learning trail (folder) — hierarchical courses with content types, progress tracking, conditional unlock policies, and trigger events; use when structuring sequenced training journeys, not when standalone challenges are enough |
45
+ | `skills/funifier/references/create-lottery.md` | Create a Funifier lottery — ticket-based prize draws with configurable draw dates, max winners, and rewards; use when running promotional prize drawings where players earn tickets, not when probability-based instant games are needed (use mystery box) |
46
+ | `skills/funifier/references/create-mystery.md` | Create a Funifier mystery box — probability-based instant games (spin wheel, scratch card, coin flip) with configurable odds and rewards; use for random reward mechanics, not for ticket-based draws with scheduled dates (use lottery) |
47
+ | `skills/funifier/references/create-story.md` | Create a Funifier interactive story — branching narratives with player choices, scenes, and media for training or campaigns; use when building choose-your-own-adventure experiences, not when a linear quiz or folder trail is sufficient |
48
+ | `skills/funifier/references/create-crossword.md` | Create a Funifier crossword puzzle game — themed word games with custom clues and grid positions for educational onboarding or marketing; use when building interactive word-based games, not when a multiple-choice quiz is enough |
49
+ | `skills/funifier/references/create-notification.md` | Create a Funifier notification — standalone automated player feedback messages for game events; use when managing notification records directly via API, not when configuring notifications inline within challenge or competition payloads |
50
+ | `skills/funifier/references/create-lastmile.md` | Create a Funifier last-mile notification — motivational messages triggered when a player reaches a configured progress threshold near a challenge goal; use to boost completion rates, not as a general notification system |
51
+ | `skills/funifier/references/create-webhook.md` | Create a Funifier webhook — push real-time event payloads to external endpoints (BI, CRM, Slack, Teams); use when external systems need event-driven data from Funifier, not when in-app live updates are needed (use websocket) |
52
+ | `skills/funifier/references/create-websocket.md` | Create a Funifier websocket configuration — real-time bidirectional communication for live competitions, instant player feedback, and chat; use for in-app live updates, not for pushing to external systems (use webhook) |
53
+ | `skills/funifier/references/create-widget.md` | Create a Funifier widget — embeddable visual components (rankings, challenge lists, player status, virtual stores) for integrating gamification displays into existing web systems like intranets, CRMs, or LMS platforms |
54
+ | `skills/funifier/references/create-swap.md` | Create a Funifier swap — player-to-player trade offers for items or points with counter-proposal support; use when enabling peer trading or social exchange mechanics, not when a standard virtual good store purchase is sufficient |
55
+ | `skills/funifier/references/create-custom-object.md` | Create and manage Funifier custom objects — domain-specific collections with the __c suffix for storing business entities (products, venues, categories) that do not fit standard modules; accessible via API, triggers, and schedulers |
56
+ | `skills/funifier/references/configure-security.md` | Configure Funifier security settings — roles, scopes, app tokens, and auth parameters; use when setting up access control, fixing missing database scope errors, or configuring token expiry; not for writing frontend login code (use funifier-implement-frontend) |
57
+ | `skills/funifier/references/import-csv.md` | Import or export Funifier platform data via CSV — bulk player import, performance export, and cross-system data migration; use when loading or extracting large datasets, not for individual record CRUD or media file uploads (use funifier-upload-file) |
58
+ | `skills/funifier/references/upload-file.md` | Upload files to Funifier — images and documents for player avatars, challenge resources, and visual assets; use when adding media to the platform, not for CSV data import (use funifier-import-csv) or static frontend hosting (use funifier-implement-frontend) |
59
+
60
+ Full workflow files: `skills/funifier/references/`
65
61
 
66
62
  ### Funifier Modules
67
63
 
68
64
  | Module | Description |
69
65
  |--------|-------------|
70
66
  | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
67
+ | Security | Configuração do documento de segurança — apps com app_secret, roles de jogador, escopos, pipeline de autorização e emissão de tokens Bearer |
71
68
  | Player | Cadastro e gestão de utilizadores da aplicação |
72
69
  | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
73
70
  | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
@@ -86,7 +83,7 @@ Configure in `.mcp.json` — see `README.md`. Tools: `funifier_list` (always fil
86
83
 
87
84
  ## Rules
88
85
 
89
- - **Before any `funifier_*` MCP tool call**, check the Skill Workflows table above — if a skill matches, read its `SKILL.md` first. Skills contain correct enum values, field references, and examples.
86
+ - **Before any `funifier_*` MCP tool call**, check the Skill Workflows table above — if a row matches, read the reference file listed. Reference files contain correct enum values, field references, and examples.
90
87
  - Search docs with `funifier-mcp search` before loading any file.
91
88
  - Groovy scripts in Funifier: no `import` statements, use `manager` object for all platform APIs.
92
89
  - Rebuild skills after doc changes: `npm run build:skills`.
@@ -1,27 +1,5 @@
1
1
  # Copilot Instructions — Funifier Project
2
2
 
3
- ## Code Quality Persona
4
-
5
- A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
6
-
7
- ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
8
-
9
- 1. **Analise cuidadosamente o problema ou o código existente.**
10
- 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
11
- 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
12
- 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
13
- 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
14
- - **SOLID**
15
- - **DRY (Don't Repeat Yourself)**
16
- - **KISS (Keep It Simple, Stupid)**
17
- - **YAGNI (You Aren't Gonna Need It)**
18
-
19
- Só então prossiga com a implementação.
20
-
21
- > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos — podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
22
-
23
- ---
24
-
25
3
  ## Project: Funifier Gamification Platform
26
4
 
27
5
  Documentation source of truth: `datasource-funifier-docs/`
@@ -34,30 +12,49 @@ npx funifier-mcp search "<query>" --top 5 --min-score 0.3
34
12
 
35
13
  ### Skill workflows
36
14
 
37
- Detailed guided workflows live in `skills/<skill-id>/SKILL.md`:
38
-
39
- | Skill | When to use |
40
- |-------|-------------|
41
- | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
42
- | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
43
- | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
44
- | `/funifier-create-challenge` | Create a Funifier challenge — missions with action rules and point rewards |
45
- | `/funifier-create-action` | Create a Funifier action — define trackable player behaviors with attributes |
46
- | `/funifier-create-point` | Create a Funifier point category — XP, coins, or custom metrics |
47
- | `/funifier-create-level` | Create Funifier levels — progression system based on accumulated points |
48
- | `/funifier-create-leaderboard` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
49
- | `/funifier-create-quiz` | Create a Funifier quiz — questionnaires with multiple-choice questions |
50
- | `/funifier-create-virtual-good` | Create a Funifier virtual good — catalog items players can purchase with points |
51
- | `/funifier-create-custom-page` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
52
- | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API — authentication, data fetching, and aggregate consumption |
53
- | `/funifier-debug` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
54
- | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
15
+ Detailed guided workflows live in `skills/funifier/references/`:
16
+
17
+ | Reference | When to use |
18
+ |-----------|-------------|
19
+ | `skills/funifier/references/create-trigger.md` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
20
+ | `skills/funifier/references/create-scheduler.md` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
21
+ | `skills/funifier/references/create-aggregate.md` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
22
+ | `skills/funifier/references/create-challenge.md` | Create a Funifier challenge — missions with action rules and point rewards |
23
+ | `skills/funifier/references/create-action.md` | Create a Funifier action — define trackable player behaviors with attributes |
24
+ | `skills/funifier/references/create-point.md` | Create a Funifier point category — XP, coins, or custom metrics |
25
+ | `skills/funifier/references/create-level.md` | Create Funifier levels — progression system based on accumulated points |
26
+ | `skills/funifier/references/create-leaderboard.md` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
27
+ | `skills/funifier/references/create-quiz.md` | Create a Funifier quiz — questionnaires with multiple-choice questions |
28
+ | `skills/funifier/references/create-virtual-good.md` | Create a Funifier virtual good — catalog items players can purchase with points |
29
+ | `skills/funifier/references/create-custom-page.md` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
30
+ | `skills/funifier/references/implement-frontend.md` | Implement frontend code that consumes the Funifier API — authentication, data fetching, aggregate consumption, and static hosting on Funifier subdomain |
31
+ | `skills/funifier/references/debug.md` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
32
+ | `skills/funifier/references/help.md` | Get help with Funifier — routes to the right documentation or skill based on your question |
33
+ | `skills/funifier/references/manage-player.md` | Register and manage Funifier players — CRUD workflow for participant onboarding, team assignment, extra-field management, and status queries; use at the start of every project to set up participants |
34
+ | `skills/funifier/references/manage-team.md` | Create and manage Funifier teams — group players for collective challenges, team rankings, and collaborative goals; use when organizing players into competing or collaborating groups, not when only individual player setup is needed |
35
+ | `skills/funifier/references/create-competition.md` | Create a Funifier competition — timed ranking contests with player enrollment, position-based rewards, and execution; use when you need player sign-up, prizes by finish position, or a scheduled end date, not when an always-on leaderboard is enough |
36
+ | `skills/funifier/references/create-folder.md` | Create a Funifier learning trail (folder) — hierarchical courses with content types, progress tracking, conditional unlock policies, and trigger events; use when structuring sequenced training journeys, not when standalone challenges are enough |
37
+ | `skills/funifier/references/create-lottery.md` | Create a Funifier lottery — ticket-based prize draws with configurable draw dates, max winners, and rewards; use when running promotional prize drawings where players earn tickets, not when probability-based instant games are needed (use mystery box) |
38
+ | `skills/funifier/references/create-mystery.md` | Create a Funifier mystery box — probability-based instant games (spin wheel, scratch card, coin flip) with configurable odds and rewards; use for random reward mechanics, not for ticket-based draws with scheduled dates (use lottery) |
39
+ | `skills/funifier/references/create-story.md` | Create a Funifier interactive story — branching narratives with player choices, scenes, and media for training or campaigns; use when building choose-your-own-adventure experiences, not when a linear quiz or folder trail is sufficient |
40
+ | `skills/funifier/references/create-crossword.md` | Create a Funifier crossword puzzle game — themed word games with custom clues and grid positions for educational onboarding or marketing; use when building interactive word-based games, not when a multiple-choice quiz is enough |
41
+ | `skills/funifier/references/create-notification.md` | Create a Funifier notification — standalone automated player feedback messages for game events; use when managing notification records directly via API, not when configuring notifications inline within challenge or competition payloads |
42
+ | `skills/funifier/references/create-lastmile.md` | Create a Funifier last-mile notification — motivational messages triggered when a player reaches a configured progress threshold near a challenge goal; use to boost completion rates, not as a general notification system |
43
+ | `skills/funifier/references/create-webhook.md` | Create a Funifier webhook — push real-time event payloads to external endpoints (BI, CRM, Slack, Teams); use when external systems need event-driven data from Funifier, not when in-app live updates are needed (use websocket) |
44
+ | `skills/funifier/references/create-websocket.md` | Create a Funifier websocket configuration — real-time bidirectional communication for live competitions, instant player feedback, and chat; use for in-app live updates, not for pushing to external systems (use webhook) |
45
+ | `skills/funifier/references/create-widget.md` | Create a Funifier widget — embeddable visual components (rankings, challenge lists, player status, virtual stores) for integrating gamification displays into existing web systems like intranets, CRMs, or LMS platforms |
46
+ | `skills/funifier/references/create-swap.md` | Create a Funifier swap — player-to-player trade offers for items or points with counter-proposal support; use when enabling peer trading or social exchange mechanics, not when a standard virtual good store purchase is sufficient |
47
+ | `skills/funifier/references/create-custom-object.md` | Create and manage Funifier custom objects — domain-specific collections with the __c suffix for storing business entities (products, venues, categories) that do not fit standard modules; accessible via API, triggers, and schedulers |
48
+ | `skills/funifier/references/configure-security.md` | Configure Funifier security settings — roles, scopes, app tokens, and auth parameters; use when setting up access control, fixing missing database scope errors, or configuring token expiry; not for writing frontend login code (use funifier-implement-frontend) |
49
+ | `skills/funifier/references/import-csv.md` | Import or export Funifier platform data via CSV — bulk player import, performance export, and cross-system data migration; use when loading or extracting large datasets, not for individual record CRUD or media file uploads (use funifier-upload-file) |
50
+ | `skills/funifier/references/upload-file.md` | Upload files to Funifier — images and documents for player avatars, challenge resources, and visual assets; use when adding media to the platform, not for CSV data import (use funifier-import-csv) or static frontend hosting (use funifier-implement-frontend) |
55
51
 
56
52
  ### Funifier Modules
57
53
 
58
54
  | Module | Description |
59
55
  |--------|-------------|
60
56
  | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
57
+ | Security | Configuração do documento de segurança — apps com app_secret, roles de jogador, escopos, pipeline de autorização e emissão de tokens Bearer |
61
58
  | Player | Cadastro e gestão de utilizadores da aplicação |
62
59
  | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
63
60
  | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
@@ -77,7 +74,7 @@ See `README.md` for MCP configuration.
77
74
 
78
75
  ### Key rules
79
76
 
80
- - **Before any `funifier_*` MCP tool call**, check the Skill Workflows table above — if a skill matches, follow it. Skills contain correct enum values, field references, and examples that prevent common errors.
77
+ - **Before any `funifier_*` MCP tool call**, check the Skill Workflows table above — if a row matches, read the reference file listed. Reference files contain correct enum values, field references, and examples that prevent common errors.
81
78
  - Always search docs before reading them in full.
82
79
  - Never assume patterns from existing live resources — use `datasource-funifier-docs/` as source of truth.
83
80
  - Funifier server-side scripts run in **Groovy** (Java-compatible). No `import` statements — all classes are pre-loaded.
package/AGENTS.md CHANGED
@@ -1,44 +1,34 @@
1
1
  # Funifier Agent Instructions
2
2
 
3
- ## Persona e Qualidade de Código
4
-
5
- A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
6
-
7
- ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
3
+ ## Funifier Platform
8
4
 
9
- 1. **Analise cuidadosamente o problema ou o código existente.**
10
- 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
11
- 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
12
- 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
13
- 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
14
- - **SOLID**
15
- - **DRY (Don't Repeat Yourself)**
16
- - **KISS (Keep It Simple, Stupid)**
17
- - **YAGNI (You Aren't Gonna Need It)**
5
+ This project uses [Funifier](https://funifier.com), a gamification platform. Documentation lives in `datasource-funifier-docs/`.
18
6
 
19
- então prossiga com a implementação.
7
+ <!-- funifier-persona:start -->
8
+ ## Persona e Qualidade de Código
20
9
 
21
- > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
10
+ Atue como um **desenvolvedor de software sênior**, especializado em **código limpo, legível e de fácil manutenção**, seguindo boas práticas da indústria e **evitando overengineering**.
22
11
 
23
- ---
12
+ Ao refatorar ou criar código:
24
13
 
25
- ## Funifier Platform
14
+ 1. Analise o problema ou o código existente.
15
+ 2. Raciocine passo a passo antes de escrever qualquer linha.
16
+ 3. Identifique problemas (refatoração) ou requisitos (código novo).
17
+ 4. Defina prioridades com base em **SOLID**, **DRY**, **KISS** e **YAGNI**.
18
+ 5. Justifique tecnicamente cada decisão.
26
19
 
27
- This project uses [Funifier](https://funifier.com), a gamification platform.
28
- All Funifier documentation lives in `datasource-funifier-docs/`.
20
+ > **IMPORTANTE:** os exemplos da documentação Funifier são ilustrativos — podem usar nomes genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados e mantenha cada função com responsabilidade única.
21
+ <!-- funifier-persona:end -->
29
22
 
30
- ### Finding relevant documentation
23
+ ## Finding documentation
31
24
 
32
- Use the lexical search CLI to find the most relevant files before reading them:
25
+ Search before reading load only the top results, never all docs at once:
33
26
 
34
27
  ```bash
35
- npx funifier-mcp search "<your question or task>"
36
- npx funifier-mcp search "<query>" --skill <skill-id> --top 5 --min-score 0.3
28
+ npx funifier-mcp search "<query>" --top 5 --min-score 0.3
37
29
  ```
38
30
 
39
- Only read files returned with score above the threshold. Avoid loading all docs at once.
40
-
41
- ### MCP Tools (if MCP server is running)
31
+ ## MCP Tools (if MCP server is running)
42
32
 
43
33
  | Tool | Description |
44
34
  |------|-------------|
@@ -53,32 +43,51 @@ Only read files returned with score above the threshold. Avoid loading all docs
53
43
 
54
44
  MCP setup: see `README.md` → "MCP Server Setup".
55
45
 
56
- ### Skill Routing
57
-
58
- | Skill | When to use |
59
- |-------|-------------|
60
- | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
61
- | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
62
- | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
63
- | `/funifier-create-challenge` | Create a Funifier challengemissions with action rules and point rewards |
64
- | `/funifier-create-action` | Create a Funifier actiondefine trackable player behaviors with attributes |
65
- | `/funifier-create-point` | Create a Funifier point category XP, coins, or custom metrics |
66
- | `/funifier-create-level` | Create Funifier levelsprogression system based on accumulated points |
67
- | `/funifier-create-leaderboard` | Create a Funifier leaderboardrankings by points, actions, or attributes |
68
- | `/funifier-create-quiz` | Create a Funifier quizquestionnaires with multiple-choice questions |
69
- | `/funifier-create-virtual-good` | Create a Funifier virtual good catalog items players can purchase with points |
70
- | `/funifier-create-custom-page` | Create a Funifier Studio custom page guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
71
- | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API authentication, data fetching, and aggregate consumption |
72
- | `/funifier-debug` | Debug a Funifier resourcesystematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
73
- | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
74
-
75
- To get detailed workflow guidance for any skill, read the corresponding `skills/<skill-id>/SKILL.md`.
46
+ ## Skill Routing
47
+
48
+ Before any `funifier_*` MCP tool call or Funifier task, find the matching row and **read the referenced file** — it carries the correct enum values, field references, and examples that prevent common errors.
49
+
50
+ | Reference | When to use |
51
+ |-----------|-------------|
52
+ | `skills/funifier/references/create-trigger.md` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
53
+ | `skills/funifier/references/create-scheduler.md` | Create a Funifier schedulerguided workflow from naming and cron expression to Groovy code generation |
54
+ | `skills/funifier/references/create-aggregate.md` | Create a Funifier prepared aggregate guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
55
+ | `skills/funifier/references/create-challenge.md` | Create a Funifier challengemissions with action rules and point rewards |
56
+ | `skills/funifier/references/create-action.md` | Create a Funifier actiondefine trackable player behaviors with attributes |
57
+ | `skills/funifier/references/create-point.md` | Create a Funifier point category XP, coins, or custom metrics |
58
+ | `skills/funifier/references/create-level.md` | Create Funifier levelsprogression system based on accumulated points |
59
+ | `skills/funifier/references/create-leaderboard.md` | Create a Funifier leaderboardrankings by points, actions, or attributes |
60
+ | `skills/funifier/references/create-quiz.md` | Create a Funifier quizquestionnaires with multiple-choice questions |
61
+ | `skills/funifier/references/create-virtual-good.md` | Create a Funifier virtual good catalog items players can purchase with points |
62
+ | `skills/funifier/references/create-custom-page.md` | Create a Funifier Studio custom page guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
63
+ | `skills/funifier/references/implement-frontend.md` | Implement frontend code that consumes the Funifier API authentication, data fetching, aggregate consumption, and static hosting on Funifier subdomain |
64
+ | `skills/funifier/references/debug.md` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
65
+ | `skills/funifier/references/help.md` | Get help with Funifier routes to the right documentation or skill based on your question |
66
+ | `skills/funifier/references/manage-player.md` | Register and manage Funifier players — CRUD workflow for participant onboarding, team assignment, extra-field management, and status queries; use at the start of every project to set up participants |
67
+ | `skills/funifier/references/manage-team.md` | Create and manage Funifier teams — group players for collective challenges, team rankings, and collaborative goals; use when organizing players into competing or collaborating groups, not when only individual player setup is needed |
68
+ | `skills/funifier/references/create-competition.md` | Create a Funifier competition — timed ranking contests with player enrollment, position-based rewards, and execution; use when you need player sign-up, prizes by finish position, or a scheduled end date, not when an always-on leaderboard is enough |
69
+ | `skills/funifier/references/create-folder.md` | Create a Funifier learning trail (folder) — hierarchical courses with content types, progress tracking, conditional unlock policies, and trigger events; use when structuring sequenced training journeys, not when standalone challenges are enough |
70
+ | `skills/funifier/references/create-lottery.md` | Create a Funifier lottery — ticket-based prize draws with configurable draw dates, max winners, and rewards; use when running promotional prize drawings where players earn tickets, not when probability-based instant games are needed (use mystery box) |
71
+ | `skills/funifier/references/create-mystery.md` | Create a Funifier mystery box — probability-based instant games (spin wheel, scratch card, coin flip) with configurable odds and rewards; use for random reward mechanics, not for ticket-based draws with scheduled dates (use lottery) |
72
+ | `skills/funifier/references/create-story.md` | Create a Funifier interactive story — branching narratives with player choices, scenes, and media for training or campaigns; use when building choose-your-own-adventure experiences, not when a linear quiz or folder trail is sufficient |
73
+ | `skills/funifier/references/create-crossword.md` | Create a Funifier crossword puzzle game — themed word games with custom clues and grid positions for educational onboarding or marketing; use when building interactive word-based games, not when a multiple-choice quiz is enough |
74
+ | `skills/funifier/references/create-notification.md` | Create a Funifier notification — standalone automated player feedback messages for game events; use when managing notification records directly via API, not when configuring notifications inline within challenge or competition payloads |
75
+ | `skills/funifier/references/create-lastmile.md` | Create a Funifier last-mile notification — motivational messages triggered when a player reaches a configured progress threshold near a challenge goal; use to boost completion rates, not as a general notification system |
76
+ | `skills/funifier/references/create-webhook.md` | Create a Funifier webhook — push real-time event payloads to external endpoints (BI, CRM, Slack, Teams); use when external systems need event-driven data from Funifier, not when in-app live updates are needed (use websocket) |
77
+ | `skills/funifier/references/create-websocket.md` | Create a Funifier websocket configuration — real-time bidirectional communication for live competitions, instant player feedback, and chat; use for in-app live updates, not for pushing to external systems (use webhook) |
78
+ | `skills/funifier/references/create-widget.md` | Create a Funifier widget — embeddable visual components (rankings, challenge lists, player status, virtual stores) for integrating gamification displays into existing web systems like intranets, CRMs, or LMS platforms |
79
+ | `skills/funifier/references/create-swap.md` | Create a Funifier swap — player-to-player trade offers for items or points with counter-proposal support; use when enabling peer trading or social exchange mechanics, not when a standard virtual good store purchase is sufficient |
80
+ | `skills/funifier/references/create-custom-object.md` | Create and manage Funifier custom objects — domain-specific collections with the __c suffix for storing business entities (products, venues, categories) that do not fit standard modules; accessible via API, triggers, and schedulers |
81
+ | `skills/funifier/references/configure-security.md` | Configure Funifier security settings — roles, scopes, app tokens, and auth parameters; use when setting up access control, fixing missing database scope errors, or configuring token expiry; not for writing frontend login code (use funifier-implement-frontend) |
82
+ | `skills/funifier/references/import-csv.md` | Import or export Funifier platform data via CSV — bulk player import, performance export, and cross-system data migration; use when loading or extracting large datasets, not for individual record CRUD or media file uploads (use funifier-upload-file) |
83
+ | `skills/funifier/references/upload-file.md` | Upload files to Funifier — images and documents for player avatars, challenge resources, and visual assets; use when adding media to the platform, not for CSV data import (use funifier-import-csv) or static frontend hosting (use funifier-implement-frontend) |
76
84
 
77
85
  ## Funifier Modules
78
86
 
79
87
  | Module | Description |
80
88
  |--------|-------------|
81
89
  | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
90
+ | Security | Configuração do documento de segurança — apps com app_secret, roles de jogador, escopos, pipeline de autorização e emissão de tokens Bearer |
82
91
  | Player | Cadastro e gestão de utilizadores da aplicação |
83
92
  | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
84
93
  | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
@@ -91,8 +100,6 @@ To get detailed workflow guidance for any skill, read the corresponding `skills/
91
100
 
92
101
  ## Key Rules
93
102
 
94
- - **Before any `funifier_*` MCP tool call**, check the Skill Routing table above — if a skill matches, follow it. Skills contain correct enum values, field references, and examples that prevent common errors.
95
- - **Search before reading**: always run `funifier-mcp search` first, then read only the top results.
96
103
  - **Never list all MCP resources** without a `search` parameter — always filter.
97
104
  - **Docs are authoritative for patterns**: never infer patterns from existing live resources.
98
105
  - **Run `npm run build:skills`** after editing any file in `datasource-funifier-docs/`.
package/README.md CHANGED
@@ -8,7 +8,7 @@ Funifier AI toolkit — API client, MCP server, and AI assistant skills for the
8
8
  |-----------|-------------|
9
9
  | **API Client** | Pure Node.js client for the Funifier REST API (80+ methods, 18 resource types) |
10
10
  | **MCP Server** | Model Context Protocol server — 8 tools, 3 prompts, documentation resources |
11
- | **Skills** | 15 guided workflows for Claude Code, Codex, OpenCode, Copilot, Continue, and Cursor |
11
+ | **Skills** | 32 guided workflows for Claude Code, Codex, OpenCode, Copilot, Continue, and Cursor |
12
12
  | **CLI** | `npx funifier-mcp@latest init` (interactive setup) and `npx funifier-mcp search` (doc search) |
13
13
 
14
14
  ---
@@ -38,7 +38,7 @@ Lexical search across all Funifier docs — returns ranked file paths so you onl
38
38
 
39
39
  ```bash
40
40
  npx funifier-mcp search "trigger event groovy before_create"
41
- npx funifier-mcp search "quiz question answer" --skill funifier-create-quiz
41
+ npx funifier-mcp search "quiz question answer"
42
42
  npx funifier-mcp search "leaderboard ranking" --top 5 --min-score 0.3
43
43
  ```
44
44
 
@@ -152,12 +152,10 @@ npm install funifier-mcp
152
152
  cp -r node_modules/funifier-mcp/skills/* .claude/skills/
153
153
  ```
154
154
 
155
- Invoke any skill with `/funifier-<name>` in Claude Code:
155
+ Start with `/funifier` in Claude Code — the router skill routes to the right workflow:
156
156
 
157
157
  ```
158
- /funifier-create-trigger
159
- /funifier-debug
160
- /funifier-help
158
+ /funifier
161
159
  ```
162
160
 
163
161
  ### Codex CLI / OpenCode
@@ -193,22 +191,42 @@ Cursor discovers and applies `.mdc` files in `.cursor/rules/` automatically.
193
191
 
194
192
  ## Available Workflows
195
193
 
196
- | Skill | Description |
197
- |-------|-------------|
198
- | `funifier-help` | Documentation router and guidance |
199
- | `funifier-debug` | Systematic debugging workflow |
200
- | `funifier-create-trigger` | Create server-side event handlers (Groovy) |
201
- | `funifier-create-scheduler` | Create scheduled Groovy jobs |
202
- | `funifier-create-aggregate` | Create MongoDB aggregate pipelines |
203
- | `funifier-create-custom-page` | Create Studio admin pages (AngularJS) |
204
- | `funifier-create-action` | Create trackable player actions |
205
- | `funifier-create-challenge` | Create missions with rewards |
206
- | `funifier-create-point` | Create point categories |
207
- | `funifier-create-level` | Create level progression |
208
- | `funifier-create-leaderboard` | Create rankings |
209
- | `funifier-create-quiz` | Create quizzes |
210
- | `funifier-create-virtual-good` | Create virtual store items |
211
- | `funifier-implement-frontend` | Build frontend consuming Funifier API |
194
+ All workflows are accessible through a single `/funifier` skill. The skill router loads in every conversation (one description) and loads the specific workflow file on demand.
195
+
196
+ | Workflow | Reference file |
197
+ |----------|----------------|
198
+ | Help and routing | `references/help.md` |
199
+ | Debug any resource | `references/debug.md` |
200
+ | Create trigger | `references/create-trigger.md` |
201
+ | Create scheduler | `references/create-scheduler.md` |
202
+ | Create aggregate | `references/create-aggregate.md` |
203
+ | Create custom page | `references/create-custom-page.md` |
204
+ | Create action | `references/create-action.md` |
205
+ | Create challenge | `references/create-challenge.md` |
206
+ | Create point category | `references/create-point.md` |
207
+ | Create level progression | `references/create-level.md` |
208
+ | Create leaderboard | `references/create-leaderboard.md` |
209
+ | Create quiz | `references/create-quiz.md` |
210
+ | Create virtual good | `references/create-virtual-good.md` |
211
+ | Implement frontend | `references/implement-frontend.md` |
212
+ | Manage player | `references/manage-player.md` |
213
+ | Manage team | `references/manage-team.md` |
214
+ | Create competition | `references/create-competition.md` |
215
+ | Create folder | `references/create-folder.md` |
216
+ | Create lottery | `references/create-lottery.md` |
217
+ | Create mystery box | `references/create-mystery.md` |
218
+ | Create story | `references/create-story.md` |
219
+ | Create crossword | `references/create-crossword.md` |
220
+ | Create notification | `references/create-notification.md` |
221
+ | Create last mile | `references/create-lastmile.md` |
222
+ | Create webhook | `references/create-webhook.md` |
223
+ | Create websocket | `references/create-websocket.md` |
224
+ | Create widget | `references/create-widget.md` |
225
+ | Create swap | `references/create-swap.md` |
226
+ | Create custom object | `references/create-custom-object.md` |
227
+ | Configure security | `references/configure-security.md` |
228
+ | Import CSV | `references/import-csv.md` |
229
+ | Upload file | `references/upload-file.md` |
212
230
 
213
231
  ---
214
232