name: aaif-onboarding description: > Use this skill when the user asks about "AAIF member onboarding", "new member setup", "membership tier validation", "mailing list provisioning", "compliance screening", "silo health", "onboarding checklist", "D1-D5 deliverables", "member offboarding", "working group enrollment", "election management", "press release drafting", "logo validation", "renewal intelligence", "churn prediction", "engagement scoring", "contact role management", "calendar provisioning", "onboarding call scheduling", or any task related to managing Linux Foundation AAIF member organizations, contacts, and their access across Salesforce, Groups.io, Google Calendar, Discord, GitHub, LFX Platform, and HubSpot systems. version: 0.2.0
AAIF PMO Agent
Domain knowledge for the AI & Agentic Infrastructure Foundation member onboarding lifecycle.
Foundation Context
AAIF is a Linux Foundation project hosting MCP (Anthropic), Goose (Block), and AGENTS.md (OpenAI). Members are companies that pay annual dues and receive tiered benefits.
Client Architecture
The AAIF PMO Agent runs on a single MCP server that powers multiple clients:
- LFX PCC — PMO staff (Stephano, Christina) use PCC for day-to-day onboarding operations, provisioning, and compliance workflows
- Cowork Plugin — Executives and leadership use the Cowork tab in Claude Desktop for oversight, status checks, dashboards, and ad-hoc questions
- Intercom Fin — Members self-serve onboarding questions, status checks, and FAQ via the Intercom chatbot
- Goose (optional) — Open-source MCP client for developers who prefer a local agent
Membership Tiers
| Tier | GB Seats | Voting | TC Eligible | Max Contacts | Key Lists |
|---|---|---|---|---|---|
| Platinum | 2 | Yes | Yes | 10 | governing-board, technical-committee, members-all |
| Gold | 1 | Yes | Yes | 8 | governing-board, members-all |
| Silver | 0 | No | No | 5 | members-all |
D1-D5 Onboarding Deliverables
Every new member goes through five deliverables:
- D1 — Agreement & Activation (3 steps): Tier validation, sanctions/compliance screening (via Descartes in SFDC), tax-exempt verification
- D2 — Membership Record (3 steps): CRM record validation, contacts collected by role, member tracker synced
- D3 — Participation Enablement (5 steps): Mailing lists, calendar invites, working group enrollment, Discord, GitHub
- D4 — Orientation (2 steps): Welcome email, onboarding call
- D5 — Visibility (3 steps): Logo collection, press release, website/landscape update
Contact Roles
Each member organization has contacts assigned to roles:
- voting_contact — Represents org on governing board, gets full list access
- technical_contact — Participates in technical committee and working groups
- primary_contact — Main point of contact, administrative role
- billing_contact — Invoicing and payment
Available MCP Tools
There are 49 tools across 12 domains (48 auto-registered via dynamic registry + 1 health check). Architecture review complete: 14/14 findings resolved. 123 tests passing. Always default to dry_run=True for any write operations and confirm with the user before setting dry_run=False.
Domain 1: Mailing List Provisioning (4 tools)
provision_mailing_lists(org_id, contact_email, dry_run=True)— Add contact to tier-appropriate listsremove_from_mailing_lists(org_id, contact_email, dry_run=True)— Remove from all listscheck_mailing_list_membership(contact_email)— Check subscription status across all listsremediate_mailing_lists(dry_run=True)— Foundation-wide gap detection and remediation
Domain 2: Calendar & Meeting Management (3 tools)
provision_calendar_invites(org_id, contact_id, dry_run=True)— Send calendar invites based on tier/roleupdate_meeting_schedule(wg_id, new_time, new_link)— Update WG recurring meeting time/linkget_upcoming_meetings(contact_id)— Get upcoming meetings for a contact
Domain 3: Compliance & Sanctions (4 tools)
check_sanctions(org_name, country, org_id)— Look up Descartes screening status from SFDCcheck_tax_exempt_status(org_id)— Verify 501(c)(6) complianceget_compliance_report(org_id)— Full compliance summaryflag_compliance_issue(org_id, issue_type, details)— Create ticket for human review
Domain 4: Tier Validation (3 tools)
validate_membership_tier(org_id)— Look up org tier, entitlements, contract expiry, anomaliescheck_tier_entitlements(tier)— Return the entitlement matrix for platinum/gold/silverdetect_tier_anomalies()— Scan all members for access mismatches
Domain 5: Contact Role Management (5 tools)
list_contacts(org_id)— List all contacts with roles and downstream accessadd_contact(org_id, name, email, role, dry_run=True)— Add contact, trigger downstream provisioningupdate_contact_role(org_id, contact_id, new_role, dry_run=True)— Change role, show downstream effectsremove_contact(org_id, contact_id, dry_run=True)— Remove contact, trigger offboardingtransfer_voting_rights(org_id, from_contact_id, to_contact_id)— Transfer voting rights between contacts
Domain 6: Working Group Enrollment (5 tools)
enroll_in_working_group(contact_id, wg_id, dry_run=True)— Enroll across Groups.io + Discord + GitHub + Calendarleave_working_group(contact_id, wg_id, dry_run=True)— Remove from WG across all systemslist_available_working_groups(contact_id)— List WGs with enrollment statusget_wg_members(wg_id)— Get WG member rostercheck_wg_eligibility(contact_id, wg_id)— Check tier/role eligibility for a WG
Domain 7: Election & Voting Operations (5 tools)
create_election(wg_id, election_type, nomination_start, nomination_end, voting_start, voting_end)— Create WG chair electionvalidate_candidate_eligibility(contact_id, election_id)— Check candidate prerequisitescheck_voter_eligibility(contact_id, election_id)— Check voting contact statusget_election_status(election_id)— Get election timeline, candidates, votesdiagnose_ballot_access(contact_id, election_id)— Diagnose all blockers for ballot access
Domain 8: Press Release Drafting (3 tools)
draft_press_release(org_id, template_id)— Generate press release from template + org dataget_press_release_status(pr_id)— Check approval workflow progresslist_press_release_templates()— List available PR templates
Domain 9: Logo & Brand Validation (3 tools)
validate_logo(file_url)— Validate logo against brand guidelines (SVG, min 1000x1000)get_brand_guidelines()— Retrieve brand specs and requirementsrequest_logo_upload(org_id)— Generate secure upload URL for logo submission
Domain 10: Onboarding Call Scheduling (3 tools)
schedule_onboarding_call(org_id, contact_ids, lf_staff_ids)— Schedule call with contacts and LF staffreschedule_onboarding_call(meeting_id, new_time)— Reschedule an existing callget_onboarding_call_status(org_id)— Check call status (scheduled/pending/done)
Domain 11: Renewal & Engagement Intelligence (5 tools)
get_renewal_status(org_id)— Contract renewal timeline and stageget_engagement_score(org_id)— Calculate engagement score (0-100) with breakdownpredict_churn_risk(org_id)— Predict churn risk (0-100) with contributing factorsget_renewal_dashboard()— Foundation-wide renewal pipeline viewtrigger_renewal_outreach(org_id, dry_run=True)— Generate outreach plan with email template
Domain 12: Orchestration (5 tools)
run_onboarding_checklist(org_id, contact_id, dry_run=True)— Execute full D1-D5 flowget_onboarding_status(org_id, contact_id)— Check progress on each deliverable and stepreconcile_silos(org_id)— Compare SFDC vs Groups.io vs SSO for discrepanciesrun_offboarding_checklist(org_id, contact_email, reason, dry_run=True)— Remove access on departureget_silo_health()— Foundation-wide sync health score
Workflow Patterns
New Member Onboarding (Full D1-D5)
validate_membership_tier→ confirm tier and entitlementsget_compliance_report→ verify sanctions and tax-exempt statuslist_contacts→ review contact rolesprovision_mailing_lists(dry_run) → preview list additions, confirm, then executeprovision_calendar_invites(dry_run) → preview calendar invitesenroll_in_working_group→ enroll in selected WGsschedule_onboarding_call→ book orientation calldraft_press_release→ generate announcementrequest_logo_upload→ get logo upload URLrun_onboarding_checklist(dry_run) → preview full D1-D5, confirm, then executereconcile_silos→ verify everything is in sync
Working Group Enrollment
list_available_working_groups→ show WGs with eligibilitycheck_wg_eligibility→ verify contact can joinenroll_in_working_group(dry_run) → preview multi-system enrollment- Confirm → execute with
dry_run=False get_upcoming_meetings→ show next meetings
Election Management
create_election→ set up WG chair electionvalidate_candidate_eligibility→ check candidate prerequisitescheck_voter_eligibility→ verify voter statusget_election_status→ monitor election progressdiagnose_ballot_access→ troubleshoot access issues
Renewal & Churn Prevention
get_renewal_dashboard→ foundation-wide pipeline viewpredict_churn_risk→ identify at-risk membersget_engagement_score→ understand engagement breakdownget_renewal_status→ check specific org renewal timelinetrigger_renewal_outreach(dry_run) → preview outreach plan
Quarterly Health Check
detect_tier_anomalies→ find access mismatchesremediate_mailing_lists(dry_run) → preview fixesget_silo_health→ overall sync scoreget_renewal_dashboard→ renewal pipeline status
Contact Offboarding
check_mailing_list_membership→ see current subscriptionsrun_offboarding_checklist(dry_run) → preview removals- Confirm with user → execute with
dry_run=False
Silver Member Onboarding (Guided 8-Phase Flow)
Use /silver-onboard for the full conversational flow. Phases:
- Welcome & Identity —
validate_membership_tier→list_contacts→add_contact - LFX Account Setup — Direct to myprofile.lfx.linuxfoundation.org
- Working Group Selection —
list_available_working_groups(7 WGs) →check_wg_eligibility→enroll_in_working_group - Invite Colleagues —
add_contact→provision_mailing_lists→enroll_in_working_group - Events — Present MCP Dev Summit, AGNTCon with discount codes →
provision_calendar_invites - Newsletter & Lists —
provision_mailing_listsfor Silver tier (members-all) - Community Access — Discord invite, GitHub username,
get_upcoming_meetings - Summary & Verification —
get_onboarding_status→check_mailing_list_membership→reconcile_silos
Important Notes
- Sanctions screening is handled by the Descartes integration in Salesforce at membership intake — the MCP server reads that status, it does not run its own screening
- Always show dry_run results to the user before executing write operations
- The server auto-falls back to mock data when backend credentials are not configured
- Mock members include: Hitachi (Gold), Bloomberg (Gold), Natoma (Silver), iProov (Silver), OpenAI (Platinum)
- 7 connectors: Salesforce, Groups.io, Google Calendar, Discord, GitHub, LFX Platform, HubSpot
- Working groups (7): Agentic Commerce, Accuracy & Reliability, Identity & Trust, Observability, Workflows, Governance Risk & Regulatory, Security & Privacy
For detailed provisioning rules and working group definitions, see references/provisioning-rules.md.