crewly 1.1.2 → 1.2.0

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 (216) hide show
  1. package/README.md +6 -6
  2. package/config/roles/ops/prompt.md +140 -0
  3. package/config/roles/ops/role.json +13 -0
  4. package/config/skills/agent/browse-stealth/execute.sh +84 -0
  5. package/config/skills/agent/browse-stealth/instructions.md +108 -0
  6. package/config/skills/agent/browse-stealth/launch-chrome-cdp.sh +141 -0
  7. package/config/skills/agent/browse-stealth/skill.json +20 -0
  8. package/config/skills/agent/browse-stealth/stealth-browse.py +330 -0
  9. package/config/skills/agent/competitor-content-tracker/execute.sh +232 -0
  10. package/config/skills/agent/competitor-content-tracker/instructions.md +210 -0
  11. package/config/skills/agent/competitor-content-tracker/skill.json +22 -0
  12. package/config/skills/agent/content-calendar/execute.sh +294 -0
  13. package/config/skills/agent/content-calendar/instructions.md +122 -0
  14. package/config/skills/agent/content-calendar/skill.json +22 -0
  15. package/config/skills/agent/content-repurposer/execute.sh +194 -0
  16. package/config/skills/agent/content-repurposer/instructions.md +69 -0
  17. package/config/skills/agent/content-repurposer/skill.json +22 -0
  18. package/config/skills/agent/content-writer/execute.sh +311 -0
  19. package/config/skills/agent/content-writer/instructions.md +124 -0
  20. package/config/skills/agent/content-writer/skill.json +22 -0
  21. package/config/skills/agent/core/generate-pdf/execute.sh +88 -0
  22. package/config/skills/agent/core/generate-pdf/instructions.md +46 -0
  23. package/config/skills/agent/core/generate-pdf/skill.json +20 -0
  24. package/config/skills/agent/core/report-status/execute.sh +6 -0
  25. package/config/skills/agent/trend-monitor/execute.sh +211 -0
  26. package/config/skills/agent/trend-monitor/instructions.md +207 -0
  27. package/config/skills/agent/trend-monitor/skill.json +22 -0
  28. package/config/skills/agent/vnc-browser/execute.sh +261 -0
  29. package/config/skills/agent/vnc-browser/instructions.md +102 -0
  30. package/config/skills/agent/vnc-browser/skill.json +20 -0
  31. package/config/skills/orchestrator/delegate-task/execute.sh +63 -4
  32. package/config/skills/orchestrator/delegate-task/instructions.md +60 -0
  33. package/config/skills/orchestrator/delegate-task/skill.json +4 -4
  34. package/config/skills/orchestrator/reply-slack/execute.sh +2 -0
  35. package/config/skills/orchestrator/send-key/execute.sh +19 -6
  36. package/config/skills/orchestrator/send-key/instructions.md +44 -0
  37. package/config/skills/orchestrator/send-key/skill.json +20 -0
  38. package/config/skills/orchestrator/send-message/execute.sh +9 -1
  39. package/config/skills/registry.json +256 -0
  40. package/config/templates/code-review-team/README.md +176 -0
  41. package/config/templates/code-review-team/team-config.json +16 -0
  42. package/config/templates/code-review-team.json +62 -0
  43. package/config/templates/content-generation-team/README.md +128 -0
  44. package/config/templates/content-generation-team/team-config.json +21 -0
  45. package/config/templates/content-generation-team.json +67 -0
  46. package/config/templates/demo-team.json +22 -0
  47. package/config/templates/social-media-ops-team/README.md +145 -0
  48. package/config/templates/social-media-ops-team/team-config.json +21 -0
  49. package/config/templates/social-media-ops-team.json +67 -0
  50. package/dist/backend/backend/src/constants.d.ts +69 -6
  51. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  52. package/dist/backend/backend/src/constants.js +75 -6
  53. package/dist/backend/backend/src/constants.js.map +1 -1
  54. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  55. package/dist/backend/backend/src/controllers/index.js +2 -0
  56. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  57. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +8 -0
  58. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  59. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +110 -63
  60. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  61. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  62. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +31 -4
  63. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  64. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts +8 -0
  65. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
  66. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +127 -111
  67. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
  68. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +34 -0
  69. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  70. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +219 -2
  71. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  72. package/dist/backend/backend/src/controllers/user/user.routes.d.ts +7 -0
  73. package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
  74. package/dist/backend/backend/src/controllers/user/user.routes.js +45 -38
  75. package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
  76. package/dist/backend/backend/src/controllers/whatsapp/index.d.ts +17 -0
  77. package/dist/backend/backend/src/controllers/whatsapp/index.d.ts.map +1 -0
  78. package/dist/backend/backend/src/controllers/whatsapp/index.js +18 -0
  79. package/dist/backend/backend/src/controllers/whatsapp/index.js.map +1 -0
  80. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts +12 -0
  81. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -0
  82. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +185 -0
  83. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -0
  84. package/dist/backend/backend/src/index.d.ts +5 -0
  85. package/dist/backend/backend/src/index.d.ts.map +1 -1
  86. package/dist/backend/backend/src/index.js +35 -0
  87. package/dist/backend/backend/src/index.js.map +1 -1
  88. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  89. package/dist/backend/backend/src/routes/modules/task-management.routes.js +4 -0
  90. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  91. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js +1 -1
  92. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +14 -3
  94. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/agent/agent-registration.service.js +160 -29
  96. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  97. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +4 -3
  98. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +29 -4
  100. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  101. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +11 -0
  103. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +32 -2
  105. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +69 -8
  107. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  108. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +14 -2
  110. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  111. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +11 -2
  113. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  114. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts +18 -0
  115. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js +28 -4
  117. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js.map +1 -1
  118. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js +2 -2
  119. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js.map +1 -1
  120. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts +18 -0
  121. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js +26 -4
  123. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js.map +1 -1
  124. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +28 -2
  125. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  126. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts +33 -2
  127. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts.map +1 -1
  128. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js +33 -0
  129. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js.map +1 -1
  130. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  131. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +4 -2
  132. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  133. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  134. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +4 -3
  135. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  136. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +27 -0
  137. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  138. package/dist/backend/backend/src/services/project/task-tracking.service.js +54 -0
  139. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  140. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +36 -6
  141. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  142. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +238 -36
  143. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  144. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  145. package/dist/backend/backend/src/services/slack/slack.service.js +6 -4
  146. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  147. package/dist/backend/backend/src/services/user/user-identity.service.d.ts +44 -0
  148. package/dist/backend/backend/src/services/user/user-identity.service.d.ts.map +1 -1
  149. package/dist/backend/backend/src/services/user/user-identity.service.js +75 -8
  150. package/dist/backend/backend/src/services/user/user-identity.service.js.map +1 -1
  151. package/dist/backend/backend/src/services/whatsapp/index.d.ts +11 -0
  152. package/dist/backend/backend/src/services/whatsapp/index.d.ts.map +1 -0
  153. package/dist/backend/backend/src/services/whatsapp/index.js +11 -0
  154. package/dist/backend/backend/src/services/whatsapp/index.js.map +1 -0
  155. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts +66 -0
  156. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts.map +1 -0
  157. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js +96 -0
  158. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js.map +1 -0
  159. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +109 -0
  160. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -0
  161. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +234 -0
  162. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -0
  163. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts +127 -0
  164. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -0
  165. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +347 -0
  166. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -0
  167. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/workflow/scheduler.service.js +4 -0
  169. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  170. package/dist/backend/backend/src/types/index.d.ts +1 -0
  171. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  172. package/dist/backend/backend/src/types/index.js.map +1 -1
  173. package/dist/backend/backend/src/types/slack.types.d.ts +24 -0
  174. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  175. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  176. package/dist/backend/backend/src/types/task-tracking.types.d.ts +4 -0
  177. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  178. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  179. package/dist/backend/backend/src/types/whatsapp.types.d.ts +84 -0
  180. package/dist/backend/backend/src/types/whatsapp.types.d.ts.map +1 -0
  181. package/dist/backend/backend/src/types/whatsapp.types.js +33 -0
  182. package/dist/backend/backend/src/types/whatsapp.types.js.map +1 -0
  183. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +11 -0
  184. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  185. package/dist/backend/backend/src/websocket/terminal.gateway.js +35 -1
  186. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  187. package/dist/cli/backend/src/constants.d.ts +69 -6
  188. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  189. package/dist/cli/backend/src/constants.js +75 -6
  190. package/dist/cli/backend/src/constants.js.map +1 -1
  191. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  192. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +14 -2
  193. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  194. package/dist/cli/backend/src/types/index.d.ts +1 -0
  195. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  196. package/dist/cli/backend/src/types/index.js.map +1 -1
  197. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
  198. package/dist/cli/cli/src/commands/publish.js +17 -15
  199. package/dist/cli/cli/src/commands/publish.js.map +1 -1
  200. package/dist/cli/cli/src/index.js +2 -2
  201. package/dist/cli/cli/src/index.js.map +1 -1
  202. package/dist/cli/cli/src/utils/gh-submit.d.ts +46 -0
  203. package/dist/cli/cli/src/utils/gh-submit.d.ts.map +1 -0
  204. package/dist/cli/cli/src/utils/gh-submit.js +167 -0
  205. package/dist/cli/cli/src/utils/gh-submit.js.map +1 -0
  206. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  207. package/dist/cli/cli/src/utils/marketplace.js +13 -5
  208. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  209. package/dist/cli/cli/src/utils/templates.d.ts +3 -2
  210. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  211. package/dist/cli/cli/src/utils/templates.js +5 -4
  212. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  213. package/frontend/dist/assets/{index-45eeea99.js → index-a23214ae.js} +241 -241
  214. package/frontend/dist/assets/{index-6972eeee.css → index-c407fe13.css} +1 -1
  215. package/frontend/dist/index.html +2 -2
  216. package/package.json +3 -1
@@ -0,0 +1,176 @@
1
+ # Code Review Pipeline — Quick Start
2
+
3
+ ## Overview
4
+
5
+ An AI team that automatically reviews pull requests for code quality, security vulnerabilities, and test coverage. Produces structured, actionable review feedback with a clear verdict.
6
+
7
+ **Target Users**: SaaS teams, dev agencies, engineering organizations
8
+ **Team Size**: 2 agents (Senior Reviewer + Security Auditor)
9
+
10
+ ## Prerequisites
11
+
12
+ - Crewly installed and running (`npx crewly start`)
13
+ - Git repository with PR workflow (GitHub, GitLab, or Bitbucket)
14
+
15
+ ## Quick Start
16
+
17
+ ```bash
18
+ # 1. Create the team from template
19
+ npx crewly create-team --template code-review-team
20
+
21
+ # 2. Start the team in your project directory
22
+ npx crewly start --project /path/to/your/repo
23
+ ```
24
+
25
+ ## Required Skills
26
+
27
+ | Skill | Purpose | Config Required |
28
+ |-------|---------|----------------|
29
+ | `code-review` | Analyze git diffs for quality, style, complexity | None |
30
+ | `test-runner` | Run test suite and verify coverage | None |
31
+ | `bug-triage` | Classify and prioritize security findings | None |
32
+ | `git-commit-helper` | Analyze commit messages for conventional format | None |
33
+
34
+ ## Optional Skills
35
+
36
+ | Skill | Purpose |
37
+ |-------|---------|
38
+ | `send-pdf-to-slack` | Post review summary to Slack channel |
39
+ | `daily-standup-report` | Daily PR review activity summary |
40
+
41
+ ## Workflow
42
+
43
+ ```
44
+ New PR Detected
45
+
46
+
47
+ Senior Reviewer Security Auditor
48
+ │ │
49
+ ├─ Run code-review skill │
50
+ ├─ Analyze architecture │
51
+ ├─ Check naming, patterns │
52
+ ├─ Review error handling │
53
+ │ │
54
+ ├─ Run test-runner skill │
55
+ ├─ Verify tests pass │
56
+ ├─ Check coverage threshold │
57
+ │ │
58
+ │ Parallel │
59
+ │──────────────────────────────▶│
60
+ │ ├─ Scan for OWASP Top 10
61
+ │ ├─ Check for secrets
62
+ │ ├─ Review auth/authz
63
+ │ ├─ Classify findings
64
+ │ │ (bug-triage skill)
65
+ │ │
66
+ │◀─────── Security Report ─────┤
67
+ │ │
68
+ ├─ Consolidate all findings │
69
+ ├─ Produce final verdict │
70
+ │ (approve / request changes) │
71
+ │ │
72
+ └─ Post review comment ─────────┘
73
+ ```
74
+
75
+ ## Expected Output Examples
76
+
77
+ ### Code Quality Review (from Senior Reviewer)
78
+ ```markdown
79
+ ## Code Review: PR #142 — Add user preferences API
80
+
81
+ ### Summary
82
+ **Verdict**: REQUEST CHANGES (2 blockers, 3 suggestions)
83
+
84
+ **Files changed**: 6 | **Lines**: +284 / -12
85
+ **Tests**: 14 passing, 0 failing | **Coverage**: 87% (+3%)
86
+
87
+ ### Findings
88
+
89
+ #### Blockers
90
+ 1. **Missing input validation** — `preferences.controller.ts:45`
91
+ The `updatePreferences` handler accepts raw body without validation.
92
+ Any malformed JSON crashes the service with unhandled TypeError.
93
+ **Fix**: Add Zod schema validation before processing.
94
+
95
+ 2. **N+1 query in getAll** — `preferences.service.ts:78`
96
+ Loading preferences with `Promise.all(users.map(u => getPrefs(u.id)))`.
97
+ With 1000 users this fires 1000 queries.
98
+ **Fix**: Batch query with `WHERE user_id IN (...)`.
99
+
100
+ #### Suggestions
101
+ 1. **Consider extracting preference keys to constants** — `preferences.types.ts:12`
102
+ String literals `'theme'`, `'language'`, `'timezone'` appear 4 times.
103
+ Extract to a `PREFERENCE_KEYS` constant.
104
+
105
+ 2. **Add JSDoc to public methods** — `preferences.service.ts`
106
+ 3 public methods missing documentation. Project convention requires JSDoc.
107
+
108
+ 3. **Test edge case: empty preferences object** — `preferences.service.test.ts`
109
+ No test for `updatePreferences({})`. Should return 400 or no-op.
110
+
111
+ ### Test Results
112
+ ✅ All 14 tests passing
113
+ ✅ Coverage: 87% (above 80% threshold)
114
+ ⚠️ Missing edge case test (see suggestion #3)
115
+ ```
116
+
117
+ ### Security Assessment (from Security Auditor)
118
+ ```markdown
119
+ ## Security Assessment: PR #142
120
+
121
+ ### Risk Rating: MEDIUM (1 high, 1 low finding)
122
+
123
+ ### Findings
124
+
125
+ | # | Severity | Category | Location | Description |
126
+ |---|----------|----------|----------|-------------|
127
+ | 1 | HIGH | Injection | `preferences.controller.ts:45` | No input validation — potential NoSQL injection if using MongoDB, or payload manipulation with any DB. Aligns with OWASP A03:2021 (Injection). |
128
+ | 2 | LOW | Information Disclosure | `preferences.controller.ts:67` | Error response includes full stack trace in non-production. Recommend stripping in all environments. |
129
+
130
+ ### Remediation
131
+ 1. **[HIGH] Add input validation**: Use Zod or Joi to validate request body schema before processing. Whitelist allowed preference keys.
132
+ 2. **[LOW] Strip stack traces**: Use error middleware that omits stack traces regardless of NODE_ENV.
133
+
134
+ ### Checks Passed
135
+ - ✅ No hardcoded secrets or API keys
136
+ - ✅ Authentication middleware present on all routes
137
+ - ✅ No use of `eval()` or dynamic code execution
138
+ - ✅ Dependencies have no known CVEs (checked via `npm audit`)
139
+
140
+ ### Recommendation: BLOCK until HIGH finding is resolved
141
+ ```
142
+
143
+ ### Final Verdict (from Senior Reviewer)
144
+ ```markdown
145
+ ## Final Review: PR #142 — Add user preferences API
146
+
147
+ **Verdict**: ❌ REQUEST CHANGES
148
+
149
+ ### Consolidated Findings
150
+ - 🔴 2 Blockers (1 code quality + 1 security HIGH)
151
+ - 🟡 3 Suggestions
152
+ - 🟢 Tests passing, coverage above threshold
153
+
154
+ ### Required Before Merge
155
+ 1. Add input validation with Zod schema (blocks both code quality + security findings)
156
+ 2. Fix N+1 query in `getAll`
157
+
158
+ ### Nice to Have
159
+ 3. Extract preference key constants
160
+ 4. Add JSDoc to public methods
161
+ 5. Add empty-object edge case test
162
+
163
+ ### What's Good
164
+ - Clean API design following RESTful conventions
165
+ - Good test coverage (87%)
166
+ - Proper error handling in happy path
167
+ - Consistent with existing codebase patterns
168
+ ```
169
+
170
+ ## Customization
171
+
172
+ - **Add linting**: Include quality gates for ESLint/Prettier checks
173
+ - **Adjust thresholds**: Modify coverage requirements in Senior Reviewer's prompt
174
+ - **Add CI integration**: Trigger review on GitHub webhook events
175
+ - **Scale**: Add a third agent for performance review (benchmarks, load testing)
176
+ - **Customize rules**: Edit Security Auditor's prompt to focus on your tech stack's specific vulnerabilities
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "Code Review Pipeline",
3
+ "description": "AI team that automatically reviews pull requests for code quality, security vulnerabilities, and test coverage. Built for SaaS teams, dev shops, and any team that wants faster, more consistent code reviews.",
4
+ "members": [
5
+ {
6
+ "name": "Senior Reviewer",
7
+ "role": "architect",
8
+ "systemPrompt": "You are the senior code reviewer on a code review team. You review pull requests for architecture, code quality, maintainability, and adherence to project conventions. Use the code-review skill to analyze git diffs and produce structured reviews. Use the test-runner skill to verify test coverage and ensure all tests pass. Focus on: naming conventions, separation of concerns, error handling, performance implications, and API design. Coordinate with the Security Auditor on security findings. Produce a final review verdict (approve / request changes) with clear, actionable feedback."
9
+ },
10
+ {
11
+ "name": "Security Auditor",
12
+ "role": "qa-engineer",
13
+ "systemPrompt": "You are the security auditor on a code review team. You scan every PR for security vulnerabilities: injection flaws (SQL, XSS, command injection), authentication/authorization issues, secrets exposure, insecure dependencies, and OWASP Top 10 violations. Use the code-review skill with security focus to analyze changes. Use the bug-triage skill to classify and prioritize any findings. Produce a security assessment for each PR: list of findings (severity + remediation), overall risk rating, and approval/block recommendation. Coordinate with the Senior Reviewer on the final review verdict."
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "id": "code-review-team",
3
+ "name": "Code Review Pipeline",
4
+ "description": "AI team that automatically reviews pull requests for code quality, security vulnerabilities, and test coverage. Built for SaaS teams, dev shops, and any team that wants faster, more consistent code reviews.",
5
+ "category": "development",
6
+ "targetVertical": "SaaS Team / Dev Agency / Engineering Org",
7
+ "members": [
8
+ {
9
+ "name": "Senior Reviewer",
10
+ "role": "architect",
11
+ "systemPrompt": "You are the senior code reviewer on a code review team. You review pull requests for architecture, code quality, maintainability, and adherence to project conventions. Use the code-review skill to analyze git diffs and produce structured reviews. Use the test-runner skill to verify test coverage and ensure all tests pass. Focus on: naming conventions, separation of concerns, error handling, performance implications, and API design. Coordinate with the Security Auditor on security findings. Produce a final review verdict (approve / request changes) with clear, actionable feedback."
12
+ },
13
+ {
14
+ "name": "Security Auditor",
15
+ "role": "qa-engineer",
16
+ "systemPrompt": "You are the security auditor on a code review team. You scan every PR for security vulnerabilities: injection flaws (SQL, XSS, command injection), authentication/authorization issues, secrets exposure, insecure dependencies, and OWASP Top 10 violations. Use the code-review skill with security focus to analyze changes. Use the bug-triage skill to classify and prioritize any findings. Produce a security assessment for each PR: list of findings (severity + remediation), overall risk rating, and approval/block recommendation. Coordinate with the Senior Reviewer on the final review verdict."
17
+ }
18
+ ],
19
+ "requiredSkills": [
20
+ "code-review",
21
+ "test-runner",
22
+ "bug-triage",
23
+ "git-commit-helper"
24
+ ],
25
+ "optionalSkills": [
26
+ "send-pdf-to-slack",
27
+ "daily-standup-report"
28
+ ],
29
+ "workflow": {
30
+ "name": "PR Review Pipeline",
31
+ "steps": [
32
+ {
33
+ "step": 1,
34
+ "name": "PR Detection & Initial Analysis",
35
+ "owner": "Senior Reviewer",
36
+ "description": "Detect new or updated PR. Run code-review skill on the diff to produce structured analysis of changes.",
37
+ "output": "Structured code review (markdown) with findings by category"
38
+ },
39
+ {
40
+ "step": 2,
41
+ "name": "Test Verification",
42
+ "owner": "Senior Reviewer",
43
+ "description": "Run test suite via test-runner skill. Verify all tests pass and coverage meets threshold.",
44
+ "output": "Test results with coverage report"
45
+ },
46
+ {
47
+ "step": 3,
48
+ "name": "Security Scan",
49
+ "owner": "Security Auditor",
50
+ "description": "Analyze changes for security vulnerabilities. Classify findings by severity using bug-triage skill.",
51
+ "output": "Security assessment (findings list + severity + risk rating)"
52
+ },
53
+ {
54
+ "step": 4,
55
+ "name": "Final Verdict",
56
+ "owner": "Senior Reviewer",
57
+ "description": "Consolidate code quality review + test results + security assessment. Produce final verdict with actionable feedback.",
58
+ "output": "PR review comment (approve / request changes) with consolidated feedback"
59
+ }
60
+ ]
61
+ }
62
+ }
@@ -0,0 +1,128 @@
1
+ # Content Generation Studio — Quick Start
2
+
3
+ ## Overview
4
+
5
+ An AI team that automatically produces SEO-optimized blog posts, social media content, and cover images. The team follows a structured pipeline: research → draft → review → publish.
6
+
7
+ **Target Users**: Content agencies, solo creators, marketing teams
8
+ **Team Size**: 3 agents (Content Strategist + Writer + Editor)
9
+
10
+ ## Prerequisites
11
+
12
+ - Crewly installed and running (`npx crewly start`)
13
+ - Gemini API key configured (required for `nano-banana-image` skill)
14
+
15
+ ## Quick Start
16
+
17
+ ```bash
18
+ # 1. Create the team from template
19
+ npx crewly create-team --template content-generation-team
20
+
21
+ # 2. Start the team
22
+ npx crewly start
23
+ ```
24
+
25
+ ## Required Skills
26
+
27
+ | Skill | Purpose | Config Required |
28
+ |-------|---------|----------------|
29
+ | `seo-blog-writer` | Generate SEO-optimized blog structures | None |
30
+ | `social-media-post` | Create platform-optimized social posts (X, LinkedIn, Reddit) | None |
31
+ | `nano-banana-image` | Generate cover images and visuals | `GEMINI_API_KEY` |
32
+ | `feedback-analyzer` | Analyze audience feedback for content improvement | None |
33
+
34
+ ## Optional Skills
35
+
36
+ | Skill | Purpose |
37
+ |-------|---------|
38
+ | `send-pdf-to-slack` | Share formatted content reports via Slack |
39
+ | `daily-standup-report` | Daily team activity summary |
40
+
41
+ ## Workflow
42
+
43
+ ```
44
+ Content Strategist Writer Editor
45
+ │ │ │
46
+ ├─ Research topics │ │
47
+ ├─ Keyword analysis │ │
48
+ ├─ Create content brief │ │
49
+ │ │ │ │
50
+ │ └──────────────▶ │
51
+ │ ├─ Write blog post │
52
+ │ ├─ Create social │
53
+ │ │ posts │
54
+ │ ├─ Generate images │
55
+ │ │ │ │
56
+ │ │ └─────────▶
57
+ │ │ ├─ Review quality
58
+ │ │ ├─ Check SEO
59
+ │ │ ├─ Verify accuracy
60
+ │ │ │
61
+ │ │◀── Approved ──────┤
62
+ │ │ or revisions │
63
+ │ ├─ Publish content │
64
+ │ └───────────────────┘
65
+ ```
66
+
67
+ ## Expected Output Examples
68
+
69
+ ### Blog Post (from Writer)
70
+ ```markdown
71
+ # 10 Ways AI Is Transforming Small Business Operations in 2026
72
+
73
+ *Meta: Discover how AI automation is helping SMBs reduce costs by 40%...*
74
+
75
+ ## Introduction
76
+ ...
77
+
78
+ ## 1. Automated Customer Support
79
+ ...
80
+
81
+ ## Conclusion
82
+ ...
83
+
84
+ **Keywords**: AI small business, AI automation, SMB operations
85
+ **Word count**: ~1,500
86
+ **Reading time**: 7 min
87
+ ```
88
+
89
+ ### Social Media Posts (from Writer)
90
+ ```
91
+ [X/Twitter]
92
+ AI is quietly transforming how small businesses operate.
93
+
94
+ We analyzed 10 real use cases where SMBs cut costs by 40%+ using AI teams.
95
+
96
+ The surprising part? Most started in under a week.
97
+
98
+ Thread 🧵👇
99
+
100
+ ---
101
+
102
+ [LinkedIn]
103
+ I've been watching a quiet revolution in small business operations.
104
+
105
+ AI teams — not single chatbots, but coordinated groups of AI agents —
106
+ are now handling tasks that used to require 3-5 employees...
107
+ ```
108
+
109
+ ### Content Brief (from Strategist)
110
+ ```markdown
111
+ ## Content Brief: AI for SMB Operations
112
+
113
+ **Target keyword**: "AI small business automation"
114
+ **Search volume**: 2,400/mo | **Difficulty**: Medium
115
+ **Target audience**: SMB owners, ops managers
116
+ **Content type**: Listicle (10 items)
117
+ **Word count target**: 1,200-1,800
118
+ **Tone**: Practical, data-driven, accessible
119
+ **CTA**: Free trial signup
120
+ **Competitor gaps**: Most articles are theoretical — we add real ROI data
121
+ ```
122
+
123
+ ## Customization
124
+
125
+ - **Add platforms**: Modify Writer's `systemPrompt` to include additional platforms
126
+ - **Change tone**: Adjust Strategist's brief template for different brand voices
127
+ - **Scale up**: Add a second Writer agent for higher content volume
128
+ - **Add distribution**: Include `send-pdf-to-slack` for team notification on publish
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Content Generation Studio",
3
+ "description": "AI team that automatically produces SEO-optimized blog posts, social media content, and accompanying images. Ideal for content agencies, solo creators, and marketing teams.",
4
+ "members": [
5
+ {
6
+ "name": "Content Strategist",
7
+ "role": "content-strategist",
8
+ "systemPrompt": "You are the content strategist on a content generation team. Your job is to research topics, identify high-value keywords, and create content briefs. You define the content calendar, set quality standards, and review all output before publication. Use the seo-blog-writer skill to generate optimized content structures. Coordinate with the Writer for drafts and the Editor for quality assurance."
9
+ },
10
+ {
11
+ "name": "Writer",
12
+ "role": "generalist",
13
+ "systemPrompt": "You are the writer on a content generation team. You take content briefs from the Strategist and produce full-length blog posts, social media copy, and marketing materials. Use the social-media-post skill to create platform-optimized posts for X, LinkedIn, and Reddit. Use the nano-banana-image skill to generate accompanying visuals. Focus on engaging, accurate, on-brand content that follows the brief's keyword and structure guidelines."
14
+ },
15
+ {
16
+ "name": "Editor",
17
+ "role": "qa",
18
+ "systemPrompt": "You are the editor on a content generation team. You review all content produced by the Writer for accuracy, tone consistency, SEO compliance, and brand voice. Check keyword placement, readability, and factual correctness. Approve content for publication or send back with specific revision notes. Use the feedback-analyzer skill to incorporate audience feedback into content improvements."
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "id": "content-generation-team",
3
+ "name": "Content Generation Studio",
4
+ "description": "AI team that automatically produces SEO-optimized blog posts, social media content, and accompanying images. Ideal for content agencies, solo creators, and marketing teams.",
5
+ "category": "content",
6
+ "targetVertical": "Content Agency / Solo Creator / Marketing Team",
7
+ "members": [
8
+ {
9
+ "name": "Content Strategist",
10
+ "role": "content-strategist",
11
+ "systemPrompt": "You are the content strategist on a content generation team. Your job is to research topics, identify high-value keywords, and create content briefs. You define the content calendar, set quality standards, and review all output before publication. Use the seo-blog-writer skill to generate optimized content structures. Coordinate with the Writer for drafts and the Editor for quality assurance."
12
+ },
13
+ {
14
+ "name": "Writer",
15
+ "role": "generalist",
16
+ "systemPrompt": "You are the writer on a content generation team. You take content briefs from the Strategist and produce full-length blog posts, social media copy, and marketing materials. Use the social-media-post skill to create platform-optimized posts for X, LinkedIn, and Reddit. Use the nano-banana-image skill to generate accompanying visuals. Focus on engaging, accurate, on-brand content that follows the brief's keyword and structure guidelines."
17
+ },
18
+ {
19
+ "name": "Editor",
20
+ "role": "qa",
21
+ "systemPrompt": "You are the editor on a content generation team. You review all content produced by the Writer for accuracy, tone consistency, SEO compliance, and brand voice. Check keyword placement, readability, and factual correctness. Approve content for publication or send back with specific revision notes. Use the feedback-analyzer skill to incorporate audience feedback into content improvements."
22
+ }
23
+ ],
24
+ "requiredSkills": [
25
+ "seo-blog-writer",
26
+ "social-media-post",
27
+ "nano-banana-image",
28
+ "feedback-analyzer"
29
+ ],
30
+ "optionalSkills": [
31
+ "send-pdf-to-slack",
32
+ "daily-standup-report"
33
+ ],
34
+ "workflow": {
35
+ "name": "Content Production Pipeline",
36
+ "steps": [
37
+ {
38
+ "step": 1,
39
+ "name": "Topic Research & Brief",
40
+ "owner": "Content Strategist",
41
+ "description": "Research trending topics, analyze keywords, create content brief with target keywords, structure, and audience.",
42
+ "output": "Content brief (markdown)"
43
+ },
44
+ {
45
+ "step": 2,
46
+ "name": "Draft Creation",
47
+ "owner": "Writer",
48
+ "description": "Write full blog post and social media variants based on the content brief. Generate cover image.",
49
+ "output": "Blog post (markdown) + social posts (per platform) + cover image (PNG)"
50
+ },
51
+ {
52
+ "step": 3,
53
+ "name": "Editorial Review",
54
+ "owner": "Editor",
55
+ "description": "Review draft for quality, SEO compliance, accuracy, and brand voice. Approve or return with revision notes.",
56
+ "output": "Approved content or revision notes"
57
+ },
58
+ {
59
+ "step": 4,
60
+ "name": "Publish & Distribute",
61
+ "owner": "Writer",
62
+ "description": "Post approved content to target platforms. Share via Slack for team visibility.",
63
+ "output": "Published posts with links"
64
+ }
65
+ ]
66
+ }
67
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "demo-team",
3
+ "name": "Demo Team",
4
+ "description": "Developer + Product Manager + Ops Engineer for a quick Crewly demo. Shows multi-role collaboration: the PM defines tasks, the developer builds features, and the ops engineer handles deployment and infrastructure.",
5
+ "members": [
6
+ {
7
+ "name": "Developer",
8
+ "role": "developer",
9
+ "systemPrompt": "You are the developer on a demo team. Implement features, write tests, and fix bugs. Coordinate with the product manager on requirements and the ops engineer on deployment needs. Write clean, well-tested TypeScript code following project conventions."
10
+ },
11
+ {
12
+ "name": "Product Manager",
13
+ "role": "product-manager",
14
+ "systemPrompt": "You are the product manager on a demo team. Define requirements, create task breakdowns, and prioritize the backlog. Review the developer's work against acceptance criteria. Coordinate between the developer and ops engineer to keep the team aligned and shipping."
15
+ },
16
+ {
17
+ "name": "Ops Engineer",
18
+ "role": "ops",
19
+ "systemPrompt": "You are the ops engineer on a demo team. Manage deployments, CI/CD pipelines, and infrastructure. Monitor system health and respond to incidents. Coordinate with the developer on build and release processes. Keep environments stable and well-documented."
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,145 @@
1
+ # Social Media Ops — Quick Start
2
+
3
+ ## Overview
4
+
5
+ An AI team that monitors trends, creates platform-native content, manages posting schedules, and analyzes engagement metrics. Runs a continuous weekly cycle: plan → create → publish → analyze → optimize.
6
+
7
+ **Target Users**: E-commerce brands, DTC companies, social-first businesses
8
+ **Team Size**: 3 agents (Social Manager + Content Creator + Analyst)
9
+
10
+ ## Prerequisites
11
+
12
+ - Crewly installed and running (`npx crewly start`)
13
+ - Gemini API key configured (required for `nano-banana-image` skill)
14
+ - (Optional) Xiaohongshu access for `rednote-reader` skill
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # 1. Create the team from template
20
+ npx crewly create-team --template social-media-ops-team
21
+
22
+ # 2. Start the team
23
+ npx crewly start
24
+ ```
25
+
26
+ ## Required Skills
27
+
28
+ | Skill | Purpose | Config Required |
29
+ |-------|---------|----------------|
30
+ | `social-media-post` | Generate platform-optimized social posts | None |
31
+ | `nano-banana-image` | Create visual assets and graphics | `GEMINI_API_KEY` |
32
+ | `feedback-analyzer` | Analyze audience comments and sentiment | None |
33
+ | `daily-standup-report` | Compile daily activity summaries | None |
34
+
35
+ ## Optional Skills
36
+
37
+ | Skill | Purpose |
38
+ |-------|---------|
39
+ | `rednote-reader` | Monitor Xiaohongshu trends (China market) |
40
+ | `send-pdf-to-slack` | Share weekly reports via Slack |
41
+
42
+ ## Workflow
43
+
44
+ ```
45
+ Monday Tue-Thu Friday
46
+ │ │ │
47
+ Social Manager Content Creator Analyst
48
+ │ │ │
49
+ ├─ Monitor trends │ │
50
+ ├─ Review competitors │ │
51
+ ├─ Plan weekly calendar │ │
52
+ │ │ │ │
53
+ │ └────────────────────▶ │
54
+ │ ├─ Create posts │
55
+ │ ├─ Generate visuals │
56
+ │ ├─ Adapt per platform │
57
+ │ │ │ │
58
+ │◀─────────────────────────────┤ │ │
59
+ │ │ │ │
60
+ ├─ Review & approve │ │ │
61
+ ├─ Schedule posting │ │ │
62
+ │ │ │ │
63
+ │ │ └──────────────▶
64
+ │ │ ├─ Collect metrics
65
+ │ │ ├─ Analyze performance
66
+ │ │ ├─ Weekly report
67
+ │ │ │
68
+ │◀──────────────────────────────────────────────────────┤
69
+ ├─ Adjust next week's │ │
70
+ │ strategy │ │
71
+ └──────────────────────────────┘ │
72
+ Next cycle │
73
+ ```
74
+
75
+ ## Expected Output Examples
76
+
77
+ ### Weekly Content Calendar (from Social Manager)
78
+ ```markdown
79
+ ## Week of March 3, 2026
80
+
81
+ | Day | Platform | Topic | Format | Status |
82
+ |-----|----------|-------|--------|--------|
83
+ | Mon | X | Product launch teaser | Thread (5 tweets) | Draft |
84
+ | Mon | LinkedIn | Industry insight post | Long-form | Draft |
85
+ | Tue | X | Customer testimonial | Quote card | Draft |
86
+ | Wed | X | Behind-the-scenes | Photo + caption | Draft |
87
+ | Wed | Reddit | r/ecommerce value post | Tutorial | Draft |
88
+ | Thu | LinkedIn | Team spotlight | Story post | Draft |
89
+ | Fri | X | Weekly roundup | Thread | Draft |
90
+
91
+ **Theme**: Product launch week
92
+ **Hashtags**: #AIteams #ecommerce #automation
93
+ **Competitor watch**: [Brand X] launching similar feature — differentiate on pricing
94
+ ```
95
+
96
+ ### Platform-Native Post (from Content Creator)
97
+ ```
98
+ [X/Twitter — Thread]
99
+ 1/ We just shipped something wild.
100
+
101
+ An AI team that runs your entire social media — from trend research
102
+ to posting to analytics.
103
+
104
+ Not a scheduler. Not a chatbot. A full team. Here's how it works 👇
105
+
106
+ 2/ The Social Manager agent monitors trends 24/7.
107
+ It watches X, LinkedIn, Reddit, and even Xiaohongshu.
108
+
109
+ When it spots a trending topic in your niche, it creates a content brief
110
+ and assigns it to the Content Creator.
111
+
112
+ 3/ The Content Creator produces platform-native posts.
113
+ ...
114
+ ```
115
+
116
+ ### Weekly Analytics Report (from Analyst)
117
+ ```markdown
118
+ ## Social Performance — Week of Feb 24, 2026
119
+
120
+ ### Summary
121
+ - **Total posts**: 12 across 3 platforms
122
+ - **Total impressions**: 45,200 (+18% vs last week)
123
+ - **Engagement rate**: 4.2% (benchmark: 2.5%)
124
+ - **Top post**: "AI Team ROI Calculator" thread — 12K impressions, 340 engagements
125
+
126
+ ### Platform Breakdown
127
+ | Platform | Posts | Impressions | Engagement | Best Day |
128
+ |----------|-------|-------------|------------|----------|
129
+ | X | 7 | 28,400 | 4.8% | Tuesday |
130
+ | LinkedIn | 3 | 12,100 | 3.1% | Monday |
131
+ | Reddit | 2 | 4,700 | 5.2% | Wednesday |
132
+
133
+ ### Recommendations
134
+ 1. **Double down on X threads** — highest engagement format (5.1% avg)
135
+ 2. **Post LinkedIn content Mon-Tue** — 2x engagement vs Thu-Fri
136
+ 3. **Reddit tutorials outperform discussions** — 3x upvotes on how-to posts
137
+ 4. **Test video content next week** — competitor [Brand X] seeing 8% engagement on video
138
+ ```
139
+
140
+ ## Customization
141
+
142
+ - **Add platforms**: Add Xiaohongshu by enabling `rednote-reader` in optional skills
143
+ - **Change cadence**: Modify Social Manager's prompt for daily vs weekly planning
144
+ - **Add team members**: Add a second Content Creator for higher volume
145
+ - **Integrate Slack**: Add `send-pdf-to-slack` to auto-share weekly reports with stakeholders
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Social Media Ops",
3
+ "description": "AI team that monitors social trends, creates platform-native content, manages posting schedules, and analyzes engagement. Built for e-commerce brands, DTC companies, and social-first businesses.",
4
+ "members": [
5
+ {
6
+ "name": "Social Manager",
7
+ "role": "content-strategist",
8
+ "systemPrompt": "You are the social media manager on a social ops team. You own the content calendar, monitor trending topics and competitor activity, and set the strategy for each platform (X, LinkedIn, Reddit, Xiaohongshu). Use the rednote-reader skill to monitor Xiaohongshu trends and competitor posts. Define posting schedules, approve content before publishing, and review analytics to optimize strategy. Coordinate the Content Creator for production and the Analyst for performance insights."
9
+ },
10
+ {
11
+ "name": "Content Creator",
12
+ "role": "designer",
13
+ "systemPrompt": "You are the content creator on a social ops team. You produce platform-native social media posts, short-form copy, and visual assets. Use the social-media-post skill to generate platform-optimized posts for X, LinkedIn, and Reddit. Use the nano-banana-image skill to create eye-catching visuals and graphics. Adapt content tone and format to each platform's audience. Follow the Social Manager's content calendar and brand guidelines."
14
+ },
15
+ {
16
+ "name": "Analyst",
17
+ "role": "product-manager",
18
+ "systemPrompt": "You are the analytics lead on a social ops team. You track engagement metrics, identify high-performing content patterns, and produce weekly performance reports. Use the feedback-analyzer skill to analyze audience comments and sentiment. Use the daily-standup-report skill to compile daily activity summaries. Recommend content adjustments based on data: what topics resonate, best posting times, which platforms drive the most engagement. Feed insights back to the Social Manager for strategy iteration."
19
+ }
20
+ ]
21
+ }