@adaptic/maestro 1.8.3 → 1.9.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 (43) hide show
  1. package/.claude/settings.json +11 -0
  2. package/agents/engineering-oversight/agent.md +44 -0
  3. package/agents/github-operator/agent.md +38 -0
  4. package/agents/inbox-processor/agent.md +39 -0
  5. package/bin/maestro.mjs +302 -4
  6. package/framework-features.json +107 -0
  7. package/lib/feature-init.mjs +297 -0
  8. package/package.json +5 -2
  9. package/scaffold/config/known-agents.json +57 -8
  10. package/scripts/cost/track-claude-usage.mjs +154 -0
  11. package/scripts/daemon/cadence-consumer.mjs +73 -2
  12. package/scripts/decisions/capture-decision.mjs +116 -0
  13. package/scripts/emergency-stop.sh +56 -19
  14. package/scripts/hooks/session-start-banner.sh +79 -0
  15. package/scripts/maintenance/backup-to-cloud.sh +124 -0
  16. package/scripts/rag/ingest.mjs +111 -0
  17. package/scripts/rag/search.mjs +119 -0
  18. package/scripts/resume-operations.sh +50 -13
  19. package/scripts/setup/init-backup.mjs +54 -0
  20. package/scripts/setup/init-cadence-bus.mjs +60 -0
  21. package/scripts/setup/init-cost-tracking.mjs +45 -0
  22. package/scripts/setup/init-decision-capture.mjs +66 -0
  23. package/scripts/setup/init-known-agents.mjs +57 -0
  24. package/scripts/setup/init-memory-executive.mjs +45 -0
  25. package/scripts/setup/init-rag.mjs +103 -0
  26. package/scripts/setup/init-session-router.mjs +38 -0
  27. package/workflows/continuous/backlog-executor.yaml +1 -1
  28. package/workflows/continuous/inbound-monitor.yaml +10 -10
  29. package/workflows/daily/applicant-triage.yaml +1 -1
  30. package/workflows/daily/comms-triage.yaml +2 -2
  31. package/workflows/daily/evening-wrap.yaml +1 -1
  32. package/workflows/daily/morning-brief.yaml +1 -1
  33. package/workflows/daily/slack-followup-sweep.yaml +2 -2
  34. package/workflows/event-driven/README.md +5 -5
  35. package/workflows/event-driven/agent-failure-investigation.yaml +1 -1
  36. package/workflows/event-driven/pr-review.yaml +6 -3
  37. package/workflows/monthly/board-readiness.yaml +1 -1
  38. package/workflows/quarterly/strategic-scenario-analysis.yaml +1 -1
  39. package/workflows/session-protocol.md +7 -7
  40. package/workflows/weekly/engineering-health.yaml +1 -1
  41. package/workflows/weekly/hiring-review.yaml +1 -1
  42. package/workflows/weekly/rollup-pipeline-review.yaml +1 -1
  43. package/workflows/weekly/strategic-memo.yaml +1 -1
@@ -157,7 +157,7 @@ steps:
157
157
  on_failure:
158
158
  action: log-and-notify
159
159
  message: "Morning brief workflow failed at step {failed_step}"
160
- notify: sophie-chief-of-staff
160
+ notify: agent-self # the executing agent (operator)
161
161
  severity: high
162
162
 
163
163
  # Output
@@ -56,7 +56,7 @@ steps:
56
56
  policy: policies/communications-policy.yaml
57
57
  outputs:
58
58
  approved: [] # messages cleared for sending
59
- pending_approval: [] # messages needing Mehran's review
59
+ pending_approval: [] # messages needing the principal's review
60
60
 
61
61
  - id: send-approved
62
62
  agent: slack-operator
@@ -83,5 +83,5 @@ steps:
83
83
  on_failure:
84
84
  action: log-and-notify
85
85
  message: "Slack follow-up sweep failed at step {failed_step}"
86
- notify: sophie-chief-of-staff
86
+ notify: agent-self # the executing agent (operator)
87
87
  severity: medium
@@ -7,14 +7,14 @@ These workflows trigger in response to events rather than on a schedule.
7
7
  ### High-Priority Inbound Message
8
8
 
9
9
  - **Trigger**: Message from CEO, investor, or board member detected during monitoring
10
- - **Action**: Immediately surface to Sophie, classify urgency, prepare response options
11
- - **Agent**: slack-operator or gmail-operator → sophie-chief-of-staff
10
+ - **Action**: Immediately surface to the agent, classify urgency, prepare response options
11
+ - **Agent**: slack-operator or gmail-operator → the agent operator
12
12
 
13
13
  ### Regulatory Development
14
14
 
15
15
  - **Trigger**: DFSA announcement, regulatory change, or compliance alert
16
16
  - **Action**: Assess impact on Adaptic, update regulatory tracker, brief CEO if material
17
- - **Agent**: regulatory-dfsa → sophie-chief-of-staff
17
+ - **Agent**: regulatory-dfsa → the agent operator
18
18
 
19
19
  ### Pipeline Target Event
20
20
 
@@ -26,7 +26,7 @@ These workflows trigger in response to events rather than on a schedule.
26
26
 
27
27
  - **Trigger**: Build failure, test regression, or production alert in adapticai repo
28
28
  - **Action**: Assess severity, route to engineering-coordination, brief if material
29
- - **Agent**: engineering-coordination → sophie-chief-of-staff
29
+ - **Agent**: engineering-coordination → the agent operator
30
30
 
31
31
  ### Calendar Event Approaching
32
32
 
@@ -38,7 +38,7 @@ These workflows trigger in response to events rather than on a schedule.
38
38
 
39
39
  - **Trigger**: Decision deadline approaching (from decision-log)
40
40
  - **Action**: Surface decision with options, remind of deadline, escalate if needed
41
- - **Agent**: decision-log → sophie-chief-of-staff
41
+ - **Agent**: decision-log → the agent operator
42
42
 
43
43
  ## Implementation
44
44
 
@@ -131,7 +131,7 @@ steps:
131
131
  on_failure:
132
132
  action: log-and-notify
133
133
  message: "Agent failure investigation failed for session {trigger.session_id}"
134
- notify: sophie-chief-of-staff
134
+ notify: agent-self # the executing agent (operator)
135
135
  severity: medium
136
136
 
137
137
  final_output: outputs/investigations/{date}/{session_id}/root-cause.md
@@ -7,12 +7,15 @@ type: event-driven
7
7
  trigger:
8
8
  event: pull_request
9
9
  actions: [opened, synchronize]
10
- repos: # from config/repo-registry.yaml
10
+ # Repository list is loaded from config/repo-registry.yaml at runtime so
11
+ # each agent watches the set of repos relevant to its own scope. The
12
+ # entries below are illustrative defaults the framework ships with; agents
13
+ # override them in their own repo-registry.yaml.
14
+ repos:
11
15
  - adapticai/engine
12
16
  - adapticai/backend
13
17
  - adapticai/frontend
14
18
  - adapticai/maestro
15
- - adapticai/sophie-ai
16
19
  description: >
17
20
  Automated PR review pipeline. When a PR is opened or updated, runs structural
18
21
  blast radius analysis via code-review-graph, then produces a review brief.
@@ -98,7 +101,7 @@ steps:
98
101
  on_failure:
99
102
  action: log-and-notify
100
103
  message: "PR review workflow failed for {trigger.repo}#{trigger.pr_number} at step {failed_step}"
101
- notify: sophie-chief-of-staff
104
+ notify: agent-self # the executing agent (operator)
102
105
  severity: low # PR review failure is inconvenient but not critical
103
106
 
104
107
  final_output: outputs/reviews/{repo}/{pr_number}/review-brief.md
@@ -70,7 +70,7 @@ steps:
70
70
  on_failure:
71
71
  action: log-and-notify
72
72
  message: "Board readiness review failed at step {failed_step}"
73
- notify: sophie-chief-of-staff
73
+ notify: agent-self # the executing agent (operator)
74
74
  severity: medium
75
75
 
76
76
  final_output: outputs/board/monthly/{date}/board-readiness-review.md
@@ -79,7 +79,7 @@ steps:
79
79
  on_failure:
80
80
  action: log-and-notify
81
81
  message: "Quarterly scenario analysis failed at step {failed_step}"
82
- notify: sophie-chief-of-staff
82
+ notify: agent-self # the executing agent (operator)
83
83
  severity: medium
84
84
 
85
85
  final_output: outputs/memos/quarterly/{date}/strategic-scenario-analysis.md
@@ -1,6 +1,6 @@
1
1
  # Session Protocol
2
2
 
3
- Sophie's session lifecycle defines what happens at the start, during, and end of every Claude Code session. This protocol ensures Sophie never misses a message — even while deep in complex tasks.
3
+ The agent's session lifecycle defines what happens at the start, during, and end of every Claude Code session. This protocol ensures the agent never misses a message — even while deep in complex tasks.
4
4
 
5
5
  ## Architecture
6
6
 
@@ -9,7 +9,7 @@ Two complementary polling layers run simultaneously:
9
9
  | Layer | Mechanism | Interval | Scope |
10
10
  | ------------------------ | ------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------- |
11
11
  | **External poller** | `scripts/poller/index.mjs` via macOS launchd | 60 seconds | All Slack channels, Gmail, Calendar — runs continuously whether or not a session is active |
12
- | **Intra-session poller** | `scripts/poller/intra-session-check.mjs` via CronCreate | 2 minutes | CEO DM channel (D099N1JGKRQ), critical channels (#ceo-office, #engineering, #all-adaptic), inbox scan |
12
+ | **Intra-session poller** | `scripts/poller/intra-session-check.mjs` via CronCreate | 2 minutes | CEO DM channel (<principal-dm-channel-id>), critical channels (#ceo-office, #engineering, #all-adaptic), inbox scan |
13
13
 
14
14
  Combined worst-case latency for detecting a CEO message: ~90 seconds.
15
15
 
@@ -46,7 +46,7 @@ Every new Claude Code session begins with this sequence:
46
46
 
47
47
  - Create a 2-minute recurring job using CronCreate
48
48
  - The job runs `scripts/poller/intra-session-check.mjs`
49
- - This is the critical step that prevents Sophie from going dark during long tasks
49
+ - This is the critical step that prevents the agent from going dark during long tasks
50
50
 
51
51
  ### 7. Log session start
52
52
 
@@ -58,7 +58,7 @@ Every 2 minutes, the CronCreate job runs the intra-session check:
58
58
 
59
59
  ### What it checks
60
60
 
61
- 1. **CEO DM channel** (D099N1JGKRQ) — last 5 minutes of messages from Mehran
61
+ 1. **CEO DM channel** (<principal-dm-channel-id>) — last 5 minutes of messages from the principal (CEO)
62
62
  2. **Critical Slack channels** — #ceo-office, #engineering, #all-adaptic — last 3 minutes
63
63
  3. **Inbox directories** — count of unprocessed items across all services
64
64
  4. **Existing triggers** — count of pending priority triggers
@@ -76,9 +76,9 @@ A priority trigger file is created at `state/triggers/priority/` when:
76
76
  ```yaml
77
77
  type: priority_trigger
78
78
  reason: "CEO DM detected during intra-session poll"
79
- source: "slack:D099N1JGKRQ:1775164334.094809"
80
- sender: "mehran-granfar"
81
- channel: "dm/mehran-granfar"
79
+ source: "slack:<principal-dm-channel-id>:1775164334.094809"
80
+ sender: "<principal-slug>" # resolved from config/agent.json
81
+ channel: "dm/<principal-slug>" # resolved from config/agent.json
82
82
  timestamp: "2026-04-03T09:10:00Z"
83
83
  detected_by: intra-session-check
84
84
  content: |
@@ -148,7 +148,7 @@ steps:
148
148
  on_failure:
149
149
  action: log-and-notify
150
150
  message: "Engineering health check failed at step {failed_step}"
151
- notify: sophie-chief-of-staff
151
+ notify: agent-self # the executing agent (operator)
152
152
  severity: medium
153
153
 
154
154
  final_output: outputs/engineering/weekly/{date}/engineering-health-report.md
@@ -163,7 +163,7 @@ steps:
163
163
  on_failure:
164
164
  action: log-and-notify
165
165
  message: "Weekly hiring review failed at step {failed_step}"
166
- notify: sophie-chief-of-staff
166
+ notify: agent-self # the executing agent (operator)
167
167
  severity: high
168
168
 
169
169
  final_output: outputs/briefs/weekly/{date}/hiring-status.md
@@ -70,7 +70,7 @@ steps:
70
70
  on_failure:
71
71
  action: log-and-notify
72
72
  message: "Rollup pipeline review failed at step {failed_step}"
73
- notify: sophie-chief-of-staff
73
+ notify: agent-self # the executing agent (operator)
74
74
  severity: medium
75
75
 
76
76
  final_output: outputs/briefs/weekly/{date}/rollup-pipeline-review.md
@@ -73,7 +73,7 @@ steps:
73
73
  on_failure:
74
74
  action: log-and-notify
75
75
  message: "Weekly strategic memo failed at step {failed_step}"
76
- notify: sophie-chief-of-staff
76
+ notify: agent-self # the executing agent (operator)
77
77
  severity: medium
78
78
 
79
79
  final_output: outputs/memos/weekly/{date}/strategic-memo.md