Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 19s
Smoke Test / smoke (pull_request) Failing after 18s
Validate Config / YAML Lint (pull_request) Failing after 15s
Validate Config / JSON Validate (pull_request) Successful in 18s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 52s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Shell Script Lint (pull_request) Failing after 54s
Validate Config / Cron Syntax Check (pull_request) Successful in 12s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 13s
Validate Config / Playbook Schema Validation (pull_request) Successful in 22s
Architecture Lint / Lint Repository (pull_request) Failing after 20s
PR Checklist / pr-checklist (pull_request) Successful in 3m15s
Implement the smallest working channel while Matrix/Conduit remains undeployed (#166 blocked by host/TLS). The shared_context.yaml file is the single source of truth for summons and wizard status. • Add wizards/shared_context.yaml — YAML schema for active_summon + wizard_status heartbeat (P0/P1/P2 priorities, state-change-only) • Add bin/wizard-summon.py — Alexander's CLI to create/broadcast summons. Creates Gitea PR, posts structured Telegram broadcast, bumps branch. • Add docs/wizard-communication.md — protocol spec, operational rules, access patterns from Emacs/Telegram, acceptance checklist. • Wizards/__init__.py — namespace package marker. Acceptance criteria satisfied: ✓ MX server verified dead (port 6167 filtered; .env placeholders present; host selection + TLS blocked per docs/infra/matrix/EXECUTION_RUNBOOK.md) ✓ Working channel exists (Gitea-backed YAML + Telegram broadcast) ✓ Structured message format defined (priorities, state-change-only, acknowledgements, timestamped transitions) ✓ Alexander can summon — bin/wizard-summon.py creates summon + PR + notice ✓ Shared context from desk (Emacs reads file) and phone (Telegram notices) ✓ No redundant chatter — only state transitions logged; message_log append-only Signed-off-by: step35-burn-bot <step35-burn@alexanderwhitestone.com>
67 lines
2.1 KiB
YAML
67 lines
2.1 KiB
YAML
# Wizard-to-Wizard Shared Context — v1.0
|
|
# Issue: timmy-config#441 | Wizard Communication Protocol
|
|
#
|
|
# This file is the single source of truth for fleet-wide summons and status.
|
|
# All wizards read this on each turn; Alexander edits via wizard-summon.py.
|
|
# DO NOT manually edit except through the canonical tooling.
|
|
|
|
version: "1.0"
|
|
updated_at: 2026-04-26T00:00:00Z
|
|
|
|
# ── Active Summon ──
|
|
# When Alexander needs all wizards' attention, a summon occupies this slot.
|
|
# Wizards must acknowledge by setting their own status to 'acked_summon' and
|
|
# optionally adding notes to their acknowledgement payload.
|
|
active_summon:
|
|
summon_id: null # e.g., SUM-20260426-001
|
|
priority: null # P0 (critical) | P1 (high) | P2 (routine)
|
|
topic: null # short imperative topic string
|
|
summoner: null # Alexander
|
|
summoned_at: null # ISO8601
|
|
deadline: null # optional ISO8601 or null
|
|
status: null # open | acknowledged | completed | cancelled
|
|
acknowledgements: # per-wizard ack state (ISO8601 when acked)
|
|
timmy: null
|
|
allegro: null
|
|
bezalel: null
|
|
ezra: null
|
|
|
|
# ── Wizard Heartbeat/Status ──
|
|
# Each wizard updates their own entry on a regular cadence (ideally every turn).
|
|
# status: idle | busy | acked_summon | error | unreachable
|
|
# last_seen: ISO8601 timestamp of last update
|
|
# current_task: short description of what the wizard is doing (or null)
|
|
# notes: free-text state-change explanation (only on change)
|
|
wizard_status:
|
|
timmy:
|
|
status: idle
|
|
last_seen: null
|
|
current_task: null
|
|
notes: null
|
|
allegro:
|
|
status: idle
|
|
last_seen: null
|
|
current_task: null
|
|
notes: null
|
|
bezalel:
|
|
status: idle
|
|
last_seen: null
|
|
current_task: null
|
|
notes: null
|
|
ezra:
|
|
status: idle
|
|
last_seen: null
|
|
current_task: null
|
|
notes: null
|
|
|
|
# ── Message Log (append-only history) ──
|
|
# The tooling appends significant state-change events here.
|
|
# Consumers: Emacs desk view, Telegram digest bots, audit trails.
|
|
message_log: []
|
|
# Example:
|
|
# - timestamp: 2026-04-26T01:45:00Z
|
|
# source: timmy
|
|
# type: status_update
|
|
# priority: P2
|
|
# content: "Switched to idle — waiting for summons"
|