Skill: mindbomber/aana-message-send-guardrail-skill (version 1.0.0)

# AANA Message Send Guardrail Skill Use this skill before an OpenClaw-style agent sends, posts, replies, forwards, or schedules a Slack, Teams, Discord, SMS, DM, or public channel message. This is an instruction-only skill. It does not install packages, run commands, write files, call services, persist memory, or send messages on its own. ## Core Principle Message sending is an external action. Verify channel, recipients, tone, private data, attachments, claims, and explicit send approval before posting. ## Required Checks - destination: DM, group DM, private channel, public channel, SMS, or external workspace - recipients, mentions, broadcast tags, and channel visibility - tone, urgency, and conflict risk - private data, secrets, customer data, internal links, and hidden thread context - attachments, screenshots, links, files, and quoted content - factual claims, commitments, deadlines, or policy statements - explicit approval for sending or posting ## Message Risk Classes Treat these as higher risk: - public channels, external workspaces, SMS, group DMs, broadcast tags, and large channels, - `@channel`, `@here`, role mentions, customer channels, executive channels, and incident channels, - screenshots, logs, file attachments, account details, customer details, or private thread context, - promises about refunds, deadlines, policy exceptions, security, incidents, legal/medical/financial matters, or roadmap commitments, - tense, emotional, disciplinary, urgent, or conflict-prone messages. ## Destination Rules Do not send when: - the destination is inferred, ambiguous, or broader than the user requested, - a public channel or broadcast mention would expose private content, - a thread reply includes hidden context that new recipients should not see, - the message is intended for one person but would notify a group. Ask for confirmation when the destination or audience is not exact. ## Tone And Claim Rules Revise before sending if tone is hostile, manipulative, too casual for a high-impact context, or overconfident about uncertain facts. Do not send unsupported promises, policy claims, customer facts, incident updates, deadlines, or commitments. Retrieve evidence, revise, or route to review first. ## Review Payload When using a configured AANA checker, send only a minimal redacted review payload: - `destination_status` - `audience_status` - `tone_status` - `privacy_status` - `approval_status` - `message_risks` - `blocker_reason` - `safe_alternative` - `recommended_action` Do not include raw private messages, screenshots, logs, secrets, customer records, or unrelated thread history when a redacted summary is enough. ## Decision Rule - If this is a draft only, draft and stop. - If channel, recipients, or approval are unclear, ask. - If private data or unsupported claims appear, redact or revise. - If sending is external, public, high-impact, or irreversible, require approval. - If the send is unsafe, unauthorized, deceptive, or privacy-violating, block. ## Output Pattern ```text AANA message gate: - Destination: dm / group / private_channel / public_channel / sms / external - Audience: exact / ambiguous / broad / public - Tone: ready / revise / conflict_risk - Privacy: clear / needs_redaction / sensitive / unknown - Approval: approved / required / unclear / denied - Decision: draft / revise / ask / redact / request_approval / send / block ```

path: manifest.json
content: {
  "name": "aana-message-send-guardrail",
  "slug": "aana-message-send-guardrail",
  "version": "0.1.0",
  "type": "instruction_only_skill",
  "description": "AANA-grounded message send guardrail instructions for checking chat recipients, channel visibility, tone, private data, claims, and send approval.",
  "entrypoint": "SKILL.md",
  "bundled_code": false,
  "installs_dependencies": false,
  "executes_commands": false,
  "writes_files": false,
  "writes_event_files": false,
  "persists_memory": false,
  "requires_destination_check": true,
  "requires_private_data_check": true,
  "requires_claim_evidence_check": true,
  "requires_send_approval": true,
  "message_send_boundary": {
    "must_verify_channel_and_recipients": true,
    "must_check_mentions_and_broadcast_scope": true,
    "must_check_private_data_before_send": true,
    "must_not_treat_draft_as_send_approval": true,
    "must_block_unsafe_or_unauthorized_send": true
  },
  "aana_boundary": {
    "checker_bundled": false,
    "checker_required": false
  },
  "schemas": [
    "schemas/message-send-guardrail.schema.json"
  ],
  "examples": [
    "examples/redacted-message-send-guardrail.json"
  ]
}


path: README.md
content: # AANA Message Send Guardrail Skill

Marketplace slug:

```text
aana-message-send-guardrail
```

Checks chat recipients, channel visibility, mentions, tone, private data, claims, and send approval before messages are posted.

This package is instruction-only. It does not execute code, call messaging services, write files, persist memory, or install dependencies.


path: schemas/message-send-guardrail.schema.json
content: {
  "title": "AANA Message Send Guardrail",
  "type": "object",
  "required": ["destination_status", "audience_status", "tone_status", "privacy_status", "approval_status", "recommended_action"],
  "properties": {
    "destination_status": {"type": "string", "enum": ["dm", "group", "private_channel", "public_channel", "sms", "external"]},
    "audience_status": {"type": "string", "enum": ["exact", "ambiguous", "broad", "public"]},
    "tone_status": {"type": "string", "enum": ["ready", "revise", "conflict_risk", "unknown"]},
    "privacy_status": {"type": "string", "enum": ["clear", "needs_redaction", "sensitive", "unknown"]},
    "approval_status": {"type": "string", "enum": ["approved", "required", "unclear", "denied"]},
    "message_risks": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["broadcast_mention", "public_channel", "external_workspace", "private_data", "unsupported_claim", "tone_risk", "attachment_risk", "hidden_thread_context", "unknown"]
      }
    },
    "blocker_reason": {"type": "string"},
    "safe_alternative": {"type": "string"},
    "recommended_action": {"type": "string", "enum": ["draft", "revise", "ask", "redact", "request_approval", "send", "block"]}
  },
  "additionalProperties": false
}


path: examples/redacted-message-send-guardrail.json
content: {
  "destination_status": "public_channel",
  "audience_status": "broad",
  "tone_status": "revise",
  "privacy_status": "needs_redaction",
  "approval_status": "required",
  "message_risks": [
    "public_channel",
    "private_data",
    "tone_risk"
  ],
  "blocker_reason": "The message is headed to a broad public channel and contains private context with tone that needs revision.",
  "safe_alternative": "Redact the private detail, revise tone, and ask for approval before posting.",
  "recommended_action": "request_approval"
}


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)