google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
e2e-test-automation
Execute end-to-end tests for Nikita using Telegram MCP, Gmail MCP, Supabase MCP, Chrome DevTools MCP, and gcloud CLI. Use when verifying implementations, testing user journeys, validating integrations, performing regression testing, or after completing any feature implementation. MANDATORY after ...
Full skill instructions
@.claude/shared-imports/constitution.md @.claude/shared-imports/CoD_Σ.md
Execute comprehensive end-to-end tests for Nikita using MCP tools and gcloud CLI. This skill verifies that implementations work correctly in production by:
| Test Scope | MCP Tools Used | Duration |
|---|---|---|
full | All MCP tools + gcloud | 5-10 min |
telegram | Telegram MCP, Supabase MCP | 2-3 min |
portal | Chrome DevTools MCP | 2-3 min |
otp | Gmail MCP, Supabase MCP | 1-2 min |
conversation | Telegram MCP, Supabase MCP | 3-5 min |
Detailed phase-by-phase instructions:
Supporting documentation:
Complete walkthroughs:
CRITICAL: Before running any tests, verify all prerequisites.
# List available MCP tools
MCPSearch query="telegram"
MCPSearch query="gmail"
MCPSearch query="supabase"
MCPSearch query="chrome"
Required servers:
telegram-mcp - For Telegram bot testinggmail - For OTP/email verificationsupabase - For database state verificationchrome-devtools - For portal testing (optional)The Telegram MCP uses the authenticated user's context. Verify by:
mcp__telegram-mcp__get_me
This returns the user profile associated with the Telegram MCP.
Find the chat with the Nikita bot:
mcp__telegram-mcp__list_chats
Look for @Nikita_my_bot or the bot's chat ID.
gcloud run services describe nikita-api --region us-central1 --format='value(status.url)'
Expected: https://nikita-api-1040094048579.us-central1.run.app
Use when: Testing bot responses, conversation flow, command handling.
# Step 1: Find bot chat
mcp__telegram-mcp__list_chats
# Look for Nikita bot
# Step 2: Send test message
mcp__telegram-mcp__send_message chat_id="<bot_chat_id>" text="Hello, testing"
# Step 3: Wait for response (5-10 seconds for LLM)
sleep 10
# Step 4: Get bot responses
mcp__telegram-mcp__get_messages chat_id="<bot_chat_id>" limit=5
Verify:
Use when: Testing registration, login, email verification.
# Step 1: Trigger OTP request (via Telegram /start or portal)
# Step 2: Search for OTP email
mcp__gmail__search_emails query="from:noreply subject:Nikita code" max_results=5
# Step 3: Read latest OTP email
mcp__gmail__read_email id="<email_id>"
# Step 4: Extract OTP code from email body
# Step 5: Verify OTP was used (check Supabase)
mcp__supabase__execute_sql query="SELECT * FROM pending_registrations ORDER BY created_at DESC LIMIT 5"
Verify:
Use when: Verifying data persistence after actions.
-- Check user created
SELECT id, telegram_id, chapter, relationship_score FROM users ORDER BY created_at DESC LIMIT 5;
-- Check conversation logged
SELECT id, user_id, type, created_at FROM conversations ORDER BY created_at DESC LIMIT 5;
-- Check generated_prompts populated
SELECT id, user_id, token_count, generation_time_ms, created_at FROM generated_prompts ORDER BY created_at DESC LIMIT 5;
-- Check engagement state
SELECT * FROM engagement_state ORDER BY updated_at DESC LIMIT 5;
-- Check score history
SELECT * FROM score_history ORDER BY created_at DESC LIMIT 5;
Execute via:
mcp__supabase__execute_sql query="<SQL>"
Use when: Checking for errors, verifying request processing.
# Get recent logs
gcloud run services logs read nikita-api --region us-central1 --limit 100 --format='value(textPayload)'
# Filter for errors
gcloud run services logs read nikita-api --region us-central1 --limit 100 | grep -i error
# Check specific request
gcloud run services logs read nikita-api --region us-central1 --limit 100 | grep -i "user_id"
Verify:
Use when: Testing web portal functionality.
# Step 1: Navigate to portal
mcp__chrome-devtools__navigate_page url="https://your-portal-url.vercel.app"
# Step 2: Take screenshot
mcp__chrome-devtools__take_screenshot
# Step 3: Check for login form
mcp__chrome-devtools__evaluate_script script="document.querySelector('form')?.innerHTML"
# Step 4: Fill and submit form
mcp__chrome-devtools__fill selector="input[name='email']" value="[email protected]"
mcp__chrome-devtools__click selector="button[type='submit']"
After completing tests, generate a structured report:
## E2E Test Report - [DATE]
### Scope: [full/telegram/portal/otp/conversation]
### Test Results
| Test | Status | Evidence |
|------|--------|----------|
| Bot response | PASS/FAIL | [response content] |
| Database persistence | PASS/FAIL | [row count] |
| OTP delivery | PASS/FAIL | [email received] |
| Log analysis | PASS/FAIL | [error count] |
### Issues Found
1. **Issue**: [description]
- **Severity**: P0/P1/P2
- **Evidence**: [logs/screenshots]
- **Recommended Action**: [fix/investigate]
### Metrics
- Total test duration: X min
- Bot response time: X ms
- Database query time: X ms
- Errors in logs: X
### Next Actions
- [ ] File issues for failures
- [ ] Update event-stream.md
- [ ] Deploy fixes if critical
After test completion, update event-stream.md:
[YYYY-MM-DDTHH:MM:SSZ] E2E_TEST: [scope] - [PASS/FAIL] - [summary]
Example:
[2025-12-21T18:30:00Z] E2E_TEST: telegram - PASS - Bot response, DB persistence, no log errors
Capture full error context
Categorize the failure
Create GitHub issue if not trivial:
gh issue create --title "E2E: [scope] test failure" \
--body "## Context\n...\n## Evidence\n...\n## Expected\n..."
Update event-stream.md:
[TIMESTAMP] E2E_FAIL: [scope] - [error type] - [brief description]
| Symptom | Likely Cause | Fix |
|---|---|---|
| No bot response | Cloud Run cold start, rate limit | Retry after 30s |
| 500 errors in logs | Uncaught exception | Check stack trace |
| Empty DB tables | Missing commit, RLS policy | Check session.commit() |
| OTP not received | Resend SMTP config, rate limit | Check Supabase auth logs |
| Chrome page blank | Portal not deployed | Check Vercel status |
This skill auto-activates when:
/implement completes successfully/e2e-test commandfull scope after feature implementationsimplement-and-verify - Runs before E2E testingdebug-issues - Use when E2E reveals bugssdd-orchestrator - Workflow coordinationSkill Version: 1.0.0 Last Updated: 2025-12-21 Change Log:
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.