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,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scaffolding-oracle-to-postgres-migration-test-project
|
|
3
|
+
description: 'Scaffolds an xUnit integration test project for validating Oracle-to-PostgreSQL database migration behavior in .NET solutions. Creates the test project, transaction-rollback base class, and seed data manager. Use when setting up test infrastructure before writing migration integration tests, or when a test project is needed for Oracle-to-PostgreSQL validation.'
|
|
4
|
+
category: dev
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Scaffolding an Integration Test Project for Oracle-to-PostgreSQL Migration
|
|
8
|
+
|
|
9
|
+
Creates a compilable, empty xUnit test project with transaction management and seed data infrastructure for a single target project. Run once per project before writing tests.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Progress:
|
|
15
|
+
- [ ] Step 1: Inspect the target project
|
|
16
|
+
- [ ] Step 2: Create the xUnit test project
|
|
17
|
+
- [ ] Step 3: Implement transaction-rollback base class
|
|
18
|
+
- [ ] Step 4: Implement seed data manager
|
|
19
|
+
- [ ] Step 5: Verify the project compiles
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Step 1: Inspect the target project**
|
|
23
|
+
|
|
24
|
+
Read the target project's `.csproj` to determine the .NET version and existing package references. Match these versions exactly — do not upgrade.
|
|
25
|
+
|
|
26
|
+
**Step 2: Create the xUnit test project**
|
|
27
|
+
|
|
28
|
+
- Target the same .NET version as the application under test.
|
|
29
|
+
- Add NuGet packages for Oracle database connectivity and xUnit.
|
|
30
|
+
- Add a project reference to the target project only — no other application projects.
|
|
31
|
+
- Add an `appsettings.json` configured for Oracle database connectivity.
|
|
32
|
+
|
|
33
|
+
**Step 3: Implement transaction-rollback base class**
|
|
34
|
+
|
|
35
|
+
- Create a base test class that opens a transaction before each test and rolls it back after.
|
|
36
|
+
- Catch and handle all exceptions to guarantee rollback.
|
|
37
|
+
- Make the pattern inheritable by all downstream test classes.
|
|
38
|
+
|
|
39
|
+
**Step 4: Implement seed data manager**
|
|
40
|
+
|
|
41
|
+
- Create a global seed manager for loading test data within the transaction scope.
|
|
42
|
+
- Do not commit seed data — transactions roll back after each test.
|
|
43
|
+
- Do not use `TRUNCATE TABLE` — preserve existing database data.
|
|
44
|
+
- Reuse existing seed files if available.
|
|
45
|
+
- Establish a naming convention for seed file location that downstream test creation will follow.
|
|
46
|
+
|
|
47
|
+
**Step 5: Verify the project compiles**
|
|
48
|
+
|
|
49
|
+
Build the test project and confirm it compiles with zero errors before finishing.
|
|
50
|
+
|
|
51
|
+
## Key Constraints
|
|
52
|
+
|
|
53
|
+
- Oracle is the golden behavior source — scaffold for Oracle first.
|
|
54
|
+
- Keep to existing .NET and C# versions; do not introduce newer language or runtime features.
|
|
55
|
+
- Output is an empty test project with infrastructure only — no test cases.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spring-boot-testing
|
|
3
|
+
description: Expert Spring Boot 4 testing specialist that selects the best Spring Boot testing techniques for your situation with Junit 6 and AssertJ.
|
|
4
|
+
category: dev
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Spring Boot Testing
|
|
8
|
+
|
|
9
|
+
This skill provides expert guide for testing Spring Boot 4 applications with modern patterns and best practices.
|
|
10
|
+
|
|
11
|
+
## Core Principles
|
|
12
|
+
|
|
13
|
+
1. **Test Pyramid**: Unit (fast) > Slice (focused) > Integration (complete)
|
|
14
|
+
2. **Right Tool**: Use the narrowest slice that gives you confidence
|
|
15
|
+
3. **AssertJ Style**: Fluent, readable assertions over verbose matchers
|
|
16
|
+
4. **Modern APIs**: Prefer MockMvcTester and RestTestClient over legacy alternatives
|
|
17
|
+
|
|
18
|
+
## Which Test Slice?
|
|
19
|
+
|
|
20
|
+
| Scenario | Annotation | Reference |
|
|
21
|
+
|----------|------------|-----------|
|
|
22
|
+
| Controller + HTTP semantics | `@WebMvcTest` | [references/webmvctest.md](references/webmvctest.md) |
|
|
23
|
+
| Repository + JPA queries | `@DataJpaTest` | [references/datajpatest.md](references/datajpatest.md) |
|
|
24
|
+
| REST client + external APIs | `@RestClientTest` | [references/restclienttest.md](references/restclienttest.md) |
|
|
25
|
+
| JSON (de)serialization | `@JsonTest` | [references/test-slices-overview.md](references/test-slices-overview.md) |
|
|
26
|
+
| Full application | `@SpringBootTest` | [references/test-slices-overview.md](references/test-slices-overview.md) |
|
|
27
|
+
|
|
28
|
+
## Test Slices Reference
|
|
29
|
+
|
|
30
|
+
- [references/test-slices-overview.md](references/test-slices-overview.md) - Decision matrix and comparison
|
|
31
|
+
- [references/webmvctest.md](references/webmvctest.md) - Web layer with MockMvc
|
|
32
|
+
- [references/datajpatest.md](references/datajpatest.md) - Data layer with Testcontainers
|
|
33
|
+
- [references/restclienttest.md](references/restclienttest.md) - REST client testing
|
|
34
|
+
|
|
35
|
+
## Testing Tools Reference
|
|
36
|
+
|
|
37
|
+
- [references/mockmvc-tester.md](references/mockmvc-tester.md) - AssertJ-style MockMvc (3.2+)
|
|
38
|
+
- [references/mockmvc-classic.md](references/mockmvc-classic.md) - Traditional MockMvc (pre-3.2)
|
|
39
|
+
- [references/resttestclient.md](references/resttestclient.md) - Spring Boot 4+ REST client
|
|
40
|
+
- [references/mockitobean.md](references/mockitobean.md) - Mocking dependencies
|
|
41
|
+
|
|
42
|
+
## Assertion Libraries
|
|
43
|
+
|
|
44
|
+
- [references/assertj-basics.md](references/assertj-basics.md) - Scalars, strings, booleans, dates
|
|
45
|
+
- [references/assertj-collections.md](references/assertj-collections.md) - Lists, Sets, Maps, arrays
|
|
46
|
+
|
|
47
|
+
## Testcontainers
|
|
48
|
+
|
|
49
|
+
- [references/testcontainers-jdbc.md](references/testcontainers-jdbc.md) - PostgreSQL, MySQL, etc.
|
|
50
|
+
|
|
51
|
+
## Test Data Generation
|
|
52
|
+
|
|
53
|
+
- [references/instancio.md](references/instancio.md) - Generate complex test objects (3+ properties)
|
|
54
|
+
|
|
55
|
+
## Performance & Migration
|
|
56
|
+
|
|
57
|
+
- [references/context-caching.md](references/context-caching.md) - Speed up test suites
|
|
58
|
+
- [references/sb4-migration.md](references/sb4-migration.md) - Spring Boot 4.0 changes
|
|
59
|
+
|
|
60
|
+
## Quick Decision Tree
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Testing a controller endpoint?
|
|
64
|
+
Yes → @WebMvcTest with MockMvcTester
|
|
65
|
+
|
|
66
|
+
Testing repository queries?
|
|
67
|
+
Yes → @DataJpaTest with Testcontainers (real DB)
|
|
68
|
+
|
|
69
|
+
Testing business logic in service?
|
|
70
|
+
Yes → Plain JUnit + Mockito (no Spring context)
|
|
71
|
+
|
|
72
|
+
Testing external API client?
|
|
73
|
+
Yes → @RestClientTest with MockRestServiceServer
|
|
74
|
+
|
|
75
|
+
Testing JSON mapping?
|
|
76
|
+
Yes → @JsonTest
|
|
77
|
+
|
|
78
|
+
Need full integration test?
|
|
79
|
+
Yes → @SpringBootTest with minimal context config
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Spring Boot 4 Highlights
|
|
83
|
+
|
|
84
|
+
- **RestTestClient**: Modern alternative to TestRestTemplate
|
|
85
|
+
- **@MockitoBean**: Replaces @MockBean (deprecated)
|
|
86
|
+
- **MockMvcTester**: AssertJ-style assertions for web tests
|
|
87
|
+
- **Modular starters**: Technology-specific test starters
|
|
88
|
+
- **Context pausing**: Automatic pausing of cached contexts (Spring Framework 7)
|
|
89
|
+
|
|
90
|
+
## Testing Best Practices
|
|
91
|
+
|
|
92
|
+
### Code Complexity Assessment
|
|
93
|
+
|
|
94
|
+
When a method or class is too complex to test effectively:
|
|
95
|
+
|
|
96
|
+
1. **Analyze complexity** - If you need more than 5-7 test cases to cover a single method, it's likely too complex
|
|
97
|
+
2. **Recommend refactoring** - Suggest breaking the code into smaller, focused functions
|
|
98
|
+
3. **User decision** - If the user agrees to refactor, help identify extraction points
|
|
99
|
+
4. **Proceed if needed** - If the user decides to continue with the complex code, implement tests despite the difficulty
|
|
100
|
+
|
|
101
|
+
**Example of refactoring recommendation:**
|
|
102
|
+
```java
|
|
103
|
+
// Before: Complex method hard to test
|
|
104
|
+
public Order processOrder(OrderRequest request) {
|
|
105
|
+
// Validation, discount calculation, payment, inventory, notification...
|
|
106
|
+
// 50+ lines of mixed concerns
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// After: Refactored into testable units
|
|
110
|
+
public Order processOrder(OrderRequest request) {
|
|
111
|
+
validateOrder(request);
|
|
112
|
+
var order = createOrder(request);
|
|
113
|
+
applyDiscount(order);
|
|
114
|
+
processPayment(order);
|
|
115
|
+
updateInventory(order);
|
|
116
|
+
sendNotification(order);
|
|
117
|
+
return order;
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Avoid Code Redundancy
|
|
122
|
+
|
|
123
|
+
Create helper methods for commonly used objects and mock setup to enhance readability and maintainability.
|
|
124
|
+
|
|
125
|
+
### Test Organization with @DisplayName
|
|
126
|
+
|
|
127
|
+
Use descriptive display names to clarify test intent:
|
|
128
|
+
|
|
129
|
+
```java
|
|
130
|
+
@Test
|
|
131
|
+
@DisplayName("Should calculate discount for VIP customer")
|
|
132
|
+
void shouldCalculateDiscountForVip() { }
|
|
133
|
+
|
|
134
|
+
@Test
|
|
135
|
+
@DisplayName("Should reject order when customer has insufficient credit")
|
|
136
|
+
void shouldRejectOrderForInsufficientCredit() { }
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Test Coverage Order
|
|
140
|
+
|
|
141
|
+
Always structure tests in this order:
|
|
142
|
+
|
|
143
|
+
1. **Main scenario** - The happy path, most common use case
|
|
144
|
+
2. **Other paths** - Alternative valid scenarios, edge cases
|
|
145
|
+
3. **Exceptions/Errors** - Invalid inputs, error conditions, failure modes
|
|
146
|
+
|
|
147
|
+
### Test Production Scenarios
|
|
148
|
+
|
|
149
|
+
Write tests with real production scenarios in mind. This makes tests more relatable and helps understand code behavior in actual production cases.
|
|
150
|
+
|
|
151
|
+
### Test Coverage Goals
|
|
152
|
+
|
|
153
|
+
Aim for 80% code coverage as a practical balance between quality and effort. Higher coverage is beneficial but not the only goal.
|
|
154
|
+
|
|
155
|
+
Use Jacoco maven plugin for coverage reporting and tracking.
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
**Coverage Rules:**
|
|
159
|
+
- 80+% coverage minimum
|
|
160
|
+
- Focus on meaningful assertions, not just execution
|
|
161
|
+
|
|
162
|
+
**What to Prioritize:**
|
|
163
|
+
1. Business-critical paths (payment processing, order validation)
|
|
164
|
+
2. Complex algorithms (pricing, discount calculations)
|
|
165
|
+
3. Error handling (exceptions, edge cases)
|
|
166
|
+
4. Integration points (external APIs, databases)
|
|
167
|
+
|
|
168
|
+
## Dependencies (Spring Boot 4)
|
|
169
|
+
|
|
170
|
+
```xml
|
|
171
|
+
<dependency>
|
|
172
|
+
<groupId>org.springframework.boot</groupId>
|
|
173
|
+
<artifactId>spring-boot-starter-test</artifactId>
|
|
174
|
+
<scope>test</scope>
|
|
175
|
+
</dependency>
|
|
176
|
+
|
|
177
|
+
<!-- For WebMvc tests -->
|
|
178
|
+
<dependency>
|
|
179
|
+
<groupId>org.springframework.boot</groupId>
|
|
180
|
+
<artifactId>spring-boot-starter-webmvc-test</artifactId>
|
|
181
|
+
<scope>test</scope>
|
|
182
|
+
</dependency>
|
|
183
|
+
|
|
184
|
+
<!-- For Testcontainers -->
|
|
185
|
+
<dependency>
|
|
186
|
+
<groupId>org.springframework.boot</groupId>
|
|
187
|
+
<artifactId>spring-boot-testcontainers</artifactId>
|
|
188
|
+
<scope>test</scope>
|
|
189
|
+
</dependency>
|
|
190
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sync-upstream
|
|
3
|
+
description: Update a stale session branch by rebasing onto the latest origin. Use when the upstream has moved significantly and the session needs to catch up, resolving conflicts by preserving upstream changes and adapting session work to fit.
|
|
4
|
+
category: dev
|
|
5
|
+
---
|
|
6
|
+
<!-- Customize this skill and select save to override its behavior. Delete that copy to restore the built-in behavior. -->
|
|
7
|
+
|
|
8
|
+
# Update Branch
|
|
9
|
+
|
|
10
|
+
Rebase the current session branch onto the latest upstream so the work stays grounded in origin.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. If there are uncommitted changes, use the `/commit` skill to commit them first.
|
|
15
|
+
2. Fetch the latest upstream and rebase onto it:
|
|
16
|
+
```
|
|
17
|
+
git fetch origin
|
|
18
|
+
git rebase origin/main
|
|
19
|
+
```
|
|
20
|
+
Use the appropriate base branch if it is not `main`.
|
|
21
|
+
|
|
22
|
+
## Conflict Resolution
|
|
23
|
+
|
|
24
|
+
When conflicts arise, **upstream always wins**:
|
|
25
|
+
|
|
26
|
+
- **Never alter upstream logic, APIs, or patterns** to accommodate session changes.
|
|
27
|
+
- **Adapt session work** to fit the new upstream — rename, restructure, or rewrite as needed while preserving the session's goals.
|
|
28
|
+
- After resolving each conflict, `git add` the files and `git rebase --continue`.
|
|
29
|
+
|
|
30
|
+
## Validation
|
|
31
|
+
|
|
32
|
+
After the rebase completes, verify the result still compiles and meets the session's objectives. If session changes no longer make sense against the updated upstream, explain what changed and propose a revised approach.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sync
|
|
3
|
+
description: Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.
|
|
4
|
+
category: dev
|
|
5
|
+
---
|
|
6
|
+
<!-- Customize this skill and select save to override its behavior. Delete that copy to restore the built-in behavior. -->
|
|
7
|
+
|
|
8
|
+
# Sync Changes
|
|
9
|
+
|
|
10
|
+
Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.
|
|
11
|
+
|
|
12
|
+
## Guidelines
|
|
13
|
+
|
|
14
|
+
- **Never force-push** (`--force`, `--force-with-lease`) without explicit user approval.
|
|
15
|
+
- **Never skip pre-push hooks** (do not use `--no-verify`).
|
|
16
|
+
- **Never rewrite or drop commits** during rebase without asking the user.
|
|
17
|
+
- When in doubt about conflict resolution — ask the user.
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
1. Check for uncommitted changes first. If there are uncommitted changes, use the `/commit` skill to commit them before continuing.
|
|
22
|
+
2. Check whether the current session branch has an upstream branch.
|
|
23
|
+
3. If the current session branch has an upstream branch:
|
|
24
|
+
3.1. Fetch the upstream remote first so tracking refs are up to date.
|
|
25
|
+
```
|
|
26
|
+
git fetch <upstream-remote>
|
|
27
|
+
```
|
|
28
|
+
3.2. Check ahead/behind counts. If the branch is already in sync (0 ahead, 0 behind), stop and report that no sync is needed.
|
|
29
|
+
```
|
|
30
|
+
git rev-list --left-right --count HEAD...@{u}
|
|
31
|
+
```
|
|
32
|
+
3.3. If behind, rebase onto the upstream tracking branch.
|
|
33
|
+
```
|
|
34
|
+
git rebase @{u}
|
|
35
|
+
```
|
|
36
|
+
3.4. If there are merge conflicts, resolve them by preserving the intent of both sides. Stage the resolved files and continue the rebase.
|
|
37
|
+
```
|
|
38
|
+
git add <resolved-files>
|
|
39
|
+
git rebase --continue
|
|
40
|
+
```
|
|
41
|
+
If conflict resolution is unclear, ask the user how to proceed. If the user wants to stop the rebase, abort it:
|
|
42
|
+
```
|
|
43
|
+
git rebase --abort
|
|
44
|
+
```
|
|
45
|
+
3.5. If the branch has local commits (ahead > 0), push them to the remote after a successful rebase.
|
|
46
|
+
```
|
|
47
|
+
git push
|
|
48
|
+
```
|
|
49
|
+
If the push is rejected because the rebase rewrote history, explain the situation to the user and ask for approval before force-pushing.
|
|
50
|
+
4. If the current session branch does not have an upstream branch:
|
|
51
|
+
4.1. Determine the remote to publish to.
|
|
52
|
+
- If there is only one remote, use it.
|
|
53
|
+
- If there are multiple remotes, use the #tool:vscode/askQuestions tool to ask which remote to use.
|
|
54
|
+
4.2. Publish the current branch and set upstream in one step.
|
|
55
|
+
```
|
|
56
|
+
git push -u <remote> HEAD
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Validation
|
|
60
|
+
|
|
61
|
+
After the workflow completes, validate the result with explicit checks:
|
|
62
|
+
|
|
63
|
+
1. Verify the working tree is clean:
|
|
64
|
+
```
|
|
65
|
+
git status --porcelain
|
|
66
|
+
```
|
|
67
|
+
2. Verify sync state (ahead/behind counts are both 0):
|
|
68
|
+
```
|
|
69
|
+
git rev-list --left-right --count HEAD...@{u}
|
|
70
|
+
```
|
|
71
|
+
3. If the branch was newly published, verify the upstream branch is configured:
|
|
72
|
+
```
|
|
73
|
+
git rev-parse --abbrev-ref --symbolic-full-name @{u}
|
|
74
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd-workflow
|
|
3
|
+
description: TDD London School workflow -- mock-first, outside-in test development
|
|
4
|
+
argument-hint: "<module-path>"
|
|
5
|
+
allowed-tools: Bash(npx * npm *) mcp__claude-flow__hooks_pre-task mcp__claude-flow__hooks_post-task Read Write Edit
|
|
6
|
+
category: dev
|
|
7
|
+
---
|
|
8
|
+
Follow the TDD London School (mock-first) approach:
|
|
9
|
+
|
|
10
|
+
1. **Write the failing test first** -- define expected behavior with mocked dependencies
|
|
11
|
+
2. **Run the test** -- confirm it fails for the right reason
|
|
12
|
+
3. **Implement minimal code** -- make the test pass with the simplest solution
|
|
13
|
+
4. **Refactor** -- clean up while keeping tests green
|
|
14
|
+
5. **Repeat** -- add the next behavior
|
|
15
|
+
|
|
16
|
+
Before starting: `mcp__claude-flow__hooks_pre-task({ description: "TDD: FEATURE_NAME" })`
|
|
17
|
+
After completing: `mcp__claude-flow__hooks_post-task({ taskId: "tdd-FEATURE", success: true, storeResults: true })`
|
|
18
|
+
|
|
19
|
+
Principles:
|
|
20
|
+
- Mock external dependencies at boundaries
|
|
21
|
+
- Test behavior, not implementation
|
|
22
|
+
- One assertion per test when possible
|
|
23
|
+
- Descriptive names: `should [behavior] when [condition]`
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: terraform-azurerm-set-diff-analyzer
|
|
3
|
+
description: Analyze Terraform plan JSON output for AzureRM Provider to distinguish between false-positive diffs (order-only changes in Set-type attributes) and actual resource changes. Use when reviewing terraform plan output for Azure resources like Application Gateway, Load Balancer, Firewall, Front Door, NSG, and other resources with Set-type attributes that cause spurious diffs due to internal ordering changes.
|
|
4
|
+
license: MIT
|
|
5
|
+
category: dev
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Terraform AzureRM Set Diff Analyzer
|
|
9
|
+
|
|
10
|
+
A skill to identify "false-positive diffs" in Terraform plans caused by AzureRM Provider's Set-type attributes and distinguish them from actual changes.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- `terraform plan` shows many changes, but you only added/removed a single element
|
|
15
|
+
- Application Gateway, Load Balancer, NSG, etc. show "all elements changed"
|
|
16
|
+
- You want to automatically filter false-positive diffs in CI/CD
|
|
17
|
+
|
|
18
|
+
## Background
|
|
19
|
+
|
|
20
|
+
Terraform's Set type compares by position rather than by key, so when adding or removing elements, all elements appear as "changed". This is a general Terraform issue, but it's particularly noticeable with AzureRM resources that heavily use Set-type attributes like Application Gateway, Load Balancer, and NSG.
|
|
21
|
+
|
|
22
|
+
These "false-positive diffs" don't actually affect the resources, but they make reviewing terraform plan output difficult.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
- Python 3.8+
|
|
27
|
+
|
|
28
|
+
If Python is unavailable, install via your package manager (e.g., `apt install python3`, `brew install python3`) or from [python.org](https://www.python.org/downloads/).
|
|
29
|
+
|
|
30
|
+
## Basic Usage
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 1. Generate plan JSON output
|
|
34
|
+
terraform plan -out=plan.tfplan
|
|
35
|
+
terraform show -json plan.tfplan > plan.json
|
|
36
|
+
|
|
37
|
+
# 2. Analyze
|
|
38
|
+
python scripts/analyze_plan.py plan.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Troubleshooting
|
|
42
|
+
|
|
43
|
+
- **`python: command not found`**: Use `python3` instead, or install Python
|
|
44
|
+
- **`ModuleNotFoundError`**: Script uses only standard library; ensure Python 3.8+
|
|
45
|
+
|
|
46
|
+
## Detailed Documentation
|
|
47
|
+
|
|
48
|
+
- [scripts/README.md](scripts/README.md) - All options, output formats, exit codes, CI/CD examples
|
|
49
|
+
- [references/azurerm_set_attributes.md](references/azurerm_set_attributes.md) - Supported resources and attributes
|