Files
box/CHAT_POLICY.md
T
operator-main 550e30901b fix: placement verification and sidechat policy enforcement
- dm.py: placement-aware verify (verify_placement), checked_uuid logging, placement_mismatch events
- main-chat-watchdog.py: P0 alerts on placement_mismatch
- box-ctl.py: notify routes to sidechat, box policy command
- jobs: ops-audit and pipe-demo use sidechats
- response-harvester.py: chain deduplication

Session: sidechat/ops-restore
2026-10-04 18:29:13 +00:00

4.8 KiB

NetVM Agent Chat Policy: Main Chat Preservation

Status: ACTIVE POLICY (Mandatory across all fleet automation, jobs, and operator tooling)
Date: 2026-10-04
Version: 2.0
Applies to: All autonomous agents (muse, pip, 646, opm), scheduled jobs (super job), orchestrator tooling (super dm, dm.py), and human operators.


1. The Core Principle: Main Chat Is Sacred

Rule: Avoid using Main Chat whenever possible.

When Main Chat gets bogged down with automated entries, scheduled job triggers, log dumps, or inter-agent chatter, work stops actually getting done. Browser DOM virtualizers lag or crash, context windows saturate with noisy outputs, and the agent's attention drifts away from primary operator directives.

Main Chat is reserved exclusively for high-level human operator oversight, urgent human-visible escalations, and direct operator conversational alignment.


2. Channel Segregation Rules

Rule A: Scheduled Jobs MUST Target Dedicated Sidechats

  • Never configure a routine scheduled job (e.g., cron checks, health monitors, heartbeats, periodic scrapes) to deliver to main.
  • Every job definition in jobs/<name>.json must explicitly specify:
    • "dm_target": "<sidechat-name-or-uuid>" OR
    • "sidechat": { "create": true, "name_template": "...", "reuse_key": "..." }
  • Any job found dumping routine health outputs or telemetry into main must be immediately migrated to a dedicated sidechat.

Rule B: Inter-Agent Communication Runs via Sidechats / Side Agents

  • Autonomous agents communicating with one another (e.g., 646 ↔ pip, opm ↔ 646) must use dedicated coordination sidechats (e.g. 646-pip-coord, 646-opm-coord, 646 tasks).
  • Do not route peer coordination or sub-task requests through an agent's Main Chat.
  • Subordinate or delegated tasks should be spun off to side agents or sidechats to isolate the conversation state and prevent main thread contamination.

Rule C: Large Payloads Transferred via File System, Not Chat

  • Do not dump multi-kilobyte log extracts, raw HTTP responses, table dumps, or diffs into any chat window.
  • Payloads must be written to disk on bl or the VM (e.g. in /home/super/Projects/NetVM/logs/ or /srv/box/) and referenced via short path / pointer in the message:
    • ✅ Good: [RESULT 12345] Health check completed. 6/6 endpoints OK. Detailed breakdown saved to logs/http-health-20261004.log
    • ❌ Forbidden: Pasting 200 lines of raw curl outputs or JSON logs into chat.

Rule D: Operator CLI (super dm) Enforces Sidechat-First Flow

  • Interactive conversational sessions (super dm chat <agent>) prompt for or default to sidechats and issue an explicit policy warning whenever Main Chat is selected.
  • When dispatching one-off DMs via super dm send or super dm wo, operators must prefer --target "<sidechat>" over --target main.

3. Fleet Addressing Directory

Target Agent Purpose Policy Tier
main All (muse, pip, 646, opm) Direct human-to-operator urgent interventions only Restricted / Minimal
heartbeat opm Automated DM pipeline heartbeat verification Sidechat Required
646 tasks 646 Daily check-ins, execution health, operator tasks Sidechat Required
646-pip-coord pip / 646 Peer coordination between pip and 646 Sidechat Required
646-opm-coord opm / 646 Peer coordination between opm and 646 Sidechat Required

4. Violations & Enforcement

  1. Dispatcher Guard: Scheduled jobs with schedule != "manual" and no dm_target or sidechat configuration will be audited and retrofitted with dedicated sidechat targets.
  2. Review Checklist: Any PR, skill, rule, or script introducing automated messages must verify that output lands in a sidechat or log file, never in Main Chat.

5. Changelog

v2.0 — 2026-10-04: Sidechat-only enforcement

  • New rule: No DM lands in Main Chat unless explicitly authorized. dm.py send / job-dispatch.py refuse --target main without --allow-main-chat (exit 2, main_chat_blocked log event, before any browser navigation). Job JSON opt-in key: "allow_main_chat": true.
  • Watcher: main-chat-watchdog.py (every 5 min) classifies dm-log events into blocked/ authorized / violation.
  • Triage: docs/SIDECHAT-POLICY-TRIAGE.md `— where to look first on failure.
  • Fix: SIDCHAT_ALIASES["heartbeat"] de-collided — was pointing at 646's tasks thread (1e75a740-...); now points at the dedicated heartbeat sidechat (0077e918-..., reuse_key heartbeat-opm in job-sidechats.json).

v1.0 — 2026-10-04: Initial policy

  • Main Chat preservation: scheduled jobs and inter-agent communication must use dedicated sidechats.
  • Fleet addressing directory established.