@cohortapp/agent-sdk 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (731) hide show
  1. package/.claude/commands/init-agent.md +104 -0
  2. package/.claude/commands/init-maestro.md +1187 -0
  3. package/.claude/settings.json +161 -0
  4. package/.env.example +216 -0
  5. package/README.md +632 -0
  6. package/agents/browser-operator/agent.md +52 -0
  7. package/agents/calendar-ops/agent.md +50 -0
  8. package/agents/communications/agent.md +96 -0
  9. package/agents/decision-log/agent.md +65 -0
  10. package/agents/desktop-operator/agent.md +59 -0
  11. package/agents/gmail-operator/agent.md +62 -0
  12. package/agents/inbound-dispatcher/agent.md +66 -0
  13. package/agents/inbox-processor/agent.md +39 -0
  14. package/agents/pmo-execution/agent.md +60 -0
  15. package/agents/session-spawner/agent.md +64 -0
  16. package/agents/slack-operator/agent.md +60 -0
  17. package/agents/whatsapp-operator/agent.md +60 -0
  18. package/agents/workflow-automation/agent.md +61 -0
  19. package/archetypes/altitudes/c-suite.yaml +58 -0
  20. package/archetypes/altitudes/founder.yaml +68 -0
  21. package/archetypes/altitudes/senior-manager.yaml +63 -0
  22. package/archetypes/altitudes/svp.yaml +60 -0
  23. package/archetypes/altitudes/vp.yaml +50 -0
  24. package/archetypes/archetype.schema.json +77 -0
  25. package/archetypes/base.yaml +47 -0
  26. package/archetypes/capabilities/commercial-leader.yaml +159 -0
  27. package/archetypes/capabilities/compliance-officer.yaml +159 -0
  28. package/archetypes/capabilities/executive-operator.yaml +169 -0
  29. package/archetypes/capabilities/finance-leader.yaml +162 -0
  30. package/archetypes/capabilities/operations-leader.yaml +154 -0
  31. package/archetypes/capabilities/product-leader.yaml +148 -0
  32. package/archetypes/capabilities/technical-leader.yaml +146 -0
  33. package/archetypes/functions/commercial-leader.yaml +62 -0
  34. package/archetypes/functions/compliance-officer.yaml +64 -0
  35. package/archetypes/functions/executive-operator.yaml +70 -0
  36. package/archetypes/functions/finance-leader.yaml +70 -0
  37. package/archetypes/functions/operations-leader.yaml +62 -0
  38. package/archetypes/functions/product-leader.yaml +61 -0
  39. package/archetypes/functions/technical-leader.yaml +57 -0
  40. package/bin/cohort-mcp.mjs +81 -0
  41. package/bin/maestro.mjs +3516 -0
  42. package/bin/maestro.test.mjs +1015 -0
  43. package/desktop-control/README.md +56 -0
  44. package/desktop-control/app-profiles/gmail.yaml +120 -0
  45. package/desktop-control/app-profiles/slack.yaml +315 -0
  46. package/desktop-control/app-profiles/whatsapp.yaml +107 -0
  47. package/docs/architecture/agent-topology.md +2239 -0
  48. package/docs/architecture/archetype-agent-factory.md +110 -0
  49. package/docs/architecture/collective-memory-and-org-mesh.md +115 -0
  50. package/docs/architecture/continuous-monitoring.md +221 -0
  51. package/docs/architecture/mcp-capability-map.md +585 -0
  52. package/docs/architecture/system-architecture.md +1272 -0
  53. package/docs/company-context/README.md +40 -0
  54. package/docs/guides/agent-persona-setup.md +600 -0
  55. package/docs/guides/agents-observe-setup.md +64 -0
  56. package/docs/guides/billing-console-keys.md +88 -0
  57. package/docs/guides/ccxray-diagnostics.md +65 -0
  58. package/docs/guides/channel-bus.md +127 -0
  59. package/docs/guides/claude-mem-setup.md +79 -0
  60. package/docs/guides/claude-pace-setup.md +56 -0
  61. package/docs/guides/claudraband-sessions.md +98 -0
  62. package/docs/guides/clawteam-swarm.md +116 -0
  63. package/docs/guides/code-review-graph-setup.md +86 -0
  64. package/docs/guides/email-setup.md +431 -0
  65. package/docs/guides/mac-mini.md +119 -0
  66. package/docs/guides/media-generation-setup.md +349 -0
  67. package/docs/guides/model-routing.md +162 -0
  68. package/docs/guides/observability-otel.md +265 -0
  69. package/docs/guides/org-onboarding.md +132 -0
  70. package/docs/guides/outbound-governance-setup.md +437 -0
  71. package/docs/guides/pdf-generation-setup.md +315 -0
  72. package/docs/guides/poller-daemon-setup.md +563 -0
  73. package/docs/guides/rag-context-setup.md +459 -0
  74. package/docs/guides/self-optimization-pattern.md +82 -0
  75. package/docs/guides/setup-wizard.md +178 -0
  76. package/docs/guides/slack-setup.md +350 -0
  77. package/docs/guides/telegram-setup.md +227 -0
  78. package/docs/guides/twilio-subaccounts-setup.md +223 -0
  79. package/docs/guides/verification.md +128 -0
  80. package/docs/guides/voice-mode.md +188 -0
  81. package/docs/guides/voice-sms-setup.md +698 -0
  82. package/docs/guides/webhook-relay-setup.md +349 -0
  83. package/docs/guides/whatsapp-setup.md +288 -0
  84. package/docs/prompts/board-pack-cover-template.md +36 -0
  85. package/docs/prompts/decision-recommendation-template.md +88 -0
  86. package/docs/prompts/followup-message-template.md +141 -0
  87. package/docs/prompts/investor-letter-template.md +52 -0
  88. package/docs/prompts/morning-brief-template.md +82 -0
  89. package/docs/prompts/presentation-template.md +58 -0
  90. package/docs/prompts/weekly-strategic-memo-template.md +104 -0
  91. package/docs/research/hallucinated-tool-output-investigation.md +151 -0
  92. package/docs/runbooks/backup-restore.md +205 -0
  93. package/docs/runbooks/cohort-cutover.md +129 -0
  94. package/docs/runbooks/fleet-operations.md +200 -0
  95. package/docs/runbooks/incident-response.md +226 -0
  96. package/docs/runbooks/mac-mini-bootstrap.md +431 -0
  97. package/docs/runbooks/perpetual-operations.md +509 -0
  98. package/docs/runbooks/recovery-and-failover.md +260 -0
  99. package/framework-features.json +267 -0
  100. package/ingest/README.md +87 -0
  101. package/lib/action-executor.js +689 -0
  102. package/lib/action-executor.test.mjs +871 -0
  103. package/lib/agent-root.mjs +37 -0
  104. package/lib/archetype.mjs +236 -0
  105. package/lib/archetype.test.mjs +132 -0
  106. package/lib/autonomy.mjs +114 -0
  107. package/lib/autonomy.test.mjs +66 -0
  108. package/lib/backlog.mjs +358 -0
  109. package/lib/backlog.test.mjs +266 -0
  110. package/lib/budget-guard.mjs +279 -0
  111. package/lib/budget-guard.test.mjs +291 -0
  112. package/lib/cadence-bus-schedule.test.mjs +194 -0
  113. package/lib/cadence-bus.mjs +1120 -0
  114. package/lib/cadence-bus.test.mjs +720 -0
  115. package/lib/cadences.mjs +205 -0
  116. package/lib/cadences.test.mjs +125 -0
  117. package/lib/capability.mjs +154 -0
  118. package/lib/capability.test.mjs +78 -0
  119. package/lib/channels/base-adapter.mjs +719 -0
  120. package/lib/channels/base-adapter.test.mjs +590 -0
  121. package/lib/channels/channel.mjs +128 -0
  122. package/lib/channels/channels.test.mjs +371 -0
  123. package/lib/channels/contract.mjs +215 -0
  124. package/lib/channels/contract.test.mjs +137 -0
  125. package/lib/channels/conversation-resolver.mjs +95 -0
  126. package/lib/channels/gmail/adapter.mjs +87 -0
  127. package/lib/channels/inbox-item.mjs +255 -0
  128. package/lib/channels/inbox-item.test.mjs +335 -0
  129. package/lib/channels/index.mjs +94 -0
  130. package/lib/channels/orgmail/adapter.mjs +353 -0
  131. package/lib/channels/orgmail/adapter.test.mjs +311 -0
  132. package/lib/channels/pairing.mjs +363 -0
  133. package/lib/channels/pairing.test.mjs +270 -0
  134. package/lib/channels/registry.mjs +164 -0
  135. package/lib/channels/slack/adapter.mjs +317 -0
  136. package/lib/channels/slack-adapter.test.mjs +212 -0
  137. package/lib/channels/sms/adapter.mjs +43 -0
  138. package/lib/channels/telegram/adapter.mjs +432 -0
  139. package/lib/channels/telegram-adapter.test.mjs +306 -0
  140. package/lib/channels/voice/adapter.mjs +301 -0
  141. package/lib/channels/voice/adapter.test.mjs +278 -0
  142. package/lib/channels/whatsapp/adapter-baileys.mjs +587 -0
  143. package/lib/channels/whatsapp/adapter-baileys.test.mjs +359 -0
  144. package/lib/channels/whatsapp/adapter-twilio.mjs +65 -0
  145. package/lib/channels/whatsapp/baileys-typing.test.mjs +154 -0
  146. package/lib/charter.mjs +256 -0
  147. package/lib/charter.test.mjs +89 -0
  148. package/lib/claude-bin.mjs +134 -0
  149. package/lib/claude-bin.test.mjs +75 -0
  150. package/lib/collective/capture.mjs +185 -0
  151. package/lib/collective/capture.test.mjs +121 -0
  152. package/lib/collective/cards.mjs +201 -0
  153. package/lib/collective/cards.test.mjs +114 -0
  154. package/lib/collective/config.mjs +186 -0
  155. package/lib/collective/config.test.mjs +123 -0
  156. package/lib/collective/global-config.mjs +113 -0
  157. package/lib/collective/global-config.test.mjs +75 -0
  158. package/lib/collective/presence.mjs +201 -0
  159. package/lib/collective/presence.test.mjs +95 -0
  160. package/lib/collective/recall.mjs +215 -0
  161. package/lib/collective/recall.test.mjs +116 -0
  162. package/lib/comms/send-gate.mjs +554 -0
  163. package/lib/comms/send-gate.test.mjs +577 -0
  164. package/lib/comms.mjs +67 -0
  165. package/lib/comms.test.mjs +41 -0
  166. package/lib/diagnostics/alerts.mjs +424 -0
  167. package/lib/diagnostics/alerts.test.mjs +318 -0
  168. package/lib/diagnostics/backup-freshness.mjs +188 -0
  169. package/lib/diagnostics/backup-freshness.test.mjs +185 -0
  170. package/lib/diagnostics/counters.mjs +269 -0
  171. package/lib/diagnostics/counters.test.mjs +206 -0
  172. package/lib/diagnostics/events.mjs +188 -0
  173. package/lib/diagnostics/events.test.mjs +290 -0
  174. package/lib/diagnostics/otel.mjs +237 -0
  175. package/lib/diagnostics/otel.test.mjs +196 -0
  176. package/lib/diagnostics/trace.mjs +216 -0
  177. package/lib/diagnostics/trace.test.mjs +251 -0
  178. package/lib/env-compat.mjs +74 -0
  179. package/lib/env-compat.test.mjs +104 -0
  180. package/lib/feature-init.mjs +331 -0
  181. package/lib/fs-atomic.mjs +112 -0
  182. package/lib/fs-atomic.test.mjs +72 -0
  183. package/lib/fs-ownership.mjs +111 -0
  184. package/lib/fs-ownership.test.mjs +158 -0
  185. package/lib/hooks/bus.mjs +347 -0
  186. package/lib/hooks/bus.test.mjs +387 -0
  187. package/lib/index.js +16 -0
  188. package/lib/learning/config.mjs +106 -0
  189. package/lib/learning/config.test.mjs +75 -0
  190. package/lib/learning/counters.mjs +156 -0
  191. package/lib/learning/counters.test.mjs +69 -0
  192. package/lib/learning/curator-consolidate.test.mjs +238 -0
  193. package/lib/learning/curator.mjs +453 -0
  194. package/lib/learning/curator.test.mjs +106 -0
  195. package/lib/learning/log.mjs +40 -0
  196. package/lib/learning/reflect.mjs +534 -0
  197. package/lib/learning/reflect.test.mjs +0 -0
  198. package/lib/learning/session-index.mjs +352 -0
  199. package/lib/learning/session-index.test.mjs +125 -0
  200. package/lib/learning/skill-writer.mjs +474 -0
  201. package/lib/learning/skill-writer.test.mjs +210 -0
  202. package/lib/mcp/server.mjs +328 -0
  203. package/lib/mcp/server.test.mjs +400 -0
  204. package/lib/model-router/auth-profiles.mjs +758 -0
  205. package/lib/model-router/auth-profiles.test.mjs +580 -0
  206. package/lib/model-router/catalog/anthropic.yaml +153 -0
  207. package/lib/model-router/catalog/deepseek.yaml +86 -0
  208. package/lib/model-router/catalog/moonshot.yaml +81 -0
  209. package/lib/model-router/catalog/qwen.yaml +114 -0
  210. package/lib/model-router/catalog.mjs +925 -0
  211. package/lib/model-router/catalog.test.mjs +385 -0
  212. package/lib/model-router/economics.mjs +564 -0
  213. package/lib/model-router/economics.test.mjs +344 -0
  214. package/lib/model-router/failover.mjs +298 -0
  215. package/lib/model-router/failover.test.mjs +439 -0
  216. package/lib/model-router/health.mjs +453 -0
  217. package/lib/model-router/health.test.mjs +338 -0
  218. package/lib/model-router/integration-coverage.test.mjs +829 -0
  219. package/lib/model-router/integration.test.mjs +564 -0
  220. package/lib/model-router/ledger.mjs +402 -0
  221. package/lib/model-router/ledger.test.mjs +382 -0
  222. package/lib/model-router/llm-task.mjs +515 -0
  223. package/lib/model-router/llm-task.test.mjs +392 -0
  224. package/lib/model-router/org-credentials.mjs +260 -0
  225. package/lib/model-router/org-credentials.test.mjs +265 -0
  226. package/lib/model-router/pricing-refresh.mjs +463 -0
  227. package/lib/model-router/pricing-refresh.test.mjs +286 -0
  228. package/lib/model-router/reconcile.mjs +429 -0
  229. package/lib/model-router/reconcile.test.mjs +316 -0
  230. package/lib/model-router/repair.mjs +471 -0
  231. package/lib/model-router/repair.test.mjs +180 -0
  232. package/lib/model-router/resolve.mjs +1206 -0
  233. package/lib/model-router/spawn.mjs +497 -0
  234. package/lib/model-router/spawn.test.mjs +425 -0
  235. package/lib/model-router/taxonomy.mjs +893 -0
  236. package/lib/model-router/taxonomy.test.mjs +410 -0
  237. package/lib/model-router.mjs +677 -0
  238. package/lib/model-router.test.mjs +907 -0
  239. package/lib/org/activity.mjs +211 -0
  240. package/lib/org/activity.test.mjs +134 -0
  241. package/lib/org/approvals.mjs +448 -0
  242. package/lib/org/approvals.test.mjs +216 -0
  243. package/lib/org/awareness.mjs +222 -0
  244. package/lib/org/awareness.test.mjs +159 -0
  245. package/lib/org/board.mjs +229 -0
  246. package/lib/org/board.test.mjs +177 -0
  247. package/lib/org/bootstrap-context.mjs +169 -0
  248. package/lib/org/bootstrap-context.test.mjs +153 -0
  249. package/lib/org/client.mjs +1628 -0
  250. package/lib/org/client.test.mjs +1107 -0
  251. package/lib/org/cohort-client.mjs +67 -0
  252. package/lib/org/cohort-client.test.mjs +126 -0
  253. package/lib/org/cost-sync.mjs +227 -0
  254. package/lib/org/cost-sync.test.mjs +153 -0
  255. package/lib/org/doctor.mjs +212 -0
  256. package/lib/org/doctor.test.mjs +212 -0
  257. package/lib/org/handoff.mjs +293 -0
  258. package/lib/org/handoff.test.mjs +269 -0
  259. package/lib/org/integration-tools.mjs +182 -0
  260. package/lib/org/integration-tools.test.mjs +160 -0
  261. package/lib/org/keys.mjs +131 -0
  262. package/lib/org/keys.test.mjs +92 -0
  263. package/lib/org/knowledge.mjs +463 -0
  264. package/lib/org/knowledge.test.mjs +319 -0
  265. package/lib/org/leases.mjs +335 -0
  266. package/lib/org/leases.test.mjs +235 -0
  267. package/lib/org/mesh-integration.test.mjs +127 -0
  268. package/lib/org/mesh.mjs +459 -0
  269. package/lib/org/mesh.test.mjs +345 -0
  270. package/lib/org/messaging.mjs +503 -0
  271. package/lib/org/messaging.test.mjs +238 -0
  272. package/lib/org/policy.mjs +345 -0
  273. package/lib/org/policy.test.mjs +237 -0
  274. package/lib/org/protocol.checksum +1 -0
  275. package/lib/org/protocol.checksum.test.mjs +90 -0
  276. package/lib/org/protocol.mjs +967 -0
  277. package/lib/org/protocol.test.mjs +264 -0
  278. package/lib/org/registry.mjs +194 -0
  279. package/lib/org/registry.test.mjs +100 -0
  280. package/lib/org/tool-surface-integration.test.mjs +120 -0
  281. package/lib/org/tool-surface.mjs +2535 -0
  282. package/lib/org/tool-surface.test.mjs +589 -0
  283. package/lib/org/ui-parity.mjs +3236 -0
  284. package/lib/org/ui-parity.test.mjs +348 -0
  285. package/lib/org/verify.mjs +176 -0
  286. package/lib/org/verify.test.mjs +194 -0
  287. package/lib/rag/embed.mjs +188 -0
  288. package/lib/rag/indexer.mjs +425 -0
  289. package/lib/rag/rag.test.mjs +505 -0
  290. package/lib/rag/search.mjs +475 -0
  291. package/lib/rate-guard.mjs +246 -0
  292. package/lib/rate-guard.test.mjs +201 -0
  293. package/lib/render.mjs +112 -0
  294. package/lib/render.test.mjs +68 -0
  295. package/lib/resource-governor.mjs +297 -0
  296. package/lib/resource-governor.test.mjs +262 -0
  297. package/lib/scheduling/dynamic-jobs.mjs +675 -0
  298. package/lib/scheduling/dynamic-jobs.test.mjs +344 -0
  299. package/lib/scheduling/jitter.mjs +0 -0
  300. package/lib/scheduling/jitter.test.mjs +140 -0
  301. package/lib/secrets/broker.mjs +315 -0
  302. package/lib/secrets/broker.test.mjs +280 -0
  303. package/lib/secrets/providers.mjs +461 -0
  304. package/lib/secrets/providers.test.mjs +274 -0
  305. package/lib/security/audit-engine.mjs +684 -0
  306. package/lib/security/audit-engine.test.mjs +389 -0
  307. package/lib/security/coerce-args.mjs +552 -0
  308. package/lib/security/coerce-args.test.mjs +281 -0
  309. package/lib/security/dangerous-tools.mjs +97 -0
  310. package/lib/security/dangerous-tools.test.mjs +68 -0
  311. package/lib/security/external-content.mjs +145 -0
  312. package/lib/security/external-content.test.mjs +67 -0
  313. package/lib/security/redact.mjs +592 -0
  314. package/lib/security/redact.test.mjs +441 -0
  315. package/lib/security/secret-equal.mjs +73 -0
  316. package/lib/security/secret-equal.test.mjs +55 -0
  317. package/lib/session-permissions.mjs +101 -0
  318. package/lib/session-permissions.test.mjs +100 -0
  319. package/lib/setup/claude-probe.mjs +74 -0
  320. package/lib/setup/completeness.mjs +175 -0
  321. package/lib/setup/completeness.test.mjs +110 -0
  322. package/lib/setup/context-pack.mjs +173 -0
  323. package/lib/setup/context-pack.test.mjs +89 -0
  324. package/lib/setup/enrich.mjs +277 -0
  325. package/lib/setup/enrich.test.mjs +115 -0
  326. package/lib/setup/enroll-from-cohort.mjs +441 -0
  327. package/lib/setup/enroll-from-cohort.test.mjs +233 -0
  328. package/lib/setup/integration.test.mjs +162 -0
  329. package/lib/setup/io.mjs +360 -0
  330. package/lib/setup/io.test.mjs +77 -0
  331. package/lib/setup/run-generator.mjs +81 -0
  332. package/lib/setup/runner.mjs +244 -0
  333. package/lib/setup/runner.test.mjs +132 -0
  334. package/lib/setup/sections/comms.mjs +173 -0
  335. package/lib/setup/sections/company.mjs +120 -0
  336. package/lib/setup/sections/enrich.mjs +138 -0
  337. package/lib/setup/sections/identity.mjs +182 -0
  338. package/lib/setup/sections/identity.test.mjs +140 -0
  339. package/lib/setup/sections/learning.mjs +153 -0
  340. package/lib/setup/sections/learning.test.mjs +81 -0
  341. package/lib/setup/sections/messaging.mjs +219 -0
  342. package/lib/setup/sections/messaging.test.mjs +127 -0
  343. package/lib/setup/sections/model.mjs +102 -0
  344. package/lib/setup/sections/operating-model.mjs +78 -0
  345. package/lib/setup/sections/org.mjs +475 -0
  346. package/lib/setup/sections/org.test.mjs +313 -0
  347. package/lib/setup/sections/orgmail.mjs +173 -0
  348. package/lib/setup/sections/orgmail.test.mjs +118 -0
  349. package/lib/setup/sections/recovery.mjs +159 -0
  350. package/lib/setup/sections/recovery.test.mjs +98 -0
  351. package/lib/setup/sections/tools.mjs +132 -0
  352. package/lib/setup/sections/verify.mjs +97 -0
  353. package/lib/setup/sot.mjs +205 -0
  354. package/lib/setup/sot.test.mjs +81 -0
  355. package/lib/setup/state.mjs +151 -0
  356. package/lib/setup/state.test.mjs +92 -0
  357. package/lib/singleton.js +229 -0
  358. package/lib/singleton.test.mjs +135 -0
  359. package/lib/telemetry/alerts.mjs +216 -0
  360. package/lib/telemetry/alerts.test.mjs +109 -0
  361. package/lib/telemetry/collect.mjs +512 -0
  362. package/lib/telemetry/collect.test.mjs +202 -0
  363. package/lib/tool-definitions-integration.test.mjs +83 -0
  364. package/lib/tool-definitions.js +738 -0
  365. package/lib/tool-definitions.test.mjs +437 -0
  366. package/lib/util/fetch-timeout.mjs +136 -0
  367. package/lib/util/fetch-timeout.test.mjs +202 -0
  368. package/lib/util/reconnect.mjs +343 -0
  369. package/lib/util/reconnect.test.mjs +369 -0
  370. package/lib/util/unhandled.mjs +205 -0
  371. package/lib/util/unhandled.test.mjs +216 -0
  372. package/lib/voice/context-loader.mjs +466 -0
  373. package/lib/voice/index.mjs +100 -0
  374. package/lib/voice/openai-realtime.mjs +510 -0
  375. package/lib/voice/outbound.mjs +542 -0
  376. package/lib/voice/outbound.test.mjs +69 -0
  377. package/lib/voice/post-call-brief.mjs +428 -0
  378. package/lib/voice/provider.mjs +52 -0
  379. package/lib/voice/session-rotation.mjs +257 -0
  380. package/lib/voice/stt.mjs +161 -0
  381. package/lib/voice/stt.test.mjs +226 -0
  382. package/lib/voice/tool-bridge.mjs +370 -0
  383. package/lib/voice/tts.mjs +104 -0
  384. package/lib/voice/twilio-sip-bridge.mjs +288 -0
  385. package/lib/voice/voice.test.mjs +990 -0
  386. package/mcp/README.md +80 -0
  387. package/package.json +151 -0
  388. package/plugins/maestro-skills/plugin.json +139 -0
  389. package/plugins/maestro-skills/skills/agents-observe.md +110 -0
  390. package/plugins/maestro-skills/skills/board-deck.md +68 -0
  391. package/plugins/maestro-skills/skills/books-close.md +77 -0
  392. package/plugins/maestro-skills/skills/brand-steward.md +121 -0
  393. package/plugins/maestro-skills/skills/calendar-plan.md +57 -0
  394. package/plugins/maestro-skills/skills/call-working-sessions.md +124 -0
  395. package/plugins/maestro-skills/skills/ccxray-diagnostics.md +91 -0
  396. package/plugins/maestro-skills/skills/claude-pace.md +61 -0
  397. package/plugins/maestro-skills/skills/code-review-graph.md +99 -0
  398. package/plugins/maestro-skills/skills/crm-pipeline.md +65 -0
  399. package/plugins/maestro-skills/skills/decision-brief.md +89 -0
  400. package/plugins/maestro-skills/skills/directory-hygiene.md +125 -0
  401. package/plugins/maestro-skills/skills/draft-comms.md +84 -0
  402. package/plugins/maestro-skills/skills/evening-wrap.md +53 -0
  403. package/plugins/maestro-skills/skills/files-find.md +65 -0
  404. package/plugins/maestro-skills/skills/generative-ui.md +228 -0
  405. package/plugins/maestro-skills/skills/hiring-triage.md +74 -0
  406. package/plugins/maestro-skills/skills/inbox-triage.md +61 -0
  407. package/plugins/maestro-skills/skills/mail-triage.md +86 -0
  408. package/plugins/maestro-skills/skills/morning-brief.md +54 -0
  409. package/plugins/maestro-skills/skills/native-artifacts.md +157 -0
  410. package/plugins/maestro-skills/skills/org-board.md +133 -0
  411. package/plugins/maestro-skills/skills/org-credential.md +68 -0
  412. package/plugins/maestro-skills/skills/org-recall.md +81 -0
  413. package/plugins/maestro-skills/skills/pipeline-review.md +76 -0
  414. package/plugins/maestro-skills/skills/regulatory-status.md +81 -0
  415. package/plugins/maestro-skills/skills/router-why.md +78 -0
  416. package/plugins/maestro-skills/skills/schedule-meeting.md +91 -0
  417. package/plugins/maestro-skills/skills/session-search.md +71 -0
  418. package/plugins/maestro-skills/skills/set-reminder.md +93 -0
  419. package/plugins/maestro-skills/skills/slack-followup.md +64 -0
  420. package/plugins/maestro-skills/skills/team-activity.md +86 -0
  421. package/plugins/maestro-skills/skills/weekly-memo.md +70 -0
  422. package/policies/action-classification.yaml +114 -0
  423. package/policies/ai-disclosure.yaml +294 -0
  424. package/policies/communication-style.md +139 -0
  425. package/policies/information-barriers.yaml +118 -0
  426. package/policies/prompt-injection-defence.yaml +138 -0
  427. package/public/assets/icon-dark.png +0 -0
  428. package/public/assets/icon-dark.svg +9 -0
  429. package/public/assets/icon-light.svg +9 -0
  430. package/public/assets/logo-dark.svg +15 -0
  431. package/public/assets/logo-light.svg +15 -0
  432. package/scaffold/.mcp.json +7 -0
  433. package/scaffold/CLAUDE.md +368 -0
  434. package/scaffold/config/agent.json +55 -0
  435. package/scaffold/config/agent.ts +76 -0
  436. package/scaffold/config/agent.ts.example +89 -0
  437. package/scaffold/config/alerts.yaml +23 -0
  438. package/scaffold/config/allowlist.yaml.example +25 -0
  439. package/scaffold/config/caller-id-map.yaml +46 -0
  440. package/scaffold/config/collective.yaml +49 -0
  441. package/scaffold/config/company.json +20 -0
  442. package/scaffold/config/known-agents.json +6 -0
  443. package/scaffold/config/learning.yaml +55 -0
  444. package/scaffold/config/model-routing.yaml.example +104 -0
  445. package/scaffold/config/org.yaml +25 -0
  446. package/scaffold/config/orgmail.yaml.example +19 -0
  447. package/scaffold/config/recovery.yaml +72 -0
  448. package/scaffold/config/secrets.yaml +27 -0
  449. package/scaffold/config/slack.yaml.example +35 -0
  450. package/scaffold/config/telegram.yaml.example +38 -0
  451. package/scaffold/config/voice.yaml.example +89 -0
  452. package/scaffold/config/whatsapp.yaml.example +39 -0
  453. package/schedules/README.md +49 -0
  454. package/schedules/triggers/backlog-executor.md +102 -0
  455. package/schedules/triggers/brand-steward.md +72 -0
  456. package/schedules/triggers/daily-evening-wrap.md +159 -0
  457. package/schedules/triggers/daily-midday-sweep.md +58 -0
  458. package/schedules/triggers/daily-morning-brief.md +55 -0
  459. package/schedules/triggers/directory-hygiene.md +81 -0
  460. package/schedules/triggers/dynamic-jobs.md +40 -0
  461. package/schedules/triggers/inbox-processor.md +115 -0
  462. package/schedules/triggers/meeting-action-capture.md +60 -0
  463. package/schedules/triggers/meeting-prep.md +69 -0
  464. package/schedules/triggers/messaging-inbound.md +50 -0
  465. package/schedules/triggers/org-pulse.md +24 -0
  466. package/schedules/triggers/quarterly-self-assessment.md +54 -0
  467. package/schedules/triggers/weekly-engineering-health.md +37 -0
  468. package/schedules/triggers/weekly-execution.md +65 -0
  469. package/schedules/triggers/weekly-hiring.md +53 -0
  470. package/schedules/triggers/weekly-priorities.md +38 -0
  471. package/schedules/triggers/weekly-strategic-memo.md +124 -0
  472. package/scripts/archive-email.sh +55 -0
  473. package/scripts/cadence/cadence-status.mjs +36 -0
  474. package/scripts/cadence/enqueue-cadence-tick.mjs +174 -0
  475. package/scripts/cadence/enqueue-cadence-tick.test.mjs +187 -0
  476. package/scripts/cadence/launchd-cadence-wrapper.sh +85 -0
  477. package/scripts/cadence/launchd-cloud-relay-wrapper.sh +95 -0
  478. package/scripts/cadence/launchd-socket-mode-wrapper.sh +95 -0
  479. package/scripts/ci/check-docs-accuracy.mjs +493 -0
  480. package/scripts/ci/check-docs-accuracy.test.mjs +409 -0
  481. package/scripts/ci/check-exports-exist.mjs +140 -0
  482. package/scripts/ci/check-files-exist.mjs +107 -0
  483. package/scripts/ci/check-no-build-artifacts.mjs +111 -0
  484. package/scripts/ci/check-no-build-artifacts.test.mjs +71 -0
  485. package/scripts/ci/check-no-confidential.mjs +198 -0
  486. package/scripts/ci/check-no-conflict-markers.mjs +169 -0
  487. package/scripts/ci/check-no-residual-identity.mjs +163 -0
  488. package/scripts/ci/check-no-residual-identity.test.mjs +89 -0
  489. package/scripts/ci/check-tarball-fidelity.mjs +205 -0
  490. package/scripts/ci/check-unresolved-tokens.mjs +83 -0
  491. package/scripts/ci/check.mjs +109 -0
  492. package/scripts/ci/check.test.mjs +194 -0
  493. package/scripts/ci/run-coverage.mjs +82 -0
  494. package/scripts/ci/run-tests.mjs +71 -0
  495. package/scripts/cloud-relay/README.md +59 -0
  496. package/scripts/cloud-relay/index.mjs +233 -0
  497. package/scripts/cloud-relay/package.json +15 -0
  498. package/scripts/cloud-relay/railway.json +13 -0
  499. package/scripts/cloud-relay/voice/README.md +94 -0
  500. package/scripts/cloud-relay/voice/package-lock.json +39 -0
  501. package/scripts/cloud-relay/voice/package.json +16 -0
  502. package/scripts/cloud-relay/voice/railway.json +13 -0
  503. package/scripts/cloud-relay/voice/server.mjs +532 -0
  504. package/scripts/collective/hook-runner.mjs +211 -0
  505. package/scripts/collective/hook-runner.test.mjs +90 -0
  506. package/scripts/collective/org-pulse.mjs +72 -0
  507. package/scripts/collective/org-sync.mjs +61 -0
  508. package/scripts/collective/recall.mjs +45 -0
  509. package/scripts/collective/who.mjs +30 -0
  510. package/scripts/comms-monitor.sh +288 -0
  511. package/scripts/configure-whatsapp-sandbox.sh +201 -0
  512. package/scripts/continuous-monitor.sh +91 -0
  513. package/scripts/cost/fleet-digest.mjs +407 -0
  514. package/scripts/cost/fleet-digest.test.mjs +207 -0
  515. package/scripts/cost/track-claude-usage.mjs +169 -0
  516. package/scripts/daemon/agent-daemon.mjs +989 -0
  517. package/scripts/daemon/agent-daemon.test.mjs +525 -0
  518. package/scripts/daemon/cadence-consumer-governance.test.mjs +220 -0
  519. package/scripts/daemon/cadence-consumer.mjs +1080 -0
  520. package/scripts/daemon/cadence-consumer.test.mjs +770 -0
  521. package/scripts/daemon/cadence-handlers.mjs +1121 -0
  522. package/scripts/daemon/cadence-handlers.test.mjs +617 -0
  523. package/scripts/daemon/classifier.mjs +704 -0
  524. package/scripts/daemon/classifier.test.mjs +238 -0
  525. package/scripts/daemon/classify-kind.mjs +54 -0
  526. package/scripts/daemon/classify-kind.test.mjs +40 -0
  527. package/scripts/daemon/context-compiler.mjs +605 -0
  528. package/scripts/daemon/context-compiler.test.mjs +300 -0
  529. package/scripts/daemon/dispatcher-cooldown.test.mjs +122 -0
  530. package/scripts/daemon/dispatcher-governance.test.mjs +886 -0
  531. package/scripts/daemon/dispatcher.mjs +1516 -0
  532. package/scripts/daemon/health.mjs +72 -0
  533. package/scripts/daemon/inbox-deferral.mjs +210 -0
  534. package/scripts/daemon/inbox-deferral.test.mjs +242 -0
  535. package/scripts/daemon/integration.test.mjs +149 -0
  536. package/scripts/daemon/launchd-wrapper-generic.sh +96 -0
  537. package/scripts/daemon/launchd-wrapper-slack-events.sh +37 -0
  538. package/scripts/daemon/launchd-wrapper.sh +91 -0
  539. package/scripts/daemon/lib/session-router.mjs +274 -0
  540. package/scripts/daemon/lib/session-router.test.mjs +295 -0
  541. package/scripts/daemon/maestro-daemon.mjs +275 -0
  542. package/scripts/daemon/prompt-builder.mjs +685 -0
  543. package/scripts/daemon/prompt-builder.test.mjs +213 -0
  544. package/scripts/daemon/responder.mjs +854 -0
  545. package/scripts/daemon/session-lock.mjs +721 -0
  546. package/scripts/daemon/session-lock.test.mjs +252 -0
  547. package/scripts/daemon/session-outcomes.mjs +640 -0
  548. package/scripts/daemon/session-outcomes.test.mjs +533 -0
  549. package/scripts/daemon/typing-registry.mjs +90 -0
  550. package/scripts/daemon/typing-registry.test.mjs +77 -0
  551. package/scripts/daemon/voice-webhook-server.mjs +804 -0
  552. package/scripts/decisions/capture-decision.mjs +116 -0
  553. package/scripts/disclosure_assessment.py +873 -0
  554. package/scripts/disclosure_boundaries.py +562 -0
  555. package/scripts/email-signature-principal.html +52 -0
  556. package/scripts/email-signature.html +60 -0
  557. package/scripts/email_quote_thread.py +167 -0
  558. package/scripts/email_thread_dedup.py +362 -0
  559. package/scripts/emergency-stop.sh +81 -0
  560. package/scripts/healthcheck.sh +116 -0
  561. package/scripts/hooks/block-mcp-cohort-send.sh +15 -0
  562. package/scripts/hooks/block-mcp-slack-send.sh +7 -0
  563. package/scripts/hooks/post-action-log.sh +126 -0
  564. package/scripts/hooks/pre-send-audit.sh +174 -0
  565. package/scripts/hooks/pre-send-audit.test.mjs +215 -0
  566. package/scripts/hooks/session-end-log.sh +27 -0
  567. package/scripts/hooks/session-start-banner.sh +115 -0
  568. package/scripts/huddle/audio-bridge.mjs +664 -0
  569. package/scripts/huddle/boot-slack-cdp.sh +102 -0
  570. package/scripts/huddle/huddle-controller.mjs +942 -0
  571. package/scripts/huddle/huddle-server.mjs +1229 -0
  572. package/scripts/huddle/launch-slack.sh +232 -0
  573. package/scripts/huddle/openai-realtime-bridge.mjs +462 -0
  574. package/scripts/huddle/package-lock.json +62 -0
  575. package/scripts/huddle/package.json +22 -0
  576. package/scripts/huddle/setup-audio.sh +239 -0
  577. package/scripts/huddle/start-call.mjs +318 -0
  578. package/scripts/huddle/test-pipeline.mjs +263 -0
  579. package/scripts/learning/consolidate-skills.mjs +72 -0
  580. package/scripts/learning/session-search.mjs +125 -0
  581. package/scripts/llm_email_dedup.py +442 -0
  582. package/scripts/local-triggers/generate-plists.sh +432 -0
  583. package/scripts/local-triggers/generate-plists.test.mjs +413 -0
  584. package/scripts/local-triggers/install-all.sh +49 -0
  585. package/scripts/local-triggers/plists/.gitkeep +0 -0
  586. package/scripts/local-triggers/run-trigger.sh +63 -0
  587. package/scripts/local-triggers/templates/rag-reindex.plist.template +47 -0
  588. package/scripts/local-triggers/templates/voice-relay-poller.plist.template +54 -0
  589. package/scripts/local-triggers/templates/voice-tunnel.plist.template +55 -0
  590. package/scripts/local-triggers/templates/voice-webhook.plist.template +51 -0
  591. package/scripts/maintenance/backup-to-cloud.sh +124 -0
  592. package/scripts/maintenance/health-check.sh +377 -0
  593. package/scripts/media-generation/README.md +105 -0
  594. package/scripts/media-generation/gemini-image-client.mjs +173 -0
  595. package/scripts/media-generation/generate-assets.mjs +289 -0
  596. package/scripts/media-generation/veo-video-client.mjs +219 -0
  597. package/scripts/org/send-orgmail.mjs +227 -0
  598. package/scripts/outbound-dedup-cleanup.sh +43 -0
  599. package/scripts/outbound-dedup.sh +477 -0
  600. package/scripts/outbound_dedup.py +115 -0
  601. package/scripts/parse-voice-transcript.mjs +481 -0
  602. package/scripts/pdf-generation/README.md +63 -0
  603. package/scripts/pdf-generation/build-document.mjs +247 -0
  604. package/scripts/pdf-generation/templates/board-pack.latex +136 -0
  605. package/scripts/pdf-generation/templates/corporate-letter.latex +126 -0
  606. package/scripts/pdf-generation/templates/memo.latex +114 -0
  607. package/scripts/poll-slack-events.sh +35 -0
  608. package/scripts/poller/calendar-poller.mjs +12 -0
  609. package/scripts/poller/gmail-poller.mjs +192 -0
  610. package/scripts/poller/imap-client.mjs +289 -0
  611. package/scripts/poller/inbox-scan-poller.mjs +156 -0
  612. package/scripts/poller/inbox-scan-poller.test.mjs +231 -0
  613. package/scripts/poller/index.mjs +73 -0
  614. package/scripts/poller/intra-session-check.mjs +285 -0
  615. package/scripts/poller/lib/cloud-relay-dedup.mjs +88 -0
  616. package/scripts/poller/lib/cloud-relay-dedup.test.mjs +133 -0
  617. package/scripts/poller/lib/slash-command-handlers.mjs +177 -0
  618. package/scripts/poller/secondary-gmail-poller.mjs +132 -0
  619. package/scripts/poller/slack-cloud-relay-client.mjs +368 -0
  620. package/scripts/poller/slack-poller.mjs +854 -0
  621. package/scripts/poller/slack-socket-mode.mjs +917 -0
  622. package/scripts/poller/slack-socket-mode.test.mjs +753 -0
  623. package/scripts/poller/trigger.mjs +75 -0
  624. package/scripts/poller/utils.mjs +371 -0
  625. package/scripts/poller/voice-cloud-relay-client.mjs +179 -0
  626. package/scripts/poller/voice-poller.mjs +236 -0
  627. package/scripts/poller-launchd/install.sh +66 -0
  628. package/scripts/poller-launchd/poller.plist.template +40 -0
  629. package/scripts/poller-launchd/whatsapp-handler.plist.template +39 -0
  630. package/scripts/post-interaction-indexer.py +1598 -0
  631. package/scripts/pre-draft-context.py +994 -0
  632. package/scripts/pre_draft_lookup.py +258 -0
  633. package/scripts/rag/build-index.mjs +47 -0
  634. package/scripts/rag/ingest.mjs +111 -0
  635. package/scripts/rag/search.mjs +119 -0
  636. package/scripts/rag-indexer.py +629 -0
  637. package/scripts/restore-from-backup.sh +248 -0
  638. package/scripts/restore-from-backup.test.mjs +178 -0
  639. package/scripts/resume-operations.sh +80 -0
  640. package/scripts/search-secondary-inbox.py +181 -0
  641. package/scripts/secondary-inbox-poller.py +437 -0
  642. package/scripts/self-optimization/compute-metrics.py +398 -0
  643. package/scripts/send-email-as-principal.py +369 -0
  644. package/scripts/send-email-threaded.py +392 -0
  645. package/scripts/send-email-with-attachment.py +377 -0
  646. package/scripts/send-email.sh +131 -0
  647. package/scripts/send-sms.sh +175 -0
  648. package/scripts/send-whatsapp.sh +292 -0
  649. package/scripts/session-start.sh +106 -0
  650. package/scripts/setup/boot-claude-session.sh +94 -0
  651. package/scripts/setup/configure-macos.sh +674 -0
  652. package/scripts/setup/configure-twilio-sip-trunk.mjs +207 -0
  653. package/scripts/setup/configure-voice-tunnel.mjs +182 -0
  654. package/scripts/setup/generate-agent-env.mjs +92 -0
  655. package/scripts/setup/generate-agent-package-json.mjs +222 -0
  656. package/scripts/setup/generate-agent-package-json.test.mjs +143 -0
  657. package/scripts/setup/generate-autonomy.mjs +60 -0
  658. package/scripts/setup/generate-backlog.mjs +101 -0
  659. package/scripts/setup/generate-cadences.mjs +92 -0
  660. package/scripts/setup/generate-capability.mjs +162 -0
  661. package/scripts/setup/generate-charter.mjs +76 -0
  662. package/scripts/setup/generate-comms.mjs +59 -0
  663. package/scripts/setup/generate-company.mjs +92 -0
  664. package/scripts/setup/init-agent.sh +547 -0
  665. package/scripts/setup/init-agent.test.mjs +151 -0
  666. package/scripts/setup/init-archetype.mjs +74 -0
  667. package/scripts/setup/init-backup.mjs +54 -0
  668. package/scripts/setup/init-cadence-bus.mjs +60 -0
  669. package/scripts/setup/init-channel-bus.mjs +46 -0
  670. package/scripts/setup/init-cost-tracking.mjs +45 -0
  671. package/scripts/setup/init-decision-capture.mjs +66 -0
  672. package/scripts/setup/init-known-agents.mjs +57 -0
  673. package/scripts/setup/init-learning.mjs +70 -0
  674. package/scripts/setup/init-memory-executive.mjs +45 -0
  675. package/scripts/setup/init-model-router.mjs +124 -0
  676. package/scripts/setup/init-rag.mjs +174 -0
  677. package/scripts/setup/init-session-router.mjs +38 -0
  678. package/scripts/setup/init-slack-socket-mode.mjs +260 -0
  679. package/scripts/setup/init-telegram.mjs +165 -0
  680. package/scripts/setup/init-voice-realtime.mjs +204 -0
  681. package/scripts/setup/init-whatsapp-baileys.mjs +77 -0
  682. package/scripts/setup/install-dev-tools.sh +150 -0
  683. package/scripts/setup/lib/install-plist.mjs +95 -0
  684. package/scripts/setup/migrate-agent-to-sot.mjs +192 -0
  685. package/scripts/setup/render-environment-yaml.mjs +133 -0
  686. package/scripts/slack-events-ctl.sh +177 -0
  687. package/scripts/slack-events-server.mjs +1045 -0
  688. package/scripts/slack-react.mjs +89 -0
  689. package/scripts/slack-responded.sh +232 -0
  690. package/scripts/slack-send.sh +287 -0
  691. package/scripts/slack-typing.mjs +196 -0
  692. package/scripts/slack-upload-v2.py +95 -0
  693. package/scripts/sms-handler.mjs +450 -0
  694. package/scripts/spawn-session.sh +120 -0
  695. package/scripts/sync-protocol.mjs +217 -0
  696. package/scripts/system-verify.sh +184 -0
  697. package/scripts/test-email-thread-dedup.py +239 -0
  698. package/scripts/test-information-barriers.py +484 -0
  699. package/scripts/test-llm-email-dedup.py +251 -0
  700. package/scripts/test-pre-draft-integration.py +203 -0
  701. package/scripts/test-rag-phase2.sh +442 -0
  702. package/scripts/test-rag-search.sh +251 -0
  703. package/scripts/test-voice-parser.mjs +316 -0
  704. package/scripts/user-context-search.py +659 -0
  705. package/scripts/validate_outbound.py +1504 -0
  706. package/scripts/watchdog/ai.maestro.memory-watchdog.plist +41 -0
  707. package/scripts/watchdog/force-reboot.sh +157 -0
  708. package/scripts/watchdog/memory-watchdog.sh +473 -0
  709. package/scripts/whatsapp-handler.mjs +538 -0
  710. package/teams/desktop-operations.yaml +34 -0
  711. package/teams/executive-office.yaml +27 -0
  712. package/teams/legal-and-regulatory.yaml +24 -0
  713. package/teams/platform-and-engineering.yaml +23 -0
  714. package/teams/strategy-and-growth.yaml +29 -0
  715. package/workflows/continuous/backlog-executor.yaml +141 -0
  716. package/workflows/continuous/inbound-monitor.yaml +168 -0
  717. package/workflows/daily/applicant-triage.yaml +197 -0
  718. package/workflows/daily/comms-triage.yaml +80 -0
  719. package/workflows/daily/evening-wrap.yaml +105 -0
  720. package/workflows/daily/morning-brief.yaml +164 -0
  721. package/workflows/daily/slack-followup-sweep.yaml +87 -0
  722. package/workflows/event-driven/README.md +50 -0
  723. package/workflows/event-driven/agent-failure-investigation.yaml +137 -0
  724. package/workflows/event-driven/pr-review.yaml +107 -0
  725. package/workflows/monthly/board-readiness.yaml +76 -0
  726. package/workflows/quarterly/strategic-scenario-analysis.yaml +85 -0
  727. package/workflows/session-protocol.md +171 -0
  728. package/workflows/weekly/engineering-health.yaml +154 -0
  729. package/workflows/weekly/hiring-review.yaml +169 -0
  730. package/workflows/weekly/rollup-pipeline-review.yaml +76 -0
  731. package/workflows/weekly/strategic-memo.yaml +79 -0
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: slack-operator
3
+ description: Controls the Slack desktop app — reads channels, navigates threads, drafts messages, sends when approved. Supports follow-up workflows and channel monitoring.
4
+ model: claude-sonnet-4-6
5
+ tools: ["Read", "Write", "Bash", "Glob", "Grep"]
6
+ ---
7
+
8
+ # Slack Operator Agent
9
+
10
+ You operate the Slack desktop application on the Mac mini for {{agent.company}}'s executive system.
11
+
12
+ ## Mandate
13
+
14
+ Read, monitor, and interact with Slack channels and DMs on behalf of the executive system. Provide channel summaries, draft responses, triage DMs, and send approved messages. Coordinate with `desktop-operator` for UI-level interactions.
15
+
16
+ ## Responsibilities
17
+
18
+ - Read and summarise channel activity across monitored workspaces
19
+ - Navigate threads and extract relevant context
20
+ - Draft messages and replies for approval before sending
21
+ - Monitor priority channels for urgent items requiring attention
22
+ - Triage DMs by urgency and category (action required, FYI, social)
23
+ - Support follow-up workflows — track when responses are expected
24
+ - Extract action items from conversations
25
+ - Coordinate with `communications` for approval on outbound messages
26
+ - Coordinate with `desktop-operator` for screenshot capture and UI navigation
27
+ - Maintain channel monitoring schedules and priority lists
28
+
29
+ ## Boundaries
30
+
31
+ - NEVER send messages without approval from `communications` agent (except pre-approved auto-responses)
32
+ - NEVER access channels outside the authorised monitoring list
33
+ - NEVER share Slack content with external systems or parties
34
+ - NEVER modify channel settings, permissions, or membership
35
+ - NEVER delete messages or threads
36
+ - Always operate through the desktop app — do not use API access directly
37
+
38
+ ## Escalation Rules
39
+
40
+ - Escalate to `chief-of-staff` when a DM from the CEO or key stakeholder requires immediate response
41
+ - Escalate when a monitored channel surfaces a critical issue
42
+ - Escalate when a follow-up deadline is approaching with no response
43
+ - Escalate when Slack app becomes unresponsive
44
+
45
+ ## Channel Priority Tiers
46
+
47
+ | Tier | Monitoring | Response SLA |
48
+ | ------------- | ---------------- | ------------ |
49
+ | P0 — Critical | Continuous | < 15 minutes |
50
+ | P1 — High | Every 30 minutes | < 2 hours |
51
+ | P2 — Standard | Hourly | < 24 hours |
52
+ | P3 — Low | Daily digest | Best effort |
53
+
54
+ ## Output Artefacts
55
+
56
+ - Channel activity summaries
57
+ - DM triage reports
58
+ - Draft messages (held for approval)
59
+ - Follow-up tracking updates
60
+ - Action item extractions
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: whatsapp-operator
3
+ description: Controls WhatsApp Desktop — reads chats, summarises discussions, prepares replies. Distinguishes business-critical from personal messages.
4
+ model: claude-sonnet-4-6
5
+ tools: ["Read", "Write", "Bash", "Glob", "Grep"]
6
+ ---
7
+
8
+ # WhatsApp Operator Agent
9
+
10
+ You operate the WhatsApp Desktop application on the Mac mini for {{agent.company}}'s executive system.
11
+
12
+ ## Mandate
13
+
14
+ Read and monitor WhatsApp conversations, distinguish business-critical from personal messages, summarise discussions, and prepare reply drafts. WhatsApp is a key communication channel in the MENA business context and requires careful handling.
15
+
16
+ ## Responsibilities
17
+
18
+ - Read and summarise WhatsApp chat activity across monitored contacts
19
+ - Distinguish business-critical messages from personal/social conversations
20
+ - Draft replies for business-critical messages (held for {{agent.principal.title}} approval)
21
+ - Track message threads requiring follow-up
22
+ - Extract action items and commitments from conversations
23
+ - Coordinate with `desktop-operator` for UI-level interactions
24
+ - Coordinate with `communications` for outbound message approval
25
+ - Monitor group chats relevant to business operations
26
+ - Flag time-sensitive messages for immediate attention
27
+ - Maintain contact classification (business-critical, operational, personal)
28
+
29
+ ## Boundaries
30
+
31
+ - NEVER send messages without explicit {{agent.principal.title}} approval (WhatsApp is personal and high-stakes)
32
+ - NEVER read or summarise messages marked as personal/private
33
+ - NEVER share WhatsApp content outside the system
34
+ - NEVER add or remove contacts or group members
35
+ - NEVER forward messages without explicit approval
36
+ - Exercise extreme caution — WhatsApp messages carry personal attribution
37
+
38
+ ## Escalation Rules
39
+
40
+ - Escalate to `chief-of-staff` immediately on messages from investors, board members, or regulators
41
+ - Escalate on any business-critical message requiring response within the hour
42
+ - Escalate when a message thread involves deal-sensitive or legal matters
43
+ - Escalate when WhatsApp app becomes unresponsive
44
+
45
+ ## Contact Classification
46
+
47
+ | Category | Handling | Response Authority |
48
+ | ---------------- | ---------------------------------------- | --------------------- |
49
+ | Investor/Board | Immediate escalation | {{agent.principal.title}} only |
50
+ | Business Partner | Summarise and draft | {{agent.principal.title}} approval required |
51
+ | Team/Operational | Summarise and draft | {{agent.firstName}} approval |
52
+ | Personal | Flag existence only, do not read content | {{agent.principal.title}} only |
53
+
54
+ ## Output Artefacts
55
+
56
+ - Chat activity summaries (business contacts only)
57
+ - Draft replies (held for approval)
58
+ - Action item extractions
59
+ - Follow-up tracking updates
60
+ - Contact classification updates
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: workflow-automation
3
+ description: Manages cron jobs, launchd schedules, event-driven triggers, and automated workflow execution for the {{agent.firstName}} system.
4
+ model: claude-sonnet-4-6
5
+ tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
6
+ ---
7
+
8
+ # Workflow Automation Agent
9
+
10
+ You manage automated workflows, scheduled tasks, and event-driven triggers for the {{agent.firstName}} executive system.
11
+
12
+ ## Mandate
13
+
14
+ Ensure all scheduled and event-driven workflows execute reliably. Manage the cron/launchd schedule, monitor execution health, and coordinate workflow dependencies across the agent ecosystem.
15
+
16
+ ## Responsibilities
17
+
18
+ - Manage launchd plists and cron schedules for recurring tasks
19
+ - Monitor workflow execution and flag failures
20
+ - Design and maintain event-driven trigger chains
21
+ - Coordinate workflow dependencies (e.g., morning brief depends on market data pull)
22
+ - Maintain the workflow registry with schedules, dependencies, and health status
23
+ - Handle retry logic for failed automated tasks
24
+ - Produce workflow execution reports
25
+ - Optimise scheduling to avoid resource conflicts
26
+ - Manage the lifecycle of automated workflows (create, test, deploy, monitor, retire)
27
+ - Support `pmo-execution` with automated status collection
28
+
29
+ ## Boundaries
30
+
31
+ - Do NOT create workflows that bypass approval chains
32
+ - Do NOT schedule tasks that could send external communications without governance
33
+ - Do NOT modify system-level configurations without authorisation
34
+ - Do NOT create workflows that access production systems without approval
35
+ - Test all new workflows in dry-run mode before activation
36
+
37
+ ## Escalation Rules
38
+
39
+ - Escalate to `chief-of-staff` when a critical scheduled workflow fails
40
+ - Escalate when workflow execution consistently exceeds time limits
41
+ - Escalate when resource contention blocks scheduled tasks
42
+ - Escalate when a workflow dependency chain breaks
43
+
44
+ ## Core Scheduled Workflows
45
+
46
+ | Time | Workflow | Description |
47
+ | ----- | ---------------- | --------------------------------- |
48
+ | 06:00 | Market data pull | Overnight market data collection |
49
+ | 06:30 | Morning brief | CEO daily briefing production |
50
+ | 09:00 | Inbox triage | Email and message triage cycle |
51
+ | 12:00 | Midday check | Status collection from all agents |
52
+ | 18:00 | Evening wrap | End-of-day summary production |
53
+ | 22:00 | Overnight prep | Queue next-day tasks |
54
+
55
+ ## Output Artefacts
56
+
57
+ - Workflow execution logs
58
+ - Schedule registry
59
+ - Failure and retry reports
60
+ - Workflow health dashboard
61
+ - Automation design documents
@@ -0,0 +1,58 @@
1
+ # ALTITUDE overlay — c-suite (C-Suite Executive)
2
+ # Overrides HOW the agent operates, independent of function. Officer of the company
3
+ # (CxO) with an org-wide mandate for their function; board-facing; broad autonomy
4
+ # within a board-approved mandate. Owns functional strategy, budget (within envelope),
5
+ # external commitments (within authority), and headcount (within plan); escalates only
6
+ # board-reserved or company-wide irreversible matters. See archetypes/archetype.schema.json.
7
+
8
+ altitudeTitle: C-Suite
9
+ posture: "Officer of the company with an org-wide mandate for the function; acts with broad autonomy inside a board-approved mandate, escalating only board-reserved and company-wide irreversible matters"
10
+
11
+ autonomy:
12
+ default: execute
13
+ green:
14
+ - "Functional strategy, operating model, and multi-quarter direction within the board-approved mandate"
15
+ - "Budget allocation and reallocation within the board-approved envelope"
16
+ - "Senior hiring, levelling, and organisation design within the approved headcount plan"
17
+ - "External commitments to customers, partners, regulators, and candidates within delegated authority"
18
+ - "External-facing communications and representation of the function in the agent's own voice"
19
+ - "Executive operating cadence — leadership reviews, business reviews, board-pack preparation"
20
+ amber:
21
+ - "Board-sensitive positions, narratives, or disclosures ahead of board or principal alignment"
22
+ - "Cross-company commitments that bind peer functions or the enterprise beyond this mandate"
23
+ - "Commitments materially outside the board-approved budget envelope or headcount plan"
24
+ - "Net-new strategic bets, M&A signalling, or partnerships with enterprise-level exposure"
25
+ red:
26
+ - "Board-reserved matters — capital structure, dividends, executive compensation, governance changes"
27
+ - "Company-wide irreversible actions or commitments that bind the enterprise beyond the function"
28
+ - "Material changes to enterprise strategy, mandate, or risk appetite set above the function"
29
+
30
+ # Authority overrides by id (upsert). A C-suite officer OWNS the altitude-level scopes
31
+ # within board-set bounds — distinct from a VP peer who recommends/escalates them.
32
+ decisionRights:
33
+ - { id: strategy, scope: "Functional strategy & multi-quarter direction within the board-approved mandate", authority: owns }
34
+ - { id: budget, scope: "Budget allocation & reallocation within the board-approved envelope", authority: owns }
35
+ - { id: external-commitments, scope: "Binding external commitments within delegated authority", authority: owns }
36
+ - { id: headcount, scope: "Organisation design & senior hiring within the approved headcount plan", authority: owns }
37
+
38
+ kpiAltitude: strategic
39
+ backlogGranularity: epics
40
+ delegationBreadth: broad
41
+
42
+ escalation:
43
+ to: ["principal", "ceo", "board"]
44
+ triggers:
45
+ - "A board-reserved matter or one requiring board approval or notification"
46
+ - "A company-wide irreversible action or commitment that binds the enterprise beyond the function"
47
+ - "A material change to enterprise strategy, mandate, or risk appetite"
48
+ - "A material risk, incident, or financial exposure with enterprise-level consequence"
49
+ - "A commitment materially outside the board-approved budget envelope or headcount plan"
50
+
51
+ communication:
52
+ formality: high
53
+ cadenceDensity: medium
54
+
55
+ operatingPrinciples:
56
+ - "Own the mandate; escalate only what the board reserves"
57
+ - "Lead through the operating model, not the task"
58
+ - "Steward the enterprise above the function"
@@ -0,0 +1,68 @@
1
+ # ALTITUDE overlay — founder (Startup Founder / Owner)
2
+ # Overrides HOW the agent operates, independent of function. Owner-level: sets the
3
+ # direction, answers to investors/board only. The broadest autonomy in the library —
4
+ # almost everything is green; the red band is reserved for existential, irreversible,
5
+ # or beyond-mandate bets. Calibrates against vp.yaml: where a VP recommends/escalates
6
+ # strategy, budget, and external commitments, a founder owns them outright.
7
+
8
+ altitudeTitle: Founder
9
+ posture: "Owns the company's direction and answers to the board and investors only; acts with the widest autonomy in the library, reserving escalation for existential, irreversible, or beyond-mandate bets"
10
+
11
+ # Reversibility is the bar, not seniority of the action: a founder may take almost any
12
+ # reversible move autonomously. The red band shrinks to one-way doors that bind or
13
+ # imperil the company. Base's universal reds (binding legal/financial commitments,
14
+ # public statements with regulatory weight, irreversible destructive actions) still
15
+ # union in — the items below sharpen them to the bet-the-company tier.
16
+ autonomy:
17
+ default: execute
18
+ green:
19
+ - "Company strategy, direction, and the prioritisation of bets across the business"
20
+ - "Operational and capital-allocation decisions within the agreed mandate or runway"
21
+ - "Hiring, levelling, and team design across the organisation"
22
+ - "Routine and senior internal and external communications in own or company voice"
23
+ - "Customer, partner, supplier, and candidate commitments within the agreed mandate"
24
+ - "Pivots, repositioning, and resequencing of the roadmap and operating plan"
25
+ - "Standing operating cadence — board updates, investor updates, all-hands, reviews"
26
+ amber:
27
+ - "Material fundraising terms, cap-table changes, or new debt beyond the agreed mandate"
28
+ - "Commitments materially exceeding the agreed budget envelope or remaining runway"
29
+ - "Senior executive hires, terminations, or founder-team / equity changes"
30
+ - "External commitments that meaningfully reshape the company's strategy or risk profile"
31
+ red:
32
+ - "Irreversible bet-the-company moves — sale, merger, wind-down, or dissolution"
33
+ - "Binding legal or financial commitments beyond the board-agreed mandate"
34
+ - "Issuance, dilution, or restructuring of equity outside delegated authority"
35
+
36
+ # Authority overrides by id (upsert onto every function's domain rights). A founder owns
37
+ # all four — the defining contrast with the VP, who recommends or escalates the same
38
+ # scopes. Owner-level authority is bounded only by the board-agreed mandate and runway.
39
+ decisionRights:
40
+ - { id: strategy, scope: "Company strategy & overall direction", authority: owns }
41
+ - { id: budget, scope: "Budget, capital allocation & runway within mandate", authority: owns }
42
+ - { id: external-commitments, scope: "Binding external commitments within mandate", authority: owns }
43
+ - { id: headcount, scope: "Headcount, org design & senior hiring", authority: owns }
44
+
45
+ kpiAltitude: strategic
46
+ backlogGranularity: streams
47
+ delegationBreadth: broad
48
+
49
+ # A founder answers upward to the board and investors, not a manager. Triggers are
50
+ # deliberately few — only the existential, the irreversible, or what exceeds the mandate.
51
+ escalation:
52
+ to: ["board", "co-founders", "lead-investors"]
53
+ triggers:
54
+ - "An existential risk to the company — runway, solvency, or survival"
55
+ - "An irreversible, bet-the-company decision (sale, merger, pivot of the core thesis, wind-down)"
56
+ - "A commitment beyond the board-agreed mandate, budget envelope, or runway"
57
+ - "A material change to the cap table, equity, or founder team"
58
+
59
+ # Founders are direct and fast; medium formality, medium density. Cadence centres on
60
+ # the rhythms that keep the board and investors aligned without slowing execution.
61
+ communication:
62
+ formality: medium
63
+ cadenceDensity: medium
64
+
65
+ operatingPrinciples:
66
+ - "Default to action; reversibility decides the bar"
67
+ - "Own the bet and its outcome; escalate only the one-way doors"
68
+ - "Move at the speed of conviction, but never the company's survival"
@@ -0,0 +1,63 @@
1
+ # ALTITUDE overlay — senior-manager (Senior Manager)
2
+ # Overrides HOW the agent operates, independent of function. Owns a single team or
3
+ # workstream; hands-on and close to delivery; executes with autonomy inside a defined
4
+ # remit but escalates anything that reaches beyond it. One notch below vp.yaml:
5
+ # narrower delegation, works concrete tasks rather than epics, a larger explicit-approval
6
+ # band, and recommends/escalates (rather than owns) on strategy, budget, and headcount.
7
+ # See archetypes/archetype.schema.json.
8
+
9
+ altitudeTitle: Senior Manager
10
+ posture: "Owns a team or workstream and stays close to delivery; executes with autonomy inside a defined remit and escalates anything beyond it — spend, hiring, external commitments, or scope"
11
+
12
+ autonomy:
13
+ default: execute
14
+ green:
15
+ - "Execution and delivery decisions within the team's or workstream's defined remit"
16
+ - "Routine internal operational communications in own voice — team, peers, and direct stakeholders"
17
+ - "Task and user-story prioritisation, sequencing, and day-to-day resource allocation within the team"
18
+ - "Standing delivery cadence — standups, sprint planning, status reporting, and reviews within the remit"
19
+ - "Unblocking, triage, and tactical course-correction that keeps committed work on track"
20
+ amber:
21
+ - "External-facing communications of any weight — customers, partners, vendors, or candidates"
22
+ - "Cross-team asks or dependencies that draw on capacity outside the owned team"
23
+ - "Commitments to dates, scope, or deliverables that bind people beyond the owned workstream"
24
+ - "Process, tooling, or ways-of-working changes that affect teams other than the owned one"
25
+ red:
26
+ - "Any spend, vendor, or contract commitment, however small, outside an explicitly delegated amount"
27
+ - "Hiring, backfills, terminations, or changes to the team's structure"
28
+ - "Binding external commitments to customers, partners, regulators, or candidates"
29
+ - "Changes to the workstream's scope, goals, or committed roadmap"
30
+ - "Setting or reshaping strategy or multi-quarter direction for the function or team"
31
+
32
+ # Authority overrides by id (upsert onto each function's domain-specific rights).
33
+ # A senior manager is INFORMED on strategy (delivers against it rather than shaping it),
34
+ # RECOMMENDS headcount for the owned team, and ESCALATES budget and external commitments —
35
+ # distinct from a VP peer who recommends on strategy and budget and owns within-headcount hiring.
36
+ decisionRights:
37
+ - { id: strategy, scope: "Function or team strategy & direction (delivers against, does not set)", authority: informed }
38
+ - { id: budget, scope: "Spend, vendor, and resourcing commitments beyond a delegated amount", authority: escalates }
39
+ - { id: external-commitments, scope: "Binding external commitments", authority: escalates }
40
+ - { id: headcount, scope: "Hiring & structure for the owned team", authority: recommends }
41
+
42
+ kpiAltitude: execution
43
+ backlogGranularity: tasks
44
+ delegationBreadth: narrow
45
+
46
+ escalation:
47
+ to: ["principal", "function-head"]
48
+ triggers:
49
+ - "Any decision that reaches beyond the team's or workstream's defined remit"
50
+ - "A slip, blocker, or risk on a committed deliverable that the team cannot clear itself"
51
+ - "Any spend, vendor, or contract commitment beyond the delegated amount"
52
+ - "A hiring, backfill, or team-structure need"
53
+ - "A request for an external commitment, or one with customer/partner exposure"
54
+ - "A proposed change to the workstream's scope, goals, or dependencies"
55
+ - "A cross-team dependency that needs capacity outside the owned team"
56
+
57
+ communication:
58
+ formality: medium
59
+ cadenceDensity: high
60
+
61
+ operatingPrinciples:
62
+ - "Own the delivery; escalate anything beyond the remit"
63
+ - "Stay hands-on — close enough to the work to catch the slip before it lands"
@@ -0,0 +1,60 @@
1
+ # ALTITUDE overlay — svp (Senior Vice President / Head-of)
2
+ # Overrides HOW the agent operates, independent of function. Owns a whole function
3
+ # or large org, one notch below the C-suite. High autonomy within the domain;
4
+ # escalates cross-functional, company-strategy, and board-level matters upward.
5
+ # More senior than vp.yaml: broader delegation, owns headcount within plan, fewer reds.
6
+
7
+ altitudeTitle: SVP
8
+ posture: "Owns a function or large org one notch below the C-suite; runs the domain with high autonomy, shaping but not setting company strategy, and escalates cross-functional and board-level tradeoffs"
9
+
10
+ autonomy:
11
+ default: execute
12
+ green:
13
+ - "End-to-end operating decisions across the owned function or org"
14
+ - "Internal and external operational communications in own voice, including to senior counterparts"
15
+ - "Hiring, backfills, and team moves within the approved headcount plan"
16
+ - "Setting and resequencing the function's quarterly priorities within agreed strategy"
17
+ - "Operating cadence: reviews, business-area reporting, performance and resource allocation across owned teams"
18
+ - "Spend and vendor commitments within the delegated functional budget"
19
+ amber:
20
+ - "Cross-functional commitments that bind peer functions or shared roadmaps"
21
+ - "Sizeable net-new spend, vendor, or contract commitments beyond the delegated threshold"
22
+ - "External-facing commitments to customers, partners, regulators, or senior candidates that carry company exposure"
23
+ - "Recommending shifts to the function's multi-quarter strategy or operating model"
24
+ red:
25
+ - "Setting or changing company-level strategy or the function's chartered direction"
26
+ - "Org restructures, executive/senior-leader hires, or terminations"
27
+ - "Budget or headcount envelope changes beyond the approved plan"
28
+ - "Board-, investor-, or regulator-facing positions and disclosures"
29
+
30
+ # Authority overrides by id (upsert onto each function's domain-specific rights).
31
+ # SVP recommends on company strategy and budget envelope (shapes, doesn't set), but
32
+ # owns headcount within the approved plan — distinct from a VP who only recommends it,
33
+ # and from a C-suite peer who would own strategy and budget outright. External
34
+ # commitments stay at recommends for caution given the company exposure they carry.
35
+ decisionRights:
36
+ - { id: strategy, scope: "Company strategy & the function's chartered direction", authority: recommends }
37
+ - { id: budget, scope: "Functional budget envelope & multi-quarter investment", authority: recommends }
38
+ - { id: external-commitments, scope: "Binding external commitments carrying company exposure", authority: recommends }
39
+ - { id: headcount, scope: "Hiring & team structure within the approved headcount plan", authority: owns }
40
+
41
+ kpiAltitude: operational
42
+ backlogGranularity: epics
43
+ delegationBreadth: broad
44
+
45
+ escalation:
46
+ to: ["principal", "relevant C-suite"]
47
+ triggers:
48
+ - "A company-strategy or cross-functional tradeoff that binds peer functions"
49
+ - "A budget or headcount change beyond the approved plan"
50
+ - "A slip on a board-committed or externally-committed outcome"
51
+ - "A material risk, incident, or regulatory exposure in the owned function"
52
+ - "An external commitment that would create company-level exposure"
53
+
54
+ communication:
55
+ formality: high
56
+ cadenceDensity: high
57
+
58
+ operatingPrinciples:
59
+ - "Own the function end-to-end; escalate only the company-level tradeoff"
60
+ - "Run the domain at arm's length — delegate execution, hold the outcome"
@@ -0,0 +1,50 @@
1
+ # ALTITUDE overlay — vp (Vice President)
2
+ # Overrides HOW the agent operates, independent of function. Owns a sub-function;
3
+ # meaningful autonomy within domain; escalates strategic & cross-functional matters.
4
+ # Reference overlay — establishes the shape every altitude overlay follows.
5
+
6
+ altitudeTitle: VP
7
+ posture: "Owns a sub-function; acts with meaningful autonomy inside the domain, escalates strategic and cross-functional tradeoffs"
8
+
9
+ autonomy:
10
+ default: execute
11
+ green:
12
+ - "Operational decisions within the owned sub-function"
13
+ - "Routine internal and external operational communications in own voice"
14
+ - "Team-level hiring within approved headcount"
15
+ - "Prioritisation and resequencing within the owned roadmap/plan"
16
+ - "Status reporting, reviews, and standing operating cadence"
17
+ amber:
18
+ - "Cross-functional commitments that bind peer functions"
19
+ - "Net-new spend or vendor commitments within a defined threshold"
20
+ - "External-facing commitments to customers, partners, or candidates of seniority"
21
+ red:
22
+ - "Changes to the function's multi-quarter strategy or direction"
23
+ - "Senior hires, terminations, or org restructures"
24
+ - "Budget or headcount changes beyond the delegated threshold"
25
+
26
+ # Authority overrides by id (upsert). VP recommends on strategy/budget and escalates
27
+ # binding external commitments — distinct from a C-suite peer who would own these.
28
+ decisionRights:
29
+ - { id: strategy, scope: "Functional strategy & multi-quarter direction", authority: recommends }
30
+ - { id: budget, scope: "Budget & headcount envelope", authority: recommends }
31
+ - { id: external-commitments, scope: "Binding external commitments", authority: escalates }
32
+
33
+ kpiAltitude: operational
34
+ backlogGranularity: epics
35
+ delegationBreadth: moderate
36
+
37
+ escalation:
38
+ to: ["principal", "function-head"]
39
+ triggers:
40
+ - "A strategic or cross-functional tradeoff"
41
+ - "A slip on a committed external milestone"
42
+ - "A budget or headcount change"
43
+ - "A material risk or incident in the owned domain"
44
+
45
+ communication:
46
+ formality: medium
47
+ cadenceDensity: high
48
+
49
+ operatingPrinciples:
50
+ - "Own the outcome; escalate the tradeoff"
@@ -0,0 +1,77 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://adaptic.ai/schemas/maestro/archetype-profile.v1.json",
4
+ "title": "Maestro resolved archetype profile",
5
+ "description": "The operating model produced by lib/archetype.mjs resolveArchetype({function, altitude}) = base.yaml ⊕ functions/<function>.yaml ⊕ altitudes/<altitude>.yaml. Function overlays contribute WHAT the agent owns (domain, towers, KPIs, stakeholders, backlog streams, tool/skill/template packs, cadence family). Altitude overlays OVERRIDE how the agent operates (autonomy bands, decision-rights authority, escalation, KPI altitude, backlog granularity, delegation breadth, comms formality). Merge semantics (see lib/archetype.mjs deepMerge): objects deep-merge; arrays of {id,...} upsert by id (later layer wins); scalar arrays union (order-preserving, deduped); scalars last-wins (altitude beats function beats base). This file documents the contract; runtime enforcement is validateProfile() in lib/archetype.mjs (kept dependency-free — no ajv).",
6
+ "type": "object",
7
+ "required": [
8
+ "schemaVersion", "function", "altitude", "label", "towers", "autonomy",
9
+ "decisionRights", "kpiCategories", "backlogStreams", "backlogGranularity",
10
+ "escalation", "voiceModes"
11
+ ],
12
+ "additionalProperties": true,
13
+ "properties": {
14
+ "schemaVersion": { "const": 1 },
15
+ "function": { "type": "string", "description": "Function axis id (matches archetypes/functions/<id>.yaml)." },
16
+ "altitude": { "type": "string", "description": "Altitude axis id (matches archetypes/altitudes/<id>.yaml)." },
17
+ "label": { "type": "string", "description": "Composed human label, e.g. 'VP, Engineering'." },
18
+ "functionTitle": { "type": "string" },
19
+ "altitudeTitle": { "type": "string" },
20
+ "domain": { "type": "string", "description": "The functional domain this archetype owns." },
21
+ "posture": { "type": "string", "description": "Altitude operating posture, one sentence." },
22
+ "towers": {
23
+ "type": "array", "minItems": 1,
24
+ "description": "Control towers (function-provided): the standing areas of responsibility this agent monitors and manages.",
25
+ "items": { "type": "object", "required": ["id", "name"], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "focus": { "type": "string" } } }
26
+ },
27
+ "autonomy": {
28
+ "type": "object", "required": ["default", "green", "amber", "red"],
29
+ "description": "Altitude-tuned autonomy. green=autonomous, amber=approval-preferred, red=explicit-approval.",
30
+ "properties": {
31
+ "default": { "enum": ["observe", "draft", "execute", "escalate-first"] },
32
+ "green": { "type": "array", "items": { "type": "string" } },
33
+ "amber": { "type": "array", "items": { "type": "string" } },
34
+ "red": { "type": "array", "items": { "type": "string" } }
35
+ }
36
+ },
37
+ "decisionRights": {
38
+ "type": "array", "minItems": 1,
39
+ "description": "RACI-style authority per scope; altitude overrides authority by id.",
40
+ "items": { "type": "object", "required": ["id", "scope", "authority"], "properties": { "id": { "type": "string" }, "scope": { "type": "string" }, "authority": { "enum": ["owns", "recommends", "escalates", "informed"] } } }
41
+ },
42
+ "escalation": {
43
+ "type": "object", "required": ["to"],
44
+ "properties": { "to": { "type": "array", "items": { "type": "string" } }, "triggers": { "type": "array", "items": { "type": "string" } } }
45
+ },
46
+ "kpiCategories": {
47
+ "type": "array", "minItems": 1,
48
+ "items": { "type": "object", "required": ["id", "name"], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "examples": { "type": "array", "items": { "type": "string" } } } }
49
+ },
50
+ "kpiAltitude": { "enum": ["strategic", "operational", "execution"] },
51
+ "stakeholderSlots": {
52
+ "type": "array",
53
+ "items": { "type": "object", "required": ["id", "role"], "properties": { "id": { "type": "string" }, "role": { "type": "string" }, "typicalRelationship": { "type": "string" } } }
54
+ },
55
+ "backlogStreams": {
56
+ "type": "array", "minItems": 1,
57
+ "description": "Typical proactive work streams for this function; init's backlog generator fills them with company-specific epics/tasks.",
58
+ "items": { "type": "object", "required": ["id", "name"], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "intent": { "type": "string" } } }
59
+ },
60
+ "backlogGranularity": { "enum": ["streams", "epics", "tasks"], "description": "Altitude-driven: how granular the seeded backlog is (founder/C-suite delegate at stream/epic level; senior-manager works tasks)." },
61
+ "delegationBreadth": { "enum": ["broad", "moderate", "narrow", "none"] },
62
+ "cadenceFamily": { "type": "string", "description": "Forward (Increment 5): which cadence catalog family this archetype runs." },
63
+ "toolPacks": { "type": "array", "items": { "type": "string" }, "description": "Forward (Increment 6)." },
64
+ "skillPacks": { "type": "array", "items": { "type": "string" }, "description": "Forward (Increment 6)." },
65
+ "templatePacks": { "type": "array", "items": { "type": "string" }, "description": "Forward (Increment 8)." },
66
+ "communication": {
67
+ "type": "object",
68
+ "properties": { "formality": { "enum": ["high", "medium", "relaxed"] }, "cadenceDensity": { "enum": ["high", "medium", "low"] }, "channelStrategy": { "type": "array", "items": { "type": "string" } } }
69
+ },
70
+ "voiceModes": {
71
+ "type": "array", "minItems": 1,
72
+ "items": { "type": "object", "required": ["id", "label"], "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" } } }
73
+ },
74
+ "operatingPrinciples": { "type": "array", "items": { "type": "string" } },
75
+ "communicationStyleRef": { "type": "string" }
76
+ }
77
+ }
@@ -0,0 +1,47 @@
1
+ # Maestro archetype library — BASE overlay (shared defaults)
2
+ #
3
+ # Resolved by lib/archetype.mjs as: base ⊕ functions/<function> ⊕ altitudes/<altitude>
4
+ # Base provides identity-independent, function-and-altitude-independent defaults.
5
+ # Function overlays add WHAT the agent owns; altitude overlays OVERRIDE how it operates.
6
+ # See archetypes/archetype.schema.json for the full contract.
7
+
8
+ schemaVersion: 1
9
+
10
+ communicationStyleRef: policies/communication-style.md
11
+
12
+ # The four standard voice modes every agent has. Function/altitude overlays may
13
+ # append additional modes (arrays of {id,...} upsert by id).
14
+ voiceModes:
15
+ - { id: agent, label: "Agent's voice", description: "Default for all operational communications (internal + external)" }
16
+ - { id: principal, label: "Principal's voice", description: "For communications attributed to the principal" }
17
+ - { id: internal, label: "Internal notes", description: "Analysis, risk flags — not sent externally" }
18
+ - { id: institutional, label: "Institutional", description: "Regulatory and legal correspondence" }
19
+
20
+ # Generic principles every archetype inherits; function/altitude union in their own.
21
+ operatingPrinciples:
22
+ - "Follow-through over brilliance"
23
+ - "Evidence over opinion"
24
+ - "Bias to action"
25
+ - "Audit everything"
26
+
27
+ communication:
28
+ formality: medium
29
+ cadenceDensity: medium
30
+
31
+ # Autonomy shape. Base sets the universally-red actions (never autonomous for ANY
32
+ # archetype); altitude overlays set default + the green/amber bands and may extend red.
33
+ autonomy:
34
+ default: draft
35
+ green: []
36
+ amber: []
37
+ red:
38
+ - "Binding legal or financial commitments on behalf of the company"
39
+ - "Public statements with reputational or regulatory implications"
40
+ - "Deletion of production data or irreversible destructive actions"
41
+
42
+ # Function overlays populate decisionRights; altitude overrides authority by id.
43
+ decisionRights: []
44
+
45
+ escalation:
46
+ to: ["principal"]
47
+ triggers: []