google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
ci-doctor
Diagnose and fix CI/CD pipeline failures, test errors, GitHub Actions issues, and code scanning alerts. Use when: - CI pipeline fails (red build) - GitHub Actions workflow errors - Test failures in CI (Vitest, Playwright) - TypeScript/lint errors blocking builds - GitHub notifications about fail...
Full skill instructions
Diagnose and fix CI failures fast. Read logs, identify root cause, fix or delegate.
For project structure, read from Docs/context/:
Docs/context/repo-structure.md - File locationsDocs/context/conventions.md - CI/build patterns1. FETCH → Get failure details (gh cli or logs)
2. DIAGNOSE → Identify error category
3. FIX → Apply fix or delegate to specialist skill
4. VERIFY → Run locally to confirm
5. PUSH → Commit and push fix
# Get recent workflow runs
gh run list --limit 5
# Get failed run details
gh run view <run-id>
# Get job logs
gh run view <run-id> --log-failed
# Get PR checks
gh pr checks
If user provides a GitHub URL, extract info with gh:
gh pr view <url> --json statusCheckRollup
gh run view <url>
| Error Pattern | Category | Action |
|---|---|---|
tsc errors, "TS2xxx" | TypeScript | Fix type errors |
biome lint, "lint error" | Lint | Delegate to lint-fixer |
FAIL src/...test.ts | Test failure | Delegate to test-writer or fix |
npm ci failed | Dependency | Check package-lock.json |
types.ts changed | Generated types | Regenerate and commit |
timeout, ETIMEDOUT | Flaky/infra | Retry or increase timeout |
permission denied | Secrets/auth | Check workflow permissions |
| CodeQL alert, code scanning | Security vulnerability | See "Code Scanning Alerts" section |
# Run locally to see all errors
npm run typecheck:ci
# or
npx tsc -p tsconfig.ci.json --noEmit
Fix each error. Common patterns:
_)Delegate: Use the lint-fixer skill
Or quick fix:
npx @biomejs/biome check --write .
npm run test --workspace=apps/raamattu-nyt -- --run <test-file>
If complex, delegate: Use the systematic-debugging skill
If test needs update, delegate: Use the test-writer skill
Supabase types:
# Regenerate (requires SUPABASE_PROJECT_ID and SUPABASE_ACCESS_TOKEN)
npx supabase gen types typescript --project-id "$SUPABASE_PROJECT_ID" > apps/raamattu-nyt/src/integrations/supabase/types.ts
git add apps/raamattu-nyt/src/integrations/supabase/types.ts
git commit -m "Regenerate Supabase types"
OpenAPI types:
npx openapi-typescript ./openapi.yaml -o apps/raamattu-nyt/src/lib/openapi.types.ts
git add apps/raamattu-nyt/src/lib/openapi.types.ts
git commit -m "Regenerate OpenAPI types"
# Clear and reinstall
rm -rf node_modules package-lock.json
npm install
git add package-lock.json
git commit -m "Refresh package-lock.json"
GitHub Code Scanning uses CodeQL to find security vulnerabilities. Access alerts via:
# List all code scanning alerts
gh api repos/{owner}/{repo}/code-scanning/alerts --jq '.[] | {number, state, rule: .rule.id, severity: .rule.security_severity_level, file: .most_recent_instance.location.path, line: .most_recent_instance.location.start_line}'
# Get specific alert details
gh api repos/{owner}/{repo}/code-scanning/alerts/<alert-number>
# List open alerts only
gh api repos/{owner}/{repo}/code-scanning/alerts?state=open
Common CodeQL Alerts and Fixes:
| Alert Type | Fix |
|---|---|
js/xss | Sanitize user input before rendering, use textContent not innerHTML |
js/sql-injection | Use parameterized queries, never concatenate user input |
js/path-injection | Validate/sanitize file paths, use path.join with basename |
js/prototype-pollution | Use Object.create(null) or validate object keys |
js/insecure-randomness | Use crypto.randomUUID() instead of Math.random() |
js/hardcoded-credentials | Move secrets to environment variables |
js/log-injection | Sanitize user input before logging |
js/regex-injection | Escape regex special characters in user input |
Workflow:
gh apiDismissing False Positives:
# Dismiss alert as false positive
gh api -X PATCH repos/{owner}/{repo}/code-scanning/alerts/<number> -f state=dismissed -f dismissed_reason=false_positive -f dismissed_comment="Reason here"
Before pushing, run the same checks CI runs:
# TypeScript
npm run typecheck:ci || npx tsc -p tsconfig.ci.json
# Lint
npx @biomejs/biome lint .
# Build
npm run build
# Tests
npm run test --workspace=apps/raamattu-nyt
git add -A
git commit -m "Fix CI: <brief description>"
git push
Then monitor: gh run watch
This project has these workflows:
| Workflow | File | Triggers | Checks |
|---|---|---|---|
| CI | .github/workflows/ci.yml | PR, push to main | TypeScript, Lint, Build |
| Tests | .github/workflows/tests.yml | PR, push (code changes) | Vitest, Playwright smoke |
| Supabase Sync | .github/workflows/supabase-sync.yml | Various | Type generation |
| Situation | Delegate To |
|---|---|
| Lint/format errors | lint-fixer skill |
| Test needs rewriting | test-writer skill |
| Complex bug in test | systematic-debugging skill |
| Supabase migration issue | supabase-migration-writer skill |
| Type refactoring needed | code-refactoring skill |
# See what's failing
gh pr checks
gh run list --limit 3
# Get logs for failed run
gh run view <id> --log-failed
# Re-run failed jobs
gh run rerun <id> --failed
# Watch current run
gh run watch
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.