@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.
- package/.claude/settings.json +11 -0
- package/agents/engineering-oversight/agent.md +44 -0
- package/agents/github-operator/agent.md +38 -0
- package/agents/inbox-processor/agent.md +39 -0
- package/bin/maestro.mjs +302 -4
- package/framework-features.json +107 -0
- package/lib/feature-init.mjs +297 -0
- package/package.json +5 -2
- package/scaffold/config/known-agents.json +57 -8
- package/scripts/cost/track-claude-usage.mjs +154 -0
- package/scripts/daemon/cadence-consumer.mjs +73 -2
- package/scripts/decisions/capture-decision.mjs +116 -0
- package/scripts/emergency-stop.sh +56 -19
- package/scripts/hooks/session-start-banner.sh +79 -0
- package/scripts/maintenance/backup-to-cloud.sh +124 -0
- package/scripts/rag/ingest.mjs +111 -0
- package/scripts/rag/search.mjs +119 -0
- package/scripts/resume-operations.sh +50 -13
- package/scripts/setup/init-backup.mjs +54 -0
- package/scripts/setup/init-cadence-bus.mjs +60 -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-memory-executive.mjs +45 -0
- package/scripts/setup/init-rag.mjs +103 -0
- package/scripts/setup/init-session-router.mjs +38 -0
- 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
|
@@ -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
|