@adaptic/maestro 1.8.3 → 1.8.4
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/package.json +1 -1
- package/workflows/continuous/backlog-executor.yaml +1 -1
- package/workflows/continuous/inbound-monitor.yaml +10 -10
- package/workflows/daily/applicant-triage.yaml +1 -1
- package/workflows/daily/comms-triage.yaml +2 -2
- package/workflows/daily/evening-wrap.yaml +1 -1
- package/workflows/daily/morning-brief.yaml +1 -1
- package/workflows/daily/slack-followup-sweep.yaml +2 -2
- package/workflows/event-driven/README.md +5 -5
- package/workflows/event-driven/agent-failure-investigation.yaml +1 -1
- package/workflows/event-driven/pr-review.yaml +6 -3
- package/workflows/monthly/board-readiness.yaml +1 -1
- package/workflows/quarterly/strategic-scenario-analysis.yaml +1 -1
- package/workflows/session-protocol.md +7 -7
- package/workflows/weekly/engineering-health.yaml +1 -1
- package/workflows/weekly/hiring-review.yaml +1 -1
- package/workflows/weekly/rollup-pipeline-review.yaml +1 -1
- package/workflows/weekly/strategic-memo.yaml +1 -1
package/package.json
CHANGED
|
@@ -135,7 +135,7 @@ steps:
|
|
|
135
135
|
on_failure:
|
|
136
136
|
action: log-and-notify
|
|
137
137
|
message: "Backlog executor cycle failed at step {failed_step}"
|
|
138
|
-
notify:
|
|
138
|
+
notify: agent-self # the executing agent (operator)
|
|
139
139
|
severity: high
|
|
140
140
|
# If quota-gate fails, the entire cycle is skipped — this is by design
|
|
141
141
|
quota_gate_failure: skip_cycle
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Continuous Inbound Monitoring Loop
|
|
2
2
|
# Runs perpetually via launchd — polls all channels and dispatches responses
|
|
3
|
-
# This is the heartbeat of
|
|
3
|
+
# This is the heartbeat of the agent's always-on executive operations
|
|
4
4
|
|
|
5
5
|
name: inbound-monitor
|
|
6
6
|
type: continuous # Not scheduled — runs as a persistent loop
|
|
@@ -17,7 +17,7 @@ monitors:
|
|
|
17
17
|
interval_seconds: 60
|
|
18
18
|
scope:
|
|
19
19
|
- type: mentions
|
|
20
|
-
description: Any @mention of
|
|
20
|
+
description: Any @mention of the agent or the principal
|
|
21
21
|
- type: dms
|
|
22
22
|
description: All direct messages
|
|
23
23
|
- type: channels
|
|
@@ -65,8 +65,8 @@ dispatch:
|
|
|
65
65
|
|
|
66
66
|
routing:
|
|
67
67
|
direct-reply:
|
|
68
|
-
handler:
|
|
69
|
-
description:
|
|
68
|
+
handler: agent-self # the executing agent (operator)
|
|
69
|
+
description: The agent handles directly — default route for most inbound
|
|
70
70
|
max_response_time: 120 # 2 minutes for DMs, 5 minutes for channels
|
|
71
71
|
priority: highest
|
|
72
72
|
|
|
@@ -77,11 +77,11 @@ dispatch:
|
|
|
77
77
|
max_concurrent: 5
|
|
78
78
|
|
|
79
79
|
escalate-to-ceo:
|
|
80
|
-
handler:
|
|
80
|
+
handler: agent-self # the executing agent (operator)
|
|
81
81
|
description: >
|
|
82
|
-
Alert
|
|
83
|
-
deal terms, or genuinely strategic decisions.
|
|
84
|
-
method: slack-dm # DM
|
|
82
|
+
Alert the principal only for binding commitments, regulatory submissions,
|
|
83
|
+
deal terms, or genuinely strategic decisions. The agent decides when this applies.
|
|
84
|
+
method: slack-dm # DM the principal on Slack
|
|
85
85
|
fallback: whatsapp # If Slack unavailable, WhatsApp
|
|
86
86
|
|
|
87
87
|
defer:
|
|
@@ -90,11 +90,11 @@ dispatch:
|
|
|
90
90
|
output: outputs/inbound/deferred/
|
|
91
91
|
|
|
92
92
|
# Autonomous response rules
|
|
93
|
-
#
|
|
93
|
+
# The agent is fully autonomous — she responds to all inbound communications
|
|
94
94
|
# using her own judgement as Chief of Staff. No per-message approval gates.
|
|
95
95
|
autonomous_response:
|
|
96
96
|
enabled: true
|
|
97
|
-
mode: full_autonomy #
|
|
97
|
+
mode: full_autonomy # The agent decides what to send and when
|
|
98
98
|
categories:
|
|
99
99
|
- id: dm-response
|
|
100
100
|
description: Respond to any DM from any workspace user
|
|
@@ -191,7 +191,7 @@ steps:
|
|
|
191
191
|
on_failure:
|
|
192
192
|
action: log-and-notify
|
|
193
193
|
message: "Daily applicant triage failed at step {failed_step}"
|
|
194
|
-
notify:
|
|
194
|
+
notify: agent-self # the executing agent (operator)
|
|
195
195
|
severity: medium
|
|
196
196
|
|
|
197
197
|
final_output: outputs/briefs/daily/{date}/applicant-triage.md
|
|
@@ -63,7 +63,7 @@ steps:
|
|
|
63
63
|
update: knowledge/memory/executive-memory.yaml # add to open_loops
|
|
64
64
|
|
|
65
65
|
- id: route-actions
|
|
66
|
-
agent:
|
|
66
|
+
agent: agent-self # the executing agent (operator)
|
|
67
67
|
action: route-action-items
|
|
68
68
|
description: Route extracted action items to appropriate queues and agents
|
|
69
69
|
timeout: 120
|
|
@@ -76,5 +76,5 @@ steps:
|
|
|
76
76
|
on_failure:
|
|
77
77
|
action: log-and-notify
|
|
78
78
|
message: "Communications triage failed at step {failed_step}"
|
|
79
|
-
notify:
|
|
79
|
+
notify: agent-self # the executing agent (operator)
|
|
80
80
|
severity: high
|
|
@@ -99,7 +99,7 @@ steps:
|
|
|
99
99
|
on_failure:
|
|
100
100
|
action: log-and-notify
|
|
101
101
|
message: "Evening wrap workflow failed at step {failed_step}"
|
|
102
|
-
notify:
|
|
102
|
+
notify: agent-self # the executing agent (operator)
|
|
103
103
|
severity: medium
|
|
104
104
|
|
|
105
105
|
final_output: outputs/briefs/daily/{date}/ceo-evening-wrap.md
|
|
@@ -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
|
|
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:
|
|
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
|
|
11
|
-
- **Agent**: slack-operator or gmail-operator →
|
|
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 →
|
|
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 →
|
|
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 →
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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 (
|
|
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
|
|
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** (
|
|
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
|
|
80
|
-
sender: "
|
|
81
|
-
channel: "dm
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|