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,297 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sql-optimization
|
|
3
|
+
description: 'Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance.'
|
|
4
|
+
category: database
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SQL Performance Optimization Assistant
|
|
8
|
+
|
|
9
|
+
Expert SQL performance optimization for ${selection} (or entire project if no selection). Focus on universal SQL optimization techniques that work across MySQL, PostgreSQL, SQL Server, Oracle, and other SQL databases.
|
|
10
|
+
|
|
11
|
+
## 🎯 Core Optimization Areas
|
|
12
|
+
|
|
13
|
+
### Query Performance Analysis
|
|
14
|
+
```sql
|
|
15
|
+
-- ❌ BAD: Inefficient query patterns
|
|
16
|
+
SELECT * FROM orders o
|
|
17
|
+
WHERE YEAR(o.created_at) = 2024
|
|
18
|
+
AND o.customer_id IN (
|
|
19
|
+
SELECT c.id FROM customers c WHERE c.status = 'active'
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
-- ✅ GOOD: Optimized query with proper indexing hints
|
|
23
|
+
SELECT o.id, o.customer_id, o.total_amount, o.created_at
|
|
24
|
+
FROM orders o
|
|
25
|
+
INNER JOIN customers c ON o.customer_id = c.id
|
|
26
|
+
WHERE o.created_at >= '2024-01-01'
|
|
27
|
+
AND o.created_at < '2025-01-01'
|
|
28
|
+
AND c.status = 'active';
|
|
29
|
+
|
|
30
|
+
-- Required indexes:
|
|
31
|
+
-- CREATE INDEX idx_orders_created_at ON orders(created_at);
|
|
32
|
+
-- CREATE INDEX idx_customers_status ON customers(status);
|
|
33
|
+
-- CREATE INDEX idx_orders_customer_id ON orders(customer_id);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Index Strategy Optimization
|
|
37
|
+
```sql
|
|
38
|
+
-- ❌ BAD: Poor indexing strategy
|
|
39
|
+
CREATE INDEX idx_user_data ON users(email, first_name, last_name, created_at);
|
|
40
|
+
|
|
41
|
+
-- ✅ GOOD: Optimized composite indexing
|
|
42
|
+
-- For queries filtering by email first, then sorting by created_at
|
|
43
|
+
CREATE INDEX idx_users_email_created ON users(email, created_at);
|
|
44
|
+
|
|
45
|
+
-- For full-text name searches
|
|
46
|
+
CREATE INDEX idx_users_name ON users(last_name, first_name);
|
|
47
|
+
|
|
48
|
+
-- For user status queries
|
|
49
|
+
CREATE INDEX idx_users_status_created ON users(status, created_at)
|
|
50
|
+
WHERE status IS NOT NULL;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Subquery Optimization
|
|
54
|
+
```sql
|
|
55
|
+
-- ❌ BAD: Correlated subquery
|
|
56
|
+
SELECT p.product_name, p.price
|
|
57
|
+
FROM products p
|
|
58
|
+
WHERE p.price > (
|
|
59
|
+
SELECT AVG(price)
|
|
60
|
+
FROM products p2
|
|
61
|
+
WHERE p2.category_id = p.category_id
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
-- ✅ GOOD: Window function approach
|
|
65
|
+
SELECT product_name, price
|
|
66
|
+
FROM (
|
|
67
|
+
SELECT product_name, price,
|
|
68
|
+
AVG(price) OVER (PARTITION BY category_id) as avg_category_price
|
|
69
|
+
FROM products
|
|
70
|
+
) ranked
|
|
71
|
+
WHERE price > avg_category_price;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 📊 Performance Tuning Techniques
|
|
75
|
+
|
|
76
|
+
### JOIN Optimization
|
|
77
|
+
```sql
|
|
78
|
+
-- ❌ BAD: Inefficient JOIN order and conditions
|
|
79
|
+
SELECT o.*, c.name, p.product_name
|
|
80
|
+
FROM orders o
|
|
81
|
+
LEFT JOIN customers c ON o.customer_id = c.id
|
|
82
|
+
LEFT JOIN order_items oi ON o.id = oi.order_id
|
|
83
|
+
LEFT JOIN products p ON oi.product_id = p.id
|
|
84
|
+
WHERE o.created_at > '2024-01-01'
|
|
85
|
+
AND c.status = 'active';
|
|
86
|
+
|
|
87
|
+
-- ✅ GOOD: Optimized JOIN with filtering
|
|
88
|
+
SELECT o.id, o.total_amount, c.name, p.product_name
|
|
89
|
+
FROM orders o
|
|
90
|
+
INNER JOIN customers c ON o.customer_id = c.id AND c.status = 'active'
|
|
91
|
+
INNER JOIN order_items oi ON o.id = oi.order_id
|
|
92
|
+
INNER JOIN products p ON oi.product_id = p.id
|
|
93
|
+
WHERE o.created_at > '2024-01-01';
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Pagination Optimization
|
|
97
|
+
```sql
|
|
98
|
+
-- ❌ BAD: OFFSET-based pagination (slow for large offsets)
|
|
99
|
+
SELECT * FROM products
|
|
100
|
+
ORDER BY created_at DESC
|
|
101
|
+
LIMIT 20 OFFSET 10000;
|
|
102
|
+
|
|
103
|
+
-- ✅ GOOD: Cursor-based pagination
|
|
104
|
+
SELECT * FROM products
|
|
105
|
+
WHERE created_at < '2024-06-15 10:30:00'
|
|
106
|
+
ORDER BY created_at DESC
|
|
107
|
+
LIMIT 20;
|
|
108
|
+
|
|
109
|
+
-- Or using ID-based cursor
|
|
110
|
+
SELECT * FROM products
|
|
111
|
+
WHERE id > 1000
|
|
112
|
+
ORDER BY id
|
|
113
|
+
LIMIT 20;
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Aggregation Optimization
|
|
117
|
+
```sql
|
|
118
|
+
-- ❌ BAD: Multiple separate aggregation queries
|
|
119
|
+
SELECT COUNT(*) FROM orders WHERE status = 'pending';
|
|
120
|
+
SELECT COUNT(*) FROM orders WHERE status = 'shipped';
|
|
121
|
+
SELECT COUNT(*) FROM orders WHERE status = 'delivered';
|
|
122
|
+
|
|
123
|
+
-- ✅ GOOD: Single query with conditional aggregation
|
|
124
|
+
SELECT
|
|
125
|
+
COUNT(CASE WHEN status = 'pending' THEN 1 END) as pending_count,
|
|
126
|
+
COUNT(CASE WHEN status = 'shipped' THEN 1 END) as shipped_count,
|
|
127
|
+
COUNT(CASE WHEN status = 'delivered' THEN 1 END) as delivered_count
|
|
128
|
+
FROM orders;
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## 🔍 Query Anti-Patterns
|
|
132
|
+
|
|
133
|
+
### SELECT Performance Issues
|
|
134
|
+
```sql
|
|
135
|
+
-- ❌ BAD: SELECT * anti-pattern
|
|
136
|
+
SELECT * FROM large_table lt
|
|
137
|
+
JOIN another_table at ON lt.id = at.ref_id;
|
|
138
|
+
|
|
139
|
+
-- ✅ GOOD: Explicit column selection
|
|
140
|
+
SELECT lt.id, lt.name, at.value
|
|
141
|
+
FROM large_table lt
|
|
142
|
+
JOIN another_table at ON lt.id = at.ref_id;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### WHERE Clause Optimization
|
|
146
|
+
```sql
|
|
147
|
+
-- ❌ BAD: Function calls in WHERE clause
|
|
148
|
+
SELECT * FROM orders
|
|
149
|
+
WHERE UPPER(customer_email) = 'JOHN@EXAMPLE.COM';
|
|
150
|
+
|
|
151
|
+
-- ✅ GOOD: Index-friendly WHERE clause
|
|
152
|
+
SELECT * FROM orders
|
|
153
|
+
WHERE customer_email = 'john@example.com';
|
|
154
|
+
-- Consider: CREATE INDEX idx_orders_email ON orders(LOWER(customer_email));
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### OR vs UNION Optimization
|
|
158
|
+
```sql
|
|
159
|
+
-- ❌ BAD: Complex OR conditions
|
|
160
|
+
SELECT * FROM products
|
|
161
|
+
WHERE (category = 'electronics' AND price < 1000)
|
|
162
|
+
OR (category = 'books' AND price < 50);
|
|
163
|
+
|
|
164
|
+
-- ✅ GOOD: UNION approach for better optimization
|
|
165
|
+
SELECT * FROM products WHERE category = 'electronics' AND price < 1000
|
|
166
|
+
UNION ALL
|
|
167
|
+
SELECT * FROM products WHERE category = 'books' AND price < 50;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 📈 Database-Agnostic Optimization
|
|
171
|
+
|
|
172
|
+
### Batch Operations
|
|
173
|
+
```sql
|
|
174
|
+
-- ❌ BAD: Row-by-row operations
|
|
175
|
+
INSERT INTO products (name, price) VALUES ('Product 1', 10.00);
|
|
176
|
+
INSERT INTO products (name, price) VALUES ('Product 2', 15.00);
|
|
177
|
+
INSERT INTO products (name, price) VALUES ('Product 3', 20.00);
|
|
178
|
+
|
|
179
|
+
-- ✅ GOOD: Batch insert
|
|
180
|
+
INSERT INTO products (name, price) VALUES
|
|
181
|
+
('Product 1', 10.00),
|
|
182
|
+
('Product 2', 15.00),
|
|
183
|
+
('Product 3', 20.00);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Temporary Table Usage
|
|
187
|
+
```sql
|
|
188
|
+
-- ✅ GOOD: Using temporary tables for complex operations
|
|
189
|
+
CREATE TEMPORARY TABLE temp_calculations AS
|
|
190
|
+
SELECT customer_id,
|
|
191
|
+
SUM(total_amount) as total_spent,
|
|
192
|
+
COUNT(*) as order_count
|
|
193
|
+
FROM orders
|
|
194
|
+
WHERE created_at >= '2024-01-01'
|
|
195
|
+
GROUP BY customer_id;
|
|
196
|
+
|
|
197
|
+
-- Use the temp table for further calculations
|
|
198
|
+
SELECT c.name, tc.total_spent, tc.order_count
|
|
199
|
+
FROM temp_calculations tc
|
|
200
|
+
JOIN customers c ON tc.customer_id = c.id
|
|
201
|
+
WHERE tc.total_spent > 1000;
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 🛠️ Index Management
|
|
205
|
+
|
|
206
|
+
### Index Design Principles
|
|
207
|
+
```sql
|
|
208
|
+
-- ✅ GOOD: Covering index design
|
|
209
|
+
CREATE INDEX idx_orders_covering
|
|
210
|
+
ON orders(customer_id, created_at)
|
|
211
|
+
INCLUDE (total_amount, status); -- SQL Server syntax
|
|
212
|
+
-- Or: CREATE INDEX idx_orders_covering ON orders(customer_id, created_at, total_amount, status); -- Other databases
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Partial Index Strategy
|
|
216
|
+
```sql
|
|
217
|
+
-- ✅ GOOD: Partial indexes for specific conditions
|
|
218
|
+
CREATE INDEX idx_orders_active
|
|
219
|
+
ON orders(created_at)
|
|
220
|
+
WHERE status IN ('pending', 'processing');
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## 📊 Performance Monitoring Queries
|
|
224
|
+
|
|
225
|
+
### Query Performance Analysis
|
|
226
|
+
```sql
|
|
227
|
+
-- Generic approach to identify slow queries
|
|
228
|
+
-- (Specific syntax varies by database)
|
|
229
|
+
|
|
230
|
+
-- For MySQL:
|
|
231
|
+
SELECT query_time, lock_time, rows_sent, rows_examined, sql_text
|
|
232
|
+
FROM mysql.slow_log
|
|
233
|
+
ORDER BY query_time DESC;
|
|
234
|
+
|
|
235
|
+
-- For PostgreSQL:
|
|
236
|
+
SELECT query, calls, total_time, mean_time
|
|
237
|
+
FROM pg_stat_statements
|
|
238
|
+
ORDER BY total_time DESC;
|
|
239
|
+
|
|
240
|
+
-- For SQL Server:
|
|
241
|
+
SELECT
|
|
242
|
+
qs.total_elapsed_time/qs.execution_count as avg_elapsed_time,
|
|
243
|
+
qs.execution_count,
|
|
244
|
+
SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
|
|
245
|
+
((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(qt.text)
|
|
246
|
+
ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)+1) as query_text
|
|
247
|
+
FROM sys.dm_exec_query_stats qs
|
|
248
|
+
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
|
|
249
|
+
ORDER BY avg_elapsed_time DESC;
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## 🎯 Universal Optimization Checklist
|
|
253
|
+
|
|
254
|
+
### Query Structure
|
|
255
|
+
- [ ] Avoiding SELECT * in production queries
|
|
256
|
+
- [ ] Using appropriate JOIN types (INNER vs LEFT/RIGHT)
|
|
257
|
+
- [ ] Filtering early in WHERE clauses
|
|
258
|
+
- [ ] Using EXISTS instead of IN for subqueries when appropriate
|
|
259
|
+
- [ ] Avoiding functions in WHERE clauses that prevent index usage
|
|
260
|
+
|
|
261
|
+
### Index Strategy
|
|
262
|
+
- [ ] Creating indexes on frequently queried columns
|
|
263
|
+
- [ ] Using composite indexes in the right column order
|
|
264
|
+
- [ ] Avoiding over-indexing (impacts INSERT/UPDATE performance)
|
|
265
|
+
- [ ] Using covering indexes where beneficial
|
|
266
|
+
- [ ] Creating partial indexes for specific query patterns
|
|
267
|
+
|
|
268
|
+
### Data Types and Schema
|
|
269
|
+
- [ ] Using appropriate data types for storage efficiency
|
|
270
|
+
- [ ] Normalizing appropriately (3NF for OLTP, denormalized for OLAP)
|
|
271
|
+
- [ ] Using constraints to help query optimizer
|
|
272
|
+
- [ ] Partitioning large tables when appropriate
|
|
273
|
+
|
|
274
|
+
### Query Patterns
|
|
275
|
+
- [ ] Using LIMIT/TOP for result set control
|
|
276
|
+
- [ ] Implementing efficient pagination strategies
|
|
277
|
+
- [ ] Using batch operations for bulk data changes
|
|
278
|
+
- [ ] Avoiding N+1 query problems
|
|
279
|
+
- [ ] Using prepared statements for repeated queries
|
|
280
|
+
|
|
281
|
+
### Performance Testing
|
|
282
|
+
- [ ] Testing queries with realistic data volumes
|
|
283
|
+
- [ ] Analyzing query execution plans
|
|
284
|
+
- [ ] Monitoring query performance over time
|
|
285
|
+
- [ ] Setting up alerts for slow queries
|
|
286
|
+
- [ ] Regular index usage analysis
|
|
287
|
+
|
|
288
|
+
## 📝 Optimization Methodology
|
|
289
|
+
|
|
290
|
+
1. **Identify**: Use database-specific tools to find slow queries
|
|
291
|
+
2. **Analyze**: Examine execution plans and identify bottlenecks
|
|
292
|
+
3. **Optimize**: Apply appropriate optimization techniques
|
|
293
|
+
4. **Test**: Verify performance improvements
|
|
294
|
+
5. **Monitor**: Continuously track performance metrics
|
|
295
|
+
6. **Iterate**: Regular performance review and optimization
|
|
296
|
+
|
|
297
|
+
Focus on measurable performance improvements and always test optimizations with realistic data volumes and query patterns.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dependency-audit
|
|
3
|
+
version: 1
|
|
4
|
+
category: security
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Dependency Audit
|
|
8
|
+
|
|
9
|
+
Check dependencies for security vulnerabilities, outdated packages, license issues, and bloat.
|
|
10
|
+
|
|
11
|
+
## When to use this skill
|
|
12
|
+
|
|
13
|
+
- User wants to audit, update, or clean up dependencies
|
|
14
|
+
- User asks "are my dependencies secure", "what needs updating", "what licenses do I have"
|
|
15
|
+
- User is preparing for a release or security review
|
|
16
|
+
- User mentions "dependencies", "packages", "npm", "pip", "vulnerabilities", "outdated"
|
|
17
|
+
|
|
18
|
+
## Procedure
|
|
19
|
+
|
|
20
|
+
### Step 1: Identify the package manager
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
ls package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null # Node
|
|
24
|
+
ls requirements.txt pyproject.toml Pipfile setup.py 2>/dev/null # Python
|
|
25
|
+
ls Cargo.toml 2>/dev/null # Rust
|
|
26
|
+
ls go.mod 2>/dev/null # Go
|
|
27
|
+
ls Gemfile 2>/dev/null # Ruby
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Step 2: Security audit
|
|
31
|
+
|
|
32
|
+
**npm / Node.js:**
|
|
33
|
+
```
|
|
34
|
+
npm audit
|
|
35
|
+
npm audit --json | python3 -c "
|
|
36
|
+
import json,sys
|
|
37
|
+
data = json.load(sys.stdin)
|
|
38
|
+
vulns = data.get('vulnerabilities', {})
|
|
39
|
+
for name, v in vulns.items():
|
|
40
|
+
print(f\"{v['severity'].upper()}: {name} — {v.get('title', '')}\")
|
|
41
|
+
"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Python (pip):**
|
|
45
|
+
```
|
|
46
|
+
pip install pip-audit 2>/dev/null
|
|
47
|
+
pip-audit
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Or check with safety:
|
|
51
|
+
```
|
|
52
|
+
pip install safety 2>/dev/null
|
|
53
|
+
safety check
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Go:**
|
|
57
|
+
```
|
|
58
|
+
govulncheck ./...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Rust:**
|
|
62
|
+
```
|
|
63
|
+
cargo audit
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 3: Check for outdated packages
|
|
67
|
+
|
|
68
|
+
**npm:**
|
|
69
|
+
```
|
|
70
|
+
npm outdated
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Python:**
|
|
74
|
+
```
|
|
75
|
+
pip list --outdated
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Go:**
|
|
79
|
+
```
|
|
80
|
+
go list -m -u all 2>/dev/null | grep '\['
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 4: License analysis
|
|
84
|
+
|
|
85
|
+
**npm:**
|
|
86
|
+
```
|
|
87
|
+
npx license-checker --summary
|
|
88
|
+
npx license-checker --failOn "GPL-2.0;GPL-3.0;AGPL-3.0" 2>/dev/null
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Python:**
|
|
92
|
+
```
|
|
93
|
+
pip install pip-licenses 2>/dev/null
|
|
94
|
+
pip-licenses --format=table
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Flag licenses that may conflict with your project's license:
|
|
98
|
+
- GPL/AGPL: "copyleft" — may require open-sourcing your code
|
|
99
|
+
- LGPL: generally OK for linking, but check specifics
|
|
100
|
+
- MIT, Apache-2.0, BSD: permissive, generally safe for commercial use
|
|
101
|
+
- Unknown/proprietary: investigate before shipping
|
|
102
|
+
|
|
103
|
+
### Step 5: Identify unused dependencies (Node.js)
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
npx depcheck
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This identifies packages in `package.json` not actually imported in code.
|
|
110
|
+
|
|
111
|
+
### Step 6: Check for notably large packages
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
du -sh node_modules/* 2>/dev/null | sort -rh | head -20
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Or for detailed bundle impact: `npx bundlephobia <package-name>` (check web)
|
|
118
|
+
|
|
119
|
+
## Output format
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
DEPENDENCY AUDIT: my-project (npm)
|
|
123
|
+
|
|
124
|
+
SECURITY — 3 vulnerabilities
|
|
125
|
+
CRITICAL lodash@4.17.11 — Prototype Pollution (CVE-2021-23337)
|
|
126
|
+
Fix: npm update lodash → 4.17.21
|
|
127
|
+
HIGH axios@0.21.0 — SSRF vulnerability (CVE-2020-28168)
|
|
128
|
+
Fix: npm install axios@1.6.0
|
|
129
|
+
|
|
130
|
+
OUTDATED — 12 packages behind
|
|
131
|
+
Major updates (breaking changes possible):
|
|
132
|
+
react 17.0.2 → 18.2.0
|
|
133
|
+
webpack 4.46.0 → 5.88.0
|
|
134
|
+
|
|
135
|
+
Minor/patch (generally safe):
|
|
136
|
+
eslint 8.0.0 → 8.53.0
|
|
137
|
+
typescript 4.9.5 → 5.3.2
|
|
138
|
+
[+ 8 more]
|
|
139
|
+
|
|
140
|
+
LICENSES
|
|
141
|
+
MIT: 45 packages ✓
|
|
142
|
+
Apache-2.0: 12 packages ✓
|
|
143
|
+
ISC: 8 packages ✓
|
|
144
|
+
⚠️ GPL-3.0: 1 package (some-lib) — verify this is acceptable for your use case
|
|
145
|
+
|
|
146
|
+
UNUSED (via depcheck)
|
|
147
|
+
colors, moment — appear unused. Review before removing.
|
|
148
|
+
|
|
149
|
+
RECOMMENDED ACTIONS
|
|
150
|
+
1. Fix CRITICAL and HIGH vulnerabilities immediately (run: npm update lodash axios)
|
|
151
|
+
2. Evaluate React 18 upgrade — significant but well-documented migration path
|
|
152
|
+
3. Investigate GPL-3.0 dependency before commercial distribution
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Pitfalls
|
|
156
|
+
|
|
157
|
+
- Major version updates can be breaking — don't blindly `npm update` everything; review changelogs
|
|
158
|
+
- `npm audit` sometimes flags vulnerabilities in dev-only packages that don't affect production
|
|
159
|
+
- Some "unused" dependencies flagged by depcheck are loaded dynamically or via config — verify before removing
|
|
160
|
+
- License analysis may miss packages with non-standard license declarations — review any `Unknown` entries manually
|
|
161
|
+
|
|
162
|
+
## Verification
|
|
163
|
+
|
|
164
|
+
After fixing vulnerabilities: re-run `npm audit` and confirm the specific CVEs no longer appear.
|
|
165
|
+
After updating packages: run your test suite to catch any regressions from version bumps.
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kami-landing
|
|
3
|
+
description: >
|
|
4
|
+
Produce a print-grade single-page kami (紙 / 纸) document — warm
|
|
5
|
+
parchment canvas, ink-blue accent, serif at one weight, no italic,
|
|
6
|
+
no cool grays. The output reads like a professional white paper or
|
|
7
|
+
studio one-pager, not an app UI. Multilingual by design (EN ·
|
|
8
|
+
zh-CN · ja). One self-contained HTML file, zero dependencies.
|
|
9
|
+
triggers:
|
|
10
|
+
- kami
|
|
11
|
+
- 紙
|
|
12
|
+
- 纸
|
|
13
|
+
- paper one-pager
|
|
14
|
+
- 白皮书
|
|
15
|
+
- white paper
|
|
16
|
+
- parchment landing
|
|
17
|
+
- editorial document
|
|
18
|
+
- print-grade page
|
|
19
|
+
- kami landing
|
|
20
|
+
od:
|
|
21
|
+
category: brand-page
|
|
22
|
+
surface: web
|
|
23
|
+
mode: prototype
|
|
24
|
+
platform: desktop
|
|
25
|
+
scenario: marketing
|
|
26
|
+
featured: 3
|
|
27
|
+
audience: founders, design studios, OSS maintainers, researchers
|
|
28
|
+
tone: editorial, restrained, print-first
|
|
29
|
+
scale: viewport-anchored long-form single page
|
|
30
|
+
preview:
|
|
31
|
+
type: html
|
|
32
|
+
entry: index.html
|
|
33
|
+
reload: debounce-100
|
|
34
|
+
design_system:
|
|
35
|
+
requires: false
|
|
36
|
+
craft:
|
|
37
|
+
requires:
|
|
38
|
+
- typographic-rhythm
|
|
39
|
+
- pixel-discipline
|
|
40
|
+
inputs:
|
|
41
|
+
- id: brand
|
|
42
|
+
label: Brand identity
|
|
43
|
+
description: Name, tagline, location, edition / version, primary URL.
|
|
44
|
+
- id: hero
|
|
45
|
+
label: Hero / cover block
|
|
46
|
+
description: Eyebrow + headline (one line, ≤ 6 words at display size) + tagline + 3 hero meta tokens.
|
|
47
|
+
- id: manifesto
|
|
48
|
+
label: Manifesto paragraph + signature
|
|
49
|
+
- id: metrics
|
|
50
|
+
label: 3-6 metric tiles (value · label · sub)
|
|
51
|
+
- id: chapters
|
|
52
|
+
label: 3-5 numbered chapters (title + lede + body)
|
|
53
|
+
- id: footer
|
|
54
|
+
label: License · year · contact + 3-column site index
|
|
55
|
+
parameters:
|
|
56
|
+
output_format:
|
|
57
|
+
type: enum
|
|
58
|
+
values: [standalone-html]
|
|
59
|
+
default: standalone-html
|
|
60
|
+
language:
|
|
61
|
+
type: enum
|
|
62
|
+
values: [en, zh-CN, ja]
|
|
63
|
+
default: en
|
|
64
|
+
description: >
|
|
65
|
+
Sets the primary serif stack on `:root`. EN uses Charter,
|
|
66
|
+
zh-CN uses TsangerJinKai02 / Source Han Serif, ja uses
|
|
67
|
+
YuMincho. Mixed-script content is allowed inline; the browser
|
|
68
|
+
resolves per-glyph fallback automatically.
|
|
69
|
+
outputs:
|
|
70
|
+
- path: <out>/index.html
|
|
71
|
+
description: Self-contained HTML, kami CSS inlined, zero JS, zero external dependencies beyond Google Fonts.
|
|
72
|
+
capabilities_required:
|
|
73
|
+
- file-write
|
|
74
|
+
example_prompt: |
|
|
75
|
+
Build me a kami-style one-pager for "Lumen Field", an indie studio
|
|
76
|
+
shipping a soundscape app for focus. Hero headline "Soundscapes for
|
|
77
|
+
focused work.", manifesto paragraph + signature "by Lumen Field,
|
|
78
|
+
Berlin", 3 metric tiles (12 soundscapes / 4 presets / 1 daily ritual),
|
|
79
|
+
three numbered chapters covering the studio, the app, and the roadmap.
|
|
80
|
+
English-language stack.
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
# kami-landing
|
|
84
|
+
|
|
85
|
+
Produce a single-page document in the **kami (紙 / 纸)** design system.
|
|
86
|
+
The aesthetic borrows from editorial print, technical white papers,
|
|
87
|
+
and old typewritten correspondence — the goal is *good content on
|
|
88
|
+
good paper*, not *modern app UI*.
|
|
89
|
+
|
|
90
|
+
> **Design system source of truth:** [`design-systems/kami/DESIGN.md`](../../design-systems/kami/DESIGN.md).
|
|
91
|
+
> Read it before shipping. Tokens, type rules, the "ten invariants",
|
|
92
|
+
> and forbidden colors all live there.
|
|
93
|
+
|
|
94
|
+
## What you get
|
|
95
|
+
|
|
96
|
+
A single self-contained HTML file with:
|
|
97
|
+
|
|
98
|
+
- **Warm parchment canvas** (`#f5f4ed`) — never `#ffffff`.
|
|
99
|
+
- **Single chromatic accent** — ink-blue (`#1B365D`), used on the
|
|
100
|
+
section number, the headline accent word, the left rule of the
|
|
101
|
+
manifesto, and the metric values. Anywhere else, ink-blue must
|
|
102
|
+
cover ≤ 5% of the document surface area.
|
|
103
|
+
- **Serif at one weight (500) for hierarchy** — Charter (EN),
|
|
104
|
+
TsangerJinKai02 / Source Han Serif (CN), or YuMincho (JA),
|
|
105
|
+
selected by the `language` parameter. **No italic anywhere.**
|
|
106
|
+
- **Tight print rhythm** — line-heights 1.10–1.55, letter-spacing
|
|
107
|
+
per language (0 for EN, 0.35px for CN, 0.02em for JA).
|
|
108
|
+
- **Numeric stacks set in `font-variant-numeric: tabular-nums`** so
|
|
109
|
+
metric columns and pagination digits sit cleanly aligned.
|
|
110
|
+
- **Depth via 1px rings + whisper shadows** (`0 4px 24px rgba(0,0,0,0.05)`).
|
|
111
|
+
No hard drop shadows, no neumorphism, no backdrop-filter blurs.
|
|
112
|
+
- **Tag fills as solid hex** (e.g. `#E4ECF5`), never `rgba()` —
|
|
113
|
+
print renderers double-paint alpha tags.
|
|
114
|
+
- **Responsive** at 1280 / 980 / 768 / 560.
|
|
115
|
+
|
|
116
|
+
## Page structure
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
1. Eyebrow row — locale switcher · edition · version (12px sans uppercase)
|
|
120
|
+
2. Hero — display headline (96–106px serif 500), tagline (21px),
|
|
121
|
+
three hero-token chips (paper-tinted)
|
|
122
|
+
3. Manifesto — pull paragraph in serif 400, 20px, 1.65 LH, with
|
|
123
|
+
ink-blue left-rule and signature footer
|
|
124
|
+
4. Metrics row — 3-6 cells: value (24px serif 500 ink-blue, tabular-nums),
|
|
125
|
+
label (12px serif 500 olive)
|
|
126
|
+
5. Chapters — numbered (`01`, `02`, …) ink-blue serif 500 14px,
|
|
127
|
+
section title 28-32px, body 14-15px
|
|
128
|
+
6. Footer — kicker word (mega serif 500), license · year · contact,
|
|
129
|
+
three-column site index in 12px serif 500
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Workflow contract
|
|
133
|
+
|
|
134
|
+
### 1. Gather brand brief
|
|
135
|
+
|
|
136
|
+
Use `AskQuestion` (or equivalent) to collect the brand brief in
|
|
137
|
+
chunks. Don't dump the whole input list on the user; ask in two
|
|
138
|
+
rounds:
|
|
139
|
+
|
|
140
|
+
1. Identity round — name, tagline, location, edition / version,
|
|
141
|
+
primary URL, dominant language.
|
|
142
|
+
2. Content round — manifesto paragraph + signature, 3-6 metric
|
|
143
|
+
tiles, 3-5 chapter (title + lede + body) entries.
|
|
144
|
+
|
|
145
|
+
### 2. Pick the language stack
|
|
146
|
+
|
|
147
|
+
The `language` parameter controls which `--serif` stack is set on
|
|
148
|
+
`:root`. Pick based on the dominant language of the manifesto and
|
|
149
|
+
chapter body copy:
|
|
150
|
+
|
|
151
|
+
| `language` | `--serif` | Notes |
|
|
152
|
+
| :--------- | :-------------------------------------------------------- | :------------------------------------- |
|
|
153
|
+
| `en` | Charter, Georgia, Palatino, Times New Roman, serif | default |
|
|
154
|
+
| `zh-CN` | TsangerJinKai02, Source Han Serif SC, Songti SC, Georgia | letter-spacing 0.35px on body |
|
|
155
|
+
| `ja` | YuMincho, Hiragino Mincho ProN, Source Han Serif JP | also override `--olive` to `#4d4c48` (YuMincho strokes are thinner) |
|
|
156
|
+
|
|
157
|
+
Inline mixed-script content is fine — the browser per-glyph fallback
|
|
158
|
+
chain handles it. Do **not** chain all three families inside one
|
|
159
|
+
`font-family` declaration; that dilutes character.
|
|
160
|
+
|
|
161
|
+
### 3. Write `index.html`
|
|
162
|
+
|
|
163
|
+
Output a single file with all CSS inline. Mirror the structure of
|
|
164
|
+
[`example.html`](./example.html) and use only the tokens from
|
|
165
|
+
`design-systems/kami/DESIGN.md`. Do **not** invent new colors,
|
|
166
|
+
weights, or font families.
|
|
167
|
+
|
|
168
|
+
Component primitives the agent can drop in (all defined in the
|
|
169
|
+
example's `<style>` block):
|
|
170
|
+
|
|
171
|
+
- `.eyebrow`, `.label` — sans-serif overlines
|
|
172
|
+
- `.metric` — value + label vertical pair
|
|
173
|
+
- `.section-num` + `.section-title` + `.section-lede`
|
|
174
|
+
- `.tag.standard`, `.tag.brush` — solid-hex tags (one brush max per page)
|
|
175
|
+
- `.quote` — left-rule serif 500 quote
|
|
176
|
+
- `ul.dash` — en-dash bullets in ink-blue
|
|
177
|
+
- `.code` — ivory-bg, 1px-border code block
|
|
178
|
+
- `.footer-kicker` — mega serif 500 word
|
|
179
|
+
|
|
180
|
+
Tag every editable element with `data-od-id="<unique-slug>"` so the
|
|
181
|
+
host app's comment mode can target it.
|
|
182
|
+
|
|
183
|
+
### 4. Self-check before delivering
|
|
184
|
+
|
|
185
|
+
- [ ] Page background is parchment (`#f5f4ed`), never `#ffffff`.
|
|
186
|
+
- [ ] Ink-blue (`#1B365D`) covers ≤ 5% of visible surface — count
|
|
187
|
+
section numbers, the manifesto rule, the metric values, the
|
|
188
|
+
headline accent. Total ≤ 5%.
|
|
189
|
+
- [ ] All grays are warm (R ≈ G > B). No `slate-*`, no `#f3f4f6`.
|
|
190
|
+
- [ ] Serif weight stays at 500 — no `font-weight: 700` or `900`
|
|
191
|
+
anywhere on serif text.
|
|
192
|
+
- [ ] No `font-style: italic` anywhere. Emphasis swaps to ink-blue
|
|
193
|
+
color or a `.tag` instead.
|
|
194
|
+
- [ ] All numeric stacks (metric values, pagination, dates, financial
|
|
195
|
+
figures) carry `font-variant-numeric: tabular-nums`.
|
|
196
|
+
- [ ] All tag fills are solid hex (e.g. `#E4ECF5`), never `rgba()`.
|
|
197
|
+
- [ ] Shadows: at most a `1px` ring or a `0 4px 24px rgba(0,0,0,0.05)`
|
|
198
|
+
whisper. No hard drop shadows.
|
|
199
|
+
- [ ] Headline ≤ 6 words at display size; CJK ≤ 8 characters.
|
|
200
|
+
- [ ] At 768px and 560px the layout collapses to one column without
|
|
201
|
+
horizontal scroll.
|
|
202
|
+
|
|
203
|
+
## Files in this skill
|
|
204
|
+
|
|
205
|
+
```text
|
|
206
|
+
skills/kami-landing/
|
|
207
|
+
├── SKILL.md # this contract
|
|
208
|
+
├── README.md # human quick-start
|
|
209
|
+
└── example.html # canonical Open Design rendering
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Boundaries
|
|
213
|
+
|
|
214
|
+
- **Do not** invent new colors or typefaces. The kami palette is
|
|
215
|
+
fixed; if a brief demands a brand color, push back or render the
|
|
216
|
+
brand color as a single `.tag.brush` accent.
|
|
217
|
+
- **Do not** introduce a second accent color. Pick ink-blue or pick
|
|
218
|
+
nothing.
|
|
219
|
+
- **Do not** mix all three font stacks in one declaration; pick the
|
|
220
|
+
dominant language, override `--serif` on `:root`, and let the
|
|
221
|
+
browser per-glyph fallback resolve mixed-script inline content.
|
|
222
|
+
- **Do not** use `rgba()` for tag fills — print renderers
|
|
223
|
+
double-paint alpha tags. Use the pre-blended solid hex from the
|
|
224
|
+
table in `design-systems/kami/DESIGN.md` §2.
|
|
225
|
+
- **Do not** add JavaScript for animation. The page is paper, not
|
|
226
|
+
an app — motion belongs to the reader scrolling.
|
|
227
|
+
|
|
228
|
+
## See also
|
|
229
|
+
|
|
230
|
+
- [`design-systems/kami/DESIGN.md`](../../design-systems/kami/DESIGN.md) — the full token spec.
|
|
231
|
+
- [`skills/kami-deck/`](../kami-deck/) — sister skill that produces a
|
|
232
|
+
slide deck in the same kami language.
|
|
233
|
+
- Upstream: [`tw93/kami`](https://github.com/tw93/kami) — original
|
|
234
|
+
Claude skill (MIT) that the design system adapts.
|