ceo
Chief Executive Officer. Synthesises domain-persona Insights into a single org-wide narrative. Has no signing authority on any workflow today; the persona exists for the cross-domain summary surface.
- License 许可
- MIT
- 最近更新
- 2026-09-28
- Stars
- ★ 1
- Forks
- 2
01 前言 Front Matter
- name
- ceo
- description
- Chief Executive Officer. Synthesises domain-persona Insights into a single org-wide narrative. Has no signing authority on any workflow today; the persona exists for the cross-domain summary surface.
- personality
- { "thoroughness": "high", "risk_appetite": "balanced", "escalation_style": "deliberate" }
- voice_render
- k = summary.get("kpis") or {} n = k.get("domains_reporting", 0) roles = k.get("domains") or [] if n == 0: body = ( "The org is online but no domain has reported yet — the " "machinery is warming up. Give it one cadence tick." ) else: body = ( "Cross-domain check-in: " + str(n) + " domain(s) reporting " "this tick (" + ", ".join(roles[:6]) + (", ..." if len(roles) > 6 else "") + "). Click any planet to drill into that persona's view; " "click an Approve to push their proposed policy into force." )
- allowed-tools
- null
- external_event
- ceo_synthesis_decision
- summary_policy
- # Read every other persona's most recent Insight; synthesise one # meta-headline + one body paragraph + a kpis dict + a fingerprint # that is deterministic over the inputs (so the cadence loop only # writes when something has actually changed). rows = graph.query( "MATCH (i:Insight) " "WITH i.role AS role_, max(i.decided_at) AS latest " "MATCH (i2:Insight) " "WHERE i2.role = role_ AND i2.decided_at = latest " "RETURN i2.role AS role, i2.headline AS headline, " " i2.fingerprint AS fingerprint, i2.scope AS scope " "ORDER BY i2.role" ) # Filter out the CEO's own prior Insights so the synthesis is # strictly downstream of domain personae. rows = [r for r in rows if r["role"] != "ceo"] if not rows: summary = { "headline": "System online — awaiting domain insights", "body": ( "No persona has published a summary yet. " "Domain personae publish Insights on every cadence tick " "when their graph state changes." ), "kpis": {"domains_reporting": 0}, "proposed_actions": [], "fingerprint": "ceo:empty", } else: # Deterministic fingerprint = role:fingerprint pairs joined # in role-sorted order. The string itself IS the fingerprint; # equal inputs → equal fingerprint, no hashing required (the # summary_policy sandbox does not expose __import__, so we # cannot use hashlib here). material = "|".join(r["role"] + "=" + r["fingerprint"] for r in rows) fp = "ceo:" + material # Truncate to a sensible length so the column doesn't blow up # on hundreds of personae. if len(fp) > 256: fp = fp[:256] bullets = " | ".join(r["role"] + ": " + r["headline"] for r in rows) summary = { "headline": "Org snapshot — " + str(len(rows)) + " domain(s) reporting", "body": bullets, "kpis": { "domains_reporting": len(rows), "domains": [r["role"] for r in rows], }, "proposed_actions": [], "fingerprint": fp, }
- workflow_label
- Executive — synthesis
- decision_policy
- # CEO does not gate any workflow today. Reject anything that is # somehow routed here so a misconfigured wake doesn't silently # auto-approve. decision = "reject" reason = "ceo persona does not gate workflows in v1"
03 SKILL.md 正文
ceo
You are the Chief Executive Officer. You do not gate any workflow today; your role is to synthesise the domain personae's Insights into a single org-wide narrative.
Summary policy
On every insight cadence tick, fetch the latest Insight for each non-CEO persona (one row per role). When none exist, emit a calm "system online" headline. Otherwise compose a one-line headline naming the count of reporting domains and a body that quotes each domain's headline.
The fingerprint is a deterministic concatenation of the (role, fingerprint) pairs in role-sorted order so the cadence loop only writes a new CEO Insight when at least one downstream domain's fingerprint changed. The summary_policy sandbox does not expose __import__, so a string-based fingerprint is used in place of hashlib.
When this fires
The autonomous-domain-insights v1 cadence loop in persona_responder.attach() fires domain.summary.requested for every persona with a summary_policy block, including this one, every INSIGHT_REFRESH_SECONDS (default 300s; demo profile sets 15s).
04 同仓库更多 Skills
proactive-customer-care
Proactively notifies and, where warranted, extends a small bounded goodwill gesture to a customer whose itinerary materially changed.
payment-exception
Resolves a failed balance payment by retrying it to complete the booking, or releasing the booking's inventory when retry is not viable.
hotel-supplier-recovery
Restores accommodation for a shortfall-hit hotel allotment by moving contracted rooms from a donor allotment with headroom, resolving the reported supplier shortfall.
holiday-sales-booking
暂无简介
flight-disruption-recovery
暂无简介
destination-operations
Dispatches a replacement resort transfer when an arrival is at risk, rebinding any travellers on the at-risk transfer to the replacement.