@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.
- package/.claude/commands/init-agent.md +104 -0
- package/.claude/commands/init-maestro.md +1187 -0
- package/.claude/settings.json +161 -0
- package/.env.example +216 -0
- package/README.md +632 -0
- package/agents/browser-operator/agent.md +52 -0
- package/agents/calendar-ops/agent.md +50 -0
- package/agents/communications/agent.md +96 -0
- package/agents/decision-log/agent.md +65 -0
- package/agents/desktop-operator/agent.md +59 -0
- package/agents/gmail-operator/agent.md +62 -0
- package/agents/inbound-dispatcher/agent.md +66 -0
- package/agents/inbox-processor/agent.md +39 -0
- package/agents/pmo-execution/agent.md +60 -0
- package/agents/session-spawner/agent.md +64 -0
- package/agents/slack-operator/agent.md +60 -0
- package/agents/whatsapp-operator/agent.md +60 -0
- package/agents/workflow-automation/agent.md +61 -0
- package/archetypes/altitudes/c-suite.yaml +58 -0
- package/archetypes/altitudes/founder.yaml +68 -0
- package/archetypes/altitudes/senior-manager.yaml +63 -0
- package/archetypes/altitudes/svp.yaml +60 -0
- package/archetypes/altitudes/vp.yaml +50 -0
- package/archetypes/archetype.schema.json +77 -0
- package/archetypes/base.yaml +47 -0
- package/archetypes/capabilities/commercial-leader.yaml +159 -0
- package/archetypes/capabilities/compliance-officer.yaml +159 -0
- package/archetypes/capabilities/executive-operator.yaml +169 -0
- package/archetypes/capabilities/finance-leader.yaml +162 -0
- package/archetypes/capabilities/operations-leader.yaml +154 -0
- package/archetypes/capabilities/product-leader.yaml +148 -0
- package/archetypes/capabilities/technical-leader.yaml +146 -0
- package/archetypes/functions/commercial-leader.yaml +62 -0
- package/archetypes/functions/compliance-officer.yaml +64 -0
- package/archetypes/functions/executive-operator.yaml +70 -0
- package/archetypes/functions/finance-leader.yaml +70 -0
- package/archetypes/functions/operations-leader.yaml +62 -0
- package/archetypes/functions/product-leader.yaml +61 -0
- package/archetypes/functions/technical-leader.yaml +57 -0
- package/bin/cohort-mcp.mjs +81 -0
- package/bin/maestro.mjs +3516 -0
- package/bin/maestro.test.mjs +1015 -0
- package/desktop-control/README.md +56 -0
- package/desktop-control/app-profiles/gmail.yaml +120 -0
- package/desktop-control/app-profiles/slack.yaml +315 -0
- package/desktop-control/app-profiles/whatsapp.yaml +107 -0
- package/docs/architecture/agent-topology.md +2239 -0
- package/docs/architecture/archetype-agent-factory.md +110 -0
- package/docs/architecture/collective-memory-and-org-mesh.md +115 -0
- package/docs/architecture/continuous-monitoring.md +221 -0
- package/docs/architecture/mcp-capability-map.md +585 -0
- package/docs/architecture/system-architecture.md +1272 -0
- package/docs/company-context/README.md +40 -0
- package/docs/guides/agent-persona-setup.md +600 -0
- package/docs/guides/agents-observe-setup.md +64 -0
- package/docs/guides/billing-console-keys.md +88 -0
- package/docs/guides/ccxray-diagnostics.md +65 -0
- package/docs/guides/channel-bus.md +127 -0
- package/docs/guides/claude-mem-setup.md +79 -0
- package/docs/guides/claude-pace-setup.md +56 -0
- package/docs/guides/claudraband-sessions.md +98 -0
- package/docs/guides/clawteam-swarm.md +116 -0
- package/docs/guides/code-review-graph-setup.md +86 -0
- package/docs/guides/email-setup.md +431 -0
- package/docs/guides/mac-mini.md +119 -0
- package/docs/guides/media-generation-setup.md +349 -0
- package/docs/guides/model-routing.md +162 -0
- package/docs/guides/observability-otel.md +265 -0
- package/docs/guides/org-onboarding.md +132 -0
- package/docs/guides/outbound-governance-setup.md +437 -0
- package/docs/guides/pdf-generation-setup.md +315 -0
- package/docs/guides/poller-daemon-setup.md +563 -0
- package/docs/guides/rag-context-setup.md +459 -0
- package/docs/guides/self-optimization-pattern.md +82 -0
- package/docs/guides/setup-wizard.md +178 -0
- package/docs/guides/slack-setup.md +350 -0
- package/docs/guides/telegram-setup.md +227 -0
- package/docs/guides/twilio-subaccounts-setup.md +223 -0
- package/docs/guides/verification.md +128 -0
- package/docs/guides/voice-mode.md +188 -0
- package/docs/guides/voice-sms-setup.md +698 -0
- package/docs/guides/webhook-relay-setup.md +349 -0
- package/docs/guides/whatsapp-setup.md +288 -0
- package/docs/prompts/board-pack-cover-template.md +36 -0
- package/docs/prompts/decision-recommendation-template.md +88 -0
- package/docs/prompts/followup-message-template.md +141 -0
- package/docs/prompts/investor-letter-template.md +52 -0
- package/docs/prompts/morning-brief-template.md +82 -0
- package/docs/prompts/presentation-template.md +58 -0
- package/docs/prompts/weekly-strategic-memo-template.md +104 -0
- package/docs/research/hallucinated-tool-output-investigation.md +151 -0
- package/docs/runbooks/backup-restore.md +205 -0
- package/docs/runbooks/cohort-cutover.md +129 -0
- package/docs/runbooks/fleet-operations.md +200 -0
- package/docs/runbooks/incident-response.md +226 -0
- package/docs/runbooks/mac-mini-bootstrap.md +431 -0
- package/docs/runbooks/perpetual-operations.md +509 -0
- package/docs/runbooks/recovery-and-failover.md +260 -0
- package/framework-features.json +267 -0
- package/ingest/README.md +87 -0
- package/lib/action-executor.js +689 -0
- package/lib/action-executor.test.mjs +871 -0
- package/lib/agent-root.mjs +37 -0
- package/lib/archetype.mjs +236 -0
- package/lib/archetype.test.mjs +132 -0
- package/lib/autonomy.mjs +114 -0
- package/lib/autonomy.test.mjs +66 -0
- package/lib/backlog.mjs +358 -0
- package/lib/backlog.test.mjs +266 -0
- package/lib/budget-guard.mjs +279 -0
- package/lib/budget-guard.test.mjs +291 -0
- package/lib/cadence-bus-schedule.test.mjs +194 -0
- package/lib/cadence-bus.mjs +1120 -0
- package/lib/cadence-bus.test.mjs +720 -0
- package/lib/cadences.mjs +205 -0
- package/lib/cadences.test.mjs +125 -0
- package/lib/capability.mjs +154 -0
- package/lib/capability.test.mjs +78 -0
- package/lib/channels/base-adapter.mjs +719 -0
- package/lib/channels/base-adapter.test.mjs +590 -0
- package/lib/channels/channel.mjs +128 -0
- package/lib/channels/channels.test.mjs +371 -0
- package/lib/channels/contract.mjs +215 -0
- package/lib/channels/contract.test.mjs +137 -0
- package/lib/channels/conversation-resolver.mjs +95 -0
- package/lib/channels/gmail/adapter.mjs +87 -0
- package/lib/channels/inbox-item.mjs +255 -0
- package/lib/channels/inbox-item.test.mjs +335 -0
- package/lib/channels/index.mjs +94 -0
- package/lib/channels/orgmail/adapter.mjs +353 -0
- package/lib/channels/orgmail/adapter.test.mjs +311 -0
- package/lib/channels/pairing.mjs +363 -0
- package/lib/channels/pairing.test.mjs +270 -0
- package/lib/channels/registry.mjs +164 -0
- package/lib/channels/slack/adapter.mjs +317 -0
- package/lib/channels/slack-adapter.test.mjs +212 -0
- package/lib/channels/sms/adapter.mjs +43 -0
- package/lib/channels/telegram/adapter.mjs +432 -0
- package/lib/channels/telegram-adapter.test.mjs +306 -0
- package/lib/channels/voice/adapter.mjs +301 -0
- package/lib/channels/voice/adapter.test.mjs +278 -0
- package/lib/channels/whatsapp/adapter-baileys.mjs +587 -0
- package/lib/channels/whatsapp/adapter-baileys.test.mjs +359 -0
- package/lib/channels/whatsapp/adapter-twilio.mjs +65 -0
- package/lib/channels/whatsapp/baileys-typing.test.mjs +154 -0
- package/lib/charter.mjs +256 -0
- package/lib/charter.test.mjs +89 -0
- package/lib/claude-bin.mjs +134 -0
- package/lib/claude-bin.test.mjs +75 -0
- package/lib/collective/capture.mjs +185 -0
- package/lib/collective/capture.test.mjs +121 -0
- package/lib/collective/cards.mjs +201 -0
- package/lib/collective/cards.test.mjs +114 -0
- package/lib/collective/config.mjs +186 -0
- package/lib/collective/config.test.mjs +123 -0
- package/lib/collective/global-config.mjs +113 -0
- package/lib/collective/global-config.test.mjs +75 -0
- package/lib/collective/presence.mjs +201 -0
- package/lib/collective/presence.test.mjs +95 -0
- package/lib/collective/recall.mjs +215 -0
- package/lib/collective/recall.test.mjs +116 -0
- package/lib/comms/send-gate.mjs +554 -0
- package/lib/comms/send-gate.test.mjs +577 -0
- package/lib/comms.mjs +67 -0
- package/lib/comms.test.mjs +41 -0
- package/lib/diagnostics/alerts.mjs +424 -0
- package/lib/diagnostics/alerts.test.mjs +318 -0
- package/lib/diagnostics/backup-freshness.mjs +188 -0
- package/lib/diagnostics/backup-freshness.test.mjs +185 -0
- package/lib/diagnostics/counters.mjs +269 -0
- package/lib/diagnostics/counters.test.mjs +206 -0
- package/lib/diagnostics/events.mjs +188 -0
- package/lib/diagnostics/events.test.mjs +290 -0
- package/lib/diagnostics/otel.mjs +237 -0
- package/lib/diagnostics/otel.test.mjs +196 -0
- package/lib/diagnostics/trace.mjs +216 -0
- package/lib/diagnostics/trace.test.mjs +251 -0
- package/lib/env-compat.mjs +74 -0
- package/lib/env-compat.test.mjs +104 -0
- package/lib/feature-init.mjs +331 -0
- package/lib/fs-atomic.mjs +112 -0
- package/lib/fs-atomic.test.mjs +72 -0
- package/lib/fs-ownership.mjs +111 -0
- package/lib/fs-ownership.test.mjs +158 -0
- package/lib/hooks/bus.mjs +347 -0
- package/lib/hooks/bus.test.mjs +387 -0
- package/lib/index.js +16 -0
- package/lib/learning/config.mjs +106 -0
- package/lib/learning/config.test.mjs +75 -0
- package/lib/learning/counters.mjs +156 -0
- package/lib/learning/counters.test.mjs +69 -0
- package/lib/learning/curator-consolidate.test.mjs +238 -0
- package/lib/learning/curator.mjs +453 -0
- package/lib/learning/curator.test.mjs +106 -0
- package/lib/learning/log.mjs +40 -0
- package/lib/learning/reflect.mjs +534 -0
- package/lib/learning/reflect.test.mjs +0 -0
- package/lib/learning/session-index.mjs +352 -0
- package/lib/learning/session-index.test.mjs +125 -0
- package/lib/learning/skill-writer.mjs +474 -0
- package/lib/learning/skill-writer.test.mjs +210 -0
- package/lib/mcp/server.mjs +328 -0
- package/lib/mcp/server.test.mjs +400 -0
- package/lib/model-router/auth-profiles.mjs +758 -0
- package/lib/model-router/auth-profiles.test.mjs +580 -0
- package/lib/model-router/catalog/anthropic.yaml +153 -0
- package/lib/model-router/catalog/deepseek.yaml +86 -0
- package/lib/model-router/catalog/moonshot.yaml +81 -0
- package/lib/model-router/catalog/qwen.yaml +114 -0
- package/lib/model-router/catalog.mjs +925 -0
- package/lib/model-router/catalog.test.mjs +385 -0
- package/lib/model-router/economics.mjs +564 -0
- package/lib/model-router/economics.test.mjs +344 -0
- package/lib/model-router/failover.mjs +298 -0
- package/lib/model-router/failover.test.mjs +439 -0
- package/lib/model-router/health.mjs +453 -0
- package/lib/model-router/health.test.mjs +338 -0
- package/lib/model-router/integration-coverage.test.mjs +829 -0
- package/lib/model-router/integration.test.mjs +564 -0
- package/lib/model-router/ledger.mjs +402 -0
- package/lib/model-router/ledger.test.mjs +382 -0
- package/lib/model-router/llm-task.mjs +515 -0
- package/lib/model-router/llm-task.test.mjs +392 -0
- package/lib/model-router/org-credentials.mjs +260 -0
- package/lib/model-router/org-credentials.test.mjs +265 -0
- package/lib/model-router/pricing-refresh.mjs +463 -0
- package/lib/model-router/pricing-refresh.test.mjs +286 -0
- package/lib/model-router/reconcile.mjs +429 -0
- package/lib/model-router/reconcile.test.mjs +316 -0
- package/lib/model-router/repair.mjs +471 -0
- package/lib/model-router/repair.test.mjs +180 -0
- package/lib/model-router/resolve.mjs +1206 -0
- package/lib/model-router/spawn.mjs +497 -0
- package/lib/model-router/spawn.test.mjs +425 -0
- package/lib/model-router/taxonomy.mjs +893 -0
- package/lib/model-router/taxonomy.test.mjs +410 -0
- package/lib/model-router.mjs +677 -0
- package/lib/model-router.test.mjs +907 -0
- package/lib/org/activity.mjs +211 -0
- package/lib/org/activity.test.mjs +134 -0
- package/lib/org/approvals.mjs +448 -0
- package/lib/org/approvals.test.mjs +216 -0
- package/lib/org/awareness.mjs +222 -0
- package/lib/org/awareness.test.mjs +159 -0
- package/lib/org/board.mjs +229 -0
- package/lib/org/board.test.mjs +177 -0
- package/lib/org/bootstrap-context.mjs +169 -0
- package/lib/org/bootstrap-context.test.mjs +153 -0
- package/lib/org/client.mjs +1628 -0
- package/lib/org/client.test.mjs +1107 -0
- package/lib/org/cohort-client.mjs +67 -0
- package/lib/org/cohort-client.test.mjs +126 -0
- package/lib/org/cost-sync.mjs +227 -0
- package/lib/org/cost-sync.test.mjs +153 -0
- package/lib/org/doctor.mjs +212 -0
- package/lib/org/doctor.test.mjs +212 -0
- package/lib/org/handoff.mjs +293 -0
- package/lib/org/handoff.test.mjs +269 -0
- package/lib/org/integration-tools.mjs +182 -0
- package/lib/org/integration-tools.test.mjs +160 -0
- package/lib/org/keys.mjs +131 -0
- package/lib/org/keys.test.mjs +92 -0
- package/lib/org/knowledge.mjs +463 -0
- package/lib/org/knowledge.test.mjs +319 -0
- package/lib/org/leases.mjs +335 -0
- package/lib/org/leases.test.mjs +235 -0
- package/lib/org/mesh-integration.test.mjs +127 -0
- package/lib/org/mesh.mjs +459 -0
- package/lib/org/mesh.test.mjs +345 -0
- package/lib/org/messaging.mjs +503 -0
- package/lib/org/messaging.test.mjs +238 -0
- package/lib/org/policy.mjs +345 -0
- package/lib/org/policy.test.mjs +237 -0
- package/lib/org/protocol.checksum +1 -0
- package/lib/org/protocol.checksum.test.mjs +90 -0
- package/lib/org/protocol.mjs +967 -0
- package/lib/org/protocol.test.mjs +264 -0
- package/lib/org/registry.mjs +194 -0
- package/lib/org/registry.test.mjs +100 -0
- package/lib/org/tool-surface-integration.test.mjs +120 -0
- package/lib/org/tool-surface.mjs +2535 -0
- package/lib/org/tool-surface.test.mjs +589 -0
- package/lib/org/ui-parity.mjs +3236 -0
- package/lib/org/ui-parity.test.mjs +348 -0
- package/lib/org/verify.mjs +176 -0
- package/lib/org/verify.test.mjs +194 -0
- package/lib/rag/embed.mjs +188 -0
- package/lib/rag/indexer.mjs +425 -0
- package/lib/rag/rag.test.mjs +505 -0
- package/lib/rag/search.mjs +475 -0
- package/lib/rate-guard.mjs +246 -0
- package/lib/rate-guard.test.mjs +201 -0
- package/lib/render.mjs +112 -0
- package/lib/render.test.mjs +68 -0
- package/lib/resource-governor.mjs +297 -0
- package/lib/resource-governor.test.mjs +262 -0
- package/lib/scheduling/dynamic-jobs.mjs +675 -0
- package/lib/scheduling/dynamic-jobs.test.mjs +344 -0
- package/lib/scheduling/jitter.mjs +0 -0
- package/lib/scheduling/jitter.test.mjs +140 -0
- package/lib/secrets/broker.mjs +315 -0
- package/lib/secrets/broker.test.mjs +280 -0
- package/lib/secrets/providers.mjs +461 -0
- package/lib/secrets/providers.test.mjs +274 -0
- package/lib/security/audit-engine.mjs +684 -0
- package/lib/security/audit-engine.test.mjs +389 -0
- package/lib/security/coerce-args.mjs +552 -0
- package/lib/security/coerce-args.test.mjs +281 -0
- package/lib/security/dangerous-tools.mjs +97 -0
- package/lib/security/dangerous-tools.test.mjs +68 -0
- package/lib/security/external-content.mjs +145 -0
- package/lib/security/external-content.test.mjs +67 -0
- package/lib/security/redact.mjs +592 -0
- package/lib/security/redact.test.mjs +441 -0
- package/lib/security/secret-equal.mjs +73 -0
- package/lib/security/secret-equal.test.mjs +55 -0
- package/lib/session-permissions.mjs +101 -0
- package/lib/session-permissions.test.mjs +100 -0
- package/lib/setup/claude-probe.mjs +74 -0
- package/lib/setup/completeness.mjs +175 -0
- package/lib/setup/completeness.test.mjs +110 -0
- package/lib/setup/context-pack.mjs +173 -0
- package/lib/setup/context-pack.test.mjs +89 -0
- package/lib/setup/enrich.mjs +277 -0
- package/lib/setup/enrich.test.mjs +115 -0
- package/lib/setup/enroll-from-cohort.mjs +441 -0
- package/lib/setup/enroll-from-cohort.test.mjs +233 -0
- package/lib/setup/integration.test.mjs +162 -0
- package/lib/setup/io.mjs +360 -0
- package/lib/setup/io.test.mjs +77 -0
- package/lib/setup/run-generator.mjs +81 -0
- package/lib/setup/runner.mjs +244 -0
- package/lib/setup/runner.test.mjs +132 -0
- package/lib/setup/sections/comms.mjs +173 -0
- package/lib/setup/sections/company.mjs +120 -0
- package/lib/setup/sections/enrich.mjs +138 -0
- package/lib/setup/sections/identity.mjs +182 -0
- package/lib/setup/sections/identity.test.mjs +140 -0
- package/lib/setup/sections/learning.mjs +153 -0
- package/lib/setup/sections/learning.test.mjs +81 -0
- package/lib/setup/sections/messaging.mjs +219 -0
- package/lib/setup/sections/messaging.test.mjs +127 -0
- package/lib/setup/sections/model.mjs +102 -0
- package/lib/setup/sections/operating-model.mjs +78 -0
- package/lib/setup/sections/org.mjs +475 -0
- package/lib/setup/sections/org.test.mjs +313 -0
- package/lib/setup/sections/orgmail.mjs +173 -0
- package/lib/setup/sections/orgmail.test.mjs +118 -0
- package/lib/setup/sections/recovery.mjs +159 -0
- package/lib/setup/sections/recovery.test.mjs +98 -0
- package/lib/setup/sections/tools.mjs +132 -0
- package/lib/setup/sections/verify.mjs +97 -0
- package/lib/setup/sot.mjs +205 -0
- package/lib/setup/sot.test.mjs +81 -0
- package/lib/setup/state.mjs +151 -0
- package/lib/setup/state.test.mjs +92 -0
- package/lib/singleton.js +229 -0
- package/lib/singleton.test.mjs +135 -0
- package/lib/telemetry/alerts.mjs +216 -0
- package/lib/telemetry/alerts.test.mjs +109 -0
- package/lib/telemetry/collect.mjs +512 -0
- package/lib/telemetry/collect.test.mjs +202 -0
- package/lib/tool-definitions-integration.test.mjs +83 -0
- package/lib/tool-definitions.js +738 -0
- package/lib/tool-definitions.test.mjs +437 -0
- package/lib/util/fetch-timeout.mjs +136 -0
- package/lib/util/fetch-timeout.test.mjs +202 -0
- package/lib/util/reconnect.mjs +343 -0
- package/lib/util/reconnect.test.mjs +369 -0
- package/lib/util/unhandled.mjs +205 -0
- package/lib/util/unhandled.test.mjs +216 -0
- package/lib/voice/context-loader.mjs +466 -0
- package/lib/voice/index.mjs +100 -0
- package/lib/voice/openai-realtime.mjs +510 -0
- package/lib/voice/outbound.mjs +542 -0
- package/lib/voice/outbound.test.mjs +69 -0
- package/lib/voice/post-call-brief.mjs +428 -0
- package/lib/voice/provider.mjs +52 -0
- package/lib/voice/session-rotation.mjs +257 -0
- package/lib/voice/stt.mjs +161 -0
- package/lib/voice/stt.test.mjs +226 -0
- package/lib/voice/tool-bridge.mjs +370 -0
- package/lib/voice/tts.mjs +104 -0
- package/lib/voice/twilio-sip-bridge.mjs +288 -0
- package/lib/voice/voice.test.mjs +990 -0
- package/mcp/README.md +80 -0
- package/package.json +151 -0
- package/plugins/maestro-skills/plugin.json +139 -0
- package/plugins/maestro-skills/skills/agents-observe.md +110 -0
- package/plugins/maestro-skills/skills/board-deck.md +68 -0
- package/plugins/maestro-skills/skills/books-close.md +77 -0
- package/plugins/maestro-skills/skills/brand-steward.md +121 -0
- package/plugins/maestro-skills/skills/calendar-plan.md +57 -0
- package/plugins/maestro-skills/skills/call-working-sessions.md +124 -0
- package/plugins/maestro-skills/skills/ccxray-diagnostics.md +91 -0
- package/plugins/maestro-skills/skills/claude-pace.md +61 -0
- package/plugins/maestro-skills/skills/code-review-graph.md +99 -0
- package/plugins/maestro-skills/skills/crm-pipeline.md +65 -0
- package/plugins/maestro-skills/skills/decision-brief.md +89 -0
- package/plugins/maestro-skills/skills/directory-hygiene.md +125 -0
- package/plugins/maestro-skills/skills/draft-comms.md +84 -0
- package/plugins/maestro-skills/skills/evening-wrap.md +53 -0
- package/plugins/maestro-skills/skills/files-find.md +65 -0
- package/plugins/maestro-skills/skills/generative-ui.md +228 -0
- package/plugins/maestro-skills/skills/hiring-triage.md +74 -0
- package/plugins/maestro-skills/skills/inbox-triage.md +61 -0
- package/plugins/maestro-skills/skills/mail-triage.md +86 -0
- package/plugins/maestro-skills/skills/morning-brief.md +54 -0
- package/plugins/maestro-skills/skills/native-artifacts.md +157 -0
- package/plugins/maestro-skills/skills/org-board.md +133 -0
- package/plugins/maestro-skills/skills/org-credential.md +68 -0
- package/plugins/maestro-skills/skills/org-recall.md +81 -0
- package/plugins/maestro-skills/skills/pipeline-review.md +76 -0
- package/plugins/maestro-skills/skills/regulatory-status.md +81 -0
- package/plugins/maestro-skills/skills/router-why.md +78 -0
- package/plugins/maestro-skills/skills/schedule-meeting.md +91 -0
- package/plugins/maestro-skills/skills/session-search.md +71 -0
- package/plugins/maestro-skills/skills/set-reminder.md +93 -0
- package/plugins/maestro-skills/skills/slack-followup.md +64 -0
- package/plugins/maestro-skills/skills/team-activity.md +86 -0
- package/plugins/maestro-skills/skills/weekly-memo.md +70 -0
- package/policies/action-classification.yaml +114 -0
- package/policies/ai-disclosure.yaml +294 -0
- package/policies/communication-style.md +139 -0
- package/policies/information-barriers.yaml +118 -0
- package/policies/prompt-injection-defence.yaml +138 -0
- package/public/assets/icon-dark.png +0 -0
- package/public/assets/icon-dark.svg +9 -0
- package/public/assets/icon-light.svg +9 -0
- package/public/assets/logo-dark.svg +15 -0
- package/public/assets/logo-light.svg +15 -0
- package/scaffold/.mcp.json +7 -0
- package/scaffold/CLAUDE.md +368 -0
- package/scaffold/config/agent.json +55 -0
- package/scaffold/config/agent.ts +76 -0
- package/scaffold/config/agent.ts.example +89 -0
- package/scaffold/config/alerts.yaml +23 -0
- package/scaffold/config/allowlist.yaml.example +25 -0
- package/scaffold/config/caller-id-map.yaml +46 -0
- package/scaffold/config/collective.yaml +49 -0
- package/scaffold/config/company.json +20 -0
- package/scaffold/config/known-agents.json +6 -0
- package/scaffold/config/learning.yaml +55 -0
- package/scaffold/config/model-routing.yaml.example +104 -0
- package/scaffold/config/org.yaml +25 -0
- package/scaffold/config/orgmail.yaml.example +19 -0
- package/scaffold/config/recovery.yaml +72 -0
- package/scaffold/config/secrets.yaml +27 -0
- package/scaffold/config/slack.yaml.example +35 -0
- package/scaffold/config/telegram.yaml.example +38 -0
- package/scaffold/config/voice.yaml.example +89 -0
- package/scaffold/config/whatsapp.yaml.example +39 -0
- package/schedules/README.md +49 -0
- package/schedules/triggers/backlog-executor.md +102 -0
- package/schedules/triggers/brand-steward.md +72 -0
- package/schedules/triggers/daily-evening-wrap.md +159 -0
- package/schedules/triggers/daily-midday-sweep.md +58 -0
- package/schedules/triggers/daily-morning-brief.md +55 -0
- package/schedules/triggers/directory-hygiene.md +81 -0
- package/schedules/triggers/dynamic-jobs.md +40 -0
- package/schedules/triggers/inbox-processor.md +115 -0
- package/schedules/triggers/meeting-action-capture.md +60 -0
- package/schedules/triggers/meeting-prep.md +69 -0
- package/schedules/triggers/messaging-inbound.md +50 -0
- package/schedules/triggers/org-pulse.md +24 -0
- package/schedules/triggers/quarterly-self-assessment.md +54 -0
- package/schedules/triggers/weekly-engineering-health.md +37 -0
- package/schedules/triggers/weekly-execution.md +65 -0
- package/schedules/triggers/weekly-hiring.md +53 -0
- package/schedules/triggers/weekly-priorities.md +38 -0
- package/schedules/triggers/weekly-strategic-memo.md +124 -0
- package/scripts/archive-email.sh +55 -0
- package/scripts/cadence/cadence-status.mjs +36 -0
- package/scripts/cadence/enqueue-cadence-tick.mjs +174 -0
- package/scripts/cadence/enqueue-cadence-tick.test.mjs +187 -0
- package/scripts/cadence/launchd-cadence-wrapper.sh +85 -0
- package/scripts/cadence/launchd-cloud-relay-wrapper.sh +95 -0
- package/scripts/cadence/launchd-socket-mode-wrapper.sh +95 -0
- package/scripts/ci/check-docs-accuracy.mjs +493 -0
- package/scripts/ci/check-docs-accuracy.test.mjs +409 -0
- package/scripts/ci/check-exports-exist.mjs +140 -0
- package/scripts/ci/check-files-exist.mjs +107 -0
- package/scripts/ci/check-no-build-artifacts.mjs +111 -0
- package/scripts/ci/check-no-build-artifacts.test.mjs +71 -0
- package/scripts/ci/check-no-confidential.mjs +198 -0
- package/scripts/ci/check-no-conflict-markers.mjs +169 -0
- package/scripts/ci/check-no-residual-identity.mjs +163 -0
- package/scripts/ci/check-no-residual-identity.test.mjs +89 -0
- package/scripts/ci/check-tarball-fidelity.mjs +205 -0
- package/scripts/ci/check-unresolved-tokens.mjs +83 -0
- package/scripts/ci/check.mjs +109 -0
- package/scripts/ci/check.test.mjs +194 -0
- package/scripts/ci/run-coverage.mjs +82 -0
- package/scripts/ci/run-tests.mjs +71 -0
- package/scripts/cloud-relay/README.md +59 -0
- package/scripts/cloud-relay/index.mjs +233 -0
- package/scripts/cloud-relay/package.json +15 -0
- package/scripts/cloud-relay/railway.json +13 -0
- package/scripts/cloud-relay/voice/README.md +94 -0
- package/scripts/cloud-relay/voice/package-lock.json +39 -0
- package/scripts/cloud-relay/voice/package.json +16 -0
- package/scripts/cloud-relay/voice/railway.json +13 -0
- package/scripts/cloud-relay/voice/server.mjs +532 -0
- package/scripts/collective/hook-runner.mjs +211 -0
- package/scripts/collective/hook-runner.test.mjs +90 -0
- package/scripts/collective/org-pulse.mjs +72 -0
- package/scripts/collective/org-sync.mjs +61 -0
- package/scripts/collective/recall.mjs +45 -0
- package/scripts/collective/who.mjs +30 -0
- package/scripts/comms-monitor.sh +288 -0
- package/scripts/configure-whatsapp-sandbox.sh +201 -0
- package/scripts/continuous-monitor.sh +91 -0
- package/scripts/cost/fleet-digest.mjs +407 -0
- package/scripts/cost/fleet-digest.test.mjs +207 -0
- package/scripts/cost/track-claude-usage.mjs +169 -0
- package/scripts/daemon/agent-daemon.mjs +989 -0
- package/scripts/daemon/agent-daemon.test.mjs +525 -0
- package/scripts/daemon/cadence-consumer-governance.test.mjs +220 -0
- package/scripts/daemon/cadence-consumer.mjs +1080 -0
- package/scripts/daemon/cadence-consumer.test.mjs +770 -0
- package/scripts/daemon/cadence-handlers.mjs +1121 -0
- package/scripts/daemon/cadence-handlers.test.mjs +617 -0
- package/scripts/daemon/classifier.mjs +704 -0
- package/scripts/daemon/classifier.test.mjs +238 -0
- package/scripts/daemon/classify-kind.mjs +54 -0
- package/scripts/daemon/classify-kind.test.mjs +40 -0
- package/scripts/daemon/context-compiler.mjs +605 -0
- package/scripts/daemon/context-compiler.test.mjs +300 -0
- package/scripts/daemon/dispatcher-cooldown.test.mjs +122 -0
- package/scripts/daemon/dispatcher-governance.test.mjs +886 -0
- package/scripts/daemon/dispatcher.mjs +1516 -0
- package/scripts/daemon/health.mjs +72 -0
- package/scripts/daemon/inbox-deferral.mjs +210 -0
- package/scripts/daemon/inbox-deferral.test.mjs +242 -0
- package/scripts/daemon/integration.test.mjs +149 -0
- package/scripts/daemon/launchd-wrapper-generic.sh +96 -0
- package/scripts/daemon/launchd-wrapper-slack-events.sh +37 -0
- package/scripts/daemon/launchd-wrapper.sh +91 -0
- package/scripts/daemon/lib/session-router.mjs +274 -0
- package/scripts/daemon/lib/session-router.test.mjs +295 -0
- package/scripts/daemon/maestro-daemon.mjs +275 -0
- package/scripts/daemon/prompt-builder.mjs +685 -0
- package/scripts/daemon/prompt-builder.test.mjs +213 -0
- package/scripts/daemon/responder.mjs +854 -0
- package/scripts/daemon/session-lock.mjs +721 -0
- package/scripts/daemon/session-lock.test.mjs +252 -0
- package/scripts/daemon/session-outcomes.mjs +640 -0
- package/scripts/daemon/session-outcomes.test.mjs +533 -0
- package/scripts/daemon/typing-registry.mjs +90 -0
- package/scripts/daemon/typing-registry.test.mjs +77 -0
- package/scripts/daemon/voice-webhook-server.mjs +804 -0
- package/scripts/decisions/capture-decision.mjs +116 -0
- package/scripts/disclosure_assessment.py +873 -0
- package/scripts/disclosure_boundaries.py +562 -0
- package/scripts/email-signature-principal.html +52 -0
- package/scripts/email-signature.html +60 -0
- package/scripts/email_quote_thread.py +167 -0
- package/scripts/email_thread_dedup.py +362 -0
- package/scripts/emergency-stop.sh +81 -0
- package/scripts/healthcheck.sh +116 -0
- package/scripts/hooks/block-mcp-cohort-send.sh +15 -0
- package/scripts/hooks/block-mcp-slack-send.sh +7 -0
- package/scripts/hooks/post-action-log.sh +126 -0
- package/scripts/hooks/pre-send-audit.sh +174 -0
- package/scripts/hooks/pre-send-audit.test.mjs +215 -0
- package/scripts/hooks/session-end-log.sh +27 -0
- package/scripts/hooks/session-start-banner.sh +115 -0
- package/scripts/huddle/audio-bridge.mjs +664 -0
- package/scripts/huddle/boot-slack-cdp.sh +102 -0
- package/scripts/huddle/huddle-controller.mjs +942 -0
- package/scripts/huddle/huddle-server.mjs +1229 -0
- package/scripts/huddle/launch-slack.sh +232 -0
- package/scripts/huddle/openai-realtime-bridge.mjs +462 -0
- package/scripts/huddle/package-lock.json +62 -0
- package/scripts/huddle/package.json +22 -0
- package/scripts/huddle/setup-audio.sh +239 -0
- package/scripts/huddle/start-call.mjs +318 -0
- package/scripts/huddle/test-pipeline.mjs +263 -0
- package/scripts/learning/consolidate-skills.mjs +72 -0
- package/scripts/learning/session-search.mjs +125 -0
- package/scripts/llm_email_dedup.py +442 -0
- package/scripts/local-triggers/generate-plists.sh +432 -0
- package/scripts/local-triggers/generate-plists.test.mjs +413 -0
- package/scripts/local-triggers/install-all.sh +49 -0
- package/scripts/local-triggers/plists/.gitkeep +0 -0
- package/scripts/local-triggers/run-trigger.sh +63 -0
- package/scripts/local-triggers/templates/rag-reindex.plist.template +47 -0
- package/scripts/local-triggers/templates/voice-relay-poller.plist.template +54 -0
- package/scripts/local-triggers/templates/voice-tunnel.plist.template +55 -0
- package/scripts/local-triggers/templates/voice-webhook.plist.template +51 -0
- package/scripts/maintenance/backup-to-cloud.sh +124 -0
- package/scripts/maintenance/health-check.sh +377 -0
- package/scripts/media-generation/README.md +105 -0
- package/scripts/media-generation/gemini-image-client.mjs +173 -0
- package/scripts/media-generation/generate-assets.mjs +289 -0
- package/scripts/media-generation/veo-video-client.mjs +219 -0
- package/scripts/org/send-orgmail.mjs +227 -0
- package/scripts/outbound-dedup-cleanup.sh +43 -0
- package/scripts/outbound-dedup.sh +477 -0
- package/scripts/outbound_dedup.py +115 -0
- package/scripts/parse-voice-transcript.mjs +481 -0
- package/scripts/pdf-generation/README.md +63 -0
- package/scripts/pdf-generation/build-document.mjs +247 -0
- package/scripts/pdf-generation/templates/board-pack.latex +136 -0
- package/scripts/pdf-generation/templates/corporate-letter.latex +126 -0
- package/scripts/pdf-generation/templates/memo.latex +114 -0
- package/scripts/poll-slack-events.sh +35 -0
- package/scripts/poller/calendar-poller.mjs +12 -0
- package/scripts/poller/gmail-poller.mjs +192 -0
- package/scripts/poller/imap-client.mjs +289 -0
- package/scripts/poller/inbox-scan-poller.mjs +156 -0
- package/scripts/poller/inbox-scan-poller.test.mjs +231 -0
- package/scripts/poller/index.mjs +73 -0
- package/scripts/poller/intra-session-check.mjs +285 -0
- package/scripts/poller/lib/cloud-relay-dedup.mjs +88 -0
- package/scripts/poller/lib/cloud-relay-dedup.test.mjs +133 -0
- package/scripts/poller/lib/slash-command-handlers.mjs +177 -0
- package/scripts/poller/secondary-gmail-poller.mjs +132 -0
- package/scripts/poller/slack-cloud-relay-client.mjs +368 -0
- package/scripts/poller/slack-poller.mjs +854 -0
- package/scripts/poller/slack-socket-mode.mjs +917 -0
- package/scripts/poller/slack-socket-mode.test.mjs +753 -0
- package/scripts/poller/trigger.mjs +75 -0
- package/scripts/poller/utils.mjs +371 -0
- package/scripts/poller/voice-cloud-relay-client.mjs +179 -0
- package/scripts/poller/voice-poller.mjs +236 -0
- package/scripts/poller-launchd/install.sh +66 -0
- package/scripts/poller-launchd/poller.plist.template +40 -0
- package/scripts/poller-launchd/whatsapp-handler.plist.template +39 -0
- package/scripts/post-interaction-indexer.py +1598 -0
- package/scripts/pre-draft-context.py +994 -0
- package/scripts/pre_draft_lookup.py +258 -0
- package/scripts/rag/build-index.mjs +47 -0
- package/scripts/rag/ingest.mjs +111 -0
- package/scripts/rag/search.mjs +119 -0
- package/scripts/rag-indexer.py +629 -0
- package/scripts/restore-from-backup.sh +248 -0
- package/scripts/restore-from-backup.test.mjs +178 -0
- package/scripts/resume-operations.sh +80 -0
- package/scripts/search-secondary-inbox.py +181 -0
- package/scripts/secondary-inbox-poller.py +437 -0
- package/scripts/self-optimization/compute-metrics.py +398 -0
- package/scripts/send-email-as-principal.py +369 -0
- package/scripts/send-email-threaded.py +392 -0
- package/scripts/send-email-with-attachment.py +377 -0
- package/scripts/send-email.sh +131 -0
- package/scripts/send-sms.sh +175 -0
- package/scripts/send-whatsapp.sh +292 -0
- package/scripts/session-start.sh +106 -0
- package/scripts/setup/boot-claude-session.sh +94 -0
- package/scripts/setup/configure-macos.sh +674 -0
- package/scripts/setup/configure-twilio-sip-trunk.mjs +207 -0
- package/scripts/setup/configure-voice-tunnel.mjs +182 -0
- package/scripts/setup/generate-agent-env.mjs +92 -0
- package/scripts/setup/generate-agent-package-json.mjs +222 -0
- package/scripts/setup/generate-agent-package-json.test.mjs +143 -0
- package/scripts/setup/generate-autonomy.mjs +60 -0
- package/scripts/setup/generate-backlog.mjs +101 -0
- package/scripts/setup/generate-cadences.mjs +92 -0
- package/scripts/setup/generate-capability.mjs +162 -0
- package/scripts/setup/generate-charter.mjs +76 -0
- package/scripts/setup/generate-comms.mjs +59 -0
- package/scripts/setup/generate-company.mjs +92 -0
- package/scripts/setup/init-agent.sh +547 -0
- package/scripts/setup/init-agent.test.mjs +151 -0
- package/scripts/setup/init-archetype.mjs +74 -0
- package/scripts/setup/init-backup.mjs +54 -0
- package/scripts/setup/init-cadence-bus.mjs +60 -0
- package/scripts/setup/init-channel-bus.mjs +46 -0
- package/scripts/setup/init-cost-tracking.mjs +45 -0
- package/scripts/setup/init-decision-capture.mjs +66 -0
- package/scripts/setup/init-known-agents.mjs +57 -0
- package/scripts/setup/init-learning.mjs +70 -0
- package/scripts/setup/init-memory-executive.mjs +45 -0
- package/scripts/setup/init-model-router.mjs +124 -0
- package/scripts/setup/init-rag.mjs +174 -0
- package/scripts/setup/init-session-router.mjs +38 -0
- package/scripts/setup/init-slack-socket-mode.mjs +260 -0
- package/scripts/setup/init-telegram.mjs +165 -0
- package/scripts/setup/init-voice-realtime.mjs +204 -0
- package/scripts/setup/init-whatsapp-baileys.mjs +77 -0
- package/scripts/setup/install-dev-tools.sh +150 -0
- package/scripts/setup/lib/install-plist.mjs +95 -0
- package/scripts/setup/migrate-agent-to-sot.mjs +192 -0
- package/scripts/setup/render-environment-yaml.mjs +133 -0
- package/scripts/slack-events-ctl.sh +177 -0
- package/scripts/slack-events-server.mjs +1045 -0
- package/scripts/slack-react.mjs +89 -0
- package/scripts/slack-responded.sh +232 -0
- package/scripts/slack-send.sh +287 -0
- package/scripts/slack-typing.mjs +196 -0
- package/scripts/slack-upload-v2.py +95 -0
- package/scripts/sms-handler.mjs +450 -0
- package/scripts/spawn-session.sh +120 -0
- package/scripts/sync-protocol.mjs +217 -0
- package/scripts/system-verify.sh +184 -0
- package/scripts/test-email-thread-dedup.py +239 -0
- package/scripts/test-information-barriers.py +484 -0
- package/scripts/test-llm-email-dedup.py +251 -0
- package/scripts/test-pre-draft-integration.py +203 -0
- package/scripts/test-rag-phase2.sh +442 -0
- package/scripts/test-rag-search.sh +251 -0
- package/scripts/test-voice-parser.mjs +316 -0
- package/scripts/user-context-search.py +659 -0
- package/scripts/validate_outbound.py +1504 -0
- package/scripts/watchdog/ai.maestro.memory-watchdog.plist +41 -0
- package/scripts/watchdog/force-reboot.sh +157 -0
- package/scripts/watchdog/memory-watchdog.sh +473 -0
- package/scripts/whatsapp-handler.mjs +538 -0
- package/teams/desktop-operations.yaml +34 -0
- package/teams/executive-office.yaml +27 -0
- package/teams/legal-and-regulatory.yaml +24 -0
- package/teams/platform-and-engineering.yaml +23 -0
- package/teams/strategy-and-growth.yaml +29 -0
- package/workflows/continuous/backlog-executor.yaml +141 -0
- package/workflows/continuous/inbound-monitor.yaml +168 -0
- package/workflows/daily/applicant-triage.yaml +197 -0
- package/workflows/daily/comms-triage.yaml +80 -0
- package/workflows/daily/evening-wrap.yaml +105 -0
- package/workflows/daily/morning-brief.yaml +164 -0
- package/workflows/daily/slack-followup-sweep.yaml +87 -0
- package/workflows/event-driven/README.md +50 -0
- package/workflows/event-driven/agent-failure-investigation.yaml +137 -0
- package/workflows/event-driven/pr-review.yaml +107 -0
- package/workflows/monthly/board-readiness.yaml +76 -0
- package/workflows/quarterly/strategic-scenario-analysis.yaml +85 -0
- package/workflows/session-protocol.md +171 -0
- package/workflows/weekly/engineering-health.yaml +154 -0
- package/workflows/weekly/hiring-review.yaml +169 -0
- package/workflows/weekly/rollup-pipeline-review.yaml +76 -0
- 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: []
|