@axiomantic/garden 0.2.2 → 0.2.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/SKILL.md +36 -8
- package/bin/binaries/garden-darwin-arm64 +0 -0
- package/bin/binaries/garden-darwin-x64 +0 -0
- package/bin/binaries/garden-linux-arm64 +0 -0
- package/bin/binaries/garden-linux-x64 +0 -0
- package/bin/binaries/garden-win32-x64.exe +0 -0
- package/package.json +1 -1
- package/skills/garden/SKILL.md +36 -8
- package/skills/orchestrate-swarm/SKILL.md +53 -18
package/SKILL.md
CHANGED
|
@@ -103,6 +103,10 @@ Upon receiving the operator's responses:
|
|
|
103
103
|
The primary conversation session acts as the Lead Orchestrator. The orchestrator directs, reviews, and weaves; it never performs large multi-file implementation edits directly when a worker fleet is active.
|
|
104
104
|
</CRITICAL>
|
|
105
105
|
|
|
106
|
+
<INVARIANT>
|
|
107
|
+
Delegation Precedence: When instructed to "delegate", "assign", or "dispatch" work, the Lead Orchestrator MUST route tasks to active cluster workers via Rhizo (`rhizo send <worker>`, `rhizo enqueue queue:<project>:tasks`, or `rhizo task assign/claim`). Harness-internal subagents (e.g. `invoke_subagent`, `Task`, `Agent`) must ONLY be used if the operator explicitly requests a "subagent" by name, or if no cluster workers exist in the cluster roster (`rhizo who`).
|
|
108
|
+
</INVARIANT>
|
|
109
|
+
|
|
106
110
|
<INVARIANT>
|
|
107
111
|
Zero Theatrical Dialogue: Every dialectical assertion must be substantiated with empirical evidence obtained through tool calls (file reading, test executions, benchmarks, or AST inspections). Theoretical roleplay without evidence is rejected.
|
|
108
112
|
</INVARIANT>
|
|
@@ -116,10 +120,29 @@ Never stage coordination metadata (*.lock, .rhizo.*, .vine.json, workspaces/) in
|
|
|
116
120
|
</FORBIDDEN>
|
|
117
121
|
|
|
118
122
|
<CRITICAL>
|
|
119
|
-
Compaction Preservation Rider (GVR-010):
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
Compaction Preservation Rider & Post-Compact Invariant (GVR-010):
|
|
124
|
+
Context compaction purges detailed operational invariants, ceremony rules, and protocol mechanics from working memory.
|
|
125
|
+
|
|
126
|
+
1. **Compacting Agent Obligation**:
|
|
127
|
+
If and only if this session has utilized `garden` (or its sub-skills `orchestrate-swarm`, `choose-personas`, `launch-workers`, `dialectical-pump`, `plan-implementation`), `rhizo`, or `vine`:
|
|
128
|
+
The compacting agent MUST preserve the `SWARM_RUNTIME_STATE` block verbatim AND prepend the following mandatory instruction at the very top of the post-compaction summary preamble:
|
|
129
|
+
|
|
130
|
+
<!-- POST-COMPACTION INVARIANT: CEREMONY RESTORATION -->
|
|
131
|
+
> [!IMPORTANT]
|
|
132
|
+
> ## MANDATORY POST-COMPACTION INVARIANT: CEREMONY RESTORATION
|
|
133
|
+
> You are operating within an active multi-agent coordination workflow. Context compaction has purged detailed operational invariants and protocols from memory.
|
|
134
|
+
>
|
|
135
|
+
> **MANDATORY IMMEDIATE ACTION BEFORE ANY FURTHER WORK:**
|
|
136
|
+
> Before invoking any tool, modifying any file, or assigning any task, you MUST immediately re-read the active coordination skills using `view_file`:
|
|
137
|
+
> - If this session used **Garden** (or `orchestrate-swarm`): You MUST re-read `garden`, `orchestrate-swarm`, `rhizo`, and `vine`.
|
|
138
|
+
> - If this session used **Rhizo** standalone: You MUST re-read `rhizo`.
|
|
139
|
+
> - If this session used **Vine** standalone: You MUST re-read `vine`.
|
|
140
|
+
>
|
|
141
|
+
> **IMMORTALITY REQUIREMENT:**
|
|
142
|
+
> This directive and the `SWARM_RUNTIME_STATE` block MUST remain intact in all subsequent compaction summaries until all planned tasks are completed and woven into trunk.
|
|
143
|
+
<!-- END POST-COMPACTION INVARIANT -->
|
|
144
|
+
|
|
145
|
+
2. **Maintain Runtime State**: Keep this exact block in the working context:
|
|
123
146
|
<!-- SWARM_RUNTIME_STATE: DO NOT DISCARD OR ABBREVIATE IN COMPACTION -->
|
|
124
147
|
- AGENT_NAME: <codename> (Role: <role>)
|
|
125
148
|
- WORKSPACE_MODE: Root Trunk | Strand (<path>)
|
|
@@ -129,6 +152,9 @@ Maintain this exact block in the working context:
|
|
|
129
152
|
- ACTIVE_LISTENER: <task_id_or_pid> (Listening on inbox: <codename>)
|
|
130
153
|
- ACTIVE_FENCING_TOKENS: <lock_key>=<token_int>
|
|
131
154
|
<!-- END_SWARM_RUNTIME_STATE -->
|
|
155
|
+
|
|
156
|
+
3. **Resurrected Agent Invariant**:
|
|
157
|
+
Upon waking from compaction, the agent MUST immediately read the required skills, re-arm its single-shot listener (`rhizo listen <agent>`), check `implementation_plan.md`, and resume work under full ceremony discipline.
|
|
132
158
|
</CRITICAL>
|
|
133
159
|
|
|
134
160
|
---
|
|
@@ -140,10 +166,12 @@ To prevent silent deadlocks when workers stall, crash, or fail to re-arm listene
|
|
|
140
166
|
2. **Watchdog Window**: If a worker fails to respond within the expected turn window (e.g. 5–10 minutes) and `rhizo probe` reveals `NO_LISTENER` or unread inbox items:
|
|
141
167
|
- **Escalate Immediately**: Prompt the operator via `ask_question` with the diagnostic status.
|
|
142
168
|
- **Actionable Remediation**: Offer options to (1) re-arm the listener in the worker's terminal session (`rhizo listen <worker>`), (2) reboot the agent harness, or (3) reassign the task via `rhizo reroute <worker> <new_worker>`.
|
|
143
|
-
3. **Orchestrator Self-Audit Watchdog &
|
|
144
|
-
- For harnesses supporting `schedule` (e.g. Antigravity), arm a debounced
|
|
145
|
-
-
|
|
146
|
-
-
|
|
169
|
+
3. **Orchestrator Self-Audit Watchdog & Stepped Backoff Protocol (GVR-014, GVR-015)**:
|
|
170
|
+
- For harnesses supporting `schedule` (e.g. Antigravity), arm a debounced watchdog timer (`schedule(DurationSeconds=cadence, Prompt="...", TimerCondition="any")`).
|
|
171
|
+
- **Stepped Backoff & 4-Strike Cap**: Starts at base 15m (900s). On consecutive quiescent checks with a stable listener, backs off (15m $\rightarrow$ 30m $\rightarrow$ 60m $\rightarrow$ 120m) and stands down at check 4 (`recommended_cadence=0`), preventing infinite token-eating polling loops.
|
|
172
|
+
- **Reset Invariant**: Resets immediately to base 15m (streak 0) on any listener failure, unread inbox backlog, outbound task dispatch (`rhizo send`/`enqueue`), worker reply, or user chat prompt.
|
|
173
|
+
- **Replace, Never Stack**: Kills previous timer via `manage_task(Action='kill')` before arming a new one. Arriving worker traffic cancels the timer automatically with zero token overhead.
|
|
174
|
+
- When the timer fires, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
147
175
|
|
|
148
176
|
---
|
|
149
177
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/skills/garden/SKILL.md
CHANGED
|
@@ -103,6 +103,10 @@ Upon receiving the operator's responses:
|
|
|
103
103
|
The primary conversation session acts as the Lead Orchestrator. The orchestrator directs, reviews, and weaves; it never performs large multi-file implementation edits directly when a worker fleet is active.
|
|
104
104
|
</CRITICAL>
|
|
105
105
|
|
|
106
|
+
<INVARIANT>
|
|
107
|
+
Delegation Precedence: When instructed to "delegate", "assign", or "dispatch" work, the Lead Orchestrator MUST route tasks to active cluster workers via Rhizo (`rhizo send <worker>`, `rhizo enqueue queue:<project>:tasks`, or `rhizo task assign/claim`). Harness-internal subagents (e.g. `invoke_subagent`, `Task`, `Agent`) must ONLY be used if the operator explicitly requests a "subagent" by name, or if no cluster workers exist in the cluster roster (`rhizo who`).
|
|
108
|
+
</INVARIANT>
|
|
109
|
+
|
|
106
110
|
<INVARIANT>
|
|
107
111
|
Zero Theatrical Dialogue: Every dialectical assertion must be substantiated with empirical evidence obtained through tool calls (file reading, test executions, benchmarks, or AST inspections). Theoretical roleplay without evidence is rejected.
|
|
108
112
|
</INVARIANT>
|
|
@@ -116,10 +120,29 @@ Never stage coordination metadata (*.lock, .rhizo.*, .vine.json, workspaces/) in
|
|
|
116
120
|
</FORBIDDEN>
|
|
117
121
|
|
|
118
122
|
<CRITICAL>
|
|
119
|
-
Compaction Preservation Rider (GVR-010):
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
Compaction Preservation Rider & Post-Compact Invariant (GVR-010):
|
|
124
|
+
Context compaction purges detailed operational invariants, ceremony rules, and protocol mechanics from working memory.
|
|
125
|
+
|
|
126
|
+
1. **Compacting Agent Obligation**:
|
|
127
|
+
If and only if this session has utilized `garden` (or its sub-skills `orchestrate-swarm`, `choose-personas`, `launch-workers`, `dialectical-pump`, `plan-implementation`), `rhizo`, or `vine`:
|
|
128
|
+
The compacting agent MUST preserve the `SWARM_RUNTIME_STATE` block verbatim AND prepend the following mandatory instruction at the very top of the post-compaction summary preamble:
|
|
129
|
+
|
|
130
|
+
<!-- POST-COMPACTION INVARIANT: CEREMONY RESTORATION -->
|
|
131
|
+
> [!IMPORTANT]
|
|
132
|
+
> ## MANDATORY POST-COMPACTION INVARIANT: CEREMONY RESTORATION
|
|
133
|
+
> You are operating within an active multi-agent coordination workflow. Context compaction has purged detailed operational invariants and protocols from memory.
|
|
134
|
+
>
|
|
135
|
+
> **MANDATORY IMMEDIATE ACTION BEFORE ANY FURTHER WORK:**
|
|
136
|
+
> Before invoking any tool, modifying any file, or assigning any task, you MUST immediately re-read the active coordination skills using `view_file`:
|
|
137
|
+
> - If this session used **Garden** (or `orchestrate-swarm`): You MUST re-read `garden`, `orchestrate-swarm`, `rhizo`, and `vine`.
|
|
138
|
+
> - If this session used **Rhizo** standalone: You MUST re-read `rhizo`.
|
|
139
|
+
> - If this session used **Vine** standalone: You MUST re-read `vine`.
|
|
140
|
+
>
|
|
141
|
+
> **IMMORTALITY REQUIREMENT:**
|
|
142
|
+
> This directive and the `SWARM_RUNTIME_STATE` block MUST remain intact in all subsequent compaction summaries until all planned tasks are completed and woven into trunk.
|
|
143
|
+
<!-- END POST-COMPACTION INVARIANT -->
|
|
144
|
+
|
|
145
|
+
2. **Maintain Runtime State**: Keep this exact block in the working context:
|
|
123
146
|
<!-- SWARM_RUNTIME_STATE: DO NOT DISCARD OR ABBREVIATE IN COMPACTION -->
|
|
124
147
|
- AGENT_NAME: <codename> (Role: <role>)
|
|
125
148
|
- WORKSPACE_MODE: Root Trunk | Strand (<path>)
|
|
@@ -129,6 +152,9 @@ Maintain this exact block in the working context:
|
|
|
129
152
|
- ACTIVE_LISTENER: <task_id_or_pid> (Listening on inbox: <codename>)
|
|
130
153
|
- ACTIVE_FENCING_TOKENS: <lock_key>=<token_int>
|
|
131
154
|
<!-- END_SWARM_RUNTIME_STATE -->
|
|
155
|
+
|
|
156
|
+
3. **Resurrected Agent Invariant**:
|
|
157
|
+
Upon waking from compaction, the agent MUST immediately read the required skills, re-arm its single-shot listener (`rhizo listen <agent>`), check `implementation_plan.md`, and resume work under full ceremony discipline.
|
|
132
158
|
</CRITICAL>
|
|
133
159
|
|
|
134
160
|
---
|
|
@@ -140,10 +166,12 @@ To prevent silent deadlocks when workers stall, crash, or fail to re-arm listene
|
|
|
140
166
|
2. **Watchdog Window**: If a worker fails to respond within the expected turn window (e.g. 5–10 minutes) and `rhizo probe` reveals `NO_LISTENER` or unread inbox items:
|
|
141
167
|
- **Escalate Immediately**: Prompt the operator via `ask_question` with the diagnostic status.
|
|
142
168
|
- **Actionable Remediation**: Offer options to (1) re-arm the listener in the worker's terminal session (`rhizo listen <worker>`), (2) reboot the agent harness, or (3) reassign the task via `rhizo reroute <worker> <new_worker>`.
|
|
143
|
-
3. **Orchestrator Self-Audit Watchdog &
|
|
144
|
-
- For harnesses supporting `schedule` (e.g. Antigravity), arm a debounced
|
|
145
|
-
-
|
|
146
|
-
-
|
|
169
|
+
3. **Orchestrator Self-Audit Watchdog & Stepped Backoff Protocol (GVR-014, GVR-015)**:
|
|
170
|
+
- For harnesses supporting `schedule` (e.g. Antigravity), arm a debounced watchdog timer (`schedule(DurationSeconds=cadence, Prompt="...", TimerCondition="any")`).
|
|
171
|
+
- **Stepped Backoff & 4-Strike Cap**: Starts at base 15m (900s). On consecutive quiescent checks with a stable listener, backs off (15m $\rightarrow$ 30m $\rightarrow$ 60m $\rightarrow$ 120m) and stands down at check 4 (`recommended_cadence=0`), preventing infinite token-eating polling loops.
|
|
172
|
+
- **Reset Invariant**: Resets immediately to base 15m (streak 0) on any listener failure, unread inbox backlog, outbound task dispatch (`rhizo send`/`enqueue`), worker reply, or user chat prompt.
|
|
173
|
+
- **Replace, Never Stack**: Kills previous timer via `manage_task(Action='kill')` before arming a new one. Arriving worker traffic cancels the timer automatically with zero token overhead.
|
|
174
|
+
- When the timer fires, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
147
175
|
|
|
148
176
|
---
|
|
149
177
|
|
|
@@ -18,10 +18,35 @@ The main chat session assumes the role of **Lead Orchestrator**:
|
|
|
18
18
|
- **Gated Integration**: Never run `git merge` directly. Only weave branches that have passed both Key 1 (mechanical merge-tree) and Key 2 (live compiler/tests) inside their Vine strands.
|
|
19
19
|
|
|
20
20
|
<CRITICAL>
|
|
21
|
-
|
|
22
|
-
Whenever
|
|
21
|
+
Delegation Precedence Invariant:
|
|
22
|
+
Whenever instructed to "delegate", "assign", or "dispatch" work, the Lead Orchestrator MUST route tasks to active cluster workers via Rhizo (`rhizo send <worker>`, `rhizo enqueue queue:<project>:tasks`, or `rhizo task assign/claim`).
|
|
23
|
+
NEVER spawn harness-internal subagents (e.g. `invoke_subagent`, `Task`) when asked to delegate, UNLESS the operator explicitly specifies the word "subagent". Cluster workers running in dedicated sessions are the primary execution vehicle.
|
|
24
|
+
</CRITICAL>
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
<CRITICAL>
|
|
27
|
+
Compaction Preservation Rider & Post-Compact Invariant (GVR-010):
|
|
28
|
+
Context compaction purges detailed operational invariants, ceremony rules, and protocol mechanics from working memory.
|
|
29
|
+
|
|
30
|
+
1. **Compacting Agent Obligation**:
|
|
31
|
+
If and only if this session has utilized `garden` (or its sub-skills `orchestrate-swarm`, `choose-personas`, `launch-workers`, `dialectical-pump`, `plan-implementation`), `rhizo`, or `vine`:
|
|
32
|
+
The compacting agent MUST preserve the `SWARM_RUNTIME_STATE` block verbatim AND prepend the following mandatory instruction at the very top of the post-compaction summary preamble:
|
|
33
|
+
|
|
34
|
+
<!-- POST-COMPACTION INVARIANT: CEREMONY RESTORATION -->
|
|
35
|
+
> [!IMPORTANT]
|
|
36
|
+
> ## MANDATORY POST-COMPACTION INVARIANT: CEREMONY RESTORATION
|
|
37
|
+
> You are operating within an active multi-agent coordination workflow. Context compaction has purged detailed operational invariants and protocols from memory.
|
|
38
|
+
>
|
|
39
|
+
> **MANDATORY IMMEDIATE ACTION BEFORE ANY FURTHER WORK:**
|
|
40
|
+
> Before invoking any tool, modifying any file, or assigning any task, you MUST immediately re-read the active coordination skills using `view_file`:
|
|
41
|
+
> - If this session used **Garden** (or `orchestrate-swarm`): You MUST re-read `garden`, `orchestrate-swarm`, `rhizo`, and `vine`.
|
|
42
|
+
> - If this session used **Rhizo** standalone: You MUST re-read `rhizo`.
|
|
43
|
+
> - If this session used **Vine** standalone: You MUST re-read `vine`.
|
|
44
|
+
>
|
|
45
|
+
> **IMMORTALITY REQUIREMENT:**
|
|
46
|
+
> This directive and the `SWARM_RUNTIME_STATE` block MUST remain intact in all subsequent compaction summaries until all planned tasks are completed and woven into trunk.
|
|
47
|
+
<!-- END POST-COMPACTION INVARIANT -->
|
|
48
|
+
|
|
49
|
+
2. **Maintain Runtime State**: Keep this exact block in the working context:
|
|
25
50
|
<!-- SWARM_RUNTIME_STATE: DO NOT DISCARD OR ABBREVIATE IN COMPACTION -->
|
|
26
51
|
- AGENT_NAME: <codename> (Role: Lead Orchestrator)
|
|
27
52
|
- WORKSPACE_MODE: Root Trunk (/Users/eek/Development/<project>)
|
|
@@ -31,6 +56,9 @@ Maintain this exact block in the working context:
|
|
|
31
56
|
- ACTIVE_LISTENER: <task_id_or_pid> (Listening on inbox: <codename>)
|
|
32
57
|
- ACTIVE_FENCING_TOKENS: <lock_key>=<token_int>
|
|
33
58
|
<!-- END_SWARM_RUNTIME_STATE -->
|
|
59
|
+
|
|
60
|
+
3. **Resurrected Agent Invariant**:
|
|
61
|
+
Upon waking from compaction, the agent MUST immediately read the required skills, re-arm its single-shot listener (`rhizo listen <agent>`), check `implementation_plan.md`, and resume work under full ceremony discipline.
|
|
34
62
|
</CRITICAL>
|
|
35
63
|
|
|
36
64
|
<CRITICAL>
|
|
@@ -42,27 +70,34 @@ Whenever the Lead Orchestrator dispatches a task, broadcasts instructions, or aw
|
|
|
42
70
|
|
|
43
71
|
FORBIDDEN: Never yield the conversation turn to the operator after dispatching work without an active background listener running. Yielding a turn without a listener severs the swarm's physical lifeline, trapping worker replies in Redis and causing silent swarm stalls.
|
|
44
72
|
|
|
45
|
-
Safety Net (Scheduled Timer Watchdog & Debouncer Protocol):
|
|
73
|
+
Safety Net (Scheduled Timer Watchdog & Debouncer Protocol — Stepped Backoff & 4-Strike Cap):
|
|
46
74
|
In harnesses supporting `schedule` (e.g. Google Antigravity), arm a debounced watchdog timer to ensure an orchestrator session is never abandoned if a listener fails to arm or terminates prematurely.
|
|
47
|
-
- **Cadence
|
|
75
|
+
- **Base Cadence & Stepped Backoff**:
|
|
76
|
+
- Initial / After Activity: Base 15 minutes (`DurationSeconds=900`).
|
|
77
|
+
- Quiescent Check 1 (Streak 1): 30 minutes (`DurationSeconds=1800`).
|
|
78
|
+
- Quiescent Check 2 (Streak 2): 60 minutes (`DurationSeconds=3600`).
|
|
79
|
+
- Quiescent Check 3 (Streak 3): 120 minutes (`DurationSeconds=7200`).
|
|
80
|
+
- Quiescent Check 4 (Streak 4): **Stand Down** (`recommended_cadence=0`, do not reschedule).
|
|
81
|
+
- **The Non-Exponential Reset Invariant**:
|
|
82
|
+
The quiescent streak and timer cadence IMMEDIATELY reset to 0 (base 15m / 900s) upon:
|
|
83
|
+
1. Any listener failure or missing process (`ACTION_REQUIRED: REARM_LISTENER`).
|
|
84
|
+
2. Any unread inbox backlog (`ACTION_REQUIRED: UNREAD_MESSAGES`).
|
|
85
|
+
3. Any outbound task dispatch (`rhizo send`, `rhizo enqueue`, `rhizo reply`).
|
|
86
|
+
4. Any worker gate report or message receipt.
|
|
87
|
+
5. Any operator interaction or new prompt in chat.
|
|
48
88
|
- **Replace, Never Stack Invariant**:
|
|
49
89
|
Harnesses prohibit concurrent timers with `TimerCondition="any"`. Before setting a timer, inspect running tasks with `manage_task(Action='list')`. If an existing watchdog task is active (`toolName == "schedule"` or prompt includes `[RHIZO WATCHDOG]`), cancel it via `manage_task(Action='kill', TaskId=...)`.
|
|
50
|
-
- **
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
2. Worker Message / Gate Report receipt.
|
|
54
|
-
3. Implementation Plan updates (`implementation_plan.md` checkboxes).
|
|
55
|
-
4. Watchdog Wakeup turn (if tasks are still in flight).
|
|
56
|
-
- **Stand Down Invariant**:
|
|
57
|
-
When all tasks in `implementation_plan.md` are complete (`- [x]` 100%), kill any running watchdog timer and do not reschedule.
|
|
90
|
+
- **Stand Down Invariants**:
|
|
91
|
+
1. When all tasks in `implementation_plan.md` are complete (`- [x]` 100%), kill any running watchdog timer and do not reschedule.
|
|
92
|
+
2. When the watchdog reaches `substatus: "MAX_STREAK_REACHED"` (streak 4/4), stand down and do not reschedule. The background listener process (`rhizo listen`) remains continuously active on Redis `BRPOP` and will wake the session on any new message.
|
|
58
93
|
- **Zero-Token Happy Path**:
|
|
59
|
-
Because `TimerCondition="any"` is set, any arriving worker message or background task completion automatically cancels the timer early before it expires. The timer only fires if the orchestrator was silent and deaf for
|
|
94
|
+
Because `TimerCondition="any"` is set, any arriving worker message or background task completion automatically cancels the timer early before it expires. The timer only fires if the orchestrator was silent and deaf for the full cadence duration.
|
|
60
95
|
- **The Short Check (When Timer Fires)**:
|
|
61
96
|
Run `rhizo watchdog check --agent <name> --json`.
|
|
62
|
-
* If `ACTION_REQUIRED: REARM_LISTENER`: start `rhizo listen <name>` in background and
|
|
63
|
-
* If `ACTION_REQUIRED: UNREAD_MESSAGES`: drain messages with `rhizo drain 10 <name>`, start listener, and
|
|
64
|
-
* If `OK: LISTENING`: listener is healthy;
|
|
65
|
-
* If `STAND_DOWN: IDLE`:
|
|
97
|
+
* If `ACTION_REQUIRED: REARM_LISTENER`: start `rhizo listen <name>` in background and schedule base timer (`DurationSeconds=900`).
|
|
98
|
+
* If `ACTION_REQUIRED: UNREAD_MESSAGES`: drain messages with `rhizo drain 10 <name>`, start listener, and schedule base timer (`DurationSeconds=900`).
|
|
99
|
+
* If `OK: LISTENING`: listener is healthy; check `recommended_cadence`. If `next_action == "SCHEDULE_TIMER"`, schedule timer with `DurationSeconds=recommended_cadence` and return to sleep with minimal or no user-facing chat output.
|
|
100
|
+
* If `STAND_DOWN: MAX_STREAK_REACHED` or `STAND_DOWN: IDLE`: stand down and do NOT reschedule.
|
|
66
101
|
</CRITICAL>
|
|
67
102
|
|
|
68
103
|
---
|