supabase
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
artifact-aggregator
Create tiered reports (micro/standard/comprehensive) based on task complexity. Tier 1 (200-500 words) for Level 1 tasks, Tier 2 (500-1500 words) for Level 2, Tier 3 (1500-5000 words) for Level 3 epics. Synthesizes agent outputs into concise, scannable reports without duplication. Uses density ove...
Full skill instructions
Synthesize outputs from multiple agents or complex investigations into concise, actionable reports that preserve critical knowledge without duplication or verbosity. Transform scattered findings into structured artifacts that humans actually read and find useful.
Invoke this skill when:
DO NOT use when:
Select appropriate report tier based on orchestration level and task complexity:
Target: 200-500 words, 50-100 lines Use for: Single-agent delegations, simple tasks Time to read: Under 2 minutes
Structure:
# {Task Name}
## What Changed
- {file:line} - {concise change description}
- {file:line} - {concise change description}
## Next Steps
1. {actionable item}
2. {actionable item}
Quality gates:
Example:
# Add Pagination to Tasks Endpoint
## What Changed
- backend/app/api/tasks.py:45 - Added limit/offset query params
- backend/app/api/tasks.py:67 - Return total count in headers
- backend/tests/test_tasks.py:120 - Added pagination tests
## Next Steps
1. Update frontend TasksList to use pagination (frontend/components/TasksList.tsx)
2. Add pagination UI controls (previous/next buttons)
[Total: 82 words]
Target: 500-1500 words, 100-400 lines Use for: Multi-agent orchestrations, full-stack features Time to read: 3-5 minutes
Structure:
# {Feature Name}
## Summary
{2-3 sentences: what, why, status}
## Changes by Domain
### Backend
- {changes with file:line}
### Frontend
- {changes with file:line}
## Integration Points
{How components connect}
## Issues Encountered
{Problems and resolutions}
## Next Steps
1. {actionable with context}
2. {actionable with context}
Quality gates:
Example: See "Example 1: Concise Feature Report" in original Examples section
Target: 1500-5000 words, 400-1000 lines Use for: Epic-level work, long-term investigations, handoff documentation Time to read: 10-15 minutes
Structure:
# {Epic/Investigation Name}
## Executive Summary
{High-level overview for stakeholders}
## Scope & Goals
{What was attempted and why}
## Architecture Overview
{System design, major components}
## Implementation Details
### Phase 1: {Name}
{Detailed changes}
### Phase 2: {Name}
{Detailed changes}
## Technical Decisions
{Key choices and rationale}
## Integration & Dependencies
{How systems connect, external deps}
## Testing & Validation
{Coverage, results, remaining gaps}
## Performance & Scalability
{Benchmarks, bottlenecks, optimizations}
## Issues & Resolutions
{Problems encountered, how solved}
## Migration & Deployment
{Rollout strategy, risks}
## Knowledge Transfer
{What team needs to know}
## Next Steps & Roadmap
{Prioritized actions with estimates}
## Appendix
{Supporting details, full diffs, extended context}
Quality gates:
Example: See ORCHESTRATION-SUMMARY.md from Knowledge System Redesign
Use this decision tree:
What orchestration level?
├─ Level 0 → No report (direct execution)
├─ Level 1 → Tier 1 (Micro Report)
├─ Level 2 → Tier 2 (Standard Report)
└─ Level 3 → Tier 3 (Comprehensive Report)
OR
How many agents?
├─ 0-1 agents → Tier 1
├─ 2-4 agents → Tier 2
└─ 5+ agents → Tier 3
OR
Session duration?
├─ Under 1 hour → Tier 1
├─ 1 hour - 1 day → Tier 2
└─ Multi-day/week → Tier 3
Adapt this flexible structure to context:
# [Feature/Investigation Name]
## Summary
[2-3 sentences: What was done, outcome, status]
## Key Changes
### [Domain 1: e.g., Backend]
- [File:line] - [What changed and why]
- [File:line] - [What changed and why]
### [Domain 2: e.g., Frontend]
- [File:line] - [What changed and why]
## Findings
[Critical discoveries, architectural decisions, non-obvious insights]
- [Finding 1]: [Implication]
- [Finding 2]: [Implication]
## Integration Points
[How components connect, API contracts, shared dependencies]
- [Component A] → [Component B]: [via what]
## Issues & Blockers
[Current problems, workarounds, technical debt]
- [Issue]: [Impact] - [Resolution or next step]
## Next Steps
1. [Actionable task with file/context reference]
2. [Actionable task with file/context reference]
## Appendix (Optional)
[Supporting details, full diffs, extended context - only if needed]
Gather artifacts from all agents:
Collection methods:
Identify redundant information:
Example - Before deduplication:
Backend Agent: "Added User model with email field"
Frontend Agent: "Created UserType with email: string"
Testing Agent: "Verified email field in User model"
After consolidation:
User model (backend/app/models/user.py:24) with email field
└─ TypeScript type generated (frontend/types/user.ts:8)
└─ Validated in 3 tests (test_user_model.py:15,42,58)
Consolidation strategies:
Surface non-obvious insights:
What qualifies as "key finding":
Format:
## Findings
**JWT Implementation**: Used httpOnly cookies (not localStorage) for XSS protection.
Refresh tokens stored in separate cookie with longer expiry (7 days vs 30min access tokens).
**Database Schema**: User.role field added as enum (admin/user/guest). Migration
includes backfill for existing users (defaults to 'user').
**API Contract Change**: All endpoints now return ISO8601 timestamps (breaking change
from Unix timestamps). Frontend types updated, but mobile app needs notification.
Document how components connect:
Integration point types:
Visualization:
## Integration Points
**Authentication Flow**:
POST /auth/login (api/auth.py:28)
↓ JWT token
React LoginForm (frontend/components/Login.tsx:42)
↓ Stores in cookie
Protected routes check via useAuth hook (frontend/hooks/useAuth.ts:18)
**WebSocket Notifications**:
Backend emits: NotificationEvent (websocket.py:56)
→ Frontend listens: useNotifications hook (hooks/useNotifications.ts:24)
→ Updates: NotificationBadge component (components/NotificationBadge.tsx:15)
Convert blockers and TODO comments into concrete tasks:
Transformation:
Agent output: "Password reset not implemented yet"
↓
Next step: "Implement password reset flow:
1. Add POST /auth/reset-password endpoint (backend/app/api/auth.py)
2. Create ResetPasswordForm component (frontend/components/Auth/)
3. Add email sending service integration"
Prioritization:
Apply compression techniques:
Technique 1: File:line format
❌ Verbose: "In the file backend/app/models/user.py, specifically at line 42,
we added a new field called 'role'"
✅ Concise: "Added User.role field (backend/app/models/user.py:42)"
Technique 2: Bullets over paragraphs
❌ Verbose: "The backend agent implemented three endpoints. The first endpoint was
for logging in users. The second endpoint was for logging out. The third endpoint
was for refreshing tokens."
✅ Concise:
- POST /auth/login - authenticate users
- POST /auth/logout - invalidate sessions
- POST /auth/refresh - renew access tokens
Technique 3: Inline context
❌ Verbose: "The NotificationBadge component was created. It shows a count of
unread notifications. It uses the useNotifications hook to get the data."
✅ Concise: "NotificationBadge (components/NotificationBadge.tsx:15) displays
unread count from useNotifications hook"
Technique 4: Drop obvious
❌ Includes obvious: "Created a React component using TypeScript with proper
type definitions and exported it as default"
✅ Drop obvious: "Created LoginForm component (components/Login.tsx)"
[TypeScript, proper types, default export are assumed]
Use case: Full-stack feature implemented by multiple agents
Structure:
# User Authentication Feature
## Summary
JWT-based auth implemented across backend (FastAPI) and frontend (React).
Login/logout functional, password reset pending.
## Key Changes
### Backend (fastapi-backend-expert)
- User.role field added (models/user.py:42)
- JWT service (services/auth.py:18-65)
- Auth endpoints: /login, /logout, /refresh (api/auth.py:28-92)
- 12 tests added (tests/test_auth.py)
### Frontend (React Frontend Expert (F1))
- LoginForm component (components/Login.tsx:15)
- useAuth hook (hooks/useAuth.ts:24)
- Token management (utils/auth.ts:10)
- Protected route HOC (components/ProtectedRoute.tsx:8)
## Integration
POST /auth/login → JWT token → stored in httpOnly cookie → useAuth hook reads
Protected routes use useAuth → if expired, redirect /login
## Next Steps
1. Implement password reset (backend endpoint + email integration)
2. Add "Remember me" option (extend refresh token expiry)
3. Mobile app notification (API timestamp format changed)
Use case: Investigation into codebase architecture or problem
Structure:
# WebSocket Architecture Investigation
## Summary
Analyzed current WebSocket implementation to plan notification feature.
Found existing connection manager, but needs scaling improvements.
## Current State
- WebSocket server: backend/app/websocket.py:42
- Single connection per user (no connection pooling)
- Messages broadcast to all (no room/topic filtering)
## Findings
**Scaling Limitation**: Current design keeps all connections in memory (ConnectionManager dict).
Won't scale beyond ~1000 concurrent users. Need Redis pub/sub for horizontal scaling.
**Message Format**: Custom JSON structure, not standardized. Recommend adopting socket.io
protocol for easier client library integration.
**Error Handling**: Disconnects not properly cleaned up, causing memory leaks
(websocket.py:78 - TODO comment confirms).
## Recommendations
1. **Short-term**: Fix disconnect cleanup (critical, <1hr)
2. **Medium-term**: Add room-based filtering for notifications (1-2hrs)
3. **Long-term**: Migrate to Redis pub/sub + socket.io protocol (1 day)
## Integration Points
Frontend WebSocket client: frontend/hooks/useWebSocket.ts:24
Connects on app mount, auto-reconnects with exponential backoff
Use case: Passing work to another developer
Structure:
# Analysis System Implementation - Handoff
## What's Complete
✅ Provider/Agent models (models/analysis.py:12-89)
✅ AnalysisRun workflow (services/analysis_service.py:45)
✅ API endpoints: /analysis/run, /analysis/status (api/analysis.py:20-124)
✅ React dashboard: RunsTable, StatusBadge (dashboard/components/Analysis/)
## What's Pending
🟡 Proposal voting UI (spec complete, not implemented)
🟡 Background task for auto-retry failed runs (backend/tasks/analysis.py:TODO)
🔴 Performance: Runs query slow for >1000 entries (add index or pagination)
## Key Architectural Decisions
**Why async workflow**: Analysis runs can take 30+ seconds, so TaskIQ background
tasks prevent HTTP timeout. Status polled via /analysis/status endpoint.
**Why separate Proposal model**: Agents generate multiple proposals per run.
Keeping separate allows granular tracking and future proposal reuse.
## How to Continue
**Next priority**: Implement proposal voting
1. Add Vote model (models/analysis.py, follow Proposal pattern)
2. POST /analysis/proposals/{id}/vote endpoint
3. VotingCard component (copy ProposalCard structure)
**Files to read**:
- Architecture doc: docs/architecture/analysis-system.md
- Spec: .artifacts/analysis-system/spec.md
- Example run: seed_analysis_system.py (shows full workflow)
Before finalizing report, validate:
Checklist:
Red flags:
# Real-Time Notifications
## Summary
WebSocket notifications functional. Backend emits events, React displays badge with count.
## Changes
**Backend** (websocket.py:42): NotificationEvent emitter, /ws endpoint
**Frontend**:
- useNotifications hook (hooks/useNotifications.ts:24) - subscribes to ws://localhost:8000/ws
- NotificationBadge (components/NotificationBadge.tsx:15) - displays unread count
## Next
1. Add notification history modal (component + backend storage)
2. Mark-as-read functionality (PATCH /notifications/{id})
[Total: 82 words]
# Task Classification Performance Analysis
## Findings
**Current**: 850ms avg response time (classify endpoint)
**Bottleneck**: Pydantic AI initialization on every request (llm.py:34)
**Root cause**: No model caching. Each request:
1. Loads model weights (400ms)
2. Initializes agent (250ms)
3. Runs classification (200ms)
## Fix
Move model init to app startup (main.py lifespan context):
```python
@asynccontextmanager
async def lifespan(app: FastAPI):
app.state.classifier = await init_classifier() # Once at startup
yield
Expected: 200ms avg (74% improvement)
[Total: 94 words, highly dense]
## Integration with Other Skills
- **parallel-coordinator**: Provides agent outputs to aggregate
- **Task Orchestrator**: Uses aggregator for final reports
- **Docs Expert (D2)**: May refine aggregated content for docs
- **Standalone**: Can aggregate any multi-source information
## Notes
- Prioritize density: every word must earn its place
- File:line references enable quick navigation
- Structure enables scanning (headings, bullets, code blocks)
- No duplication: consolidate overlapping findings
- Actionable next steps > descriptive status
- Target <500 words for typical feature reports
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
Comprehensive guides and best practices for Neon Serverless Postgres, covering setup, connection methods, authentication, and platform APIs.
Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.
A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.
Official skill for integrating Firebase AI Logic (Gemini API) into web applications. Covers setup, multimodal inference, structured output, and security.
Complete Better Auth server and client setup with database adapters, session management, plugins, and security configuration.
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".
Complete Cloudflare platform integration with decision trees for compute, storage, AI, networking, security, and infrastructure-as-code.
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.
Send, read, and manage Gmail messages, drafts, labels, and account settings.
Comprehensive website auditing across 230+ rules in 21 categories including SEO, performance, security, and accessibility.
Shared authentication, CLI syntax, and output formatting patterns for gws Google Workspace commands.
Discover your celebrity doppelgänger with StarByFace!
GeoSpy: Pricing, Features, FAQs, and Alternatives for AI Teams
Detect AI-generated voices to protect against audio fraud.
Ensure Your Content's Originality with AI Plagiarism Checker
Upscale images by 400% without quality loss
Protect your social media from copyright disputes
Accurately Detect AI-Generated Content with TheChecker.AI
Chrome extension that detects and flags AI-generated content