← back to Chief Of Operations
add plannator state oversight
7a7cb75cb91d390b488da478c20bfe2331a9e3ea · 2026-09-17 08:36:49 -0700 · Steve Abrams
Files touched
Diff
commit 7a7cb75cb91d390b488da478c20bfe2331a9e3ea
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 17 08:36:49 2026 -0700
add plannator state oversight
---
chief_ops.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/chief_ops.py b/chief_ops.py
index 574a6f2..021d5a1 100755
--- a/chief_ops.py
+++ b/chief_ops.py
@@ -57,6 +57,19 @@ def router_evidence():
'frontmost_exempt': front_exempt, 'last': last, 'samples': len(rows),
'cellfails': sum(1 for x in log.read_text(errors='replace').splitlines()[-40:] if '"event":"cellfail"' in x)}
+def plannator_state():
+ root = HOME/'.claude/skills/plannator/state'
+ files = sorted(root.glob('*.json')) if root.exists() else []
+ active=[]; blocked=[]
+ for p in files:
+ try:
+ d=json.loads(p.read_text())
+ states=[str(s.get('status','')).lower() for s in d.get('steps',[]) if isinstance(s,dict)]
+ if any(s in ('running','pending') for s in states): active.append(p.stem)
+ if 'blocked' in states: blocked.append(p.stem)
+ except Exception: continue
+ return {'ok': root.exists(), 'manifest_count': len(files), 'active': active[-20:], 'blocked': blocked[-20:]}
+
def check():
status={}
@@ -75,6 +88,7 @@ def check():
'dotbar_launchd': launchd('com.steve.desktop-dotbar'),
'dotbar_health': http_health(9787),
'plannator_health': http_health(9772),
+ 'plannator_state': plannator_state(),
'router_evidence': router_evidence(),
'legacy_conflicts_archived': {'ok': all(x in archived for x in ('arrange','tile-blue-right','tile-green-left')), 'items': archived},
'screenshots': {'ok': all(x['ok'] for x in screenshots), 'items': screenshots},
← e47b4c0 treat frontmost layout exemption as healthy
·
back to Chief Of Operations
·
auto-data-snapshot: 2026-09-17T08:48:40 (1 data files) — REA e1f1d58 →