google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
recovery-social-features
Privacy-first social features for recovery apps - sponsors, groups, messaging, friend connections. Use for sponsor/sponsee systems, meeting-based groups, peer support, safe messaging. Activate
Full skill instructions
Build privacy-first social features for addiction recovery apps. These patterns prioritize anonymity, safety, and the unique relationship structures in recovery communities.
✅ USE this skill for:
❌ DO NOT use for:
recovery-community-moderator for content safetyRecovery apps handle sensitive data. Default to maximum privacy, let users opt into visibility.
interface PrivacySettings {
profileVisibility: 'private' | 'friends' | 'community';
showSobrietyDate: boolean;
showProgram: boolean; // AA, NA, CMA, etc.
showLocation: 'none' | 'city' | 'region';
allowMessages: 'none' | 'friends' | 'sponsors' | 'all';
anonymousInGroups: boolean; // Use display name only
}
// Default to most private
const DEFAULT_PRIVACY: PrivacySettings = {
profileVisibility: 'friends',
showSobrietyDate: false,
showProgram: false,
showLocation: 'none',
allowMessages: 'friends',
anonymousInGroups: true,
};
Many users need complete anonymity. Support display names separate from real identity.
interface Profile {
id: string;
// Private - never exposed publicly
email: string;
realName?: string;
// Public-facing identity
displayName: string; // "JohnD" or "GratefulMember"
avatarType: 'initials' | 'icon' | 'custom';
avatarIcon?: string; // Predefined icon set
// Recovery-specific
sobrietyDate?: Date;
programs: ('aa' | 'na' | 'cma' | 'smart' | 'refuge' | 'other')[];
homeGroup?: string; // Primary meeting
}
The sponsor relationship is hierarchical and private. Only the two parties should know about it.
Key concepts:
Hooks provided:
useSponsorInvite() - Generate and accept invite codesuseSponsorRelationships() - List sponsors and sponseesComponents:
GenerateSponsorInvite - Sponsor creates shareable codeAcceptSponsorInvite - Sponsee enters code to connectSponsorDashboard - View all sponsor/sponsee relationshipsSee:
references/sponsor-sponsee.mdfor full implementation
Groups that form organically around meetings. Ephemeral by default but can be made permanent.
Key concepts:
Group Settings:
interface GroupSettings {
name: string;
meetingId?: string; // Link to meeting
visibility: 'public' | 'private' | 'invite';
ephemeral: boolean; // Auto-delete after 24h
maxMembers: number; // Member limit
}
| Visibility | Who Can See | Who Can Join |
|---|---|---|
public | Anyone | Anyone |
private | Members only | Invite only |
invite | Members only | Has invite code |
Hooks provided:
useMeetingGroup() - Create, join, leave groupsComponents:
QuickMeetingGroup - One-tap group creation at meetingsSee:
references/groups.mdfor full implementation
Peer-to-peer connections without hierarchy. Mutual consent required.
Key concepts:
Hooks provided:
useFriendships() - Full friendship management with real-time syncComponents:
FriendRequestButton - Context-aware add/pending/friends statesPendingFriendRequests - Accept/decline UISee:
references/friendships.mdfor full implementation
Recovery-appropriate messaging with crisis detection and safety features.
Key concepts:
Crisis Keywords (trigger resource prompt):
const CRISIS_KEYWORDS = [
// Suicidal ideation
'suicide', 'kill myself', 'want to die', 'end it all',
// Relapse indicators
'relapse', 'using again', 'fell off the wagon',
// Self-harm
'hurt myself', 'cutting', 'self-harm',
];
Best Practices:
Hooks provided:
useMessages() - Real-time message thread with Supabase subscriptionsComponents:
MessageInput - Input with crisis detection overlaySee:
references/messaging.mdfor full implementation
Sharing recovery progress with trusted connections.
Check-In Sharing:
Sobriety Visibility Settings:
| Level | Who Can See | Use Case |
|---|---|---|
private | Only self | Maximum privacy |
sponsors | Self + sponsors | Accountability focus |
friends | Self + sponsors + friends | Peer support |
community | All app users | Public milestone celebrations |
HALT Check-In Data:
interface DailyCheckIn {
date: string;
mood: 1 | 2 | 3 | 4 | 5; // 1=worst, 5=best
halt: {
hungry: boolean;
angry: boolean;
lonely: boolean;
tired: boolean;
};
gratitude?: string;
notes?: string;
}
Components:
ShareCheckIn - Select sponsors to share withSobrietyVisibility - Privacy level pickerSee:
references/accountability.mdfor full implementation
Content moderation and user blocking for safe communities.
Moderation Categories:
| Category | Description | Action |
|---|---|---|
crisis | Suicidal ideation, self-harm | Show resources, don't block |
sourcing | Drug seeking, dealing | Block + flag for review |
harassment | Personal attacks, threats | Block + flag for review |
spam | Promotional content | Block |
explicit | Sexual/graphic content | Block |
Blocking Behavior:
RLS Policy Pattern:
-- Hide content from blocked users
CREATE POLICY "Hide messages from blocked users" ON messages
FOR SELECT USING (
NOT EXISTS (
SELECT 1 FROM friendships
WHERE status = 'blocked'
AND (
(requester_id = auth.uid() AND addressee_id = sender_id)
OR (addressee_id = auth.uid() AND requester_id = sender_id)
)
)
);
Hooks provided:
useContentModeration() - Check content against moderation APIuseBlocking() - Block/unblock users, check block statusSee:
references/moderation.mdfor full implementation
| Feature | Privacy Default | Who Can See |
|---|---|---|
| Profile | Friends only | Configurable |
| Sobriety date | Hidden | Configurable |
| Sponsor relationship | Private | Only the two parties |
| Group membership | Group members | Configurable per group |
| Messages | Participants only | Never public |
| Check-ins | Private | Opt-in sharing |
See supabase-admin/references/social-schema.md for complete Supabase schema including:
Detailed implementations in /references/:
| File | Contents |
|---|---|
sponsor-sponsee.md | useSponsorInvite hook, invite UI components, SponsorDashboard |
groups.md | useMeetingGroup hook, QuickMeetingGroup component |
friendships.md | useFriendships hook with real-time, friend request UI |
messaging.md | useMessages hook, MessageInput with crisis detection |
accountability.md | ShareCheckIn, SobrietyVisibility components |
moderation.md | useContentModeration, useBlocking hooks, RLS policies |
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.