Skip to main content

ops-buzz

Buzz relay client for posting skill notifications, rendering Buzz-ready messages, querying recent channel messages, and checking Buzz CLI connectivity. Use when a skill needs to notify Buzz, post a morning report, inspect Buzz configuration, or prepare a Buzz agent-facing handoff.

Quellinformationen

Repository
grahama1970/agent-stack-public
Letzte Quellaktivität
24. September 2026 um 15:51
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
8 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ops-buzz
description
Buzz relay client for posting skill notifications, rendering Buzz-ready messages, querying recent channel messages, and checking Buzz CLI connectivity. Use when a skill needs to notify Buzz, post a morning report, inspect Buzz configuration, or prepare a Buzz agent-facing handoff.
allowed-tools
["Bash","Read","Write"]
triggers
["buzz","buzz notification","buzz relay","post to buzz","buzz morning report","buzz agent handoff","ask buzz agent"]
provides
["buzz-notification","buzz-message-query","buzz-config-readiness","buzz-agent-request"]
composes
["agentic-evals"]
complies
["best-practices-skills","best-practices-python","best-practices-security"]
taxonomy
["operations","notification","agent-orchestration"]
runtime_self_improvement
basic
disciplines
["observability-operations","agentic-orchestration"]
# ops-buzz Thin, agent-safe wrapper around the upstream `buzz-cli` surface. Buzz is the chat and agent workspace. Domain skills remain the source of truth for their own artifacts. `ops-buzz` only transports or queries Buzz messages and records receipts for what it attempted. ## Grounded upstream contract Use the existing Buzz CLI and relay model: - `buzz-cli` is the agent-first CLI; it reads `BUZZ_RELAY_URL` and signs requests with `BUZZ_PRIVATE_KEY`. - `buzz messages send --channel <uuid> --content -` posts a message from stdin. - `buzz messages get --channel <uuid> --limit <n>` reads recent channel messages. - `buzz messages search --query <text>` searches messages. - Buzz's own agent guidance prefers Nostr events and `buzz-cli` over new bespoke HTTP endpoints. Do not add a new Buzz relay endpoint from this skill. If a missing Buzz feature is needed, implement it upstream in `buzz-cli`/Buzz first, then wrap it here. ## Current authority Allowed: - render a Buzz-ready Markdown message from a typed payload; - dry-run a post and write a receipt; - call `buzz messages send` when configuration exists and `--dry-run` is not set; - call `buzz messages get` and `buzz messages search`; - prepare agent-facing handoff text; - post a bounded agent request and optionally read back channel messages for a response receipt. Not established in v0: - durable Buzz `KIND_JOB_REQUEST` events; - semantic validation of Claude/Codex answer quality; - appending decisions back into another skill's ledger; - creating, editing, or deleting Buzz channels; - direct relay HTTP signing independent of `buzz-cli`. ## Commands ```bash ./run.sh config doctor --json ./run.sh render-message --input summary.json --output message.md ./run.sh post --channel <uuid> --input message.json --dry-run ./run.sh post --channel <uuid> --input message.json ./run.sh ask-agent --input agent-request.json --dry-run ./run.sh ask-agent --input agent-request.json --wait ./run.sh messages get --channel <uuid> --limit 20 ./run.sh messages search --query "monitor opportunities" ``` ## Message payload contract `render-message` and `post` accept JSON shaped like: ```json { "schema": "ops_buzz.message.v1", "title": "Morning opportunities", "body": "4 opportunities found.", "source_skill": "monitor-opportunities", "source_run_id": "run:example", "source_url": "http://example.invalid/report", "external_effects": false, "items": [ {"title": "Role", "subtitle": "Company", "url": "https://example.invalid"} ] } ``` The producer validates the payload before rendering or posting and stamps: ```json "seam_validation": {"kind": "ops_buzz.message.v1", "status": "PASS"} ``` `external_effects` must be `false` for dry-run and Stage 0 monitor summaries. This field refers to the source workflow; posting a Buzz message is still a Buzz write when `--dry-run` is omitted. ## Configuration Environment variables: | Variable | Meaning | |---|---| | `BUZZ_RELAY_URL` | Buzz relay URL. Defaults are owned by `buzz-cli`; set explicitly for production use. | | `BUZZ_PRIVATE_KEY` | Nostr private key used by `buzz-cli` for NIP-98 signing. | | `BUZZ_IDENTITY_KEY` | Backward-compatible local identity key; `run.sh` exports it as `BUZZ_PRIVATE_KEY` when the latter is unset. | | `BUZZ_BIN` | Optional path/name for `buzz`; defaults to `buzz`. | Optional local config: ```text ops-buzz.config.json ``` This file is gitignored and may store non-secret defaults such as channel IDs. Secrets belong in the environment, not in the skill directory. ## Composition pattern For `$monitor-opportunities`: 1. `$monitor-opportunities` writes the source-of-truth report manifest. 2. It renders a small `ops_buzz.message.v1` payload with report URL, shortlist, blockers, source health, and `external_effects=false`. 3. It calls `skills/ops-buzz/run.sh post --channel <uuid> --input <payload>`. 4. The returned receipt is stored alongside the monitor run. The Buzz channel is an interactive front door. It is not the decision ledger. ## Agent-facing handoffs Buzz may have Claude and Codex agents that can read `agent-skills/skills`. `ask-agent` is a generic message/readback primitive. It does not claim that the agent completed the requested work unless a response event is observed. Request payload: ```json { "schema": "ops_buzz.agent_request.v1", "channel": "00000000-0000-0000-0000-000000000000", "target_agent": "codex", "mention_pubkey": "optional hex or npub", "prompt": "Inspect this monitor-opportunities run and summarize blockers.", "expected_response": "Return a short finding list with artifact paths.", "source_skill": "monitor-opportunities", "source_run_id": "run:example", "source_url": "http://example.invalid/report", "source_artifact": "/path/to/report-manifest.json", "timeout_seconds": 60, "poll_interval_seconds": 5, "readback_limit": 20 } ``` Receipt statuses: | Status | Meaning | |---|---| | `DRY_RUN` | Rendered and validated without calling Buzz. | | `REQUEST_FAILED` | Buzz send command exited non-zero. | | `REQUEST_POSTED_NO_READBACK` | Request event was posted, but no response polling was requested. | | `NO_RESPONSE` | Request posted and polling finished without observing a response. | | `RESPONSE_OBSERVED` | A candidate response event was read back from the channel. | Limits and non-claims: - target agent identity or mention; - source artifact path/URL; - expected response contract; - timeout and readback query; - receipt containing the request event and observed response event. - response observation is syntactic readback, not semantic acceptance; - domain skills decide whether to use the response. ## Safety - Do not send credentials in message content. - Do not infer a Buzz write succeeded from subprocess exit alone; capture stdout, stderr, exit code, and parsed JSON when possible. - Do not claim agent completion from a posted mention; a response event must be read back. - Do not mutate another skill's ledger directly. Domain skills own their own decisions and receipts. ## Eval posture `eval_not_required`: v0 is a deterministic CLI transport wrapper with no autonomous agent behavior. `sanity.sh` covers positive rendering, missing-config negative control, dry-run no-network behavior, and payload/schema validation. Live Buzz posting is intentionally opt-in because it requires local relay, identity, and channel configuration.
Auf GitHub ansehen