opencode-skills-collection 3.1.11 → 3.1.13
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/bundled-skills/.antigravity-install-manifest.json +192 -1
- package/bundled-skills/ab-testing/SKILL.md +368 -0
- package/bundled-skills/ab-testing/evals/evals.json +105 -0
- package/bundled-skills/ab-testing/references/sample-size-guide.md +263 -0
- package/bundled-skills/ab-testing/references/test-templates.md +277 -0
- package/bundled-skills/accint-commitments/SKILL.md +32 -0
- package/bundled-skills/accint-frames/SKILL.md +35 -0
- package/bundled-skills/accint-solve/SKILL.md +22 -192
- package/bundled-skills/add-app-clip/SKILL.md +297 -0
- package/bundled-skills/add-app-clip/agents/openai.yaml +4 -0
- package/bundled-skills/add-app-clip/references/native-module.md +96 -0
- package/bundled-skills/agent-memory/SKILL.md +84 -0
- package/bundled-skills/alternatives-pages/README.md +46 -0
- package/bundled-skills/alternatives-pages/SKILL.md +376 -0
- package/bundled-skills/analytics/SKILL.md +324 -0
- package/bundled-skills/analytics/evals/evals.json +90 -0
- package/bundled-skills/analytics/references/event-library.md +260 -0
- package/bundled-skills/analytics/references/ga4-implementation.md +300 -0
- package/bundled-skills/analytics/references/gtm-implementation.md +390 -0
- package/bundled-skills/anti-deception/SKILL.md +50 -0
- package/bundled-skills/api-analyzer/SKILL.md +101 -0
- package/bundled-skills/api-and-interface-design/SKILL.md +307 -0
- package/bundled-skills/api-designer/SKILL.md +167 -0
- package/bundled-skills/api-integration/SKILL.md +175 -0
- package/bundled-skills/api-onboarding/README.md +47 -0
- package/bundled-skills/api-onboarding/SKILL.md +473 -0
- package/bundled-skills/api-sdk-generator/SKILL.md +223 -0
- package/bundled-skills/appium-skill/SKILL.md +317 -0
- package/bundled-skills/applicationinsights-web-ts/SKILL.md +477 -0
- package/bundled-skills/automated-triage/SKILL.md +189 -0
- package/bundled-skills/aws-agentic-ai/SKILL.md +141 -0
- package/bundled-skills/aws-cdk-development/SKILL.md +275 -0
- package/bundled-skills/aws-cost-operations/SKILL.md +273 -0
- package/bundled-skills/aws-mcp-setup/SKILL.md +192 -0
- package/bundled-skills/aws-serverless-eda/SKILL.md +394 -0
- package/bundled-skills/aws-sst-development/SKILL.md +175 -0
- package/bundled-skills/azure-ai-language-conversations-py/SKILL.md +112 -0
- package/bundled-skills/azure-servicebus-rust/SKILL.md +182 -0
- package/bundled-skills/azure-storage-queue-rust/SKILL.md +178 -0
- package/bundled-skills/baseline-ui/SKILL.md +15 -10
- package/bundled-skills/brooks-audit/SKILL.md +49 -0
- package/bundled-skills/brooks-audit/architecture-guide.md +195 -0
- package/bundled-skills/brooks-audit/onboarding-guide.md +89 -0
- package/bundled-skills/brooks-debt/SKILL.md +42 -0
- package/bundled-skills/brooks-debt/debt-guide.md +125 -0
- package/bundled-skills/brooks-harness/SKILL.md +139 -0
- package/bundled-skills/brooks-review/SKILL.md +42 -0
- package/bundled-skills/brooks-review/pr-review-guide.md +163 -0
- package/bundled-skills/brooks-sweep/SKILL.md +44 -0
- package/bundled-skills/brooks-sweep/sweep-guide.md +264 -0
- package/bundled-skills/brooks-test/SKILL.md +41 -0
- package/bundled-skills/brooks-test/test-guide.md +147 -0
- package/bundled-skills/bug-hunt-swarm/SKILL.md +189 -0
- package/bundled-skills/bug-hunt-swarm/agents/openai.yaml +4 -0
- package/bundled-skills/building-native-ui/SKILL.md +77 -18
- package/bundled-skills/building-native-ui/agents/openai.yaml +4 -0
- package/bundled-skills/building-native-ui/references/animations.md +220 -0
- package/bundled-skills/building-native-ui/references/controls.md +270 -0
- package/bundled-skills/building-native-ui/references/form-sheet.md +253 -0
- package/bundled-skills/building-native-ui/references/gradients.md +106 -0
- package/bundled-skills/building-native-ui/references/icons.md +213 -0
- package/bundled-skills/building-native-ui/references/media.md +198 -0
- package/bundled-skills/building-native-ui/references/route-structure.md +229 -0
- package/bundled-skills/building-native-ui/references/search.md +248 -0
- package/bundled-skills/building-native-ui/references/storage.md +121 -0
- package/bundled-skills/building-native-ui/references/tabs.md +433 -0
- package/bundled-skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/bundled-skills/building-native-ui/references/visual-effects.md +197 -0
- package/bundled-skills/building-native-ui/references/webgpu-three.md +605 -0
- package/bundled-skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/bundled-skills/changelog-updates/README.md +53 -0
- package/bundled-skills/changelog-updates/SKILL.md +552 -0
- package/bundled-skills/ci-cd-and-automation/SKILL.md +403 -0
- package/bundled-skills/claimable-postgres/SKILL.md +91 -59
- package/bundled-skills/co-marketing/SKILL.md +301 -0
- package/bundled-skills/co-marketing/evals/evals.json +84 -0
- package/bundled-skills/code-review-and-quality/SKILL.md +394 -0
- package/bundled-skills/code-showcase-core-components/SKILL.md +281 -0
- package/bundled-skills/code-showcase-react-ui-patterns/SKILL.md +306 -0
- package/bundled-skills/code-showcase-systematic-debugging/SKILL.md +167 -0
- package/bundled-skills/code-showcase-testing-patterns/SKILL.md +276 -0
- package/bundled-skills/code-simplification/SKILL.md +344 -0
- package/bundled-skills/community-building/README.md +102 -0
- package/bundled-skills/community-building/SKILL.md +415 -0
- package/bundled-skills/competitor-profiling/SKILL.md +427 -0
- package/bundled-skills/competitor-profiling/evals/evals.json +85 -0
- package/bundled-skills/competitor-profiling/references/templates.md +167 -0
- package/bundled-skills/competitor-profiling/references/tool-reference.md +179 -0
- package/bundled-skills/competitor-tracking/README.md +40 -0
- package/bundled-skills/competitor-tracking/SKILL.md +322 -0
- package/bundled-skills/context-engineering/SKILL.md +302 -0
- package/bundled-skills/cro/SKILL.md +202 -0
- package/bundled-skills/cro/evals/evals.json +111 -0
- package/bundled-skills/cro/references/experiments.md +248 -0
- package/bundled-skills/cro/references/form.md +422 -0
- package/bundled-skills/cucumber-skill/SKILL.md +235 -0
- package/bundled-skills/customer-research/SKILL.md +287 -0
- package/bundled-skills/customer-research/evals/evals.json +162 -0
- package/bundled-skills/customer-research/references/source-guides.md +401 -0
- package/bundled-skills/cypress-skill/SKILL.md +235 -0
- package/bundled-skills/debugging-and-error-recovery/SKILL.md +313 -0
- package/bundled-skills/debugging-code/SKILL.md +284 -0
- package/bundled-skills/debugging-code/references/advanced-techniques.md +50 -0
- package/bundled-skills/debugging-code/references/installing-debuggers.md +67 -0
- package/bundled-skills/debugging-code/scripts/install-dap.sh +87 -0
- package/bundled-skills/deprecation-and-migration/SKILL.md +219 -0
- package/bundled-skills/design-philosophy/SKILL.md +40 -0
- package/bundled-skills/design-philosophy/reference.md +19 -0
- package/bundled-skills/design-spatial/SKILL.md +271 -0
- package/bundled-skills/design-spatial/scripts/layout-audit.js +138 -0
- package/bundled-skills/design-system/SKILL.md +140 -0
- package/bundled-skills/design-system/references/motion-choreography.md +111 -0
- package/bundled-skills/design-thinking/SKILL.md +109 -0
- package/bundled-skills/design-ux/SKILL.md +75 -0
- package/bundled-skills/dev-to-hashnode/README.md +62 -0
- package/bundled-skills/dev-to-hashnode/SKILL.md +399 -0
- package/bundled-skills/developer-advocacy/README.md +102 -0
- package/bundled-skills/developer-advocacy/SKILL.md +423 -0
- package/bundled-skills/developer-audience-context/README.md +61 -0
- package/bundled-skills/developer-audience-context/SKILL.md +271 -0
- package/bundled-skills/developer-audience-context/references/example-apitest.md +175 -0
- package/bundled-skills/developer-audience-context/references/template.md +152 -0
- package/bundled-skills/developer-churn/README.md +80 -0
- package/bundled-skills/developer-churn/SKILL.md +652 -0
- package/bundled-skills/developer-listening/README.md +30 -0
- package/bundled-skills/developer-listening/SKILL.md +232 -0
- package/bundled-skills/developer-newsletter/README.md +84 -0
- package/bundled-skills/developer-newsletter/SKILL.md +376 -0
- package/bundled-skills/developer-onboarding/README.md +35 -0
- package/bundled-skills/developer-onboarding/SKILL.md +530 -0
- package/bundled-skills/developer-sandbox/README.md +47 -0
- package/bundled-skills/developer-sandbox/SKILL.md +504 -0
- package/bundled-skills/developer-seo/README.md +36 -0
- package/bundled-skills/developer-seo/SKILL.md +296 -0
- package/bundled-skills/developer-signup-flow/README.md +36 -0
- package/bundled-skills/developer-signup-flow/SKILL.md +397 -0
- package/bundled-skills/devrel-content/README.md +81 -0
- package/bundled-skills/devrel-content/SKILL.md +428 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/faq.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +8 -8
- package/bundled-skills/docs/users/visual-guide.md +8 -8
- package/bundled-skills/docs-as-marketing/README.md +37 -0
- package/bundled-skills/docs-as-marketing/SKILL.md +398 -0
- package/bundled-skills/documentation-and-adrs/SKILL.md +291 -0
- package/bundled-skills/doubt-driven-development/SKILL.md +256 -0
- package/bundled-skills/eas-update-insights/SKILL.md +232 -0
- package/bundled-skills/eas-update-insights/agents/openai.yaml +4 -0
- package/bundled-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/bundled-skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/bundled-skills/expo-api-routes/SKILL.md +9 -5
- package/bundled-skills/expo-api-routes/agents/openai.yaml +4 -0
- package/bundled-skills/expo-brownfield/SKILL.md +71 -0
- package/bundled-skills/expo-brownfield/agents/openai.yaml +4 -0
- package/bundled-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/bundled-skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/bundled-skills/expo-brownfield/references/comparison.md +63 -0
- package/bundled-skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/bundled-skills/expo-cicd-workflows/SKILL.md +18 -16
- package/bundled-skills/expo-cicd-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/expo-cicd-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/bundled-skills/expo-cicd-workflows/scripts/validate.js +84 -0
- package/bundled-skills/expo-deployment/SKILL.md +157 -53
- package/bundled-skills/expo-deployment/agents/openai.yaml +4 -0
- package/bundled-skills/expo-deployment/references/app-store-metadata.md +497 -0
- package/bundled-skills/expo-deployment/references/ios-app-store.md +371 -0
- package/bundled-skills/expo-deployment/references/play-store.md +246 -0
- package/bundled-skills/expo-deployment/references/testflight.md +58 -0
- package/bundled-skills/expo-deployment/references/workflows.md +160 -0
- package/bundled-skills/expo-dev-client/SKILL.md +25 -14
- package/bundled-skills/expo-dev-client/agents/openai.yaml +4 -0
- package/bundled-skills/expo-examples/SKILL.md +111 -0
- package/bundled-skills/expo-examples/references/catalog.md +105 -0
- package/bundled-skills/expo-module/SKILL.md +152 -0
- package/bundled-skills/expo-module/agents/openai.yaml +4 -0
- package/bundled-skills/expo-module/references/config-plugin.md +90 -0
- package/bundled-skills/expo-module/references/create-expo-module.md +206 -0
- package/bundled-skills/expo-module/references/lifecycle.md +127 -0
- package/bundled-skills/expo-module/references/module-config.md +48 -0
- package/bundled-skills/expo-module/references/native-module.md +286 -0
- package/bundled-skills/expo-module/references/native-view.md +171 -0
- package/bundled-skills/expo-observe/SKILL.md +44 -0
- package/bundled-skills/expo-observe/references/metrics.md +47 -0
- package/bundled-skills/expo-observe/references/queries.md +342 -0
- package/bundled-skills/expo-observe/references/setup.md +255 -0
- package/bundled-skills/expo-tailwind-setup/SKILL.md +13 -10
- package/bundled-skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/bundled-skills/expo-ui/SKILL.md +61 -0
- package/bundled-skills/expo-ui/agents/openai.yaml +4 -0
- package/bundled-skills/expo-ui/references/drop-in-replacements.md +27 -0
- package/bundled-skills/expo-ui/references/jetpack-compose.md +73 -0
- package/bundled-skills/expo-ui/references/swift-ui.md +73 -0
- package/bundled-skills/expo-ui/references/universal.md +73 -0
- package/bundled-skills/expo-ui/scripts/list-components.js +193 -0
- package/bundled-skills/faf-context/SKILL.md +106 -0
- package/bundled-skills/faf-go/SKILL.md +336 -0
- package/bundled-skills/fixing-accessibility/SKILL.md +16 -5
- package/bundled-skills/fixing-metadata/SKILL.md +18 -8
- package/bundled-skills/fixing-motion-performance/SKILL.md +17 -6
- package/bundled-skills/formik-patterns/SKILL.md +379 -0
- package/bundled-skills/free-tier-strategy/README.md +39 -0
- package/bundled-skills/free-tier-strategy/SKILL.md +462 -0
- package/bundled-skills/frontend-architecture/SKILL.md +419 -0
- package/bundled-skills/frontend-data-contracts/SKILL.md +331 -0
- package/bundled-skills/frontend-observability/SKILL.md +434 -0
- package/bundled-skills/frontend-optimistic-mutations/SKILL.md +278 -0
- package/bundled-skills/frontend-seo/SKILL.md +710 -0
- package/bundled-skills/frontend-slides-frontend-slides/SKILL.md +397 -0
- package/bundled-skills/frontend-ui-engineering/SKILL.md +341 -0
- package/bundled-skills/gemini-api-dev/SKILL.md +96 -53
- package/bundled-skills/gemini-live-api-dev/SKILL.md +339 -0
- package/bundled-skills/gemini-omni-flash-api/SKILL.md +335 -0
- package/bundled-skills/gemini-omni-flash-api/scripts/upload_file.py +218 -0
- package/bundled-skills/gemini-omni-flash-api/scripts/video/generate_video.py +439 -0
- package/bundled-skills/gemini-omni-flash-api/scripts/video/inspect_video.py +197 -0
- package/bundled-skills/gemini-omni-flash-api/scripts/video/prep_video.py +255 -0
- package/bundled-skills/git-workflow-and-versioning/SKILL.md +313 -0
- package/bundled-skills/github-presence/README.md +67 -0
- package/bundled-skills/github-presence/SKILL.md +484 -0
- package/bundled-skills/graphql-schema/SKILL.md +309 -0
- package/bundled-skills/hf-mcp/SKILL.md +195 -0
- package/bundled-skills/hf-mem/SKILL.md +92 -0
- package/bundled-skills/hugging-face-cli/SKILL.md +155 -115
- package/bundled-skills/hugging-face-community-evals/SKILL.md +14 -7
- package/bundled-skills/hugging-face-dataset-viewer/SKILL.md +30 -37
- package/bundled-skills/hugging-face-gradio/SKILL.md +14 -7
- package/bundled-skills/hugging-face-model-trainer/SKILL.md +36 -10
- package/bundled-skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +30 -52
- package/bundled-skills/hugging-face-model-trainer/scripts/hf_benchmarks.py +659 -0
- package/bundled-skills/hugging-face-paper-publisher/SKILL.md +13 -6
- package/bundled-skills/hugging-face-papers/SKILL.md +12 -5
- package/bundled-skills/hugging-face-trackio/SKILL.md +11 -5
- package/bundled-skills/hugging-face-vision-trainer/SKILL.md +11 -5
- package/bundled-skills/huggingface-best/SKILL.md +143 -0
- package/bundled-skills/huggingface-local-models/SKILL.md +130 -0
- package/bundled-skills/huggingface-local-models/references/hardware.md +38 -0
- package/bundled-skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/bundled-skills/huggingface-local-models/references/quantization.md +256 -0
- package/bundled-skills/huggingface-lora-space-builder/SKILL.md +409 -0
- package/bundled-skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/bundled-skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/bundled-skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/bundled-skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/bundled-skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/bundled-skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/bundled-skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +194 -0
- package/bundled-skills/huggingface-spaces/SKILL.md +247 -0
- package/bundled-skills/huggingface-spaces/references/buckets.md +89 -0
- package/bundled-skills/huggingface-spaces/references/debugging.md +234 -0
- package/bundled-skills/huggingface-spaces/references/gradio.md +171 -0
- package/bundled-skills/huggingface-spaces/references/grants.md +56 -0
- package/bundled-skills/huggingface-spaces/references/inference-providers.md +85 -0
- package/bundled-skills/huggingface-spaces/references/known-errors.md +232 -0
- package/bundled-skills/huggingface-spaces/references/requirements.md +153 -0
- package/bundled-skills/huggingface-spaces/references/zerogpu.md +276 -0
- package/bundled-skills/huggingface-tool-builder/SKILL.md +137 -0
- package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/bundled-skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/bundled-skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/bundled-skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/bundled-skills/huggingface-zerogpu/SKILL.md +306 -0
- package/bundled-skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/bundled-skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/bundled-skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/bundled-skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/bundled-skills/hugo-to-markdown/SKILL.md +201 -0
- package/bundled-skills/hugo-to-markdown/agents/openai.yaml +4 -0
- package/bundled-skills/hugo-to-markdown/references/conversion-workflow.md +143 -0
- package/bundled-skills/hugo-to-markdown/references/front-matter-and-content.md +145 -0
- package/bundled-skills/hugo-to-markdown/references/links-assets-and-validation.md +106 -0
- package/bundled-skills/hugo-to-markdown/references/shortcodes-and-render-hooks.md +281 -0
- package/bundled-skills/hugo-to-markdown/scripts/check_standard_markdown.py +70 -0
- package/bundled-skills/hugo-to-markdown/scripts/inventory_hugo_rules.py +188 -0
- package/bundled-skills/hyperexecute-skill/SKILL.md +65 -0
- package/bundled-skills/idea-refine/SKILL.md +195 -0
- package/bundled-skills/idea-refine/examples.md +238 -0
- package/bundled-skills/idea-refine/frameworks.md +99 -0
- package/bundled-skills/idea-refine/refinement-criteria.md +113 -0
- package/bundled-skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/bundled-skills/implement/SKILL.md +32 -0
- package/bundled-skills/incremental-implementation/SKILL.md +262 -0
- package/bundled-skills/jest-skill/SKILL.md +182 -0
- package/bundled-skills/junit-5-skill/SKILL.md +236 -0
- package/bundled-skills/logic-diff/SKILL.md +50 -0
- package/bundled-skills/logic-diff/logic-diff-guide.md +75 -0
- package/bundled-skills/logic-explain/SKILL.md +50 -0
- package/bundled-skills/logic-explain/logic-explain-guide.md +74 -0
- package/bundled-skills/logic-fix-all/SKILL.md +87 -0
- package/bundled-skills/logic-fix-all/guide-phases-0-2-consent-scope-health.md +113 -0
- package/bundled-skills/logic-fix-all/guide-phases-3-5-review-locate-clarify.md +47 -0
- package/bundled-skills/logic-fix-all/guide-phases-6-9-fix-iterate-report.md +143 -0
- package/bundled-skills/logic-fix-all/logic-fix-all-guide.md +60 -0
- package/bundled-skills/logic-locate/SKILL.md +52 -0
- package/bundled-skills/logic-locate/logic-locate-guide.md +85 -0
- package/bundled-skills/logic-review/SKILL.md +100 -0
- package/bundled-skills/logic-review/logic-review-guide.md +296 -0
- package/bundled-skills/longbridge-content/SKILL.md +87 -0
- package/bundled-skills/longbridge-fundamentals/SKILL.md +134 -0
- package/bundled-skills/longbridge-market-data/SKILL.md +129 -0
- package/bundled-skills/loopy/SKILL.md +289 -0
- package/bundled-skills/loopy/agents/openai.yaml +4 -0
- package/bundled-skills/loopy/references/audit.md +61 -0
- package/bundled-skills/loopy/references/debrief.md +43 -0
- package/bundled-skills/loopy/references/discover.md +72 -0
- package/bundled-skills/loopy/references/publish.md +65 -0
- package/bundled-skills/loopy/references/run.md +73 -0
- package/bundled-skills/marketing-plan/SKILL.md +283 -0
- package/bundled-skills/marketing-plan/evals/evals.json +96 -0
- package/bundled-skills/marketing-plan/references/aarrr-framework.md +180 -0
- package/bundled-skills/marketing-plan/references/budget-planning.md +168 -0
- package/bundled-skills/marketing-plan/references/client-types.md +373 -0
- package/bundled-skills/marketing-plan/references/current-state-rubric.md +255 -0
- package/bundled-skills/marketing-plan/references/example-quietude.md +972 -0
- package/bundled-skills/marketing-plan/references/funding-stage-unlocks.md +230 -0
- package/bundled-skills/marketing-plan/references/growth-patterns.md +148 -0
- package/bundled-skills/marketing-plan/references/idea-cross-reference.md +265 -0
- package/bundled-skills/marketing-plan/references/measurement-framework.md +213 -0
- package/bundled-skills/marketing-plan/references/methodology.md +363 -0
- package/bundled-skills/marketing-plan/references/ops-stack-mapping.md +197 -0
- package/bundled-skills/marketing-plan/references/plan-template.md +494 -0
- package/bundled-skills/marketing-plan/references/team-and-agency-model.md +278 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +229 -0
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +200 -0
- package/bundled-skills/monte-carlo-monitoring-advisor/SKILL.md +317 -0
- package/bundled-skills/monte-carlo-performance-diagnosis/SKILL.md +153 -0
- package/bundled-skills/monte-carlo-remediation/SKILL.md +359 -0
- package/bundled-skills/monte-carlo-storage-cost-analysis/SKILL.md +162 -0
- package/bundled-skills/native-data-fetching/SKILL.md +11 -8
- package/bundled-skills/native-data-fetching/agents/openai.yaml +4 -0
- package/bundled-skills/native-data-fetching/references/expo-router-loaders.md +341 -0
- package/bundled-skills/neon-ai-gateway/SKILL.md +237 -0
- package/bundled-skills/neon-functions/SKILL.md +465 -0
- package/bundled-skills/neon-functions/references/ai-sdk.md +139 -0
- package/bundled-skills/neon-functions/references/hono-websockets.md +145 -0
- package/bundled-skills/neon-functions/references/mastra-studio.md +132 -0
- package/bundled-skills/neon-functions/references/mcp.md +137 -0
- package/bundled-skills/neon-functions/references/sentry.md +131 -0
- package/bundled-skills/neon-functions/references/sse.md +143 -0
- package/bundled-skills/neon-object-storage/SKILL.md +200 -0
- package/bundled-skills/neon-postgres/SKILL.md +234 -469
- package/bundled-skills/neon-postgres-branches/SKILL.md +292 -0
- package/bundled-skills/neon-postgres-egress-optimizer/SKILL.md +256 -0
- package/bundled-skills/newman-cicd-integration/SKILL.md +330 -0
- package/bundled-skills/observability-and-instrumentation/SKILL.md +216 -0
- package/bundled-skills/odw/SKILL.md +57 -0
- package/bundled-skills/offers/SKILL.md +168 -0
- package/bundled-skills/offers/references/bonus-stacking.md +150 -0
- package/bundled-skills/offers/references/examples.md +215 -0
- package/bundled-skills/offers/references/guarantee-design.md +172 -0
- package/bundled-skills/offers/references/offer-anatomy.md +203 -0
- package/bundled-skills/offers/references/offer-formats.md +240 -0
- package/bundled-skills/offers/references/scarcity-urgency.md +175 -0
- package/bundled-skills/offers/references/value-equation.md +134 -0
- package/bundled-skills/onboarding/SKILL.md +235 -0
- package/bundled-skills/onboarding/evals/evals.json +92 -0
- package/bundled-skills/onboarding/references/experiments.md +258 -0
- package/bundled-skills/open-source-marketing/README.md +100 -0
- package/bundled-skills/open-source-marketing/SKILL.md +466 -0
- package/bundled-skills/openapi-spec-generator/SKILL.md +335 -0
- package/bundled-skills/performance-optimization/SKILL.md +363 -0
- package/bundled-skills/planning-and-task-breakdown/SKILL.md +240 -0
- package/bundled-skills/polis-protocol-a-self-optimizing-city-of-agents/SKILL.md +170 -0
- package/bundled-skills/postgresql-cli/SKILL.md +498 -0
- package/bundled-skills/postgresql-cli/references/cli-options-and-variables.md +444 -0
- package/bundled-skills/postgresql-cli/references/meta-commands-core.md +466 -0
- package/bundled-skills/postgresql-cli/references/meta-commands-formatting.md +154 -0
- package/bundled-skills/postgresql-cli/references/meta-commands-inspection.md +134 -0
- package/bundled-skills/postgresql-cli/references/tips-advanced.md +289 -0
- package/bundled-skills/postgresql-cli/references/tips-workflows.md +407 -0
- package/bundled-skills/postman-collection-generator/SKILL.md +184 -0
- package/bundled-skills/postman-newman-automation/SKILL.md +311 -0
- package/bundled-skills/postman-openapi-converter/SKILL.md +174 -0
- package/bundled-skills/power-user-cultivation/README.md +78 -0
- package/bundled-skills/power-user-cultivation/SKILL.md +598 -0
- package/bundled-skills/pricing/SKILL.md +246 -0
- package/bundled-skills/pricing/evals/evals.json +90 -0
- package/bundled-skills/pricing/references/research-methods.md +152 -0
- package/bundled-skills/pricing/references/tier-structure.md +232 -0
- package/bundled-skills/privacy-mask/SKILL.md +96 -0
- package/bundled-skills/product-marketing/SKILL.md +256 -0
- package/bundled-skills/product-marketing/evals/evals.json +85 -0
- package/bundled-skills/public-relations/SKILL.md +146 -0
- package/bundled-skills/public-relations/references/journalist-pitching.md +368 -0
- package/bundled-skills/public-relations/references/media-outlets.md +207 -0
- package/bundled-skills/public-relations/references/newsjacking.md +218 -0
- package/bundled-skills/public-relations/references/press-platforms.md +188 -0
- package/bundled-skills/puppeteer-skill/SKILL.md +143 -0
- package/bundled-skills/pytest-skill/SKILL.md +201 -0
- package/bundled-skills/rclone-cli/SKILL.md +351 -0
- package/bundled-skills/rclone-cli/references/bisync.md +2003 -0
- package/bundled-skills/rclone-cli/references/cache.md +726 -0
- package/bundled-skills/rclone-cli/references/chunker.md +484 -0
- package/bundled-skills/rclone-cli/references/combine.md +187 -0
- package/bundled-skills/rclone-cli/references/commands/rclone.md +1169 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_about.md +89 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_archive.md +49 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_archive_create.md +97 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_archive_extract.md +83 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_archive_list.md +98 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_authorize.md +53 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_backend.md +82 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_bisync.md +160 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_cat.md +122 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_check.md +134 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_checksum.md +120 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_cleanup.md +49 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_completion.md +40 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_completion_bash.md +70 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_completion_fish.md +57 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_completion_powershell.md +49 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_completion_zsh.md +57 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config.md +56 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_create.md +150 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_delete.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_disconnect.md +40 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_dump.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_edit.md +39 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption.md +36 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_check.md +43 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_remove.md +44 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_set.md +54 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_file.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_password.md +49 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_paths.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_providers.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_reconnect.md +40 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_redacted.md +45 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_show.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_string.md +57 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_touch.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_update.md +150 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_config_userinfo.md +38 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_convmv.md +440 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_copy.md +258 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_copyto.md +219 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_copyurl.md +91 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_cryptcheck.md +141 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_cryptdecode.md +51 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_dedupe.md +166 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_delete.md +117 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_deletefile.md +50 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_gendocs.md +39 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_gitannex.md +113 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_hashsum.md +120 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_link.md +60 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_listremotes.md +55 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_ls.md +114 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_lsd.md +127 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_lsf.md +241 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_lsjson.md +195 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_lsl.md +115 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_md5sum.md +96 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_mkdir.md +43 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_mount.md +1105 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_move.md +223 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_moveto.md +218 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_ncdu.md +140 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_nfsmount.md +1111 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_obscure.md +60 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_purge.md +58 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_rc.md +111 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_rcat.md +79 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_rcd.md +219 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_rmdir.md +52 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_rmdirs.md +66 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_selfupdate.md +91 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve.md +61 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_dlna.md +619 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_docker.md +653 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_ftp.md +698 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_http.md +837 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_nfs.md +670 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_restic.md +246 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_s3.md +867 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_sftp.md +745 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_serve_webdav.md +896 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_settier.md +63 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_sha1sum.md +99 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_size.md +94 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_sync.md +252 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test.md +51 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_changenotify.md +34 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_histogram.md +41 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_info.md +51 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_makefile.md +39 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_makefiles.md +47 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_memory.md +33 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_test_speed.md +66 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_touch.md +110 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_tree.md +121 -0
- package/bundled-skills/rclone-cli/references/commands/rclone_version.md +83 -0
- package/bundled-skills/rclone-cli/references/crypt.md +844 -0
- package/bundled-skills/rclone-cli/references/docker.md +615 -0
- package/bundled-skills/rclone-cli/references/faq.md +364 -0
- package/bundled-skills/rclone-cli/references/filtering.md +991 -0
- package/bundled-skills/rclone-cli/references/flags.md +1221 -0
- package/bundled-skills/rclone-cli/references/hasher.md +383 -0
- package/bundled-skills/rclone-cli/references/install.md +686 -0
- package/bundled-skills/rclone-cli/references/overview.md +620 -0
- package/bundled-skills/rclone-cli/references/providers/alias.md +141 -0
- package/bundled-skills/rclone-cli/references/providers/archive.md +287 -0
- package/bundled-skills/rclone-cli/references/providers/azureblob.md +1140 -0
- package/bundled-skills/rclone-cli/references/providers/azurefiles.md +834 -0
- package/bundled-skills/rclone-cli/references/providers/b2.md +879 -0
- package/bundled-skills/rclone-cli/references/providers/box.md +573 -0
- package/bundled-skills/rclone-cli/references/providers/cloudinary.md +259 -0
- package/bundled-skills/rclone-cli/references/providers/compress.md +222 -0
- package/bundled-skills/rclone-cli/references/providers/drime.md +319 -0
- package/bundled-skills/rclone-cli/references/providers/drive.md +2032 -0
- package/bundled-skills/rclone-cli/references/providers/dropbox.md +661 -0
- package/bundled-skills/rclone-cli/references/providers/fichier.md +230 -0
- package/bundled-skills/rclone-cli/references/providers/filefabric.md +298 -0
- package/bundled-skills/rclone-cli/references/providers/filelu.md +256 -0
- package/bundled-skills/rclone-cli/references/providers/filen.md +243 -0
- package/bundled-skills/rclone-cli/references/providers/filescom.md +209 -0
- package/bundled-skills/rclone-cli/references/providers/ftp.md +621 -0
- package/bundled-skills/rclone-cli/references/providers/gofile.md +274 -0
- package/bundled-skills/rclone-cli/references/providers/googlecloudstorage.md +846 -0
- package/bundled-skills/rclone-cli/references/providers/googlephotos.md +676 -0
- package/bundled-skills/rclone-cli/references/providers/hdfs.md +263 -0
- package/bundled-skills/rclone-cli/references/providers/hidrive.md +487 -0
- package/bundled-skills/rclone-cli/references/providers/http.md +323 -0
- package/bundled-skills/rclone-cli/references/providers/iclouddrive.md +212 -0
- package/bundled-skills/rclone-cli/references/providers/internetarchive.md +355 -0
- package/bundled-skills/rclone-cli/references/providers/internxt.md +189 -0
- package/bundled-skills/rclone-cli/references/providers/jottacloud.md +604 -0
- package/bundled-skills/rclone-cli/references/providers/koofr.md +395 -0
- package/bundled-skills/rclone-cli/references/providers/linkbox.md +117 -0
- package/bundled-skills/rclone-cli/references/providers/local.md +749 -0
- package/bundled-skills/rclone-cli/references/providers/mailru.md +470 -0
- package/bundled-skills/rclone-cli/references/providers/mega.md +361 -0
- package/bundled-skills/rclone-cli/references/providers/memory.md +109 -0
- package/bundled-skills/rclone-cli/references/providers/netstorage.md +371 -0
- package/bundled-skills/rclone-cli/references/providers/onedrive.md +1322 -0
- package/bundled-skills/rclone-cli/references/providers/opendrive.md +222 -0
- package/bundled-skills/rclone-cli/references/providers/oracleobjectstorage/_index.md +932 -0
- package/bundled-skills/rclone-cli/references/providers/oracleobjectstorage/tutorial_mount.md +503 -0
- package/bundled-skills/rclone-cli/references/providers/pcloud.md +373 -0
- package/bundled-skills/rclone-cli/references/providers/pikpak.md +373 -0
- package/bundled-skills/rclone-cli/references/providers/pixeldrain.md +182 -0
- package/bundled-skills/rclone-cli/references/providers/premiumizeme.md +253 -0
- package/bundled-skills/rclone-cli/references/providers/protondrive.md +397 -0
- package/bundled-skills/rclone-cli/references/providers/putio.md +246 -0
- package/bundled-skills/rclone-cli/references/providers/qingstor.md +346 -0
- package/bundled-skills/rclone-cli/references/providers/quatrix.md +295 -0
- package/bundled-skills/rclone-cli/references/providers/s3.md +9687 -0
- package/bundled-skills/rclone-cli/references/providers/seafile.md +432 -0
- package/bundled-skills/rclone-cli/references/providers/sftp.md +1277 -0
- package/bundled-skills/rclone-cli/references/providers/shade.md +267 -0
- package/bundled-skills/rclone-cli/references/providers/sharefile.md +357 -0
- package/bundled-skills/rclone-cli/references/providers/sia.md +223 -0
- package/bundled-skills/rclone-cli/references/providers/smb.md +309 -0
- package/bundled-skills/rclone-cli/references/providers/storj.md +503 -0
- package/bundled-skills/rclone-cli/references/providers/sugarsync.md +305 -0
- package/bundled-skills/rclone-cli/references/providers/swift.md +744 -0
- package/bundled-skills/rclone-cli/references/providers/ulozto.md +283 -0
- package/bundled-skills/rclone-cli/references/providers/webdav.md +565 -0
- package/bundled-skills/rclone-cli/references/providers/yandex.md +283 -0
- package/bundled-skills/rclone-cli/references/providers/zoho.md +305 -0
- package/bundled-skills/rclone-cli/references/rc.md +2725 -0
- package/bundled-skills/rclone-cli/references/union.md +336 -0
- package/bundled-skills/rclone-cli/references/usage.md +3555 -0
- package/bundled-skills/rclone-cli/scripts/install.sh +204 -0
- package/bundled-skills/redis-cli/SKILL.md +392 -0
- package/bundled-skills/redis-cli/references/advanced-features.md +338 -0
- package/bundled-skills/redis-cli/references/connection-and-options.md +258 -0
- package/bundled-skills/redis-cli/references/data-query-commands.md +417 -0
- package/bundled-skills/redis-cli/references/inspection-and-monitoring.md +309 -0
- package/bundled-skills/redis-cli/references/key-management.md +252 -0
- package/bundled-skills/redis-cli/references/module-data-types.md +429 -0
- package/bundled-skills/redis-cli/references/server-administration.md +366 -0
- package/bundled-skills/repo-maintainer/SKILL.md +480 -0
- package/bundled-skills/resolving-merge-conflicts/SKILL.md +32 -0
- package/bundled-skills/review-and-simplify-changes/SKILL.md +202 -0
- package/bundled-skills/review-swarm/SKILL.md +185 -0
- package/bundled-skills/review-swarm/agents/openai.yaml +4 -0
- package/bundled-skills/riffkit/SKILL.md +122 -0
- package/bundled-skills/robot-framework-skill/SKILL.md +153 -0
- package/bundled-skills/sdk-dx/README.md +39 -0
- package/bundled-skills/sdk-dx/SKILL.md +541 -0
- package/bundled-skills/security-and-hardening/SKILL.md +474 -0
- package/bundled-skills/selenium-skill/SKILL.md +258 -0
- package/bundled-skills/shipping-and-launch/SKILL.md +323 -0
- package/bundled-skills/smartui-skill/SKILL.md +149 -0
- package/bundled-skills/source-driven-development/SKILL.md +207 -0
- package/bundled-skills/spec-driven-development/SKILL.md +217 -0
- package/bundled-skills/styleseed-design-review/SKILL.md +126 -0
- package/bundled-skills/supabase/CHANGELOG.md +35 -0
- package/bundled-skills/supabase/SKILL.md +149 -0
- package/bundled-skills/supabase/assets/feedback-issue-template.md +17 -0
- package/bundled-skills/supabase/references/skill-feedback.md +17 -0
- package/bundled-skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/bundled-skills/supabase-postgres-best-practices/SKILL.md +74 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/bundled-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/bundled-skills/swiftui-expert-skill/SKILL.md +175 -242
- package/bundled-skills/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
- package/bundled-skills/swiftui-expert-skill/references/animation-advanced.md +428 -0
- package/bundled-skills/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/bundled-skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/bundled-skills/swiftui-expert-skill/references/charts-accessibility.md +135 -0
- package/bundled-skills/swiftui-expert-skill/references/charts.md +602 -0
- package/bundled-skills/swiftui-expert-skill/references/focus-patterns.md +299 -0
- package/bundled-skills/swiftui-expert-skill/references/image-optimization.md +203 -0
- package/bundled-skills/swiftui-expert-skill/references/latest-apis.md +528 -0
- package/bundled-skills/swiftui-expert-skill/references/layout-best-practices.md +266 -0
- package/bundled-skills/swiftui-expert-skill/references/liquid-glass.md +423 -0
- package/bundled-skills/swiftui-expert-skill/references/list-patterns.md +467 -0
- package/bundled-skills/swiftui-expert-skill/references/localization.md +194 -0
- package/bundled-skills/swiftui-expert-skill/references/macos-scenes.md +318 -0
- package/bundled-skills/swiftui-expert-skill/references/macos-views.md +357 -0
- package/bundled-skills/swiftui-expert-skill/references/macos-window-styling.md +303 -0
- package/bundled-skills/swiftui-expert-skill/references/performance-patterns.md +417 -0
- package/bundled-skills/swiftui-expert-skill/references/previews.md +313 -0
- package/bundled-skills/swiftui-expert-skill/references/scroll-patterns.md +293 -0
- package/bundled-skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
- package/bundled-skills/swiftui-expert-skill/references/soft-deprecation.md +39 -0
- package/bundled-skills/swiftui-expert-skill/references/state-management.md +492 -0
- package/bundled-skills/swiftui-expert-skill/references/text-patterns.md +34 -0
- package/bundled-skills/swiftui-expert-skill/references/trace-analysis.md +295 -0
- package/bundled-skills/swiftui-expert-skill/references/trace-recording.md +134 -0
- package/bundled-skills/swiftui-expert-skill/references/view-structure.md +854 -0
- package/bundled-skills/swiftui-expert-skill/scripts/analyze_trace.py +301 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/__init__.py +1 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/causes.py +187 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/correlate.py +179 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/events.py +291 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/hangs.py +108 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/hitches.py +145 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/summary.py +243 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/swiftui.py +195 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/time_profiler.py +135 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/xctrace.py +117 -0
- package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/xml_utils.py +224 -0
- package/bundled-skills/swiftui-expert-skill/scripts/record_trace.py +252 -0
- package/bundled-skills/technical-tutorials/README.md +90 -0
- package/bundled-skills/technical-tutorials/SKILL.md +581 -0
- package/bundled-skills/test-framework-migration-skill/SKILL.md +122 -0
- package/bundled-skills/testng-skill/SKILL.md +163 -0
- package/bundled-skills/train-sentence-transformers/SKILL.md +118 -0
- package/bundled-skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/bundled-skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/bundled-skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/bundled-skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/bundled-skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/bundled-skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/bundled-skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/bundled-skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/bundled-skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/bundled-skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/bundled-skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/bundled-skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/bundled-skills/train-sentence-transformers/references/training_args.md +269 -0
- package/bundled-skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/bundled-skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/bundled-skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/bundled-skills/transformers-js/SKILL.md +83 -29
- package/bundled-skills/transformers-js/references/CONFIGURATION.md +55 -7
- package/bundled-skills/transformers-js/references/EXAMPLES.md +98 -83
- package/bundled-skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/bundled-skills/transformers-js/references/PIPELINE_OPTIONS.md +31 -19
- package/bundled-skills/transformers-js/references/TEXT_GENERATION.md +18 -18
- package/bundled-skills/trl-training/SKILL.md +327 -0
- package/bundled-skills/tune-monitor/SKILL.md +268 -0
- package/bundled-skills/ui-a11y/SKILL.md +76 -68
- package/bundled-skills/ui-component/SKILL.md +54 -82
- package/bundled-skills/ui-lint/SKILL.md +111 -0
- package/bundled-skills/ui-motion/SKILL.md +181 -0
- package/bundled-skills/ui-page/SKILL.md +80 -90
- package/bundled-skills/ui-pattern/SKILL.md +50 -68
- package/bundled-skills/ui-review/SKILL.md +95 -77
- package/bundled-skills/ui-score/SKILL.md +145 -0
- package/bundled-skills/ui-setup/SKILL.md +196 -88
- package/bundled-skills/ui-skills-root/SKILL.md +72 -0
- package/bundled-skills/ui-tokens/SKILL.md +44 -52
- package/bundled-skills/ui-update/SKILL.md +167 -0
- package/bundled-skills/unslop-commit/SKILL.md +113 -0
- package/bundled-skills/unslop-file/SKILL.md +157 -0
- package/bundled-skills/unslop-review/SKILL.md +102 -0
- package/bundled-skills/update-swiftui-apis/SKILL.md +120 -0
- package/bundled-skills/update-swiftui-apis/references/scan-manifest.md +230 -0
- package/bundled-skills/upgrading-expo/SKILL.md +107 -82
- package/bundled-skills/upgrading-expo/agents/openai.yaml +4 -0
- package/bundled-skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/bundled-skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/bundled-skills/upgrading-expo/references/native-tabs.md +124 -0
- package/bundled-skills/upgrading-expo/references/new-architecture.md +79 -0
- package/bundled-skills/upgrading-expo/references/react-19.md +79 -0
- package/bundled-skills/upgrading-expo/references/react-compiler.md +59 -0
- package/bundled-skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/bundled-skills/usage-based-pricing/README.md +40 -0
- package/bundled-skills/usage-based-pricing/SKILL.md +547 -0
- package/bundled-skills/use-dom/SKILL.md +428 -0
- package/bundled-skills/use-dom/agents/openai.yaml +4 -0
- package/bundled-skills/ux-audit/SKILL.md +112 -44
- package/bundled-skills/ux-copy/SKILL.md +105 -73
- package/bundled-skills/ux-feedback/SKILL.md +106 -58
- package/bundled-skills/ux-flow/SKILL.md +51 -50
- package/bundled-skills/vitest-skill/SKILL.md +165 -0
- package/bundled-skills/weaviate/scripts/weaviate_conn.py +16 -6
- package/bundled-skills/webdriverio-skill/SKILL.md +157 -0
- package/bundled-skills/wjttc-builder/SKILL.md +355 -0
- package/bundled-skills/wjttc-tester/SKILL.md +190 -0
- package/package.json +1 -1
- package/skills_index.json +4320 -132
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Concurrency Safety
|
|
2
|
+
|
|
3
|
+
Gradio handlers run **in parallel by default on ZeroGPU**. Code that works fine in single-user testing can silently corrupt or leak data in production. Always assume handlers execute concurrently.
|
|
4
|
+
|
|
5
|
+
## No mutable global state
|
|
6
|
+
|
|
7
|
+
Per-request or per-user data must not live in module-level mutable variables. Concurrent requests will overwrite each other.
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
# BAD — concurrent requests overwrite each other
|
|
11
|
+
results = {}
|
|
12
|
+
|
|
13
|
+
def process(text):
|
|
14
|
+
results["output"] = expensive_compute(text) # race condition
|
|
15
|
+
return results["output"]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
# GOOD — pure function, no shared mutable state
|
|
20
|
+
def process(text):
|
|
21
|
+
return expensive_compute(text)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
For state that must persist within a single user session, use `gr.State`:
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
with gr.Blocks() as demo:
|
|
28
|
+
history = gr.State(value=[])
|
|
29
|
+
|
|
30
|
+
def add_message(msg, hist):
|
|
31
|
+
hist.append(msg)
|
|
32
|
+
return hist, hist
|
|
33
|
+
|
|
34
|
+
btn.click(fn=add_message, inputs=[msg, history], outputs=[chatbot, history])
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Note that on ZeroGPU, `gr.State` is pickled across the worker boundary on every yield — see "Process Isolation and Pickle" in SKILL.md for the implications.
|
|
38
|
+
|
|
39
|
+
## No fixed file paths for outputs
|
|
40
|
+
|
|
41
|
+
Hardcoded output filenames cause concurrent requests to overwrite each other's files. This corrupts outputs and, worse, can leak one user's data to another.
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
# BAD — concurrent calls clobber the same file
|
|
45
|
+
def generate_image(prompt):
|
|
46
|
+
image = pipe(prompt).images[0]
|
|
47
|
+
image.save("output.png")
|
|
48
|
+
return "output.png"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
# GOOD — unique path per invocation
|
|
53
|
+
import tempfile
|
|
54
|
+
|
|
55
|
+
def generate_image(prompt):
|
|
56
|
+
image = pipe(prompt).images[0]
|
|
57
|
+
with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as f:
|
|
58
|
+
image.save(f.name)
|
|
59
|
+
return f.name
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The same applies to any intermediate files (audio, video, CSV exports). Always generate a unique path per invocation.
|
|
63
|
+
|
|
64
|
+
## Read-only globals are safe
|
|
65
|
+
|
|
66
|
+
Model objects, tokenizers, and configs loaded once at startup and only read during requests are safe and encouraged. This is the standard ZeroGPU pattern: load at module scope, read inside `@spaces.GPU` handlers.
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
# SAFE — loaded once at module scope, read-only during requests
|
|
70
|
+
model = load_model().to("cuda")
|
|
71
|
+
tokenizer = load_tokenizer()
|
|
72
|
+
|
|
73
|
+
@spaces.GPU
|
|
74
|
+
def predict(text):
|
|
75
|
+
tokens = tokenizer(text, return_tensors="pt").to("cuda")
|
|
76
|
+
return model.generate(**tokens)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The "no mutable global state" rule targets *writes* from handlers, not reads. A handler that only reads from a global is concurrency-safe.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# CUDA Dependencies on ZeroGPU
|
|
2
|
+
|
|
3
|
+
Detailed guidance for installing CUDA-dependent packages on ZeroGPU. SKILL.md establishes the bottom line — wheels are the recommended path because the ZeroGPU build phase has no `nvcc`. This document covers wheel filename tag reading, the kernels-community fallback, and torch-family side-car drift.
|
|
4
|
+
|
|
5
|
+
## When no wheel is available on PyPI
|
|
6
|
+
|
|
7
|
+
Common workarounds, in preference order:
|
|
8
|
+
|
|
9
|
+
1. **Pre-built wheel via direct URL.** For `flash-attn`, the upstream project ships a fairly complete matrix at https://github.com/Dao-AILab/flash-attention/releases — check there first and pin the matching wheel URL.
|
|
10
|
+
2. **Build the wheel yourself and host it** (e.g. on a public HF Hub repo) when no upstream wheel matches the Space environment.
|
|
11
|
+
3. **Use a kernels-community kernel** (see below) — handles ABI matching for you, no version pinning needed.
|
|
12
|
+
|
|
13
|
+
## Reading a CUDA wheel filename
|
|
14
|
+
|
|
15
|
+
A wheel filename like
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
flash_attn-2.8.0.post2+cu12torch2.8cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
encodes four build-time choices:
|
|
22
|
+
|
|
23
|
+
| Tag | Meaning |
|
|
24
|
+
|-----|---------|
|
|
25
|
+
| `cu12` | CUDA major version |
|
|
26
|
+
| `torch2.8` | torch major.minor the wheel was compiled against |
|
|
27
|
+
| `cxx11abiFALSE` | C++ stdlib ABI choice (`TRUE` or `FALSE`) |
|
|
28
|
+
| `cp312-cp312` | CPython version (3.12) |
|
|
29
|
+
|
|
30
|
+
The wheel's compiled C-extension will `ImportError` on ABI/symbol mismatches if any of these drift at install time.
|
|
31
|
+
|
|
32
|
+
If you hand pip a wheel URL without pinning the surrounding environment, pip may resolve `torch` to a version different from the wheel's build target, and the Space will fail on first import. Therefore:
|
|
33
|
+
|
|
34
|
+
- Pin `torch==X.Y.Z` in `requirements.txt` to match the wheel's `torch2.X` tag.
|
|
35
|
+
- Set `python_version:` in the Space frontmatter to match the `cp3XX` tag.
|
|
36
|
+
- Check the runtime's cxx11-ABI choice against the wheel; if unsure, try the opposite ABI wheel.
|
|
37
|
+
|
|
38
|
+
## Prefer kernels-community when unsure
|
|
39
|
+
|
|
40
|
+
If you are not sure about the ZeroGPU runtime's torch / Python / ABI combination, prefer a [kernels-community](https://huggingface.co/kernels-community) kernel (e.g. `kernels-community/flash-attn2`) instead of a raw wheel URL. The kernels runtime handles ABI matching on your behalf, so no version pinning is required in your Space.
|
|
41
|
+
|
|
42
|
+
## torch-family side-car drift
|
|
43
|
+
|
|
44
|
+
`torchvision`, `torchaudio`, `torchcodec`, and similar side-car packages are built against a specific `torch` major.minor (and CUDA major). On ZeroGPU, the runtime's supported `torch` list lags behind PyPI, so projects often pin a non-latest `torch` — and a bare `uv add <side-car>` can silently resolve to a newer release that targets a different `torch` / CUDA, producing ABI/import failures even though `uv lock` succeeded without warnings.
|
|
45
|
+
|
|
46
|
+
Concretely observed (2026-04) with `torch==2.9.1` pinned:
|
|
47
|
+
|
|
48
|
+
- `torchaudio` resolves to `2.11.0`, which targets torch 2.11 / CUDA 13. The `2.11.0` release **dropped the `Requires-Dist: torch==X.Y.Z` line** that every earlier release had, so uv sees no constraint and picks it.
|
|
49
|
+
- `torchcodec` resolves to a release targeting torch 2.11. No torchcodec release on PyPI declares a `torch` dependency at all; the compatibility table lives only in the project README.
|
|
50
|
+
- `torchvision` happens to resolve correctly because torchvision still declares `Requires-Dist: torch==X.Y.Z`. Which side-cars are affected changes over time — treat every torch-family package as suspect, not just these.
|
|
51
|
+
|
|
52
|
+
### Verify at add/upgrade time
|
|
53
|
+
|
|
54
|
+
After any `uv add <torch-side-car>` or `uv lock --upgrade`, verify the resolved version targets the same `torch` major.minor as pinned. Two-step fallback because PyPI metadata is not always sufficient:
|
|
55
|
+
|
|
56
|
+
1. Query PyPI for the resolved version's `requires_dist`:
|
|
57
|
+
```bash
|
|
58
|
+
curl -s https://pypi.org/pypi/<pkg>/<version>/json \
|
|
59
|
+
| python3 -c "import json,sys,re; rd=json.load(sys.stdin)['info'].get('requires_dist') or []; print('\n'.join(x for x in rd if re.match(r'^torch(?![a-z])', x)) or '(no torch constraint declared)')"
|
|
60
|
+
```
|
|
61
|
+
If a `torch==X.Y.Z` line appears and matches the pinned torch, good. If it appears and does NOT match, the side-car is wrong — pin it down explicitly.
|
|
62
|
+
2. If the query prints `(no torch constraint declared)`, PyPI metadata is silent and cannot be trusted. Fall back to the project's own compatibility table (GitHub README / docs site) — torchcodec, for example, maintains one at https://github.com/pytorch/torchcodec. Pick the side-car version the table maps to the pinned torch major.minor, and pin it explicitly.
|
|
63
|
+
|
|
64
|
+
### Preventive pin
|
|
65
|
+
|
|
66
|
+
Once the correct side-car version is known, pin it in `pyproject.toml` alongside torch so uv cannot drift on future `uv lock --upgrade`. The side-car version numbers for a given torch major.minor change each release; always re-verify, do not copy a mapping from an older project.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# How ZeroGPU duration and quota are checked
|
|
2
|
+
|
|
3
|
+
Mechanism for `duration` validation and quota pre-checks. Useful when choosing `duration` values, debugging `illegal duration` vs `quota exceeded` errors, and understanding why the default 60s is pessimistic for short tasks.
|
|
4
|
+
|
|
5
|
+
For per-tier numerical thresholds (free vs Pro vs Team vs Enterprise quota minutes), the daily quota window length, runs-per-day limits, and pay-as-you-go pricing, see [the ZeroGPU docs](https://huggingface.co/docs/hub/spaces-zerogpu) — those values change over time and are deliberately kept out of this skill.
|
|
6
|
+
|
|
7
|
+
## What `duration` actually requests
|
|
8
|
+
|
|
9
|
+
Whatever value is passed to `@spaces.GPU(duration=N)` (or the default 60s when unspecified) becomes the `requested duration` the platform checks against. For `xlarge`, the request is doubled internally:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
requested = N * 2 if size == "xlarge" else N
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
So `@spaces.GPU(duration=60, size="xlarge")` is internally a 120-second request — both for the tier-max check and the quota pre-check below.
|
|
16
|
+
|
|
17
|
+
## Two distinct error modes
|
|
18
|
+
|
|
19
|
+
Two failure messages can come back from the scheduler before the call runs:
|
|
20
|
+
|
|
21
|
+
| Error | Trigger | What helps |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| **`ZeroGPU illegal duration`** | `requested duration > visitor's tier per-call cap` | Lower `duration`. Sign in / upgrade tier. **Waiting does not help.** |
|
|
24
|
+
| **`ZeroGPU quota exceeded`** | `remaining quota < requested duration`, OR runs-per-day cap reached | Wait for the quota window to reset. For Pro / Team / Enterprise, pay-as-you-go credits cover the overflow. |
|
|
25
|
+
|
|
26
|
+
The error wording for `quota exceeded` includes the explicit numbers, e.g.:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
You have exceeded your Pro ZeroGPU quota
|
|
30
|
+
(60s requested vs. 30s left). Try again in 1:23:45.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The comparison is **`requested` vs `remaining`** — not `actual run time` vs `remaining`. A 10-second task left at the default 60s requests 60s of quota; once `remaining < 60s` the call fails even though the actual work would have fit.
|
|
34
|
+
|
|
35
|
+
## Why the default 60s is pessimistic for short tasks
|
|
36
|
+
|
|
37
|
+
`DEFAULT_SCHEDULE_DURATION` in the `spaces` package is **60 seconds**. So an undecorated `@spaces.GPU` (or `@spaces.GPU()` with no `duration=`) requests 60s of quota.
|
|
38
|
+
|
|
39
|
+
For a task that actually takes ~10 seconds:
|
|
40
|
+
|
|
41
|
+
- The user's 60s quota gets reserved up front.
|
|
42
|
+
- Once their remaining quota drops below 60s, your Space fails for them — even though they could have run many more 10s tasks if the request matched reality.
|
|
43
|
+
- Your call also ranks lower in the queue than equivalent calls declaring smaller durations.
|
|
44
|
+
|
|
45
|
+
The fix is to declare the realistic duration explicitly:
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
@spaces.GPU(duration=15)
|
|
49
|
+
def fast_task(...):
|
|
50
|
+
...
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
For workloads where runtime depends on inputs, use a callable (per-request estimator):
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
def estimate_duration(prompt, steps):
|
|
57
|
+
return int(steps * 3.5)
|
|
58
|
+
|
|
59
|
+
@spaces.GPU(duration=estimate_duration)
|
|
60
|
+
def variable_task(prompt, steps):
|
|
61
|
+
...
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This preserves quota for light inputs and reserves more only when needed.
|
|
65
|
+
|
|
66
|
+
## Quota window: 24h fixed from first use
|
|
67
|
+
|
|
68
|
+
The quota window's TTL is set when the first call of a fresh window lands and counts down unconditionally — it is not a sliding window, not a calendar-day reset, and not extended by subsequent use. A user who runs a call at 14:00 sees their next reset at 14:00 the following day, regardless of how heavily or lightly they use the Space in between.
|
|
69
|
+
|
|
70
|
+
For exact tier thresholds, runs-per-day caps, and pay-as-you-go billing rates, see the [ZeroGPU docs](https://huggingface.co/docs/hub/spaces-zerogpu).
|
|
71
|
+
|
|
72
|
+
## Queue priority
|
|
73
|
+
|
|
74
|
+
The queue is **node-level** — requests from every Space scheduled on the same physical node compete for that node's GPU slots. Among queued requests, **shorter declared `duration` ranks higher**. So tight per-request `duration` estimates serve two goals at once: they preserve the user's quota and move the request up the queue.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# How ZeroGPU works (mechanism)
|
|
2
|
+
|
|
3
|
+
Conceptual lifecycle of model weights, processes, and worker reuse on ZeroGPU. Useful when reasoning about cold-starts, why module-scope warmup does not carry over to requests, why returning CUDA tensors hangs the call, or why `gr.State` mutations do not persist across the worker boundary.
|
|
4
|
+
|
|
5
|
+
For numerical limits (concurrency slots per Space, queue priority by tier, etc.), see [the ZeroGPU docs](https://huggingface.co/docs/hub/spaces-zerogpu) — those values change over time and are deliberately kept out of this skill.
|
|
6
|
+
|
|
7
|
+
## Two processes, two lifetimes
|
|
8
|
+
|
|
9
|
+
A ZeroGPU Space runs as **two separate processes**:
|
|
10
|
+
|
|
11
|
+
- **Main web process** — long-lived. Imports `app.py`, launches Gradio, stays up for the life of the Space. Holds no VRAM and, after the startup "pack" step, holds no model weights in RAM either.
|
|
12
|
+
- **GPU worker processes** — short-lived. Forked per `@spaces.GPU` request (or reused if warm). Run the task and are eventually killed by the ZeroGPU scheduler when another Space needs the GPU slot. Your Space code never kills its own worker.
|
|
13
|
+
|
|
14
|
+
## Module-scope `.to("cuda")` is captured to disk
|
|
15
|
+
|
|
16
|
+
When `import spaces` is active, `model.to("cuda")` at module scope is intercepted. The call is rewritten to `to("cpu")`, so the tensor data physically lives in main process RAM at this point. A "fake" CUDA-presenting tensor is registered alongside the original CPU tensor.
|
|
17
|
+
|
|
18
|
+
At a startup "pack" step, the backend writes those original CPU tensors to disk via direct I/O (`O_DIRECT`), then frees the corresponding RAM. After pack, the main process holds no model weights anywhere — the data lives only on disk.
|
|
19
|
+
|
|
20
|
+
This is why module-scope `pipe(...)` / `model.generate(...)` / `model(...)` calls do not run on a real GPU: there is no GPU attached to the main process, and after pack there are no weights to compute against either. Such calls either fail or silently fall back to CPU on the fake tensors.
|
|
21
|
+
|
|
22
|
+
## Worker init: disk → pinned memory → VRAM
|
|
23
|
+
|
|
24
|
+
When a `@spaces.GPU` call lands, the scheduler routes it to a worker:
|
|
25
|
+
|
|
26
|
+
1. **Cold worker** — forked from the main process. The patched torch is unpatched, real CUDA is initialized, and weights are read from the disk offload directory into pinned host memory and streamed onto VRAM through a double-buffered pipeline (essentially `pin_memory().cuda(non_blocking=True)` per batch). This is the "cold-start" cost.
|
|
27
|
+
2. **Warm worker (reused)** — an alive worker bound to the same GPU slot is reused if the scheduler reports it idle. Init is skipped; weights stay on VRAM from the previous call. Subsequent requests within a burst hit this path.
|
|
28
|
+
|
|
29
|
+
A warm worker is eventually killed by the scheduler when another Space needs the GPU slot. The next call after that point pays the disk → VRAM cost again. Occasional cold-starts on a low-traffic Space are normal.
|
|
30
|
+
|
|
31
|
+
## Why module-scope warmup does not help
|
|
32
|
+
|
|
33
|
+
A common instinct is to call `pipe("warmup")` at module scope to "prepare" the model. This does not work on ZeroGPU:
|
|
34
|
+
|
|
35
|
+
- At module scope, no real GPU is attached. The fake CUDA tensors do not have data after pack, so `pipe(...)` either fails or silently runs on something other than a real GPU.
|
|
36
|
+
- Even if you wrap the warmup in `@spaces.GPU`, the worker that ran the warmup will eventually be killed before the first real user request lands — leaving them with a cold worker anyway.
|
|
37
|
+
|
|
38
|
+
The right answer is to load eagerly at module scope (`pipe = pipeline(..., device="cuda")`) and accept that the first user request after a quiet period will be a cold worker. Cold-start is fast on ZeroGPU because of the pinned-memory disk pipeline; it is not free, but it is not "minutes of model download" either.
|
|
39
|
+
|
|
40
|
+
## Why returning CUDA tensors hangs the call
|
|
41
|
+
|
|
42
|
+
The main process never has a CUDA context — it has no GPU attached and its torch never initialized CUDA. When a worker returns a CUDA tensor, unpickling it in the main process triggers `torch.cuda._lazy_init()`, which would attempt to initialize CUDA in the main process. ZeroGPU blocks this, and the call hangs.
|
|
43
|
+
|
|
44
|
+
The fix is purely client-side: convert to CPU before returning (`.cpu()`, `.cpu().numpy()`, etc.). See "Process Isolation and Pickle" in SKILL.md.
|
|
45
|
+
|
|
46
|
+
## Why `gr.State` does not share by reference across the boundary
|
|
47
|
+
|
|
48
|
+
Worker processes are forked separately and exchange data with the main process via pickle. `gr.State` values cross this boundary on every yield, so mutations inside a `@spaces.GPU` generator are local to the worker until the mutated state is explicitly yielded back. The main process gets a fresh deserialized copy each time — `id()` differs, in-place mutations are invisible across the boundary.
|
|
49
|
+
|
|
50
|
+
See "Process Isolation and Pickle" in SKILL.md for the practical implications and `references/concurrency.md` for related parallel-handler concerns.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hugo-to-markdown
|
|
3
|
+
description: Convert Hugo documentation sites and Hugo-managed content into standard Markdown. Use when Agent needs to inspect a local Hugo repository, read hugo.toml or config files, content/, archetypes/, layouts/_shortcodes/, layouts/_markup/, and related docs content, then produce Markdown...
|
|
4
|
+
risk: unknown
|
|
5
|
+
source: https://github.com/chaunsin/agent-skills/tree/master/skills/hugo-to-markdown
|
|
6
|
+
source_repo: chaunsin/agent-skills
|
|
7
|
+
source_type: community
|
|
8
|
+
date_added: 2026-07-01
|
|
9
|
+
license: Apache-2.0
|
|
10
|
+
license_source: https://github.com/chaunsin/agent-skills/blob/master/LICENSE
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Hugo To Markdown
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
Use this skill when you need convert Hugo documentation sites and Hugo-managed content into standard Markdown. Use when Agent needs to inspect a local Hugo repository, read hugo.toml or config files, content/, archetypes/, layouts/_shortcodes/, layouts/_markup/, and related docs content, then produce Markdown...
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Use this skill when Markdown output must be derived from the local Hugo site, not guessed from generic Hugo knowledge. The conversion rules are the combination of Hugo's official behavior and the repository's own configuration, shortcode templates, render hooks, archetypes, and content conventions.
|
|
22
|
+
|
|
23
|
+
The target output is standard Markdown:
|
|
24
|
+
|
|
25
|
+
- Keep plain Markdown and YAML front matter.
|
|
26
|
+
- Replace or materialize Hugo-only constructs.
|
|
27
|
+
- Preserve meaning when exact rendering is not safely reproducible.
|
|
28
|
+
- Prefer explicit Markdown text over live Hugo template syntax.
|
|
29
|
+
- Distinguish literal Hugo syntax examples from active Hugo features before rewriting anything.
|
|
30
|
+
|
|
31
|
+
## Official Basis
|
|
32
|
+
|
|
33
|
+
Treat the repository's own Hugo configuration and templates as the primary ruleset. For any site under conversion, inspect these rule sources in the user's provided site root:
|
|
34
|
+
|
|
35
|
+
- `hugo.toml` (or `hugo.yaml`, `hugo.yml`, `hugo.json`, or `config/*`)
|
|
36
|
+
- `archetypes/*`
|
|
37
|
+
- `data/*`
|
|
38
|
+
- `layouts/_shortcodes/*` or `layouts/shortcodes/*`
|
|
39
|
+
- `layouts/_markup/*`
|
|
40
|
+
- `content/**`
|
|
41
|
+
|
|
42
|
+
Also read any local docs that define shortcode, front matter, bundle, resource, and render-hook behavior.
|
|
43
|
+
|
|
44
|
+
Do not assume built-in Hugo defaults if the repository overrides them locally.
|
|
45
|
+
|
|
46
|
+
## Workflow
|
|
47
|
+
|
|
48
|
+
### 1. Inventory the site before converting files
|
|
49
|
+
|
|
50
|
+
Always inspect the site-level rules first.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
python3 scripts/inventory_hugo_rules.py --site-root /path/to/hugo-site
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Example invocation for the user's site:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
python3 skills/hugo-to-markdown/scripts/inventory_hugo_rules.py \
|
|
60
|
+
--site-root /path/to/your-hugo-site
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
This inventory step is mandatory for batch work. It identifies:
|
|
64
|
+
|
|
65
|
+
- active config files
|
|
66
|
+
- module mounts and content roots
|
|
67
|
+
- custom shortcodes
|
|
68
|
+
- custom render hooks
|
|
69
|
+
- front matter keys seen in content
|
|
70
|
+
- shortcode usage across content files
|
|
71
|
+
|
|
72
|
+
### 2. Convert with repository rules, not generic heuristics
|
|
73
|
+
|
|
74
|
+
Read `references/conversion-workflow.md` before changing files. Then:
|
|
75
|
+
|
|
76
|
+
1. Resolve the real content root from `hugo.toml`, `config.*`, and module mounts.
|
|
77
|
+
2. Read archetypes to understand expected front matter shape.
|
|
78
|
+
3. Read the front matter configuration to understand date aliases, fallback order, filename-derived dates, and other inferred metadata.
|
|
79
|
+
4. Read site data sources in `data/` when shortcodes or partials pull structured content from them.
|
|
80
|
+
5. Read custom shortcode templates in `layouts/_shortcodes/` or `layouts/shortcodes/`.
|
|
81
|
+
6. Classify each encountered shortcode as embedded, custom, or inline, then check whether it uses named or positional arguments, block syntax, or self-closing syntax.
|
|
82
|
+
7. Read render hooks in `layouts/_markup/`.
|
|
83
|
+
8. Check whether the repo already defines Markdown- or JSON-facing export templates and partials; if it does, use those as evidence for how the site itself downgrades Hugo constructs.
|
|
84
|
+
9. Follow `include`-style shortcodes into referenced content files when the docs site composes content from shared fragments.
|
|
85
|
+
10. Convert one file or one coherent section at a time.
|
|
86
|
+
|
|
87
|
+
### 3. Preserve semantics during conversion
|
|
88
|
+
|
|
89
|
+
Use these rules by default:
|
|
90
|
+
|
|
91
|
+
- Keep YAML front matter unless the user explicitly asks for front-matter-free Markdown.
|
|
92
|
+
- Preserve core fields such as `title`, `description`, `date`, `draft`, `aliases`, `slug`, `url`, `weight`, and nested `params` when they still carry meaning.
|
|
93
|
+
- Preserve `publishDate`, `lastmod`, `expiryDate`, and page resource metadata when they still affect meaning or downstream routing.
|
|
94
|
+
- Normalize reserved Hugo front matter keys to their canonical names when the repo mixes casing, for example `Title` to `title`, `Description` to `description`, and `LinkTitle` to `linkTitle`.
|
|
95
|
+
- Account for Hugo front matter aliases and tokens before deciding a field is unused. The official Hugo docs recognize aliases such as `pubdate`, `published`, `modified`, and `unpublishdate`, plus tokens such as `:default`, `:filename`, `:fileModTime`, and `:git`.
|
|
96
|
+
- Convert Hugo internal links to normal Markdown links with resolved destinations.
|
|
97
|
+
- Replace Hugo shortcodes with plain Markdown, HTML, or explicit notes only after reading the local shortcode implementation.
|
|
98
|
+
- Preserve or materialize shortcode arguments according to the shortcode's real calling convention. Do not assume every shortcode is named-argument, self-closing, or block-capable.
|
|
99
|
+
- Materialize dynamically generated lists and tables when the shortcode renders content from sections or data files.
|
|
100
|
+
- Leave literal Hugo examples unchanged when the document is documenting Hugo syntax rather than invoking it. This applies both inside fenced code blocks and to escaped forms such as `{{</* foo */>}}` or `{{%/* foo */%}}` that appear in prose, tables, or notation examples.
|
|
101
|
+
- Preserve block attribute semantics such as `{.class #id}` and code-fence attributes when the destination Markdown flavor supports them. If not, downgrade explicitly instead of silently dropping them.
|
|
102
|
+
|
|
103
|
+
### 4. Apply Hugo-specific body rules carefully
|
|
104
|
+
|
|
105
|
+
Many Hugo documentation sites use complex local behaviors. Be alert for these common patterns:
|
|
106
|
+
|
|
107
|
+
- `hugo.toml` mounts `content/en` to the logical `content` root, so link and include resolution must use Hugo logical paths instead of preserving `/en/` blindly.
|
|
108
|
+
- The docs basis depends on Hugo front matter configuration for date resolution, aliases, and filename-derived metadata; read `configuration/front-matter.md` and `[frontmatter]` in `hugo.toml` before normalizing dates or slugs.
|
|
109
|
+
- `include` renders another page through `RenderShortcodes`; follow the referenced content file and inline the resulting Markdown.
|
|
110
|
+
- `quick-reference`, `render-list-of-pages-in-section`, and `render-table-of-pages-in-section` generate navigation content from sections; replace them with materialized Markdown lists or tables.
|
|
111
|
+
- `glossary-term`, `glossary`, `get-page-desc`, `module-mounts-note`, `new-in`, and `deprecated-in` expand to prose or badges; convert them into explicit Markdown text or callouts.
|
|
112
|
+
- `code-toggle` may read config snippets and data-backed examples; preserve the underlying code sample, not the UI toggle.
|
|
113
|
+
- `datatable`, `per-lang-config-keys`, `root-configuration-keys`, `syntax-highlighting-styles`, `chroma-lexers`, `newtemplatesystem`, and `hl` are also local shortcodes; inspect their implementations before deciding whether to materialize, flatten, or downgrade.
|
|
114
|
+
- if the repo has data-backed or example-extraction shortcodes such as `features-table`, `optional-features-table`, `clients-example`, or `jupyter-example`, inspect the referenced `data/` files, local example sources, and Markdown-export partials before deciding whether to materialize or downgrade.
|
|
115
|
+
- glossary links can use the special Markdown destination `(g)`; resolve these to stable glossary links instead of leaving the placeholder.
|
|
116
|
+
- `img` and `imgproc` are presentation helpers around page, global, or remote resources; preserve the underlying image reference and caption semantics.
|
|
117
|
+
- `eturl` emits links to embedded template sources; convert to a normal Markdown link if the destination is known, otherwise preserve as a textual note.
|
|
118
|
+
- the local link render hook resolves destinations in this order: content page, page resource, section resource when the page is not a leaf bundle, then global resource. It also validates fragments and glossary shorthand.
|
|
119
|
+
- blockquote and code-block render hooks add alert, file-label, summary, and detail semantics; preserve these semantics in Markdown or explicit notes.
|
|
120
|
+
- embedded `ref` and `relref` are obsolete for Markdown in modern Hugo docs and can interact poorly with the custom link render hook; resolve the final destination instead of preserving the shortcode.
|
|
121
|
+
- the local docs use Markdown attributes and code-fence options that can change rendered output. Keep these semantics when the destination flavor supports them.
|
|
122
|
+
|
|
123
|
+
Read `references/shortcodes-and-render-hooks.md` before converting any file that contains Hugo syntax.
|
|
124
|
+
|
|
125
|
+
### 5. Validate the output
|
|
126
|
+
|
|
127
|
+
After conversion, scan the generated Markdown for leftover Hugo-only syntax.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
python3 skills/hugo-to-markdown/scripts/check_standard_markdown.py \
|
|
131
|
+
--root /path/to/output
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
If the validator reports active Hugo syntax outside code fences, either:
|
|
135
|
+
|
|
136
|
+
- resolve it fully, or
|
|
137
|
+
- replace it with a safe textual explanation
|
|
138
|
+
|
|
139
|
+
Do not silently ship unresolved `{{< ... >}}`, `{{% ... %}}`, or Go template expressions.
|
|
140
|
+
|
|
141
|
+
### 6. Downgrade explicitly when full materialization is not safe
|
|
142
|
+
|
|
143
|
+
If a shortcode depends on build-time data, generated examples, or external source files that you cannot resolve deterministically from the local repo snapshot, replace it with an explicit Markdown note.
|
|
144
|
+
|
|
145
|
+
Use a short, boring format such as:
|
|
146
|
+
|
|
147
|
+
- `> Conversion note: <what the shortcode normally renders>.`
|
|
148
|
+
- followed by any safe subset you were able to preserve, such as inline Redis CLI text, a resolved image URL, or a known section list
|
|
149
|
+
|
|
150
|
+
Do not leave empty links, broken table cells, or stripped content with no explanation.
|
|
151
|
+
|
|
152
|
+
## Common Hugo Docs Site Patterns
|
|
153
|
+
|
|
154
|
+
Use these facts when converting a Hugo documentation site that exhibits similar patterns:
|
|
155
|
+
|
|
156
|
+
- `hugo.toml` mounts `content/en` to `content`, so English docs are the active content tree.
|
|
157
|
+
- Goldmark passthrough delimiters are configured for math, so `$$...$$`, `\\(...\\)`, and `\\[...\\]` can be meaningful content, not junk.
|
|
158
|
+
- `markup.goldmark.parser.attribute.block = true`, so block attribute syntax may appear after fenced blocks and other block elements.
|
|
159
|
+
- `markup.goldmark.parser.wrapStandAloneImageWithinParagraph = false`, so standalone image attributes can target the image itself rather than a wrapping paragraph.
|
|
160
|
+
- The repo defines custom render hooks for blockquotes, code blocks, links, passthrough, and tables. It documents heading and image render hooks, but the site does not override them locally.
|
|
161
|
+
- The repo uses many shared `_common` fragments referenced through `% include %`, so reading a page file alone is not enough to understand the rendered content.
|
|
162
|
+
- The repo documents embedded, custom, and inline shortcodes, and the conversion logic must distinguish them before flattening syntax.
|
|
163
|
+
- The repo uses page bundles and page resources heavily in examples and render-hook resolution, including section resources and mounted global resources.
|
|
164
|
+
- The repo contains many escaped shortcode examples such as `{{</* foo */>}}` and `{{%/* foo */%}}`; these are documentation samples and must remain literal when they appear inside code examples, notation tables, or tutorial prose.
|
|
165
|
+
|
|
166
|
+
## Safety Rules
|
|
167
|
+
|
|
168
|
+
- Never execute Hugo templates, shortcodes, or Go template expressions.
|
|
169
|
+
- Never treat content files as trusted executable input.
|
|
170
|
+
- Never run `hugo`, `npm install`, `go install`, downloaded shell installers, or any network install step unless the user explicitly asks for it.
|
|
171
|
+
- Keep all conversion scripts offline and deterministic.
|
|
172
|
+
- Restrict reads to the declared site root and writes to the declared output root.
|
|
173
|
+
- Reject path traversal, symlink escape, or attempts to write outside the requested output directory.
|
|
174
|
+
- Do not leak local absolute paths, secrets, environment variables, or git credentials into generated Markdown.
|
|
175
|
+
- When exact rendering cannot be reproduced safely, degrade to explicit Markdown text instead of live Hugo syntax.
|
|
176
|
+
|
|
177
|
+
## Resources
|
|
178
|
+
|
|
179
|
+
Read these files as needed:
|
|
180
|
+
|
|
181
|
+
- `references/conversion-workflow.md`
|
|
182
|
+
End-to-end process for repo-aware conversion.
|
|
183
|
+
- `references/front-matter-and-content.md`
|
|
184
|
+
Front matter mapping, common content conventions, and literal-example handling.
|
|
185
|
+
- `references/shortcodes-and-render-hooks.md`
|
|
186
|
+
Hugo shortcode notation, docs-site custom shortcodes, and render-hook implications.
|
|
187
|
+
- `references/links-assets-and-validation.md`
|
|
188
|
+
Link resolution, assets, validation, and residue triage.
|
|
189
|
+
|
|
190
|
+
Use these scripts when helpful:
|
|
191
|
+
|
|
192
|
+
- `scripts/inventory_hugo_rules.py`
|
|
193
|
+
Scan a Hugo site and emit a rule inventory.
|
|
194
|
+
- `scripts/check_standard_markdown.py`
|
|
195
|
+
Detect leftover Hugo syntax and common unsafe residue in Markdown output.
|
|
196
|
+
|
|
197
|
+
## Limitations
|
|
198
|
+
|
|
199
|
+
- Use this skill only when the task clearly matches its upstream source and local project context.
|
|
200
|
+
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
|
|
201
|
+
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Conversion Workflow
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Use this workflow when converting a Hugo documentation site into standard Markdown that no longer depends on Hugo runtime features.
|
|
6
|
+
|
|
7
|
+
## Step 1: Locate the real rule sources
|
|
8
|
+
|
|
9
|
+
Read these in order:
|
|
10
|
+
|
|
11
|
+
1. `hugo.toml`, `hugo.yaml`, `hugo.yml`, `hugo.json`, or `config/*`
|
|
12
|
+
2. `archetypes/*`
|
|
13
|
+
3. `data/*`
|
|
14
|
+
4. official or local docs that define shortcode, front matter, bundle, resource, and render-hook behavior
|
|
15
|
+
5. `layouts/_shortcodes/*` or `layouts/shortcodes/*`
|
|
16
|
+
6. `layouts/_markup/*`
|
|
17
|
+
7. Markdown- or JSON-facing export templates and partials such as `layouts/_default/*.md`, `layouts/_default/*.json`, or `layouts/partials/markdown-*.html`
|
|
18
|
+
8. `content/*`
|
|
19
|
+
|
|
20
|
+
## Step 2: Build a site inventory
|
|
21
|
+
|
|
22
|
+
Run:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 skills/hugo-to-markdown/scripts/inventory_hugo_rules.py \
|
|
26
|
+
--site-root /path/to/your-hugo-site
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Inspect the output for:
|
|
30
|
+
|
|
31
|
+
- content root and module mounts
|
|
32
|
+
- active shortcode names
|
|
33
|
+
- render hook names
|
|
34
|
+
- frequently used shortcodes
|
|
35
|
+
- front matter keys
|
|
36
|
+
- front matter alias or token usage that changes visible dates or slugs
|
|
37
|
+
- whether shortcode usage clusters around content graph expansion, section listings, data-backed tables, or external example extraction
|
|
38
|
+
|
|
39
|
+
Use the inventory to batch files by complexity:
|
|
40
|
+
|
|
41
|
+
- plain Markdown only
|
|
42
|
+
- front matter only
|
|
43
|
+
- literal Hugo documentation examples
|
|
44
|
+
- pages with Markdown attributes or code-fence options that must be preserved
|
|
45
|
+
- built-in shortcode usage
|
|
46
|
+
- content-graph shortcodes such as `include`, `embed-md`, `glossary-term`, and `table-children`
|
|
47
|
+
- custom shortcode usage
|
|
48
|
+
- data-backed shortcode usage
|
|
49
|
+
- render-hook-sensitive links and assets
|
|
50
|
+
|
|
51
|
+
## Step 3: Convert one slice at a time
|
|
52
|
+
|
|
53
|
+
Preferred order:
|
|
54
|
+
|
|
55
|
+
1. plain pages
|
|
56
|
+
2. pages with only front matter normalization
|
|
57
|
+
3. pages that mostly document Hugo syntax and contain literal shortcode examples
|
|
58
|
+
4. pages using shared includes
|
|
59
|
+
5. pages using custom shortcodes
|
|
60
|
+
6. pages whose content is partially generated from sections or data files
|
|
61
|
+
7. pages whose content depends on generated code examples or external local sources
|
|
62
|
+
|
|
63
|
+
This keeps regressions local and makes validation easier.
|
|
64
|
+
|
|
65
|
+
## Step 4: Materialize dynamic content
|
|
66
|
+
|
|
67
|
+
If a shortcode generates prose, lists, tables, or badges, replace it with the resulting Markdown.
|
|
68
|
+
|
|
69
|
+
Examples from the Hugo docs site:
|
|
70
|
+
|
|
71
|
+
- `include` pulls another content file and renders its shortcodes
|
|
72
|
+
- `quick-reference` expands section content
|
|
73
|
+
- `render-list-of-pages-in-section` builds a list from a section
|
|
74
|
+
- `render-table-of-pages-in-section` builds a table from section pages
|
|
75
|
+
- `glossary` materializes glossary content
|
|
76
|
+
|
|
77
|
+
Do not keep these as live Hugo shortcodes in the final standard Markdown.
|
|
78
|
+
|
|
79
|
+
When evaluating a shortcode, classify it first:
|
|
80
|
+
|
|
81
|
+
1. Static wrapper around inner Markdown or a simple asset
|
|
82
|
+
2. Content graph expansion into other pages or sections
|
|
83
|
+
3. Data-backed expansion using `data/*`
|
|
84
|
+
4. Generated example extraction from files outside the current page
|
|
85
|
+
|
|
86
|
+
This classification determines whether you can materialize the output directly, need recursive page resolution, need data-file reads, or must degrade to an explicit note.
|
|
87
|
+
|
|
88
|
+
Also determine whether the shortcode is:
|
|
89
|
+
|
|
90
|
+
- embedded, custom, or inline
|
|
91
|
+
- block, self-closing, or dual-form
|
|
92
|
+
- named-argument, positional-argument, or dual-mode
|
|
93
|
+
|
|
94
|
+
These choices affect how you parse the call and how much of the surrounding Markdown Hugo would have rendered.
|
|
95
|
+
|
|
96
|
+
## Step 5: Keep literal Hugo examples literal
|
|
97
|
+
|
|
98
|
+
The docs site frequently documents Hugo syntax itself. Distinguish:
|
|
99
|
+
|
|
100
|
+
- live shortcode calls that affect rendering
|
|
101
|
+
- escaped shortcode examples intended for readers
|
|
102
|
+
|
|
103
|
+
Common literal-example pattern:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
{{</* shortcode arg=value */>}}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
When the construct is inside a fenced code block or otherwise clearly documentation, preserve it literally.
|
|
110
|
+
|
|
111
|
+
Also preserve escaped forms such as these when they appear in prose or tables:
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
{{%/* foo */%}}
|
|
115
|
+
{{</* foo */>}}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Do not strip them just because they match a loose shortcode regex.
|
|
119
|
+
|
|
120
|
+
## Step 6: Normalize front matter before building derived content
|
|
121
|
+
|
|
122
|
+
Before using front matter to populate generated tables or lists:
|
|
123
|
+
|
|
124
|
+
- map reserved keys case-insensitively, for example `Title` to `title`
|
|
125
|
+
- treat `linkTitle` and `LinkTitle` as the same logical field
|
|
126
|
+
- account for aliases such as `publishdate` or `modified`
|
|
127
|
+
- account for front matter tokens such as `:filename` and `:fileModTime` when deciding whether metadata is derived
|
|
128
|
+
- preserve unknown custom keys as-is
|
|
129
|
+
|
|
130
|
+
This prevents empty links and missing descriptions when a repo mixes Hugo key casing conventions.
|
|
131
|
+
|
|
132
|
+
## Step 7: Validate aggressively
|
|
133
|
+
|
|
134
|
+
After each batch:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
python3 skills/hugo-to-markdown/scripts/check_standard_markdown.py \
|
|
138
|
+
--root /path/to/output
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Treat validator hits as unresolved work unless they are deliberate examples inside code fences.
|
|
142
|
+
|
|
143
|
+
If you intentionally downgraded a shortcode to an explanatory note, that note should remain in the output and the original shortcode should not.
|