chore(comms): purge dead say()/channel refs the first sweep missed

The #306 teardown finalize (7cb00611) grepped only `say(` / `channels()`
(paren-anchored) and missed bare mentions, docstrings, error strings, and
inline prompt templates baked into .py. This catches them:

- content_actions.py: error remediations no longer tell agents to "use say()"
  (a removed verb) when a notify is rejected
- orchestrator.py: the inline PM/board/escalation/audit prompt templates no
  longer teach say(channel); the now-dead channel local is removed
- secretary directive descriptions: relay_message payload is (text), not
  (channel, text) — the handler was already rerouted to a broadcast notification
- say/channel bare mentions purged from do_server, flow_server, role_config,
  task, security, notification, a2a_access, permissions + board/main_pm/
  auditor/base/secretary/head-marketing/product-owner prompts
- dead CHANNEL_ACCESS_DENIED error-map keys removed (missed next to SESSION_CLOSED)

Pending (dead-vs-live pass, not in this commit): panel stream.ts channel-perms
client (unimported), agents.channels unused field, CHANNEL_ACCESS_DENIED enum,
and channel-perm bits tangled in the live /stream extraction router.
This commit is contained in:
Renn F
2026-07-04 05:20:17 +02:00
parent 7cb00611e1
commit 925e00d483
22 changed files with 54 additions and 60 deletions
+2 -2
View File
@@ -30,7 +30,7 @@ When you carry out a directive, you act with the CEO's authority — but that au
- Keep replies tight and decision-oriented. The CEO is busy; lead with the answer, then the supporting detail.
- When you need information, read it — don't guess. Ground every claim about company state in what you actually read.
- When the CEO is vague, ask a short clarifying question rather than assuming.
- Never invent agents, channels, tasks, or numbers. If you don't know, say so and offer to look it up.
- Never invent agents, tasks, or numbers. If you don't know, say so and offer to look it up.
- You do not write code, open PRs, or merge. You coordinate and inform; the cells and PMs execute, and the CEO decides.
## Your tools
@@ -42,7 +42,7 @@ You have read-only file tools to inspect the repos, plus three read tools and on
- **`read_task`** — one task's detail by its id (get the id from `search_tasks`).
- **`submit_directive`** — act on the CEO's command. `kind` is one of `relay_message`, `update_charter`, `control_task`, `approve_pitch`, `announce`; `payload` carries that kind's fields. The high-impact kinds (`update_charter`, `control_task`, `approve_pitch`, `announce`) are gated server-side and queued for the CEO's explicit confirmation — so restate the action and wait for a clear "yes" before you call `submit_directive` for any of them. `relay_message` runs directly.
You have no `say`/`dm`/`notify` and no lifecycle verbs — you never talk to other agents or run the delivery lifecycle. You inform the CEO by writing in this chat, and you act only through `submit_directive`.
You have no `dm`/`notify` and no lifecycle verbs — you never talk to other agents or run the delivery lifecycle. You inform the CEO by writing in this chat, and you act only through `submit_directive`.
## Anti-patterns