@hailer/mcp 1.1.12 → 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 (271) hide show
  1. package/CHANGELOG.md +0 -7
  2. package/{.claude → dist}/CLAUDE.md +2 -2
  3. package/dist/app.js +18 -5
  4. package/dist/bot/bot-config.d.ts +10 -1
  5. package/dist/bot/bot-config.js +64 -3
  6. package/dist/bot/bot-manager.d.ts +2 -0
  7. package/dist/bot/bot-manager.js +9 -2
  8. package/dist/bot/bot.d.ts +33 -0
  9. package/dist/bot/bot.js +461 -160
  10. package/dist/bot/services/message-classifier.js +17 -0
  11. package/dist/bot/services/permission-guard.d.ts +52 -0
  12. package/dist/bot/services/permission-guard.js +149 -0
  13. package/dist/bot/services/types.d.ts +5 -0
  14. package/dist/bot/services/typing-indicator.d.ts +6 -1
  15. package/dist/bot/services/typing-indicator.js +19 -3
  16. package/dist/cli.js +0 -0
  17. package/dist/config.d.ts +6 -1
  18. package/dist/config.js +43 -0
  19. package/dist/core.js +3 -6
  20. package/dist/lib/discussion-lock.d.ts +42 -0
  21. package/dist/lib/discussion-lock.js +110 -0
  22. package/dist/mcp/UserContextCache.d.ts +5 -0
  23. package/dist/mcp/UserContextCache.js +51 -19
  24. package/dist/mcp/hailer-clients.d.ts +19 -1
  25. package/dist/mcp/hailer-clients.js +158 -24
  26. package/dist/mcp/session-store.d.ts +68 -0
  27. package/dist/mcp/session-store.js +169 -0
  28. package/dist/mcp/signal-handler.js +2 -0
  29. package/dist/mcp/tool-registry.d.ts +17 -4
  30. package/dist/mcp/tool-registry.js +37 -7
  31. package/dist/mcp/tools/activity.js +99 -7
  32. package/dist/mcp/tools/app-scaffold.js +304 -336
  33. package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
  34. package/dist/mcp/tools/bot-config/constants.js +94 -0
  35. package/dist/mcp/tools/bot-config/core.d.ts +253 -0
  36. package/dist/mcp/tools/bot-config/core.js +2456 -0
  37. package/dist/mcp/tools/bot-config/index.d.ts +10 -0
  38. package/dist/mcp/tools/bot-config/index.js +59 -0
  39. package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
  40. package/dist/mcp/tools/bot-config/tools.js +15 -0
  41. package/dist/mcp/tools/bot-config/types.d.ts +50 -0
  42. package/dist/mcp/tools/bot-config/types.js +6 -0
  43. package/dist/mcp/tools/bug-fixer-tools.d.ts +45 -0
  44. package/dist/mcp/tools/bug-fixer-tools.js +1096 -0
  45. package/dist/mcp/tools/company.d.ts +9 -0
  46. package/dist/mcp/tools/company.js +88 -0
  47. package/dist/mcp/tools/discussion.js +68 -0
  48. package/dist/mcp/tools/document.d.ts +11 -0
  49. package/dist/mcp/tools/document.js +741 -0
  50. package/dist/mcp/tools/investigate.d.ts +9 -0
  51. package/dist/mcp/tools/investigate.js +254 -0
  52. package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
  53. package/dist/mcp/tools/workflow-permissions.js +204 -0
  54. package/dist/mcp/tools/workflow.js +57 -18
  55. package/dist/mcp/utils/index.d.ts +2 -0
  56. package/dist/mcp/utils/index.js +12 -1
  57. package/dist/mcp/utils/role-utils.d.ts +74 -0
  58. package/dist/mcp/utils/role-utils.js +151 -0
  59. package/dist/mcp/utils/types.d.ts +43 -1
  60. package/dist/mcp/utils/types.js +14 -0
  61. package/dist/mcp/webhook-handler.d.ts +4 -0
  62. package/dist/mcp/webhook-handler.js +8 -0
  63. package/dist/mcp-server.d.ts +23 -2
  64. package/dist/mcp-server.js +639 -127
  65. package/dist/plugins/vipunen/client.d.ts +150 -0
  66. package/dist/plugins/vipunen/client.js +535 -0
  67. package/dist/plugins/vipunen/config/schema-config.json +19 -0
  68. package/dist/plugins/vipunen/config/schema-doc.json +22 -0
  69. package/dist/plugins/vipunen/index.d.ts +41 -0
  70. package/dist/plugins/vipunen/index.js +88 -0
  71. package/dist/plugins/vipunen/tools.d.ts +26 -0
  72. package/dist/plugins/vipunen/tools.js +501 -0
  73. package/dist/stdio-server.d.ts +14 -0
  74. package/dist/stdio-server.js +101 -0
  75. package/package.json +2 -1
  76. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  77. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  78. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  79. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  80. package/.claude/agents/agent-code-simplifier.md +0 -53
  81. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  82. package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
  83. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  84. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  85. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  86. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  87. package/.claude/agents/agent-ivan-monolith.md +0 -154
  88. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  89. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  90. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  91. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  92. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  93. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  94. package/.claude/agents/agent-permissions-handler.md +0 -208
  95. package/.claude/agents/agent-simple-writer.md +0 -48
  96. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  97. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  98. package/.claude/agents/agent-ui-designer.md +0 -100
  99. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  100. package/.claude/agents/agent-web-search.md +0 -55
  101. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  102. package/.claude/agents/agent-zara-zapier.md +0 -159
  103. package/.claude/commands/app-squad.md +0 -135
  104. package/.claude/commands/audit-squad.md +0 -158
  105. package/.claude/commands/autoplan.md +0 -563
  106. package/.claude/commands/cleanup-squad.md +0 -98
  107. package/.claude/commands/config-squad.md +0 -106
  108. package/.claude/commands/crud-squad.md +0 -87
  109. package/.claude/commands/data-squad.md +0 -97
  110. package/.claude/commands/debug-squad.md +0 -303
  111. package/.claude/commands/doc-squad.md +0 -65
  112. package/.claude/commands/handoff.md +0 -137
  113. package/.claude/commands/health.md +0 -49
  114. package/.claude/commands/help.md +0 -29
  115. package/.claude/commands/help:agents.md +0 -151
  116. package/.claude/commands/help:commands.md +0 -78
  117. package/.claude/commands/help:faq.md +0 -79
  118. package/.claude/commands/help:plugins.md +0 -50
  119. package/.claude/commands/help:skills.md +0 -93
  120. package/.claude/commands/help:tools.md +0 -75
  121. package/.claude/commands/hotfix-squad.md +0 -112
  122. package/.claude/commands/integration-squad.md +0 -82
  123. package/.claude/commands/janitor-squad.md +0 -167
  124. package/.claude/commands/learn-auto.md +0 -120
  125. package/.claude/commands/learn.md +0 -120
  126. package/.claude/commands/mcp-list.md +0 -27
  127. package/.claude/commands/onboard-squad.md +0 -140
  128. package/.claude/commands/plan-workspace.md +0 -732
  129. package/.claude/commands/prd.md +0 -130
  130. package/.claude/commands/project-status.md +0 -82
  131. package/.claude/commands/publish.md +0 -138
  132. package/.claude/commands/recap.md +0 -69
  133. package/.claude/commands/restore.md +0 -64
  134. package/.claude/commands/review-squad.md +0 -152
  135. package/.claude/commands/save.md +0 -24
  136. package/.claude/commands/stats.md +0 -19
  137. package/.claude/commands/swarm.md +0 -210
  138. package/.claude/commands/tool-builder.md +0 -39
  139. package/.claude/commands/ws-pull.md +0 -44
  140. package/.claude/hooks/_shared-memory.cjs +0 -305
  141. package/.claude/hooks/_utils.cjs +0 -108
  142. package/.claude/hooks/agent-failure-detector.cjs +0 -383
  143. package/.claude/hooks/agent-usage-logger.cjs +0 -204
  144. package/.claude/hooks/app-edit-guard.cjs +0 -494
  145. package/.claude/hooks/auto-learn.cjs +0 -304
  146. package/.claude/hooks/bash-guard.cjs +0 -272
  147. package/.claude/hooks/builder-mode-manager.cjs +0 -354
  148. package/.claude/hooks/bulk-activity-guard.cjs +0 -271
  149. package/.claude/hooks/context-watchdog.cjs +0 -230
  150. package/.claude/hooks/delegation-reminder.cjs +0 -465
  151. package/.claude/hooks/design-system-lint.cjs +0 -271
  152. package/.claude/hooks/post-scaffold-hook.cjs +0 -181
  153. package/.claude/hooks/prompt-guard.cjs +0 -354
  154. package/.claude/hooks/publish-template-guard.cjs +0 -147
  155. package/.claude/hooks/session-start.cjs +0 -35
  156. package/.claude/hooks/shared-memory-writer.cjs +0 -147
  157. package/.claude/hooks/skill-injector.cjs +0 -140
  158. package/.claude/hooks/skill-usage-logger.cjs +0 -258
  159. package/.claude/hooks/src-edit-guard.cjs +0 -240
  160. package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
  161. package/.claude/settings.json +0 -257
  162. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  163. package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
  164. package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
  165. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  166. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  167. package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
  168. package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
  169. package/.claude/skills/agent-structure/SKILL.md +0 -98
  170. package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
  171. package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
  172. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  173. package/.claude/skills/frontend-design/SKILL.md +0 -254
  174. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  175. package/.claude/skills/hailer-api-client/SKILL.md +0 -518
  176. package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
  177. package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
  178. package/.claude/skills/hailer-design-system/SKILL.md +0 -235
  179. package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
  180. package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
  181. package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
  182. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  183. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  184. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  185. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  186. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  187. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  188. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  189. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  190. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  191. package/.claude/skills/integration-patterns/SKILL.md +0 -421
  192. package/.claude/skills/json-only-output/SKILL.md +0 -72
  193. package/.claude/skills/lsp-setup/SKILL.md +0 -160
  194. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  195. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  196. package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
  197. package/.claude/skills/testing-patterns/SKILL.md +0 -630
  198. package/.claude/skills/tool-builder/SKILL.md +0 -250
  199. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  200. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  201. package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
  202. package/.mcp.json +0 -13
  203. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  204. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  205. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  206. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  207. package/.opencode/agent/agent-code-simplifier.md +0 -31
  208. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  209. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  210. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  211. package/.opencode/agent/agent-helga-workflow-config.md +0 -203
  212. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  213. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  214. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  215. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  216. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  217. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  218. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  219. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  220. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  221. package/.opencode/agent/agent-permissions-handler.md +0 -50
  222. package/.opencode/agent/agent-simple-writer.md +0 -45
  223. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  224. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  225. package/.opencode/agent/agent-ui-designer.md +0 -56
  226. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  227. package/.opencode/agent/agent-web-search.md +0 -42
  228. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  229. package/.opencode/agent/agent-zara-zapier.md +0 -53
  230. package/.opencode/commands/app-squad.md +0 -135
  231. package/.opencode/commands/audit-squad.md +0 -158
  232. package/.opencode/commands/autoplan.md +0 -563
  233. package/.opencode/commands/cleanup-squad.md +0 -98
  234. package/.opencode/commands/config-squad.md +0 -106
  235. package/.opencode/commands/crud-squad.md +0 -87
  236. package/.opencode/commands/data-squad.md +0 -97
  237. package/.opencode/commands/debug-squad.md +0 -303
  238. package/.opencode/commands/doc-squad.md +0 -65
  239. package/.opencode/commands/handoff.md +0 -137
  240. package/.opencode/commands/health.md +0 -49
  241. package/.opencode/commands/help-agents.md +0 -151
  242. package/.opencode/commands/help-commands.md +0 -32
  243. package/.opencode/commands/help-faq.md +0 -29
  244. package/.opencode/commands/help-plugins.md +0 -28
  245. package/.opencode/commands/help-skills.md +0 -7
  246. package/.opencode/commands/help-tools.md +0 -40
  247. package/.opencode/commands/help.md +0 -28
  248. package/.opencode/commands/hotfix-squad.md +0 -112
  249. package/.opencode/commands/integration-squad.md +0 -82
  250. package/.opencode/commands/janitor-squad.md +0 -167
  251. package/.opencode/commands/learn-auto.md +0 -120
  252. package/.opencode/commands/learn.md +0 -120
  253. package/.opencode/commands/mcp-list.md +0 -27
  254. package/.opencode/commands/onboard-squad.md +0 -140
  255. package/.opencode/commands/plan-workspace.md +0 -732
  256. package/.opencode/commands/prd.md +0 -131
  257. package/.opencode/commands/project-status.md +0 -82
  258. package/.opencode/commands/publish.md +0 -138
  259. package/.opencode/commands/recap.md +0 -69
  260. package/.opencode/commands/restore.md +0 -64
  261. package/.opencode/commands/review-squad.md +0 -152
  262. package/.opencode/commands/save.md +0 -24
  263. package/.opencode/commands/stats.md +0 -19
  264. package/.opencode/commands/swarm.md +0 -210
  265. package/.opencode/commands/tool-builder.md +0 -39
  266. package/.opencode/commands/ws-pull.md +0 -44
  267. package/.opencode/opencode.json +0 -28
  268. package/SESSION-HANDOFF.md +0 -68
  269. package/inbox/2026-03-04-bot-config-patterns.md +0 -24
  270. package/scripts/postinstall.cjs +0 -64
  271. 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