@hailer/mcp 1.1.11 → 1.1.13

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 (252) hide show
  1. package/dist/app.js +18 -5
  2. package/dist/bot/bot-config.d.ts +12 -1
  3. package/dist/bot/bot-config.js +98 -14
  4. package/dist/bot/bot-manager.d.ts +13 -3
  5. package/dist/bot/bot-manager.js +80 -25
  6. package/dist/bot/bot.d.ts +46 -0
  7. package/dist/bot/bot.js +542 -166
  8. package/dist/bot/services/message-classifier.js +17 -0
  9. package/dist/bot/services/permission-guard.d.ts +52 -0
  10. package/dist/bot/services/permission-guard.js +149 -0
  11. package/dist/bot/services/types.d.ts +5 -0
  12. package/dist/bot/services/typing-indicator.d.ts +6 -1
  13. package/dist/bot/services/typing-indicator.js +19 -3
  14. package/dist/config.d.ts +6 -1
  15. package/dist/config.js +43 -0
  16. package/dist/core.js +3 -6
  17. package/dist/mcp/UserContextCache.d.ts +5 -0
  18. package/dist/mcp/UserContextCache.js +51 -19
  19. package/dist/mcp/hailer-clients.d.ts +19 -1
  20. package/dist/mcp/hailer-clients.js +157 -20
  21. package/dist/mcp/session-store.d.ts +68 -0
  22. package/dist/mcp/session-store.js +169 -0
  23. package/dist/mcp/signal-handler.js +12 -12
  24. package/dist/mcp/tool-registry.d.ts +17 -4
  25. package/dist/mcp/tool-registry.js +37 -7
  26. package/dist/mcp/tools/activity.js +99 -7
  27. package/dist/mcp/tools/app-scaffold.js +304 -336
  28. package/dist/mcp/tools/company.d.ts +9 -0
  29. package/dist/mcp/tools/company.js +88 -0
  30. package/dist/mcp/tools/discussion.js +68 -0
  31. package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
  32. package/dist/mcp/tools/workflow-permissions.js +204 -0
  33. package/dist/mcp/tools/workflow.js +57 -18
  34. package/dist/mcp/utils/index.d.ts +2 -0
  35. package/dist/mcp/utils/index.js +12 -1
  36. package/dist/mcp/utils/role-utils.d.ts +74 -0
  37. package/dist/mcp/utils/role-utils.js +151 -0
  38. package/dist/mcp/utils/types.d.ts +43 -1
  39. package/dist/mcp/utils/types.js +14 -0
  40. package/dist/mcp/webhook-handler.d.ts +6 -0
  41. package/dist/mcp/webhook-handler.js +11 -0
  42. package/dist/mcp-server.d.ts +23 -2
  43. package/dist/mcp-server.js +639 -111
  44. package/dist/plugins/vipunen/client.d.ts +150 -0
  45. package/dist/plugins/vipunen/client.js +535 -0
  46. package/dist/plugins/vipunen/config/schema-config.json +19 -0
  47. package/dist/plugins/vipunen/config/schema-doc.json +22 -0
  48. package/dist/plugins/vipunen/index.d.ts +41 -0
  49. package/dist/plugins/vipunen/index.js +88 -0
  50. package/dist/plugins/vipunen/tools.d.ts +26 -0
  51. package/dist/plugins/vipunen/tools.js +501 -0
  52. package/package.json +2 -1
  53. package/.claude/.context-watchdog.json +0 -1
  54. package/.claude/.session-checked +0 -1
  55. package/.claude/CLAUDE.md +0 -370
  56. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  57. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  58. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  59. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  60. package/.claude/agents/agent-code-simplifier.md +0 -53
  61. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  62. package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
  63. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  64. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  65. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  66. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  67. package/.claude/agents/agent-ivan-monolith.md +0 -154
  68. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  69. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  70. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  71. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  72. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  73. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  74. package/.claude/agents/agent-permissions-handler.md +0 -208
  75. package/.claude/agents/agent-simple-writer.md +0 -48
  76. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  77. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  78. package/.claude/agents/agent-ui-designer.md +0 -100
  79. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  80. package/.claude/agents/agent-web-search.md +0 -55
  81. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  82. package/.claude/agents/agent-zara-zapier.md +0 -159
  83. package/.claude/commands/app-squad.md +0 -135
  84. package/.claude/commands/audit-squad.md +0 -158
  85. package/.claude/commands/autoplan.md +0 -563
  86. package/.claude/commands/cleanup-squad.md +0 -98
  87. package/.claude/commands/config-squad.md +0 -106
  88. package/.claude/commands/crud-squad.md +0 -87
  89. package/.claude/commands/data-squad.md +0 -97
  90. package/.claude/commands/debug-squad.md +0 -303
  91. package/.claude/commands/doc-squad.md +0 -65
  92. package/.claude/commands/handoff.md +0 -137
  93. package/.claude/commands/health.md +0 -49
  94. package/.claude/commands/help.md +0 -29
  95. package/.claude/commands/help:agents.md +0 -151
  96. package/.claude/commands/help:commands.md +0 -78
  97. package/.claude/commands/help:faq.md +0 -79
  98. package/.claude/commands/help:plugins.md +0 -50
  99. package/.claude/commands/help:skills.md +0 -93
  100. package/.claude/commands/help:tools.md +0 -75
  101. package/.claude/commands/hotfix-squad.md +0 -112
  102. package/.claude/commands/integration-squad.md +0 -82
  103. package/.claude/commands/janitor-squad.md +0 -167
  104. package/.claude/commands/learn-auto.md +0 -120
  105. package/.claude/commands/learn.md +0 -120
  106. package/.claude/commands/mcp-list.md +0 -27
  107. package/.claude/commands/onboard-squad.md +0 -140
  108. package/.claude/commands/plan-workspace.md +0 -732
  109. package/.claude/commands/prd.md +0 -130
  110. package/.claude/commands/project-status.md +0 -82
  111. package/.claude/commands/publish.md +0 -138
  112. package/.claude/commands/recap.md +0 -69
  113. package/.claude/commands/restore.md +0 -64
  114. package/.claude/commands/review-squad.md +0 -152
  115. package/.claude/commands/save.md +0 -24
  116. package/.claude/commands/stats.md +0 -19
  117. package/.claude/commands/swarm.md +0 -210
  118. package/.claude/commands/tool-builder.md +0 -39
  119. package/.claude/commands/ws-pull.md +0 -44
  120. package/.claude/hooks/_shared-memory.cjs +0 -305
  121. package/.claude/hooks/_utils.cjs +0 -108
  122. package/.claude/hooks/agent-failure-detector.cjs +0 -383
  123. package/.claude/hooks/agent-usage-logger.cjs +0 -204
  124. package/.claude/hooks/app-edit-guard.cjs +0 -494
  125. package/.claude/hooks/auto-learn.cjs +0 -304
  126. package/.claude/hooks/bash-guard.cjs +0 -272
  127. package/.claude/hooks/builder-mode-manager.cjs +0 -354
  128. package/.claude/hooks/bulk-activity-guard.cjs +0 -271
  129. package/.claude/hooks/context-watchdog.cjs +0 -230
  130. package/.claude/hooks/delegation-reminder.cjs +0 -465
  131. package/.claude/hooks/design-system-lint.cjs +0 -271
  132. package/.claude/hooks/post-scaffold-hook.cjs +0 -181
  133. package/.claude/hooks/prompt-guard.cjs +0 -354
  134. package/.claude/hooks/publish-template-guard.cjs +0 -147
  135. package/.claude/hooks/session-start.cjs +0 -35
  136. package/.claude/hooks/shared-memory-writer.cjs +0 -147
  137. package/.claude/hooks/skill-injector.cjs +0 -140
  138. package/.claude/hooks/skill-usage-logger.cjs +0 -258
  139. package/.claude/hooks/src-edit-guard.cjs +0 -240
  140. package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
  141. package/.claude/settings.json +0 -257
  142. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  143. package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
  144. package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
  145. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  146. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  147. package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
  148. package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
  149. package/.claude/skills/agent-structure/SKILL.md +0 -98
  150. package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
  151. package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
  152. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  153. package/.claude/skills/frontend-design/SKILL.md +0 -254
  154. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  155. package/.claude/skills/hailer-api-client/SKILL.md +0 -518
  156. package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
  157. package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
  158. package/.claude/skills/hailer-design-system/SKILL.md +0 -235
  159. package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
  160. package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
  161. package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
  162. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  163. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  164. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  165. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  166. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  167. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  168. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  169. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  170. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  171. package/.claude/skills/integration-patterns/SKILL.md +0 -421
  172. package/.claude/skills/json-only-output/SKILL.md +0 -72
  173. package/.claude/skills/lsp-setup/SKILL.md +0 -160
  174. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  175. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  176. package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
  177. package/.claude/skills/testing-patterns/SKILL.md +0 -630
  178. package/.claude/skills/tool-builder/SKILL.md +0 -250
  179. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  180. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  181. package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
  182. package/.hailer-mcp-port +0 -1
  183. package/.mcp.json +0 -13
  184. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  185. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  186. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  187. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  188. package/.opencode/agent/agent-code-simplifier.md +0 -31
  189. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  190. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  191. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  192. package/.opencode/agent/agent-helga-workflow-config.md +0 -204
  193. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  194. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  195. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  196. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  197. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  198. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  199. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  200. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  201. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  202. package/.opencode/agent/agent-permissions-handler.md +0 -50
  203. package/.opencode/agent/agent-simple-writer.md +0 -45
  204. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  205. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  206. package/.opencode/agent/agent-ui-designer.md +0 -56
  207. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  208. package/.opencode/agent/agent-web-search.md +0 -42
  209. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  210. package/.opencode/agent/agent-zara-zapier.md +0 -53
  211. package/.opencode/commands/app-squad.md +0 -135
  212. package/.opencode/commands/audit-squad.md +0 -158
  213. package/.opencode/commands/autoplan.md +0 -563
  214. package/.opencode/commands/cleanup-squad.md +0 -98
  215. package/.opencode/commands/config-squad.md +0 -106
  216. package/.opencode/commands/crud-squad.md +0 -87
  217. package/.opencode/commands/data-squad.md +0 -97
  218. package/.opencode/commands/debug-squad.md +0 -303
  219. package/.opencode/commands/doc-squad.md +0 -65
  220. package/.opencode/commands/handoff.md +0 -137
  221. package/.opencode/commands/health.md +0 -49
  222. package/.opencode/commands/help-agents.md +0 -151
  223. package/.opencode/commands/help-commands.md +0 -32
  224. package/.opencode/commands/help-faq.md +0 -29
  225. package/.opencode/commands/help-plugins.md +0 -28
  226. package/.opencode/commands/help-skills.md +0 -7
  227. package/.opencode/commands/help-tools.md +0 -40
  228. package/.opencode/commands/help.md +0 -28
  229. package/.opencode/commands/hotfix-squad.md +0 -112
  230. package/.opencode/commands/integration-squad.md +0 -82
  231. package/.opencode/commands/janitor-squad.md +0 -167
  232. package/.opencode/commands/learn-auto.md +0 -120
  233. package/.opencode/commands/learn.md +0 -120
  234. package/.opencode/commands/mcp-list.md +0 -27
  235. package/.opencode/commands/onboard-squad.md +0 -140
  236. package/.opencode/commands/plan-workspace.md +0 -732
  237. package/.opencode/commands/prd.md +0 -131
  238. package/.opencode/commands/project-status.md +0 -82
  239. package/.opencode/commands/publish.md +0 -138
  240. package/.opencode/commands/recap.md +0 -69
  241. package/.opencode/commands/restore.md +0 -64
  242. package/.opencode/commands/review-squad.md +0 -152
  243. package/.opencode/commands/save.md +0 -24
  244. package/.opencode/commands/stats.md +0 -19
  245. package/.opencode/commands/swarm.md +0 -210
  246. package/.opencode/commands/tool-builder.md +0 -39
  247. package/.opencode/commands/ws-pull.md +0 -44
  248. package/.opencode/opencode.json +0 -21
  249. package/inbox/failures.log +0 -1
  250. package/inbox/usage.jsonl +0 -4
  251. package/scripts/postinstall.cjs +0 -64
  252. package/scripts/test-hal-tools.ts +0 -154
@@ -1,135 +0,0 @@
1
- ---
2
- description: Design and build a Hailer app with UI Designer and Giuseppe
3
- argument-hint: "app description"
4
- allowed-tools: Task, Bash, Read
5
- ---
6
- # App Squad
7
-
8
- Sequential pipeline with data discovery, design, build, and test loop.
9
-
10
- **Agents:**
11
- 1. **Kenji** - Discovers real workflow/insight schemas, field IDs, column names
12
- 2. **UI Designer** - Creates design spec (layout, components, aesthetic direction)
13
- 3. **Giuseppe** - Builds the app from the design spec + real schema data
14
- 4. **Tanya** - Build verification and tests (loop trigger)
15
-
16
- **Goal:** $ARGUMENTS
17
-
18
- ## Protocol
19
-
20
- ### Step 1: Gather Context
21
-
22
- Before spawning agents, determine:
23
- - Does `workspace/` exist? If yes, this is a Hailer project.
24
- - Does `apps/` directory exist? Create if needed.
25
- - What workflows/data will the app use?
26
-
27
- If context is unclear, use AskUserQuestion:
28
- - What data should the app display?
29
- - Authenticated or public app?
30
- - Any specific layout preferences?
31
-
32
- ### Step 2: Data Discovery (Kenji)
33
-
34
- **CRITICAL: Giuseppe MUST NOT guess IDs or column names.** Kenji looks them up first.
35
-
36
- Spawn Kenji to discover the actual schema data the app will need:
37
-
38
- ```
39
- Task(subagent_type="agent-kenji-data-reader", prompt='{"task":"app_data_discovery","description":"Look up all schema data needed for this app: $ARGUMENTS","gather":["workflow IDs and names","field IDs, labels, and types for each workflow","phase IDs and names","insight IDs and their column names (if the app uses insights)","any ActivityLink field targets"],"output":"Return a structured JSON with all IDs, field definitions, insight columns, and phase maps. This will be passed directly to the app builder."}')
40
- ```
41
-
42
- Wait for result. Save the **schema data** output - this is passed to both UI Designer and Giuseppe.
43
-
44
- ### Step 3: Design (UI Designer)
45
-
46
- Spawn UI Designer with the schema data so it knows what real fields/columns exist:
47
-
48
- ```
49
- Task(subagent_type="agent-ui-designer", prompt="Design a Hailer app: $ARGUMENTS.\n\nAvailable data schema:\n[PASTE KENJI'S SCHEMA OUTPUT]\n\nOutput a design spec with: tone, signature element, layout structure, key components, and data flow. Reference actual field IDs and column names from the schema. Format as structured JSON that Giuseppe can consume.")
50
- ```
51
-
52
- Wait for result. Save the design spec output.
53
-
54
- ### Step 4: Build-Test Loop
55
-
56
- **Set:** `iteration = 1`
57
-
58
- #### Step 4a: Giuseppe (Build)
59
-
60
- **Before spawning Giuseppe, enable builder mode:**
61
- ```
62
- Bash: node .claude/hooks/app-edit-guard.cjs --agent-on
63
- ```
64
-
65
- Spawn Giuseppe with BOTH the design spec AND the schema data:
66
-
67
- ```
68
- Task(subagent_type="agent-giuseppe-app-builder", prompt="Build this Hailer app using the following design spec and schema data:\n\n## Design Spec\n[PASTE FULL DESIGN SPEC FROM STEP 3]\n\n## Schema Data (from Kenji - use these EXACT IDs)\nSchema data from Kenji: [PASTE KENJI'S SCHEMA OUTPUT FROM STEP 2 - Kenji already ran in Step 2 and returned all IDs. The orchestrator doesn't need to read workspace/ directly.]\n\nApp goal: $ARGUMENTS\n\n[IF iteration > 1: Previous build failed. Here are the errors to fix:\n[PASTE TANYA'S BUILD/TEST ERRORS]\nFix these specific issues while keeping the rest of the app intact.]\n\nIMPORTANT: Use the EXACT field IDs, workflow IDs, insight IDs, and column names from the schema data above. Do NOT guess or invent any IDs.\n\nFollow the design spec for layout, components, and aesthetic. Use @hailer/app-sdk with Chakra UI and Hailer Design System.")
69
- ```
70
-
71
- **After Giuseppe completes, disable builder mode:**
72
- ```
73
- Bash: node .claude/hooks/app-edit-guard.cjs --agent-off
74
- ```
75
-
76
- #### Step 4b: Tanya (Build Verification)
77
-
78
- Spawn Tanya to verify the build:
79
-
80
- ```
81
- Task(subagent_type="agent-tanya-test-runner", prompt="Verify the app build for: $ARGUMENTS.\n\nRun:\n1. TypeScript compilation (tsc --noEmit)\n2. Build (npm run build)\n3. Any existing tests (npm test if configured)\n\nReport: build pass/fail, type errors, test results.")
82
- ```
83
-
84
- **If build PASSES:** proceed to Step 5 (report).
85
-
86
- **If build FAILS:**
87
- - Classify errors:
88
- - **Code-fixable** (type errors, missing imports, wrong API usage, JSX issues): Giuseppe can handle these
89
- - **Infrastructure** (missing dependency/package, wrong Node version, environment config, missing workspace data): escalate immediately to user
90
- - If only infrastructure errors: skip to Step 5 with clear explanation of what the user needs to fix
91
- - If code-fixable errors AND `iteration < 3`: increment iteration, go back to **Step 4a** with Tanya's error output
92
- - If `iteration >= 3`: escalate to user with the remaining errors (see Step 5)
93
-
94
- ### Step 5: Report
95
-
96
- ```markdown
97
- ## App Squad Complete
98
-
99
- ### Loop Summary
100
- - Build iterations: [count] of 3 max
101
- - Final build status: PASS / FAIL (escalated)
102
-
103
- ### Design (UI Designer)
104
- - Tone: [from spec]
105
- - Signature element: [from spec]
106
- - Components: [list]
107
-
108
- ### Build (Giuseppe)
109
- - App path: [path]
110
- - Build status: Pass/Fail
111
- - Files created: [list]
112
- - [If multiple iterations: summary of what was fixed each round]
113
-
114
- ### Verification (Tanya)
115
- - TypeScript: Pass/Fail
116
- - Build: Pass/Fail
117
- - Tests: X passed, X failed
118
-
119
- [If ESCALATED:]
120
- ### Remaining Build Errors
121
- [List errors Giuseppe couldn't resolve in 3 attempts]
122
- - Suggested manual fixes: [hints based on error types]
123
-
124
- ### Next Steps
125
- - Run `npm run dev` to test locally
126
- - Test inside Hailer iframe
127
- ```
128
-
129
- ## Notes
130
-
131
- - Giuseppe defaults to local dev (localhost:3000). Publishing only when user explicitly asks (loads publish-hailer-app skill)
132
- - **Kenji runs FIRST** to discover all real IDs - Giuseppe must NEVER guess workflow IDs, field IDs, insight IDs, or column names
133
- - If the app needs an insight for public data, mention it in the goal - Kenji will look up existing insight columns
134
- - Build verification catches type errors and compilation issues before the user tries to run
135
- - Each iteration gives Giuseppe the specific errors to fix, avoiding repeated mistakes
@@ -1,158 +0,0 @@
1
- ---
2
- description: Run parallel security and permissions audit with Svetlana, Permissions Handler, and Gunther
3
- argument-hint: [files, app name, or blank for full audit]
4
- allowed-tools: Task, Bash
5
- ---
6
-
7
- # Audit Squad
8
-
9
- Parallel security and permissions audit: code hardening, access control verification, and MCP tool validation.
10
-
11
- **Agents:**
12
- - **Svetlana** - Code review (hardcoded secrets, injection vulnerabilities, insecure patterns, OWASP top 10)
13
- - **Permissions Handler** - Access control audit (effective permissions, team access levels, permission matrix)
14
- - **Gunther** - MCP tools security (input validation, data exposure, security best practices)
15
-
16
- **Target:** $ARGUMENTS (if blank, use full project scope)
17
-
18
- **Scope options:**
19
- - Specific files or directory path
20
- - App name (checks that app's code and permissions)
21
- - Blank for full project audit
22
-
23
- ## Protocol
24
-
25
- ### Step 1: Determine Target
26
-
27
- If `$ARGUMENTS` has specific files/directories or app name, use those.
28
- Otherwise, scope is the entire project (workspace/ + apps/ + integrations/).
29
-
30
- If `$ARGUMENTS` contains `--code-only`:
31
- - Remove flag from target
32
- - Skip Permissions Handler and Gunther in Step 2
33
-
34
- If `$ARGUMENTS` contains `--permissions-only`:
35
- - Remove flag from target
36
- - Skip Svetlana and Gunther in Step 2
37
-
38
- If `$ARGUMENTS` contains `--bg`:
39
- - Launch all agents in background mode
40
-
41
- ### Step 2: Launch Audit Agents in Parallel
42
-
43
- Spawn all applicable agents simultaneously using multiple Task tool calls in a single message:
44
-
45
- **Svetlana:**
46
- ```
47
- Task(subagent_type="agent-svetlana-code-review", prompt="Security audit of these files: [TARGET]. Focus on: hardcoded secrets, API keys, credentials, injection vulnerabilities (SQL/XSS/Command), insecure crypto usage, missing input validation, OWASP Top 10 issues, unsafe deserialization, missing authentication/authorization checks. Return verdict (PASS/FAIL), critical count, and detailed findings per file.")
48
- ```
49
-
50
- **Permissions Handler:**
51
- ```
52
- Task(subagent_type="agent-permissions-handler", prompt="Audit access control for the entire project. Map effective permissions: who has access to which apps, which teams have what access levels, which users are admins, workspace-wide versus app-specific permissions. Produce a permission matrix showing [User/Team] → [App] → [Access Level]. Flag any excessive or unclear permissions.")
53
- ```
54
-
55
- **Gunther:**
56
- ```
57
- Task(subagent_type="agent-gunther-mcp-tools", prompt="Security audit of custom MCP tools (if any exist in src/mcp/tools/). Verify: input validation with Zod schemas, no unintended data exposure, proper error handling, rate limiting awareness, secure defaults. Report security posture per tool. If no custom tools exist, report that.")
58
- ```
59
-
60
- ### Step 3: Categorize and Aggregate Results
61
-
62
- Collect results from all agents. Categorize findings into three tiers:
63
-
64
- **CRITICAL:**
65
- - Hardcoded secrets/credentials
66
- - SQL injection, XSS, command injection vulnerabilities
67
- - Authentication/authorization bypasses
68
- - Excessive uncontrolled permissions
69
- - MCP tools exposing sensitive data
70
-
71
- **WARNING:**
72
- - Weak crypto usage
73
- - Missing input sanitization
74
- - Unclear permission delegations
75
- - Unvalidated MCP tool inputs
76
- - Missing rate limiting on tools
77
-
78
- **INFO:**
79
- - Best practice improvements
80
- - Code hardening suggestions
81
- - Permission clarity recommendations
82
-
83
- ### Step 4: Report
84
-
85
- ```markdown
86
- ## Audit Squad Report
87
-
88
- ### Scope
89
- [What was audited]
90
-
91
- ### Overall Security Posture
92
- [Rating: PASS / WARNING / CRITICAL]
93
- - Critical findings: X
94
- - Warnings: X
95
- - Info items: X
96
-
97
- ### Svetlana (Code Security Review)
98
- **Verdict:** PASS / FAIL / WARNINGS
99
- - Critical: X [list]
100
- - Warnings: X [list]
101
- - Info: X [list]
102
- - Files affected: [grouped summary]
103
-
104
- ### Permissions Handler (Access Control)
105
- **Matrix Status:** [OK / EXCESSIVE / UNCLEAR]
106
- - Total apps: X
107
- - Total teams: X
108
- - Users with admin access: X
109
- - Flagged permissions: [list]
110
- - [Permission matrix if findings exist]
111
-
112
- ### Gunther (MCP Tools Security)
113
- **Status:** [No tools / PASS / WARNINGS / CRITICAL]
114
- [If tools exist:]
115
- - Tools audited: X
116
- - Input validation issues: X
117
- - Data exposure risks: X
118
- - Best practice gaps: X
119
-
120
- ### Findings by Severity
121
-
122
- #### CRITICAL (Require Immediate Action)
123
- [List all critical findings with file/tool and remediation steps]
124
-
125
- #### WARNING (Address in Next Sprint)
126
- [List all warnings with context]
127
-
128
- #### INFO (Consider for Hardening)
129
- [List informational recommendations]
130
-
131
- ### Remediation Checklist
132
- - [ ] [Critical issue 1]: [Action]
133
- - [ ] [Critical issue 2]: [Action]
134
- - [ ] [Warning 1]: [Action]
135
-
136
- ### Summary
137
- [1-2 sentence overall assessment of security posture and next steps]
138
- ```
139
-
140
- If any agent fails or times out, report partial results from successful agents, note which failed, and offer to re-run individually.
141
-
142
- ## Options
143
-
144
- | Flag | Effect |
145
- |------|--------|
146
- | `--code-only` | Skip permissions and MCP tools (code review only, faster) |
147
- | `--permissions-only` | Skip code review and MCP tools (permissions matrix only) |
148
- | `--bg` | Run all agents in background mode |
149
-
150
- If `--bg` is present, launch all agents with `run_in_background: true` and tell the user they'll be notified when complete.
151
-
152
- ## Notes
153
-
154
- - Default scope is full project if no arguments provided
155
- - Svetlana focuses on secrets and injection attacks; general code quality is separate (/review-squad)
156
- - Permissions Handler is organization-wide - includes team and app-level settings
157
- - Gunther only validates if custom MCP tools exist in the project
158
- - Critical findings should block deployment; warnings should be tracked for next sprint