workspace/skills/twilio-daily-briefing/SKILL.md
# Twilio Daily Briefing Skill **Feature**: 042-twilio-voice-mcp **Priority**: P3 **User Story**: US4 - Daily Check-in Calls ## Purpose Provide optional daily phone briefings at a scheduled time with overnight event summaries. ## Trigger Conditions This skill activates when: 1. **Scheduled Time** (e.g., 8 AM daily) - If `daily_briefing.enabled: true` in config - Integrated with NetClaw heartbeat system 2. **Manual Request** - "Give me my daily briefing" - "What happened overnig
npx skillsauth add automateyournetwork/netclaw workspace/skills/twilio-daily-briefingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Feature: 042-twilio-voice-mcp Priority: P3 User Story: US4 - Daily Check-in Calls
Provide optional daily phone briefings at a scheduled time with overnight event summaries.
This skill activates when:
Scheduled Time (e.g., 8 AM daily)
daily_briefing.enabled: true in configManual Request
In config/twilio-voice.json:
{
"daily_briefing": {
"enabled": false,
"time": "08:00",
"timezone": "America/Toronto",
"days": [1, 2, 3, 4, 5],
"include_quiet_nights": true
}
}
| Option | Type | Description |
|--------|------|-------------|
| enabled | boolean | Enable/disable daily briefings |
| time | string | HH:MM format in local timezone |
| timezone | string | IANA timezone (e.g., "America/Toronto") |
| days | array | Days of week (0=Sun, 1=Mon, ..., 6=Sat) |
| include_quiet_nights | boolean | Call even if nothing happened overnight |
Heartbeat Trigger at Scheduled Time
│
├─► Check if daily_briefing.enabled
│ └─► Disabled? → Skip
│
├─► Check day of week
│ └─► Not scheduled? → Skip
│
├─► Gather Overnight Events
│ ├─► PagerDuty incidents (since last briefing)
│ ├─► Device alerts
│ ├─► Configuration changes
│ └─► Security events
│
├─► Generate Briefing Content
│ ├─► Events found → Summary of events
│ └─► No events → "All clear" message
│
├─► Pre-call Validation
│ └─► Rate limit, whitelist
│
└─► Initiate Briefing Call
Good morning John, this is your NetClaw daily briefing.
Overnight summary:
{incident_count} incidents occurred.
{resolved_count} resolved, {active_count} still active.
Top events:
{event_1_summary}.
{event_2_summary}.
{device_health_summary}.
Have a great day.
Good morning John, this is your NetClaw daily briefing.
All quiet overnight. No incidents, no alerts.
All {device_count} devices are operational.
Have a great day.
If include_quiet_nights: false and no events:
{
"action": "update_config",
"path": "daily_briefing.enabled",
"value": true
}
{
"tool": "twilio_voice_call",
"arguments": {
"to": "+18734550127",
"message": "[Generated daily briefing content]",
"priority": "normal"
}
}
Time: 8:00 AM Monday
Events Overnight:
- 2 PagerDuty incidents (1 resolved, 1 active)
- 3 device alerts (all auto-resolved)
Briefing:
"Good morning John. Overnight summary: 2 incidents occurred.
The P2 on core-router-1 is resolved. There's still an active P3
on switch-floor-2 for high CPU. 3 device alerts auto-resolved.
All 47 devices are currently operational. Have a great day."
Time: 8:00 AM Tuesday
Events Overnight: None
Briefing (include_quiet_nights: true):
"Good morning John. All quiet overnight. No incidents, no alerts.
All 47 devices are operational. Have a great day."
Briefing (include_quiet_nights: false):
[No call made - logged as skipped]
Time: 8:00 AM Saturday
Config: days: [1, 2, 3, 4, 5] # Monday-Friday only
Action: No call made (weekend)
The daily briefing integrates with NetClaw's heartbeat system:
# In heartbeat_cycle:
if is_daily_briefing_time():
await trigger_daily_briefing()
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
3D network topology visualization and interactive digital twin in Unreal Engine 5.8 via the built-in UE5 MCP server.
testing
Human-in-the-loop escalation via HumanRail — route low-confidence agent decisions, pre-destructive operation approvals, and ambiguous incident tickets to real human engineers. Human answers are verified and returned as structured output. Workers are paid via Lightning Network. Use when the agent is uncertain, when a destructive change needs explicit human sign-off beyond a ServiceNow CR, or when an ambiguous ticket requires human triage before automated handling.
testing
IPv4 and IPv6 subnet calculator - CIDR breakdown, usable hosts, previous/next subnets, address classification, VLSM planning, and dual-stack analysis. Use when calculating subnets, figuring out how many hosts fit in a prefix, planning IP addressing, getting wildcard masks for ACLs, or checking if two IPs are in the same subnet.