conectese 0.1.14

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 (260) hide show
  1. package/README.md +265 -0
  2. package/_conectese/.conectese-version +1 -0
  3. package/_conectese/config/playwright.config.json +11 -0
  4. package/_conectese/core/architect.agent.yaml +110 -0
  5. package/_conectese/core/best-practices/_catalog.yaml +116 -0
  6. package/_conectese/core/best-practices/blog-post.md +132 -0
  7. package/_conectese/core/best-practices/blog-seo.md +127 -0
  8. package/_conectese/core/best-practices/copywriting.md +426 -0
  9. package/_conectese/core/best-practices/data-analysis.md +401 -0
  10. package/_conectese/core/best-practices/email-newsletter.md +118 -0
  11. package/_conectese/core/best-practices/email-sales.md +110 -0
  12. package/_conectese/core/best-practices/image-design.md +348 -0
  13. package/_conectese/core/best-practices/instagram-feed.md +235 -0
  14. package/_conectese/core/best-practices/instagram-reels.md +112 -0
  15. package/_conectese/core/best-practices/instagram-stories.md +107 -0
  16. package/_conectese/core/best-practices/linkedin-article.md +116 -0
  17. package/_conectese/core/best-practices/linkedin-post.md +121 -0
  18. package/_conectese/core/best-practices/researching.md +349 -0
  19. package/_conectese/core/best-practices/review.md +269 -0
  20. package/_conectese/core/best-practices/social-networks-publishing.md +294 -0
  21. package/_conectese/core/best-practices/strategist.md +344 -0
  22. package/_conectese/core/best-practices/technical-writing.md +365 -0
  23. package/_conectese/core/best-practices/twitter-post.md +105 -0
  24. package/_conectese/core/best-practices/twitter-thread.md +122 -0
  25. package/_conectese/core/best-practices/whatsapp-broadcast.md +107 -0
  26. package/_conectese/core/best-practices/youtube-script.md +122 -0
  27. package/_conectese/core/best-practices/youtube-shorts.md +112 -0
  28. package/_conectese/core/prompts/build.prompt.md +547 -0
  29. package/_conectese/core/prompts/design.prompt.md +469 -0
  30. package/_conectese/core/prompts/discovery.prompt.md +269 -0
  31. package/_conectese/core/prompts/sherlock-instagram.md +123 -0
  32. package/_conectese/core/prompts/sherlock-linkedin.md +73 -0
  33. package/_conectese/core/prompts/sherlock-shared.md +684 -0
  34. package/_conectese/core/prompts/sherlock-twitter.md +78 -0
  35. package/_conectese/core/prompts/sherlock-youtube.md +85 -0
  36. package/_conectese/core/runner.pipeline.md +535 -0
  37. package/_conectese/core/skills.engine.md +381 -0
  38. package/agents/data-extractor/AGENT.md +13 -0
  39. package/agents/direito-adaneiro/AGENT.md +18 -0
  40. package/agents/direito-administrativo/AGENT.md +18 -0
  41. package/agents/direito-aeroporta-rio/AGENT.md +18 -0
  42. package/agents/direito-agra-rio/AGENT.md +18 -0
  43. package/agents/direito-ambiental/AGENT.md +18 -0
  44. package/agents/direito-banca-rio/AGENT.md +18 -0
  45. package/agents/direito-civil/AGENT.md +18 -0
  46. package/agents/direito-constitcional/AGENT.md +18 -0
  47. package/agents/direito-da-crianc-a-e-do-adolescente-eca/AGENT.md +18 -0
  48. package/agents/direito-da-propriedade-intelectal/AGENT.md +18 -0
  49. package/agents/direito-de-ami-lia/AGENT.md +18 -0
  50. package/agents/direito-de-tra-nsito/AGENT.md +18 -0
  51. package/agents/direito-desportivo/AGENT.md +18 -0
  52. package/agents/direito-digital/AGENT.md +18 -0
  53. package/agents/direito-do-consmidor/AGENT.md +18 -0
  54. package/agents/direito-do-trabalho/AGENT.md +18 -0
  55. package/agents/direito-econo-mico/AGENT.md +18 -0
  56. package/agents/direito-eleitoral/AGENT.md +18 -0
  57. package/agents/direito-empresarial/AGENT.md +18 -0
  58. package/agents/direito-imobilia-rio/AGENT.md +18 -0
  59. package/agents/direito-inanceiro/AGENT.md +18 -0
  60. package/agents/direito-internacional/AGENT.md +18 -0
  61. package/agents/direito-mari-timo/AGENT.md +18 -0
  62. package/agents/direito-me-dico-e-da-sa-de/AGENT.md +18 -0
  63. package/agents/direito-militar/AGENT.md +18 -0
  64. package/agents/direito-ndia-rio/AGENT.md +18 -0
  65. package/agents/direito-notarial-e-registral/AGENT.md +18 -0
  66. package/agents/direito-penal/AGENT.md +18 -0
  67. package/agents/direito-previdencia-rio/AGENT.md +18 -0
  68. package/agents/direito-processal-civil/AGENT.md +18 -0
  69. package/agents/direito-processal-do-trabalho/AGENT.md +18 -0
  70. package/agents/direito-processal-militar/AGENT.md +18 -0
  71. package/agents/direito-processal-penal/AGENT.md +18 -0
  72. package/agents/direito-rbani-stico/AGENT.md +18 -0
  73. package/agents/direito-secrita-rio/AGENT.md +18 -0
  74. package/agents/direito-sindical/AGENT.md +18 -0
  75. package/agents/direito-societa-rio/AGENT.md +18 -0
  76. package/agents/direito-tribta-rio/AGENT.md +18 -0
  77. package/agents/direitos-hmanos/AGENT.md +18 -0
  78. package/agents/legal-analyst/AGENT.md +16 -0
  79. package/agents/legal-synthesizer/AGENT.md +13 -0
  80. package/agents/lgpd-anonymizer/AGENT.md +14 -0
  81. package/agents/lgpd-restorer/AGENT.md +14 -0
  82. package/agents/task-router/AGENT.md +13 -0
  83. package/bin/conectese.js +73 -0
  84. package/dashboard/index.html +12 -0
  85. package/dashboard/package-lock.json +1971 -0
  86. package/dashboard/package.json +28 -0
  87. package/dashboard/public/assets/avatars/Female1_1wave.png +0 -0
  88. package/dashboard/public/assets/avatars/Female1_2wave.png +0 -0
  89. package/dashboard/public/assets/avatars/Female1_blink.png +0 -0
  90. package/dashboard/public/assets/avatars/Female1_talk.png +0 -0
  91. package/dashboard/public/assets/avatars/Female2_1wave.png +0 -0
  92. package/dashboard/public/assets/avatars/Female2_2wave.png +0 -0
  93. package/dashboard/public/assets/avatars/Female2_blink.png +0 -0
  94. package/dashboard/public/assets/avatars/Female2_talk.png +0 -0
  95. package/dashboard/public/assets/avatars/Female3_blink.png +0 -0
  96. package/dashboard/public/assets/avatars/Female3_talk.png +0 -0
  97. package/dashboard/public/assets/avatars/Female3_wave.png +0 -0
  98. package/dashboard/public/assets/avatars/Female4_blink.png +0 -0
  99. package/dashboard/public/assets/avatars/Female4_talk.png +0 -0
  100. package/dashboard/public/assets/avatars/Female4_wave.png +0 -0
  101. package/dashboard/public/assets/avatars/Female5_blink.png +0 -0
  102. package/dashboard/public/assets/avatars/Female5_talk.png +0 -0
  103. package/dashboard/public/assets/avatars/Female5_wave.png +0 -0
  104. package/dashboard/public/assets/avatars/Female6_blink.png +0 -0
  105. package/dashboard/public/assets/avatars/Female6_talk.png +0 -0
  106. package/dashboard/public/assets/avatars/Female6_wave.png +0 -0
  107. package/dashboard/public/assets/avatars/Male1_1wave.png +0 -0
  108. package/dashboard/public/assets/avatars/Male1_2wave.png +0 -0
  109. package/dashboard/public/assets/avatars/Male1_blink.png +0 -0
  110. package/dashboard/public/assets/avatars/Male1_talk.png +0 -0
  111. package/dashboard/public/assets/avatars/Male2_1wave.png +0 -0
  112. package/dashboard/public/assets/avatars/Male2_2wave.png +0 -0
  113. package/dashboard/public/assets/avatars/Male2_blink.png +0 -0
  114. package/dashboard/public/assets/avatars/Male2_talk.png +0 -0
  115. package/dashboard/public/assets/avatars/Male3_blink.png +0 -0
  116. package/dashboard/public/assets/avatars/Male3_talk.png +0 -0
  117. package/dashboard/public/assets/avatars/Male3_wave.png +0 -0
  118. package/dashboard/public/assets/avatars/Male4_blink.png +0 -0
  119. package/dashboard/public/assets/avatars/Male4_talk.png +0 -0
  120. package/dashboard/public/assets/avatars/Male4_wave.png +0 -0
  121. package/dashboard/public/assets/desks/desktop_set_black_down.png +0 -0
  122. package/dashboard/public/assets/desks/desktop_set_black_down_coding-1.png +0 -0
  123. package/dashboard/public/assets/desks/desktop_set_black_down_coding.png +0 -0
  124. package/dashboard/public/assets/desks/desktop_set_black_up.png +0 -0
  125. package/dashboard/public/assets/desks/desktop_set_white_down.png +0 -0
  126. package/dashboard/public/assets/desks/desktop_set_white_down_coding-1.png +0 -0
  127. package/dashboard/public/assets/desks/desktop_set_white_down_coding.png +0 -0
  128. package/dashboard/public/assets/desks/desktop_set_white_up.png +0 -0
  129. package/dashboard/public/assets/furniture/armchair_tan.png +0 -0
  130. package/dashboard/public/assets/furniture/armchair_tan_down.png +0 -0
  131. package/dashboard/public/assets/furniture/backpack_blue.png +0 -0
  132. package/dashboard/public/assets/furniture/backpack_red.png +0 -0
  133. package/dashboard/public/assets/furniture/blinds.png +0 -0
  134. package/dashboard/public/assets/furniture/blinds_large_closed_white.png +0 -0
  135. package/dashboard/public/assets/furniture/bookshelf.png +0 -0
  136. package/dashboard/public/assets/furniture/bookshelf_purple_tall.png +0 -0
  137. package/dashboard/public/assets/furniture/bulletin_board.png +0 -0
  138. package/dashboard/public/assets/furniture/clock.png +0 -0
  139. package/dashboard/public/assets/furniture/coffee_mug.png +0 -0
  140. package/dashboard/public/assets/furniture/coffee_mug_blue.png +0 -0
  141. package/dashboard/public/assets/furniture/coffee_table.png +0 -0
  142. package/dashboard/public/assets/furniture/coffeepot_right.png +0 -0
  143. package/dashboard/public/assets/furniture/coffeetable_black_horizontal.png +0 -0
  144. package/dashboard/public/assets/furniture/couch.png +0 -0
  145. package/dashboard/public/assets/furniture/couch_tan_down.png +0 -0
  146. package/dashboard/public/assets/furniture/cushion_blue.png +0 -0
  147. package/dashboard/public/assets/furniture/cushion_tan.png +0 -0
  148. package/dashboard/public/assets/furniture/desk_wood.png +0 -0
  149. package/dashboard/public/assets/furniture/fancy_rug.png +0 -0
  150. package/dashboard/public/assets/furniture/fancy_rug_wide.png +0 -0
  151. package/dashboard/public/assets/furniture/flowers1.png +0 -0
  152. package/dashboard/public/assets/furniture/flowers2.png +0 -0
  153. package/dashboard/public/assets/furniture/lamp_tan.png +0 -0
  154. package/dashboard/public/assets/furniture/lantern.png +0 -0
  155. package/dashboard/public/assets/furniture/monstera.png +0 -0
  156. package/dashboard/public/assets/furniture/monstera_small.png +0 -0
  157. package/dashboard/public/assets/furniture/picture_frame.png +0 -0
  158. package/dashboard/public/assets/furniture/plant1.png +0 -0
  159. package/dashboard/public/assets/furniture/plant2.png +0 -0
  160. package/dashboard/public/assets/furniture/plant3.png +0 -0
  161. package/dashboard/public/assets/furniture/plant_poof.png +0 -0
  162. package/dashboard/public/assets/furniture/plant_spindly.png +0 -0
  163. package/dashboard/public/assets/furniture/poster_blue.png +0 -0
  164. package/dashboard/public/assets/furniture/rug.png +0 -0
  165. package/dashboard/public/assets/furniture/succulent_blue.png +0 -0
  166. package/dashboard/public/assets/furniture/succulent_green.png +0 -0
  167. package/dashboard/public/assets/furniture/treasurechest_closed_gold.png +0 -0
  168. package/dashboard/public/assets/furniture/water_cooler_better.png +0 -0
  169. package/dashboard/public/assets/furniture/whiteboard.png +0 -0
  170. package/dashboard/public/assets/furniture/whiteboard_stand_graph.png +0 -0
  171. package/dashboard/public/assets/furniture/window_blinds_open.png +0 -0
  172. package/dashboard/src/App.tsx +46 -0
  173. package/dashboard/src/components/SquadCard.tsx +47 -0
  174. package/dashboard/src/components/SquadSelector.tsx +61 -0
  175. package/dashboard/src/components/StatusBadge.tsx +32 -0
  176. package/dashboard/src/components/StatusBar.tsx +97 -0
  177. package/dashboard/src/hooks/useSquadSocket.ts +135 -0
  178. package/dashboard/src/lib/formatTime.ts +16 -0
  179. package/dashboard/src/lib/normalizeState.ts +25 -0
  180. package/dashboard/src/main.tsx +10 -0
  181. package/dashboard/src/office/AgentSprite.ts +241 -0
  182. package/dashboard/src/office/OfficeScene.ts +153 -0
  183. package/dashboard/src/office/PhaserGame.tsx +80 -0
  184. package/dashboard/src/office/RoomBuilder.ts +190 -0
  185. package/dashboard/src/office/assetKeys.ts +150 -0
  186. package/dashboard/src/office/palette.ts +32 -0
  187. package/dashboard/src/plugin/squadWatcher.ts +233 -0
  188. package/dashboard/src/store/useSquadStore.ts +56 -0
  189. package/dashboard/src/styles/globals.css +36 -0
  190. package/dashboard/src/types/state.ts +63 -0
  191. package/dashboard/src/vite-env.d.ts +1 -0
  192. package/dashboard/test-results/.last-run.json +4 -0
  193. package/dashboard/tsconfig.json +24 -0
  194. package/dashboard/tsconfig.tsbuildinfo +1 -0
  195. package/dashboard/vite.config.ts +13 -0
  196. package/package.json +53 -0
  197. package/skills/README.md +63 -0
  198. package/skills/apify/SKILL.md +55 -0
  199. package/skills/blotato/SKILL.md +63 -0
  200. package/skills/canva/SKILL.md +60 -0
  201. package/skills/conectese-agent-creator/SKILL.md +192 -0
  202. package/skills/conectese-skill-creator/SKILL.md +407 -0
  203. package/skills/conectese-skill-creator/agents/analyzer.md +274 -0
  204. package/skills/conectese-skill-creator/agents/comparator.md +202 -0
  205. package/skills/conectese-skill-creator/agents/grader.md +223 -0
  206. package/skills/conectese-skill-creator/assets/eval_review.html +146 -0
  207. package/skills/conectese-skill-creator/eval-viewer/generate_review.py +471 -0
  208. package/skills/conectese-skill-creator/eval-viewer/viewer.html +1325 -0
  209. package/skills/conectese-skill-creator/references/schemas.md +430 -0
  210. package/skills/conectese-skill-creator/references/skill-format.md +235 -0
  211. package/skills/conectese-skill-creator/scripts/__init__.py +0 -0
  212. package/skills/conectese-skill-creator/scripts/aggregate_benchmark.py +401 -0
  213. package/skills/conectese-skill-creator/scripts/quick_validate.py +103 -0
  214. package/skills/conectese-skill-creator/scripts/run_eval.py +310 -0
  215. package/skills/conectese-skill-creator/scripts/utils.py +47 -0
  216. package/skills/image-ai-generator/SKILL.md +124 -0
  217. package/skills/image-ai-generator/scripts/generate.py +175 -0
  218. package/skills/image-creator/SKILL.md +155 -0
  219. package/skills/image-fetcher/SKILL.md +91 -0
  220. package/skills/instagram-publisher/SKILL.md +119 -0
  221. package/skills/instagram-publisher/scripts/publish.js +165 -0
  222. package/skills/resend/SKILL.md +80 -0
  223. package/skills/template-designer/SKILL.md +201 -0
  224. package/skills/template-designer/base-templates/model-a.html +27 -0
  225. package/skills/template-designer/base-templates/model-b.html +31 -0
  226. package/skills/template-designer/base-templates/model-c.html +42 -0
  227. package/src/agents-cli.js +158 -0
  228. package/src/agents.js +134 -0
  229. package/src/i18n.js +48 -0
  230. package/src/init.js +341 -0
  231. package/src/locales/en.json +73 -0
  232. package/src/locales/es.json +72 -0
  233. package/src/locales/pt-BR.json +72 -0
  234. package/src/logger.js +38 -0
  235. package/src/prompt.js +46 -0
  236. package/src/readme/README.md +119 -0
  237. package/src/runs.js +90 -0
  238. package/src/skills-cli.js +157 -0
  239. package/src/skills.js +146 -0
  240. package/src/update.js +169 -0
  241. package/templates/_conectese/.conectese-version +1 -0
  242. package/templates/_conectese/_investigations/.gitkeep +0 -0
  243. package/templates/ide-templates/antigravity/.agent/rules/conectese.md +55 -0
  244. package/templates/ide-templates/antigravity/.agent/workflows/conectese.md +102 -0
  245. package/templates/ide-templates/claude-code/.claude/skills/conectese/SKILL.md +182 -0
  246. package/templates/ide-templates/claude-code/.mcp.json +8 -0
  247. package/templates/ide-templates/claude-code/CLAUDE.md +43 -0
  248. package/templates/ide-templates/codex/.agents/skills/conectese/SKILL.md +6 -0
  249. package/templates/ide-templates/codex/AGENTS.md +105 -0
  250. package/templates/ide-templates/cursor/.cursor/commands/conectese.md +9 -0
  251. package/templates/ide-templates/cursor/.cursor/mcp.json +8 -0
  252. package/templates/ide-templates/cursor/.cursor/rules/conectese.mdc +48 -0
  253. package/templates/ide-templates/cursor/.cursorignore +3 -0
  254. package/templates/ide-templates/opencode/.opencode/commands/conectese.md +9 -0
  255. package/templates/ide-templates/opencode/AGENTS.md +105 -0
  256. package/templates/ide-templates/vscode-copilot/.github/prompts/conectese.prompt.md +201 -0
  257. package/templates/ide-templates/vscode-copilot/.vscode/mcp.json +8 -0
  258. package/templates/ide-templates/vscode-copilot/.vscode/settings.json +3 -0
  259. package/templates/package.json +8 -0
  260. package/templates/squads/.gitkeep +0 -0
@@ -0,0 +1,36 @@
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :root {
10
+ --bg-primary: #101018;
11
+ --bg-secondary: #1a1a2e;
12
+ --bg-sidebar: #141422;
13
+ --border: #2a2a3e;
14
+ --text-primary: #e0e0e0;
15
+ --text-secondary: #8888a0;
16
+ --accent-cyan: #00d4ff;
17
+ --accent-green: #00e676;
18
+ --accent-amber: #ffab00;
19
+ --accent-red: #ff5252;
20
+ }
21
+
22
+ html,
23
+ body,
24
+ #root {
25
+ height: 100%;
26
+ width: 100%;
27
+ overflow: hidden;
28
+ font-family: "JetBrains Mono", "Fira Code", monospace;
29
+ background: var(--bg-primary);
30
+ color: var(--text-primary);
31
+ }
32
+
33
+ @keyframes pulse {
34
+ 0%, 100% { opacity: 1; }
35
+ 50% { opacity: 0.4; }
36
+ }
@@ -0,0 +1,63 @@
1
+ // state.json structure — matches Pipeline Runner output
2
+ export interface AgentDesk {
3
+ col: number;
4
+ row: number;
5
+ }
6
+
7
+ export type AgentStatus =
8
+ | "idle"
9
+ | "working"
10
+ | "delivering"
11
+ | "done"
12
+ | "checkpoint";
13
+
14
+ export interface Agent {
15
+ id: string;
16
+ name: string;
17
+ icon: string;
18
+ status: AgentStatus;
19
+ gender?: "male" | "female";
20
+ desk: AgentDesk;
21
+ }
22
+
23
+ export interface Handoff {
24
+ from: string;
25
+ to: string;
26
+ message: string;
27
+ completedAt: string;
28
+ }
29
+
30
+ export type SquadStatus =
31
+ | "idle"
32
+ | "running"
33
+ | "completed"
34
+ | "checkpoint";
35
+
36
+ export interface SquadState {
37
+ squad: string;
38
+ status: SquadStatus;
39
+ step: {
40
+ current: number;
41
+ total: number;
42
+ label: string;
43
+ };
44
+ agents: Agent[];
45
+ handoff: Handoff | null;
46
+ startedAt: string | null;
47
+ updatedAt: string;
48
+ }
49
+
50
+ // Squad metadata from squad.yaml
51
+ export interface SquadInfo {
52
+ code: string;
53
+ name: string;
54
+ description: string;
55
+ icon: string;
56
+ agents: string[]; // agent file paths
57
+ }
58
+
59
+ // WebSocket messages
60
+ export type WsMessage =
61
+ | { type: "SNAPSHOT"; squads: SquadInfo[]; activeStates: Record<string, SquadState> }
62
+ | { type: "SQUAD_UPDATE"; squad: string; state: SquadState }
63
+ | { type: "SQUAD_INACTIVE"; squad: string };
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,4 @@
1
+ {
2
+ "status": "failed",
3
+ "failedTests": []
4
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "paths": {
20
+ "@/*": ["./src/*"]
21
+ }
22
+ },
23
+ "include": ["src"]
24
+ }
@@ -0,0 +1 @@
1
+ {"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/squadcard.tsx","./src/components/squadselector.tsx","./src/components/statusbadge.tsx","./src/components/statusbar.tsx","./src/hooks/usesquadsocket.ts","./src/lib/formattime.ts","./src/lib/normalizestate.ts","./src/office/agentsprite.ts","./src/office/officescene.ts","./src/office/phasergame.tsx","./src/office/roombuilder.ts","./src/office/assetkeys.ts","./src/office/palette.ts","./src/plugin/squadwatcher.ts","./src/store/usesquadstore.ts","./src/types/state.ts"],"version":"5.9.3"}
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from "vite";
2
+ import react from "@vitejs/plugin-react";
3
+ import path from "node:path";
4
+ import { squadWatcherPlugin } from "./src/plugin/squadWatcher";
5
+
6
+ export default defineConfig({
7
+ plugins: [react(), squadWatcherPlugin()],
8
+ resolve: {
9
+ alias: {
10
+ "@": path.resolve(__dirname, "./src"),
11
+ },
12
+ },
13
+ });
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "conectese",
3
+ "version": "0.1.14",
4
+ "description": "Multi-agent orchestration framework — create AI squads that work together",
5
+ "type": "module",
6
+ "bin": {
7
+ "conectese": "bin/conectese.js"
8
+ },
9
+ "scripts": {
10
+ "test": "node --test tests/*.test.js",
11
+ "lint": "eslint src/ bin/ tests/",
12
+ "version": "node -e \"require('fs').writeFileSync('templates/_conectese/.conectese-version', require('./package.json').version + '\\n')\" && git add templates/_conectese/.conectese-version"
13
+ },
14
+ "keywords": [
15
+ "claude-code",
16
+ "ai-agents",
17
+ "multi-agent",
18
+ "orchestration",
19
+ "squads"
20
+ ],
21
+ "author": "Renato Asse (https://github.com/renatoasse)",
22
+ "homepage": "https://github.com/renatoasse/conectese#readme",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/renatoasse/conectese.git"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/renatoasse/conectese/issues"
29
+ },
30
+ "license": "MIT",
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ },
34
+ "files": [
35
+ "bin/",
36
+ "src/",
37
+ "agents/",
38
+ "skills/",
39
+ "templates/",
40
+ "_conectese/",
41
+ "dashboard/"
42
+ ],
43
+ "dependencies": {
44
+ "@inquirer/checkbox": "^5.1.0",
45
+ "@inquirer/input": "^5.0.0",
46
+ "@inquirer/select": "^5.1.0"
47
+ },
48
+ "devDependencies": {
49
+ "@eslint/js": "^10.0.1",
50
+ "eslint": "^10.0.3",
51
+ "globals": "^17.4.0"
52
+ }
53
+ }
@@ -0,0 +1,63 @@
1
+ # Conectese Skill Catalog
2
+
3
+ Browse available skills for your squads. Install any skill with:
4
+
5
+ ```bash
6
+ npx conectese install <skill-name>
7
+ ```
8
+
9
+ ## Available Skills
10
+
11
+ | Skill | Type | Description | Env Vars | Install |
12
+ |-------|------|-------------|----------|---------|
13
+ | [apify](./apify/) | mcp | Web scraping and automation platform. Extract data from any website using pre-built Actors. | `APIFY_TOKEN` | `npx conectese install apify` |
14
+ | [canva](./canva/) | mcp | Create, search, autofill, and export designs from Canva. | _(none -- OAuth)_ | `npx conectese install canva` |
15
+ | [instagram-publisher](./instagram-publisher/) | script | Publish Instagram carousel posts from local JPEG images via the Graph API. | `INSTAGRAM_ACCESS_TOKEN`, `INSTAGRAM_USER_ID` | `npx conectese install instagram-publisher` |
16
+ | [blotato](./blotato/) | mcp | Publish and schedule posts across Instagram, LinkedIn, Twitter/X, TikTok, YouTube, and more. | `BLOTATO_API_KEY` | `npx conectese install blotato` |
17
+ | [resend](./resend/) | mcp | Send emails through Resend — single send, batch, scheduling, attachments, and contact management. | `RESEND_API_KEY` | `npx conectese install resend` |
18
+ | [image-fetcher](./image-fetcher/) | hybrid | Acquire visual assets via web search, live screenshots (Playwright), and user-provided files. | _(none)_ | `npx conectese install image-fetcher` |
19
+ | [image-creator](./image-creator/) | mcp | Render HTML/CSS into production-ready PNG images via Playwright. | _(none)_ | `npx conectese install image-creator` |
20
+ | [image-ai-generator](./image-ai-generator/) | script | Generate AI images via Openrouter API. Test mode (cheap) and production mode (high-quality). Supports reference images for brand consistency. | `OPENROUTER_API_KEY` | `npx conectese install image-ai-generator` |
21
+
22
+ ## Skill Types
23
+
24
+ - **mcp** -- Connects to an external MCP server (stdio or HTTP transport)
25
+ - **script** -- Runs a local script (Node.js, Python, etc.)
26
+ - **hybrid** -- Combines MCP server access with local script capabilities
27
+
28
+ ## Directory Structure
29
+
30
+ Each skill lives in its own folder with a `SKILL.md` file:
31
+
32
+ ```
33
+ skills/
34
+ apify/
35
+ SKILL.md
36
+ canva/
37
+ SKILL.md
38
+ instagram-publisher/
39
+ SKILL.md
40
+ scripts/
41
+ publish.js
42
+ blotato/
43
+ SKILL.md
44
+ resend/
45
+ SKILL.md
46
+ image-fetcher/
47
+ SKILL.md
48
+ image-creator/
49
+ SKILL.md
50
+ image-ai-generator/
51
+ SKILL.md
52
+ scripts/
53
+ generate.py
54
+ ```
55
+
56
+ The `SKILL.md` file contains YAML frontmatter (name, type, version, MCP/script config, env vars, categories) and a Markdown body with usage instructions and available operations.
57
+
58
+ ## Adding a New Skill
59
+
60
+ 1. Create a new folder under `skills/` with the skill ID as the name
61
+ 2. Add a `SKILL.md` file with valid YAML frontmatter and Markdown body
62
+ 3. If the skill includes scripts, place them in a `scripts/` subfolder
63
+ 4. Update this README to include the new skill in the catalog table
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: apify
3
+ description: >
4
+ Web scraping and automation platform. Extract data from any website,
5
+ run pre-built scrapers (Actors), and automate web workflows using
6
+ thousands of ready-made tools from the Apify Store.
7
+ description_pt-BR: >
8
+ Plataforma de web scraping e automação. Extraia dados de qualquer site,
9
+ execute scrapers prontos (Actors) e automatize fluxos de trabalho web
10
+ com milhares de ferramentas da Apify Store.
11
+ description_es: >
12
+ Plataforma de web scraping y automatización. Extrae datos de cualquier sitio web,
13
+ ejecuta scrapers prediseñados (Actors) y automatiza flujos de trabajo web
14
+ con miles de herramientas de la Apify Store.
15
+ type: mcp
16
+ version: "1.0.0"
17
+ mcp:
18
+ server_name: apify
19
+ command: npx
20
+ args: ["-y", "@apify/actors-mcp-server@latest"]
21
+ env:
22
+ - APIFY_TOKEN
23
+ categories: [scraping, data, automation]
24
+ ---
25
+
26
+ # Apify Web Scraper
27
+
28
+ ## When to use
29
+
30
+ Use Apify when you need to extract data from websites, scrape social media profiles, run search engine queries, or automate web data collection workflows. Apify provides thousands of pre-built scrapers (called Actors) that handle common scraping tasks out of the box.
31
+
32
+ ## Instructions
33
+
34
+ You have access to Apify tools for web scraping and data extraction.
35
+
36
+ ### Key capabilities
37
+
38
+ - Use Apify Actors (pre-built scrapers) to extract data from websites
39
+ - Popular Actors: web-scraper, instagram-scraper, google-search-scraper, youtube-scraper, twitter-scraper, tiktok-scraper
40
+ - Each Actor has its own input schema -- check documentation before running
41
+
42
+ ### Best practices
43
+
44
+ - Start with the simplest Actor that meets the need
45
+ - Use `maxItems` to limit results and avoid excessive costs
46
+ - Check Actor pricing before running (some have per-result costs)
47
+ - Parse results and extract only the fields you need
48
+
49
+ ## Available operations
50
+
51
+ - **Run Actor** -- Execute any Apify Actor with custom input parameters
52
+ - **Web Scraping** -- Extract structured data from any website
53
+ - **Social Media Scraping** -- Scrape profiles, posts, and engagement data from Instagram, YouTube, Twitter/X, TikTok
54
+ - **Search Scraping** -- Run Google, Bing, or other search engine queries and collect results
55
+ - **Data Export** -- Retrieve scraped datasets in JSON format
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: blotato
3
+ description: >
4
+ Social media publishing and scheduling platform.
5
+ Publish and schedule posts across Instagram, LinkedIn, Twitter/X,
6
+ TikTok, YouTube, and more. Upload media and monitor post status.
7
+ description_pt-BR: >
8
+ Plataforma de publicação e agendamento em redes sociais.
9
+ Publique e agende posts no Instagram, LinkedIn, Twitter/X,
10
+ TikTok, YouTube e mais. Faça upload de mídia e monitore o status dos posts.
11
+ description_es: >
12
+ Plataforma de publicación y programación en redes sociales.
13
+ Publica y programa posts en Instagram, LinkedIn, Twitter/X,
14
+ TikTok, YouTube y más. Sube contenido multimedia y monitorea el estado de los posts.
15
+ type: mcp
16
+ version: "1.0.0"
17
+ mcp:
18
+ server_name: blotato
19
+ transport: http
20
+ url: "https://mcp.blotato.com/mcp"
21
+ headers:
22
+ blotato-api-key: BLOTATO_API_KEY
23
+ env:
24
+ - BLOTATO_API_KEY
25
+ categories: [social-media, automation, publishing, scheduling]
26
+ ---
27
+
28
+ # Blotato Publisher
29
+
30
+ ## When to use
31
+
32
+ Use Blotato when you need to publish or schedule social media posts across multiple platforms from a single interface. Blotato supports Instagram, LinkedIn, Twitter/X, TikTok, YouTube, and more. It handles media uploads, post scheduling, and status monitoring.
33
+
34
+ ## Instructions
35
+
36
+ You have access to Blotato for social media publishing.
37
+
38
+ ### Key workflow
39
+
40
+ 1. Use `blotato_list_accounts` to get account IDs and platforms
41
+ 2. If post includes images or videos, upload them with `blotato_upload_media` first and use the returned media IDs in `blotato_create_post`
42
+ 3. Use `blotato_create_post` to publish or schedule
43
+ 4. Use `blotato_get_post_status` to confirm success
44
+
45
+ ### Best practices
46
+
47
+ - Always call `blotato_list_accounts` first to get valid account IDs
48
+ - For scheduled posts, use ISO 8601 format for datetime
49
+ - After posting, poll `blotato_get_post_status` until status is "published" or "scheduled"
50
+ - If status is "failed", report the error details to the user
51
+
52
+ ### Requirements
53
+
54
+ - Blotato account required (blotato.com)
55
+ - API key must be configured (Blotato Settings > API section)
56
+
57
+ ## Available operations
58
+
59
+ - **List Accounts** -- Retrieve connected social media accounts and their platform types
60
+ - **Upload Media** -- Upload images and videos for use in posts
61
+ - **Create Post** -- Publish or schedule a post to one or more platforms
62
+ - **Get Post Status** -- Monitor publishing status (published, scheduled, failed)
63
+ - **Multi-platform Publishing** -- Post the same content across Instagram, LinkedIn, Twitter/X, TikTok, YouTube simultaneously
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: canva
3
+ description: >
4
+ Create, search, autofill, and export designs from Canva.
5
+ Enables agents to generate visual content, fill templates
6
+ with brand assets, and export in various formats.
7
+ description_pt-BR: >
8
+ Crie, busque, preencha e exporte designs do Canva.
9
+ Permite que agentes gerem conteúdo visual, preencham templates
10
+ com assets da marca e exportem em diversos formatos.
11
+ description_es: >
12
+ Crea, busca, completa y exporta diseños de Canva.
13
+ Permite que los agentes generen contenido visual, completen plantillas
14
+ con recursos de marca y exporten en diversos formatos.
15
+ type: mcp
16
+ version: "1.0.0"
17
+ mcp:
18
+ server_name: canva
19
+ transport: http
20
+ url: "https://mcp.canva.com/mcp"
21
+ categories: [design, ui, assets, automation]
22
+ ---
23
+
24
+ # Canva Connect
25
+
26
+ ## When to use
27
+
28
+ Use Canva when you need to create, search, or export visual designs. This skill connects to the user's Canva account via OAuth and enables agents to generate presentations, social media posts, logos, and other visual content. It also supports autofilling templates with brand assets and exporting designs in various formats.
29
+
30
+ ## Instructions
31
+
32
+ You have access to Canva through the Canva Connect MCP server.
33
+
34
+ ### Key capabilities
35
+
36
+ - Create new designs (presentations, social posts, logos, etc.)
37
+ - Autofill templates with content (text, images, brand elements)
38
+ - Search existing designs in the user's Canva account
39
+ - Export designs as PDF or image files
40
+
41
+ ### Best practices
42
+
43
+ - Use templates when possible -- faster and more on-brand
44
+ - When autofilling, match content to template placeholder names
45
+ - Export in the format most useful for the pipeline (PNG for social, PDF for documents)
46
+ - Respect the user's Canva plan limitations (some features require paid plans)
47
+
48
+ ### Requirements
49
+
50
+ - User needs a Canva account (free or paid)
51
+ - OAuth authorization is required on first use (browser popup)
52
+ - Autofill templates require a Canva paid plan
53
+
54
+ ## Available operations
55
+
56
+ - **Create Design** -- Generate new designs from scratch or templates
57
+ - **Search Designs** -- Find existing designs in the user's Canva account
58
+ - **Autofill Template** -- Fill template placeholders with text, images, and brand elements
59
+ - **Export Design** -- Export designs as PDF, PNG, JPG, or other formats
60
+ - **Browse Templates** -- Search Canva's template library for the right starting point
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: "Best-Practice Creator"
3
+ description: >
4
+ Guides creation and maintenance of best-practice files for the Conectese best-practices library.
5
+ Handles format validation, cross-references, versioning, and catalog consistency.
6
+ description_pt-BR: >
7
+ Guia a criação e manutenção de arquivos de best-practice na biblioteca de best-practices do Conectese.
8
+ Cuida de validação de formato, referências cruzadas, versionamento e consistência do catálogo.
9
+ description_es: >
10
+ Guía la creación y mantenimiento de archivos de best-practice en la biblioteca de best-practices de Conectese.
11
+ Maneja validación de formato, referencias cruzadas, versionamiento y consistencia del catálogo.
12
+ type: prompt
13
+ version: "2.0.0"
14
+ ---
15
+
16
+ # Best-Practice Creator — Workflow
17
+
18
+ Use this workflow when creating a new best-practice file for the `_conectese/core/best-practices/` library.
19
+
20
+ ## Pre-flight Checks
21
+
22
+ 1. **Scan existing best-practice files**: Read `_conectese/core/best-practices/_catalog.yaml`. Extract `id`, `name`, `whenToUse`, `file` from each entry.
23
+ 2. **Check for overlap**: Verify the new best-practice file doesn't duplicate an existing entry's `whenToUse` scope. If there's overlap, clarify the differentiation before proceeding.
24
+ 3. **List available skills**: Read all `skills/*/SKILL.md` files. Extract `name`, `description`, `type` from each — these may inform the best-practice file's content.
25
+
26
+ ## Creation Checklist
27
+
28
+ For each new best-practice file, ensure ALL of the following:
29
+
30
+ ### Frontmatter (YAML)
31
+
32
+ - [ ] `id`: lowercase kebab-case (e.g., `copywriting`)
33
+ - [ ] `name`: Display name for catalog listing (e.g., `"Copywriting & Persuasive Writing"`)
34
+ - [ ] `whenToUse`: Multi-line with positive scope AND "NOT for: ..." negative scope referencing other best-practice IDs
35
+ - [ ] `version`: `"1.0.0"` for new best-practice files
36
+
37
+ ### Body (Markdown) — All sections mandatory
38
+
39
+ - [ ] **Core Principles**: 6+ numbered domain-specific decision rules, each with a bold title and detailed explanation
40
+ - [ ] **Techniques & Frameworks**: Concrete methods, models, or processes practitioners use in this discipline (e.g., diagnostic steps, framework selections, structural patterns)
41
+ - [ ] **Quality Criteria**: 4+ checkable criteria as `- [ ]` list that can be used to evaluate output
42
+ - [ ] **Output Examples**: 2+ complete examples, 15+ lines each, realistic NOT template-like
43
+ - [ ] **Anti-Patterns**: Never Do (4+) + Always Do (3+), each with explanation
44
+ - [ ] **Vocabulary Guidance**: Terms/phrases to Always Use (5+), Terms/phrases to Never Use (3+), Tone Rules (2+)
45
+
46
+ ### Quality Minimums
47
+
48
+ | Section | Minimum |
49
+ |---------|---------|
50
+ | Total file lines | 200+ |
51
+ | Core Principles | 6+ numbered rules |
52
+ | Techniques & Frameworks | 3+ concrete techniques |
53
+ | Vocabulary Always Use | 5+ terms |
54
+ | Vocabulary Never Use | 3+ terms |
55
+ | Output Examples | 2 complete, 15+ lines each |
56
+ | Anti-Patterns (Never Do) | 4+ |
57
+ | Anti-Patterns (Always Do) | 3+ |
58
+ | Quality Criteria | 4+ checkable items |
59
+
60
+ ## Post-Creation Steps
61
+
62
+ ### 1. Update existing best-practice files' `whenToUse`
63
+
64
+ For each existing best-practice file whose scope overlaps with the new one:
65
+ - Add a "NOT for: {overlapping-scope} → See {new-best-practice-id}" line to their `whenToUse`
66
+ - Bump their version (patch increment)
67
+
68
+ ### 2. Update `_catalog.yaml`
69
+
70
+ Add a new entry to `_conectese/core/best-practices/_catalog.yaml` with:
71
+ - `id`: matching the frontmatter `id`
72
+ - `name`: matching the frontmatter `name`
73
+ - `whenToUse`: single-line summary of the scope (positive only, no "NOT for")
74
+ - `file`: `{id}.md`
75
+
76
+ Place it under the appropriate section comment (Discipline or Platform best practices).
77
+
78
+ ### 3. File placement
79
+
80
+ Save to `_conectese/core/best-practices/{id}.md`.
81
+
82
+ ### 4. Validation
83
+
84
+ Re-read the created file and verify:
85
+ - [ ] All checklist items above are present
86
+ - [ ] YAML frontmatter parses correctly (no syntax errors)
87
+ - [ ] `whenToUse` references only existing best-practice IDs
88
+ - [ ] Output examples are realistic, not template placeholders
89
+ - [ ] File exceeds 200 lines
90
+ - [ ] Corresponding entry exists in `_catalog.yaml`
91
+
92
+ ---
93
+
94
+ # Best-Practice Updater — Workflow
95
+
96
+ Use this workflow when updating best-practice files in the `_conectese/core/best-practices/` library.
97
+
98
+ ## Versioning Rules (Semver)
99
+
100
+ | Change Type | Version Bump | Examples |
101
+ |-------------|-------------|----------|
102
+ | **Patch** (x.x.X) | Fix typos, adjust wording, minor refinements | Fix anti-pattern phrasing, correct a vocabulary term |
103
+ | **Minor** (x.X.0) | Add new content, extend capabilities | Add new principle, new output example, new technique |
104
+ | **Major** (X.0.0) | Rewrite or restructure significantly | Rewrite core principles, fundamentally change scope |
105
+
106
+ Always update the `version` field in the YAML frontmatter after any change.
107
+
108
+ ## Update Scenarios
109
+
110
+ ### When a best-practice file is removed from the library
111
+
112
+ 1. Get the removed best-practice file's `id`
113
+ 2. Remove its entry from `_conectese/core/best-practices/_catalog.yaml`
114
+ 3. Scan ALL remaining best-practice files in `_conectese/core/best-practices/*.md`
115
+ 4. For each file, check if the removed ID is referenced in `whenToUse`
116
+ - Look for patterns: "NOT for: ... → See {removed-id}"
117
+ 5. If found, remove that "NOT for" line
118
+ 6. Bump the affected files' version (patch: x.x.X)
119
+
120
+ ### When a new best-practice file is added to the library
121
+
122
+ The Best-Practice Creator workflow (above) handles the initial `whenToUse` cross-references during creation. This section is only needed if cross-references were missed or need adjustment after the fact.
123
+
124
+ 1. Read the new best-practice file's `whenToUse` — identify its scope
125
+ 2. Scan existing best-practice files for overlapping scope
126
+ 3. Add "NOT for: {new-scope} → See {new-id}" where appropriate
127
+ 4. Bump affected files' version (patch)
128
+ 5. Ensure the new entry exists in `_catalog.yaml`
129
+
130
+ ### When updating a best-practice file's content
131
+
132
+ 1. Make the content changes
133
+ 2. Verify ALL mandatory sections still exist:
134
+ - [ ] Core Principles (6+ rules)
135
+ - [ ] Techniques & Frameworks (3+ techniques)
136
+ - [ ] Quality Criteria (4+ checkable items)
137
+ - [ ] Output Examples (2+ complete examples)
138
+ - [ ] Anti-Patterns (Never Do + Always Do)
139
+ - [ ] Vocabulary Guidance (Always Use, Never Use, Tone Rules)
140
+ 3. Bump version according to semver rules above
141
+ 4. If the `whenToUse` scope changed, update cross-references in other best-practice files and in `_catalog.yaml`
142
+
143
+ ### When updating a best-practice file's `whenToUse` scope
144
+
145
+ This is the most impactful change — it affects how the Architect selects best practices during squad creation.
146
+
147
+ 1. Document the old scope and new scope
148
+ 2. Update the best-practice file's `whenToUse` field
149
+ 3. Scan ALL other best-practice files' `whenToUse` for references to this ID
150
+ 4. Update cross-references to reflect the new scope
151
+ 5. Update the `whenToUse` summary in `_catalog.yaml`
152
+ 6. Bump version (minor if scope expanded, patch if scope narrowed)
153
+
154
+ ## Validation Checklist
155
+
156
+ After ANY update, verify:
157
+
158
+ - [ ] Version was bumped correctly (patch/minor/major per rules above)
159
+ - [ ] All mandatory sections still present and non-empty
160
+ - [ ] `whenToUse` cross-references are consistent across ALL best-practice files
161
+ - [ ] No broken cross-references to removed best-practice IDs
162
+ - [ ] Output examples are still realistic and complete
163
+ - [ ] File still exceeds 200 lines minimum
164
+ - [ ] `_catalog.yaml` entry is in sync with frontmatter (`id`, `name`, `whenToUse`)
165
+
166
+ ## Bulk Operations
167
+
168
+ ### Verify catalog consistency
169
+
170
+ ```
171
+ Read _conectese/core/best-practices/_catalog.yaml
172
+ For each entry in catalog:
173
+ 1. Verify _conectese/core/best-practices/{entry.file} exists
174
+ 2. Read the file's frontmatter
175
+ 3. Verify entry.id matches frontmatter id
176
+ 4. Verify entry.name matches frontmatter name
177
+ 5. Flag any mismatches
178
+
179
+ For each .md file in _conectese/core/best-practices/ (excluding _catalog.yaml):
180
+ 1. Verify a corresponding entry exists in _catalog.yaml
181
+ 2. Flag any orphaned files with no catalog entry
182
+ ```
183
+
184
+ ### Verify cross-reference consistency
185
+
186
+ ```
187
+ For each best-practice file A in _conectese/core/best-practices/*.md:
188
+ For each "NOT for: ... → See {id}" in A.whenToUse:
189
+ 1. Verify _conectese/core/best-practices/{id}.md exists
190
+ 2. Verify {id}'s whenToUse covers the referenced scope
191
+ 3. Flag inconsistencies
192
+ ```