shmakk 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/package.json +6 -3
- package/scripts/import-skills.js +536 -0
- package/scripts/install-skills.js +64 -0
- package/skills/ai-elements.md +482 -0
- package/skills/architecture.md +151 -0
- package/skills/backend-adapter-aws-lambda.md +204 -0
- package/skills/backend-adapter-express.md +177 -0
- package/skills/backend-adapter-fastify.md +222 -0
- package/skills/backend-adapter-fetch.md +200 -0
- package/skills/backend-api-docs.md +22 -0
- package/skills/backend-aspire.md +232 -0
- package/skills/backend-aspnet-core.md +62 -0
- package/skills/backend-build-chatgpt-app.md +321 -0
- package/skills/backend-build-mcp-app.md +393 -0
- package/skills/backend-build-mcp-server.md +222 -0
- package/skills/backend-build-mcpb.md +200 -0
- package/skills/backend-building-ai-agent-on-cloudflare.md +401 -0
- package/skills/backend-caching.md +206 -0
- package/skills/backend-chatgpt-app-submission.md +157 -0
- package/skills/backend-chatgpt-apps.md +321 -0
- package/skills/backend-client-setup.md +318 -0
- package/skills/backend-containerize-aspnet-framework.md +455 -0
- package/skills/backend-create-spring-boot-java-project.md +164 -0
- package/skills/backend-create-spring-boot-kotlin-project.md +148 -0
- package/skills/backend-csharp-async.md +50 -0
- package/skills/backend-csharp-docs.md +63 -0
- package/skills/backend-csharp-mcp-server-generator.md +60 -0
- package/skills/backend-dotenv.md +201 -0
- package/skills/backend-dotenvx.md +119 -0
- package/skills/backend-env-vars.md +259 -0
- package/skills/backend-error-handling.md +254 -0
- package/skills/backend-fastapi.md +437 -0
- package/skills/backend-go-mcp-server-generator.md +335 -0
- package/skills/backend-java-mcp-server-generator.md +757 -0
- package/skills/backend-kotlin-mcp-server-generator.md +450 -0
- package/skills/backend-middlewares.md +243 -0
- package/skills/backend-multi-stage-dockerfile.md +47 -0
- package/skills/backend-nestjs.md +192 -0
- package/skills/backend-next-forge.md +375 -0
- package/skills/backend-nextjs.md +746 -0
- package/skills/backend-openapi-to-application-code.md +113 -0
- package/skills/backend-php-mcp-server-generator.md +523 -0
- package/skills/backend-python-mcp-server-generator.md +106 -0
- package/skills/backend-routing-middleware.md +251 -0
- package/skills/backend-ruby-mcp-server-generator.md +661 -0
- package/skills/backend-rust-mcp-server-generator.md +578 -0
- package/skills/backend-semantic-kernel.md +57 -0
- package/skills/backend-server-setup.md +379 -0
- package/skills/backend-server-side-calls.md +250 -0
- package/skills/backend-subscriptions.md +407 -0
- package/skills/backend-swift-mcp-server-generator.md +670 -0
- package/skills/backend-trpc-router.md +152 -0
- package/skills/backend-typescript-mcp-server-generator.md +91 -0
- package/skills/backend-validators.md +229 -0
- package/skills/backend.md +76 -0
- package/skills/backup.md +165 -0
- package/skills/budget.md +140 -0
- package/skills/business-gtm-0-to-1-launch.md +322 -0
- package/skills/business-gtm-operating-cadence.md +421 -0
- package/skills/business-gtm-positioning-strategy.md +439 -0
- package/skills/business-gtm-product-led-growth.md +340 -0
- package/skills/calendar.md +95 -0
- package/skills/code-review.md +130 -0
- package/skills/compliance.md +168 -0
- package/skills/contracts.md +130 -0
- package/skills/daily-job-run.md +46 -0
- package/skills/daily-webdesign.md +187 -0
- package/skills/database-bigquery-pipeline-audit.md +130 -0
- package/skills/database-cosmosdb-datamodeling.md +1046 -0
- package/skills/database-durable-objects.md +187 -0
- package/skills/database-ef-core.md +76 -0
- package/skills/database-fabric-lakehouse.md +107 -0
- package/skills/database-neon-postgres-egress-optimizer.md +213 -0
- package/skills/database-neon-postgres.md +218 -0
- package/skills/database-postgresql-code-review.md +213 -0
- package/skills/database-postgresql-optimization.md +405 -0
- package/skills/database-sql-code-review.md +302 -0
- package/skills/database-sql-optimization.md +297 -0
- package/skills/dependency-audit.md +165 -0
- package/skills/design-kami-landing.md +234 -0
- package/skills/design.md +221 -0
- package/skills/dev-acquire-codebase-knowledge.md +175 -0
- package/skills/dev-add-educational-comments.md +129 -0
- package/skills/dev-add-model-descriptions.md +74 -0
- package/skills/dev-adr-review.md +56 -0
- package/skills/dev-boost-prompt.md +26 -0
- package/skills/dev-build-run-debug.md +130 -0
- package/skills/dev-chunk.md +49 -0
- package/skills/dev-claude-md-improver.md +180 -0
- package/skills/dev-code-exemplars-blueprint-generator.md +127 -0
- package/skills/dev-code-tour.md +434 -0
- package/skills/dev-comment-code-generate-a-tutorial.md +27 -0
- package/skills/dev-commit.md +81 -0
- package/skills/dev-context-map.md +53 -0
- package/skills/dev-conventional-commit.md +73 -0
- package/skills/dev-create-architectural-decision-record.md +98 -0
- package/skills/dev-create-draft-pr.md +17 -0
- package/skills/dev-create-pr.md +17 -0
- package/skills/dev-create-readme.md +22 -0
- package/skills/dev-csharp-mstest.md +479 -0
- package/skills/dev-csharp-nunit.md +72 -0
- package/skills/dev-csharp-tunit.md +101 -0
- package/skills/dev-csharp-xunit.md +69 -0
- package/skills/dev-debug-failing-test.md +90 -0
- package/skills/dev-diff-analyze.md +32 -0
- package/skills/dev-diffs.md +24 -0
- package/skills/dev-dotnet-best-practices.md +86 -0
- package/skills/dev-dotnet-design-pattern-review.md +43 -0
- package/skills/dev-dotnet-timezone.md +110 -0
- package/skills/dev-dotnet-upgrade.md +117 -0
- package/skills/dev-doublecheck.md +278 -0
- package/skills/dev-explain-error.md +15 -0
- package/skills/dev-finding-discovery.md +164 -0
- package/skills/dev-fix-finding.md +111 -0
- package/skills/dev-full-file-edit.md +25 -0
- package/skills/dev-git-commit.md +125 -0
- package/skills/dev-git-flow-branch-creator.md +293 -0
- package/skills/dev-git-workflow.md +46 -0
- package/skills/dev-github-automation.md +64 -0
- package/skills/dev-github-code-review.md +1140 -0
- package/skills/dev-github-issues.md +202 -0
- package/skills/dev-gpt-5-4-prompting.md +55 -0
- package/skills/dev-investigation-mode.md +277 -0
- package/skills/dev-java-add-graalvm-native-image-support.md +450 -0
- package/skills/dev-java-docs.md +24 -0
- package/skills/dev-java-refactoring-extract-method.md +105 -0
- package/skills/dev-java-refactoring-remove-parameter.md +85 -0
- package/skills/dev-merge.md +73 -0
- package/skills/dev-migrate-create.md +36 -0
- package/skills/dev-migrate-validate.md +36 -0
- package/skills/dev-my-issues.md +9 -0
- package/skills/dev-my-pull-requests.md +15 -0
- package/skills/dev-planning-oracle-to-postgres-migration-integration-testing.md +45 -0
- package/skills/dev-playwright-generate-test.md +18 -0
- package/skills/dev-playwright.md +148 -0
- package/skills/dev-prompt-builder.md +142 -0
- package/skills/dev-pytest-coverage.md +29 -0
- package/skills/dev-python-manager-discovery.md +330 -0
- package/skills/dev-python-pypi-package-builder.md +445 -0
- package/skills/dev-readme-blueprint-generator.md +79 -0
- package/skills/dev-refactor-method-complexity-reduce.md +99 -0
- package/skills/dev-refactor-plan.md +66 -0
- package/skills/dev-refactor.md +646 -0
- package/skills/dev-review-and-refactor.md +16 -0
- package/skills/dev-reviewing-oracle-to-postgres-migration.md +68 -0
- package/skills/dev-ruff-recursive-fix.md +201 -0
- package/skills/dev-run-e2e-tests.md +126 -0
- package/skills/dev-run-pre-commit-checks.md +133 -0
- package/skills/dev-run-smoke-tests.md +127 -0
- package/skills/dev-scaffolding-oracle-to-postgres-migration-test-project.md +55 -0
- package/skills/dev-spring-boot-testing.md +190 -0
- package/skills/dev-sync-upstream.md +32 -0
- package/skills/dev-sync.md +74 -0
- package/skills/dev-tdd-workflow.md +23 -0
- package/skills/dev-terraform-azurerm-set-diff-analyzer.md +49 -0
- package/skills/dev-test-driven-development.md +372 -0
- package/skills/dev-test-gaps.md +18 -0
- package/skills/dev-test-triage.md +55 -0
- package/skills/dev-typer.md +267 -0
- package/skills/dev-typescript-setup.md +25 -0
- package/skills/dev-unified-diff-edit.md +16 -0
- package/skills/dev-unit-test-vue-pinia.md +198 -0
- package/skills/dev-using-git-worktrees.md +216 -0
- package/skills/dev-validation.md +99 -0
- package/skills/dev-verification.md +168 -0
- package/skills/dev-webapp-testing.md +134 -0
- package/skills/dev-write-coding-standards-from-file.md +317 -0
- package/skills/dev-write-tests.md +16 -0
- package/skills/devops-appinsights-instrumentation.md +49 -0
- package/skills/devops-az-cost-optimize.md +306 -0
- package/skills/devops-chronicle.md +154 -0
- package/skills/devops-deployments-cicd.md +331 -0
- package/skills/devops-devops-rollout-plan.md +118 -0
- package/skills/devops-geistdocs.md +276 -0
- package/skills/devops-observability.md +774 -0
- package/skills/devops-observe-metrics.md +35 -0
- package/skills/devops-observe-trace.md +30 -0
- package/skills/devops-phoenix-cli.md +163 -0
- package/skills/devops-phoenix-tracing.md +140 -0
- package/skills/devops-publish-to-pages.md +108 -0
- package/skills/devops-telemetry.md +87 -0
- package/skills/devops-update-avm-modules-in-bicep.md +61 -0
- package/skills/devops.md +81 -0
- package/skills/diagrams-canvas.md +204 -0
- package/skills/diagrams-draw-io-diagram-generator.md +463 -0
- package/skills/diagrams-excalidraw-diagram-generator.md +614 -0
- package/skills/diagrams-graphify.md +1277 -0
- package/skills/docs-bear-notes.md +108 -0
- package/skills/docs-create-llms.md +211 -0
- package/skills/docs-doc-gen.md +20 -0
- package/skills/docs-documentation-writer.md +46 -0
- package/skills/docs-llm-config.md +33 -0
- package/skills/docs-mkdocs-translations.md +109 -0
- package/skills/docs-obsidian-vault-maintainer.md +14 -0
- package/skills/docs-obsidian.md +82 -0
- package/skills/docs-prose.md +324 -0
- package/skills/docs-update-llms.md +217 -0
- package/skills/docs-update-markdown-file-index.md +77 -0
- package/skills/docs-wiki-maintainer.md +20 -0
- package/skills/documents.md +120 -0
- package/skills/email.md +113 -0
- package/skills/expenses.md +140 -0
- package/skills/file-ops.md +149 -0
- package/skills/files-convert-plaintext-to-md.md +363 -0
- package/skills/files-doc.md +81 -0
- package/skills/files-docx.md +594 -0
- package/skills/files-markdown-to-html.md +917 -0
- package/skills/files-nano-pdf.md +39 -0
- package/skills/files-pdf.md +315 -0
- package/skills/files-pdftk-server.md +163 -0
- package/skills/files-pptx-html-fidelity-audit.md +255 -0
- package/skills/files-pptx.md +231 -0
- package/skills/files-xlsx.md +301 -0
- package/skills/find-jobs.md +78 -0
- package/skills/format-conversion.md +157 -0
- package/skills/frontend-ai-elements.md +483 -0
- package/skills/frontend-ai-gateway.md +563 -0
- package/skills/frontend-ai-generation-persistence.md +242 -0
- package/skills/frontend-ai-sdk.md +799 -0
- package/skills/frontend-ai-visibility.md +127 -0
- package/skills/frontend-angular-developer.md +130 -0
- package/skills/frontend-aspnet-minimal-api-openapi.md +42 -0
- package/skills/frontend-bencium-innovative-ux-designer.md +719 -0
- package/skills/frontend-chat-sdk.md +666 -0
- package/skills/frontend-chrome-devtools.md +98 -0
- package/skills/frontend-frontend-app-builder.md +186 -0
- package/skills/frontend-frontend-design.md +43 -0
- package/skills/frontend-frontend-testing-debugging.md +143 -0
- package/skills/frontend-gsap-framer-scroll-animation.md +152 -0
- package/skills/frontend-internal-linking.md +109 -0
- package/skills/frontend-json-render.md +335 -0
- package/skills/frontend-keyword-clustering.md +118 -0
- package/skills/frontend-next-intl-add-language.md +20 -0
- package/skills/frontend-on-page-seo.md +112 -0
- package/skills/frontend-premium-frontend-ui.md +114 -0
- package/skills/frontend-react-best-practices.md +143 -0
- package/skills/frontend-schema-markup.md +160 -0
- package/skills/frontend-seo-audit.md +110 -0
- package/skills/frontend-swr.md +215 -0
- package/skills/frontend-technical-seo.md +162 -0
- package/skills/frontend-use-dom.md +418 -0
- package/skills/frontend-web-coder.md +564 -0
- package/skills/frontend-web-design-reviewer.md +369 -0
- package/skills/frontend-web-perf.md +202 -0
- package/skills/frontend.md +125 -0
- package/skills/general-adapter-standalone.md +199 -0
- package/skills/general-auth.md +356 -0
- package/skills/general-containerize-aspnetcore.md +393 -0
- package/skills/general-create-technical-spike.md +231 -0
- package/skills/general-cron-jobs.md +72 -0
- package/skills/general-ddd-aggregate.md +52 -0
- package/skills/general-ddd-context.md +46 -0
- package/skills/general-ddd-validate.md +51 -0
- package/skills/general-dependency-check.md +26 -0
- package/skills/general-email-marketing.md +86 -0
- package/skills/general-healthcheck.md +246 -0
- package/skills/general-import-infrastructure-as-code.md +368 -0
- package/skills/general-init.md +49 -0
- package/skills/general-java-junit.md +64 -0
- package/skills/general-java-springboot.md +66 -0
- package/skills/general-javascript-typescript-jest.md +45 -0
- package/skills/general-kotlin-springboot.md +71 -0
- package/skills/general-make-repo-contribution.md +91 -0
- package/skills/general-market-research.md +78 -0
- package/skills/general-marketplace.md +468 -0
- package/skills/general-model-recommendation.md +673 -0
- package/skills/general-payments.md +352 -0
- package/skills/general-quality-playbook.md +480 -0
- package/skills/general-run-integration-tests.md +113 -0
- package/skills/general-superjson.md +274 -0
- package/skills/general-swiftpm-macos.md +51 -0
- package/skills/general-threat-model.md +61 -0
- package/skills/invoices.md +167 -0
- package/skills/licenses.md +159 -0
- package/skills/logs.md +156 -0
- package/skills/marketing.md +139 -0
- package/skills/media-image-manipulation-image-magick.md +253 -0
- package/skills/media-imagegen.md +357 -0
- package/skills/media-openai-whisper-api.md +63 -0
- package/skills/media-openai-whisper.md +39 -0
- package/skills/media-peekaboo.md +191 -0
- package/skills/media-screenshot.md +268 -0
- package/skills/media-speech.md +145 -0
- package/skills/media-transcribe.md +82 -0
- package/skills/media-video-frames.md +47 -0
- package/skills/mobile-android-emulator-qa.md +81 -0
- package/skills/mobile-android-performance.md +280 -0
- package/skills/mobile-building-mcp-server-on-cloudflare.md +267 -0
- package/skills/mobile-building-native-ui.md +322 -0
- package/skills/mobile-expo-api-routes.md +369 -0
- package/skills/mobile-expo-cicd-workflows.md +92 -0
- package/skills/mobile-expo-deployment.md +191 -0
- package/skills/mobile-expo-dev-client.md +165 -0
- package/skills/mobile-expo-module.md +177 -0
- package/skills/mobile-expo-tailwind-setup.md +481 -0
- package/skills/mobile-expo-ui-jetpack-compose.md +41 -0
- package/skills/mobile-expo-ui-swift-ui.md +40 -0
- package/skills/mobile-ios-app-intents.md +78 -0
- package/skills/mobile-ios-debugger-agent.md +52 -0
- package/skills/mobile-ios-ettrace-performance.md +198 -0
- package/skills/mobile-ios-memgraph-leaks.md +77 -0
- package/skills/mobile-native-data-fetching.md +508 -0
- package/skills/mobile-packaging-notarization.md +48 -0
- package/skills/mobile-react-native-architecture.md +672 -0
- package/skills/mobile-react-native-mobile-design.md +438 -0
- package/skills/mobile-signing-entitlements.md +59 -0
- package/skills/mobile-swiftui-liquid-glass.md +91 -0
- package/skills/mobile-swiftui-patterns.md +210 -0
- package/skills/mobile-swiftui-performance-audit.md +108 -0
- package/skills/mobile-swiftui-ui-patterns.md +97 -0
- package/skills/mobile-swiftui-view-refactor.md +204 -0
- package/skills/mobile-upgrading-expo.md +134 -0
- package/skills/mobile.md +183 -0
- package/skills/notes.md +106 -0
- package/skills/planning-adr-create.md +62 -0
- package/skills/planning-adr-index.md +67 -0
- package/skills/planning-architecture-blueprint-generator.md +323 -0
- package/skills/planning-brainstorming.md +165 -0
- package/skills/planning-breakdown-epic-arch.md +67 -0
- package/skills/planning-breakdown-epic-pm.md +59 -0
- package/skills/planning-breakdown-feature-implementation.md +129 -0
- package/skills/planning-breakdown-feature-prd.md +62 -0
- package/skills/planning-breakdown-plan.md +510 -0
- package/skills/planning-breakdown-test.md +366 -0
- package/skills/planning-cloud-design-patterns.md +63 -0
- package/skills/planning-content-brief.md +128 -0
- package/skills/planning-content-strategy.md +138 -0
- package/skills/planning-content-translation.md +143 -0
- package/skills/planning-create-github-action-workflow-specification.md +277 -0
- package/skills/planning-create-github-issues-feature-from-implementation-plan.md +29 -0
- package/skills/planning-create-github-issues-for-unmet-specification-requirements.md +36 -0
- package/skills/planning-create-github-pull-request-from-specification.md +25 -0
- package/skills/planning-create-implementation-plan.md +158 -0
- package/skills/planning-create-specification.md +128 -0
- package/skills/planning-first-ask.md +31 -0
- package/skills/planning-folder-structure-blueprint-generator.md +406 -0
- package/skills/planning-gen-specs-as-issues.md +166 -0
- package/skills/planning-generate-snapshot.md +144 -0
- package/skills/planning-generate-status-report.md +336 -0
- package/skills/planning-metric-pack-designer.md +27 -0
- package/skills/planning-pm-spec.md +53 -0
- package/skills/planning-prd.md +144 -0
- package/skills/planning-project-assessment.md +182 -0
- package/skills/planning-project-setup-info-local.md +128 -0
- package/skills/planning-project-workflow-analysis-blueprint-generator.md +294 -0
- package/skills/planning-service-oriented-architecture.md +248 -0
- package/skills/planning-spec-to-backlog.md +544 -0
- package/skills/planning-technology-stack-blueprint-generator.md +243 -0
- package/skills/planning-update-implementation-plan.md +158 -0
- package/skills/planning-update-specification.md +128 -0
- package/skills/planning-what-context-needed.md +40 -0
- package/skills/planning-writing-plans.md +153 -0
- package/skills/prepare-application.md +81 -0
- package/skills/productivity-apple-notes.md +78 -0
- package/skills/productivity-apple-reminders.md +119 -0
- package/skills/productivity-capture-tasks-from-meeting-notes.md +680 -0
- package/skills/productivity-daily-prep.md +156 -0
- package/skills/productivity-email-drafter.md +101 -0
- package/skills/productivity-hr-onboarding.md +53 -0
- package/skills/productivity-things-mac.md +87 -0
- package/skills/productivity-update.md +169 -0
- package/skills/reminders.md +109 -0
- package/skills/research-dossier-collect.md +71 -0
- package/skills/research-kg-extract.md +37 -0
- package/skills/research-openai-docs.md +89 -0
- package/skills/research-research-add-items.md +31 -0
- package/skills/research-research-report.md +94 -0
- package/skills/research-research-synthesize.md +63 -0
- package/skills/research-summarize.md +88 -0
- package/skills/research-transformers-js.md +635 -0
- package/skills/research.md +119 -0
- package/skills/security-ai-prompt-engineering-safety-review.md +231 -0
- package/skills/security-attack-path-analysis.md +182 -0
- package/skills/security-gdpr-compliant.md +284 -0
- package/skills/security-mcp-security-audit.md +279 -0
- package/skills/security-pii-detect.md +31 -0
- package/skills/security-secret-scanning.md +243 -0
- package/skills/security-security-best-practices.md +87 -0
- package/skills/security-security-ownership-map.md +207 -0
- package/skills/security-security-review.md +169 -0
- package/skills/security-security-scan.md +138 -0
- package/skills/security-security-threat-model.md +82 -0
- package/skills/security-threat-model-analyst.md +76 -0
- package/skills/sysmon.md +181 -0
- package/skills/system-arch-linux-triage.md +32 -0
- package/skills/system-centos-linux-triage.md +32 -0
- package/skills/system-debian-linux-triage.md +32 -0
- package/skills/system-fedora-linux-triage.md +32 -0
- package/skills/system-geofeed-tuner.md +865 -0
- package/skills/system-iot-anomalies.md +15 -0
- package/skills/system-iot-firmware.md +16 -0
- package/skills/system-iot-fleet.md +14 -0
- package/skills/system-iot-register.md +19 -0
- package/skills/system-iot-witness-verify.md +15 -0
- package/skills/system-tmux.md +171 -0
- package/skills/system-window-management.md +228 -0
- package/skills/task-management.md +90 -0
- package/skills/tasks.md +102 -0
- package/skills/test-coverage.md +188 -0
- package/skills/ux-ui.md +128 -0
- package/skills/web.md +186 -0
- package/skills/workflow-act-on-feedback.md +15 -0
- package/skills/workflow-automate-this.md +245 -0
- package/skills/workflow-autoresearch.md +276 -0
- package/skills/workflow-coding-agent.md +317 -0
- package/skills/workflow-deep-research.md +44 -0
- package/skills/workflow-dispatching-parallel-agents.md +183 -0
- package/skills/workflow-eval-driven-dev.md +148 -0
- package/skills/workflow-executing-plans.md +71 -0
- package/skills/workflow-mentoring-juniors.md +311 -0
- package/skills/workflow-receiving-code-review.md +214 -0
- package/skills/workflow-repo-story-time.md +155 -0
- package/skills/workflow-requesting-code-review.md +104 -0
- package/skills/workflow-session-report.md +43 -0
- package/skills/workflow-structured-autonomy-generate.md +126 -0
- package/skills/workflow-subagent-driven-development.md +280 -0
- package/skills/writing.md +106 -0
- package/src/agent.js +0 -0
- package/src/browser.js +297 -0
- package/src/cli.js +25 -4
- package/src/code-reviewer.js +119 -0
- package/src/completions.js +1 -1
- package/src/control.js +222 -30
- package/src/coordinator.js +303 -0
- package/src/correction.js +29 -8
- package/src/edit-tracker.js +21 -0
- package/src/edit-viewer.js +414 -0
- package/src/endpoints.js +64 -15
- package/src/index.js +45 -11
- package/src/llm.js +86 -2
- package/src/mcp-client.js +416 -0
- package/src/memory.js +182 -0
- package/src/planner.js +216 -0
- package/src/rules.js +90 -0
- package/src/self-commands.js +757 -0
- package/src/services/voice.js +10 -7
- package/src/session-search.js +427 -0
- package/src/session.js +487 -99
- package/src/shmakk-server.js +91 -0
- package/src/skills.js +410 -3
- package/src/subagent.js +4 -1
- package/src/system-prompt.js +13 -5
- package/src/task-file.js +114 -0
- package/src/taskClassifier.js +246 -0
- package/src/team.js +752 -0
- package/src/tools.js +142 -21
- package/src/web.js +35 -5
- package/src/workflows.js +261 -0
- package/src/workspace-index.js +25 -6
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-design-reviewer
|
|
3
|
+
description: 'This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.'
|
|
4
|
+
category: frontend
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Web Design Reviewer
|
|
8
|
+
|
|
9
|
+
This skill enables visual inspection and validation of website design quality, identifying and fixing issues at the source code level.
|
|
10
|
+
|
|
11
|
+
## Scope of Application
|
|
12
|
+
|
|
13
|
+
- Static sites (HTML/CSS/JS)
|
|
14
|
+
- SPA frameworks such as React / Vue / Angular / Svelte
|
|
15
|
+
- Full-stack frameworks such as Next.js / Nuxt / SvelteKit
|
|
16
|
+
- CMS platforms such as WordPress / Drupal
|
|
17
|
+
- Any other web application
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
### Required
|
|
22
|
+
|
|
23
|
+
1. **Target website must be running**
|
|
24
|
+
- Local development server (e.g., `http://localhost:3000`)
|
|
25
|
+
- Staging environment
|
|
26
|
+
- Production environment (for read-only reviews)
|
|
27
|
+
|
|
28
|
+
2. **Browser automation must be available**
|
|
29
|
+
- Screenshot capture
|
|
30
|
+
- Page navigation
|
|
31
|
+
- DOM information retrieval
|
|
32
|
+
|
|
33
|
+
3. **Access to source code (when making fixes)**
|
|
34
|
+
- Project must exist within the workspace
|
|
35
|
+
|
|
36
|
+
## Workflow Overview
|
|
37
|
+
|
|
38
|
+
```mermaid
|
|
39
|
+
flowchart TD
|
|
40
|
+
A[Step 1: Information Gathering] --> B[Step 2: Visual Inspection]
|
|
41
|
+
B --> C[Step 3: Issue Fixing]
|
|
42
|
+
C --> D[Step 4: Re-verification]
|
|
43
|
+
D --> E{Issues Remaining?}
|
|
44
|
+
E -->|Yes| B
|
|
45
|
+
E -->|No| F[Completion Report]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Step 1: Information Gathering Phase
|
|
51
|
+
|
|
52
|
+
### 1.1 URL Confirmation
|
|
53
|
+
|
|
54
|
+
If the URL is not provided, ask the user:
|
|
55
|
+
|
|
56
|
+
> Please provide the URL of the website to review (e.g., `http://localhost:3000`)
|
|
57
|
+
|
|
58
|
+
### 1.2 Understanding Project Structure
|
|
59
|
+
|
|
60
|
+
When making fixes, gather the following information:
|
|
61
|
+
|
|
62
|
+
| Item | Example Question |
|
|
63
|
+
|------|------------------|
|
|
64
|
+
| Framework | Are you using React / Vue / Next.js, etc.? |
|
|
65
|
+
| Styling Method | CSS / SCSS / Tailwind / CSS-in-JS, etc. |
|
|
66
|
+
| Source Location | Where are style files and components located? |
|
|
67
|
+
| Review Scope | Specific pages only or entire site? |
|
|
68
|
+
|
|
69
|
+
### 1.3 Automatic Project Detection
|
|
70
|
+
|
|
71
|
+
Attempt automatic detection from files in the workspace:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Detection targets:
|
|
75
|
+
├── package.json → Framework and dependencies
|
|
76
|
+
├── tsconfig.json → TypeScript usage
|
|
77
|
+
├── tailwind.config → Tailwind CSS
|
|
78
|
+
├── next.config → Next.js
|
|
79
|
+
├── vite.config → Vite
|
|
80
|
+
├── nuxt.config → Nuxt
|
|
81
|
+
└── src/ or app/ → Source directory
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 1.4 Identifying Styling Method
|
|
85
|
+
|
|
86
|
+
| Method | Detection | Edit Target |
|
|
87
|
+
|--------|-----------|-------------|
|
|
88
|
+
| Pure CSS | `*.css` files | Global CSS or component CSS |
|
|
89
|
+
| SCSS/Sass | `*.scss`, `*.sass` | SCSS files |
|
|
90
|
+
| CSS Modules | `*.module.css` | Module CSS files |
|
|
91
|
+
| Tailwind CSS | `tailwind.config.*` | className in components |
|
|
92
|
+
| styled-components | `styled.` in code | JS/TS files |
|
|
93
|
+
| Emotion | `@emotion/` imports | JS/TS files |
|
|
94
|
+
| CSS-in-JS (other) | Inline styles | JS/TS files |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Step 2: Visual Inspection Phase
|
|
99
|
+
|
|
100
|
+
### 2.1 Page Traversal
|
|
101
|
+
|
|
102
|
+
1. Navigate to the specified URL
|
|
103
|
+
2. Capture screenshots
|
|
104
|
+
3. Retrieve DOM structure/snapshot (if possible)
|
|
105
|
+
4. If additional pages exist, traverse through navigation
|
|
106
|
+
|
|
107
|
+
### 2.2 Inspection Items
|
|
108
|
+
|
|
109
|
+
#### Layout Issues
|
|
110
|
+
|
|
111
|
+
| Issue | Description | Severity |
|
|
112
|
+
|-------|-------------|----------|
|
|
113
|
+
| Element Overflow | Content overflows from parent element or viewport | High |
|
|
114
|
+
| Element Overlap | Unintended overlapping of elements | High |
|
|
115
|
+
| Alignment Issues | Grid or flex alignment problems | Medium |
|
|
116
|
+
| Inconsistent Spacing | Padding/margin inconsistencies | Medium |
|
|
117
|
+
| Text Clipping | Long text not handled properly | Medium |
|
|
118
|
+
|
|
119
|
+
#### Responsive Issues
|
|
120
|
+
|
|
121
|
+
| Issue | Description | Severity |
|
|
122
|
+
|-------|-------------|----------|
|
|
123
|
+
| Non-mobile Friendly | Layout breaks on small screens | High |
|
|
124
|
+
| Breakpoint Issues | Unnatural transitions when screen size changes | Medium |
|
|
125
|
+
| Touch Targets | Buttons too small on mobile | Medium |
|
|
126
|
+
|
|
127
|
+
#### Accessibility Issues
|
|
128
|
+
|
|
129
|
+
| Issue | Description | Severity |
|
|
130
|
+
|-------|-------------|----------|
|
|
131
|
+
| Insufficient Contrast | Low contrast ratio between text and background | High |
|
|
132
|
+
| No Focus State | Cannot determine state during keyboard navigation | High |
|
|
133
|
+
| Missing alt Text | No alternative text for images | Medium |
|
|
134
|
+
|
|
135
|
+
#### Visual Consistency
|
|
136
|
+
|
|
137
|
+
| Issue | Description | Severity |
|
|
138
|
+
|-------|-------------|----------|
|
|
139
|
+
| Font Inconsistency | Mixed font families | Medium |
|
|
140
|
+
| Color Inconsistency | Non-unified brand colors | Medium |
|
|
141
|
+
| Spacing Inconsistency | Non-uniform spacing between similar elements | Low |
|
|
142
|
+
|
|
143
|
+
### 2.3 Viewport Testing (Responsive)
|
|
144
|
+
|
|
145
|
+
Test at the following viewports:
|
|
146
|
+
|
|
147
|
+
| Name | Width | Representative Device |
|
|
148
|
+
|------|-------|----------------------|
|
|
149
|
+
| Mobile | 375px | iPhone SE/12 mini |
|
|
150
|
+
| Tablet | 768px | iPad |
|
|
151
|
+
| Desktop | 1280px | Standard PC |
|
|
152
|
+
| Wide | 1920px | Large display |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Step 3: Issue Fixing Phase
|
|
157
|
+
|
|
158
|
+
### 3.1 Issue Prioritization
|
|
159
|
+
|
|
160
|
+
```mermaid
|
|
161
|
+
block-beta
|
|
162
|
+
columns 1
|
|
163
|
+
block:priority["Priority Matrix"]
|
|
164
|
+
P1["P1: Fix Immediately\n(Layout issues affecting functionality)"]
|
|
165
|
+
P2["P2: Fix Next\n(Visual issues degrading UX)"]
|
|
166
|
+
P3["P3: Fix If Possible\n(Minor visual inconsistencies)"]
|
|
167
|
+
end
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 3.2 Identifying Source Files
|
|
171
|
+
|
|
172
|
+
Identify source files from problematic elements:
|
|
173
|
+
|
|
174
|
+
1. **Selector-based Search**
|
|
175
|
+
- Search codebase by class name or ID
|
|
176
|
+
- Explore style definitions with `grep_search`
|
|
177
|
+
|
|
178
|
+
2. **Component-based Search**
|
|
179
|
+
- Identify components from element text or structure
|
|
180
|
+
- Explore related files with `semantic_search`
|
|
181
|
+
|
|
182
|
+
3. **File Pattern Filtering**
|
|
183
|
+
```
|
|
184
|
+
Style files: src/**/*.css, styles/**/*
|
|
185
|
+
Components: src/components/**/*
|
|
186
|
+
Pages: src/pages/**, app/**
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### 3.3 Applying Fixes
|
|
190
|
+
|
|
191
|
+
#### Framework-specific Fix Guidelines
|
|
192
|
+
|
|
193
|
+
See [references/framework-fixes.md](references/framework-fixes.md) for details.
|
|
194
|
+
|
|
195
|
+
#### Fix Principles
|
|
196
|
+
|
|
197
|
+
1. **Minimal Changes**: Only make the minimum changes necessary to resolve the issue
|
|
198
|
+
2. **Respect Existing Patterns**: Follow existing code style in the project
|
|
199
|
+
3. **Avoid Breaking Changes**: Be careful not to affect other areas
|
|
200
|
+
4. **Add Comments**: Add comments to explain the reason for fixes where appropriate
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Step 4: Re-verification Phase
|
|
205
|
+
|
|
206
|
+
### 4.1 Post-fix Confirmation
|
|
207
|
+
|
|
208
|
+
1. Reload browser (or wait for development server HMR)
|
|
209
|
+
2. Capture screenshots of fixed areas
|
|
210
|
+
3. Compare before and after
|
|
211
|
+
|
|
212
|
+
### 4.2 Regression Testing
|
|
213
|
+
|
|
214
|
+
- Verify that fixes haven't affected other areas
|
|
215
|
+
- Confirm responsive display is not broken
|
|
216
|
+
|
|
217
|
+
### 4.3 Iteration Decision
|
|
218
|
+
|
|
219
|
+
```mermaid
|
|
220
|
+
flowchart TD
|
|
221
|
+
A{Issues Remaining?}
|
|
222
|
+
A -->|Yes| B[Return to Step 2]
|
|
223
|
+
A -->|No| C[Proceed to Completion Report]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Iteration Limit**: If more than 3 fix attempts are needed for a specific issue, consult the user
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Output Format
|
|
231
|
+
|
|
232
|
+
### Review Results Report
|
|
233
|
+
|
|
234
|
+
```markdown
|
|
235
|
+
# Web Design Review Results
|
|
236
|
+
|
|
237
|
+
## Summary
|
|
238
|
+
|
|
239
|
+
| Item | Value |
|
|
240
|
+
|------|-------|
|
|
241
|
+
| Target URL | {URL} |
|
|
242
|
+
| Framework | {Detected framework} |
|
|
243
|
+
| Styling | {CSS / Tailwind / etc.} |
|
|
244
|
+
| Tested Viewports | Desktop, Mobile |
|
|
245
|
+
| Issues Detected | {N} |
|
|
246
|
+
| Issues Fixed | {M} |
|
|
247
|
+
|
|
248
|
+
## Detected Issues
|
|
249
|
+
|
|
250
|
+
### [P1] {Issue Title}
|
|
251
|
+
|
|
252
|
+
- **Page**: {Page path}
|
|
253
|
+
- **Element**: {Selector or description}
|
|
254
|
+
- **Issue**: {Detailed description of the issue}
|
|
255
|
+
- **Fixed File**: `{File path}`
|
|
256
|
+
- **Fix Details**: {Description of changes}
|
|
257
|
+
- **Screenshot**: Before/After
|
|
258
|
+
|
|
259
|
+
### [P2] {Issue Title}
|
|
260
|
+
...
|
|
261
|
+
|
|
262
|
+
## Unfixed Issues (if any)
|
|
263
|
+
|
|
264
|
+
### {Issue Title}
|
|
265
|
+
- **Reason**: {Why it was not fixed/could not be fixed}
|
|
266
|
+
- **Recommended Action**: {Recommendations for user}
|
|
267
|
+
|
|
268
|
+
## Recommendations
|
|
269
|
+
|
|
270
|
+
- {Suggestions for future improvements}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Required Capabilities
|
|
276
|
+
|
|
277
|
+
| Capability | Description | Required |
|
|
278
|
+
|------------|-------------|----------|
|
|
279
|
+
| Web Page Navigation | Access URLs, page transitions | ✅ |
|
|
280
|
+
| Screenshot Capture | Page image capture | ✅ |
|
|
281
|
+
| Image Analysis | Visual issue detection | ✅ |
|
|
282
|
+
| DOM Retrieval | Page structure retrieval | Recommended |
|
|
283
|
+
| File Read/Write | Source code reading and editing | Required for fixes |
|
|
284
|
+
| Code Search | Code search within project | Required for fixes |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Reference Implementation
|
|
289
|
+
|
|
290
|
+
### Implementation with Playwright MCP
|
|
291
|
+
|
|
292
|
+
[Playwright MCP](https://github.com/microsoft/playwright-mcp) is recommended as the reference implementation for this skill.
|
|
293
|
+
|
|
294
|
+
| Capability | Playwright MCP Tool | Purpose |
|
|
295
|
+
|------------|---------------------|---------|
|
|
296
|
+
| Navigation | `browser_navigate` | Access URLs |
|
|
297
|
+
| Snapshot | `browser_snapshot` | Retrieve DOM structure |
|
|
298
|
+
| Screenshot | `browser_take_screenshot` | Images for visual inspection |
|
|
299
|
+
| Click | `browser_click` | Interact with interactive elements |
|
|
300
|
+
| Resize | `browser_resize` | Responsive testing |
|
|
301
|
+
| Console | `browser_console_messages` | Detect JS errors |
|
|
302
|
+
|
|
303
|
+
#### Configuration Example (MCP Server)
|
|
304
|
+
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"mcpServers": {
|
|
308
|
+
"playwright": {
|
|
309
|
+
"command": "npx",
|
|
310
|
+
"args": ["-y", "@playwright/mcp@latest", "--caps=vision"]
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Other Compatible Browser Automation Tools
|
|
317
|
+
|
|
318
|
+
| Tool | Features |
|
|
319
|
+
|------|----------|
|
|
320
|
+
| Selenium | Broad browser support, multi-language support |
|
|
321
|
+
| Puppeteer | Chrome/Chromium focused, Node.js |
|
|
322
|
+
| Cypress | Easy integration with E2E testing |
|
|
323
|
+
| WebDriver BiDi | Standardized next-generation protocol |
|
|
324
|
+
|
|
325
|
+
The same workflow can be implemented with these tools. As long as they provide the necessary capabilities (navigation, screenshot, DOM retrieval), the choice of tool is flexible.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Best Practices
|
|
330
|
+
|
|
331
|
+
### DO (Recommended)
|
|
332
|
+
|
|
333
|
+
- ✅ Always save screenshots before making fixes
|
|
334
|
+
- ✅ Fix one issue at a time and verify each
|
|
335
|
+
- ✅ Follow the project's existing code style
|
|
336
|
+
- ✅ Confirm with user before major changes
|
|
337
|
+
- ✅ Document fix details thoroughly
|
|
338
|
+
|
|
339
|
+
### DON'T (Not Recommended)
|
|
340
|
+
|
|
341
|
+
- ❌ Large-scale refactoring without confirmation
|
|
342
|
+
- ❌ Ignoring design systems or brand guidelines
|
|
343
|
+
- ❌ Fixes that ignore performance
|
|
344
|
+
- ❌ Fixing multiple issues at once (difficult to verify)
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Troubleshooting
|
|
349
|
+
|
|
350
|
+
### Problem: Style files not found
|
|
351
|
+
|
|
352
|
+
1. Check dependencies in `package.json`
|
|
353
|
+
2. Consider the possibility of CSS-in-JS
|
|
354
|
+
3. Consider CSS generated at build time
|
|
355
|
+
4. Ask user about styling method
|
|
356
|
+
|
|
357
|
+
### Problem: Fixes not reflected
|
|
358
|
+
|
|
359
|
+
1. Check if development server HMR is working
|
|
360
|
+
2. Clear browser cache
|
|
361
|
+
3. Rebuild if project requires build
|
|
362
|
+
4. Check CSS specificity issues
|
|
363
|
+
|
|
364
|
+
### Problem: Fixes affecting other areas
|
|
365
|
+
|
|
366
|
+
1. Rollback changes
|
|
367
|
+
2. Use more specific selectors
|
|
368
|
+
3. Consider using CSS Modules or scoped styles
|
|
369
|
+
4. Consult user to confirm impact scope
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-perf
|
|
3
|
+
description: Analyzes web performance using Chrome DevTools MCP. Measures Core Web Vitals (FCP, LCP, TBT, CLS, Speed Index), identifies render-blocking resources, network dependency chains, layout shifts, caching issues, and accessibility gaps. Use when asked to audit, profile, debug, or optimize page load performance, Lighthouse scores, or site speed. Biases towards retrieval from current documentation over pre-trained knowledge.
|
|
4
|
+
category: frontend
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Web Performance Audit
|
|
8
|
+
|
|
9
|
+
Your knowledge of web performance metrics, thresholds, and tooling APIs may be outdated. **Prefer retrieval over pre-training** when citing specific numbers or recommendations.
|
|
10
|
+
|
|
11
|
+
## Retrieval Sources
|
|
12
|
+
|
|
13
|
+
| Source | How to retrieve | Use for |
|
|
14
|
+
|--------|----------------|---------|
|
|
15
|
+
| web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions |
|
|
16
|
+
| Chrome DevTools docs | `https://developer.chrome.com/docs/devtools/performance` | Tooling APIs, trace analysis |
|
|
17
|
+
| Lighthouse scoring | `https://developer.chrome.com/docs/lighthouse/performance/performance-scoring` | Score weights, metric thresholds |
|
|
18
|
+
|
|
19
|
+
## FIRST: Verify MCP Tools Available
|
|
20
|
+
|
|
21
|
+
**Run this before starting.** Try calling `navigate_page` or `performance_start_trace`. If unavailable, STOP—the chrome-devtools MCP server isn't configured.
|
|
22
|
+
|
|
23
|
+
Ask the user to add this to their MCP config:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
"chrome-devtools": {
|
|
27
|
+
"type": "local",
|
|
28
|
+
"command": ["npx", "-y", "chrome-devtools-mcp@latest"]
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Key Guidelines
|
|
33
|
+
|
|
34
|
+
- **Be assertive**: Verify claims by checking network requests, DOM, or codebase—then state findings definitively.
|
|
35
|
+
- **Verify before recommending**: Confirm something is unused before suggesting removal.
|
|
36
|
+
- **Quantify impact**: Use estimated savings from insights. Don't prioritize changes with 0ms impact.
|
|
37
|
+
- **Skip non-issues**: If render-blocking resources have 0ms estimated impact, note but don't recommend action.
|
|
38
|
+
- **Be specific**: Say "compress hero.png (450KB) to WebP" not "optimize images".
|
|
39
|
+
- **Prioritize ruthlessly**: A site with 200ms LCP and 0 CLS is already excellent—say so.
|
|
40
|
+
|
|
41
|
+
## Quick Reference
|
|
42
|
+
|
|
43
|
+
| Task | Tool Call |
|
|
44
|
+
|------|-----------|
|
|
45
|
+
| Load page | `navigate_page(url: "...")` |
|
|
46
|
+
| Start trace | `performance_start_trace(autoStop: true, reload: true)` |
|
|
47
|
+
| Analyze insight | `performance_analyze_insight(insightSetId: "...", insightName: "...")` |
|
|
48
|
+
| List requests | `list_network_requests(resourceTypes: ["Script", "Stylesheet", ...])` |
|
|
49
|
+
| Request details | `get_network_request(reqid: <id>)` |
|
|
50
|
+
| A11y snapshot | `take_snapshot(verbose: true)` |
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
Copy this checklist to track progress:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Audit Progress:
|
|
58
|
+
- [ ] Phase 1: Performance trace (navigate + record)
|
|
59
|
+
- [ ] Phase 2: Core Web Vitals analysis (includes CLS culprits)
|
|
60
|
+
- [ ] Phase 3: Network analysis
|
|
61
|
+
- [ ] Phase 4: Accessibility snapshot
|
|
62
|
+
- [ ] Phase 5: Codebase analysis (skip if third-party site)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Phase 1: Performance Trace
|
|
66
|
+
|
|
67
|
+
1. Navigate to the target URL:
|
|
68
|
+
```
|
|
69
|
+
navigate_page(url: "<target-url>")
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
2. Start a performance trace with reload to capture cold-load metrics:
|
|
73
|
+
```
|
|
74
|
+
performance_start_trace(autoStop: true, reload: true)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
3. Wait for trace completion, then retrieve results.
|
|
78
|
+
|
|
79
|
+
**Troubleshooting:**
|
|
80
|
+
- If trace returns empty or fails, verify the page loaded correctly with `navigate_page` first
|
|
81
|
+
- If insight names don't match, inspect the trace response to list available insights
|
|
82
|
+
|
|
83
|
+
### Phase 2: Core Web Vitals Analysis
|
|
84
|
+
|
|
85
|
+
Use `performance_analyze_insight` to extract key metrics.
|
|
86
|
+
|
|
87
|
+
**Note:** Insight names may vary across Chrome DevTools versions. If an insight name doesn't work, check the `insightSetId` from the trace response to discover available insights.
|
|
88
|
+
|
|
89
|
+
Common insight names:
|
|
90
|
+
|
|
91
|
+
| Metric | Insight Name | What to Look For |
|
|
92
|
+
|--------|--------------|------------------|
|
|
93
|
+
| LCP | `LCPBreakdown` | Time to largest contentful paint; breakdown of TTFB, resource load, render delay |
|
|
94
|
+
| CLS | `CLSCulprits` | Elements causing layout shifts (images without dimensions, injected content, font swaps) |
|
|
95
|
+
| Render Blocking | `RenderBlocking` | CSS/JS blocking first paint |
|
|
96
|
+
| Document Latency | `DocumentLatency` | Server response time issues |
|
|
97
|
+
| Network Dependencies | `NetworkRequestsDepGraph` | Request chains delaying critical resources |
|
|
98
|
+
|
|
99
|
+
Example:
|
|
100
|
+
```
|
|
101
|
+
performance_analyze_insight(insightSetId: "<id-from-trace>", insightName: "LCPBreakdown")
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Key thresholds (good/needs-improvement/poor):**
|
|
105
|
+
- TTFB: < 800ms / < 1.8s / > 1.8s
|
|
106
|
+
- FCP: < 1.8s / < 3s / > 3s
|
|
107
|
+
- LCP: < 2.5s / < 4s / > 4s
|
|
108
|
+
- INP: < 200ms / < 500ms / > 500ms
|
|
109
|
+
- TBT: < 200ms / < 600ms / > 600ms
|
|
110
|
+
- CLS: < 0.1 / < 0.25 / > 0.25
|
|
111
|
+
- Speed Index: < 3.4s / < 5.8s / > 5.8s
|
|
112
|
+
|
|
113
|
+
### Phase 3: Network Analysis
|
|
114
|
+
|
|
115
|
+
List all network requests to identify optimization opportunities:
|
|
116
|
+
```
|
|
117
|
+
list_network_requests(resourceTypes: ["Script", "Stylesheet", "Document", "Font", "Image"])
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Look for:**
|
|
121
|
+
|
|
122
|
+
1. **Render-blocking resources**: JS/CSS in `<head>` without `async`/`defer`/`media` attributes
|
|
123
|
+
2. **Network chains**: Resources discovered late because they depend on other resources loading first (e.g., CSS imports, JS-loaded fonts)
|
|
124
|
+
3. **Missing preloads**: Critical resources (fonts, hero images, key scripts) not preloaded
|
|
125
|
+
4. **Caching issues**: Missing or weak `Cache-Control`, `ETag`, or `Last-Modified` headers
|
|
126
|
+
5. **Large payloads**: Uncompressed or oversized JS/CSS bundles
|
|
127
|
+
6. **Unused preconnects**: If flagged, verify by checking if ANY requests went to that origin. If zero requests, it's definitively unused—recommend removal. If requests exist but loaded late, the preconnect may still be valuable.
|
|
128
|
+
|
|
129
|
+
For detailed request info:
|
|
130
|
+
```
|
|
131
|
+
get_network_request(reqid: <id>)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Phase 4: Accessibility Snapshot
|
|
135
|
+
|
|
136
|
+
Take an accessibility tree snapshot:
|
|
137
|
+
```
|
|
138
|
+
take_snapshot(verbose: true)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Flag high-level gaps:**
|
|
142
|
+
- Missing or duplicate ARIA IDs
|
|
143
|
+
- Elements with poor contrast ratios (check against WCAG AA: 4.5:1 for normal text, 3:1 for large text)
|
|
144
|
+
- Focus traps or missing focus indicators
|
|
145
|
+
- Interactive elements without accessible names
|
|
146
|
+
|
|
147
|
+
## Phase 5: Codebase Analysis
|
|
148
|
+
|
|
149
|
+
**Skip if auditing a third-party site without codebase access.**
|
|
150
|
+
|
|
151
|
+
Analyze the codebase to understand where improvements can be made.
|
|
152
|
+
|
|
153
|
+
### Detect Framework & Bundler
|
|
154
|
+
|
|
155
|
+
Search for configuration files to identify the stack:
|
|
156
|
+
|
|
157
|
+
| Tool | Config Files |
|
|
158
|
+
|------|--------------|
|
|
159
|
+
| Webpack | `webpack.config.js`, `webpack.*.js` |
|
|
160
|
+
| Vite | `vite.config.js`, `vite.config.ts` |
|
|
161
|
+
| Rollup | `rollup.config.js`, `rollup.config.mjs` |
|
|
162
|
+
| esbuild | `esbuild.config.js`, build scripts with `esbuild` |
|
|
163
|
+
| Parcel | `.parcelrc`, `package.json` (parcel field) |
|
|
164
|
+
| Next.js | `next.config.js`, `next.config.mjs` |
|
|
165
|
+
| Nuxt | `nuxt.config.js`, `nuxt.config.ts` |
|
|
166
|
+
| SvelteKit | `svelte.config.js` |
|
|
167
|
+
| Astro | `astro.config.mjs` |
|
|
168
|
+
|
|
169
|
+
Also check `package.json` for framework dependencies and build scripts.
|
|
170
|
+
|
|
171
|
+
### Tree-Shaking & Dead Code
|
|
172
|
+
|
|
173
|
+
- **Webpack**: Check for `mode: 'production'`, `sideEffects` in package.json, `usedExports` optimization
|
|
174
|
+
- **Vite/Rollup**: Tree-shaking enabled by default; check for `treeshake` options
|
|
175
|
+
- **Look for**: Barrel files (`index.js` re-exports), large utility libraries imported wholesale (lodash, moment)
|
|
176
|
+
|
|
177
|
+
### Unused JS/CSS
|
|
178
|
+
|
|
179
|
+
- Check for CSS-in-JS vs. static CSS extraction
|
|
180
|
+
- Look for PurgeCSS/UnCSS configuration (Tailwind's `content` config)
|
|
181
|
+
- Identify dynamic imports vs. eager loading
|
|
182
|
+
|
|
183
|
+
### Polyfills
|
|
184
|
+
|
|
185
|
+
- Check for `@babel/preset-env` targets and `useBuiltIns` setting
|
|
186
|
+
- Look for `core-js` imports (often oversized)
|
|
187
|
+
- Check `browserslist` config for overly broad targeting
|
|
188
|
+
|
|
189
|
+
### Compression & Minification
|
|
190
|
+
|
|
191
|
+
- Check for `terser`, `esbuild`, or `swc` minification
|
|
192
|
+
- Look for gzip/brotli compression in build output or server config
|
|
193
|
+
- Check for source maps in production builds (should be external or disabled)
|
|
194
|
+
|
|
195
|
+
## Output Format
|
|
196
|
+
|
|
197
|
+
Present findings as:
|
|
198
|
+
|
|
199
|
+
1. **Core Web Vitals Summary** - Table with metric, value, and rating (good/needs-improvement/poor)
|
|
200
|
+
2. **Top Issues** - Prioritized list of problems with estimated impact (high/medium/low)
|
|
201
|
+
3. **Recommendations** - Specific, actionable fixes with code snippets or config changes
|
|
202
|
+
4. **Codebase Findings** - Framework/bundler detected, optimization opportunities (omit if no codebase access)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend
|
|
3
|
+
version: 1
|
|
4
|
+
category: frontend
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Frontend Engineering
|
|
8
|
+
|
|
9
|
+
Build, review, and debug frontend code across React, Vue, Angular, Svelte, HTML/CSS, and TypeScript.
|
|
10
|
+
|
|
11
|
+
## When to use this skill
|
|
12
|
+
|
|
13
|
+
- User is building or fixing UI components, pages, or layouts
|
|
14
|
+
- User mentions React, Vue, Angular, Svelte, Next.js, Nuxt, Astro, or similar
|
|
15
|
+
- User asks about state management (Redux, Zustand, Pinia, MobX)
|
|
16
|
+
- User wants to fix styling, layout, or responsiveness issues
|
|
17
|
+
- User mentions "component", "hook", "props", "CSS", "SCSS", "Tailwind"
|
|
18
|
+
- User asks about bundle size, lazy loading, or frontend performance
|
|
19
|
+
- User wants to improve accessibility (a11y) or keyboard navigation
|
|
20
|
+
|
|
21
|
+
## Procedure
|
|
22
|
+
|
|
23
|
+
### Step 1: Understand the stack
|
|
24
|
+
|
|
25
|
+
Before writing any code, check:
|
|
26
|
+
- What framework is in use? (package.json dependencies)
|
|
27
|
+
- What styling approach? (CSS modules, Tailwind, styled-components, SCSS, plain CSS)
|
|
28
|
+
- What state management? (Redux, Zustand, Context, Pinia, Vuex)
|
|
29
|
+
- What build tool? (Vite, webpack, Parcel, Turbopack)
|
|
30
|
+
- What TypeScript version and strictness?
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cat package.json | grep -E '"(react|vue|angular|svelte|next|nuxt|vite|webpack)"'
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Step 2: Inspect existing conventions
|
|
37
|
+
|
|
38
|
+
Match the patterns already in use — do not introduce a new pattern if one exists:
|
|
39
|
+
- Read 2–3 existing components before creating a new one
|
|
40
|
+
- Check how props are typed (interfaces vs. types, optional vs. required)
|
|
41
|
+
- Check how events/callbacks are named (onClick, handleClick, onSubmit)
|
|
42
|
+
- Check import paths and alias conventions
|
|
43
|
+
|
|
44
|
+
### Step 3: Component design
|
|
45
|
+
|
|
46
|
+
- **Single responsibility**: each component does one thing. If it needs a title, a helper, break it up.
|
|
47
|
+
- **Props API**: prefer explicit over implicit. Avoid spreading `...rest` unless building a wrapper.
|
|
48
|
+
- **Co-location**: keep styles, tests, and types near the component they belong to.
|
|
49
|
+
- **Composition over configuration**: prefer composable children over complex prop-driven logic.
|
|
50
|
+
|
|
51
|
+
### Step 4: Styling
|
|
52
|
+
|
|
53
|
+
- Never use inline styles for layout or theme values — use tokens or utility classes.
|
|
54
|
+
- Check for hardcoded pixel values that should reference spacing/typography tokens.
|
|
55
|
+
- Verify responsive breakpoints match the project's grid system.
|
|
56
|
+
- Test dark mode if the project supports it.
|
|
57
|
+
|
|
58
|
+
### Step 5: Accessibility (a11y)
|
|
59
|
+
|
|
60
|
+
Every interactive element must:
|
|
61
|
+
- Be reachable via keyboard (Tab, Enter, Space, Escape)
|
|
62
|
+
- Have an accessible name (aria-label, aria-labelledby, or visible text)
|
|
63
|
+
- Have correct ARIA roles if using non-semantic elements
|
|
64
|
+
- Maintain visible focus state (no `outline: none` without alternative)
|
|
65
|
+
|
|
66
|
+
Color contrast: minimum 4.5:1 for normal text, 3:1 for large text (WCAG AA).
|
|
67
|
+
|
|
68
|
+
### Step 6: Performance
|
|
69
|
+
|
|
70
|
+
Check for:
|
|
71
|
+
- Components re-rendering unnecessarily (missing `React.memo`, `useMemo`, `useCallback`)
|
|
72
|
+
- Large lists rendered without virtualization (use `react-virtual`, `vue-virtual-scroll`)
|
|
73
|
+
- Images without explicit width/height causing layout shift
|
|
74
|
+
- Heavy dependencies imported at the top level (use dynamic import for lazily needed code)
|
|
75
|
+
- Event listeners attached without cleanup in `useEffect`/`onUnmounted`
|
|
76
|
+
|
|
77
|
+
### Step 7: Testing
|
|
78
|
+
|
|
79
|
+
For any new component, add at minimum:
|
|
80
|
+
- A smoke test (renders without crashing)
|
|
81
|
+
- A behavior test (key interaction works)
|
|
82
|
+
- An accessibility test (axe or jest-axe)
|
|
83
|
+
|
|
84
|
+
Check test coverage:
|
|
85
|
+
```bash
|
|
86
|
+
npx jest --coverage --collectCoverageFrom='src/components/**' 2>&1 | tail -20
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Common patterns
|
|
90
|
+
|
|
91
|
+
### React: data fetching with error/loading states
|
|
92
|
+
```tsx
|
|
93
|
+
function UserProfile({ userId }: { userId: string }) {
|
|
94
|
+
const { data, isLoading, error } = useUser(userId);
|
|
95
|
+
if (isLoading) return <Skeleton />;
|
|
96
|
+
if (error) return <ErrorMessage error={error} />;
|
|
97
|
+
return <ProfileCard user={data} />;
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Vue 3: composable for async state
|
|
102
|
+
```ts
|
|
103
|
+
export function useAsync<T>(fn: () => Promise<T>) {
|
|
104
|
+
const data = ref<T | null>(null);
|
|
105
|
+
const error = ref<Error | null>(null);
|
|
106
|
+
const loading = ref(false);
|
|
107
|
+
const execute = async () => {
|
|
108
|
+
loading.value = true;
|
|
109
|
+
try { data.value = await fn(); }
|
|
110
|
+
catch (e) { error.value = e as Error; }
|
|
111
|
+
finally { loading.value = false; }
|
|
112
|
+
};
|
|
113
|
+
return { data, error, loading, execute };
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Red flags to report
|
|
118
|
+
|
|
119
|
+
- `any` types in TypeScript without justification
|
|
120
|
+
- `dangerouslySetInnerHTML` or `v-html` with user-supplied content (XSS risk)
|
|
121
|
+
- Direct DOM manipulation inside framework components
|
|
122
|
+
- `useEffect` with missing or incorrect dependency arrays
|
|
123
|
+
- Global state mutated directly (not via store actions)
|
|
124
|
+
- Console logs left in production code
|
|
125
|
+
- Bundle importing entire libraries when only one function is needed (e.g., `import _ from 'lodash'`)
|