# Communication Accounts Status: draft implementation scaffold Slug: `communication-accounts` Communication Accounts is the LogicSRC standard for connecting external social and email identities, delegating scoped access to humans, agents, workflows, and plugins, and auditing every read/write action without exposing raw credentials. ## First-Party Plugins ```txt social-accounts email-accounts ``` - `@logicsrc/plugin-social-accounts` manages social/network accounts such as Mastodon, Bluesky, GitHub, X/Twitter, Reddit, LinkedIn, YouTube, Discord, Telegram, and future ActivityPub/RSS-style adapters. - `@logicsrc/plugin-email-accounts` manages email inboxes and outbound sending identities through IMAP/SMTP, Gmail, Microsoft Graph, ForwardEmail.net, local bridges, and custom providers. Both plugins share contracts from `@logicsrc/account-core`. ## Core Objects ```txt connected_account account_provider account_permission_grant account_policy account_audit_event credential_broker_call email_message_cache social_post_cache ``` The shared account model records account kind, provider, account display metadata, granted scopes, declared capabilities, status, credential reference, ownership scope, and sync timestamps. ## Provider Boundary Provider adapters implement the shared account provider contract: ```txt provider.id provider.kind provider.authMethods provider.capabilities provider.getAuthUrl() provider.completeAuth() provider.refreshCredential() provider.testConnection() provider.revoke() ``` Social providers extend this with profile, draft, publish, media, mentions, comments, and analytics operations. Email providers extend this with search, read, draft, send, reply, forward, archive, label, and delete operations. ## Permissions Shared permissions: ```txt accounts:connect accounts:list accounts:read_metadata accounts:test accounts:revoke accounts:sync accounts:audit:read ``` Social and email permissions use colon-style grant scopes such as `social:post:publish`, `social:mentions:read`, `email:headers:read`, `email:send`, and `email:attachments:read`. Plugin manifest capabilities use the existing LogicSRC dotted capability convention such as `social.post.publish` and `email.headers.read`. ## Policy Gates These actions require policy evaluation by default: ```txt social:post:publish social:post:delete social:dm:read social:dm:send email:attachments:read email:send email:delete ``` Default write behavior is dry-run first, approval required for public publishing and outbound email, and deny for critical risk unless an admin override exists. ## Credential Rules - Raw secrets must never be printed or exposed to agents by default. - OAuth refresh tokens and app passwords must be stored through a credential broker. - Provider calls should execute through a trusted runtime boundary. - Credential access must create audit events. - CLI, API, MCP, TUI, and PWA previews must redact secret-like fields. ## CLI Namespaces ```bash logicsrc accounts providers logicsrc accounts list logicsrc accounts audit logicsrc social providers logicsrc social accounts logicsrc social post --text "Launching today" --dry-run logicsrc email providers logicsrc email accounts logicsrc email send --dry-run ``` The initial scaffold exposes provider listings and dry-run placeholders. Live connect, sync, send, and publish flows require durable credential broker, approval queue, and audit persistence. The [OpenWall proposal](/docs/openwall) builds on these account and grant boundaries for broadcasts and direct messages across verified contact routes. Its receiving policy, audience snapshots and AT Protocol mapping are draft contracts, not added live provider capabilities. ## Storage Deployable database migrations live under `supabase/migrations/`. The communication account scaffold adds: ```txt connected_accounts account_permission_grants account_audit_events email_message_cache social_post_cache ``` ## MVP Order 1. Stabilize `packages/account-core`. 2. Validate account schemas through `packages/validators`. 3. Apply Supabase account migrations. 4. Wire provider and account list commands. 5. Add API read/list/dry-run endpoints and contract tests. 6. Add MCP read-only resources. 7. Add TUI/PWA account status panels. 8. Implement IMAP/SMTP provider behind approval and audit gates. 9. Implement Mastodon, Bluesky, or GitHub social provider behind approval and audit gates. 10. Add Gmail OAuth after credential broker storage and restricted-scope handling are complete.