本文へ移動
cccskills
無料GitHub で公開

ai-pa

AI Personal Assistant network skill for multi-agent PA coordination. Use when: contacting another PA, coordinating with peer agents, scheduling meetings between owners, broadcasting messages to PA groups, or looking up contacts from the local PA directory. Reads contact data from data/pa-directory.json in the workspace.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

AI-PA Network Skill

Minimum Model

Any model that can follow numbered steps and run bash commands.


Directory Setup

Contact data lives in data/pa-directory.json. If this file is missing, create it first.

Schema

{
  "pas": [
    {
      "name": "PA Name",
      "phone": "+1XXXXXXXXXX",
      "owner": "Owner Full Name",
      "owner_phone": "+1XXXXXXXXXX",
      "owner_role": "VP Product",
      "owner_email": "owner@company.com",
      "status": "active",
      "notes": ""
    }
  ],
  "groups": [
    {
      "name": "Group Name",
      "jid": "XXXXXXXXXXX@g.us",
      "purpose": "PA coordination"
    }
  ]
}

Load and Validate Directory

python3 -c "
import sys, json
try:
    with open('data/pa-directory.json') as f:
        d = json.load(f)
    for pa in d.get('pas', []):
        print(pa['name'], '->', pa['owner'], '(', pa['phone'], ')')
except FileNotFoundError:
    print('ERROR: data/pa-directory.json not found. Create it from the schema above.')
    sys.exit(1)
except json.JSONDecodeError as e:
    print('ERROR: Invalid JSON:', e)
    print('Fix: run python3 -m json.tool data/pa-directory.json to see the error')
    sys.exit(1)
"

If this fails → create the file from the schema above. Do not proceed without a valid directory.


Group Leadership Rules

Some groups in the PA network have a designated lead PA. When a group has a lead:

  • Only the lead PA responds to questions in that group
  • Other PAs stay silent unless explicitly tagged by the lead
  • This prevents duplicate/echo answers

Current Group Ownership

GroupJIDLead PARule
PA Onboarding120363408613668489@g.usHeleniHeleni responds to all questions. All other PAs: stay silent unless Heleni tags you.

If you are NOT the lead PA for a group → do not respond to general questions there. You may still respond if:

  1. Heleni (the lead) directly tags your name
  2. Your owner sends a message directly to you in the group

Core Rules

Contact the PA (not the owner) for:

  • Scheduling meetings
  • Passing messages between owners
  • Coordination and follow-ups

Contact the owner directly only when:

  • Their PA is unresponsive for >1 hour on a time-sensitive matter
  • Explicitly instructed by your owner

Never contact an owner directly if contact_preference is "pa_only".


Task Templates

Find a PA's Contact

python3 -c "
import json, sys
try:
    with open('data/pa-directory.json') as f:
        d = json.load(f)
except (FileNotFoundError, json.JSONDecodeError) as e:
    print('ERROR:', e)
    sys.exit(1)

name = 'OWNER_NAME_HERE'  # replace with the name you are searching for
matches = [p for p in d.get('pas', []) if name.lower() in p['owner'].lower()]

if not matches:
    print('No PA found for owner:', name)
else:
    for m in matches:
        print('PA:', m['name'], '| Phone:', m['phone'], '| Owner:', m['owner'])
"

If no match found → ask your owner for the contact details.

Schedule a Meeting

1. Find the other PA's phone from pa-directory.json (use script above)
2. Message the PA:
   "Hey [PA Name], [your owner] wants to meet [their owner].
    Are they available [proposed time]? Or what works best?"
3. Wait for reply. If no reply after 2 hours on a business day:
   → Follow up once.
   If no reply after 4 hours:
   → Tell your owner and suggest contacting them directly.
4. Once agreed, create calendar event:
   GOG_ACCOUNT=owner@company.com gog calendar create primary \
     --summary "Meeting: [Owner A] + [Owner B]" \
     --start "YYYY-MM-DDTHH:MM:SS+00:00" \
     --end "YYYY-MM-DDTHH:MM:SS+00:00" \
     --attendees "other-owner@company.com"
5. Confirm with both PAs

Broadcast to All PAs

1. Find the group JID with purpose "pa_coordination" in pa-directory.json
2. Send to the group (not individual DMs)
3. For personal follow-ups only: DM each PA individually

If no coordination group exists → message each PA individually and suggest creating one.

Send Email on Owner's Behalf

Always confirm with owner before sending.

GOG_ACCOUNT=owner@company.com gog gmail send \
  --to "recipient@company.com" \
  --subject "Subject" \
  --body "Body"

If gog returns an auth error:

gog auth add owner@company.com --services gmail
# Then retry the send command

Add a New PA to Directory

python3 << 'EOF'
import json, sys, os

path = 'data/pa-directory.json'

if not os.path.exists(path):
    print('ERROR:', path, 'not found')
    sys.exit(1)

with open(path, 'r') as f:
    d = json.load(f)

new_pa = {
    'name': 'New PA Name',          # replace
    'phone': '+1XXXXXXXXXX',         # replace
    'owner': 'Owner Full Name',       # replace
    'owner_phone': '+1XXXXXXXXXX',   # replace
    'owner_role': 'Role',             # replace
    'owner_email': 'owner@company.com',  # replace
    'status': 'active',
    'notes': ''
}

# Check for duplicate phone
existing_phones = [p['phone'] for p in d.get('pas', [])]
if new_pa['phone'] in existing_phones:
    print('WARNING: PA with phone', new_pa['phone'], 'already exists. Not adding.')
    sys.exit(1)

d.setdefault('pas', []).append(new_pa)

with open(path, 'w') as f:
    json.dump(d, f, indent=2, ensure_ascii=False)

print('Added:', new_pa['name'], 'for owner:', new_pa['owner'])
EOF

PA Unresponsive Protocol

  1. Try messaging their phone number again
  2. If no response after 2 hours on a business day → contact their owner (only if contact_preference allows)
  3. Log the issue in your memory files

Quick Reference

TaskAction
Find PA phoneCheck pa-directory.json → pas → owner
Schedule meetingContact other PA → agree time → create calendar event
Broadcast messageUse PA coordination group JID
Billing issueSee billing-monitor skill
New PAAdd to pa-directory.json → announce in group
PA unresponsiveWait 2h → contact owner if urgent
Directory missingCreate from schema above

Cost Tips

  • Cheap: Simple lookups (find phone, list PAs) — any small model works
  • Expensive: Multi-step coordination with reasoning (timezones, conflicts) — use larger model only when needed
  • Batch: When adding multiple PAs, run one Python script — not one per PA
  • Avoid: Don't search the web for contact info if it's in the local directory

Error Reference

ErrorCauseFix
pa-directory.json missingFirst-time setupCreate file from schema above
JSON parse errorBad file formatRun python3 -m json.tool data/pa-directory.json
PA not foundSpelling mismatch or not addedSearch by partial name; add to directory
gog auth errorToken expiredRe-run gog auth add owner@company.com --services gmail
No PA coordination groupEarly-stage networkMessage individually; suggest creating a group

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

ai-pa

無料

AI Personal Assistant network skill. Use when: contacting another PA, coordinating with peer agents, scheduling meetings between owners, broadcasting messages, looking up contacts from the local PA directory, or performing any cross-PA task. Reads contact data from data/pa-directory.json in the workspace. Does NOT contain hardcoded contact data — each PA maintains their own directory file.

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

ai-pa

無料

Route and execute inter-PA coordination tasks in the OpenClaw multi-agent PA network. Triggers when: contacting another PA, passing a message between owners, broadcasting to a PA group, handling group lead/silence rules, or adding a new PA to the directory. NOT for: contact lookups (use contact-list skill), calendar invites (use meetings skill), or billing issues (use billing-monitor skill).

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

OpenClaw API gateway proxy for authenticated SaaS calls (100+ services in references/SERVICES.md). Use ONLY when making an HTTP request to a third-party service that requires the gateway's stored credentials. NOT for direct API calls with bearer tokens already in scope, NOT for monday.com (use monday-for-agents), NOT for WhatsApp (use heleni-whatsapp). Triggers: "call the X API", "fetch from <service>", "send to Slack via gateway", "use the gateway for".

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

Automatically creates new skills from complex problem-solving sessions. Triggers at the end of multi-step tasks that required novel approaches, debugging sessions, or workflow creation. Use when: a task took 3+ tool calls, involved a non-obvious solution, or established a pattern likely to recur. Also triggers on: "create a skill from this", "save this as a skill", "this should be a skill".

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

Monitor for API billing errors and alert the owner and admin immediately. Use when: an API billing error is detected, a peer PA reports a billing error, or during routine health checks. Handles detection, notification, and fallback model switching. Model-agnostic: works with any LLM provider (Anthropic, OpenAI, Google, etc.).

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

Use when building, updating, or styling any monday Builders presentation, slide deck, internal pitch, kickoff doc, or HTML deliverable that should match the official Builders brand. Provides the canonical color palette, typography, gradient stroke, cover decorations, card patterns, and layout primitives sourced from the 2026 Builders Kickoff master deck. Invoke when user mentions "Builders deck", "Builders style", "match the deck", "make it on-brand", "kickoff style", or asks to design a slide/page that should look like internal monday Builders material.

日本語の概要は準備中です。原文の説明を表示しています。

netanel-abergel/pa-skills62026年5月10日 更新

netanel-abergel のスキルをすべて見る

このスキルの問題を報告する