@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,82 +0,0 @@
1
- ---
2
- description: Build backend integrations with Kenji, Ivan, and Tanya
3
- argument-hint: "integration description"
4
- allowed-tools: Task, Bash, Read
5
- ---
6
- # Integration Squad
7
-
8
- Sequential pipeline: Schema discovery, build integration, then verify with tests.
9
-
10
- **Agents:**
11
- 1. **Kenji** - Schema discovery (workflow fields, types, IDs)
12
- 2. **Ivan** - Build integration (monolith webhooks, scheduled jobs, automations)
13
- 3. **Tanya** - Test runner (verify integration with tests)
14
-
15
- **Goal:** $ARGUMENTS
16
-
17
- ## Protocol
18
-
19
- ### Step 1: Kenji (Schema Discovery)
20
-
21
- Start with Kenji to gather workflow schema and field IDs needed for the integration:
22
-
23
- ```
24
- Task(subagent_type="agent-kenji-data-reader", prompt="List all workflows and their fields relevant to: $ARGUMENTS. Include field IDs, types, and any existing integrations. Also identify webhook URLs and activity phase names needed.")
25
- ```
26
-
27
- Wait for result. Save the schema output - Ivan needs these IDs.
28
-
29
- ### Step 2: Ivan (Build Integration)
30
-
31
- Spawn Ivan with the schema context from Kenji:
32
-
33
- ```
34
- Task(subagent_type="agent-ivan-monolith", prompt="Build a backend integration for: $ARGUMENTS.\n\nWorkflow schema from Kenji:\n[PASTE KENJI'S OUTPUT - workflow IDs, field IDs, types, phases]\n\nImplement in the hailer-integration monolith. Use correct IDs for webhooks, scheduled jobs, or automations.")
35
- ```
36
-
37
- Wait for result. If `"status": "ready_to_push"`:
38
- - Run the push commands Ivan provides
39
-
40
- ### Step 3: Tanya (Test Runner)
41
-
42
- Spawn Tanya to verify the integration works:
43
-
44
- ```
45
- Task(subagent_type="agent-tanya-test-runner", prompt="Test the integration for: $ARGUMENTS.\n\nTest coverage needed:\n- Webhook payload validation (if webhook)\n- Scheduled job execution (if scheduled)\n- Activity creation/phase transitions\n- Error handling and edge cases\n\nRun tests and report pass/fail counts.")
46
- ```
47
-
48
- Wait for result. If tests fail, report which ones and offer to have Ivan fix issues.
49
-
50
- ### Step 4: Report
51
-
52
- ```markdown
53
- ## Integration Squad Complete
54
-
55
- ### Kenji (Schema Discovery)
56
- - Workflows found: [list]
57
- - Fields mapped: [count]
58
- - Phases identified: [list]
59
- - Existing integrations: [list or "none"]
60
-
61
- ### Ivan (Monolith Integration)
62
- - Integration type: [webhook/scheduled/automation]
63
- - Files created/modified: [list]
64
- - Endpoints: [list if webhook]
65
- - Commands run: [list]
66
-
67
- ### Tanya (Tests)
68
- - Tests: X passed, X failed
69
- - Build: Pass/Fail
70
- - [Failed test details if any]
71
-
72
- ### Next Steps
73
- - Deploy to staging environment
74
- - Test end-to-end in Hailer
75
- - Monitor for errors in production logs
76
- ```
77
-
78
- ## Notes
79
-
80
- - Kenji must run first to get real IDs - never let Ivan guess IDs
81
- - Each agent in the pipeline depends on output from the previous step
82
- - If tests fail, Ivan may need to revise the integration code
@@ -1,167 +0,0 @@
1
- ---
2
- description: Deep project cleanup - code, config, and data patterns
3
- argument-hint: [scope or blank for full project]
4
- allowed-tools: Task, Bash
5
- ---
6
- # Janitor Squad
7
-
8
- Deep project cleanup across code, configuration, and data. Discovers dead patterns and auto-fixes clear-cut removals.
9
-
10
- **Agents:**
11
- - **Lars** - Dead code detection (unused imports, unreachable code, type errors via LSP)
12
- - **Bjorn** - Configuration audit (deprecated fields, broken references, unused workflows)
13
- - **Viktor** - Data analysis (unpopulated fields, zero-activity workflows, silent insights)
14
- - **Simple Writer** - Auto-fix confirmed dead code and unused imports (fix loop)
15
- - **Code Simplifier** - Simplify complex code blocks identified during discovery (fix loop)
16
-
17
- **Target:** $ARGUMENTS (if blank, scan full project)
18
-
19
- **Changed files:** Orchestrator runs `git diff --name-only HEAD` to scope if needed.
20
-
21
- ## Protocol
22
-
23
- ### Step 1: Determine Scope
24
-
25
- If `$ARGUMENTS` has specific files/directories, use those as the target.
26
- Otherwise, scan the entire project.
27
-
28
- If `$ARGUMENTS` contains `--code-only`:
29
- - Skip Bjorn and Viktor
30
- - Only run Lars in discovery phase
31
-
32
- If `$ARGUMENTS` contains `--config-only`:
33
- - Skip Lars and Viktor
34
- - Only run Bjorn in discovery phase
35
-
36
- If `$ARGUMENTS` contains `--report-only`:
37
- - Skip all fix loop iterations
38
- - Report findings only (no auto-fixes)
39
-
40
- ### Step 2: Launch Discovery Agents in Parallel
41
-
42
- **Set:** `iteration = 1`
43
-
44
- Spawn all three discovery agents simultaneously using multiple Task tool calls in a single message:
45
-
46
- **Lars:**
47
- ```
48
- Task(subagent_type="agent-lars-code-inspector", prompt="Inspect the project for dead code patterns: [TARGET]. Find:\n- Unused imports\n- Unreachable code blocks\n- Unused variables and functions\n- Type errors\n\nUse LSP if available, fall back to tsc/eslint. Return detailed findings grouped by file.")
49
- ```
50
-
51
- **Bjorn:**
52
- ```
53
- Task(subagent_type="agent-bjorn-config-audit", prompt="Audit workspace configuration for zombie patterns: [TARGET]. Check:\n- Deprecated fields in workspace/fields.ts\n- Broken field references in phases\n- Unused workflows (defined but zero activities)\n- Broken enum references\n- Orphaned configuration entries\n\nReturn issues grouped by category with severity.")
54
- ```
55
-
56
- **Viktor:**
57
- ```
58
- Task(subagent_type="agent-viktor-sql-insights", prompt="Analyze data patterns in workflows: [TARGET]. Find:\n- Fields that are defined but never populated (zero values across all activities)\n- Workflows with zero activities (created but unused)\n- Insights that return empty data (broken or obsolete)\n- Calculated fields that never execute\n- Orphaned data patterns\n\nReturn findings with field IDs, workflow IDs, and impact estimates.")
59
- ```
60
-
61
- ### Step 3: Categorize Findings
62
-
63
- Collect results from all three agents. Categorize each finding as:
64
-
65
- **AUTO-FIXABLE** (Simple Writer can safely remove):
66
- - Unused imports identified by Lars
67
- - Dead code blocks with no side effects
68
- - Workflow definitions with zero activities (from Viktor + Bjorn)
69
- - Deprecated enum references (from Bjorn)
70
- - Never-populated fields that can be safely archived (from Viktor + Bjorn)
71
-
72
- **NEEDS-HUMAN-REVIEW** (escalate to user):
73
- - Architecture concerns
74
- - Fields that are rarely used but intentional
75
- - Complex logic entangled with dead code
76
- - Data cleanup that affects reporting history
77
- - Performance optimizations requiring design changes
78
-
79
- ### Step 4: Auto-Fix Loop (if auto-fixable items found AND `--report-only` not set AND `iteration < 3`)
80
-
81
- If critical auto-fixable items exist, spawn two agents to clean up. If Simple Writer's fixes introduce new issues detected by re-audit, escalate remaining issues to user after max 2 iterations.
82
-
83
- **Simple Writer:**
84
- ```
85
- Task(subagent_type="agent-simple-writer", prompt="Remove confirmed dead code and unused imports from the project:\n\n[LIST AUTO-FIXABLE ITEMS WITH FILE PATHS AND LINE NUMBERS]\n\nFrom Lars:\n- [Unused imports with files]\n- [Dead code blocks with files]\n\nFrom Bjorn:\n- [Deprecated enum references with files]\n- [Unused workflow definitions with IDs]\n\nFrom Viktor:\n- [Never-populated field definitions with IDs]\n\nApply minimal removals only. Do not refactor or improve beyond confirmed dead patterns.")
86
- ```
87
-
88
- **Code Simplifier:**
89
- ```
90
- Task(subagent_type="agent-code-simplifier", prompt="After dead code removal, simplify complex code blocks identified as difficult to maintain: [TARGET].\n\nFocus on:\n- Variable naming clarity\n- Function complexity reduction\n- Comment clarity around remaining logic\n- Code organization in affected files\n\nReturn refactoring suggestions with before/after examples.")
91
- ```
92
-
93
- After both finish:
94
- - Increment `iteration`
95
- - Go back to **Step 2** to re-run all discovery agents
96
- - On re-discovery, tell agents to verify previous issues are resolved
97
- - Max 2 re-check iterations (3 total discovery runs)
98
-
99
- ### Step 5: Report
100
-
101
- ```markdown
102
- ## Janitor Squad Report
103
-
104
- ### Loop Summary
105
- - Discovery iterations: [count]
106
- - Auto-fixes applied: [yes/no]
107
- - Items removed: [count by category]
108
-
109
- ### Lars (Dead Code Detection)
110
- - Unused imports: X (Y auto-removed)
111
- - Dead code blocks: X (Y auto-removed)
112
- - Type errors: X
113
- - [Remaining issues grouped by file]
114
-
115
- ### Bjorn (Config Audit)
116
- - Deprecated fields: X
117
- - Broken references: X (Y auto-removed)
118
- - Unused workflows: X (Y auto-removed)
119
- - Orphaned config: X
120
- - [Remaining issues grouped by category]
121
-
122
- ### Viktor (Data Analysis)
123
- - Never-populated fields: X (Y marked for archival)
124
- - Zero-activity workflows: X (Y removed)
125
- - Silent insights: X
126
- - Orphaned data patterns: X
127
- - [Remaining items grouped by workflow]
128
-
129
- ### Auto-Fixes Applied
130
- [If any fixes were made:]
131
- - [File/ID]: [what was removed/archived]
132
- - [File/ID]: [what was removed/archived]
133
-
134
- ### Remaining Issues (Manual Action Needed)
135
- [Issues that require human review]
136
- - [Category]: [Details]
137
-
138
- ### Recommended Cleanup Order
139
- 1. [Remove these orphaned items first]
140
- 2. [Archive these fields next]
141
- 3. [Review these design concerns]
142
-
143
- ### Summary
144
- [Overall health assessment]
145
- [Estimated time to apply remaining cleanup]
146
- ```
147
-
148
- If any agent fails or times out, report partial results from successful agents, note which failed, and offer to re-run individually.
149
-
150
- ## Options
151
-
152
- | Flag | Effect |
153
- |------|--------|
154
- | `--code-only` | Skip Bjorn and Viktor, just code cleanup via Lars |
155
- | `--config-only` | Skip Lars and Viktor, just workspace config audit via Bjorn |
156
- | `--report-only` | Report findings only, no auto-fix loop (discovery phase only) |
157
- | `--bg` | Run all discovery agents in background mode |
158
-
159
- If `--bg` is present, launch all discovery agents with `run_in_background: true` and tell the user they'll be notified when discovery is complete, then proceed with fix loop when they're ready.
160
-
161
- ## Notes
162
-
163
- - Max 2 re-discovery iterations (3 total) to prevent infinite loops
164
- - Simple Writer only removes clear-cut dead code - ambiguous items go to user review
165
- - Data cleanup (Viktor findings) may affect reports/history - always prompt user before removal
166
- - Each re-discovery is a full parallel sweep across all enabled agents
167
- - The `--report-only` flag gives discovery results without auto-fixes
@@ -1,120 +0,0 @@
1
- ---
2
- description: Scan conversation for learnings and capture to inbox
3
- argument-hint: [optional focus area]
4
- ---
5
- # Auto-Learn
6
-
7
- Scan conversation for potential learnings, present for confirmation, write to inbox.
8
-
9
- ## Trigger Patterns
10
-
11
- Scan conversation for these signals:
12
-
13
- ### 1. Error → Fix Sequences
14
- ```
15
- Pattern: Error/failure message followed by successful resolution
16
- Signal: "Error:", "failed", "doesn't work" → later "fixed", "working now", "solved"
17
- Extract: What was wrong, what fixed it
18
- ```
19
-
20
- ### 2. User Corrections
21
- ```
22
- Pattern: User corrects agent output or approach
23
- Signal: "No, it should be...", "Actually, use...", "That's wrong, do..."
24
- Extract: Wrong approach, correct approach
25
- ```
26
-
27
- ### 3. Explicit Learning Signals
28
- ```
29
- Pattern: User explicitly notes something important
30
- Signal: "Good to know", "I'll remember that", "Important:", "Note to self"
31
- Extract: The insight
32
- ```
33
-
34
- ### 4. Agent Failures
35
- ```
36
- Pattern: Agent returned error or wrong result
37
- Signal: "status": "error", validation failures, user says "that's not right"
38
- Extract: What failed, why, how to prevent
39
- ```
40
-
41
- ### 5. Repeated Attempts
42
- ```
43
- Pattern: Same operation tried multiple times before success
44
- Signal: 2+ similar tool calls, retries with different parameters
45
- Extract: What didn't work, what finally worked
46
- ```
47
-
48
- ## Instructions
49
-
50
- ### Step 1: Scan Conversation
51
-
52
- Review the conversation for patterns above. For each potential learning, note:
53
- - **Type**: error-fix | correction | insight | agent-failure | retry-pattern
54
- - **Context**: What was happening
55
- - **Learning**: The key takeaway
56
- - **Category**: agent/X | skill/X | pattern | gotcha | bug
57
-
58
- ### Step 2: Present Findings
59
-
60
- If learnings found, present to user:
61
-
62
- ```
63
- Found [N] potential learnings from this session:
64
-
65
- 1. [agent/kenji] Field lookup should check enums.ts first
66
- Context: Kenji made API call when data was available locally
67
-
68
- 2. [pattern] Date fields from Hailer come pre-formatted
69
- Context: Tried to format already-formatted date, got wrong output
70
-
71
- 3. [gotcha] Push must complete before pull
72
- Context: Pull overwrote local changes
73
-
74
- Confirm which to save? (all / 1,2 / none)
75
- ```
76
-
77
- Use AskUserQuestion:
78
- - "Save all"
79
- - "Select specific (enter numbers)"
80
- - "Skip - nothing worth saving"
81
-
82
- ### Step 3: Write to Inbox
83
-
84
- For confirmed learnings, append to `inbox.md`:
85
-
86
- ```markdown
87
- ## Pending
88
-
89
- - [<category>] <learning description> _(from: <project>, <date>, auto-learn)_
90
- ```
91
-
92
- If in hub repo (hailer-claude-reference), write directly to `inbox.md`.
93
- If in project repo, write to `docs/learnings.md` or project's inbox location.
94
-
95
- ### Step 4: Report
96
-
97
- ```
98
- Captured [N] learnings to inbox:
99
- - [agent/kenji] Field lookup should check enums.ts first
100
- - [pattern] Date fields from Hailer come pre-formatted
101
-
102
- Review later with /learn to apply fixes, or let Ada auto-process.
103
- ```
104
-
105
- ## No Learnings Found
106
-
107
- If conversation has no clear learnings:
108
-
109
- ```
110
- No obvious learnings detected in this session.
111
-
112
- To capture something manually: /learn <category> <description>
113
- ```
114
-
115
- ## Notes
116
-
117
- - This is DETECTION only - doesn't apply fixes (that's /learn or Ada's job)
118
- - User confirms before anything is saved
119
- - Bias toward false negatives (miss some) rather than false positives (noise)
120
- - Works best at end of session when there's context to analyze
@@ -1,120 +0,0 @@
1
- ---
2
- description: Capture learning and apply fix to the right place
3
- argument-hint: <category> <description>
4
- ---
5
- # Learn & Apply
6
-
7
- Capture a learning, ask clarifying questions, then apply the fix to the right place.
8
-
9
- ## Usage
10
- `/learn <category> <description>`
11
-
12
- ## Categories
13
- - `agent/<name>` - Agent behavior issue (e.g., `agent/kenji`)
14
- - `skill/<name>` - Skill missing pattern (e.g., `skill/function-fields`)
15
- - `pattern` - General pattern to document
16
- - `bug` - Bug in code/config
17
- - `gotcha` - Common mistake to prevent
18
-
19
- ## Examples
20
- ```
21
- /learn agent/kenji should check enums.ts before API calls
22
- /learn skill/insights JOIN syntax was wrong for linked fields
23
- /learn pattern always verify push succeeded before continuing
24
- /learn gotcha phase IDs change when workflow is copied
25
- ```
26
-
27
- ## Instructions
28
-
29
- ### Step 1: Parse & Understand
30
-
31
- Parse the input:
32
- - Category: first word (e.g., `agent/kenji`)
33
- - Description: rest of the text
34
-
35
- ### Step 2: Ask Clarifying Questions
36
-
37
- Use AskUserQuestion to gather details:
38
-
39
- **For agent issues:**
40
- - "What was the symptom?" (wrong output, error, missed step)
41
- - "What should the agent do differently?"
42
- - "Should this be a rule, a skill addition, or both?"
43
-
44
- **For skill issues:**
45
- - "What was missing or wrong?"
46
- - "Can you give an example of correct vs incorrect?"
47
-
48
- **For patterns/gotchas:**
49
- - "What went wrong when this wasn't followed?"
50
- - "Where should this be documented?" (skill, agent, CLAUDE.md)
51
-
52
- ### Step 3: Determine Target
53
-
54
- Based on category and answers, decide where the fix goes:
55
-
56
- | Category | Likely Target |
57
- |----------|---------------|
58
- | `agent/X` | `.claude/agents/agent-X.md` |
59
- | `skill/X` | `.claude/skills/X/SKILL.md` |
60
- | `pattern` | Relevant skill or CLAUDE.md |
61
- | `bug` | Code fix + possibly skill |
62
- | `gotcha` | Skill or agent rules section |
63
-
64
- ### Step 4: Apply the Fix
65
-
66
- **Option A: Direct edit (if simple)**
67
- - Edit the target file directly
68
- - Add to appropriate section (rules, patterns, examples)
69
-
70
- **Option B: Delegate to Ada (if complex)**
71
- For complex changes, invoke Ada agent:
72
- ```
73
- Task(subagent_type="agent-ada-skill-builder", prompt={
74
- "task": "apply_learning",
75
- "category": "<category>",
76
- "learning": "<description>",
77
- "details": "<clarification answers>",
78
- "target": "<determined target>"
79
- })
80
- ```
81
-
82
- ### Step 5: Log & Confirm
83
-
84
- 1. Log to `docs/learnings.md` for history:
85
- ```markdown
86
- - [<category>] <description> → Applied to <target> _(YYYY-MM-DD)_
87
- ```
88
-
89
- 2. Report what was done:
90
- ```
91
- Learning applied:
92
- - Category: agent/kenji
93
- - Fix: Added rule "Check enums.ts before making API calls"
94
- - Location: .claude/agents/agent-kenji-data-reader.md
95
- ```
96
-
97
- ## File Template
98
-
99
- If creating `docs/learnings.md`:
100
-
101
- ```markdown
102
- # Applied Learnings
103
-
104
- History of fixes applied from learnings.
105
-
106
- ---
107
-
108
- ## Log
109
-
110
- - [agent/kenji] Check enums.ts first → Added to rules _(2026-01-31)_
111
- - [skill/insights] JOIN syntax example → Added to SKILL.md _(2026-01-31)_
112
- ```
113
-
114
- ## Notes
115
-
116
- - This command APPLIES fixes, not just logs them
117
- - Ask questions to understand the real issue
118
- - Small fixes: edit directly
119
- - Complex fixes: delegate to Ada
120
- - Always log what was done for history
@@ -1,27 +0,0 @@
1
- ---
2
- description: List available and enabled MCP servers
3
- ---
4
-
5
- # List MCP Servers
6
-
7
- Show available MCP servers and their status.
8
-
9
- ## Instructions
10
-
11
- 1. Read `~/.mcp.json` (global servers) - look for `mcpServers` keys
12
- 2. Read `./.mcp.json` (project servers) if it exists - look for `mcpServers` keys
13
- 3. Read `.claude/settings.local.json` to find enabled servers (`enabledMcpjsonServers` array)
14
- 4. Display a table showing all discovered servers:
15
-
16
- | Server | Source | Status |
17
- |--------|--------|--------|
18
- | chrome-devtools | global | enabled/disabled |
19
- | notebooklm | global | enabled/disabled |
20
- | hailer | project | enabled/disabled |
21
-
22
- A server is **enabled** if it's in `enabledMcpjsonServers` array.
23
-
24
- Also show:
25
- - `/mcp-enable <name>` to enable
26
- - `/mcp-disable <name>` to disable
27
- - Restart required after changes (`claude -c`)
@@ -1,140 +0,0 @@
1
- ---
2
- description: Bootstrap a new Hailer project end-to-end
3
- argument-hint: "project description or PRD path"
4
- allowed-tools: Task, Bash, Read
5
- ---
6
- # Onboard Squad
7
-
8
- Sequential pipeline: Create workspace infrastructure, scaffold the app, and verify everything is wired correctly.
9
-
10
- **Agents:**
11
- 1. **Helga** - Workflow config (create workflows, fields, phases, teams, groups)
12
- 2. **Alejandro** - Function fields and nameFunction
13
- 3. **Giuseppe** - Scaffold first app with basic CRUD interface
14
- 4. **Bjorn** - Audit config accuracy and field references
15
-
16
- **Goal:** $ARGUMENTS
17
-
18
- ## Protocol
19
-
20
- ### Step 1: Parse Requirements
21
-
22
- Parse `$ARGUMENTS` to determine input type:
23
-
24
- - **If it's a file path** (e.g., `docs/prd-onboarding.md`): Read it for requirements
25
- - **Otherwise:** Use it as a project description
26
-
27
- If `$ARGUMENTS` is a file path, read it first before proceeding to Helga.
28
-
29
- ### Step 2: Helga (Workspace Config)
30
-
31
- Spawn Helga to create workspace infrastructure:
32
-
33
- ```
34
- Task(subagent_type="agent-helga-workflow-config", prompt="Bootstrap a new Hailer project: $ARGUMENTS\n\nCreate: workflows (at least 1), fields for each workflow, phases, teams, and groups as needed.")
35
- ```
36
-
37
- Wait for result. If Helga returns `"status": "ready_to_push"`:
38
- - Run the push commands she provides (e.g., `npm run fields-push:force`)
39
- - Then run `npm run pull` to refresh local workspace with new IDs
40
- - **Important:** Helga ALWAYS spawns Alejandro for nameFunction. Check if her result indicates Alejandro was spawned and created nameFunction. If yes, Alejandro's work is done - skip to Step 3.
41
-
42
- ### Step 3: Alejandro (Function Fields) - Conditional
43
-
44
- Only spawn if Helga indicates additional function fields are needed beyond what was created by Helga+Alejandro auto-spawn.
45
-
46
- If needed, spawn Alejandro:
47
-
48
- ```
49
- Task(subagent_type="agent-alejandro-function-fields", prompt="Create additional function fields for workflows created in: [INSERT HELGA'S GOAL].\n\nHelga created these workflows: [SUMMARIZE HELGA'S RESULT - workflow names, IDs, field counts].\n\nFunction fields already created by Helga: [FROM HELGA'S RESULT].")
50
- ```
51
-
52
- Wait for result. If `"status": "ready_to_push"`:
53
- - Run the push commands
54
- - Run `npm run pull` to refresh workspace
55
-
56
- ### Step 4: Giuseppe (App Scaffold)
57
-
58
- **Before spawning Giuseppe, enable builder mode:**
59
- ```
60
- Bash: node .claude/hooks/app-edit-guard.cjs --agent-on
61
- ```
62
-
63
- Spawn Giuseppe to build the first app using the new workspace:
64
-
65
- ```
66
- Task(subagent_type="agent-giuseppe-app-builder", prompt="Scaffold the first Hailer app for this new project: $ARGUMENTS\n\nWorkspace created by Helga: [SUMMARIZE HELGA'S RESULT - workflow names, IDs, field counts]. Giuseppe: read workspace/ directly to discover exact field IDs, types, and team configurations. Do not guess IDs.\n\nBuild a basic CRUD interface using @hailer/app-sdk and Chakra UI. Start with the primary workflow. Use the Hailer Design System.\n\nNote: Assume Local Dev app exists (orchestrator checks this before spawning you). Build for local development at http://localhost:3000.")
67
- ```
68
-
69
- **After Giuseppe completes, disable builder mode:**
70
- ```
71
- Bash: node .claude/hooks/app-edit-guard.cjs --agent-off
72
- ```
73
-
74
- Wait for result. If Giuseppe returns `"status": "ready_to_push"`:
75
- - Run the push commands
76
-
77
- ### Step 5: Bjorn (Config Audit)
78
-
79
- Spawn Bjorn to verify everything is configured correctly:
80
-
81
- ```
82
- Task(subagent_type="agent-bjorn-config-audit", prompt="Audit this new Hailer project setup:\n\n1. Verify CLAUDE.md accuracy (check that project type detection works)\n2. Verify workspace configuration: workflows, fields, phases, teams all match workspace/ files\n3. Verify field references in the new app match workspace/ field definitions\n4. Check for missing imports, incorrect IDs, or type mismatches\n5. Verify that nameFunction is set on the primary workflow\n\nProject goal: $ARGUMENTS\n\nReport any misconfigurations. If iteration <= 1, recommend fixes to the orchestrator.")
83
- ```
84
-
85
- **Loop Control:**
86
- - If Bjorn finds no critical issues: proceed to Step 6 (report)
87
- - If Bjorn finds issues AND `iteration <= 1`:
88
- - Increment `iteration`
89
- - Determine which agent to fix it (usually Helga or Giuseppe)
90
- - Run appropriate agent with the issues to fix
91
- - Return to Step 5 (Bjorn re-audits)
92
- - If Bjorn finds issues AND `iteration > 1`: escalate to user in Step 6
93
-
94
- ### Step 6: Report
95
-
96
- ```markdown
97
- ## Onboard Squad Complete
98
-
99
- **Project Goal:** $ARGUMENTS
100
-
101
- ### Workspace Setup (Helga)
102
- - Workflows created: [list with IDs]
103
- - Fields created: [count]
104
- - Phases: [count]
105
- - Teams: [count]
106
- - Alejandro auto-spawn: [nameFunction created? Y/N]
107
-
108
- ### Function Fields (Alejandro)
109
- - Additional function fields created: [list or "None needed"]
110
- - Skipped: [reason if skipped]
111
-
112
- ### App Scaffold (Giuseppe)
113
- - App path: [path to new app]
114
- - Build status: Pass/Fail
115
- - Files created: [count/list]
116
- - Local dev setup: [check local dev app name]
117
-
118
- ### Verification (Bjorn)
119
- - Critical issues found: [count] or "None"
120
- - Status: VERIFIED / NEEDS FIXES (if iteration > 1, see below)
121
-
122
- [If iteration > 1 - escalated:]
123
- ### Remaining Issues
124
- [List issues Bjorn found that weren't resolved in 1 fix iteration]
125
- - Manual fixes recommended: [hints]
126
-
127
- ### Next Steps
128
- 1. Run `npm run dev` to test the app locally
129
- 2. Ensure "Local Dev" app exists in Hailer workspace
130
- 3. Test the app inside Hailer iframe at http://localhost:3000
131
- 4. Run `npm run pull` to ensure workspace/ is fully up to date
132
- ```
133
-
134
- ## Notes
135
-
136
- - Each agent in the pipeline needs IDs from the previous step. Always `npm run pull` between Helga→Alejandro→Giuseppe to refresh local workspace.
137
- - Helga auto-spawns Alejandro for nameFunction. Check her result - only spawn Alejandro again in Step 3 if additional function fields are needed.
138
- - Giuseppe needs real workflow and field IDs from workspace/ - always read the files and paste actual IDs, never let him guess.
139
- - Bjorn's audit is the quality gate. If issues are found and you've iterated once, escalate remaining issues to the user rather than looping infinitely.
140
- - Set `iteration = 1` at the start. Increment after each Bjorn audit if fixes are attempted.