@1aboveio/skills 0.0.0-stage → 1.0.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 +30 -2
- package/bin/cli.mjs +14 -0
- package/bin/select-core.mjs +172 -0
- package/package.json +146 -4
- package/skills/app-dev/airflow/LICENSE +3 -0
- package/skills/app-dev/airflow/SKILL.md +199 -0
- package/skills/app-dev/airflow/release-check.mjs +93 -0
- package/skills/app-dev/android-foundation/LICENSE +3 -0
- package/skills/app-dev/android-foundation/SKILL.md +192 -0
- package/skills/app-dev/android-foundation/assets/android-ci-job.yml +217 -0
- package/skills/app-dev/android-foundation/references/ci.md +87 -0
- package/skills/app-dev/android-foundation/references/gotchas.md +221 -0
- package/skills/app-dev/android-foundation/references/setup.md +164 -0
- package/skills/app-dev/android-foundation/release-check.mjs +93 -0
- package/skills/app-dev/android-foundation/scripts/device-run.sh +176 -0
- package/skills/app-dev/android-foundation/scripts/device-run.test.mjs +172 -0
- package/skills/app-dev/app-debug/LICENSE +3 -0
- package/skills/app-dev/app-debug/SKILL.md +110 -0
- package/skills/app-dev/app-debug/references/common-errors.md +128 -0
- package/skills/app-dev/app-debug/release-check.mjs +93 -0
- package/skills/app-dev/better-auth/LICENSE +3 -0
- package/skills/app-dev/better-auth/SKILL.md +598 -0
- package/skills/app-dev/better-auth/references/feishu-api.md +270 -0
- package/skills/app-dev/better-auth/release-check.mjs +93 -0
- package/skills/app-dev/data-catalog/LICENSE +3 -0
- package/skills/app-dev/data-catalog/SKILL.md +204 -0
- package/skills/app-dev/data-catalog/agents/openai.yaml +3 -0
- package/skills/app-dev/data-catalog/references/data-catalog-conventions.md +75 -0
- package/skills/app-dev/data-catalog/references/field-definitions.md +116 -0
- package/skills/app-dev/data-catalog/references/format.md +121 -0
- package/skills/app-dev/data-catalog/release-check.mjs +93 -0
- package/skills/app-dev/data-catalog/scripts/data-catalog.test.mjs +36 -0
- package/skills/app-dev/data-catalog/scripts/data_catalog.py +1392 -0
- package/skills/app-dev/data-catalog/scripts/persist-conventions-core.mjs +117 -0
- package/skills/app-dev/data-catalog/scripts/persist-conventions.mjs +17 -0
- package/skills/app-dev/data-catalog/scripts/test_data_catalog.py +571 -0
- package/skills/app-dev/ios-foundation/LICENSE +3 -0
- package/skills/app-dev/ios-foundation/SKILL.md +184 -0
- package/skills/app-dev/ios-foundation/references/setup.md +243 -0
- package/skills/app-dev/ios-foundation/release-check.mjs +93 -0
- package/skills/app-dev/monorepo/LICENSE +3 -0
- package/skills/app-dev/monorepo/SKILL.md +462 -0
- package/skills/app-dev/monorepo/release-check.mjs +93 -0
- package/skills/app-dev/nextjs-fullstack/LICENSE +3 -0
- package/skills/app-dev/nextjs-fullstack/SKILL.md +211 -0
- package/skills/app-dev/nextjs-fullstack/conventions.md +318 -0
- package/skills/app-dev/nextjs-fullstack/frontend-conventions.md +61 -0
- package/skills/app-dev/nextjs-fullstack/nextjs16.md +287 -0
- package/skills/app-dev/nextjs-fullstack/release-check.mjs +93 -0
- package/skills/app-dev/nextjs-fullstack/server-actions.md +409 -0
- package/skills/app-dev/prisma-setup/LICENSE +3 -0
- package/skills/app-dev/prisma-setup/SKILL.md +181 -0
- package/skills/app-dev/prisma-setup/nextjs.md +258 -0
- package/skills/app-dev/prisma-setup/release-check.mjs +93 -0
- package/skills/app-dev/prisma-setup/turborepo.md +301 -0
- package/skills/app-dev/pyspark/LICENSE +3 -0
- package/skills/app-dev/pyspark/SKILL.md +127 -0
- package/skills/app-dev/pyspark/assets/templates/etl.py +748 -0
- package/skills/app-dev/pyspark/assets/templates/utils/__init__.py +1 -0
- package/skills/app-dev/pyspark/assets/templates/utils/hudi_metadata.py +14 -0
- package/skills/app-dev/pyspark/references/diagnosis-and-profiling.md +169 -0
- package/skills/app-dev/pyspark/references/etl-contract.md +129 -0
- package/skills/app-dev/pyspark/references/production-validation.md +131 -0
- package/skills/app-dev/pyspark/references/reconciliation.md +38 -0
- package/skills/app-dev/pyspark/references/transformation-design.md +190 -0
- package/skills/app-dev/pyspark/references/velocity-feature-calculation.md +193 -0
- package/skills/app-dev/pyspark/release-check.mjs +93 -0
- package/skills/app-dev/pyspark/scripts/spark_eventlog_summary.py +223 -0
- package/skills/app-dev/python-backend/LICENSE +3 -0
- package/skills/app-dev/python-backend/SKILL.md +325 -0
- package/skills/app-dev/python-backend/assets/uv-install.sh +48 -0
- package/skills/app-dev/python-backend/references/uv-installs.md +83 -0
- package/skills/app-dev/python-backend/release-check.mjs +93 -0
- package/skills/app-dev/shadcn/LICENSE +3 -0
- package/skills/app-dev/shadcn/SKILL.md +120 -0
- package/skills/app-dev/shadcn/assets/shadcn-small.png +0 -0
- package/skills/app-dev/shadcn/assets/shadcn.png +0 -0
- package/skills/app-dev/shadcn/cli.md +411 -0
- package/skills/app-dev/shadcn/customization.md +224 -0
- package/skills/app-dev/shadcn/mcp.md +101 -0
- package/skills/app-dev/shadcn/release-check.mjs +93 -0
- package/skills/app-dev/shadcn/rules/base-vs-radix.md +323 -0
- package/skills/app-dev/shadcn/rules/component-selection.md +67 -0
- package/skills/app-dev/shadcn/rules/composition.md +195 -0
- package/skills/app-dev/shadcn/rules/data-table.md +201 -0
- package/skills/app-dev/shadcn/rules/forms.md +255 -0
- package/skills/app-dev/shadcn/rules/icons.md +103 -0
- package/skills/app-dev/shadcn/rules/styling.md +167 -0
- package/skills/app-dev/zod-v4/LICENSE +3 -0
- package/skills/app-dev/zod-v4/SKILL.md +286 -0
- package/skills/app-dev/zod-v4/release-check.mjs +93 -0
- package/skills/cicd/cloud-build/LICENSE +3 -0
- package/skills/cicd/cloud-build/SKILL.md +707 -0
- package/skills/cicd/cloud-build/release-check.mjs +93 -0
- package/skills/cicd/cloud-debug/LICENSE +3 -0
- package/skills/cicd/cloud-debug/SKILL.md +315 -0
- package/skills/cicd/cloud-debug/references/build-failures.md +238 -0
- package/skills/cicd/cloud-debug/references/deploy-failures.md +376 -0
- package/skills/cicd/cloud-debug/references/pipeline-failures.md +378 -0
- package/skills/cicd/cloud-debug/release-check.mjs +93 -0
- package/skills/cicd/cloud-deploy/LICENSE +3 -0
- package/skills/cicd/cloud-deploy/SKILL.md +230 -0
- package/skills/cicd/cloud-deploy/references/config-templates.md +257 -0
- package/skills/cicd/cloud-deploy/release-check.mjs +93 -0
- package/skills/cicd/docker/LICENSE +3 -0
- package/skills/cicd/docker/SKILL.md +151 -0
- package/skills/cicd/docker/release-check.mjs +93 -0
- package/skills/cicd/github-actions/LICENSE +3 -0
- package/skills/cicd/github-actions/SKILL.md +111 -0
- package/skills/cicd/github-actions/references/audit-profile-optimize.md +150 -0
- package/skills/cicd/github-actions/references/ci-case-studies.md +141 -0
- package/skills/cicd/github-actions/references/conditional-ci.md +214 -0
- package/skills/cicd/github-actions/references/debugging.md +13 -0
- package/skills/cicd/github-actions/references/pipeline.md +87 -0
- package/skills/cicd/github-actions/references/post-deploy-and-publishing.md +33 -0
- package/skills/cicd/github-actions/references/runners.md +253 -0
- package/skills/cicd/github-actions/references/security.md +29 -0
- package/skills/cicd/github-actions/references/speed-and-audit.md +115 -0
- package/skills/cicd/github-actions/references/two-pass-reading.md +92 -0
- package/skills/cicd/github-actions/release-check.mjs +93 -0
- package/skills/cicd/github-actions/scripts/ci-run-audit-core.mjs +612 -0
- package/skills/cicd/github-actions/scripts/ci-run-audit.mjs +4 -0
- package/skills/cicd/github-actions/scripts/ci-run-audit.test.mjs +637 -0
- package/skills/cicd/github-flow/LICENSE +3 -0
- package/skills/cicd/github-flow/SKILL.md +123 -0
- package/skills/cicd/github-flow/references/ci-conventions.md +14 -0
- package/skills/cicd/github-flow/release-check.mjs +93 -0
- package/skills/cicd/github-flow/scripts/flow-core.mjs +105 -0
- package/skills/cicd/github-flow/scripts/flow.mjs +81 -0
- package/skills/cicd/github-flow/scripts/flow.test.mjs +114 -0
- package/skills/cicd/github-flow/scripts/persist-conventions-core.mjs +117 -0
- package/skills/cicd/github-flow/scripts/persist-conventions.mjs +49 -0
- package/skills/cicd/github-flow/scripts/persist-conventions.test.mjs +108 -0
- package/skills/cicd/google-cloud/LICENSE +3 -0
- package/skills/cicd/google-cloud/SKILL.md +119 -0
- package/skills/cicd/google-cloud/references/gcs.md +469 -0
- package/skills/cicd/google-cloud/references/iam.md +451 -0
- package/skills/cicd/google-cloud/references/project.md +349 -0
- package/skills/cicd/google-cloud/references/secrets.md +336 -0
- package/skills/cicd/google-cloud/references/vpc.md +312 -0
- package/skills/cicd/google-cloud/release-check.mjs +93 -0
- package/skills/cicd/google-cloud/scripts/create-sa.sh +36 -0
- package/skills/cicd/google-cloud/scripts/gcp-config.sh +31 -0
- package/skills/cicd/google-cloud/scripts/grant-iap.sh +41 -0
- package/skills/cicd/google-cloud/scripts/setup-secrets.sh +48 -0
- package/skills/cicd/mergify/LICENSE +3 -0
- package/skills/cicd/mergify/SKILL.md +102 -0
- package/skills/cicd/mergify/assets/templates/mergify.yml +215 -0
- package/skills/cicd/mergify/assets/templates/ruleset.json +46 -0
- package/skills/cicd/mergify/references/branch-protection.md +282 -0
- package/skills/cicd/mergify/references/configuration.md +274 -0
- package/skills/cicd/mergify/references/diagnosis.md +109 -0
- package/skills/cicd/mergify/references/stacks.md +84 -0
- package/skills/cicd/mergify/references/traps.md +119 -0
- package/skills/cicd/mergify/references/watch-contract.md +274 -0
- package/skills/cicd/mergify/release-check.mjs +93 -0
- package/skills/cicd/mergify/scripts/audit-core.mjs +208 -0
- package/skills/cicd/mergify/scripts/audit.mjs +4 -0
- package/skills/cicd/mergify/scripts/audit.test.mjs +201 -0
- package/skills/cicd/mergify/scripts/entrypoints.test.mjs +106 -0
- package/skills/cicd/mergify/scripts/pr-620-mergify-comments.fixture.json +30 -0
- package/skills/cicd/mergify/scripts/stack-push-core.mjs +258 -0
- package/skills/cicd/mergify/scripts/stack-push.mjs +4 -0
- package/skills/cicd/mergify/scripts/stack-push.test.mjs +233 -0
- package/skills/cicd/mergify/scripts/watch-pr-delivery-core.mjs +1065 -0
- package/skills/cicd/mergify/scripts/watch-pr-delivery.mjs +4 -0
- package/skills/cicd/mergify/scripts/watch-pr-delivery.test.mjs +1826 -0
- package/skills/cicd/podman/LICENSE +3 -0
- package/skills/cicd/podman/SKILL.md +71 -0
- package/skills/cicd/podman/agents/openai.yaml +4 -0
- package/skills/cicd/podman/assets/templates/podman-compose-socket-directory.yml +6 -0
- package/skills/cicd/podman/assets/templates/podman-service-override.conf +3 -0
- package/skills/cicd/podman/references/compose-compatibility.md +70 -0
- package/skills/cicd/podman/references/networking-and-ports.md +74 -0
- package/skills/cicd/podman/references/rootless-services-and-sockets.md +156 -0
- package/skills/cicd/podman/references/troubleshooting.md +98 -0
- package/skills/cicd/podman/release-check.mjs +93 -0
- package/skills/content/article-review/LICENSE +3 -0
- package/skills/content/article-review/SKILL.md +66 -0
- package/skills/content/article-review/references/report-format.md +68 -0
- package/skills/content/article-review/references/template-guide.md +79 -0
- package/skills/content/article-review/references/template-wechat-payments.md +125 -0
- package/skills/content/article-review/release-check.mjs +93 -0
- package/skills/content/article-to-image/LICENSE +3 -0
- package/skills/content/article-to-image/SKILL.md +91 -0
- package/skills/content/article-to-image/references/formats.md +53 -0
- package/skills/content/article-to-image/release-check.mjs +93 -0
- package/skills/content/flowchart-svg/LICENSE +3 -0
- package/skills/content/flowchart-svg/SKILL.md +43 -0
- package/skills/content/flowchart-svg/release-check.mjs +93 -0
- package/skills/content/flowchart-svg/scripts/export_png.sh +8 -0
- package/skills/content/image-gen/LICENSE +3 -0
- package/skills/content/image-gen/SKILL.md +192 -0
- package/skills/content/image-gen/release-check.mjs +93 -0
- package/skills/content/image-gen/scripts/credentials.mjs +217 -0
- package/skills/content/image-gen/scripts/credentials.test.mjs +212 -0
- package/skills/content/image-gen/scripts/generate.mjs +240 -0
- package/skills/content/image-gen/scripts/options.mjs +293 -0
- package/skills/content/image-gen/scripts/options.test.mjs +245 -0
- package/skills/content/mermaid/LICENSE +3 -0
- package/skills/content/mermaid/SKILL.md +635 -0
- package/skills/content/mermaid/release-check.mjs +93 -0
- package/skills/content/wechat-article-writer/LICENSE +3 -0
- package/skills/content/wechat-article-writer/SKILL.md +92 -0
- package/skills/content/wechat-article-writer/references/style-selector.md +133 -0
- package/skills/content/wechat-article-writer/references/writing-rules.md +152 -0
- package/skills/content/wechat-article-writer/release-check.mjs +93 -0
- package/skills/content/wechat-article-writer/templates/wechat-comparison.md +52 -0
- package/skills/content/wechat-article-writer/templates/wechat-howto.md +51 -0
- package/skills/content/wechat-article-writer/templates/wechat-insight.md +50 -0
- package/skills/content/wechat-article-writer/templates/wechat-pitfall.md +52 -0
- package/skills/content/wechat-publisher/LICENSE +3 -0
- package/skills/content/wechat-publisher/SKILL.md +171 -0
- package/skills/content/wechat-publisher/references/api.md +105 -0
- package/skills/content/wechat-publisher/references/layout-rules.md +57 -0
- package/skills/content/wechat-publisher/references/wechat-safe-template.html +86 -0
- package/skills/content/wechat-publisher/release-check.mjs +93 -0
- package/skills/content/wechat-publisher/scripts/md_to_wechat_html.py +194 -0
- package/skills/content/wechat-publisher/scripts/publish.py +239 -0
- package/skills/content/wechat-search/LICENSE +3 -0
- package/skills/content/wechat-search/SKILL.md +211 -0
- package/skills/content/wechat-search/release-check.mjs +93 -0
- package/skills/content/wechat-search/scripts/start-chrome.sh +83 -0
- package/skills/content/xai-search/LICENSE +3 -0
- package/skills/content/xai-search/SKILL.md +79 -0
- package/skills/content/xai-search/release-check.mjs +93 -0
- package/skills/content/xai-search/scripts/xai_search.sh +187 -0
- package/skills/content/xai-search/tests/smoke_test.sh +36 -0
- package/skills/core/distill-writing/LICENSE +3 -0
- package/skills/core/distill-writing/SKILL.md +74 -0
- package/skills/core/distill-writing/references/extraction.md +95 -0
- package/skills/core/distill-writing/references/updating.md +46 -0
- package/skills/core/distill-writing/release-check.mjs +93 -0
- package/skills/core/doc-to-md/LICENSE +3 -0
- package/skills/core/doc-to-md/SKILL.md +78 -0
- package/skills/core/doc-to-md/release-check.mjs +93 -0
- package/skills/core/doc-to-md/scripts/convert.py +157 -0
- package/skills/core/editorial-review/LICENSE +3 -0
- package/skills/core/editorial-review/SKILL.md +79 -0
- package/skills/core/editorial-review/references/checklist.md +94 -0
- package/skills/core/editorial-review/release-check.mjs +93 -0
- package/skills/core/house-style/LICENSE +3 -0
- package/skills/core/house-style/SKILL.md +33 -0
- package/skills/core/house-style/references/defaults.md +66 -0
- package/skills/core/house-style/references/rules.md +267 -0
- package/skills/core/house-style/references/sources.md +27 -0
- package/skills/core/house-style/references/style-en.md +131 -0
- package/skills/core/house-style/references/style-zh.md +141 -0
- package/skills/core/house-style/references/terminology-zh.md +223 -0
- package/skills/core/house-style/release-check.mjs +93 -0
- package/skills/core/house-style/templates/brd.md +103 -0
- package/skills/core/house-style/templates/commercial-proposal.md +93 -0
- package/skills/core/house-style/templates/compliance-policy.md +109 -0
- package/skills/core/house-style/templates/gap-analysis.md +105 -0
- package/skills/core/house-style/templates/general.md +63 -0
- package/skills/core/house-style/templates/integration-guide.md +98 -0
- package/skills/core/house-style/templates/prd.md +81 -0
- package/skills/core/house-style/templates/risk-operations-procedure.md +94 -0
- package/skills/core/house-style/templates/technical-spec.md +96 -0
- package/skills/core/polish-cn/LICENSE +3 -0
- package/skills/core/polish-cn/SKILL.md +102 -0
- package/skills/core/polish-cn/references/brief.md +93 -0
- package/skills/core/polish-cn/references/models.md +76 -0
- package/skills/core/polish-cn/release-check.mjs +93 -0
- package/skills/core/polish-cn/scripts/polish-cn.test.mjs +244 -0
- package/skills/core/polish-cn/scripts/polish_blocks.py +489 -0
- package/skills/core/reg-parser/LICENSE +3 -0
- package/skills/core/reg-parser/SKILL.md +212 -0
- package/skills/core/reg-parser/references/checklist-schema.md +223 -0
- package/skills/core/reg-parser/references/checklists/hk-amlo-checklist.json +1306 -0
- package/skills/core/reg-parser/references/checklists/hk-amlo-checklist.md +469 -0
- package/skills/core/reg-parser/references/checklists/hk-fi-corporate-onboarding-cdd-checklist.json +634 -0
- package/skills/core/reg-parser/references/checklists/hk-fi-corporate-onboarding-cdd-checklist.md +233 -0
- package/skills/core/reg-parser/references/checklists/hk-mso-guideline-checklist.json +2194 -0
- package/skills/core/reg-parser/references/checklists/hk-mso-guideline-checklist.md +771 -0
- package/skills/core/reg-parser/references/checklists/kyc-aml-checklist.md +258 -0
- package/skills/core/reg-parser/references/checklists/visa-vars-checklist.md +1058 -0
- package/skills/core/reg-parser/references/mandates/hk-amlo-cap615.md +389 -0
- package/skills/core/reg-parser/references/mandates/visa-vars.md +205 -0
- package/skills/core/reg-parser/release-check.mjs +93 -0
- package/skills/core/reg-parser/scripts/compare_checklist.py +230 -0
- package/skills/core/reg-parser/scripts/dump_checklist.py +361 -0
- package/skills/core/reg-parser/scripts/preprocess-mandate.sh +187 -0
- package/skills/core/reg-parser/scripts/reg-parser.test.mjs +165 -0
- package/skills/core/reg-parser/scripts/test_quarantine.sh +105 -0
- package/skills/core/reg-parser/scripts/validate_checklist.py +563 -0
- package/skills/core/reg-parser/scripts/validate_mandate.py +273 -0
- package/skills/core/terminology/LICENSE +3 -0
- package/skills/core/terminology/SKILL.md +62 -0
- package/skills/core/terminology/references/format.md +50 -0
- package/skills/core/terminology/references/init.md +32 -0
- package/skills/core/terminology/release-check.mjs +93 -0
- package/skills/core/write-doc/LICENSE +3 -0
- package/skills/core/write-doc/SKILL.md +141 -0
- package/skills/core/write-doc/references/bilingual.md +60 -0
- package/skills/core/write-doc/release-check.mjs +93 -0
- package/skills/engineering/better-review/LICENSE +3 -0
- package/skills/engineering/better-review/SKILL.md +249 -0
- package/skills/engineering/better-review/agents/openai.yaml +9 -0
- package/skills/engineering/better-review/references/domain-hazards.md +53 -0
- package/skills/engineering/better-review/references/passes.md +147 -0
- package/skills/engineering/better-review/references/result.md +151 -0
- package/skills/engineering/better-review/release-check.mjs +93 -0
- package/skills/engineering/better-review/scripts/pr-context.mjs +212 -0
- package/skills/engineering/better-review/scripts/pr-context.test.mjs +168 -0
- package/skills/engineering/better-review/scripts/rereview-scope.mjs +503 -0
- package/skills/engineering/better-review/scripts/rereview-scope.test.mjs +587 -0
- package/skills/engineering/better-review/scripts/scan-diff.mjs +365 -0
- package/skills/engineering/better-review/scripts/scan-diff.test.mjs +414 -0
- package/skills/engineering/better-review/scripts/vendor-sync.test.mjs +96 -0
- package/skills/engineering/e2e-test/LICENSE +3 -0
- package/skills/engineering/e2e-test/SKILL.md +98 -0
- package/skills/engineering/e2e-test/assets/ci-gates.cloudbuild.yaml +24 -0
- package/skills/engineering/e2e-test/references/authoring/auth-flows.md +159 -0
- package/skills/engineering/e2e-test/references/authoring/playwright-config.md +73 -0
- package/skills/engineering/e2e-test/references/authoring/playwright-patterns.md +144 -0
- package/skills/engineering/e2e-test/references/ci-integration.md +25 -0
- package/skills/engineering/e2e-test/references/ci-playwright-container.md +290 -0
- package/skills/engineering/e2e-test/references/presentation-sweep.md +104 -0
- package/skills/engineering/e2e-test/references/reviewing.md +41 -0
- package/skills/engineering/e2e-test/references/route-manifest.md +51 -0
- package/skills/engineering/e2e-test/release-check.mjs +93 -0
- package/skills/engineering/e2e-test/scripts/detect-routes-nextjs.mjs +200 -0
- package/skills/engineering/e2e-test/scripts/presentation-checks.mjs +171 -0
- package/skills/engineering/e2e-test/scripts/presentation-checks.test.mjs +106 -0
- package/skills/engineering/e2e-test/scripts/presentation-perceivability.mjs +179 -0
- package/skills/engineering/e2e-test/scripts/presentation-perceivability.test.mjs +117 -0
- package/skills/engineering/e2e-test/scripts/presentation-reachability.mjs +154 -0
- package/skills/engineering/e2e-test/scripts/presentation-reachability.test.mjs +69 -0
- package/skills/engineering/e2e-test/scripts/presentation-render-health.mjs +141 -0
- package/skills/engineering/e2e-test/scripts/presentation-render-health.test.mjs +98 -0
- package/skills/engineering/e2e-test/scripts/presentation-sweep.mjs +147 -0
- package/skills/engineering/e2e-test/scripts/presentation-sweep.test.mjs +71 -0
- package/skills/engineering/e2e-test/scripts/presentation-temporal.mjs +127 -0
- package/skills/engineering/e2e-test/scripts/presentation-temporal.test.mjs +59 -0
- package/skills/engineering/e2e-test/scripts/project-route-manifest.mjs +82 -0
- package/skills/engineering/e2e-test/scripts/project-route-manifest.test.mjs +76 -0
- package/skills/engineering/e2e-test/scripts/validate-manifest.mjs +106 -0
- package/skills/engineering/engineering-runtime/LICENSE +3 -0
- package/skills/engineering/engineering-runtime/SKILL.md +11 -0
- package/skills/engineering/engineering-runtime/agents/openai.yaml +6 -0
- package/skills/engineering/engineering-runtime/coherence/workflow.json +597 -0
- package/skills/engineering/engineering-runtime/engineering-runtime.test.mjs +68 -0
- package/skills/engineering/engineering-runtime/release-check.mjs +93 -0
- package/skills/engineering/engineering-runtime/scripts/exact-head-artifact.mjs +131 -0
- package/skills/engineering/engineering-runtime/scripts/head-check-set.mjs +398 -0
- package/skills/engineering/engineering-runtime/scripts/invocation-policy.mjs +187 -0
- package/skills/engineering/engineering-runtime/scripts/invocation-policy.test.mjs +95 -0
- package/skills/engineering/engineering-runtime/scripts/main-module.mjs +79 -0
- package/skills/engineering/engineering-runtime/scripts/main-module.test.mjs +288 -0
- package/skills/engineering/engineering-runtime/scripts/mergify-yaml.mjs +11 -0
- package/skills/engineering/engineering-runtime/scripts/package-lock.json +43 -0
- package/skills/engineering/engineering-runtime/scripts/package.json +10 -0
- package/skills/engineering/engineering-runtime/scripts/required-check-plan.mjs +223 -0
- package/skills/engineering/engineering-runtime/scripts/required-check-plan.test.mjs +96 -0
- package/skills/engineering/engineering-runtime/scripts/review-completion.mjs +56 -0
- package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +595 -0
- package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +189 -0
- package/skills/engineering/engineering-runtime/scripts/yaml-mapping.mjs +18 -0
- package/skills/engineering/ensure-coverage/LICENSE +3 -0
- package/skills/engineering/ensure-coverage/SKILL.md +129 -0
- package/skills/engineering/ensure-coverage/references/breadth/coverage-ledger.md +92 -0
- package/skills/engineering/ensure-coverage/references/breadth/inventory-contract.md +85 -0
- package/skills/engineering/ensure-coverage/references/breadth/surface-baseline.md +44 -0
- package/skills/engineering/ensure-coverage/references/breadth/surface-discovery.md +16 -0
- package/skills/engineering/ensure-coverage/references/depth/characterization.md +68 -0
- package/skills/engineering/ensure-coverage/references/depth/coverage.config.example.json +19 -0
- package/skills/engineering/ensure-coverage/references/depth/grading.md +35 -0
- package/skills/engineering/ensure-coverage/references/depth/mock-policy.md +57 -0
- package/skills/engineering/ensure-coverage/references/depth/test-smells.md +39 -0
- package/skills/engineering/ensure-coverage/references/enforcement/ci-contract.md +44 -0
- package/skills/engineering/ensure-coverage/references/examples/coverage-ledger.md +110 -0
- package/skills/engineering/ensure-coverage/references/examples/refund-flow.md +35 -0
- package/skills/engineering/ensure-coverage/references/presentation/axis.md +64 -0
- package/skills/engineering/ensure-coverage/references/process/audit-mode.md +27 -0
- package/skills/engineering/ensure-coverage/references/process/output-template.md +139 -0
- package/skills/engineering/ensure-coverage/references/process/test-strategy.md +56 -0
- package/skills/engineering/ensure-coverage/release-check.mjs +93 -0
- package/skills/engineering/ensure-coverage/schemas/coverage-config.schema.json +67 -0
- package/skills/engineering/ensure-coverage/schemas/coverage-file.schema.json +140 -0
- package/skills/engineering/ensure-coverage/scripts/README.md +99 -0
- package/skills/engineering/ensure-coverage/scripts/adapters/nextjs-inventory.mjs +182 -0
- package/skills/engineering/ensure-coverage/scripts/adapters/nextjs-inventory.test.mjs +96 -0
- package/skills/engineering/ensure-coverage/scripts/check-quarantine-expiry.mjs +105 -0
- package/skills/engineering/ensure-coverage/scripts/check-quarantine-expiry.test.mjs +47 -0
- package/skills/engineering/ensure-coverage/scripts/ci-audit.mjs +137 -0
- package/skills/engineering/ensure-coverage/scripts/ci-audit.test.mjs +86 -0
- package/skills/engineering/ensure-coverage/scripts/coverage-ledger.mjs +674 -0
- package/skills/engineering/ensure-coverage/scripts/coverage-ledger.test.mjs +447 -0
- package/skills/engineering/ensure-coverage/scripts/design-parity.mjs +591 -0
- package/skills/engineering/ensure-coverage/scripts/design-parity.test.mjs +552 -0
- package/skills/engineering/ensure-coverage/scripts/lint-tests.mjs +282 -0
- package/skills/engineering/ensure-coverage/scripts/lint-tests.test.mjs +289 -0
- package/skills/engineering/ensure-coverage/scripts/mock-policy-config.mjs +176 -0
- package/skills/engineering/ensure-coverage/scripts/mock-policy-config.test.mjs +119 -0
- package/skills/engineering/ensure-coverage/scripts/package.json +19 -0
- package/skills/engineering/golden-path/LICENSE +3 -0
- package/skills/engineering/golden-path/SKILL.md +230 -0
- package/skills/engineering/golden-path/agents/openai.yaml +3 -0
- package/skills/engineering/golden-path/assets/golden-paths.example.json +57 -0
- package/skills/engineering/golden-path/references/contract.md +239 -0
- package/skills/engineering/golden-path/references/migration.md +111 -0
- package/skills/engineering/golden-path/release-check.mjs +93 -0
- package/skills/engineering/golden-path/scripts/golden-path-core.mjs +1779 -0
- package/skills/engineering/golden-path/scripts/golden-path.mjs +6 -0
- package/skills/engineering/golden-path/scripts/golden-path.test.mjs +1457 -0
- package/skills/engineering/harness-runtime/LICENSE +3 -0
- package/skills/engineering/harness-runtime/SKILL.md +19 -0
- package/skills/engineering/harness-runtime/agents/openai.yaml +6 -0
- package/skills/engineering/harness-runtime/bin/discover-models.mjs +4 -0
- package/skills/engineering/harness-runtime/bin/model-catalog.mjs +4 -0
- package/skills/engineering/harness-runtime/contracts.md +15 -0
- package/skills/engineering/harness-runtime/discover-models.mjs +392 -0
- package/skills/engineering/harness-runtime/discover-models.test.mjs +363 -0
- package/skills/engineering/harness-runtime/fixtures/native-question-schemas.json +33 -0
- package/skills/engineering/harness-runtime/fixtures/question-responses.json +54 -0
- package/skills/engineering/harness-runtime/harness-runtime.test.mjs +967 -0
- package/skills/engineering/harness-runtime/index.mjs +767 -0
- package/skills/engineering/harness-runtime/model-catalog-seed.test.mjs +829 -0
- package/skills/engineering/harness-runtime/model-catalog.mjs +787 -0
- package/skills/engineering/harness-runtime/model-catalog.test.mjs +366 -0
- package/skills/engineering/harness-runtime/native-question-contracts.md +37 -0
- package/skills/engineering/harness-runtime/references/model-catalog-seed.json +408 -0
- package/skills/engineering/harness-runtime/references/model-catalog.md +57 -0
- package/skills/engineering/harness-runtime/release-check.mjs +93 -0
- package/skills/engineering/resolve-issues/LICENSE +3 -0
- package/skills/engineering/resolve-issues/SKILL.md +250 -0
- package/skills/engineering/resolve-issues/agents/openai.yaml +9 -0
- package/skills/engineering/resolve-issues/plugin-hooks.json +17 -0
- package/skills/engineering/resolve-issues/references/canary.md +28 -0
- package/skills/engineering/resolve-issues/references/ci.md +105 -0
- package/skills/engineering/resolve-issues/references/done.md +25 -0
- package/skills/engineering/resolve-issues/references/dropbox.md +90 -0
- package/skills/engineering/resolve-issues/references/expire.md +318 -0
- package/skills/engineering/resolve-issues/references/exploration.md +202 -0
- package/skills/engineering/resolve-issues/references/implementation.md +303 -0
- package/skills/engineering/resolve-issues/references/preflight.md +445 -0
- package/skills/engineering/resolve-issues/references/review.md +228 -0
- package/skills/engineering/resolve-issues/references/shared-modules.md +44 -0
- package/skills/engineering/resolve-issues/references/task-plan.md +264 -0
- package/skills/engineering/resolve-issues/release-check.mjs +93 -0
- package/skills/engineering/resolve-issues/scripts/cleanup-runs.mjs +364 -0
- package/skills/engineering/resolve-issues/scripts/cleanup-runs.test.mjs +280 -0
- package/skills/engineering/resolve-issues/scripts/discover-models.mjs +9 -0
- package/skills/engineering/resolve-issues/scripts/dropbox.mjs +473 -0
- package/skills/engineering/resolve-issues/scripts/dropbox.test.mjs +346 -0
- package/skills/engineering/resolve-issues/scripts/findings-reuse.mjs +98 -0
- package/skills/engineering/resolve-issues/scripts/findings-reuse.test.mjs +88 -0
- package/skills/engineering/resolve-issues/scripts/github-reviews.mjs +384 -0
- package/skills/engineering/resolve-issues/scripts/github-reviews.test.mjs +264 -0
- package/skills/engineering/resolve-issues/scripts/install-hooks.mjs +135 -0
- package/skills/engineering/resolve-issues/scripts/install-hooks.test.mjs +79 -0
- package/skills/engineering/resolve-issues/scripts/issue-tree.mjs +162 -0
- package/skills/engineering/resolve-issues/scripts/issue-tree.test.mjs +107 -0
- package/skills/engineering/resolve-issues/scripts/manual-invocation.test.mjs +14 -0
- package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +9 -0
- package/skills/engineering/resolve-issues/scripts/next-actions-capacity.test.mjs +149 -0
- package/skills/engineering/resolve-issues/scripts/next-actions.mjs +856 -0
- package/skills/engineering/resolve-issues/scripts/next-actions.test.mjs +915 -0
- package/skills/engineering/resolve-issues/scripts/plan-sync.mjs +269 -0
- package/skills/engineering/resolve-issues/scripts/plan-sync.test.mjs +156 -0
- package/skills/engineering/resolve-issues/scripts/preflight-models.mjs +736 -0
- package/skills/engineering/resolve-issues/scripts/preflight-models.test.mjs +448 -0
- package/skills/engineering/resolve-issues/scripts/ready-check.mjs +185 -0
- package/skills/engineering/resolve-issues/scripts/ready-check.test.mjs +217 -0
- package/skills/engineering/resolve-issues/scripts/rehydrate.mjs +98 -0
- package/skills/engineering/resolve-issues/scripts/rehydrate.test.mjs +91 -0
- package/skills/engineering/resolve-issues/scripts/review-verdict.mjs +509 -0
- package/skills/engineering/resolve-issues/scripts/review-verdict.test.mjs +1060 -0
- package/skills/engineering/resolve-issues/scripts/size-check.mjs +492 -0
- package/skills/engineering/resolve-issues/scripts/size-check.test.mjs +458 -0
- package/skills/engineering/resolve-release/LICENSE +3 -0
- package/skills/engineering/resolve-release/SKILL.md +215 -0
- package/skills/engineering/resolve-release/agents/openai.yaml +8 -0
- package/skills/engineering/resolve-release/flows/cloud-run-canary.md +13 -0
- package/skills/engineering/resolve-release/flows/cloud-run.md +7 -0
- package/skills/engineering/resolve-release/flows/root-tag-npm.md +13 -0
- package/skills/engineering/resolve-release/flows/workspace-npm.md +22 -0
- package/skills/engineering/resolve-release/references/canary.md +51 -0
- package/skills/engineering/resolve-release/references/candidate.md +41 -0
- package/skills/engineering/resolve-release/references/cut.md +131 -0
- package/skills/engineering/resolve-release/references/dark-launch.md +66 -0
- package/skills/engineering/resolve-release/references/flows.md +150 -0
- package/skills/engineering/resolve-release/references/preflight.md +154 -0
- package/skills/engineering/resolve-release/references/prepared-metadata.md +260 -0
- package/skills/engineering/resolve-release/references/promotion.md +82 -0
- package/skills/engineering/resolve-release/references/publish.md +232 -0
- package/skills/engineering/resolve-release/references/workspace-npm.md +103 -0
- package/skills/engineering/resolve-release/release-check.mjs +93 -0
- package/skills/engineering/resolve-release/scripts/apply.mjs +212 -0
- package/skills/engineering/resolve-release/scripts/apply.test.mjs +99 -0
- package/skills/engineering/resolve-release/scripts/dark-flags.mjs +134 -0
- package/skills/engineering/resolve-release/scripts/dark-flags.test.mjs +100 -0
- package/skills/engineering/resolve-release/scripts/flow.mjs +500 -0
- package/skills/engineering/resolve-release/scripts/flow.test.mjs +340 -0
- package/skills/engineering/resolve-release/scripts/green-head.mjs +231 -0
- package/skills/engineering/resolve-release/scripts/green-head.test.mjs +101 -0
- package/skills/engineering/resolve-release/scripts/npm-version-absence.mjs +138 -0
- package/skills/engineering/resolve-release/scripts/npm-version-absence.test.mjs +426 -0
- package/skills/engineering/resolve-release/scripts/plan-npm.test.mjs +659 -0
- package/skills/engineering/resolve-release/scripts/plan-toml-boundary.test.mjs +317 -0
- package/skills/engineering/resolve-release/scripts/plan-uv.test.mjs +291 -0
- package/skills/engineering/resolve-release/scripts/plan.mjs +806 -0
- package/skills/engineering/resolve-release/scripts/plan.test.mjs +428 -0
- package/skills/engineering/rush-issues/LICENSE +3 -0
- package/skills/engineering/rush-issues/SKILL.md +58 -0
- package/skills/engineering/rush-issues/agents/openai.yaml +8 -0
- package/skills/engineering/rush-issues/rehydrate.mjs +10 -0
- package/skills/engineering/rush-issues/release-check.mjs +93 -0
- package/skills/engineering/rush-release/LICENSE +3 -0
- package/skills/engineering/rush-release/SKILL.md +35 -0
- package/skills/engineering/rush-release/agents/openai.yaml +8 -0
- package/skills/engineering/rush-release/release-check.mjs +93 -0
- package/skills/engineering/test-quality/LICENSE +3 -0
- package/skills/engineering/test-quality/SKILL.md +79 -0
- package/skills/engineering/test-quality/references/audit.md +80 -0
- package/skills/engineering/test-quality/references/lint.md +24 -0
- package/skills/engineering/test-quality/references/principles.md +143 -0
- package/skills/engineering/test-quality/references/testing-conventions.md +9 -0
- package/skills/engineering/test-quality/release-check.mjs +93 -0
- package/skills/engineering/test-quality/scripts/lint-tests.mjs +574 -0
- package/skills/engineering/test-quality/scripts/lint-tests.test.mjs +591 -0
- package/skills/engineering/test-quality/scripts/mock-policy-config.mjs +176 -0
- package/skills/engineering/test-quality/scripts/mock-policy-config.test.mjs +119 -0
- package/skills/engineering/test-quality/scripts/persist-conventions-core.mjs +117 -0
- package/skills/engineering/test-quality/scripts/persist-conventions.mjs +17 -0
- package/skills/engineering/test-quality/scripts/persist-conventions.test.mjs +104 -0
- package/skills/risk-compliance/compliance-audit/LICENSE +3 -0
- package/skills/risk-compliance/compliance-audit/SKILL.md +439 -0
- package/skills/risk-compliance/compliance-audit/references/findings-schema.md +293 -0
- package/skills/risk-compliance/compliance-audit/references/normalization-rules.md +45 -0
- package/skills/risk-compliance/compliance-audit/references/vars-checklist.md +1068 -0
- package/skills/risk-compliance/compliance-audit/references/vars-findings-schema.md +398 -0
- package/skills/risk-compliance/compliance-audit/release-check.mjs +93 -0
- package/skills/risk-compliance/compliance-audit/scripts/compliance-audit.test.mjs +14 -0
- package/skills/risk-compliance/compliance-audit/scripts/export_tracker_xlsx.py +221 -0
- package/skills/risk-compliance/compliance-audit/scripts/reconcile_tracker.py +458 -0
- package/skills/risk-compliance/compliance-audit/scripts/test_export_tracker_xlsx.py +97 -0
- package/skills/risk-compliance/compliance-audit/scripts/test_validate_tracker.py +157 -0
- package/skills/risk-compliance/compliance-audit/scripts/validate_tracker.py +829 -0
- package/skills/risk-compliance/contract-compare/LICENSE +3 -0
- package/skills/risk-compliance/contract-compare/SKILL.md +199 -0
- package/skills/risk-compliance/contract-compare/references/comparison-dimensions.md +209 -0
- package/skills/risk-compliance/contract-compare/release-check.mjs +93 -0
- package/skills/risk-compliance/contract-review/LICENSE +3 -0
- package/skills/risk-compliance/contract-review/SKILL.md +240 -0
- package/skills/risk-compliance/contract-review/references/review-criteria.md +223 -0
- package/skills/risk-compliance/contract-review/release-check.mjs +93 -0
- package/skills/risk-compliance/doc-authenticity/LICENSE +3 -0
- package/skills/risk-compliance/doc-authenticity/SKILL.md +160 -0
- package/skills/risk-compliance/doc-authenticity/agents/openai.yaml +8 -0
- package/skills/risk-compliance/doc-authenticity/manual-invocation.test.mjs +12 -0
- package/skills/risk-compliance/doc-authenticity/references/agreement.md +66 -0
- package/skills/risk-compliance/doc-authenticity/references/bank-statement.md +150 -0
- package/skills/risk-compliance/doc-authenticity/references/forensic-signals.md +157 -0
- package/skills/risk-compliance/doc-authenticity/references/image-signals.md +114 -0
- package/skills/risk-compliance/doc-authenticity/references/invoice.md +66 -0
- package/skills/risk-compliance/doc-authenticity/references/issuer-profiles.md +86 -0
- package/skills/risk-compliance/doc-authenticity/references/verdict-and-report.md +95 -0
- package/skills/risk-compliance/doc-authenticity/references/verdict.schema.json +81 -0
- package/skills/risk-compliance/doc-authenticity/release-check.mjs +93 -0
- package/skills/risk-compliance/doc-authenticity/scripts/image_forensics.py +294 -0
- package/skills/risk-compliance/doc-authenticity/scripts/pdf_forensics.py +401 -0
- package/skills/risk-compliance/doc-authenticity/scripts/validate_codes.py +224 -0
- package/skills/risk-compliance/doc-authenticity/scripts/validate_verdict.py +308 -0
- package/skills/risk-compliance/doc-authenticity/scripts/validate_verdict.test.mjs +212 -0
- package/skills/risk-compliance/fraud-analysis/LICENSE +3 -0
- package/skills/risk-compliance/fraud-analysis/SKILL.md +114 -0
- package/skills/risk-compliance/fraud-analysis/references/archetypes/authorized-payment-scam.md +41 -0
- package/skills/risk-compliance/fraud-analysis/references/archetypes/first-party-fraud.md +44 -0
- package/skills/risk-compliance/fraud-analysis/references/archetypes/third-party-fraud.md +27 -0
- package/skills/risk-compliance/fraud-analysis/references/contexts/bank-transfer.md +24 -0
- package/skills/risk-compliance/fraud-analysis/references/contexts/card-payment.md +30 -0
- package/skills/risk-compliance/fraud-analysis/references/contexts/payment-collection.md +20 -0
- package/skills/risk-compliance/fraud-analysis/references/contexts/payout.md +20 -0
- package/skills/risk-compliance/fraud-analysis/references/feature-engineering.md +158 -0
- package/skills/risk-compliance/fraud-analysis/references/mechanisms/account-takeover.md +36 -0
- package/skills/risk-compliance/fraud-analysis/references/report-rationale.md +45 -0
- package/skills/risk-compliance/fraud-analysis/references/report-template.md +190 -0
- package/skills/risk-compliance/fraud-analysis/references/review-checklist.md +175 -0
- package/skills/risk-compliance/fraud-analysis/references/taxonomy.md +79 -0
- package/skills/risk-compliance/fraud-analysis/references/terminology.md +108 -0
- package/skills/risk-compliance/fraud-analysis/references/workflow.md +175 -0
- package/skills/risk-compliance/fraud-analysis/release-check.mjs +93 -0
- package/skills/risk-compliance/payment-analysis/LICENSE +3 -0
- package/skills/risk-compliance/payment-analysis/SKILL.md +180 -0
- package/skills/risk-compliance/payment-analysis/references/auth-rate-actions.md +30 -0
- package/skills/risk-compliance/payment-analysis/references/chargebacks.md +208 -0
- package/skills/risk-compliance/payment-analysis/references/chinese-polish.md +51 -0
- package/skills/risk-compliance/payment-analysis/references/event-layers.md +127 -0
- package/skills/risk-compliance/payment-analysis/references/fx.md +59 -0
- package/skills/risk-compliance/payment-analysis/references/journey.md +79 -0
- package/skills/risk-compliance/payment-analysis/references/metrics.md +67 -0
- package/skills/risk-compliance/payment-analysis/references/report-template.md +119 -0
- package/skills/risk-compliance/payment-analysis/references/terminology.md +95 -0
- package/skills/risk-compliance/payment-analysis/references/visualization.md +56 -0
- package/skills/risk-compliance/payment-analysis/release-check.mjs +93 -0
- package/skills/risk-compliance/report-writing/LICENSE +3 -0
- package/skills/risk-compliance/report-writing/SKILL.md +220 -0
- package/skills/risk-compliance/report-writing/references/audit-report-template.md +121 -0
- package/skills/risk-compliance/report-writing/references/external-assessment-template.md +167 -0
- package/skills/risk-compliance/report-writing/references/management-report-template.md +145 -0
- package/skills/risk-compliance/report-writing/references/vars-report-template.md +224 -0
- package/skills/risk-compliance/report-writing/release-check.mjs +93 -0
- package/skills/risk-compliance/similar-domain/LICENSE +3 -0
- package/skills/risk-compliance/similar-domain/SKILL.md +203 -0
- package/skills/risk-compliance/similar-domain/references/entities.md +67 -0
- package/skills/risk-compliance/similar-domain/references/fingerprints.md +134 -0
- package/skills/risk-compliance/similar-domain/references/pivots.md +82 -0
- package/skills/risk-compliance/similar-domain/references/report-template.md +93 -0
- package/skills/risk-compliance/similar-domain/references/scoring.md +130 -0
- package/skills/risk-compliance/similar-domain/references/terminology.md +41 -0
- package/skills/risk-compliance/similar-domain/references/workflow.md +85 -0
- package/skills/risk-compliance/similar-domain/release-check.mjs +93 -0
- package/skills/risk-compliance/tld-detection/LICENSE +3 -0
- package/skills/risk-compliance/tld-detection/SKILL.md +245 -0
- package/skills/risk-compliance/tld-detection/agents/openai.yaml +9 -0
- package/skills/risk-compliance/tld-detection/references/chinese-polish.md +55 -0
- package/skills/risk-compliance/tld-detection/references/clean.md +51 -0
- package/skills/risk-compliance/tld-detection/references/clustering.md +235 -0
- package/skills/risk-compliance/tld-detection/references/decision.md +189 -0
- package/skills/risk-compliance/tld-detection/references/fx-conversion.md +232 -0
- package/skills/risk-compliance/tld-detection/references/report-template.md +272 -0
- package/skills/risk-compliance/tld-detection/references/streams.md +141 -0
- package/skills/risk-compliance/tld-detection/references/terminology.md +95 -0
- package/skills/risk-compliance/tld-detection/references/workflow.md +95 -0
- package/skills/risk-compliance/tld-detection/release-check.mjs +93 -0
- package/skills/risk-compliance/tld-detection/scripts/detect_ladders.py +390 -0
- package/skills/risk-compliance/tld-detection/scripts/detect_ladders.test.mjs +14 -0
- package/skills/risk-compliance/tld-detection/scripts/detect_streams.py +650 -0
- package/skills/risk-compliance/tld-detection/scripts/detect_streams.test.mjs +14 -0
- package/skills/risk-compliance/tld-detection/tests/test_detect_ladders.py +134 -0
- package/skills/risk-compliance/tld-detection/tests/test_detect_streams.py +520 -0
|
@@ -0,0 +1,635 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mermaid
|
|
3
|
+
description: Create and edit Mermaid diagrams for architecture, API flows, database schemas, workflows, and data models.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
release-version: 0.36.0
|
|
6
|
+
---
|
|
7
|
+
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
8
|
+
# Mermaid Diagram Creation
|
|
9
|
+
Create clear, professional Mermaid diagrams.
|
|
10
|
+
|
|
11
|
+
## Critical Rules
|
|
12
|
+
|
|
13
|
+
### Mandatory Validation
|
|
14
|
+
**BEFORE reporting task completion, you MUST:**
|
|
15
|
+
1. Verify the diagram syntax is valid
|
|
16
|
+
2. Test rendering at mermaid.live if creating complex diagrams
|
|
17
|
+
3. Verify node IDs are alphanumeric (no special chars except underscore)
|
|
18
|
+
4. Only report success after confirming the diagram renders without errors
|
|
19
|
+
|
|
20
|
+
### Text Escaping Rules
|
|
21
|
+
**Escaping is NOT always required.** Only escape when a character breaks Mermaid syntax.
|
|
22
|
+
|
|
23
|
+
**Node IDs (no escaping needed):**
|
|
24
|
+
- Use camelCase or snake_case: `userService`, `api_gateway`
|
|
25
|
+
- Alphanumeric only, start with letter: `node1`, `stepA`
|
|
26
|
+
- No spaces, no special characters except underscore
|
|
27
|
+
|
|
28
|
+
**Node Labels - Most characters work without escaping:**
|
|
29
|
+
- **No escaping needed:** `A[User Login]`, `B[Process Data]`, `C[version 1.0]`, `D[status: ok]`
|
|
30
|
+
- **Use quotes when syntax conflicts:** `A["This has (parens)"]`, `B["Text with [brackets]"]`
|
|
31
|
+
|
|
32
|
+
**Characters that WILL break syntax (must handle):**
|
|
33
|
+
| Character | When it breaks | Solution |
|
|
34
|
+
|-----------|----------------|----------|
|
|
35
|
+
| `()` parens | In node labels `A[text (here)]` | Quote: `A["text (here)"]` or entity: `#lpar;` `#rpar;` |
|
|
36
|
+
| `[]` brackets | In node labels | Quote: `A["text [here]"]` |
|
|
37
|
+
| `{}` braces | In node labels | Quote: `A["text {here}"]` or entity: `#lcub;` `#rcub;` |
|
|
38
|
+
| `"` quotes | Inside quoted labels | Escape: `A["He said \"hello\""]` or entity: `#quot;` |
|
|
39
|
+
| `;` semicolon | In sequence diagrams (line delimiter) | Entity: `#59;` |
|
|
40
|
+
| `#` hash | Conflicts with entity syntax | Entity: `#35;` or quote the label |
|
|
41
|
+
|
|
42
|
+
**Characters that usually work fine (escape only if broken):**
|
|
43
|
+
- `.` dots: `A[file.txt]` ✓
|
|
44
|
+
- `/` slashes: `A[POST /api/users]` ✓
|
|
45
|
+
- `:` colons: `A[Status: Active]` ✓
|
|
46
|
+
- `-` dashes: `A[User-Service]` ✓
|
|
47
|
+
- `&` ampersand: Usually works, use `#amp;` if issues
|
|
48
|
+
- `%` percent: Usually works, use `#37;` if issues
|
|
49
|
+
- `<>` angle brackets: Usually works, use `#lt;` `#gt;` if issues
|
|
50
|
+
|
|
51
|
+
**Preferred approach: Use double quotes**
|
|
52
|
+
```mermaid
|
|
53
|
+
flowchart TD
|
|
54
|
+
A["POST /api/users"] --> B["Status: 200"]
|
|
55
|
+
B --> C["Config (optional)"]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Alternative: HTML Entity Codes**
|
|
59
|
+
- `#lpar;` `#rpar;` for `(` `)`
|
|
60
|
+
- `#lcub;` `#rcub;` for `{` `}`
|
|
61
|
+
- `#quot;` for `"`
|
|
62
|
+
- `#59;` for `;` (required in sequence diagrams)
|
|
63
|
+
- `#35;` for `#`
|
|
64
|
+
- `#amp;` for `&`
|
|
65
|
+
- `#lt;` `#gt;` for `<` `>`
|
|
66
|
+
|
|
67
|
+
**Examples:**
|
|
68
|
+
|
|
69
|
+
```mermaid
|
|
70
|
+
flowchart TD
|
|
71
|
+
%% These work WITHOUT escaping
|
|
72
|
+
A[POST /api/login] --> B[Validate Credentials]
|
|
73
|
+
B -->|status: 200| C[Generate JWT]
|
|
74
|
+
C --> D[Return Token]
|
|
75
|
+
|
|
76
|
+
%% File paths and versions - no escaping needed
|
|
77
|
+
E[config.json] --> F[version 2.1.0]
|
|
78
|
+
|
|
79
|
+
%% Parentheses NEED quotes or entity codes
|
|
80
|
+
G["User (admin)"] --> H["Role (superuser)"]
|
|
81
|
+
|
|
82
|
+
%% Brackets NEED quotes
|
|
83
|
+
I["Array[String]"] --> J["Map[K, V]"]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```mermaid
|
|
87
|
+
sequenceDiagram
|
|
88
|
+
%% Most characters work fine
|
|
89
|
+
User->>API: POST /auth/login
|
|
90
|
+
API->>DB: SELECT * FROM users
|
|
91
|
+
DB-->>API: User found
|
|
92
|
+
|
|
93
|
+
%% Semicolons MUST be escaped in sequence diagrams
|
|
94
|
+
API->>Log: Event#59; user_login
|
|
95
|
+
|
|
96
|
+
%% Parentheses need quotes
|
|
97
|
+
User->>API: "Get config (optional)"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Relationship Labels in ER Diagrams:**
|
|
101
|
+
```mermaid
|
|
102
|
+
erDiagram
|
|
103
|
+
%% Always quote relationship text
|
|
104
|
+
USER ||--o{ ORDER : "places order"
|
|
105
|
+
ORDER }o--|| PRODUCT : "contains item"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Pre-Delivery Checklist
|
|
109
|
+
Before reporting any mermaid diagram task as complete:
|
|
110
|
+
- [ ] Parentheses `()` in labels: quoted or escaped with `#lpar;` `#rpar;`
|
|
111
|
+
- [ ] Brackets `[]` in labels: quoted
|
|
112
|
+
- [ ] Braces `{}` in labels: quoted or escaped with `#lcub;` `#rcub;`
|
|
113
|
+
- [ ] Semicolons in sequence diagrams: escaped with `#59;`
|
|
114
|
+
- [ ] Hash `#` if present: escaped with `#35;`
|
|
115
|
+
- [ ] ER relationships are quoted: `: "places order"`
|
|
116
|
+
- [ ] Syntax validated (no missing brackets/arrows)
|
|
117
|
+
- [ ] Complex diagrams tested at mermaid.live
|
|
118
|
+
- [ ] Diagram renders without errors
|
|
119
|
+
|
|
120
|
+
**Note:** Most other characters (dots, slashes, colons, dashes) do NOT need escaping.
|
|
121
|
+
|
|
122
|
+
## When to Use
|
|
123
|
+
|
|
124
|
+
- System architecture diagrams
|
|
125
|
+
- API and sequence flows
|
|
126
|
+
- Database schemas and ER diagrams
|
|
127
|
+
- Process workflows and state machines
|
|
128
|
+
- Git branching strategies
|
|
129
|
+
- Class hierarchies and relationships
|
|
130
|
+
- Gantt charts and timelines
|
|
131
|
+
|
|
132
|
+
## Diagram Types
|
|
133
|
+
|
|
134
|
+
### Flowchart
|
|
135
|
+
Use for: Process flows, decision trees, algorithm visualization
|
|
136
|
+
|
|
137
|
+
```mermaid
|
|
138
|
+
flowchart TD
|
|
139
|
+
Start([Start]) --> Input[/Get User Input/]
|
|
140
|
+
Input --> Validate{Valid?}
|
|
141
|
+
Validate -->|Yes| Process["Process Data"]
|
|
142
|
+
Validate -->|No| Error["Show Error"]
|
|
143
|
+
Error --> Input
|
|
144
|
+
Process --> Save[(Save to DB)]
|
|
145
|
+
Save --> End([End])
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Key syntax:**
|
|
149
|
+
- `TD` = Top Down, `LR` = Left Right, `RL` = Right Left, `BT` = Bottom Top
|
|
150
|
+
- `[Rectangle]`, `(Rounded)`, `{Diamond}`, `[(Database)]`, `([Stadium])`
|
|
151
|
+
- `-->` solid line, `-.->` dotted line, `==>` thick line
|
|
152
|
+
- `-->|Label|` for labeled edges
|
|
153
|
+
|
|
154
|
+
### Graph (Legacy Syntax)
|
|
155
|
+
Use for: Same as flowchart, but with older syntax (still widely supported)
|
|
156
|
+
|
|
157
|
+
```mermaid
|
|
158
|
+
graph TD
|
|
159
|
+
A[Start] --> B["Check Input"]
|
|
160
|
+
B -->|Valid| C["Process"]
|
|
161
|
+
B -->|Invalid| D["Error"]
|
|
162
|
+
D --> B
|
|
163
|
+
C --> E[End]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Flowchart vs Graph:**
|
|
167
|
+
| Feature | `flowchart` | `graph` |
|
|
168
|
+
|---------|-------------|---------|
|
|
169
|
+
| Syntax | Newer (v8.6.0+) | Legacy |
|
|
170
|
+
| Features | More node shapes, better styling | Basic features |
|
|
171
|
+
| Recommendation | **Preferred** for new diagrams | Use for compatibility |
|
|
172
|
+
| Support | Modern Mermaid versions | All versions |
|
|
173
|
+
|
|
174
|
+
**When to use `graph` instead of `flowchart`:**
|
|
175
|
+
- Working with older Mermaid versions (pre-v8.6)
|
|
176
|
+
- Existing codebase uses `graph` syntax
|
|
177
|
+
- Maximum compatibility required
|
|
178
|
+
|
|
179
|
+
**Prefer `flowchart` for:**
|
|
180
|
+
- New diagrams
|
|
181
|
+
- Advanced node shapes
|
|
182
|
+
- Better layout control
|
|
183
|
+
- Modern documentation
|
|
184
|
+
|
|
185
|
+
### Sequence Diagram
|
|
186
|
+
Use for: API interactions, authentication flows, message passing
|
|
187
|
+
|
|
188
|
+
```mermaid
|
|
189
|
+
sequenceDiagram
|
|
190
|
+
actor User
|
|
191
|
+
participant Frontend
|
|
192
|
+
participant API
|
|
193
|
+
participant DB
|
|
194
|
+
|
|
195
|
+
User->>Frontend: Click Login
|
|
196
|
+
Frontend->>API: POST /auth/login
|
|
197
|
+
activate API
|
|
198
|
+
API->>DB: Query user
|
|
199
|
+
DB-->>API: User data
|
|
200
|
+
API->>API: Verify password
|
|
201
|
+
API-->>Frontend: JWT token
|
|
202
|
+
deactivate API
|
|
203
|
+
Frontend->>User: Redirect to dashboard
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Key syntax:**
|
|
207
|
+
- `->>` solid arrow, `-->>` dotted arrow (response)
|
|
208
|
+
- `activate`/`deactivate` for lifelines
|
|
209
|
+
- `Note over A,B: Text` for annotations
|
|
210
|
+
- `actor` for human users, `participant` for systems
|
|
211
|
+
|
|
212
|
+
### Class Diagram
|
|
213
|
+
Use for: Object-oriented design, data structures, type hierarchies
|
|
214
|
+
|
|
215
|
+
```mermaid
|
|
216
|
+
classDiagram
|
|
217
|
+
class User {
|
|
218
|
+
+String id
|
|
219
|
+
+String email
|
|
220
|
+
+String name
|
|
221
|
+
-String passwordHash
|
|
222
|
+
+login() bool
|
|
223
|
+
+updateProfile() void
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
class Post {
|
|
227
|
+
+String id
|
|
228
|
+
+String title
|
|
229
|
+
+String content
|
|
230
|
+
+DateTime createdAt
|
|
231
|
+
+publish() void
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
class Comment {
|
|
235
|
+
+String id
|
|
236
|
+
+String text
|
|
237
|
+
+DateTime createdAt
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
User "1" --> "*" Post : creates
|
|
241
|
+
Post "1" --> "*" Comment : has
|
|
242
|
+
User "1" --> "*" Comment : writes
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Key syntax:**
|
|
246
|
+
- `+` public, `-` private, `#` protected
|
|
247
|
+
- `"1"` to `"*"` for cardinality
|
|
248
|
+
- `<|--` inheritance, `*--` composition, `o--` aggregation
|
|
249
|
+
- `-->` association, `..>` dependency
|
|
250
|
+
|
|
251
|
+
### Entity Relationship Diagram
|
|
252
|
+
Use for: Database schema design, data modeling
|
|
253
|
+
|
|
254
|
+
```mermaid
|
|
255
|
+
erDiagram
|
|
256
|
+
USER ||--o{ POST : creates
|
|
257
|
+
USER ||--o{ COMMENT : writes
|
|
258
|
+
POST ||--o{ COMMENT : has
|
|
259
|
+
POST }o--|| CATEGORY : "belongs to"
|
|
260
|
+
|
|
261
|
+
USER {
|
|
262
|
+
uuid id PK
|
|
263
|
+
string email UK
|
|
264
|
+
string name
|
|
265
|
+
timestamp created_at
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
POST {
|
|
269
|
+
uuid id PK
|
|
270
|
+
uuid user_id FK
|
|
271
|
+
uuid category_id FK
|
|
272
|
+
string title
|
|
273
|
+
text content
|
|
274
|
+
timestamp published_at
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
COMMENT {
|
|
278
|
+
uuid id PK
|
|
279
|
+
uuid user_id FK
|
|
280
|
+
uuid post_id FK
|
|
281
|
+
text content
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
CATEGORY {
|
|
285
|
+
uuid id PK
|
|
286
|
+
string name UK
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Key syntax:**
|
|
291
|
+
- `||--o{` one to many
|
|
292
|
+
- `||--||` one to one
|
|
293
|
+
- `}o--o{` many to many
|
|
294
|
+
- `PK` primary key, `FK` foreign key, `UK` unique key
|
|
295
|
+
|
|
296
|
+
### State Diagram
|
|
297
|
+
Use for: State machines, workflow stages, lifecycle management
|
|
298
|
+
|
|
299
|
+
```mermaid
|
|
300
|
+
stateDiagram-v2
|
|
301
|
+
[*] --> Draft
|
|
302
|
+
Draft --> Review : Submit
|
|
303
|
+
Review --> Approved : Approve
|
|
304
|
+
Review --> Rejected : Reject
|
|
305
|
+
Review --> Draft : Request Changes
|
|
306
|
+
Rejected --> Draft : Revise
|
|
307
|
+
Approved --> Published : Publish
|
|
308
|
+
Published --> Archived : Archive
|
|
309
|
+
Archived --> [*]
|
|
310
|
+
|
|
311
|
+
state Review {
|
|
312
|
+
[*] --> PendingReview
|
|
313
|
+
PendingReview --> InReview : Assign Reviewer
|
|
314
|
+
InReview --> [*]
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Git Graph
|
|
319
|
+
Use for: Git branching strategies, release workflows
|
|
320
|
+
|
|
321
|
+
```mermaid
|
|
322
|
+
gitGraph
|
|
323
|
+
commit id: "Initial commit"
|
|
324
|
+
branch develop
|
|
325
|
+
checkout develop
|
|
326
|
+
commit id: "Add feature A"
|
|
327
|
+
branch feature/login
|
|
328
|
+
checkout feature/login
|
|
329
|
+
commit id: "Implement auth"
|
|
330
|
+
commit id: "Add tests"
|
|
331
|
+
checkout develop
|
|
332
|
+
merge feature/login
|
|
333
|
+
checkout main
|
|
334
|
+
merge develop tag: "v1.0.0"
|
|
335
|
+
checkout develop
|
|
336
|
+
commit id: "Add feature B"
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Timeline / Gantt
|
|
340
|
+
Use for: Project planning, milestone tracking
|
|
341
|
+
|
|
342
|
+
```mermaid
|
|
343
|
+
gantt
|
|
344
|
+
title Project Timeline
|
|
345
|
+
dateFormat YYYY-MM-DD
|
|
346
|
+
section Planning
|
|
347
|
+
Requirements :done, req, 2024-01-01, 2024-01-15
|
|
348
|
+
Design :done, des, 2024-01-10, 2024-01-25
|
|
349
|
+
section Development
|
|
350
|
+
Backend API :active, dev1, 2024-01-20, 2024-02-15
|
|
351
|
+
Frontend :dev2, after dev1, 20d
|
|
352
|
+
section Testing
|
|
353
|
+
QA Testing :test, after dev2, 10d
|
|
354
|
+
section Deployment
|
|
355
|
+
Deploy to Prod :milestone, after test, 0d
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
## Best Practices
|
|
359
|
+
|
|
360
|
+
### Clarity
|
|
361
|
+
- Keep diagrams focused on one concept
|
|
362
|
+
- Use consistent naming conventions
|
|
363
|
+
- Limit nodes to 10-15 per diagram
|
|
364
|
+
- Break complex diagrams into multiple views
|
|
365
|
+
|
|
366
|
+
### Styling
|
|
367
|
+
```mermaid
|
|
368
|
+
flowchart LR
|
|
369
|
+
A[Normal] --> B[Process]
|
|
370
|
+
B --> C[Result]
|
|
371
|
+
|
|
372
|
+
classDef important fill:#ff6b6b,stroke:#c92a2a,color:#fff
|
|
373
|
+
classDef success fill:#51cf66,stroke:#2b8a3e,color:#fff
|
|
374
|
+
|
|
375
|
+
class B important
|
|
376
|
+
class C success
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Subgraphs for Grouping
|
|
380
|
+
```mermaid
|
|
381
|
+
flowchart TB
|
|
382
|
+
subgraph Frontend
|
|
383
|
+
UI[React App]
|
|
384
|
+
State[Redux Store]
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
subgraph Backend
|
|
388
|
+
API[FastAPI]
|
|
389
|
+
DB[(PostgreSQL)]
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
UI --> API
|
|
393
|
+
API --> DB
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Links and Tooltips
|
|
397
|
+
```mermaid
|
|
398
|
+
flowchart LR
|
|
399
|
+
A[Click Me] --> B[With Tooltip]
|
|
400
|
+
click A "https://example.com" "Link to docs"
|
|
401
|
+
B:::tooltip
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
## Common Patterns
|
|
405
|
+
|
|
406
|
+
### Microservices Architecture
|
|
407
|
+
```mermaid
|
|
408
|
+
flowchart TB
|
|
409
|
+
Client[Client App]
|
|
410
|
+
Gateway[API Gateway]
|
|
411
|
+
|
|
412
|
+
subgraph Services
|
|
413
|
+
Auth[Auth Service]
|
|
414
|
+
Users[User Service]
|
|
415
|
+
Orders[Order Service]
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
subgraph Data
|
|
419
|
+
AuthDB[(Auth DB)]
|
|
420
|
+
UserDB[(User DB)]
|
|
421
|
+
OrderDB[(Order DB)]
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
Client --> Gateway
|
|
425
|
+
Gateway --> Auth
|
|
426
|
+
Gateway --> Users
|
|
427
|
+
Gateway --> Orders
|
|
428
|
+
|
|
429
|
+
Auth --> AuthDB
|
|
430
|
+
Users --> UserDB
|
|
431
|
+
Orders --> OrderDB
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### API Request Flow
|
|
435
|
+
```mermaid
|
|
436
|
+
sequenceDiagram
|
|
437
|
+
participant C as Client
|
|
438
|
+
participant LB as Load Balancer
|
|
439
|
+
participant API as API Server
|
|
440
|
+
participant Cache as Redis
|
|
441
|
+
participant DB as Database
|
|
442
|
+
|
|
443
|
+
C->>LB: HTTPS Request
|
|
444
|
+
LB->>API: Forward Request
|
|
445
|
+
API->>Cache: Check Cache
|
|
446
|
+
alt Cache Hit
|
|
447
|
+
Cache-->>API: Return Data
|
|
448
|
+
else Cache Miss
|
|
449
|
+
API->>DB: Query Data
|
|
450
|
+
DB-->>API: Result
|
|
451
|
+
API->>Cache: Store in Cache
|
|
452
|
+
end
|
|
453
|
+
API-->>LB: Response
|
|
454
|
+
LB-->>C: Return Response
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### Database Schema
|
|
458
|
+
```mermaid
|
|
459
|
+
erDiagram
|
|
460
|
+
USERS ||--o{ ORDERS : places
|
|
461
|
+
USERS ||--o{ ADDRESSES : has
|
|
462
|
+
ORDERS ||--|{ ORDER_ITEMS : contains
|
|
463
|
+
ORDERS }o--|| ADDRESSES : "ships to"
|
|
464
|
+
PRODUCTS ||--o{ ORDER_ITEMS : "ordered in"
|
|
465
|
+
|
|
466
|
+
USERS {
|
|
467
|
+
uuid id PK
|
|
468
|
+
string email UK
|
|
469
|
+
timestamp created_at
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
ORDERS {
|
|
473
|
+
uuid id PK
|
|
474
|
+
uuid user_id FK
|
|
475
|
+
uuid shipping_address_id FK
|
|
476
|
+
enum status
|
|
477
|
+
decimal total
|
|
478
|
+
}
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
## Rendering
|
|
482
|
+
|
|
483
|
+
Mermaid diagrams can be rendered:
|
|
484
|
+
- GitHub/GitLab markdown (native support)
|
|
485
|
+
- VSCode with Mermaid extensions
|
|
486
|
+
- Documentation tools (MkDocs, Docusaurus)
|
|
487
|
+
- Online: mermaid.live
|
|
488
|
+
- Export to SVG/PNG for presentations
|
|
489
|
+
|
|
490
|
+
## Validation Workflow
|
|
491
|
+
|
|
492
|
+
**MANDATORY before reporting completion:**
|
|
493
|
+
|
|
494
|
+
1. **Syntax Check**
|
|
495
|
+
- Verify all node IDs are valid (alphanumeric, start with letter)
|
|
496
|
+
- Check all special characters are quoted
|
|
497
|
+
- Confirm arrow syntax is correct (`-->`, `->>`, `-->>`, etc.)
|
|
498
|
+
|
|
499
|
+
2. **Rendering Test**
|
|
500
|
+
- For simple diagrams: Visual review of syntax
|
|
501
|
+
- For complex diagrams: Test at mermaid.live
|
|
502
|
+
- Paste diagram into mermaid.live editor
|
|
503
|
+
- Confirm it renders without errors
|
|
504
|
+
- Check for warnings in console
|
|
505
|
+
|
|
506
|
+
3. **Content Validation**
|
|
507
|
+
- All labels display correctly
|
|
508
|
+
- All relationships are visible
|
|
509
|
+
- Layout is clear and readable
|
|
510
|
+
- No overlapping nodes or text
|
|
511
|
+
|
|
512
|
+
4. **Common Failure Points to Check**
|
|
513
|
+
- [ ] Parentheses `()` in labels: quoted or use `#lpar;` `#rpar;`
|
|
514
|
+
- [ ] Brackets `[]` in labels: quoted
|
|
515
|
+
- [ ] Braces `{}` in labels: quoted or use `#lcub;` `#rcub;`
|
|
516
|
+
- [ ] Semicolons `;` in sequence diagrams: use `#59;`
|
|
517
|
+
- [ ] Hash `#` conflicts with entity syntax: use `#35;`
|
|
518
|
+
- [ ] Quotes `"` inside quoted labels: use `\"` or `#quot;`
|
|
519
|
+
- [ ] ER diagram relationships are quoted: `: "places order"`
|
|
520
|
+
- [ ] No syntax errors (missing brackets, wrong arrows)
|
|
521
|
+
|
|
522
|
+
**Note:** Dots, slashes, colons, dashes usually work fine without escaping.
|
|
523
|
+
|
|
524
|
+
**Only after all checks pass should you report task completion.**
|
|
525
|
+
|
|
526
|
+
## Troubleshooting
|
|
527
|
+
|
|
528
|
+
### Common Issues and Fixes
|
|
529
|
+
|
|
530
|
+
1. **Syntax errors: "Parse error on line X"**
|
|
531
|
+
- **Cause**: Missing quotes, wrong brackets, invalid arrows
|
|
532
|
+
- **Fix**: Check quotes around special characters, verify bracket pairs
|
|
533
|
+
- **Example**: `A[POST /users]` → `A["POST /users"]`
|
|
534
|
+
|
|
535
|
+
2. **Graph too complex / layout issues**
|
|
536
|
+
- **Cause**: Too many nodes, unclear relationships
|
|
537
|
+
- **Fix**: Split into multiple diagrams, use subgraphs
|
|
538
|
+
- **Limit**: Keep under 15 nodes per diagram
|
|
539
|
+
|
|
540
|
+
3. **Labels not showing / cut off**
|
|
541
|
+
- **Cause**: Missing quotes on multi-word labels
|
|
542
|
+
- **Fix**: Add quotes around labels with spaces or special chars
|
|
543
|
+
- **Example**: `A -->|status 200| B` → `A -->|"status 200"| B`
|
|
544
|
+
|
|
545
|
+
4. **Wrong direction / poor layout**
|
|
546
|
+
- **Cause**: Incorrect orientation setting
|
|
547
|
+
- **Fix**: Use `TD` (top-down), `LR` (left-right), `RL`, `BT`
|
|
548
|
+
- **Tip**: Try different orientations for better readability
|
|
549
|
+
|
|
550
|
+
5. **Special characters breaking diagram**
|
|
551
|
+
- **Cause**: Syntax-breaking characters (parentheses, brackets, braces, semicolons)
|
|
552
|
+
- **Fix**: Quote the label or use HTML entity codes
|
|
553
|
+
- **Example**: `A[Init (optional)]` → `A["Init (optional)"]` or `A[Init #lpar;optional#rpar;]`
|
|
554
|
+
- **Example**: `B[Array[String]]` → `B["Array[String]"]`
|
|
555
|
+
- **Example**: `C[Map{K,V}]` → `C["Map{K,V}"]` or `C[Map#lcub;K,V#rcub;]`
|
|
556
|
+
- **Example**: `D[User "admin"]` → `D["User \"admin\""]` or `D[User #quot;admin#quot;]`
|
|
557
|
+
- **Note**: Dots, slashes, colons usually work fine: `A[file.txt]` ✓, `B[POST /api]` ✓
|
|
558
|
+
|
|
559
|
+
6. **Relationships not rendering in ER diagrams**
|
|
560
|
+
- **Cause**: Unquoted relationship labels
|
|
561
|
+
- **Fix**: Always quote relationship text
|
|
562
|
+
- **Example**: `A ||--o{ B : places` → `A ||--o{ B : "places"`
|
|
563
|
+
|
|
564
|
+
### Validation Tips
|
|
565
|
+
- **Always test** complex diagrams at mermaid.live before delivery
|
|
566
|
+
- **Use comments** to document: `%% This is a comment`
|
|
567
|
+
- **Check quotes** around any text with spaces or special chars
|
|
568
|
+
- **Verify syntax** against examples in this guide
|
|
569
|
+
- **Test rendering** in target platform (GitHub, GitLab, docs site)
|
|
570
|
+
- **Version check**: Mermaid version affects available features
|
|
571
|
+
|
|
572
|
+
## Quick Reference
|
|
573
|
+
|
|
574
|
+
| Diagram Type | Use Case | Syntax Start |
|
|
575
|
+
|-------------|----------|--------------|
|
|
576
|
+
| Flowchart | Processes, algorithms (preferred) | `flowchart TD` |
|
|
577
|
+
| Graph | Processes, algorithms (legacy) | `graph TD` |
|
|
578
|
+
| Sequence | API flows, interactions | `sequenceDiagram` |
|
|
579
|
+
| Class | OOP design, types | `classDiagram` |
|
|
580
|
+
| ER | Database schema | `erDiagram` |
|
|
581
|
+
| State | State machines | `stateDiagram-v2` |
|
|
582
|
+
| Git | Version control | `gitGraph` |
|
|
583
|
+
| Gantt | Timelines | `gantt` |
|
|
584
|
+
| Pie | Data distribution | `pie title Text` |
|
|
585
|
+
| Journey | User flows | `journey` |
|
|
586
|
+
|
|
587
|
+
**Remember - Only escape when syntax breaks:**
|
|
588
|
+
|
|
589
|
+
**Must handle (will break syntax):**
|
|
590
|
+
- **Parentheses** `()`: Quote `["Init (optional)"]` or `#lpar;` `#rpar;`
|
|
591
|
+
- **Brackets** `[]`: Quote `["Array[String]"]`
|
|
592
|
+
- **Braces** `{}`: Quote `["Map{K,V}"]` or `#lcub;` `#rcub;`
|
|
593
|
+
- **Semicolons** `;` in sequence diagrams: `#59;`
|
|
594
|
+
- **Hash** `#`: `#35;` (conflicts with entity syntax)
|
|
595
|
+
- **Quotes** `"` inside quoted labels: `\"` or `#quot;`
|
|
596
|
+
|
|
597
|
+
**Usually work fine (no escaping needed):**
|
|
598
|
+
- Dots: `A[file.txt]` ✓
|
|
599
|
+
- Slashes: `A[POST /api/users]` ✓
|
|
600
|
+
- Colons: `A[Status: Active]` ✓
|
|
601
|
+
- Dashes: `A[User-Service]` ✓
|
|
602
|
+
|
|
603
|
+
**Preferred approach:** Use double quotes for labels with special characters
|
|
604
|
+
- Test complex diagrams at mermaid.live before delivery
|
|
605
|
+
|
|
606
|
+
## Examples by Context
|
|
607
|
+
|
|
608
|
+
### Authentication Flow
|
|
609
|
+
```mermaid
|
|
610
|
+
sequenceDiagram
|
|
611
|
+
User->>App: Enter credentials
|
|
612
|
+
App->>API: POST /login
|
|
613
|
+
API->>DB: Verify user
|
|
614
|
+
DB-->>API: User found
|
|
615
|
+
API->>API: Generate JWT
|
|
616
|
+
API-->>App: Return token
|
|
617
|
+
App->>App: Store in localStorage
|
|
618
|
+
App->>User: Redirect to dashboard
|
|
619
|
+
|
|
620
|
+
Note over API,DB: Uses bcrypt v4.1.2
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
### Deployment Pipeline
|
|
624
|
+
```mermaid
|
|
625
|
+
flowchart LR
|
|
626
|
+
Dev["Developer Push"] --> GH[GitHub]
|
|
627
|
+
GH --> CI{"CI Pipeline"}
|
|
628
|
+
CI -->|"Tests Pass"| Build["Build Image"]
|
|
629
|
+
CI -->|"Tests Fail"| Notify["Notify Team"]
|
|
630
|
+
Build --> Push["Push to Registry"]
|
|
631
|
+
Push --> Deploy["Deploy to Cloud Run"]
|
|
632
|
+
Deploy --> Health{"Health Check"}
|
|
633
|
+
Health -->|Pass| Live["Live Traffic"]
|
|
634
|
+
Health -->|Fail| Rollback[Rollback]
|
|
635
|
+
```
|