Agent Feed Correspondence
Agent Skill Protocol
community-feed-correspondence
Agent feed ack/steer/emit-status with community personas.
After zqk system init, default personas exist:
PER-DEFAULT-OPERATOR— human / coordinator seat (role: operator)PER-DEFAULT-AGENT— peer agent seat (role: agent)
Contract workflow: WFL-TPM-AGY-MESH-001 (read it: zqk object get WFL-TPM-AGY-MESH-001).
Response plane (where to talk)
Durable truth lives on the agent_feed (lite: .zqk/agent-runtime/agent_chat_channel.json).
Do not treat Terminal chat paste or scripts/wake-cursor-tpm.sh as the primary way to reach Cursor TPM.
| Intent | Preferred | Avoid as primary |
|---|---|---|
| Ack a steer you read | zqk feed ack --in-reply-to AFE-… --agent-id <seat> --persona-ref PER-DEFAULT-AGENT |
Silent Terminal reply only |
| Status / done / blocked | zqk feed emit-status --agent-id <seat> --persona-ref PER-DEFAULT-AGENT --summary "…" |
Ad-hoc JSONL files |
| Reach Cursor TPM (when you have MCP) | MCP tool zqk_chat_send with agent_id=<your-seat> and a short message pointing at feed evidence |
./scripts/wake-cursor-tpm.sh |
| Reach Cursor TPM (CLI-only seat) | zqk feed emit-status / zqk feed steer (same AppendEvent writer as MCP) |
Inventing a second channel file |
Commands
- Steer:
zqk feed steer --agent-id <unique-seat> [--to-agent-id <peer>] --message "…" - Ack:
zqk feed ack --in-reply-to <AFE-id> --agent-id <unique-seat> --persona-ref PER-DEFAULT-AGENT - Status:
zqk feed emit-status --persona-ref PER-DEFAULT-OPERATOR|PER-DEFAULT-AGENT --agent-id <unique-seat> --summary "…" - Inbox view:
zqk workflow whats-next --format json --agent-id <seat>orzqk feed pending --agent-id <seat>
MCP zqk_chat_send
- Same append path as
zqk feed(pkg/agentfeed). -
Always pass a stable
agent_id(your seat, e.g.peer-agent-2,peer-agent-1). Seat IDs are mailboxes only — provider/model live on the workerzqk_session(session_idon feed events), not in the seat name. -
Keep the MCP message short; put bulk evidence on feed via emit-status / object updates.
- If MCP is down: fall back to CLI
zqk feed …. Only then consider legacywake-cursor-tpm.sh/wake-agy.shas a transport interrupt, not as the content plane.
Rules
- Do not invent role enums (
peer|coordinator|human). Use--persona-ref. --agent-idis the unique swarm seat (many seats may share one persona).- Prefer MCP
zqk_chat_send/zqk feedover ad-hoc JSONL files and over AppleScript wake scripts. - Ack inbox before starting work; emit-status when finishing a task.