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,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-issues
|
|
3
|
+
description: 'Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", "set the priority", "set the start date", "link issues", "add dependency", "blocked by", "blocking", or any GitHub issue management task.'
|
|
4
|
+
category: dev
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# GitHub Issues
|
|
8
|
+
|
|
9
|
+
Manage GitHub issues using the `@modelcontextprotocol/server-github` MCP server.
|
|
10
|
+
|
|
11
|
+
## Available Tools
|
|
12
|
+
|
|
13
|
+
### MCP Tools (read operations)
|
|
14
|
+
|
|
15
|
+
| Tool | Purpose |
|
|
16
|
+
|------|---------|
|
|
17
|
+
| `mcp__github__issue_read` | Read issue details, sub-issues, comments, labels (methods: get, get_comments, get_sub_issues, get_labels) |
|
|
18
|
+
| `mcp__github__list_issues` | List and filter repository issues by state, labels, date |
|
|
19
|
+
| `mcp__github__search_issues` | Search issues across repos using GitHub search syntax |
|
|
20
|
+
| `mcp__github__projects_list` | List projects, project fields, project items, status updates |
|
|
21
|
+
| `mcp__github__projects_get` | Get details of a project, field, item, or status update |
|
|
22
|
+
| `mcp__github__projects_write` | Add/update/delete project items, create status updates |
|
|
23
|
+
|
|
24
|
+
### CLI / REST API (write operations)
|
|
25
|
+
|
|
26
|
+
The MCP server does not currently support creating, updating, or commenting on issues. Use `gh api` for these operations.
|
|
27
|
+
|
|
28
|
+
| Operation | Command |
|
|
29
|
+
|-----------|---------|
|
|
30
|
+
| Create issue | `gh api repos/{owner}/{repo}/issues -X POST -f title=... -f body=...` |
|
|
31
|
+
| Update issue | `gh api repos/{owner}/{repo}/issues/{number} -X PATCH -f title=... -f state=...` |
|
|
32
|
+
| Add comment | `gh api repos/{owner}/{repo}/issues/{number}/comments -X POST -f body=...` |
|
|
33
|
+
| Close issue | `gh api repos/{owner}/{repo}/issues/{number} -X PATCH -f state=closed` |
|
|
34
|
+
| Set issue type | Include `-f type=Bug` in the create call (REST API only, not supported by `gh issue create` CLI) |
|
|
35
|
+
|
|
36
|
+
**Note:** `gh issue create` works for basic issue creation but does **not** support the `--type` flag. Use `gh api` when you need to set issue types.
|
|
37
|
+
|
|
38
|
+
## Workflow
|
|
39
|
+
|
|
40
|
+
1. **Determine action**: Create, update, or query?
|
|
41
|
+
2. **Gather context**: Get repo info, existing labels, milestones if needed
|
|
42
|
+
3. **Structure content**: Use appropriate template from [references/templates.md](references/templates.md)
|
|
43
|
+
4. **Execute**: Use MCP tools for reads, `gh api` for writes
|
|
44
|
+
5. **Confirm**: Report the issue URL to user
|
|
45
|
+
|
|
46
|
+
## Creating Issues
|
|
47
|
+
|
|
48
|
+
Use `gh api` to create issues. This supports all parameters including issue types.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
gh api repos/{owner}/{repo}/issues \
|
|
52
|
+
-X POST \
|
|
53
|
+
-f title="Issue title" \
|
|
54
|
+
-f body="Issue body in markdown" \
|
|
55
|
+
-f type="Bug" \
|
|
56
|
+
--jq '{number, html_url}'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Optional Parameters
|
|
60
|
+
|
|
61
|
+
Add any of these flags to the `gh api` call:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
-f type="Bug" # Issue type (Bug, Feature, Task, Epic, etc.)
|
|
65
|
+
-f labels[]="bug" # Labels (repeat for multiple)
|
|
66
|
+
-f assignees[]="username" # Assignees (repeat for multiple)
|
|
67
|
+
-f milestone=1 # Milestone number
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Issue types** are organization-level metadata. To discover available types, use:
|
|
71
|
+
```bash
|
|
72
|
+
gh api graphql -f query='{ organization(login: "ORG") { issueTypes(first: 10) { nodes { name } } } }' --jq '.data.organization.issueTypes.nodes[].name'
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Prefer issue types over labels for categorization.** When issue types are available (e.g., Bug, Feature, Task), use the `type` parameter instead of applying equivalent labels like `bug` or `enhancement`. Issue types are the canonical way to categorize issues on GitHub. Only fall back to labels when the org has no issue types configured.
|
|
76
|
+
|
|
77
|
+
### Title Guidelines
|
|
78
|
+
|
|
79
|
+
- Be specific and actionable
|
|
80
|
+
- Keep under 72 characters
|
|
81
|
+
- When issue types are set, don't add redundant prefixes like `[Bug]`
|
|
82
|
+
- Examples:
|
|
83
|
+
- `Login fails with SSO enabled` (with type=Bug)
|
|
84
|
+
- `Add dark mode support` (with type=Feature)
|
|
85
|
+
- `Add unit tests for auth module` (with type=Task)
|
|
86
|
+
|
|
87
|
+
### Body Structure
|
|
88
|
+
|
|
89
|
+
Always use the templates in [references/templates.md](references/templates.md). Choose based on issue type:
|
|
90
|
+
|
|
91
|
+
| User Request | Template |
|
|
92
|
+
|--------------|----------|
|
|
93
|
+
| Bug, error, broken, not working | Bug Report |
|
|
94
|
+
| Feature, enhancement, add, new | Feature Request |
|
|
95
|
+
| Task, chore, refactor, update | Task |
|
|
96
|
+
|
|
97
|
+
## Updating Issues
|
|
98
|
+
|
|
99
|
+
Use `gh api` with PATCH:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
gh api repos/{owner}/{repo}/issues/{number} \
|
|
103
|
+
-X PATCH \
|
|
104
|
+
-f state=closed \
|
|
105
|
+
-f title="Updated title" \
|
|
106
|
+
--jq '{number, html_url}'
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Only include fields you want to change. Available fields: `title`, `body`, `state` (open/closed), `labels`, `assignees`, `milestone`.
|
|
110
|
+
|
|
111
|
+
## Examples
|
|
112
|
+
|
|
113
|
+
### Example 1: Bug Report
|
|
114
|
+
|
|
115
|
+
**User**: "Create a bug issue - the login page crashes when using SSO"
|
|
116
|
+
|
|
117
|
+
**Action**:
|
|
118
|
+
```bash
|
|
119
|
+
gh api repos/github/awesome-copilot/issues \
|
|
120
|
+
-X POST \
|
|
121
|
+
-f title="Login page crashes when using SSO" \
|
|
122
|
+
-f type="Bug" \
|
|
123
|
+
-f body="## Description
|
|
124
|
+
The login page crashes when users attempt to authenticate using SSO.
|
|
125
|
+
|
|
126
|
+
## Steps to Reproduce
|
|
127
|
+
1. Navigate to login page
|
|
128
|
+
2. Click 'Sign in with SSO'
|
|
129
|
+
3. Page crashes
|
|
130
|
+
|
|
131
|
+
## Expected Behavior
|
|
132
|
+
SSO authentication should complete and redirect to dashboard.
|
|
133
|
+
|
|
134
|
+
## Actual Behavior
|
|
135
|
+
Page becomes unresponsive and displays error." \
|
|
136
|
+
--jq '{number, html_url}'
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Example 2: Feature Request
|
|
140
|
+
|
|
141
|
+
**User**: "Create a feature request for dark mode with high priority"
|
|
142
|
+
|
|
143
|
+
**Action**:
|
|
144
|
+
```bash
|
|
145
|
+
gh api repos/github/awesome-copilot/issues \
|
|
146
|
+
-X POST \
|
|
147
|
+
-f title="Add dark mode support" \
|
|
148
|
+
-f type="Feature" \
|
|
149
|
+
-f labels[]="high-priority" \
|
|
150
|
+
-f body="## Summary
|
|
151
|
+
Add dark mode theme option for improved user experience and accessibility.
|
|
152
|
+
|
|
153
|
+
## Motivation
|
|
154
|
+
- Reduces eye strain in low-light environments
|
|
155
|
+
- Increasingly expected by users
|
|
156
|
+
|
|
157
|
+
## Proposed Solution
|
|
158
|
+
Implement theme toggle with system preference detection.
|
|
159
|
+
|
|
160
|
+
## Acceptance Criteria
|
|
161
|
+
- [ ] Toggle switch in settings
|
|
162
|
+
- [ ] Persists user preference
|
|
163
|
+
- [ ] Respects system preference by default" \
|
|
164
|
+
--jq '{number, html_url}'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Common Labels
|
|
168
|
+
|
|
169
|
+
Use these standard labels when applicable:
|
|
170
|
+
|
|
171
|
+
| Label | Use For |
|
|
172
|
+
|-------|---------|
|
|
173
|
+
| `bug` | Something isn't working |
|
|
174
|
+
| `enhancement` | New feature or improvement |
|
|
175
|
+
| `documentation` | Documentation updates |
|
|
176
|
+
| `good first issue` | Good for newcomers |
|
|
177
|
+
| `help wanted` | Extra attention needed |
|
|
178
|
+
| `question` | Further information requested |
|
|
179
|
+
| `wontfix` | Will not be addressed |
|
|
180
|
+
| `duplicate` | Already exists |
|
|
181
|
+
| `high-priority` | Urgent issues |
|
|
182
|
+
|
|
183
|
+
## Tips
|
|
184
|
+
|
|
185
|
+
- Always confirm the repository context before creating issues
|
|
186
|
+
- Ask for missing critical information rather than guessing
|
|
187
|
+
- Link related issues when known: `Related to #123`
|
|
188
|
+
- For updates, fetch current issue first to preserve unchanged fields
|
|
189
|
+
|
|
190
|
+
## Extended Capabilities
|
|
191
|
+
|
|
192
|
+
The following features require REST or GraphQL APIs beyond the basic MCP tools. Each is documented in its own reference file so the agent only loads the knowledge it needs.
|
|
193
|
+
|
|
194
|
+
| Capability | When to use | Reference |
|
|
195
|
+
|------------|-------------|-----------|
|
|
196
|
+
| Advanced search | Complex queries with boolean logic, date ranges, cross-repo search, issue field filters (`field.name:value`) | [references/search.md](references/search.md) |
|
|
197
|
+
| Sub-issues & parent issues | Breaking work into hierarchical tasks | [references/sub-issues.md](references/sub-issues.md) |
|
|
198
|
+
| Issue dependencies | Tracking blocked-by / blocking relationships | [references/dependencies.md](references/dependencies.md) |
|
|
199
|
+
| Issue types (advanced) | GraphQL operations beyond MCP `list_issue_types` / `type` param | [references/issue-types.md](references/issue-types.md) |
|
|
200
|
+
| Projects V2 | Project boards, progress reports, field management | [references/projects.md](references/projects.md) |
|
|
201
|
+
| Issue fields | Custom metadata: dates, priority, text, numbers (private preview) | [references/issue-fields.md](references/issue-fields.md) |
|
|
202
|
+
| Images in issues | Embedding images in issue bodies and comments via CLI | [references/images.md](references/images.md) |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gpt-5-4-prompting
|
|
3
|
+
description: Internal guidance for composing Codex and GPT-5.4 prompts for coding, review, diagnosis, and research tasks inside the Codex Claude Code plugin
|
|
4
|
+
user-invocable: false
|
|
5
|
+
category: dev
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# GPT-5.4 Prompting
|
|
9
|
+
|
|
10
|
+
Use this skill when `codex:codex-rescue` needs to ask Codex or another GPT-5.4-based workflow for help.
|
|
11
|
+
|
|
12
|
+
Prompt Codex like an operator, not a collaborator. Keep prompts compact and block-structured with XML tags. State the task, the output contract, the follow-through defaults, and the small set of extra constraints that matter.
|
|
13
|
+
|
|
14
|
+
Core rules:
|
|
15
|
+
- Prefer one clear task per Codex run. Split unrelated asks into separate runs.
|
|
16
|
+
- Tell Codex what done looks like. Do not assume it will infer the desired end state.
|
|
17
|
+
- Add explicit grounding and verification rules for any task where unsupported guesses would hurt quality.
|
|
18
|
+
- Prefer better prompt contracts over raising reasoning or adding long natural-language explanations.
|
|
19
|
+
- Use XML tags consistently so the prompt has stable internal structure.
|
|
20
|
+
|
|
21
|
+
Default prompt recipe:
|
|
22
|
+
- `<task>`: the concrete job and the relevant repository or failure context.
|
|
23
|
+
- `<structured_output_contract>` or `<compact_output_contract>`: exact shape, ordering, and brevity requirements.
|
|
24
|
+
- `<default_follow_through_policy>`: what Codex should do by default instead of asking routine questions.
|
|
25
|
+
- `<verification_loop>` or `<completeness_contract>`: required for debugging, implementation, or risky fixes.
|
|
26
|
+
- `<grounding_rules>` or `<citation_rules>`: required for review, research, or anything that could drift into unsupported claims.
|
|
27
|
+
|
|
28
|
+
When to add blocks:
|
|
29
|
+
- Coding or debugging: add `completeness_contract`, `verification_loop`, and `missing_context_gating`.
|
|
30
|
+
- Review or adversarial review: add `grounding_rules`, `structured_output_contract`, and `dig_deeper_nudge`.
|
|
31
|
+
- Research or recommendation tasks: add `research_mode` and `citation_rules`.
|
|
32
|
+
- Write-capable tasks: add `action_safety` so Codex stays narrow and avoids unrelated refactors.
|
|
33
|
+
|
|
34
|
+
How to choose prompt shape:
|
|
35
|
+
- Use built-in `review` or `adversarial-review` commands when the job is reviewing local git changes. Those prompts already carry the review contract.
|
|
36
|
+
- Use `task` when the task is diagnosis, planning, research, or implementation and you need to control the prompt more directly.
|
|
37
|
+
- Use `task --resume-last` for follow-up instructions on the same Codex thread. Send only the delta instruction instead of restating the whole prompt unless the direction changed materially.
|
|
38
|
+
|
|
39
|
+
Working rules:
|
|
40
|
+
- Prefer explicit prompt contracts over vague nudges.
|
|
41
|
+
- Use stable XML tag names that match the block names from the reference file.
|
|
42
|
+
- Do not raise reasoning or complexity first. Tighten the prompt and verification rules before escalating.
|
|
43
|
+
- Ask Codex for brief, outcome-based progress updates only when the task is long-running or tool-heavy.
|
|
44
|
+
- Keep claims anchored to observed evidence. If something is a hypothesis, say so.
|
|
45
|
+
|
|
46
|
+
Prompt assembly checklist:
|
|
47
|
+
1. Define the exact task and scope in `<task>`.
|
|
48
|
+
2. Choose the smallest output contract that still makes the answer easy to use.
|
|
49
|
+
3. Decide whether Codex should keep going by default or stop for missing high-risk details.
|
|
50
|
+
4. Add verification, grounding, and safety tags only where the task needs them.
|
|
51
|
+
5. Remove redundant instructions before sending the prompt.
|
|
52
|
+
|
|
53
|
+
Reusable blocks live in [references/prompt-blocks.md](references/prompt-blocks.md).
|
|
54
|
+
Concrete end-to-end templates live in [references/codex-prompt-recipes.md](references/codex-prompt-recipes.md).
|
|
55
|
+
Common failure modes to avoid live in [references/codex-prompt-antipatterns.md](references/codex-prompt-antipatterns.md).
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: investigation-mode
|
|
3
|
+
description: "Orchestrated debugging coordinator. Triggers on frustration signals (stuck, hung, broken, waiting) and systematically triages: runtime logs → workflow status → browser verify → deploy/env. Reports findings at every step."
|
|
4
|
+
metadata:
|
|
5
|
+
priority: 8
|
|
6
|
+
docs:
|
|
7
|
+
- "https://openai.com/index/introducing-codex/"
|
|
8
|
+
pathPatterns:
|
|
9
|
+
- "**/middleware.{ts,js,mjs}"
|
|
10
|
+
- "**/lib/logger.{ts,js}"
|
|
11
|
+
- "**/utils/logger.{ts,js}"
|
|
12
|
+
- "**/instrumentation.{ts,js}"
|
|
13
|
+
- "**/*.log"
|
|
14
|
+
- "**/error.{tsx,ts,js,jsx}"
|
|
15
|
+
- "**/global-error.{tsx,ts,js,jsx}"
|
|
16
|
+
- "**/not-found.{tsx,ts,js,jsx}"
|
|
17
|
+
bashPatterns:
|
|
18
|
+
- '\bvercel\s+logs?\b'
|
|
19
|
+
- '\bvercel\s+inspect\b'
|
|
20
|
+
- '\btail\s+-f\b.*\.log'
|
|
21
|
+
- '\bworkflow\s+runs?\b'
|
|
22
|
+
- '\bvercel\s+ls\b'
|
|
23
|
+
- '\bcurl\s+-[vI]'
|
|
24
|
+
importPatterns: []
|
|
25
|
+
promptSignals:
|
|
26
|
+
phrases:
|
|
27
|
+
- "nothing happened"
|
|
28
|
+
- "still waiting"
|
|
29
|
+
- "it's stuck"
|
|
30
|
+
- "it's hung"
|
|
31
|
+
- "nothing is happening"
|
|
32
|
+
- "not responding"
|
|
33
|
+
- "just sitting there"
|
|
34
|
+
- "just sits there"
|
|
35
|
+
- "seems frozen"
|
|
36
|
+
- "is it frozen"
|
|
37
|
+
- "frozen"
|
|
38
|
+
- "why is it hanging"
|
|
39
|
+
- "check the logs"
|
|
40
|
+
- "check logs"
|
|
41
|
+
- "where are the logs"
|
|
42
|
+
- "how do I debug"
|
|
43
|
+
- "how to debug"
|
|
44
|
+
- "white screen"
|
|
45
|
+
- "blank page"
|
|
46
|
+
- "spinning forever"
|
|
47
|
+
- "timed out"
|
|
48
|
+
- "keeps timing out"
|
|
49
|
+
- "no response"
|
|
50
|
+
- "no output"
|
|
51
|
+
- "not loading"
|
|
52
|
+
- "debug this"
|
|
53
|
+
- "investigate why"
|
|
54
|
+
- "what went wrong"
|
|
55
|
+
- "why did it fail"
|
|
56
|
+
- "why is it failing"
|
|
57
|
+
- "something is broken"
|
|
58
|
+
- "something broke"
|
|
59
|
+
- "seems broken"
|
|
60
|
+
- "check what happened"
|
|
61
|
+
- "check the status"
|
|
62
|
+
- "where is the error"
|
|
63
|
+
- "where did it fail"
|
|
64
|
+
- "find the error"
|
|
65
|
+
- "show me the error"
|
|
66
|
+
- "why is it slow"
|
|
67
|
+
- "taking forever"
|
|
68
|
+
- "still loading"
|
|
69
|
+
- "not finishing"
|
|
70
|
+
- "seems dead"
|
|
71
|
+
- "been waiting"
|
|
72
|
+
- "waiting forever"
|
|
73
|
+
- "stuck on"
|
|
74
|
+
- "hung up"
|
|
75
|
+
- "not progressing"
|
|
76
|
+
- "stalled out"
|
|
77
|
+
- "is it running"
|
|
78
|
+
- "did it crash"
|
|
79
|
+
- "keeps failing"
|
|
80
|
+
- "why no response"
|
|
81
|
+
- "where did it go"
|
|
82
|
+
- "lost connection"
|
|
83
|
+
- "never finishes"
|
|
84
|
+
- "pending forever"
|
|
85
|
+
- "queue stuck"
|
|
86
|
+
- "job stuck"
|
|
87
|
+
- "build stuck"
|
|
88
|
+
- "request hanging"
|
|
89
|
+
- "api not responding"
|
|
90
|
+
allOf:
|
|
91
|
+
- [stuck, workflow]
|
|
92
|
+
- [stuck, deploy]
|
|
93
|
+
- [stuck, loading]
|
|
94
|
+
- [stuck, build]
|
|
95
|
+
- [stuck, queue]
|
|
96
|
+
- [stuck, job]
|
|
97
|
+
- [hung, request]
|
|
98
|
+
- [hung, api]
|
|
99
|
+
- [frozen, page]
|
|
100
|
+
- [frozen, app]
|
|
101
|
+
- [check, why]
|
|
102
|
+
- [check, broken]
|
|
103
|
+
- [check, error]
|
|
104
|
+
- [check, status]
|
|
105
|
+
- [check, logs]
|
|
106
|
+
- [debug, workflow]
|
|
107
|
+
- [debug, deploy]
|
|
108
|
+
- [debug, api]
|
|
109
|
+
- [debug, issue]
|
|
110
|
+
- [investigate, error]
|
|
111
|
+
- [logs, error]
|
|
112
|
+
- [logs, check]
|
|
113
|
+
- [slow, response]
|
|
114
|
+
- [slow, loading]
|
|
115
|
+
- [timeout, api]
|
|
116
|
+
- [timeout, request]
|
|
117
|
+
- [waiting, response]
|
|
118
|
+
- [waiting, forever]
|
|
119
|
+
- [waiting, deploy]
|
|
120
|
+
- [not working, why]
|
|
121
|
+
- [not, responding]
|
|
122
|
+
- [hanging, for]
|
|
123
|
+
- [been, hanging]
|
|
124
|
+
- [been, stuck]
|
|
125
|
+
- [been, waiting]
|
|
126
|
+
- [why, slow]
|
|
127
|
+
- [why, failing]
|
|
128
|
+
- [why, stuck]
|
|
129
|
+
- [why, hanging]
|
|
130
|
+
- [job, failing]
|
|
131
|
+
- [queue, processing]
|
|
132
|
+
anyOf:
|
|
133
|
+
- "stuck"
|
|
134
|
+
- "hung"
|
|
135
|
+
- "frozen"
|
|
136
|
+
- "broken"
|
|
137
|
+
- "failing"
|
|
138
|
+
- "timeout"
|
|
139
|
+
- "slow"
|
|
140
|
+
- "debug"
|
|
141
|
+
- "investigate"
|
|
142
|
+
- "check"
|
|
143
|
+
- "logs"
|
|
144
|
+
- "error"
|
|
145
|
+
- "hanging"
|
|
146
|
+
- "waiting"
|
|
147
|
+
- "stalled"
|
|
148
|
+
- "pending"
|
|
149
|
+
- "processing"
|
|
150
|
+
- "loading"
|
|
151
|
+
- "unresponsive"
|
|
152
|
+
noneOf:
|
|
153
|
+
- "css stuck"
|
|
154
|
+
- "sticky position"
|
|
155
|
+
- "position: sticky"
|
|
156
|
+
- "z-index"
|
|
157
|
+
- "sticky nav"
|
|
158
|
+
- "sticky header"
|
|
159
|
+
- "sticky footer"
|
|
160
|
+
- "overflow: hidden"
|
|
161
|
+
- "add a button"
|
|
162
|
+
- "create a button"
|
|
163
|
+
- "style the button"
|
|
164
|
+
minScore: 4
|
|
165
|
+
category: dev
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
# Investigation Mode — Orchestrated Debugging
|
|
169
|
+
|
|
170
|
+
When a user reports something stuck, hung, broken, or not responding, you are the **diagnostic coordinator**. Do not guess. Follow the triage order, report what you find at every step, and stop when you have a high-confidence root cause.
|
|
171
|
+
|
|
172
|
+
## Reporting Contract
|
|
173
|
+
|
|
174
|
+
Every investigation step MUST follow this pattern:
|
|
175
|
+
|
|
176
|
+
1. **Tell the user what you are checking** — "I'm checking the runtime logs for errors…"
|
|
177
|
+
2. **Share the evidence you found** — paste the relevant log line, status, error, or screenshot
|
|
178
|
+
3. **Explain the next step** — "The logs show a timeout on the DB call. I'll check the connection pool next."
|
|
179
|
+
|
|
180
|
+
Never silently move between steps. The user is already frustrated — silence makes it worse.
|
|
181
|
+
|
|
182
|
+
## Triage Order
|
|
183
|
+
|
|
184
|
+
Work through these in order. Stop as soon as you find the root cause.
|
|
185
|
+
|
|
186
|
+
### 1. Runtime Logs (check first — most issues leave traces here)
|
|
187
|
+
|
|
188
|
+
- **Dev server**: Check terminal output for errors, warnings, unhandled rejections
|
|
189
|
+
- **Vercel logs**: `vercel logs --follow` (production) or `vercel logs <deployment-url>`
|
|
190
|
+
- **Browser console**: Open DevTools → Console tab for client-side errors
|
|
191
|
+
- **If no logs exist**: This is the problem. Add logging before continuing (see "Add Logging" below)
|
|
192
|
+
|
|
193
|
+
Tell the user: "Checking runtime logs…" → share what you found → explain next step.
|
|
194
|
+
|
|
195
|
+
### 2. Workflow / Background Job Status
|
|
196
|
+
|
|
197
|
+
If the app uses workflows, queues, or cron jobs:
|
|
198
|
+
|
|
199
|
+
- Run `vercel workflow runs list` to check recent run statuses
|
|
200
|
+
- Look for runs stuck in `running` state — likely a missing `await` or unresolved promise
|
|
201
|
+
- Check individual run details: `vercel workflow runs get <run-id>`
|
|
202
|
+
- Look for failed steps, retry exhaustion, or timeout errors
|
|
203
|
+
|
|
204
|
+
Tell the user: "Checking workflow run status…" → share the run state → explain next step.
|
|
205
|
+
|
|
206
|
+
### 3. Browser Verification
|
|
207
|
+
|
|
208
|
+
Use agent-browser to visually verify what the user sees:
|
|
209
|
+
|
|
210
|
+
- Take a screenshot of the current page state
|
|
211
|
+
- Check the browser console for JavaScript errors
|
|
212
|
+
- Check the Network tab for failed requests (4xx/5xx, CORS errors, hanging requests)
|
|
213
|
+
- Look for hydration mismatches or React error boundaries
|
|
214
|
+
|
|
215
|
+
Tell the user: "Taking a browser screenshot to see the current state…" → share the screenshot → explain what you see.
|
|
216
|
+
|
|
217
|
+
### 4. Deploy / Environment Status
|
|
218
|
+
|
|
219
|
+
- `vercel inspect <deployment-url>` — check build output, function regions, environment
|
|
220
|
+
- `vercel ls` — verify the latest deployment succeeded
|
|
221
|
+
- Check for environment variable mismatches between local and production
|
|
222
|
+
- Verify the correct branch/commit is deployed
|
|
223
|
+
|
|
224
|
+
Tell the user: "Checking deployment status…" → share the deployment state → explain findings.
|
|
225
|
+
|
|
226
|
+
## Stop Condition
|
|
227
|
+
|
|
228
|
+
**Stop investigating when:**
|
|
229
|
+
- You find a high-confidence root cause (specific error, missing env var, failed step, etc.)
|
|
230
|
+
- Two consecutive triage steps produce no signal — report what you checked and that you found no evidence, then ask the user for more context
|
|
231
|
+
|
|
232
|
+
**Do not** keep cycling through steps hoping something appears. If logs are empty and workflows look fine, say so and ask the user what they expected to happen.
|
|
233
|
+
|
|
234
|
+
## Common Hang Causes
|
|
235
|
+
|
|
236
|
+
When logs point to code issues, check for these frequent culprits:
|
|
237
|
+
|
|
238
|
+
- **Missing `await`**: Async functions called without await cause silent failures
|
|
239
|
+
- **Infinite loops**: `while(true)` without break conditions, recursive calls without base cases
|
|
240
|
+
- **Unresolved promises**: `new Promise()` that never calls `resolve()` or `reject()`
|
|
241
|
+
- **Missing env vars**: `process.env.X` returning `undefined` causing silent auth/DB failures
|
|
242
|
+
- **Connection pool exhaustion**: Database connections not being released
|
|
243
|
+
- **Middleware chains**: A middleware that never calls `next()` or returns a response
|
|
244
|
+
- **Timeout misconfigs**: Function timeout too short for the operation (check `vercel.json` maxDuration)
|
|
245
|
+
|
|
246
|
+
## Add Logging (If Missing)
|
|
247
|
+
|
|
248
|
+
If the investigation reveals insufficient observability, **add structured logging immediately** — you cannot debug what you cannot see.
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
// API routes — wrap handlers with try/catch + logging
|
|
252
|
+
export async function POST(request: Request) {
|
|
253
|
+
console.log('[api/route] incoming request', { method: 'POST', url: request.url });
|
|
254
|
+
try {
|
|
255
|
+
const result = await doWork();
|
|
256
|
+
console.log('[api/route] success', { resultId: result.id });
|
|
257
|
+
return Response.json(result);
|
|
258
|
+
} catch (error) {
|
|
259
|
+
console.error('[api/route] failed', { error: String(error), stack: (error as Error).stack });
|
|
260
|
+
return Response.json({ error: 'Internal error' }, { status: 500 });
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
// Workflow steps — log entry/exit of every step
|
|
267
|
+
const result = await step.run('process-data', async () => {
|
|
268
|
+
console.log('[workflow:process-data] step started');
|
|
269
|
+
const data = await fetchData();
|
|
270
|
+
console.log('[workflow:process-data] step completed', { count: data.length });
|
|
271
|
+
return data;
|
|
272
|
+
});
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Key principle**: Every async boundary, every external call, every step entry/exit should have a log line. When something hangs, the last log line tells you exactly where it stopped.
|
|
276
|
+
|
|
277
|
+
> **Cross-reference**: For comprehensive logging setup (OpenTelemetry, log drains, Sentry, Vercel Analytics), see the **observability** skill. For workflow-specific debugging, see the **workflow** skill.
|