opencode-skills-collection 3.0.34 → 3.0.36
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 +16 -1
- package/bundled-skills/accesslint-audit/SKILL.md +115 -0
- package/bundled-skills/accesslint-diff/SKILL.md +81 -0
- package/bundled-skills/accesslint-scan/SKILL.md +47 -0
- package/bundled-skills/composition-patterns/SKILL.md +87 -0
- package/bundled-skills/composition-patterns/rules/_sections.md +29 -0
- package/bundled-skills/composition-patterns/rules/_template.md +24 -0
- package/bundled-skills/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/bundled-skills/composition-patterns/rules/architecture-compound-components.md +112 -0
- package/bundled-skills/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/bundled-skills/composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/bundled-skills/composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/bundled-skills/composition-patterns/rules/state-context-interface.md +191 -0
- package/bundled-skills/composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/bundled-skills/composition-patterns/rules/state-lift-state.md +125 -0
- package/bundled-skills/debugging-toolkit/SKILL.md +35 -0
- package/bundled-skills/deploy-to-vercel/SKILL.md +304 -0
- package/bundled-skills/deploy-to-vercel/resources/deploy-codex.sh +301 -0
- package/bundled-skills/deploy-to-vercel/resources/deploy.sh +301 -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/backups/README-2026-06-02.md +687 -0
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +4 -4
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +245 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +3 -3
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/plugins.md +21 -13
- package/bundled-skills/docs/users/specialized-plugin-roadmap.md +95 -0
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/mmx-cli/SKILL.md +5 -2
- package/bundled-skills/nextjs-seo-indexing/SKILL.md +3 -3
- package/bundled-skills/polis-protocol/SKILL.md +93 -0
- package/bundled-skills/python-development/SKILL.md +35 -0
- package/bundled-skills/radix-ui-design-system/SKILL.md +2 -2
- package/bundled-skills/react-native-skills/SKILL.md +120 -0
- package/bundled-skills/react-native-skills/rules/_sections.md +86 -0
- package/bundled-skills/react-native-skills/rules/_template.md +28 -0
- package/bundled-skills/react-native-skills/rules/animation-derived-value.md +53 -0
- package/bundled-skills/react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/bundled-skills/react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/bundled-skills/react-native-skills/rules/design-system-compound-components.md +66 -0
- package/bundled-skills/react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/bundled-skills/react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/bundled-skills/react-native-skills/rules/js-hoist-intl.md +61 -0
- package/bundled-skills/react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/bundled-skills/react-native-skills/rules/list-performance-function-references.md +132 -0
- package/bundled-skills/react-native-skills/rules/list-performance-images.md +53 -0
- package/bundled-skills/react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-types.md +104 -0
- package/bundled-skills/react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/bundled-skills/react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/bundled-skills/react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/bundled-skills/react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/bundled-skills/react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/bundled-skills/react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/bundled-skills/react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/bundled-skills/react-native-skills/rules/react-state-fallback.md +56 -0
- package/bundled-skills/react-native-skills/rules/react-state-minimize.md +65 -0
- package/bundled-skills/react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/bundled-skills/react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/bundled-skills/react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/bundled-skills/react-native-skills/rules/state-ground-truth.md +80 -0
- package/bundled-skills/react-native-skills/rules/ui-expo-image.md +66 -0
- package/bundled-skills/react-native-skills/rules/ui-image-gallery.md +104 -0
- package/bundled-skills/react-native-skills/rules/ui-measure-views.md +78 -0
- package/bundled-skills/react-native-skills/rules/ui-menus.md +174 -0
- package/bundled-skills/react-native-skills/rules/ui-native-modals.md +77 -0
- package/bundled-skills/react-native-skills/rules/ui-pressable.md +61 -0
- package/bundled-skills/react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/bundled-skills/react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/bundled-skills/react-native-skills/rules/ui-styling.md +87 -0
- package/bundled-skills/schema-markup-generator/SKILL.md +1 -1
- package/bundled-skills/skill-issue/SKILL.md +73 -0
- package/bundled-skills/social-metadata-hardening/SKILL.md +4 -3
- package/bundled-skills/social-post-writer-seo/SKILL.md +19 -0
- package/bundled-skills/tdd-workflows/SKILL.md +35 -0
- package/bundled-skills/user-thoughts/SKILL.md +236 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/README.ai.md +13 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/define.ini +3 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/README.ai.md +25 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/backlog.md +19 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/dev-stack.md +7 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/general.md +7 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/plans.md +7 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/rules.md +7 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/ui/details.md +7 -0
- package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/ui/outline.md +7 -0
- package/bundled-skills/user-thoughts/references/commands.md +54 -0
- package/bundled-skills/user-thoughts/references/edge-cases.md +84 -0
- package/bundled-skills/user-thoughts/references/safety.md +65 -0
- package/bundled-skills/user-thoughts/references/sortin.md +76 -0
- package/bundled-skills/user-thoughts/scripts/common.py +62 -0
- package/bundled-skills/user-thoughts/scripts/ignore_ops.py +125 -0
- package/bundled-skills/user-thoughts/scripts/init.py +63 -0
- package/bundled-skills/user-thoughts/scripts/show_mdbase.py +93 -0
- package/bundled-skills/user-thoughts/scripts/show_raw.py +42 -0
- package/bundled-skills/user-thoughts/scripts/sortin.py +211 -0
- package/bundled-skills/user-thoughts/scripts/status.py +56 -0
- package/bundled-skills/user-thoughts/scripts/toggle.py +68 -0
- package/bundled-skills/user-thoughts/scripts/write_raw.py +106 -0
- package/bundled-skills/vercel-cli-with-tokens/SKILL.md +361 -0
- package/bundled-skills/vercel-optimize/CONTRIBUTING.md +41 -0
- package/bundled-skills/vercel-optimize/SKILL.md +331 -0
- package/bundled-skills/vercel-optimize/lib/auth-route.mjs +23 -0
- package/bundled-skills/vercel-optimize/lib/budget-summary.mjs +182 -0
- package/bundled-skills/vercel-optimize/lib/citations.mjs +139 -0
- package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +143 -0
- package/bundled-skills/vercel-optimize/lib/dedup-recs.mjs +325 -0
- package/bundled-skills/vercel-optimize/lib/deep-dive.mjs +350 -0
- package/bundled-skills/vercel-optimize/lib/display-labels.mjs +185 -0
- package/bundled-skills/vercel-optimize/lib/extract-claims.mjs +550 -0
- package/bundled-skills/vercel-optimize/lib/framework-support.mjs +67 -0
- package/bundled-skills/vercel-optimize/lib/gates/build-minutes-fanout.mjs +69 -0
- package/bundled-skills/vercel-optimize/lib/gates/cold-start.mjs +66 -0
- package/bundled-skills/vercel-optimize/lib/gates/contract.mjs +79 -0
- package/bundled-skills/vercel-optimize/lib/gates/cwv-poor.mjs +87 -0
- package/bundled-skills/vercel-optimize/lib/gates/external-api-slow.mjs +55 -0
- package/bundled-skills/vercel-optimize/lib/gates/hard-gates.mjs +73 -0
- package/bundled-skills/vercel-optimize/lib/gates/index.mjs +45 -0
- package/bundled-skills/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
- package/bundled-skills/vercel-optimize/lib/gates/middleware-heavy.mjs +51 -0
- package/bundled-skills/vercel-optimize/lib/gates/observability-events-attribution.mjs +56 -0
- package/bundled-skills/vercel-optimize/lib/gates/platform-bot-protection.mjs +115 -0
- package/bundled-skills/vercel-optimize/lib/gates/platform-fluid-compute.mjs +83 -0
- package/bundled-skills/vercel-optimize/lib/gates/region-misconfig.mjs +64 -0
- package/bundled-skills/vercel-optimize/lib/gates/route-errors.mjs +80 -0
- package/bundled-skills/vercel-optimize/lib/gates/scanner-driven.mjs +122 -0
- package/bundled-skills/vercel-optimize/lib/gates/select-candidates.mjs +134 -0
- package/bundled-skills/vercel-optimize/lib/gates/slow-route.mjs +88 -0
- package/bundled-skills/vercel-optimize/lib/gates/types.d.ts +38 -0
- package/bundled-skills/vercel-optimize/lib/gates/uncached-route.mjs +93 -0
- package/bundled-skills/vercel-optimize/lib/gates/usage-spike-triage.mjs +121 -0
- package/bundled-skills/vercel-optimize/lib/grade-recommendation.mjs +155 -0
- package/bundled-skills/vercel-optimize/lib/impact-label.mjs +126 -0
- package/bundled-skills/vercel-optimize/lib/impact-magnitude.mjs +60 -0
- package/bundled-skills/vercel-optimize/lib/investigation-brief.mjs +610 -0
- package/bundled-skills/vercel-optimize/lib/observation-safety.mjs +174 -0
- package/bundled-skills/vercel-optimize/lib/project-facts.mjs +99 -0
- package/bundled-skills/vercel-optimize/lib/queries.mjs +315 -0
- package/bundled-skills/vercel-optimize/lib/reconcile-candidates.mjs +372 -0
- package/bundled-skills/vercel-optimize/lib/render-report.mjs +955 -0
- package/bundled-skills/vercel-optimize/lib/repo-root.mjs +86 -0
- package/bundled-skills/vercel-optimize/lib/route-normalize.mjs +220 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +30 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/count-correct.mjs +52 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/index.mjs +79 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +36 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/pre-release.mjs +74 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/rate-limit.mjs +67 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +78 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/window-units.mjs +32 -0
- package/bundled-skills/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +109 -0
- package/bundled-skills/vercel-optimize/lib/scanners/edge-heavy-import.mjs +94 -0
- package/bundled-skills/vercel-optimize/lib/scanners/force-dynamic.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/headers-in-page.mjs +44 -0
- package/bundled-skills/vercel-optimize/lib/scanners/index.mjs +35 -0
- package/bundled-skills/vercel-optimize/lib/scanners/large-static-asset.mjs +92 -0
- package/bundled-skills/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +55 -0
- package/bundled-skills/vercel-optimize/lib/scanners/missing-cache-headers.mjs +90 -0
- package/bundled-skills/vercel-optimize/lib/scanners/prisma-include-tree.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/region-pin-in-config.mjs +88 -0
- package/bundled-skills/vercel-optimize/lib/scanners/source-maps-production.mjs +36 -0
- package/bundled-skills/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +43 -0
- package/bundled-skills/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +129 -0
- package/bundled-skills/vercel-optimize/lib/scanners/unoptimized-image.mjs +113 -0
- package/bundled-skills/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +106 -0
- package/bundled-skills/vercel-optimize/lib/support-topics.mjs +355 -0
- package/bundled-skills/vercel-optimize/lib/throttle.mjs +273 -0
- package/bundled-skills/vercel-optimize/lib/util.mjs +17 -0
- package/bundled-skills/vercel-optimize/lib/vercel.mjs +784 -0
- package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +1296 -0
- package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +521 -0
- package/bundled-skills/vercel-optimize/references/candidates.md +176 -0
- package/bundled-skills/vercel-optimize/references/data-collection.md +218 -0
- package/bundled-skills/vercel-optimize/references/docs-library.json +683 -0
- package/bundled-skills/vercel-optimize/references/doctrine.md +105 -0
- package/bundled-skills/vercel-optimize/references/observability-plus.md +108 -0
- package/bundled-skills/vercel-optimize/references/playbooks/README.md +53 -0
- package/bundled-skills/vercel-optimize/references/playbooks/ai-application.md +32 -0
- package/bundled-skills/vercel-optimize/references/playbooks/api-service.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/content-site.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/ecommerce.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/marketing.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/saas.md +31 -0
- package/bundled-skills/vercel-optimize/references/playbooks/sveltekit.md +75 -0
- package/bundled-skills/vercel-optimize/references/recommendations.md +203 -0
- package/bundled-skills/vercel-optimize/references/scanner-patterns.md +251 -0
- package/bundled-skills/vercel-optimize/references/scoring.md +205 -0
- package/bundled-skills/vercel-optimize/references/support-topics/README.md +46 -0
- package/bundled-skills/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/database-egress-pooling-region.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/fluid-compute-caveats.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-duration-io-and-after.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-invocation-reduction.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/image-optimization-cost-control.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/post-response-work-waituntil.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/route-error-durable-offload.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/route-error-runtime-limits.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/usage-spike-triage.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +23 -0
- package/bundled-skills/vercel-optimize/references/verification.md +102 -0
- package/bundled-skills/vercel-optimize/references/voice.md +76 -0
- package/bundled-skills/vercel-optimize/scripts/budget-summary.mjs +56 -0
- package/bundled-skills/vercel-optimize/scripts/build-docs.mjs +74 -0
- package/bundled-skills/vercel-optimize/scripts/check-citations.mjs +81 -0
- package/bundled-skills/vercel-optimize/scripts/check-docs-fresh.mjs +93 -0
- package/bundled-skills/vercel-optimize/scripts/collect-signals.mjs +576 -0
- package/bundled-skills/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +296 -0
- package/bundled-skills/vercel-optimize/scripts/deep-dive.mjs +319 -0
- package/bundled-skills/vercel-optimize/scripts/gate-investigations.mjs +166 -0
- package/bundled-skills/vercel-optimize/scripts/merge-signals.mjs +192 -0
- package/bundled-skills/vercel-optimize/scripts/prepare-investigation-brief.mjs +231 -0
- package/bundled-skills/vercel-optimize/scripts/reconcile-candidates.mjs +62 -0
- package/bundled-skills/vercel-optimize/scripts/render-report.mjs +437 -0
- package/bundled-skills/vercel-optimize/scripts/scan-codebase.mjs +313 -0
- package/bundled-skills/vercel-optimize/scripts/verify-and-regen.mjs +346 -0
- package/bundled-skills/vercel-optimize/scripts/verify-finding.mjs +19 -0
- package/bundled-skills/vercel-react-view-transitions/SKILL.md +327 -0
- package/bundled-skills/vercel-react-view-transitions/references/css-recipes.md +242 -0
- package/bundled-skills/vercel-react-view-transitions/references/implementation.md +182 -0
- package/bundled-skills/vercel-react-view-transitions/references/nextjs.md +176 -0
- package/bundled-skills/vercel-react-view-transitions/references/patterns.md +262 -0
- package/bundled-skills/vibe-code-cleanup/SKILL.md +4 -4
- package/bundled-skills/vibecode-production-qa-validator/SKILL.md +3 -2
- package/package.json +1 -1
- package/skills_index.json +338 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: social-metadata-hardening
|
|
3
|
-
description: "Fix social sharing previews so URLs render as rich cards on Facebook, LinkedIn, X/Twitter, WhatsApp, Telegram,
|
|
3
|
+
description: "Fix social sharing previews so URLs render as rich cards on Facebook, LinkedIn, X/Twitter, WhatsApp, Telegram, and more. Covers OG tags, Twitter cards, absolute image URLs, and debugging."
|
|
4
4
|
category: seo
|
|
5
5
|
risk: safe
|
|
6
6
|
source: self
|
|
@@ -141,7 +141,7 @@ export const metadata = {
|
|
|
141
141
|
};
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
> ⚠️
|
|
144
|
+
> ⚠️ **Set `metadataBase` when using relative metadata URLs.** If your helper already outputs absolute canonical/OG URLs, previews can still work without it.
|
|
145
145
|
|
|
146
146
|
---
|
|
147
147
|
|
|
@@ -198,6 +198,7 @@ curl -s https://www.yourdomain.com/blog/my-post | grep -i "og:\|twitter:"
|
|
|
198
198
|
If tags don't appear → they're being added by JavaScript (not crawlable). Fix: move to `export const metadata` or `generateMetadata`.
|
|
199
199
|
|
|
200
200
|
### 2. Validate with platform tools
|
|
201
|
+
|
|
201
202
|
| Platform | Tool |
|
|
202
203
|
|----------|------|
|
|
203
204
|
| Facebook | https://developers.facebook.com/tools/debug/ |
|
|
@@ -226,5 +227,5 @@ After deploying fixes, paste the URL into each platform's debugger and click "Fe
|
|
|
226
227
|
## Limitations
|
|
227
228
|
|
|
228
229
|
- Cannot force immediate cache refresh on every social platform; some previews may remain stale after a correct fix.
|
|
229
|
-
- Requires
|
|
230
|
+
- Requires publicly reachable deployed URLs for reliable validation with platform debuggers.
|
|
230
231
|
- Does not replace brand, accessibility, or legal review of image text, alt text, and preview copy.
|
|
@@ -93,6 +93,25 @@ Check the link in bio to pre-order!
|
|
|
93
93
|
- ❌ Avoid using more than 10 hashtags; it can look like spam.
|
|
94
94
|
- ❌ Never guess facts; if info isn't provided, stick to general industry knowledge.
|
|
95
95
|
|
|
96
|
+
## Examples
|
|
97
|
+
|
|
98
|
+
### Example: New Product Launch
|
|
99
|
+
- **Topic**: Solar Powered Coffee Mug
|
|
100
|
+
- **Keyword**: eco-friendly coffee
|
|
101
|
+
- **Target**: Commuters
|
|
102
|
+
- **Platform**: Instagram
|
|
103
|
+
- **Tone**: Insightful
|
|
104
|
+
|
|
105
|
+
**Output**:
|
|
106
|
+
☕️ Your morning coffee just got a clean energy upgrade!
|
|
107
|
+
Your commute just got smarter and greener.
|
|
108
|
+
The SolMug keeps your brew hot using only sunlight.
|
|
109
|
+
A small change for your bag, a big win for the planet.
|
|
110
|
+
Check the link in bio to pre-order!
|
|
111
|
+
#ecofriendly #coffee #sustainability #tech #morningroutine
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
96
115
|
## Limitations
|
|
97
116
|
- This skill does not generate image or video assets.
|
|
98
117
|
- It requires manual copy-pasting to the respective social media platforms.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd-workflows
|
|
3
|
+
description: "Use when working with tdd workflows tdd cycle (Alias for tdd-workflows-tdd-cycle)"
|
|
4
|
+
risk: unknown
|
|
5
|
+
source: "alias"
|
|
6
|
+
date_added: "2026-06-02"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Tdd Workflows
|
|
10
|
+
|
|
11
|
+
> **This is an alias.** The canonical skill is **`tdd-workflows-tdd-cycle`**.
|
|
12
|
+
|
|
13
|
+
This skill redirects to `tdd-workflows-tdd-cycle`. Load it from the vault:
|
|
14
|
+
|
|
15
|
+
`skill-libraries/testing/tdd-workflows-tdd-cycle/SKILL.md`
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
- Use this skill when working with tdd workflows tdd cycle (Alias for tdd-workflows-tdd-cycle)
|
|
19
|
+
|
|
20
|
+
## Why this alias exists
|
|
21
|
+
|
|
22
|
+
Users commonly search for `tdd-workflows` but the full skill name in this collection is `tdd-workflows-tdd-cycle`. This alias ensures discoverability.
|
|
23
|
+
|
|
24
|
+
## Limitations
|
|
25
|
+
- Use this skill only when the task clearly matches the scope described above.
|
|
26
|
+
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
|
|
27
|
+
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
|
|
28
|
+
|
|
29
|
+
## Examples
|
|
30
|
+
```text
|
|
31
|
+
Use @tdd-workflows for this task: Use when working with tdd workflows tdd cycle (Alias for tdd-workflows-tdd-cycle).
|
|
32
|
+
|
|
33
|
+
Apply the skill to my current work and walk me through the safest next steps,
|
|
34
|
+
key checks, and the concrete output I should produce.
|
|
35
|
+
```
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: user-thoughts
|
|
3
|
+
description: >-
|
|
4
|
+
Persist user decisions and project constraints to mdbase across sessions.
|
|
5
|
+
Trigger on /user-thoughts or /ustht, or when the user discusses architecture,
|
|
6
|
+
tech stack, rules, UI/UX, or project memory.
|
|
7
|
+
license: MIT
|
|
8
|
+
source: "https://github.com/JularDepick/user-thoughts.SKILL"
|
|
9
|
+
source_repo: JularDepick/user-thoughts.SKILL
|
|
10
|
+
source_type: community
|
|
11
|
+
date_added: "2026-05-31"
|
|
12
|
+
author: JularDepick
|
|
13
|
+
tags: [userthoughts, documentation, project-management, mdbase]
|
|
14
|
+
tools: [claude, cursor, gemini]
|
|
15
|
+
risk: safe
|
|
16
|
+
allowed-tools: read write bash
|
|
17
|
+
metadata:
|
|
18
|
+
author: JularDepick
|
|
19
|
+
category: productivity
|
|
20
|
+
supported_agents: "[claude, cursor, gemini]"
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# user-thoughts.SKILL
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
Across sessions and across agents, project decisions and user constraints are easy to lose. `user-thoughts` persists those decisions into a project-local `mdbase` so any future agent can recover the user's intent without re-deriving it from scratch.
|
|
28
|
+
|
|
29
|
+
The skill records user intent. It does not replace normal task execution. If the user says, "make the button red," the agent should both make the change and record the preference when persistent project memory is useful.
|
|
30
|
+
|
|
31
|
+
## When to Use
|
|
32
|
+
|
|
33
|
+
Use this skill when the user states or revises:
|
|
34
|
+
|
|
35
|
+
- Project rules, constraints, preferences, or requirements.
|
|
36
|
+
- Architecture, tech-stack, data-model, deployment, or workflow decisions.
|
|
37
|
+
- UI/UX direction, copy standards, visual preferences, or design rationale.
|
|
38
|
+
- Backlog items, planned work, rejected options, or decisions that future agents should inherit.
|
|
39
|
+
- A direct command beginning with `/user-thoughts` or `/ustht`.
|
|
40
|
+
|
|
41
|
+
Do not use it for unrelated small talk, transient chatter, or content the user explicitly asks to ignore.
|
|
42
|
+
|
|
43
|
+
## Language Policy
|
|
44
|
+
|
|
45
|
+
- All bundled skill files, scripts, templates, and reference docs are written in English.
|
|
46
|
+
- Agent-facing command output should follow the user's current conversation language when the agent can reasonably do so.
|
|
47
|
+
- Raw user thoughts should preserve the user's original wording. Do not translate, summarize, or clean the user's intent unless the user asks for that.
|
|
48
|
+
|
|
49
|
+
## Core Workflow
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
User message -> Agent identifies persistent project intent -> write to #raw/
|
|
53
|
+
-> /ustht sortin groups raw entries into #mdbase/
|
|
54
|
+
-> /ustht mdbase show exposes the organized memory base
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Runtime Modes
|
|
58
|
+
|
|
59
|
+
- Passive mode: `INSTANT_STATUS=off`; only explicit skill commands run.
|
|
60
|
+
- Instant mode: `INSTANT_STATUS=on` and `SKILL_STATUS=on`; project-relevant user thoughts are written to `#raw/` as they appear.
|
|
61
|
+
- Ignore mode: `ignore start` and `ignore end` mark a temporary interval that should not be recorded.
|
|
62
|
+
- Read-only mode: if required read/write/bash tools are unavailable, show commands can still work but write commands should explain that the environment cannot persist data.
|
|
63
|
+
|
|
64
|
+
`SKILL_STATUS=off` pauses instant capture even when `INSTANT_STATUS=on`. Ignore intervals are context-local and do not persist across sessions.
|
|
65
|
+
|
|
66
|
+
## Path Definitions
|
|
67
|
+
|
|
68
|
+
- `@/`: the installed `user-thoughts/` skill directory.
|
|
69
|
+
- `~/`: the current project working directory.
|
|
70
|
+
- `#ustht/`: `~/.ustht/`.
|
|
71
|
+
- `#mdbase/`: `~/.ustht/mdbase/`.
|
|
72
|
+
- `#ignored/`: `~/.ustht/ignored/`.
|
|
73
|
+
- `#raw/`: `~/.ustht/raw/`.
|
|
74
|
+
- `#export/`: `~/.ustht/export/`.
|
|
75
|
+
|
|
76
|
+
## Runtime Directory Layout
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
.ustht/
|
|
80
|
+
├── define.ini
|
|
81
|
+
├── README.ai.md
|
|
82
|
+
├── raw/
|
|
83
|
+
│ └── yyyy-mm-dd.md
|
|
84
|
+
├── ignored/
|
|
85
|
+
│ └── yyyy-mm-dd.md
|
|
86
|
+
├── mdbase/
|
|
87
|
+
│ ├── backlog.md
|
|
88
|
+
│ ├── README.ai.md
|
|
89
|
+
│ └── details/
|
|
90
|
+
│ ├── rules.md
|
|
91
|
+
│ ├── plans.md
|
|
92
|
+
│ ├── ui/
|
|
93
|
+
│ │ ├── outline.md
|
|
94
|
+
│ │ └── details.md
|
|
95
|
+
│ ├── dev-stack.md
|
|
96
|
+
│ └── general.md
|
|
97
|
+
└── export/
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Tools and Environment
|
|
101
|
+
|
|
102
|
+
Required tools:
|
|
103
|
+
|
|
104
|
+
- read/write: read and update files under `#ustht/`.
|
|
105
|
+
- bash: create directories and run bundled scripts.
|
|
106
|
+
|
|
107
|
+
Optional tool:
|
|
108
|
+
|
|
109
|
+
- SubAgent: when available, use it for semantic `sortin` or `resort` maintenance that spans many files. Use the main agent directly only when subagents are unavailable.
|
|
110
|
+
|
|
111
|
+
## Bundled Scripts
|
|
112
|
+
|
|
113
|
+
The `scripts/` directory provides small Python helpers for mechanical operations:
|
|
114
|
+
|
|
115
|
+
| Script | Purpose | Example |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| `common.py` | Shared helpers | Imported by other scripts |
|
|
118
|
+
| `status.py` | Show current runtime state | `python @/scripts/status.py` |
|
|
119
|
+
| `init.py` | Initialize `.ustht/` | `python @/scripts/init.py` |
|
|
120
|
+
| `show_raw.py` | Show unprocessed raw entries | `python @/scripts/show_raw.py` |
|
|
121
|
+
| `show_mdbase.py` | Show mdbase index or a dimension | `python @/scripts/show_mdbase.py show --all` |
|
|
122
|
+
| `sortin.py` | Soft-maintain raw entries into mdbase | `python @/scripts/sortin.py --dry` |
|
|
123
|
+
| `write_raw.py` | Append one raw thought | `python @/scripts/write_raw.py "Use REST APIs" --dim dev-stack` |
|
|
124
|
+
| `toggle.py` | Toggle skill or instant mode | `python @/scripts/toggle.py instant on` |
|
|
125
|
+
| `ignore_ops.py` | Manage ignored entries | `python @/scripts/ignore_ops.py show` |
|
|
126
|
+
|
|
127
|
+
`resort` has no standalone script because it requires semantic review, deduplication, and restructuring by an agent.
|
|
128
|
+
|
|
129
|
+
## define.ini
|
|
130
|
+
|
|
131
|
+
`define.ini` stores simple key/value runtime state:
|
|
132
|
+
|
|
133
|
+
| Key | Value | Meaning |
|
|
134
|
+
|---|---|---|
|
|
135
|
+
| `SKILL_STATUS` | `on` or `off` | Whether the skill accepts write operations |
|
|
136
|
+
| `INSTANT_STATUS` | `on` or `off` | Whether instant capture is enabled |
|
|
137
|
+
| `LAST_SORTIN` | `yyyy-mm-dd HH:MM` or empty | Last soft-maintenance time |
|
|
138
|
+
|
|
139
|
+
Write the file atomically by replacing its complete contents. Do not append partial key/value fragments.
|
|
140
|
+
|
|
141
|
+
## Commands
|
|
142
|
+
|
|
143
|
+
Commands may use either `/user-thoughts` or `/ustht`.
|
|
144
|
+
|
|
145
|
+
### Status and Toggles
|
|
146
|
+
|
|
147
|
+
- `/ustht init`: create `.ustht/` and copy templates.
|
|
148
|
+
- `/ustht status`: show status, raw counts, and dimension counts.
|
|
149
|
+
- `/ustht skill`: show skill status.
|
|
150
|
+
- `/ustht skill on|off`: enable or disable writes.
|
|
151
|
+
- `/ustht instant`: show instant-capture status.
|
|
152
|
+
- `/ustht instant on|off`: enable or disable instant capture.
|
|
153
|
+
|
|
154
|
+
### Maintenance
|
|
155
|
+
|
|
156
|
+
- `/ustht sortin [--dry]`: append unprocessed raw entries into mdbase.
|
|
157
|
+
- `/ustht resort [--dry]`: semantically review and reorganize all mdbase content.
|
|
158
|
+
|
|
159
|
+
### Ignore Management
|
|
160
|
+
|
|
161
|
+
- `/ustht ignore start|end`: start or end an ignore interval.
|
|
162
|
+
- `/ustht ignore --last`: remove the last raw entry and record it in `#ignored/`.
|
|
163
|
+
- `/ustht ignore`: same as `--last` when used as a standalone command.
|
|
164
|
+
- `/ustht ignore show`: list ignored entries.
|
|
165
|
+
- Any message ending in `/ustht ignore` or `/user-thoughts ignore`: ignore that message.
|
|
166
|
+
|
|
167
|
+
### Content Review and Export
|
|
168
|
+
|
|
169
|
+
- `/ustht raw`: show unprocessed raw entries.
|
|
170
|
+
- `/ustht mdbase show [--all|--dimension]`: show the index, all dimensions, or one dimension.
|
|
171
|
+
- `/ustht mdbase export [--all|--dimension]`: export mdbase content to `#export/`.
|
|
172
|
+
- `/ustht import <path>`: scan markdown files under a safe project-local path and merge project-relevant decisions into mdbase.
|
|
173
|
+
|
|
174
|
+
Chain commands with `&&`, for example `/ustht skill on && instant on`.
|
|
175
|
+
|
|
176
|
+
## Instant Capture
|
|
177
|
+
|
|
178
|
+
When instant mode is active:
|
|
179
|
+
|
|
180
|
+
1. Decide whether the user message contains project-relevant intent.
|
|
181
|
+
2. Write one raw line per independent thought using `- [HH:MM] original text | suggested-dim:dimension`.
|
|
182
|
+
3. Do not update mdbase directly; wait for `sortin`.
|
|
183
|
+
4. Skip ignored messages and ignore intervals.
|
|
184
|
+
5. Keep normal user work moving. Recording should not block task execution.
|
|
185
|
+
6. If one day accumulates more than five raw entries, suggest `/ustht sortin`.
|
|
186
|
+
|
|
187
|
+
## Sortin and Resort
|
|
188
|
+
|
|
189
|
+
`sortin` is soft maintenance:
|
|
190
|
+
|
|
191
|
+
1. Read unprocessed `#raw/*.md` files.
|
|
192
|
+
2. Parse entries and their suggested dimensions.
|
|
193
|
+
3. Append them to matching `#mdbase/` files grouped by date.
|
|
194
|
+
4. Mark processed raw files with `<!-- processed -->` on the first line.
|
|
195
|
+
5. Update `LAST_SORTIN` and the mdbase index.
|
|
196
|
+
|
|
197
|
+
`resort` is hard maintenance:
|
|
198
|
+
|
|
199
|
+
1. Review all mdbase files.
|
|
200
|
+
2. Deduplicate overlapping records.
|
|
201
|
+
3. Move entries into better dimensions when justified by the user's own wording.
|
|
202
|
+
4. Mark deprecated dimensions instead of deleting them unless the user explicitly requests deletion.
|
|
203
|
+
5. Preserve provenance and user wording.
|
|
204
|
+
|
|
205
|
+
## Best Practices
|
|
206
|
+
|
|
207
|
+
- Record explicit user decisions faithfully.
|
|
208
|
+
- Do not over-infer. Store only what the user said or what follows directly from it.
|
|
209
|
+
- Preserve original wording, including negations, numbers, links, constraints, and tradeoffs.
|
|
210
|
+
- Split one message into multiple records when it contains independent decisions.
|
|
211
|
+
- Resolve conflicts by treating the newest user statement as current while preserving the older record as historical context.
|
|
212
|
+
- Put unmatched project-relevant items in `general.md` instead of inventing too many dimensions.
|
|
213
|
+
- Do not record unrelated conversation.
|
|
214
|
+
|
|
215
|
+
## Limitations
|
|
216
|
+
|
|
217
|
+
- The skill records intent; it does not validate whether the user's idea is correct, feasible, secure, or internally consistent.
|
|
218
|
+
- Dimension assignment depends on agent judgment and may need user correction through `resort`.
|
|
219
|
+
- Ignore intervals are context-local and do not persist across sessions.
|
|
220
|
+
- `.ustht/` can contain sensitive information. The skill does not redact content; users must use ignore commands or repository hygiene to manage sensitive data.
|
|
221
|
+
- The workflow is not file-lock based. In multi-agent environments, agents must coordinate to avoid conflicting writes.
|
|
222
|
+
|
|
223
|
+
## Safety Rules
|
|
224
|
+
|
|
225
|
+
- Keep all runtime writes inside `#ustht/`.
|
|
226
|
+
- Validate dimension names: lowercase letters, digits, hyphens, and `/` subdirectories only; no `..`, backslashes, spaces, absolute paths, or reserved names.
|
|
227
|
+
- Do not execute user-provided shell commands.
|
|
228
|
+
- Do not recursively copy directories with shell commands during initialization; copy known template files safely.
|
|
229
|
+
- Treat `<!-- processed -->` as meaningful only when it is the first line of a raw file.
|
|
230
|
+
- Never silently delete dimension files; mark deprecated content unless the user explicitly asks for deletion.
|
|
231
|
+
|
|
232
|
+
More detail is available in `references/safety.md`, `references/sortin.md`, `references/commands.md`, and `references/edge-cases.md`.
|
|
233
|
+
|
|
234
|
+
## Related Skills
|
|
235
|
+
|
|
236
|
+
None. This skill is intentionally focused on project-local user intent persistence.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# user-thoughts Runtime Directory
|
|
2
|
+
|
|
3
|
+
This directory stores project-local user intent captured by `user-thoughts`.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- `define.ini`: runtime state for the skill.
|
|
8
|
+
- `raw/`: unprocessed user thoughts captured by date.
|
|
9
|
+
- `ignored/`: entries the user explicitly chose not to record.
|
|
10
|
+
- `mdbase/`: organized project memory grouped by dimension.
|
|
11
|
+
- `export/`: exported mdbase content.
|
|
12
|
+
|
|
13
|
+
Do not delete this directory unless the user explicitly wants to discard project memory.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# user-thoughts mdbase Index
|
|
2
|
+
|
|
3
|
+
This directory stores user-provided project decisions, constraints, preferences, and plans. Keep the user's original intent intact.
|
|
4
|
+
|
|
5
|
+
Last updated: never
|
|
6
|
+
|
|
7
|
+
## Maintenance Rules
|
|
8
|
+
|
|
9
|
+
- Preserve details from user wording. Do not simplify away constraints, numbers, negations, or examples.
|
|
10
|
+
- Classify entries by dimension so future agents can find them quickly.
|
|
11
|
+
- Prefer existing dimensions. Create a new dimension only when the user's thought clearly needs one.
|
|
12
|
+
- Append new records by date under `## yyyy-mm-dd` headings.
|
|
13
|
+
- Do not delete historical content unless the user explicitly asks for deletion.
|
|
14
|
+
|
|
15
|
+
## Document Index
|
|
16
|
+
|
|
17
|
+
| File | Dimension | Entries |
|
|
18
|
+
|------|-----------|---------|
|
|
19
|
+
| [backlog.md](backlog.md) | backlog | 0 |
|
|
20
|
+
| [details/rules.md](details/rules.md) | rules | 0 |
|
|
21
|
+
| [details/plans.md](details/plans.md) | plans | 0 |
|
|
22
|
+
| [details/dev-stack.md](details/dev-stack.md) | dev-stack | 0 |
|
|
23
|
+
| [details/ui/outline.md](details/ui/outline.md) | ui/outline | 0 |
|
|
24
|
+
| [details/ui/details.md](details/ui/details.md) | ui/details | 0 |
|
|
25
|
+
| [details/general.md](details/general.md) | general | 0 |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Backlog
|
|
2
|
+
|
|
3
|
+
> User plans, pending tasks, and work that has been requested but not started.
|
|
4
|
+
|
|
5
|
+
## Pending
|
|
6
|
+
|
|
7
|
+
<!-- Items explicitly requested by the user but not started yet. -->
|
|
8
|
+
|
|
9
|
+
## In Progress
|
|
10
|
+
|
|
11
|
+
<!-- Items that have started but are not complete. -->
|
|
12
|
+
|
|
13
|
+
## Done
|
|
14
|
+
|
|
15
|
+
<!-- Completed items retained for traceability. -->
|
|
16
|
+
|
|
17
|
+
## Notes
|
|
18
|
+
|
|
19
|
+
Record the date each item was raised. When an item is completed, move it to Done and include the completion date when known.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Command Reference
|
|
2
|
+
|
|
3
|
+
`user-thoughts` accepts `/user-thoughts` and `/ustht`. They are equivalent.
|
|
4
|
+
|
|
5
|
+
## Command Summary
|
|
6
|
+
|
|
7
|
+
| Command | Meaning |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `/ustht init` | Initialize `.ustht/` in the current project. |
|
|
10
|
+
| `/ustht status` | Show skill state, instant state, raw count, and dimension count. |
|
|
11
|
+
| `/ustht skill` | Show `SKILL_STATUS`. |
|
|
12
|
+
| `/ustht skill on|off` | Enable or disable write operations. |
|
|
13
|
+
| `/ustht instant` | Show `INSTANT_STATUS`. |
|
|
14
|
+
| `/ustht instant on|off` | Enable or disable instant capture. |
|
|
15
|
+
| `/ustht sortin [--dry]` | Append raw entries into mdbase. |
|
|
16
|
+
| `/ustht resort [--dry]` | Reorganize all mdbase content semantically. |
|
|
17
|
+
| `/ustht raw` | Show unprocessed raw entries. |
|
|
18
|
+
| `/ustht mdbase show [--all|--dimension]` | Show the index, all dimensions, or one dimension. |
|
|
19
|
+
| `/ustht mdbase export [--all|--dimension]` | Export mdbase content. |
|
|
20
|
+
| `/ustht import <path>` | Import project-relevant decisions from markdown files. |
|
|
21
|
+
| `/ustht ignore start|end` | Start or stop a temporary ignore interval. |
|
|
22
|
+
| `/ustht ignore --last` | Remove the last raw entry and record it as ignored. |
|
|
23
|
+
| `/ustht ignore show` | Show ignored entries. |
|
|
24
|
+
|
|
25
|
+
## Natural-Language Mapping
|
|
26
|
+
|
|
27
|
+
Agents may map clear user intent to commands:
|
|
28
|
+
|
|
29
|
+
- "turn on project memory" -> `/ustht skill on && instant on`
|
|
30
|
+
- "stop recording this" -> `/ustht ignore start`
|
|
31
|
+
- "start recording again" -> `/ustht ignore end`
|
|
32
|
+
- "organize what I said" -> `/ustht sortin`
|
|
33
|
+
- "show what you remember" -> `/ustht mdbase show`
|
|
34
|
+
- "ignore the last note" -> `/ustht ignore --last`
|
|
35
|
+
|
|
36
|
+
When intent is ambiguous, ask a short clarification instead of guessing.
|
|
37
|
+
|
|
38
|
+
## Chained Commands
|
|
39
|
+
|
|
40
|
+
Commands can be chained with `&&` and should run left to right. Stop only if a command fails in a way that makes the following command unsafe.
|
|
41
|
+
|
|
42
|
+
Example:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
/ustht skill on && instant on && status
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Dimension Arguments
|
|
49
|
+
|
|
50
|
+
Dimension names must pass validation:
|
|
51
|
+
|
|
52
|
+
- lowercase letters, digits, and hyphens;
|
|
53
|
+
- `/` allowed for subdirectories, such as `ui/outline`;
|
|
54
|
+
- no spaces, `..`, backslashes, absolute paths, or reserved names.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Edge Cases
|
|
2
|
+
|
|
3
|
+
Use these examples to keep behavior predictable.
|
|
4
|
+
|
|
5
|
+
## No Runtime Directory
|
|
6
|
+
|
|
7
|
+
User: `/ustht status`
|
|
8
|
+
|
|
9
|
+
Agent: `.ustht/ was not found. Run /ustht init first.`
|
|
10
|
+
|
|
11
|
+
## Skill Disabled
|
|
12
|
+
|
|
13
|
+
If `SKILL_STATUS=off`, write commands should not modify files. Read commands such as `status`, `raw`, and `mdbase show` may still run.
|
|
14
|
+
|
|
15
|
+
## Instant Mode Disabled
|
|
16
|
+
|
|
17
|
+
When `INSTANT_STATUS=off`, do not capture natural-language thoughts automatically. Explicit commands still run.
|
|
18
|
+
|
|
19
|
+
## Command Plus Thought
|
|
20
|
+
|
|
21
|
+
User: `Make buttons use 8px radius, and /ustht status`
|
|
22
|
+
|
|
23
|
+
Agent: run the command and record the UI preference if instant capture is enabled. Do not record the command text itself.
|
|
24
|
+
|
|
25
|
+
## Message Suffix Ignore
|
|
26
|
+
|
|
27
|
+
User: `This color experiment is temporary /ustht ignore`
|
|
28
|
+
|
|
29
|
+
Agent: do not write it to raw. Record it in `ignored/` as a suffix-ignored entry if ignore tracking is available.
|
|
30
|
+
|
|
31
|
+
## Ignore Interval
|
|
32
|
+
|
|
33
|
+
User: `/ustht ignore start`
|
|
34
|
+
|
|
35
|
+
Agent: enter ignore mode for the current context.
|
|
36
|
+
|
|
37
|
+
User: `Try three throwaway layouts.`
|
|
38
|
+
|
|
39
|
+
Agent: do not record the thought.
|
|
40
|
+
|
|
41
|
+
User: `/ustht ignore end`
|
|
42
|
+
|
|
43
|
+
Agent: exit ignore mode.
|
|
44
|
+
|
|
45
|
+
## Last Entry Ignore
|
|
46
|
+
|
|
47
|
+
User: `/ustht ignore --last`
|
|
48
|
+
|
|
49
|
+
Agent: remove the last unprocessed raw entry and append it to `ignored/`. If no entry exists, say so without failing.
|
|
50
|
+
|
|
51
|
+
## Processed Marker Mentioned by User
|
|
52
|
+
|
|
53
|
+
User: `Maybe we should use <!-- processed --> as a completion marker in docs.`
|
|
54
|
+
|
|
55
|
+
Agent: preserve that text as ordinary user content. `sortin` checks only the first line of raw files.
|
|
56
|
+
|
|
57
|
+
## Illegal Dimension Names
|
|
58
|
+
|
|
59
|
+
Reject dimensions containing spaces, `..`, backslashes, absolute paths, or unsafe characters.
|
|
60
|
+
|
|
61
|
+
Examples:
|
|
62
|
+
|
|
63
|
+
- Reject `../../../etc/passwd`.
|
|
64
|
+
- Reject `my file`.
|
|
65
|
+
- Accept `ui/details`.
|
|
66
|
+
- Accept `dev-stack`.
|
|
67
|
+
|
|
68
|
+
## Chained Commands
|
|
69
|
+
|
|
70
|
+
User: `/ustht skill on && instant on && status`
|
|
71
|
+
|
|
72
|
+
Agent: run commands left to right and report a compact summary.
|
|
73
|
+
|
|
74
|
+
## Import With No Relevant Content
|
|
75
|
+
|
|
76
|
+
If `/ustht import README.md` finds no project decisions, report that no entries were extracted and do not write empty dimension sections.
|
|
77
|
+
|
|
78
|
+
## Multi-Agent Writes
|
|
79
|
+
|
|
80
|
+
No file locks are provided. If multiple agents are active, coordinate before `sortin` or `resort` to avoid conflicting writes.
|
|
81
|
+
|
|
82
|
+
## Sensitive Content
|
|
83
|
+
|
|
84
|
+
If the user says a thought contains secrets or personal data, prefer ignore behavior and remind them that `.ustht/` is not automatically redacted.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Safety and Data Integrity
|
|
2
|
+
|
|
3
|
+
This document defines path safety, input validation, and data-integrity rules for `user-thoughts`.
|
|
4
|
+
|
|
5
|
+
## Path Safety
|
|
6
|
+
|
|
7
|
+
All runtime file operations must stay inside `#ustht/` unless an import command reads project-local markdown files.
|
|
8
|
+
|
|
9
|
+
Dimension names are used to construct paths, so validate them strictly:
|
|
10
|
+
|
|
11
|
+
| Rule | Reason |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Each path segment uses `[a-z0-9-]` only | Prevents shell and path surprises. |
|
|
14
|
+
| Each segment starts and ends with `[a-z0-9]` | Avoids hidden or malformed files. |
|
|
15
|
+
| `/` is allowed only as a dimension subdirectory separator | Supports `ui/outline`. |
|
|
16
|
+
| `..`, backslashes, spaces, and absolute paths are forbidden | Prevents path traversal. |
|
|
17
|
+
| Reserved names are forbidden | Avoids collisions with runtime folders. |
|
|
18
|
+
|
|
19
|
+
Reserved names: `backlog`, `readme-ai`, `export`, `raw`, `ignored`, `define`, `general`.
|
|
20
|
+
|
|
21
|
+
## Content Safety
|
|
22
|
+
|
|
23
|
+
Raw entries use this format:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
- [HH:MM] original user text | suggested-dim:dimension
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The suffix is agent-generated metadata. User text may contain markdown and should be preserved as written. Parse the last ` | suggested-dim:` separator only.
|
|
30
|
+
|
|
31
|
+
`<!-- processed -->` is meaningful only as the first line of a raw file. If the user mentions that string inside a thought, treat it as normal content.
|
|
32
|
+
|
|
33
|
+
## define.ini Safety
|
|
34
|
+
|
|
35
|
+
Allowed keys and values:
|
|
36
|
+
|
|
37
|
+
| Key | Allowed value |
|
|
38
|
+
|---|---|
|
|
39
|
+
| `SKILL_STATUS` | `on` or `off` |
|
|
40
|
+
| `INSTANT_STATUS` | `on` or `off` |
|
|
41
|
+
| `LAST_SORTIN` | empty or `yyyy-mm-dd HH:MM` |
|
|
42
|
+
|
|
43
|
+
Values must not contain newlines or `=`. Write the whole file rather than appending partial fragments.
|
|
44
|
+
|
|
45
|
+
## Shell Safety
|
|
46
|
+
|
|
47
|
+
- Do not execute user-provided shell commands.
|
|
48
|
+
- Do not use `eval` or dynamic execution.
|
|
49
|
+
- Construct file paths only from validated dimensions or fixed template paths.
|
|
50
|
+
- During initialization, copy known template files safely instead of recursively shell-copying arbitrary directories.
|
|
51
|
+
|
|
52
|
+
## Data Integrity
|
|
53
|
+
|
|
54
|
+
`sortin` is not fully atomic. To reduce partial-write risk:
|
|
55
|
+
|
|
56
|
+
1. Parse raw entries first.
|
|
57
|
+
2. Write dimension files.
|
|
58
|
+
3. Mark raw files as processed only after writes succeed.
|
|
59
|
+
4. Update `LAST_SORTIN` last.
|
|
60
|
+
|
|
61
|
+
Processed raw files are retained for traceability. Dimension files should be appended or marked deprecated; do not silently delete user history.
|
|
62
|
+
|
|
63
|
+
## Sensitive Data
|
|
64
|
+
|
|
65
|
+
The skill preserves original wording and does not redact secrets or personal data. Users should use ignore commands before sensitive content is captured, and teams should protect `.ustht/` with normal repository and filesystem hygiene.
|