@oriro/orirocli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATTRIBUTION.md +45 -0
- package/README.md +26 -0
- package/dist/cli.js +4570 -0
- package/package.json +63 -0
- package/skills/1password/SKILL.md +118 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +21 -0
- package/skills/algorithmic-art/LICENSE +21 -0
- package/skills/algorithmic-art/SKILL.md +446 -0
- package/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/skills/algorithmic-art/templates/viewer.html +599 -0
- package/skills/apple-notes/SKILL.md +81 -0
- package/skills/apple-reminders/SKILL.md +122 -0
- package/skills/bear-notes/SKILL.md +111 -0
- package/skills/blogwatcher/SKILL.md +73 -0
- package/skills/blucli/SKILL.md +51 -0
- package/skills/brand-guidelines/LICENSE +21 -0
- package/skills/brand-guidelines/SKILL.md +76 -0
- package/skills/business/biz-analysis/LICENSE +21 -0
- package/skills/business/biz-analysis/SKILL.md +103 -0
- package/skills/business/biz-corporate-strategy/LICENSE +21 -0
- package/skills/business/biz-corporate-strategy/SKILL.md +76 -0
- package/skills/business/biz-customer-success/LICENSE +21 -0
- package/skills/business/biz-customer-success/SKILL.md +55 -0
- package/skills/business/biz-entrepreneurship/LICENSE +21 -0
- package/skills/business/biz-entrepreneurship/SKILL.md +72 -0
- package/skills/business/biz-hr/LICENSE +21 -0
- package/skills/business/biz-hr/SKILL.md +67 -0
- package/skills/business/biz-international/LICENSE +21 -0
- package/skills/business/biz-international/SKILL.md +51 -0
- package/skills/business/biz-leadership/LICENSE +21 -0
- package/skills/business/biz-leadership/SKILL.md +106 -0
- package/skills/business/biz-marketing-strategy/LICENSE +21 -0
- package/skills/business/biz-marketing-strategy/SKILL.md +119 -0
- package/skills/business/biz-negotiation/LICENSE +21 -0
- package/skills/business/biz-negotiation/SKILL.md +152 -0
- package/skills/business/biz-operations/LICENSE +21 -0
- package/skills/business/biz-operations/SKILL.md +74 -0
- package/skills/business/biz-project/LICENSE +21 -0
- package/skills/business/biz-project/SKILL.md +203 -0
- package/skills/business/biz-risk/LICENSE +21 -0
- package/skills/business/biz-risk/SKILL.md +85 -0
- package/skills/business/biz-sales/LICENSE +21 -0
- package/skills/business/biz-sales/SKILL.md +92 -0
- package/skills/business/biz-startup-ops/LICENSE +21 -0
- package/skills/business/biz-startup-ops/SKILL.md +70 -0
- package/skills/business/biz-strategy/LICENSE +21 -0
- package/skills/business/biz-strategy/SKILL.md +233 -0
- package/skills/business/biz-supply-chain-advanced/LICENSE +21 -0
- package/skills/business/biz-supply-chain-advanced/SKILL.md +68 -0
- package/skills/business/fin-chartered-exams/LICENSE +21 -0
- package/skills/business/fin-chartered-exams/SKILL.md +69 -0
- package/skills/camsnap/SKILL.md +49 -0
- package/skills/canvas/SKILL.md +82 -0
- package/skills/canvas-design/LICENSE +21 -0
- package/skills/canvas-design/SKILL.md +140 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/coding-agent/SKILL.md +146 -0
- package/skills/communication/comm-business-writing/LICENSE +21 -0
- package/skills/communication/comm-business-writing/SKILL.md +67 -0
- package/skills/communication/comm-cross-cultural/LICENSE +21 -0
- package/skills/communication/comm-cross-cultural/SKILL.md +88 -0
- package/skills/communication/comm-journalism/LICENSE +21 -0
- package/skills/communication/comm-journalism/SKILL.md +81 -0
- package/skills/communication/comm-linguistics/LICENSE +21 -0
- package/skills/communication/comm-linguistics/SKILL.md +82 -0
- package/skills/communication/comm-negotiation/LICENSE +21 -0
- package/skills/communication/comm-negotiation/SKILL.md +120 -0
- package/skills/communication/comm-presentations/LICENSE +21 -0
- package/skills/communication/comm-presentations/SKILL.md +93 -0
- package/skills/communication/comm-public-speaking/LICENSE +21 -0
- package/skills/communication/comm-public-speaking/SKILL.md +68 -0
- package/skills/communication/comm-writing/LICENSE +21 -0
- package/skills/communication/comm-writing/SKILL.md +69 -0
- package/skills/craft/ai-engineering/LICENSE +21 -0
- package/skills/craft/ai-engineering/SKILL.md +828 -0
- package/skills/craft/app-builder-guide/LICENSE +21 -0
- package/skills/craft/app-builder-guide/SKILL.md +332 -0
- package/skills/craft/become-an-ai-engineer-26/CONTRIBUTING.md +46 -0
- package/skills/craft/become-an-ai-engineer-26/LICENSE +21 -0
- package/skills/craft/become-an-ai-engineer-26/README.md +270 -0
- package/skills/craft/become-an-ai-engineer-26/SKILL.md +667 -0
- package/skills/craft/become-an-ai-engineer-26/community/BUILDS.md +13 -0
- package/skills/craft/become-an-ai-engineer-26/community/DISCUSSIONS.md +8 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/README.md +14 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/project/TEMPLATE.md +33 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/README.md +25 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/code/raw_loop.py +126 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-2-architecture/README.md +17 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-3-harness/README.md +17 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/README.md +21 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/code/.github/workflows/eval.yml +40 -0
- package/skills/craft/become-an-ai-engineer-26/phases/phase-5-production/README.md +16 -0
- package/skills/craft/become-an-ai-engineer-26/projects/1-mobile-app-slm/README.md +11 -0
- package/skills/craft/become-an-ai-engineer-26/projects/2-self-improving-coder/README.md +11 -0
- package/skills/craft/become-an-ai-engineer-26/projects/3-video-editor-agent/README.md +11 -0
- package/skills/craft/become-an-ai-engineer-26/projects/4-personal-life-os/README.md +12 -0
- package/skills/craft/become-an-ai-engineer-26/projects/5-enterprise-workflow/README.md +12 -0
- package/skills/craft/become-an-ai-engineer-26/references/benchmark-numbers.md +41 -0
- package/skills/craft/become-an-ai-engineer-26/references/mhc-stable-training.md +73 -0
- package/skills/craft/become-an-ai-engineer-26/references/stack-decisions.md +37 -0
- package/skills/craft/become-an-ai-engineer-26/references/yarn-context-extension.md +123 -0
- package/skills/craft/codex-result-handling/LICENSE +21 -0
- package/skills/craft/codex-result-handling/SKILL.md +26 -0
- package/skills/craft/debug-and-build-methodology/LICENSE +21 -0
- package/skills/craft/debug-and-build-methodology/SKILL.md +432 -0
- package/skills/craft/design/LICENSE +21 -0
- package/skills/craft/design/SKILL.md +274 -0
- package/skills/craft/dev/LICENSE +21 -0
- package/skills/craft/dev/SKILL.md +12 -0
- package/skills/craft/dev/release.md +85 -0
- package/skills/craft/dev/roll.md +50 -0
- package/skills/craft/doc-coauthoring/LICENSE +21 -0
- package/skills/craft/doc-coauthoring/SKILL.md +397 -0
- package/skills/craft/focus/LICENSE +21 -0
- package/skills/craft/focus/SKILL.md +432 -0
- package/skills/craft/focus/UPSTREAM_README.md +233 -0
- package/skills/craft/gh/LICENSE +21 -0
- package/skills/craft/gh/SKILL.md +84 -0
- package/skills/craft/gh-skill/LICENSE +21 -0
- package/skills/craft/gh-skill/SKILL.md +121 -0
- package/skills/craft/godmode/LICENSE +21 -0
- package/skills/craft/godmode/SKILL.md +87 -0
- package/skills/craft/godmode/references/android-launch.md +680 -0
- package/skills/craft/godmode/references/data-gcp.md +1038 -0
- package/skills/craft/godmode/references/expo-eas.md +816 -0
- package/skills/craft/godmode/references/ios-launch.md +734 -0
- package/skills/craft/google-ai-latest/LICENSE +21 -0
- package/skills/craft/google-ai-latest/SKILL.md +682 -0
- package/skills/craft/gpt-5-4-prompting/LICENSE +21 -0
- package/skills/craft/gpt-5-4-prompting/SKILL.md +63 -0
- package/skills/craft/gpt-5-4-prompting/references/codex-prompt-antipatterns.md +101 -0
- package/skills/craft/gpt-5-4-prompting/references/codex-prompt-recipes.md +150 -0
- package/skills/craft/gpt-5-4-prompting/references/prompt-blocks.md +172 -0
- package/skills/craft/grill-me/LICENSE +21 -0
- package/skills/craft/grill-me/SKILL.md +13 -0
- package/skills/craft/idea-to-deploy/LICENSE +21 -0
- package/skills/craft/idea-to-deploy/SKILL.md +292 -0
- package/skills/craft/idea-to-deploy/references/auth-playbook.md +195 -0
- package/skills/craft/idea-to-deploy/references/gcp-deployment.md +268 -0
- package/skills/craft/idea-to-deploy/references/stack-selection.md +117 -0
- package/skills/craft/image-generation-engineer/LICENSE +21 -0
- package/skills/craft/image-generation-engineer/SKILL.md +183 -0
- package/skills/craft/image-generation-engineer/references/architectures.md +260 -0
- package/skills/craft/image-generation-engineer/references/foundations.md +107 -0
- package/skills/craft/image-generation-engineer/references/inference-and-serving.md +253 -0
- package/skills/craft/image-generation-engineer/references/training.md +149 -0
- package/skills/craft/marketing/LICENSE +21 -0
- package/skills/craft/marketing/SKILL.md +1954 -0
- package/skills/craft/master-architect/LICENSE +21 -0
- package/skills/craft/master-architect/SKILL.md +361 -0
- package/skills/craft/master-architect/references/ai-ml.md +317 -0
- package/skills/craft/master-architect/references/architecture.md +268 -0
- package/skills/craft/master-architect/references/auth-playbook.md +195 -0
- package/skills/craft/master-architect/references/cloud.md +323 -0
- package/skills/craft/master-architect/references/cyber.md +839 -0
- package/skills/craft/master-architect/references/data-eng.md +366 -0
- package/skills/craft/master-architect/references/devops.md +550 -0
- package/skills/craft/master-architect/references/gcp-deployment.md +268 -0
- package/skills/craft/master-architect/references/languages.md +748 -0
- package/skills/craft/master-architect/references/legacy.md +240 -0
- package/skills/craft/master-architect/references/mobile.md +447 -0
- package/skills/craft/master-architect/references/patterns.md +451 -0
- package/skills/craft/master-architect/references/saas-patterns.md +379 -0
- package/skills/craft/master-architect/references/sdlc.md +349 -0
- package/skills/craft/master-architect/references/stack-selection.md +117 -0
- package/skills/craft/oriro-ui-2026/LICENSE +21 -0
- package/skills/craft/oriro-ui-2026/SKILL.md +329 -0
- package/skills/craft/playwright-cli/LICENSE +21 -0
- package/skills/craft/playwright-cli/SKILL.md +393 -0
- package/skills/craft/playwright-cli/references/element-attributes.md +23 -0
- package/skills/craft/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/craft/playwright-cli/references/request-mocking.md +87 -0
- package/skills/craft/playwright-cli/references/running-code.md +240 -0
- package/skills/craft/playwright-cli/references/session-management.md +226 -0
- package/skills/craft/playwright-cli/references/spec-driven-testing.md +312 -0
- package/skills/craft/playwright-cli/references/storage-state.md +275 -0
- package/skills/craft/playwright-cli/references/test-generation.md +134 -0
- package/skills/craft/playwright-cli/references/tracing.md +142 -0
- package/skills/craft/playwright-cli/references/video-recording.md +150 -0
- package/skills/craft/remotion-best-practices/LICENSE +21 -0
- package/skills/craft/remotion-best-practices/SKILL.md +345 -0
- package/skills/craft/remotion-best-practices/rules/3d.md +86 -0
- package/skills/craft/remotion-best-practices/rules/assets/charts-bar-chart.tsx +165 -0
- package/skills/craft/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +89 -0
- package/skills/craft/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +101 -0
- package/skills/craft/remotion-best-practices/rules/audio-visualization.md +195 -0
- package/skills/craft/remotion-best-practices/rules/audio.md +167 -0
- package/skills/craft/remotion-best-practices/rules/calculate-metadata.md +118 -0
- package/skills/craft/remotion-best-practices/rules/compositions.md +132 -0
- package/skills/craft/remotion-best-practices/rules/display-captions.md +176 -0
- package/skills/craft/remotion-best-practices/rules/ffmpeg.md +34 -0
- package/skills/craft/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/skills/craft/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/skills/craft/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/skills/craft/remotion-best-practices/rules/gifs.md +135 -0
- package/skills/craft/remotion-best-practices/rules/google-fonts.md +72 -0
- package/skills/craft/remotion-best-practices/rules/html-in-canvas.md +122 -0
- package/skills/craft/remotion-best-practices/rules/images.md +67 -0
- package/skills/craft/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/skills/craft/remotion-best-practices/rules/light-leaks.md +73 -0
- package/skills/craft/remotion-best-practices/rules/local-fonts.md +65 -0
- package/skills/craft/remotion-best-practices/rules/lottie.md +67 -0
- package/skills/craft/remotion-best-practices/rules/maplibre.md +441 -0
- package/skills/craft/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/skills/craft/remotion-best-practices/rules/measuring-text.md +140 -0
- package/skills/craft/remotion-best-practices/rules/parameters.md +109 -0
- package/skills/craft/remotion-best-practices/rules/sequencing.md +144 -0
- package/skills/craft/remotion-best-practices/rules/sfx.md +30 -0
- package/skills/craft/remotion-best-practices/rules/silence-detection.md +73 -0
- package/skills/craft/remotion-best-practices/rules/subtitles.md +36 -0
- package/skills/craft/remotion-best-practices/rules/tailwind.md +11 -0
- package/skills/craft/remotion-best-practices/rules/text-animations.md +20 -0
- package/skills/craft/remotion-best-practices/rules/timing.md +130 -0
- package/skills/craft/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/skills/craft/remotion-best-practices/rules/transitions.md +193 -0
- package/skills/craft/remotion-best-practices/rules/transparent-videos.md +102 -0
- package/skills/craft/remotion-best-practices/rules/trimming.md +51 -0
- package/skills/craft/remotion-best-practices/rules/videos.md +169 -0
- package/skills/craft/remotion-best-practices/rules/voiceover.md +94 -0
- package/skills/craft/supabase-postgres-best-practices/CHANGELOG.md +25 -0
- package/skills/craft/supabase-postgres-best-practices/LICENSE +21 -0
- package/skills/craft/supabase-postgres-best-practices/SKILL.md +69 -0
- package/skills/craft/supabase-postgres-best-practices/references/_contributing.md +166 -0
- package/skills/craft/supabase-postgres-best-practices/references/_sections.md +47 -0
- package/skills/craft/supabase-postgres-best-practices/references/_template.md +34 -0
- package/skills/craft/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/skills/craft/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/skills/craft/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/skills/craft/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/skills/craft/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/skills/craft/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/skills/craft/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/skills/craft/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/skills/craft/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/skills/craft/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/skills/craft/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/skills/craft/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/skills/craft/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/skills/craft/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/skills/craft/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/skills/craft/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/skills/craft/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/skills/craft/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/skills/craft/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/skills/craft/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/skills/craft/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/skills/craft/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/skills/craft/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/skills/craft/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/skills/craft/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/skills/craft/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/skills/craft/uipm-banner-design/LICENSE +21 -0
- package/skills/craft/uipm-banner-design/SKILL.md +201 -0
- package/skills/craft/uipm-banner-design/references/banner-sizes-and-styles.md +129 -0
- package/skills/craft/uipm-brand/LICENSE +21 -0
- package/skills/craft/uipm-brand/SKILL.md +104 -0
- package/skills/craft/uipm-brand/references/approval-checklist.md +184 -0
- package/skills/craft/uipm-brand/references/asset-organization.md +167 -0
- package/skills/craft/uipm-brand/references/brand-guideline-template.md +161 -0
- package/skills/craft/uipm-brand/references/color-palette-management.md +203 -0
- package/skills/craft/uipm-brand/references/consistency-checklist.md +105 -0
- package/skills/craft/uipm-brand/references/logo-usage-rules.md +204 -0
- package/skills/craft/uipm-brand/references/messaging-framework.md +91 -0
- package/skills/craft/uipm-brand/references/typography-specifications.md +265 -0
- package/skills/craft/uipm-brand/references/update.md +128 -0
- package/skills/craft/uipm-brand/references/visual-identity.md +109 -0
- package/skills/craft/uipm-brand/references/voice-framework.md +99 -0
- package/skills/craft/uipm-brand/scripts/extract-colors.cjs +333 -0
- package/skills/craft/uipm-brand/scripts/inject-brand-context.cjs +324 -0
- package/skills/craft/uipm-brand/scripts/sync-brand-to-tokens.cjs +269 -0
- package/skills/craft/uipm-brand/scripts/validate-asset.cjs +361 -0
- package/skills/craft/uipm-brand/templates/brand-guidelines-starter.md +280 -0
- package/skills/craft/uipm-design/LICENSE +21 -0
- package/skills/craft/uipm-design/SKILL.md +305 -0
- package/skills/craft/uipm-design/data/cip/deliverables.csv +51 -0
- package/skills/craft/uipm-design/data/cip/industries.csv +21 -0
- package/skills/craft/uipm-design/data/cip/mockup-contexts.csv +21 -0
- package/skills/craft/uipm-design/data/cip/styles.csv +21 -0
- package/skills/craft/uipm-design/data/icon/styles.csv +16 -0
- package/skills/craft/uipm-design/data/logo/colors.csv +56 -0
- package/skills/craft/uipm-design/data/logo/industries.csv +56 -0
- package/skills/craft/uipm-design/data/logo/styles.csv +56 -0
- package/skills/craft/uipm-design/references/banner-sizes-and-styles.md +129 -0
- package/skills/craft/uipm-design/references/cip-deliverable-guide.md +111 -0
- package/skills/craft/uipm-design/references/cip-design.md +121 -0
- package/skills/craft/uipm-design/references/cip-prompt-engineering.md +94 -0
- package/skills/craft/uipm-design/references/cip-style-guide.md +76 -0
- package/skills/craft/uipm-design/references/design-routing.md +226 -0
- package/skills/craft/uipm-design/references/icon-design.md +122 -0
- package/skills/craft/uipm-design/references/logo-color-psychology.md +113 -0
- package/skills/craft/uipm-design/references/logo-design.md +92 -0
- package/skills/craft/uipm-design/references/logo-prompt-engineering.md +176 -0
- package/skills/craft/uipm-design/references/logo-style-guide.md +129 -0
- package/skills/craft/uipm-design/references/slides-copywriting-formulas.md +92 -0
- package/skills/craft/uipm-design/references/slides-create.md +5 -0
- package/skills/craft/uipm-design/references/slides-html-template.md +374 -0
- package/skills/craft/uipm-design/references/slides-layout-patterns.md +155 -0
- package/skills/craft/uipm-design/references/slides-strategies.md +97 -0
- package/skills/craft/uipm-design/references/slides.md +42 -0
- package/skills/craft/uipm-design/references/social-photos-design.md +353 -0
- package/skills/craft/uipm-design/scripts/cip/core.py +215 -0
- package/skills/craft/uipm-design/scripts/cip/generate.py +484 -0
- package/skills/craft/uipm-design/scripts/cip/render-html.py +424 -0
- package/skills/craft/uipm-design/scripts/cip/search.py +127 -0
- package/skills/craft/uipm-design/scripts/icon/generate.py +487 -0
- package/skills/craft/uipm-design/scripts/logo/core.py +175 -0
- package/skills/craft/uipm-design/scripts/logo/generate.py +362 -0
- package/skills/craft/uipm-design/scripts/logo/search.py +114 -0
- package/skills/craft/uipm-design-system/LICENSE +21 -0
- package/skills/craft/uipm-design-system/SKILL.md +255 -0
- package/skills/craft/uipm-design-system/data/slide-backgrounds.csv +11 -0
- package/skills/craft/uipm-design-system/data/slide-charts.csv +26 -0
- package/skills/craft/uipm-design-system/data/slide-color-logic.csv +14 -0
- package/skills/craft/uipm-design-system/data/slide-copy.csv +26 -0
- package/skills/craft/uipm-design-system/data/slide-layout-logic.csv +16 -0
- package/skills/craft/uipm-design-system/data/slide-layouts.csv +26 -0
- package/skills/craft/uipm-design-system/data/slide-strategies.csv +16 -0
- package/skills/craft/uipm-design-system/data/slide-typography.csv +15 -0
- package/skills/craft/uipm-design-system/references/component-specs.md +236 -0
- package/skills/craft/uipm-design-system/references/component-tokens.md +214 -0
- package/skills/craft/uipm-design-system/references/primitive-tokens.md +199 -0
- package/skills/craft/uipm-design-system/references/semantic-tokens.md +215 -0
- package/skills/craft/uipm-design-system/references/states-and-variants.md +243 -0
- package/skills/craft/uipm-design-system/references/tailwind-integration.md +257 -0
- package/skills/craft/uipm-design-system/references/token-architecture.md +226 -0
- package/skills/craft/uipm-design-system/scripts/embed-tokens.cjs +97 -0
- package/skills/craft/uipm-design-system/scripts/fetch-background.py +317 -0
- package/skills/craft/uipm-design-system/scripts/generate-slide.py +753 -0
- package/skills/craft/uipm-design-system/scripts/generate-tokens.cjs +213 -0
- package/skills/craft/uipm-design-system/scripts/html-token-validator.py +327 -0
- package/skills/craft/uipm-design-system/scripts/search-slides.py +218 -0
- package/skills/craft/uipm-design-system/scripts/slide-token-validator.py +35 -0
- package/skills/craft/uipm-design-system/scripts/slide_search_core.py +453 -0
- package/skills/craft/uipm-design-system/scripts/validate-tokens.cjs +254 -0
- package/skills/craft/uipm-design-system/templates/design-tokens-starter.json +143 -0
- package/skills/craft/uipm-slides/LICENSE +21 -0
- package/skills/craft/uipm-slides/SKILL.md +45 -0
- package/skills/craft/uipm-slides/references/copywriting-formulas.md +92 -0
- package/skills/craft/uipm-slides/references/create.md +5 -0
- package/skills/craft/uipm-slides/references/html-template.md +374 -0
- package/skills/craft/uipm-slides/references/layout-patterns.md +155 -0
- package/skills/craft/uipm-slides/references/slide-strategies.md +97 -0
- package/skills/craft/uipm-ui-ux-pro-max/LICENSE +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/SKILL.md +678 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/_sync_all.py +414 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/app-interface.csv +31 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/colors.csv +162 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/design.csv +1776 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/draft.csv +1779 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/icons.csv +106 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/landing.csv +35 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/products.csv +162 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/styles.csv +85 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/typography.csv +74 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/skills/craft/uipm-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/craft/uipm-ui-ux-pro-max/scripts/core.py +262 -0
- package/skills/craft/uipm-ui-ux-pro-max/scripts/design_system.py +1148 -0
- package/skills/craft/uipm-ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/base/quick-reference.md +297 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/base/skill-content.md +375 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/agent.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/augment.json +18 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/claude.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codebuddy.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codex.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/continue.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/copilot.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/cursor.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/droid.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/gemini.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kilocode.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kiro.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/opencode.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/qoder.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/roocode.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/trae.json +21 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/warp.json +18 -0
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/windsurf.json +21 -0
- package/skills/craft/vercel-optimize/AGENTS.md +48 -0
- package/skills/craft/vercel-optimize/CONTRIBUTING.md +41 -0
- package/skills/craft/vercel-optimize/LICENSE +21 -0
- package/skills/craft/vercel-optimize/README.md +91 -0
- package/skills/craft/vercel-optimize/SKILL.md +325 -0
- package/skills/craft/vercel-optimize/lib/auth-route.mjs +23 -0
- package/skills/craft/vercel-optimize/lib/budget-summary.mjs +208 -0
- package/skills/craft/vercel-optimize/lib/citations.mjs +147 -0
- package/skills/craft/vercel-optimize/lib/cost-coverage.mjs +162 -0
- package/skills/craft/vercel-optimize/lib/dedup-recs.mjs +340 -0
- package/skills/craft/vercel-optimize/lib/deep-dive.mjs +371 -0
- package/skills/craft/vercel-optimize/lib/display-labels.mjs +219 -0
- package/skills/craft/vercel-optimize/lib/extract-claims.mjs +640 -0
- package/skills/craft/vercel-optimize/lib/framework-support.mjs +69 -0
- package/skills/craft/vercel-optimize/lib/gates/build-minutes-fanout.mjs +73 -0
- package/skills/craft/vercel-optimize/lib/gates/cold-start.mjs +72 -0
- package/skills/craft/vercel-optimize/lib/gates/contract.mjs +82 -0
- package/skills/craft/vercel-optimize/lib/gates/cwv-poor.mjs +95 -0
- package/skills/craft/vercel-optimize/lib/gates/external-api-slow.mjs +60 -0
- package/skills/craft/vercel-optimize/lib/gates/hard-gates.mjs +70 -0
- package/skills/craft/vercel-optimize/lib/gates/index.mjs +45 -0
- package/skills/craft/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
- package/skills/craft/vercel-optimize/lib/gates/middleware-heavy.mjs +53 -0
- package/skills/craft/vercel-optimize/lib/gates/observability-events-attribution.mjs +58 -0
- package/skills/craft/vercel-optimize/lib/gates/platform-bot-protection.mjs +123 -0
- package/skills/craft/vercel-optimize/lib/gates/platform-fluid-compute.mjs +94 -0
- package/skills/craft/vercel-optimize/lib/gates/region-misconfig.mjs +71 -0
- package/skills/craft/vercel-optimize/lib/gates/route-errors.mjs +95 -0
- package/skills/craft/vercel-optimize/lib/gates/scanner-driven.mjs +150 -0
- package/skills/craft/vercel-optimize/lib/gates/select-candidates.mjs +137 -0
- package/skills/craft/vercel-optimize/lib/gates/slow-route.mjs +97 -0
- package/skills/craft/vercel-optimize/lib/gates/types.d.ts +38 -0
- package/skills/craft/vercel-optimize/lib/gates/uncached-route.mjs +103 -0
- package/skills/craft/vercel-optimize/lib/gates/usage-spike-triage.mjs +122 -0
- package/skills/craft/vercel-optimize/lib/grade-recommendation.mjs +170 -0
- package/skills/craft/vercel-optimize/lib/impact-label.mjs +128 -0
- package/skills/craft/vercel-optimize/lib/impact-magnitude.mjs +66 -0
- package/skills/craft/vercel-optimize/lib/investigation-brief.mjs +751 -0
- package/skills/craft/vercel-optimize/lib/observation-safety.mjs +217 -0
- package/skills/craft/vercel-optimize/lib/project-facts.mjs +101 -0
- package/skills/craft/vercel-optimize/lib/queries.mjs +333 -0
- package/skills/craft/vercel-optimize/lib/reconcile-candidates.mjs +388 -0
- package/skills/craft/vercel-optimize/lib/render-report.mjs +1065 -0
- package/skills/craft/vercel-optimize/lib/repo-root.mjs +97 -0
- package/skills/craft/vercel-optimize/lib/route-normalize.mjs +224 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +56 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +33 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/count-correct.mjs +53 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +32 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/index.mjs +87 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +37 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/pre-release.mjs +75 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/rate-limit.mjs +73 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +42 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +110 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
- package/skills/craft/vercel-optimize/lib/sanitizers/window-units.mjs +26 -0
- package/skills/craft/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +114 -0
- package/skills/craft/vercel-optimize/lib/scanners/edge-heavy-import.mjs +102 -0
- package/skills/craft/vercel-optimize/lib/scanners/force-dynamic.mjs +39 -0
- package/skills/craft/vercel-optimize/lib/scanners/headers-in-page.mjs +43 -0
- package/skills/craft/vercel-optimize/lib/scanners/index.mjs +35 -0
- package/skills/craft/vercel-optimize/lib/scanners/large-static-asset.mjs +93 -0
- package/skills/craft/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +47 -0
- package/skills/craft/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +53 -0
- package/skills/craft/vercel-optimize/lib/scanners/missing-cache-headers.mjs +97 -0
- package/skills/craft/vercel-optimize/lib/scanners/prisma-include-tree.mjs +39 -0
- package/skills/craft/vercel-optimize/lib/scanners/region-pin-in-config.mjs +89 -0
- package/skills/craft/vercel-optimize/lib/scanners/source-maps-production.mjs +33 -0
- package/skills/craft/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +47 -0
- package/skills/craft/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +136 -0
- package/skills/craft/vercel-optimize/lib/scanners/unoptimized-image.mjs +127 -0
- package/skills/craft/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +112 -0
- package/skills/craft/vercel-optimize/lib/support-topics.mjs +365 -0
- package/skills/craft/vercel-optimize/lib/throttle.mjs +280 -0
- package/skills/craft/vercel-optimize/lib/util.mjs +17 -0
- package/skills/craft/vercel-optimize/lib/vercel.mjs +855 -0
- package/skills/craft/vercel-optimize/lib/verify-claim.mjs +1843 -0
- package/skills/craft/vercel-optimize/lib/workspace-resolver.mjs +552 -0
- package/skills/craft/vercel-optimize/metadata.json +14 -0
- package/skills/craft/vercel-optimize/references/candidates.md +176 -0
- package/skills/craft/vercel-optimize/references/data-collection.md +224 -0
- package/skills/craft/vercel-optimize/references/docs-library.json +683 -0
- package/skills/craft/vercel-optimize/references/doctrine.md +108 -0
- package/skills/craft/vercel-optimize/references/observability-plus.md +109 -0
- package/skills/craft/vercel-optimize/references/playbooks/README.md +57 -0
- package/skills/craft/vercel-optimize/references/playbooks/ai-application.md +32 -0
- package/skills/craft/vercel-optimize/references/playbooks/api-service.md +30 -0
- package/skills/craft/vercel-optimize/references/playbooks/content-site.md +30 -0
- package/skills/craft/vercel-optimize/references/playbooks/ecommerce.md +30 -0
- package/skills/craft/vercel-optimize/references/playbooks/marketing.md +30 -0
- package/skills/craft/vercel-optimize/references/playbooks/saas.md +31 -0
- package/skills/craft/vercel-optimize/references/playbooks/sveltekit.md +75 -0
- package/skills/craft/vercel-optimize/references/recommendations.md +214 -0
- package/skills/craft/vercel-optimize/references/scanner-patterns.md +266 -0
- package/skills/craft/vercel-optimize/references/scoring.md +208 -0
- package/skills/craft/vercel-optimize/references/support-topics/README.md +50 -0
- package/skills/craft/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +32 -0
- package/skills/craft/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +32 -0
- package/skills/craft/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +32 -0
- package/skills/craft/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +33 -0
- package/skills/craft/vercel-optimize/references/support-topics/database-egress-pooling-region.md +32 -0
- package/skills/craft/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +26 -0
- package/skills/craft/vercel-optimize/references/support-topics/fluid-compute-caveats.md +26 -0
- package/skills/craft/vercel-optimize/references/support-topics/function-duration-io-and-after.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/function-invocation-reduction.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/image-optimization-cost-control.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +28 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +33 -0
- package/skills/craft/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +27 -0
- package/skills/craft/vercel-optimize/references/support-topics/post-response-work-waituntil.md +26 -0
- package/skills/craft/vercel-optimize/references/support-topics/route-error-durable-offload.md +33 -0
- package/skills/craft/vercel-optimize/references/support-topics/route-error-runtime-limits.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/usage-spike-triage.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +31 -0
- package/skills/craft/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +30 -0
- package/skills/craft/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +32 -0
- package/skills/craft/vercel-optimize/references/verification.md +102 -0
- package/skills/craft/vercel-optimize/references/voice.md +76 -0
- package/skills/craft/vercel-optimize/scripts/budget-summary.mjs +58 -0
- package/skills/craft/vercel-optimize/scripts/build-docs.mjs +76 -0
- package/skills/craft/vercel-optimize/scripts/check-citations.mjs +91 -0
- package/skills/craft/vercel-optimize/scripts/check-docs-fresh.mjs +100 -0
- package/skills/craft/vercel-optimize/scripts/collect-signals.mjs +638 -0
- package/skills/craft/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +306 -0
- package/skills/craft/vercel-optimize/scripts/deep-dive.mjs +358 -0
- package/skills/craft/vercel-optimize/scripts/gate-investigations.mjs +178 -0
- package/skills/craft/vercel-optimize/scripts/merge-signals.mjs +203 -0
- package/skills/craft/vercel-optimize/scripts/prepare-investigation-brief.mjs +249 -0
- package/skills/craft/vercel-optimize/scripts/reconcile-candidates.mjs +69 -0
- package/skills/craft/vercel-optimize/scripts/render-report.mjs +462 -0
- package/skills/craft/vercel-optimize/scripts/scan-codebase.mjs +361 -0
- package/skills/craft/vercel-optimize/scripts/verify-and-regen.mjs +379 -0
- package/skills/craft/vercel-optimize/scripts/verify-finding.mjs +21 -0
- package/skills/craft/web-design-guidelines/LICENSE +21 -0
- package/skills/craft/web-design-guidelines/SKILL.md +43 -0
- package/skills/craft/zero-to-live/LICENSE +21 -0
- package/skills/craft/zero-to-live/SKILL.md +422 -0
- package/skills/creative/creative-3d-modeling/LICENSE +21 -0
- package/skills/creative/creative-3d-modeling/SKILL.md +70 -0
- package/skills/creative/creative-architecture/LICENSE +21 -0
- package/skills/creative/creative-architecture/SKILL.md +94 -0
- package/skills/creative/creative-design-principles/LICENSE +21 -0
- package/skills/creative/creative-design-principles/SKILL.md +95 -0
- package/skills/creative/creative-fashion-advanced/LICENSE +21 -0
- package/skills/creative/creative-fashion-advanced/SKILL.md +68 -0
- package/skills/creative/creative-fashion-design/LICENSE +21 -0
- package/skills/creative/creative-fashion-design/SKILL.md +66 -0
- package/skills/creative/creative-game-design/LICENSE +21 -0
- package/skills/creative/creative-game-design/SKILL.md +77 -0
- package/skills/creative/creative-industrial-design/LICENSE +21 -0
- package/skills/creative/creative-industrial-design/SKILL.md +57 -0
- package/skills/creative/creative-interior-design/LICENSE +21 -0
- package/skills/creative/creative-interior-design/SKILL.md +59 -0
- package/skills/creative/creative-music-theory/LICENSE +21 -0
- package/skills/creative/creative-music-theory/SKILL.md +98 -0
- package/skills/creative/creative-photography/LICENSE +21 -0
- package/skills/creative/creative-photography/SKILL.md +87 -0
- package/skills/creative/creative-textile-science/LICENSE +21 -0
- package/skills/creative/creative-textile-science/SKILL.md +67 -0
- package/skills/creative/creative-ux/LICENSE +21 -0
- package/skills/creative/creative-ux/SKILL.md +81 -0
- package/skills/creative/creative-video/LICENSE +21 -0
- package/skills/creative/creative-video/SKILL.md +84 -0
- package/skills/creative/creative-writing-craft/LICENSE +21 -0
- package/skills/creative/creative-writing-craft/SKILL.md +91 -0
- package/skills/diagram-maker/SKILL.md +56 -0
- package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
- package/skills/diagram-maker/references/svg-template.md +112 -0
- package/skills/discord/SKILL.md +140 -0
- package/skills/education/edu-adult-learning/LICENSE +21 -0
- package/skills/education/edu-adult-learning/SKILL.md +81 -0
- package/skills/education/edu-africa-multilingual/LICENSE +21 -0
- package/skills/education/edu-africa-multilingual/SKILL.md +55 -0
- package/skills/education/edu-arabic/LICENSE +21 -0
- package/skills/education/edu-arabic/SKILL.md +60 -0
- package/skills/education/edu-australia-nz/LICENSE +21 -0
- package/skills/education/edu-australia-nz/SKILL.md +48 -0
- package/skills/education/edu-china-mandarin/LICENSE +21 -0
- package/skills/education/edu-china-mandarin/SKILL.md +58 -0
- package/skills/education/edu-critical-thinking/LICENSE +21 -0
- package/skills/education/edu-critical-thinking/SKILL.md +86 -0
- package/skills/education/edu-curriculum/LICENSE +21 -0
- package/skills/education/edu-curriculum/SKILL.md +87 -0
- package/skills/education/edu-ed-tech/LICENSE +21 -0
- package/skills/education/edu-ed-tech/SKILL.md +73 -0
- package/skills/education/edu-france/LICENSE +21 -0
- package/skills/education/edu-france/SKILL.md +42 -0
- package/skills/education/edu-germany/LICENSE +21 -0
- package/skills/education/edu-germany/SKILL.md +46 -0
- package/skills/education/edu-india-competitive/LICENSE +21 -0
- package/skills/education/edu-india-competitive/SKILL.md +159 -0
- package/skills/education/edu-india-east/LICENSE +21 -0
- package/skills/education/edu-india-east/SKILL.md +60 -0
- package/skills/education/edu-india-hindi/LICENSE +21 -0
- package/skills/education/edu-india-hindi/SKILL.md +107 -0
- package/skills/education/edu-india-south/LICENSE +21 -0
- package/skills/education/edu-india-south/SKILL.md +64 -0
- package/skills/education/edu-india-west/LICENSE +21 -0
- package/skills/education/edu-india-west/SKILL.md +68 -0
- package/skills/education/edu-indonesia-malay/LICENSE +21 -0
- package/skills/education/edu-indonesia-malay/SKILL.md +57 -0
- package/skills/education/edu-international-ib/LICENSE +21 -0
- package/skills/education/edu-international-ib/SKILL.md +61 -0
- package/skills/education/edu-japan/LICENSE +21 -0
- package/skills/education/edu-japan/SKILL.md +48 -0
- package/skills/education/edu-korea/LICENSE +21 -0
- package/skills/education/edu-korea/SKILL.md +48 -0
- package/skills/education/edu-learning-science/LICENSE +21 -0
- package/skills/education/edu-learning-science/SKILL.md +76 -0
- package/skills/education/edu-portuguese-brazil/LICENSE +21 -0
- package/skills/education/edu-portuguese-brazil/SKILL.md +51 -0
- package/skills/education/edu-russia/LICENSE +21 -0
- package/skills/education/edu-russia/SKILL.md +50 -0
- package/skills/education/edu-spain-latam/LICENSE +21 -0
- package/skills/education/edu-spain-latam/SKILL.md +55 -0
- package/skills/education/edu-special/LICENSE +21 -0
- package/skills/education/edu-special/SKILL.md +76 -0
- package/skills/education/edu-thailand/LICENSE +21 -0
- package/skills/education/edu-thailand/SKILL.md +55 -0
- package/skills/education/edu-turkey/LICENSE +21 -0
- package/skills/education/edu-turkey/SKILL.md +58 -0
- package/skills/education/edu-uk-gcse-alevel/LICENSE +21 -0
- package/skills/education/edu-uk-gcse-alevel/SKILL.md +51 -0
- package/skills/education/edu-usa-graduate/LICENSE +21 -0
- package/skills/education/edu-usa-graduate/SKILL.md +57 -0
- package/skills/education/edu-usa-sat-act/LICENSE +21 -0
- package/skills/education/edu-usa-sat-act/SKILL.md +55 -0
- package/skills/education/edu-vietnam/LICENSE +21 -0
- package/skills/education/edu-vietnam/SKILL.md +53 -0
- package/skills/eightctl/SKILL.md +54 -0
- package/skills/engineering/eng-aerospace/LICENSE +21 -0
- package/skills/engineering/eng-aerospace/SKILL.md +117 -0
- package/skills/engineering/eng-chemical/LICENSE +21 -0
- package/skills/engineering/eng-chemical/SKILL.md +63 -0
- package/skills/engineering/eng-civil/LICENSE +21 -0
- package/skills/engineering/eng-civil/SKILL.md +223 -0
- package/skills/engineering/eng-control-systems/LICENSE +21 -0
- package/skills/engineering/eng-control-systems/SKILL.md +158 -0
- package/skills/engineering/eng-cryogenics/LICENSE +21 -0
- package/skills/engineering/eng-cryogenics/SKILL.md +151 -0
- package/skills/engineering/eng-electrical/LICENSE +21 -0
- package/skills/engineering/eng-electrical/SKILL.md +70 -0
- package/skills/engineering/eng-electronics-embedded/LICENSE +21 -0
- package/skills/engineering/eng-electronics-embedded/SKILL.md +89 -0
- package/skills/engineering/eng-environmental/LICENSE +21 -0
- package/skills/engineering/eng-environmental/SKILL.md +66 -0
- package/skills/engineering/eng-manufacturing/LICENSE +21 -0
- package/skills/engineering/eng-manufacturing/SKILL.md +78 -0
- package/skills/engineering/eng-mechanical/LICENSE +21 -0
- package/skills/engineering/eng-mechanical/SKILL.md +66 -0
- package/skills/engineering/eng-project/LICENSE +21 -0
- package/skills/engineering/eng-project/SKILL.md +72 -0
- package/skills/engineering/eng-propulsion/LICENSE +21 -0
- package/skills/engineering/eng-propulsion/SKILL.md +133 -0
- package/skills/engineering/eng-robotics/LICENSE +21 -0
- package/skills/engineering/eng-robotics/SKILL.md +92 -0
- package/skills/engineering/eng-systems/LICENSE +21 -0
- package/skills/engineering/eng-systems/SKILL.md +81 -0
- package/skills/environment/env-biodiversity/LICENSE +21 -0
- package/skills/environment/env-biodiversity/SKILL.md +66 -0
- package/skills/environment/env-circular-economy/LICENSE +21 -0
- package/skills/environment/env-circular-economy/SKILL.md +71 -0
- package/skills/environment/env-climate-action/LICENSE +21 -0
- package/skills/environment/env-climate-action/SKILL.md +55 -0
- package/skills/environment/env-energy/LICENSE +21 -0
- package/skills/environment/env-energy/SKILL.md +83 -0
- package/skills/environment/env-sustainability-biz/LICENSE +21 -0
- package/skills/environment/env-sustainability-biz/SKILL.md +65 -0
- package/skills/environment/env-water/LICENSE +21 -0
- package/skills/environment/env-water/SKILL.md +67 -0
- package/skills/finance/finance-accounting/LICENSE +21 -0
- package/skills/finance/finance-accounting/SKILL.md +239 -0
- package/skills/finance/finance-banking/LICENSE +21 -0
- package/skills/finance/finance-banking/SKILL.md +54 -0
- package/skills/finance/finance-corporate/LICENSE +21 -0
- package/skills/finance/finance-corporate/SKILL.md +105 -0
- package/skills/finance/finance-crypto/LICENSE +21 -0
- package/skills/finance/finance-crypto/SKILL.md +94 -0
- package/skills/finance/finance-debt-management/LICENSE +21 -0
- package/skills/finance/finance-debt-management/SKILL.md +87 -0
- package/skills/finance/finance-insurance/LICENSE +21 -0
- package/skills/finance/finance-insurance/SKILL.md +91 -0
- package/skills/finance/finance-investing/LICENSE +21 -0
- package/skills/finance/finance-investing/SKILL.md +269 -0
- package/skills/finance/finance-options-derivatives/LICENSE +21 -0
- package/skills/finance/finance-options-derivatives/SKILL.md +68 -0
- package/skills/finance/finance-personal/LICENSE +21 -0
- package/skills/finance/finance-personal/SKILL.md +268 -0
- package/skills/finance/finance-real-estate/LICENSE +21 -0
- package/skills/finance/finance-real-estate/SKILL.md +110 -0
- package/skills/finance/finance-startup/LICENSE +21 -0
- package/skills/finance/finance-startup/SKILL.md +253 -0
- package/skills/finance/finance-tax-planning/LICENSE +21 -0
- package/skills/finance/finance-tax-planning/SKILL.md +89 -0
- package/skills/finance/finance-trading/LICENSE +21 -0
- package/skills/finance/finance-trading/SKILL.md +112 -0
- package/skills/gemini/SKILL.md +51 -0
- package/skills/gh-issues/SKILL.md +216 -0
- package/skills/gifgrep/SKILL.md +89 -0
- package/skills/github/SKILL.md +87 -0
- package/skills/gog/SKILL.md +120 -0
- package/skills/goplaces/SKILL.md +56 -0
- package/skills/health/health-aging/LICENSE +21 -0
- package/skills/health/health-aging/SKILL.md +82 -0
- package/skills/health/health-chronic/LICENSE +21 -0
- package/skills/health/health-chronic/SKILL.md +202 -0
- package/skills/health/health-dental/LICENSE +21 -0
- package/skills/health/health-dental/SKILL.md +41 -0
- package/skills/health/health-eye-care/LICENSE +21 -0
- package/skills/health/health-eye-care/SKILL.md +56 -0
- package/skills/health/health-first-aid/LICENSE +21 -0
- package/skills/health/health-first-aid/SKILL.md +201 -0
- package/skills/health/health-fitness/LICENSE +21 -0
- package/skills/health/health-fitness/SKILL.md +111 -0
- package/skills/health/health-general/LICENSE +21 -0
- package/skills/health/health-general/SKILL.md +277 -0
- package/skills/health/health-mens/LICENSE +21 -0
- package/skills/health/health-mens/SKILL.md +53 -0
- package/skills/health/health-mental/LICENSE +21 -0
- package/skills/health/health-mental/SKILL.md +221 -0
- package/skills/health/health-naturopathy-ayurveda/LICENSE +21 -0
- package/skills/health/health-naturopathy-ayurveda/SKILL.md +60 -0
- package/skills/health/health-nutrition/LICENSE +21 -0
- package/skills/health/health-nutrition/SKILL.md +262 -0
- package/skills/health/health-pediatric/LICENSE +21 -0
- package/skills/health/health-pediatric/SKILL.md +94 -0
- package/skills/health/health-pharmacology/LICENSE +21 -0
- package/skills/health/health-pharmacology/SKILL.md +87 -0
- package/skills/health/health-pregnancy/LICENSE +21 -0
- package/skills/health/health-pregnancy/SKILL.md +71 -0
- package/skills/health/health-skin/LICENSE +21 -0
- package/skills/health/health-skin/SKILL.md +71 -0
- package/skills/health/health-sleep/LICENSE +21 -0
- package/skills/health/health-sleep/SKILL.md +81 -0
- package/skills/health/health-womens/LICENSE +21 -0
- package/skills/health/health-womens/SKILL.md +72 -0
- package/skills/health/health-yoga-wellness/LICENSE +21 -0
- package/skills/health/health-yoga-wellness/SKILL.md +58 -0
- package/skills/healthcare-systems/health-sys-global/LICENSE +21 -0
- package/skills/healthcare-systems/health-sys-global/SKILL.md +69 -0
- package/skills/healthcare-systems/health-sys-management/LICENSE +21 -0
- package/skills/healthcare-systems/health-sys-management/SKILL.md +71 -0
- package/skills/healthcare-systems/health-sys-navigation/LICENSE +21 -0
- package/skills/healthcare-systems/health-sys-navigation/SKILL.md +60 -0
- package/skills/healthcare-systems/health-sys-public/LICENSE +21 -0
- package/skills/healthcare-systems/health-sys-public/SKILL.md +71 -0
- package/skills/healthcheck/SKILL.md +109 -0
- package/skills/himalaya/SKILL.md +84 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/humanities/humanities-history-world/LICENSE +21 -0
- package/skills/humanities/humanities-history-world/SKILL.md +59 -0
- package/skills/humanities/humanities-indian-classical/LICENSE +21 -0
- package/skills/humanities/humanities-indian-classical/SKILL.md +104 -0
- package/skills/humanities/humanities-philosophy/LICENSE +21 -0
- package/skills/humanities/humanities-philosophy/SKILL.md +105 -0
- package/skills/humanities/humanities-world-religions/LICENSE +21 -0
- package/skills/humanities/humanities-world-religions/SKILL.md +67 -0
- package/skills/imsg/SKILL.md +126 -0
- package/skills/industry/industry-construction/LICENSE +21 -0
- package/skills/industry/industry-construction/SKILL.md +81 -0
- package/skills/industry/industry-education-sector/LICENSE +21 -0
- package/skills/industry/industry-education-sector/SKILL.md +49 -0
- package/skills/industry/industry-fashion/LICENSE +21 -0
- package/skills/industry/industry-fashion/SKILL.md +82 -0
- package/skills/industry/industry-food/LICENSE +21 -0
- package/skills/industry/industry-food/SKILL.md +79 -0
- package/skills/industry/industry-government/LICENSE +21 -0
- package/skills/industry/industry-government/SKILL.md +80 -0
- package/skills/industry/industry-hospitality/LICENSE +21 -0
- package/skills/industry/industry-hospitality/SKILL.md +73 -0
- package/skills/industry/industry-insurance-sector/LICENSE +21 -0
- package/skills/industry/industry-insurance-sector/SKILL.md +57 -0
- package/skills/industry/industry-logistics/LICENSE +21 -0
- package/skills/industry/industry-logistics/SKILL.md +80 -0
- package/skills/industry/industry-media/LICENSE +21 -0
- package/skills/industry/industry-media/SKILL.md +66 -0
- package/skills/industry/industry-nonprofit/LICENSE +21 -0
- package/skills/industry/industry-nonprofit/SKILL.md +77 -0
- package/skills/industry/industry-pharma/LICENSE +21 -0
- package/skills/industry/industry-pharma/SKILL.md +69 -0
- package/skills/industry/industry-real-estate/LICENSE +21 -0
- package/skills/industry/industry-real-estate/SKILL.md +61 -0
- package/skills/industry/industry-sports/LICENSE +21 -0
- package/skills/industry/industry-sports/SKILL.md +71 -0
- package/skills/industry/industry-tech-startup/LICENSE +21 -0
- package/skills/industry/industry-tech-startup/SKILL.md +82 -0
- package/skills/internal-comms/LICENSE +21 -0
- package/skills/internal-comms/SKILL.md +38 -0
- package/skills/internal-comms/examples/3p-updates.md +49 -0
- package/skills/internal-comms/examples/company-newsletter.md +76 -0
- package/skills/internal-comms/examples/faq-answers.md +35 -0
- package/skills/internal-comms/examples/general-comms.md +19 -0
- package/skills/legal/legal-business/LICENSE +21 -0
- package/skills/legal/legal-business/SKILL.md +227 -0
- package/skills/legal/legal-consumer/LICENSE +21 -0
- package/skills/legal/legal-consumer/SKILL.md +155 -0
- package/skills/legal/legal-contracts/LICENSE +21 -0
- package/skills/legal/legal-contracts/SKILL.md +268 -0
- package/skills/legal/legal-corporate-governance/LICENSE +21 -0
- package/skills/legal/legal-corporate-governance/SKILL.md +53 -0
- package/skills/legal/legal-employment/LICENSE +21 -0
- package/skills/legal/legal-employment/SKILL.md +291 -0
- package/skills/legal/legal-immigration/LICENSE +21 -0
- package/skills/legal/legal-immigration/SKILL.md +146 -0
- package/skills/legal/legal-international/LICENSE +21 -0
- package/skills/legal/legal-international/SKILL.md +51 -0
- package/skills/legal/legal-ip/LICENSE +21 -0
- package/skills/legal/legal-ip/SKILL.md +264 -0
- package/skills/legal/legal-privacy/LICENSE +21 -0
- package/skills/legal/legal-privacy/SKILL.md +161 -0
- package/skills/legal/legal-real-estate/LICENSE +21 -0
- package/skills/legal/legal-real-estate/SKILL.md +142 -0
- package/skills/legal/legal-startup/LICENSE +21 -0
- package/skills/legal/legal-startup/SKILL.md +182 -0
- package/skills/legal/legal-tax/LICENSE +21 -0
- package/skills/legal/legal-tax/SKILL.md +156 -0
- package/skills/mcp-builder/LICENSE +21 -0
- package/skills/mcp-builder/SKILL.md +257 -0
- package/skills/mcp-builder/reference/evaluation.md +630 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +269 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +980 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +737 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mcporter/SKILL.md +65 -0
- package/skills/meme-maker/SKILL.md +46 -0
- package/skills/meme-maker/references/templates.json +358 -0
- package/skills/meme-maker/scripts/meme.mjs +398 -0
- package/skills/mental-health/mental-health-cbt/LICENSE +21 -0
- package/skills/mental-health/mental-health-cbt/SKILL.md +254 -0
- package/skills/mental-health/psych-addiction/LICENSE +21 -0
- package/skills/mental-health/psych-addiction/SKILL.md +79 -0
- package/skills/mental-health/psych-behavioral-econ/LICENSE +21 -0
- package/skills/mental-health/psych-behavioral-econ/SKILL.md +84 -0
- package/skills/mental-health/psych-child/LICENSE +21 -0
- package/skills/mental-health/psych-child/SKILL.md +84 -0
- package/skills/mental-health/psych-grief/LICENSE +21 -0
- package/skills/mental-health/psych-grief/SKILL.md +85 -0
- package/skills/mental-health/psych-mindfulness/LICENSE +21 -0
- package/skills/mental-health/psych-mindfulness/SKILL.md +71 -0
- package/skills/mental-health/psych-org/LICENSE +21 -0
- package/skills/mental-health/psych-org/SKILL.md +115 -0
- package/skills/mental-health/psych-positive/LICENSE +21 -0
- package/skills/mental-health/psych-positive/SKILL.md +86 -0
- package/skills/mental-health/psych-relationships/LICENSE +21 -0
- package/skills/mental-health/psych-relationships/SKILL.md +100 -0
- package/skills/mental-health/psych-trauma/LICENSE +21 -0
- package/skills/mental-health/psych-trauma/SKILL.md +109 -0
- package/skills/model-usage/SKILL.md +75 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +319 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +42 -0
- package/skills/node-connect/SKILL.md +147 -0
- package/skills/node-inspect-debugger/SKILL.md +88 -0
- package/skills/notion/SKILL.md +154 -0
- package/skills/obsidian/SKILL.md +123 -0
- package/skills/openai-whisper/SKILL.md +42 -0
- package/skills/openai-whisper-api/SKILL.md +75 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
- package/skills/openhue/SKILL.md +116 -0
- package/skills/oracle/SKILL.md +130 -0
- package/skills/ordercli/SKILL.md +82 -0
- package/skills/peekaboo/SKILL.md +217 -0
- package/skills/pyproject.toml +10 -0
- package/skills/python-debugpy/SKILL.md +76 -0
- package/skills/sag/SKILL.md +91 -0
- package/skills/science/sci-astronomy/LICENSE +21 -0
- package/skills/science/sci-astronomy/SKILL.md +80 -0
- package/skills/science/sci-biology/LICENSE +21 -0
- package/skills/science/sci-biology/SKILL.md +74 -0
- package/skills/science/sci-chemistry/LICENSE +21 -0
- package/skills/science/sci-chemistry/SKILL.md +89 -0
- package/skills/science/sci-climate/LICENSE +21 -0
- package/skills/science/sci-climate/SKILL.md +72 -0
- package/skills/science/sci-data-analysis/LICENSE +21 -0
- package/skills/science/sci-data-analysis/SKILL.md +87 -0
- package/skills/science/sci-environmental-science/LICENSE +21 -0
- package/skills/science/sci-environmental-science/SKILL.md +69 -0
- package/skills/science/sci-geology/LICENSE +21 -0
- package/skills/science/sci-geology/SKILL.md +56 -0
- package/skills/science/sci-method/LICENSE +21 -0
- package/skills/science/sci-method/SKILL.md +77 -0
- package/skills/science/sci-neuroscience/LICENSE +21 -0
- package/skills/science/sci-neuroscience/SKILL.md +79 -0
- package/skills/science/sci-physics/LICENSE +21 -0
- package/skills/science/sci-physics/SKILL.md +78 -0
- package/skills/science/sci-research-methods/LICENSE +21 -0
- package/skills/science/sci-research-methods/SKILL.md +83 -0
- package/skills/science/sci-statistics/LICENSE +21 -0
- package/skills/science/sci-statistics/SKILL.md +249 -0
- package/skills/session-logs/SKILL.md +155 -0
- package/skills/sherpa-onnx-tts/SKILL.md +113 -0
- package/skills/skill-creator/SKILL.md +81 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +144 -0
- package/skills/skill-creator/scripts/quick_validate.py +169 -0
- package/skills/skill-creator/scripts/test_init_skill.py +51 -0
- package/skills/skill-creator/scripts/test_package_skill.py +199 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
- package/skills/slack/SKILL.md +82 -0
- package/skills/slack-gif-creator/LICENSE +21 -0
- package/skills/slack-gif-creator/SKILL.md +293 -0
- package/skills/slack-gif-creator/requirements.txt +4 -0
- package/skills/social-sciences/social-anthropology/LICENSE +21 -0
- package/skills/social-sciences/social-anthropology/SKILL.md +62 -0
- package/skills/social-sciences/social-economics/LICENSE +21 -0
- package/skills/social-sciences/social-economics/SKILL.md +88 -0
- package/skills/social-sciences/social-geography/LICENSE +21 -0
- package/skills/social-sciences/social-geography/SKILL.md +61 -0
- package/skills/social-sciences/social-international-dev/LICENSE +21 -0
- package/skills/social-sciences/social-international-dev/SKILL.md +76 -0
- package/skills/social-sciences/social-political-science/LICENSE +21 -0
- package/skills/social-sciences/social-political-science/SKILL.md +70 -0
- package/skills/social-sciences/social-public-policy/LICENSE +21 -0
- package/skills/social-sciences/social-public-policy/SKILL.md +73 -0
- package/skills/social-sciences/social-sociology/LICENSE +21 -0
- package/skills/social-sciences/social-sociology/SKILL.md +78 -0
- package/skills/songsee/SKILL.md +53 -0
- package/skills/sonoscli/SKILL.md +69 -0
- package/skills/spike/SKILL.md +55 -0
- package/skills/spotify-player/SKILL.md +68 -0
- package/skills/summarize/SKILL.md +90 -0
- package/skills/taskflow/SKILL.md +153 -0
- package/skills/taskflow/examples/inbox-triage.lobster +33 -0
- package/skills/taskflow/examples/pr-intake.lobster +32 -0
- package/skills/taskflow-inbox-triage/SKILL.md +123 -0
- package/skills/technical/ai-ethics/LICENSE +21 -0
- package/skills/technical/ai-ethics/SKILL.md +92 -0
- package/skills/technical/ai-product-builder/LICENSE +21 -0
- package/skills/technical/ai-product-builder/SKILL.md +180 -0
- package/skills/technical/analytics-setup/LICENSE +21 -0
- package/skills/technical/analytics-setup/SKILL.md +125 -0
- package/skills/technical/api-builder/LICENSE +21 -0
- package/skills/technical/api-builder/SKILL.md +202 -0
- package/skills/technical/architecture-decisions/LICENSE +21 -0
- package/skills/technical/architecture-decisions/SKILL.md +120 -0
- package/skills/technical/auth-security/LICENSE +21 -0
- package/skills/technical/auth-security/SKILL.md +209 -0
- package/skills/technical/blockchain-web3/LICENSE +21 -0
- package/skills/technical/blockchain-web3/SKILL.md +84 -0
- package/skills/technical/cloud-architecture/LICENSE +21 -0
- package/skills/technical/cloud-architecture/SKILL.md +85 -0
- package/skills/technical/content-platform/LICENSE +21 -0
- package/skills/technical/content-platform/SKILL.md +134 -0
- package/skills/technical/cybersecurity-advanced/LICENSE +21 -0
- package/skills/technical/cybersecurity-advanced/SKILL.md +99 -0
- package/skills/technical/data-engineering/LICENSE +21 -0
- package/skills/technical/data-engineering/SKILL.md +117 -0
- package/skills/technical/database-design/LICENSE +21 -0
- package/skills/technical/database-design/SKILL.md +185 -0
- package/skills/technical/devops-cicd/LICENSE +21 -0
- package/skills/technical/devops-cicd/SKILL.md +181 -0
- package/skills/technical/ecommerce-builder/LICENSE +21 -0
- package/skills/technical/ecommerce-builder/SKILL.md +123 -0
- package/skills/technical/email-marketing/LICENSE +21 -0
- package/skills/technical/email-marketing/SKILL.md +128 -0
- package/skills/technical/fintech-builder/LICENSE +21 -0
- package/skills/technical/fintech-builder/SKILL.md +141 -0
- package/skills/technical/full-stack-web/LICENSE +21 -0
- package/skills/technical/full-stack-web/SKILL.md +173 -0
- package/skills/technical/gdpr-basics/LICENSE +21 -0
- package/skills/technical/gdpr-basics/SKILL.md +145 -0
- package/skills/technical/launch-playbook/LICENSE +21 -0
- package/skills/technical/launch-playbook/SKILL.md +95 -0
- package/skills/technical/marketing-copy/LICENSE +21 -0
- package/skills/technical/marketing-copy/SKILL.md +126 -0
- package/skills/technical/marketplace-builder/LICENSE +21 -0
- package/skills/technical/marketplace-builder/SKILL.md +105 -0
- package/skills/technical/mobile-pwa/LICENSE +21 -0
- package/skills/technical/mobile-pwa/SKILL.md +191 -0
- package/skills/technical/no-code-tools/LICENSE +21 -0
- package/skills/technical/no-code-tools/SKILL.md +80 -0
- package/skills/technical/open-source/LICENSE +21 -0
- package/skills/technical/open-source/SKILL.md +71 -0
- package/skills/technical/performance-optimization/LICENSE +21 -0
- package/skills/technical/performance-optimization/SKILL.md +155 -0
- package/skills/technical/pricing-design/LICENSE +21 -0
- package/skills/technical/pricing-design/SKILL.md +87 -0
- package/skills/technical/product-management/LICENSE +21 -0
- package/skills/technical/product-management/SKILL.md +94 -0
- package/skills/technical/saas-builder/LICENSE +21 -0
- package/skills/technical/saas-builder/SKILL.md +138 -0
- package/skills/technical/scope-estimation/LICENSE +21 -0
- package/skills/technical/scope-estimation/SKILL.md +99 -0
- package/skills/technical/secrets-management/LICENSE +21 -0
- package/skills/technical/secrets-management/SKILL.md +135 -0
- package/skills/technical/seo-technical/LICENSE +21 -0
- package/skills/technical/seo-technical/SKILL.md +136 -0
- package/skills/technical/technical-writing/LICENSE +21 -0
- package/skills/technical/technical-writing/SKILL.md +149 -0
- package/skills/technical/ux-research-tools/LICENSE +21 -0
- package/skills/technical/ux-research-tools/SKILL.md +54 -0
- package/skills/theme-factory/LICENSE +21 -0
- package/skills/theme-factory/SKILL.md +65 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/things-mac/SKILL.md +90 -0
- package/skills/tmux/SKILL.md +95 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trades/trades-agriculture/LICENSE +21 -0
- package/skills/trades/trades-agriculture/SKILL.md +80 -0
- package/skills/trades/trades-automotive/LICENSE +21 -0
- package/skills/trades/trades-automotive/SKILL.md +84 -0
- package/skills/trades/trades-carpentry/LICENSE +21 -0
- package/skills/trades/trades-carpentry/SKILL.md +71 -0
- package/skills/trades/trades-cooking-pro/LICENSE +21 -0
- package/skills/trades/trades-cooking-pro/SKILL.md +90 -0
- package/skills/trades/trades-electrical/LICENSE +21 -0
- package/skills/trades/trades-electrical/SKILL.md +146 -0
- package/skills/trades/trades-hvac/LICENSE +21 -0
- package/skills/trades/trades-hvac/SKILL.md +80 -0
- package/skills/trades/trades-landscaping/LICENSE +21 -0
- package/skills/trades/trades-landscaping/SKILL.md +60 -0
- package/skills/trades/trades-metalworking/LICENSE +21 -0
- package/skills/trades/trades-metalworking/SKILL.md +64 -0
- package/skills/trades/trades-painting/LICENSE +21 -0
- package/skills/trades/trades-painting/SKILL.md +70 -0
- package/skills/trades/trades-plumbing/LICENSE +21 -0
- package/skills/trades/trades-plumbing/SKILL.md +160 -0
- package/skills/trades/trades-welding/LICENSE +21 -0
- package/skills/trades/trades-welding/SKILL.md +82 -0
- package/skills/trello/SKILL.md +112 -0
- package/skills/video-frames/SKILL.md +50 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +49 -0
- package/skills/wacli/SKILL.md +76 -0
- package/skills/weather/SKILL.md +91 -0
- package/skills/web-artifacts-builder/LICENSE +21 -0
- package/skills/web-artifacts-builder/SKILL.md +82 -0
- package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/xurl/SKILL.md +124 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
provider: ORIRO.ai
|
|
3
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
4
|
+
watermark: ORIRO
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
name: taskflow
|
|
7
|
+
description: "Coordinate multi-step detached tasks as one durable TaskFlow job with owner context, state, waits, and child tasks."
|
|
8
|
+
metadata: { "oriro": { "emoji": "🪝" } }
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# TaskFlow
|
|
12
|
+
|
|
13
|
+
Use TaskFlow when a job needs to outlive one prompt or one detached run, but you still want one owner session, one return context, and one place to inspect or resume the work.
|
|
14
|
+
|
|
15
|
+
## When to use it
|
|
16
|
+
|
|
17
|
+
- Multi-step background work with one owner
|
|
18
|
+
- Work that waits on detached ACP or subagent tasks
|
|
19
|
+
- Jobs that may need to emit one clear update back to the owner
|
|
20
|
+
- Jobs that need small persisted state between steps
|
|
21
|
+
- Plugin or tool work that must survive restarts and revision conflicts cleanly
|
|
22
|
+
|
|
23
|
+
## What TaskFlow owns
|
|
24
|
+
|
|
25
|
+
- flow identity
|
|
26
|
+
- owner session and requester origin
|
|
27
|
+
- `currentStep`, `stateJson`, and `waitJson`
|
|
28
|
+
- linked child tasks and their parent flow id
|
|
29
|
+
- finish, fail, cancel, waiting, and blocked state
|
|
30
|
+
- revision tracking for conflict-safe mutations
|
|
31
|
+
|
|
32
|
+
It does **not** own branching or business logic. Put that in Lobster, acpx, or the calling code.
|
|
33
|
+
|
|
34
|
+
## Current runtime shape
|
|
35
|
+
|
|
36
|
+
Canonical plugin/runtime entrypoint:
|
|
37
|
+
|
|
38
|
+
- `api.runtime.tasks.flow`
|
|
39
|
+
- `api.runtime.taskFlow` still exists as an alias, but `api.runtime.tasks.flow` is the canonical shape
|
|
40
|
+
|
|
41
|
+
Binding:
|
|
42
|
+
|
|
43
|
+
- `api.runtime.tasks.flow.fromToolContext(ctx)` when you already have trusted tool context with `sessionKey`
|
|
44
|
+
- `api.runtime.tasks.flow.bindSession({ sessionKey, requesterOrigin })` when your binding layer already resolved the session and delivery context
|
|
45
|
+
|
|
46
|
+
Managed-flow lifecycle:
|
|
47
|
+
|
|
48
|
+
1. `createManaged(...)`
|
|
49
|
+
2. `runTask(...)`
|
|
50
|
+
3. `setWaiting(...)` when waiting on a person or an external system
|
|
51
|
+
4. `resume(...)` when work can continue
|
|
52
|
+
5. `finish(...)` or `fail(...)`
|
|
53
|
+
6. `requestCancel(...)` or `cancel(...)` when the whole job should stop
|
|
54
|
+
|
|
55
|
+
## Design constraints
|
|
56
|
+
|
|
57
|
+
- Use **managed** TaskFlows when your code owns the orchestration.
|
|
58
|
+
- One-task **mirrored** flows are created by core runtime for detached ACP/subagent work; this skill is mainly about managed flows.
|
|
59
|
+
- Treat `stateJson` as the persisted state bag. There is no separate `setFlowOutput` or `appendFlowOutput` API.
|
|
60
|
+
- Every mutating method after creation is revision-checked. Carry forward the latest `flow.revision` after each successful mutation.
|
|
61
|
+
- `runTask(...)` links the child task to the flow. Use it instead of manually creating detached tasks when you want parent orchestration.
|
|
62
|
+
|
|
63
|
+
## Example shape
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);
|
|
67
|
+
|
|
68
|
+
const created = taskFlow.createManaged({
|
|
69
|
+
controllerId: "my-plugin/inbox-triage",
|
|
70
|
+
goal: "triage inbox",
|
|
71
|
+
currentStep: "classify",
|
|
72
|
+
stateJson: {
|
|
73
|
+
businessThreads: [],
|
|
74
|
+
personalItems: [],
|
|
75
|
+
eodSummary: [],
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const classify = taskFlow.runTask({
|
|
80
|
+
flowId: created.flowId,
|
|
81
|
+
runtime: "acp",
|
|
82
|
+
childSessionKey: "agent:main:subagent:classifier",
|
|
83
|
+
runId: "inbox-classify-1",
|
|
84
|
+
task: "Classify inbox messages",
|
|
85
|
+
status: "running",
|
|
86
|
+
startedAt: Date.now(),
|
|
87
|
+
lastEventAt: Date.now(),
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
if (!classify.created) {
|
|
91
|
+
throw new Error(classify.reason);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const waiting = taskFlow.setWaiting({
|
|
95
|
+
flowId: created.flowId,
|
|
96
|
+
expectedRevision: created.revision,
|
|
97
|
+
currentStep: "await_business_reply",
|
|
98
|
+
stateJson: {
|
|
99
|
+
businessThreads: ["slack:thread-1"],
|
|
100
|
+
personalItems: [],
|
|
101
|
+
eodSummary: [],
|
|
102
|
+
},
|
|
103
|
+
waitJson: {
|
|
104
|
+
kind: "reply",
|
|
105
|
+
channel: "slack",
|
|
106
|
+
threadKey: "slack:thread-1",
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
if (!waiting.applied) {
|
|
111
|
+
throw new Error(waiting.code);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const resumed = taskFlow.resume({
|
|
115
|
+
flowId: waiting.flow.flowId,
|
|
116
|
+
expectedRevision: waiting.flow.revision,
|
|
117
|
+
status: "running",
|
|
118
|
+
currentStep: "finalize",
|
|
119
|
+
stateJson: waiting.flow.stateJson,
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
if (!resumed.applied) {
|
|
123
|
+
throw new Error(resumed.code);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
taskFlow.finish({
|
|
127
|
+
flowId: resumed.flow.flowId,
|
|
128
|
+
expectedRevision: resumed.flow.revision,
|
|
129
|
+
stateJson: resumed.flow.stateJson,
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Keep conditionals above the runtime
|
|
134
|
+
|
|
135
|
+
Use the flow runtime for state and task linkage. Keep decisions in the authoring layer:
|
|
136
|
+
|
|
137
|
+
- `business` -> post to Slack and wait
|
|
138
|
+
- `personal` -> notify the owner now
|
|
139
|
+
- `later` -> append to an end-of-day summary bucket
|
|
140
|
+
|
|
141
|
+
## Operational pattern
|
|
142
|
+
|
|
143
|
+
- Store only the minimum state needed to resume.
|
|
144
|
+
- Put human-readable wait reasons in `blockedSummary` or structured wait metadata in `waitJson`.
|
|
145
|
+
- Use `getTaskSummary(flowId)` when the orchestrator needs a compact health view of child work.
|
|
146
|
+
- Use `requestCancel(...)` when a caller wants the flow to stop scheduling immediately.
|
|
147
|
+
- Use `cancel(...)` when you also want active linked child tasks cancelled.
|
|
148
|
+
|
|
149
|
+
## Examples
|
|
150
|
+
|
|
151
|
+
- See `skills/taskflow/examples/inbox-triage.lobster`
|
|
152
|
+
- See `skills/taskflow/examples/pr-intake.lobster`
|
|
153
|
+
- See `skills/taskflow-inbox-triage/SKILL.md` for a concrete routing pattern
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Illustrative Lobster authoring example for a TaskFlow-style inbox triage job.
|
|
2
|
+
# Swap the placeholder commands for your own tools or scripts.
|
|
3
|
+
|
|
4
|
+
name: inbox-triage
|
|
5
|
+
steps:
|
|
6
|
+
- id: fetch
|
|
7
|
+
command: gog.gmail.search --query 'newer_than:1d' --max 20
|
|
8
|
+
|
|
9
|
+
- id: classify
|
|
10
|
+
command: >-
|
|
11
|
+
oriro.invoke --tool llm-task --action json --args-json
|
|
12
|
+
'{"prompt":"Classify each inbox item as business, personal, or later. Return one JSON object per item with route and summary.","thinking":"low","schema":{"type":"object","properties":{"items":{"type":"array"}},"required":["items"],"additionalProperties":false}}'
|
|
13
|
+
stdin: $fetch.stdout
|
|
14
|
+
|
|
15
|
+
- id: post_business
|
|
16
|
+
command: slack-route --bucket business
|
|
17
|
+
stdin: $classify.stdout
|
|
18
|
+
condition: $classify.json.items[0].route == "business"
|
|
19
|
+
|
|
20
|
+
- id: wait_for_business_reply
|
|
21
|
+
command: echo '{"status":"waiting","reason":"slack_reply"}'
|
|
22
|
+
condition: $classify.json.items[0].route == "business"
|
|
23
|
+
|
|
24
|
+
- id: notify_personal
|
|
25
|
+
command: >-
|
|
26
|
+
oriro.invoke --tool message --action send --args-json
|
|
27
|
+
'{"provider":"telegram","to":"owner-thread","content":"Personal inbox item needs attention."}'
|
|
28
|
+
condition: $classify.json.items[0].route == "personal"
|
|
29
|
+
|
|
30
|
+
- id: stash_for_eod
|
|
31
|
+
command: summary-append --bucket eod
|
|
32
|
+
stdin: $classify.stdout
|
|
33
|
+
condition: $classify.json.items[0].route == "later"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Illustrative Lobster authoring example for a TaskFlow-style PR intake lane.
|
|
2
|
+
# Replace the placeholder commands with repo-specific tooling.
|
|
3
|
+
|
|
4
|
+
name: pr-intake
|
|
5
|
+
steps:
|
|
6
|
+
- id: fetch
|
|
7
|
+
command: gh pr list --repo owner/repo --state open --json number,title,body,headRefName
|
|
8
|
+
|
|
9
|
+
- id: classify
|
|
10
|
+
command: >-
|
|
11
|
+
oriro.invoke --tool llm-task --action json --args-json
|
|
12
|
+
'{"prompt":"Classify each PR as close, request_changes, refactor, or maintainer_review. Return intent and recommended next action.","thinking":"low","schema":{"type":"object","properties":{"items":{"type":"array"}},"required":["items"],"additionalProperties":false}}'
|
|
13
|
+
stdin: $fetch.stdout
|
|
14
|
+
|
|
15
|
+
- id: close_low_signal
|
|
16
|
+
command: pr-close-low-signal
|
|
17
|
+
stdin: $classify.stdout
|
|
18
|
+
condition: $classify.json.items[0].nextAction == "close"
|
|
19
|
+
|
|
20
|
+
- id: request_changes
|
|
21
|
+
command: pr-request-changes
|
|
22
|
+
stdin: $classify.stdout
|
|
23
|
+
condition: $classify.json.items[0].nextAction == "request_changes"
|
|
24
|
+
|
|
25
|
+
- id: refactor_branch
|
|
26
|
+
command: pr-refactor-branch
|
|
27
|
+
stdin: $classify.stdout
|
|
28
|
+
condition: $classify.json.items[0].nextAction == "refactor"
|
|
29
|
+
|
|
30
|
+
- id: escalate
|
|
31
|
+
command: echo '{"status":"notify","target":"maintainer"}'
|
|
32
|
+
condition: $classify.json.items[0].nextAction == "maintainer_review"
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
provider: ORIRO.ai
|
|
3
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
4
|
+
watermark: ORIRO
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
name: taskflow-inbox-triage
|
|
7
|
+
description: "Example TaskFlow pattern for inbox triage, intent routing, waiting on replies, and later summaries."
|
|
8
|
+
metadata: { "oriro": { "emoji": "📥" } }
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# TaskFlow inbox triage
|
|
12
|
+
|
|
13
|
+
This is a concrete example of how to think about TaskFlow without turning the core runtime into a DSL.
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Triage inbox items with one owner flow:
|
|
18
|
+
|
|
19
|
+
- business -> post to Slack and wait for reply
|
|
20
|
+
- personal -> notify the owner now
|
|
21
|
+
- everything else -> keep for end-of-day summary
|
|
22
|
+
|
|
23
|
+
## Pattern
|
|
24
|
+
|
|
25
|
+
1. Create one flow for the inbox batch.
|
|
26
|
+
2. Run one detached task to classify new items.
|
|
27
|
+
3. Persist the routing state in `stateJson`.
|
|
28
|
+
4. Move to `waiting` only when an outside reply is required.
|
|
29
|
+
5. Resume the flow when classification or human input completes.
|
|
30
|
+
6. Finish when the batch has been routed.
|
|
31
|
+
|
|
32
|
+
## Suggested `stateJson` shape
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"businessThreads": [],
|
|
37
|
+
"personalItems": [],
|
|
38
|
+
"eodSummary": []
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Suggested `waitJson` when blocked on Slack:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"kind": "reply",
|
|
47
|
+
"channel": "slack",
|
|
48
|
+
"threadKey": "slack:thread-1"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Minimal runtime calls
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);
|
|
56
|
+
|
|
57
|
+
const created = taskFlow.createManaged({
|
|
58
|
+
controllerId: "my-plugin/inbox-triage",
|
|
59
|
+
goal: "triage inbox",
|
|
60
|
+
currentStep: "classify",
|
|
61
|
+
stateJson: {
|
|
62
|
+
businessThreads: [],
|
|
63
|
+
personalItems: [],
|
|
64
|
+
eodSummary: [],
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const child = taskFlow.runTask({
|
|
69
|
+
flowId: created.flowId,
|
|
70
|
+
runtime: "acp",
|
|
71
|
+
childSessionKey: "agent:main:subagent:classifier",
|
|
72
|
+
task: "Classify inbox messages",
|
|
73
|
+
status: "running",
|
|
74
|
+
startedAt: Date.now(),
|
|
75
|
+
lastEventAt: Date.now(),
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
if (!child.created) {
|
|
79
|
+
throw new Error(child.reason);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const waiting = taskFlow.setWaiting({
|
|
83
|
+
flowId: created.flowId,
|
|
84
|
+
expectedRevision: created.revision,
|
|
85
|
+
currentStep: "await_business_reply",
|
|
86
|
+
stateJson: {
|
|
87
|
+
businessThreads: ["slack:thread-1"],
|
|
88
|
+
personalItems: [],
|
|
89
|
+
eodSummary: [],
|
|
90
|
+
},
|
|
91
|
+
waitJson: {
|
|
92
|
+
kind: "reply",
|
|
93
|
+
channel: "slack",
|
|
94
|
+
threadKey: "slack:thread-1",
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
if (!waiting.applied) {
|
|
99
|
+
throw new Error(waiting.code);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const resumed = taskFlow.resume({
|
|
103
|
+
flowId: waiting.flow.flowId,
|
|
104
|
+
expectedRevision: waiting.flow.revision,
|
|
105
|
+
status: "running",
|
|
106
|
+
currentStep: "route_items",
|
|
107
|
+
stateJson: waiting.flow.stateJson,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
if (!resumed.applied) {
|
|
111
|
+
throw new Error(resumed.code);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
taskFlow.finish({
|
|
115
|
+
flowId: resumed.flow.flowId,
|
|
116
|
+
expectedRevision: resumed.flow.revision,
|
|
117
|
+
stateJson: resumed.flow.stateJson,
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Related example
|
|
122
|
+
|
|
123
|
+
- `skills/taskflow/examples/inbox-triage.lobster`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ORIRO.ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
watermark: ORIRO
|
|
3
|
+
name: ai-ethics
|
|
4
|
+
provider: ORIRO.ai
|
|
5
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
6
|
+
description: >
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
AI ethics — bias, fairness, transparency, privacy, safety, responsible AI development, and AI governance.
|
|
11
|
+
|
|
12
|
+
Sources: Technical documentation, public guidelines, industry best practices.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# AI Ethics
|
|
16
|
+
|
|
17
|
+
## Core principles
|
|
18
|
+
|
|
19
|
+
**Fairness:** AI systems should not discriminate based on race, gender, religion, disability, or other protected characteristics.
|
|
20
|
+
**Accountability:** Clear responsibility for AI system behavior. Humans must remain responsible for consequential AI decisions.
|
|
21
|
+
**Transparency:** Users should know when AI is making decisions affecting them and understand how.
|
|
22
|
+
**Privacy:** AI systems must handle personal data in accordance with privacy laws and ethical principles.
|
|
23
|
+
**Safety:** AI systems should behave as intended and avoid harmful outcomes.
|
|
24
|
+
**Human oversight:** High-stakes AI decisions should have meaningful human review.
|
|
25
|
+
|
|
26
|
+
## Bias in AI systems
|
|
27
|
+
|
|
28
|
+
### Types of bias
|
|
29
|
+
|
|
30
|
+
**Training data bias:** Model trained on historical data that reflects historical discrimination. Predicts past patterns → perpetuates them.
|
|
31
|
+
Example: Résumé screening model trained on past hires (mostly white males in tech) → learns to penalize female names, women's colleges.
|
|
32
|
+
|
|
33
|
+
**Measurement bias:** What you measure poorly reflects what you care about. Predictive policing: arrests ≠ crime (over-policed communities have more arrests → model sends more police → circular).
|
|
34
|
+
|
|
35
|
+
**Feedback loops:** Model predictions change the world in ways that reinforce the model's predictions.
|
|
36
|
+
|
|
37
|
+
**Representation bias:** Training data doesn't represent all users. Face recognition performs worse on darker skin tones when trained mostly on lighter skin images.
|
|
38
|
+
|
|
39
|
+
### Testing for fairness
|
|
40
|
+
|
|
41
|
+
**Demographic parity:** Positive prediction rate equal across groups.
|
|
42
|
+
**Equal opportunity:** True positive rate equal across groups (pass rates equal for qualified individuals).
|
|
43
|
+
**Predictive parity:** Precision equal across groups.
|
|
44
|
+
Note: These definitions are mathematically incompatible in most real-world scenarios.
|
|
45
|
+
|
|
46
|
+
**Fairness tools:** IBM AI Fairness 360 (open source), Google What-If Tool, Microsoft Fairlearn.
|
|
47
|
+
|
|
48
|
+
## Privacy in AI
|
|
49
|
+
|
|
50
|
+
**Training data:** Collecting training data must comply with GDPR/CCPA. Consent for specific use.
|
|
51
|
+
**Model memorization:** Large models can memorize and regurgitate training data (including PII). Differential privacy techniques reduce this risk.
|
|
52
|
+
**Inference from predictions:** Even anonymized predictions can reveal sensitive information through inference.
|
|
53
|
+
**Right to explanation (GDPR Article 22):** Automated decisions with significant effects on individuals → right to explanation and human review.
|
|
54
|
+
|
|
55
|
+
## Explainability / Interpretability
|
|
56
|
+
|
|
57
|
+
**Interpretable models:** Linear regression, decision trees — you can understand why they predict what they predict.
|
|
58
|
+
**Black-box models:** Deep learning, large ensembles — high performance but opaque.
|
|
59
|
+
**Post-hoc explanation tools:** LIME, SHAP — explain individual predictions from any model.
|
|
60
|
+
**When required:** High-stakes decisions (credit, hiring, bail, medical), regulatory compliance, debugging biased behavior.
|
|
61
|
+
|
|
62
|
+
## Responsible AI development
|
|
63
|
+
|
|
64
|
+
### Technical practices
|
|
65
|
+
|
|
66
|
+
- Curate training data carefully. Audit for representation.
|
|
67
|
+
- Evaluate model performance across demographic subgroups, not just overall.
|
|
68
|
+
- Test for adversarial inputs.
|
|
69
|
+
- Monitor production for distribution shift and bias drift.
|
|
70
|
+
- Document model cards (model capabilities, limitations, intended use, out-of-scope uses, evaluation results).
|
|
71
|
+
|
|
72
|
+
### Process practices
|
|
73
|
+
|
|
74
|
+
- Diverse development teams (different perspectives catch more problems).
|
|
75
|
+
- Ethical review before deployment for high-stakes applications.
|
|
76
|
+
- User research with affected communities.
|
|
77
|
+
- Incident response plan for when model causes harm.
|
|
78
|
+
- Ongoing monitoring, not just pre-deployment evaluation.
|
|
79
|
+
|
|
80
|
+
## AI safety
|
|
81
|
+
|
|
82
|
+
**Alignment:** AI systems pursuing the goals humans actually intend, not proximate goals that fail at scale.
|
|
83
|
+
Classic example: Maximize paperclips → convert all matter to paperclips (Bostrom).
|
|
84
|
+
Real examples: Social media optimizing engagement → optimizes for outrage. Ad systems optimizing clicks → fraud.
|
|
85
|
+
|
|
86
|
+
**Current concerns:**
|
|
87
|
+
Misinformation: Generative AI makes cheap creation of misleading content.
|
|
88
|
+
Deepfakes: Synthetic media eroding trust in authentic media.
|
|
89
|
+
Automation displacement: Economic impacts on workers.
|
|
90
|
+
Dual use: AI capabilities used for both beneficial and harmful purposes.
|
|
91
|
+
|
|
92
|
+
Sources: NIST AI Risk Management Framework (nist.gov/aiRMF — free), EU AI Act (eur-lex.europa.eu — free), Montreal Declaration for Responsible AI (free), ACM FAccT conference papers (many open access), Partnership on AI (partnershiponai.org — free)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ORIRO.ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
watermark: ORIRO
|
|
3
|
+
name: ai-product-builder
|
|
4
|
+
provider: ORIRO.ai
|
|
5
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
6
|
+
description: >
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
AI product development — LLM integration, RAG, prompt engineering, AI UX patterns, streaming, and building with AI APIs.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Sources: Stripe docs, Anthropic docs, Sanity/Contentful docs, industry-specific technical resources.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# AI Product Development
|
|
17
|
+
|
|
18
|
+
## LLM integration fundamentals
|
|
19
|
+
|
|
20
|
+
### Calling the API (Anthropic)
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
24
|
+
|
|
25
|
+
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
|
|
26
|
+
|
|
27
|
+
const response = await client.messages.create({
|
|
28
|
+
model: "claude-opus-4-5", // or claude-sonnet-4-5, claude-haiku-4-5-20251001
|
|
29
|
+
max_tokens: 1024,
|
|
30
|
+
system: "You are a helpful assistant for a financial planning app.",
|
|
31
|
+
messages: [{ role: "user", content: userMessage }],
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const text = response.content[0].type === "text" ? response.content[0].text : "";
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Streaming responses (essential for good UX)
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
// Long AI responses should stream — users see output as it generates
|
|
41
|
+
const stream = await client.messages.create({
|
|
42
|
+
model: 'claude-sonnet-4-5',
|
|
43
|
+
max_tokens: 2048,
|
|
44
|
+
stream: true,
|
|
45
|
+
messages: [{ role: 'user', content: prompt }],
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// In Next.js App Router:
|
|
49
|
+
export async function POST(req: Request) {
|
|
50
|
+
const body = await req.json();
|
|
51
|
+
const encoder = new TextEncoder();
|
|
52
|
+
const stream = new ReadableStream({
|
|
53
|
+
async start(controller) {
|
|
54
|
+
const anthropicStream = client.messages.stream({ ... });
|
|
55
|
+
for await (const event of anthropicStream) {
|
|
56
|
+
if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
|
|
57
|
+
controller.enqueue(encoder.encode(event.delta.text));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
controller.close();
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return new Response(stream, { headers: { 'Content-Type': 'text/plain; charset=utf-8' } });
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## RAG (Retrieval Augmented Generation)
|
|
68
|
+
|
|
69
|
+
### Why RAG
|
|
70
|
+
|
|
71
|
+
LLMs have knowledge cutoffs. RAG = search your own data, inject into context.
|
|
72
|
+
Better than fine-tuning for: changing data, specific documents, proprietary knowledge.
|
|
73
|
+
|
|
74
|
+
### RAG pipeline
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
User query → Embed query → Vector search → Top-k chunks → Augmented prompt → LLM → Answer
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Implementation
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
import OpenAI from "openai"; // or use Anthropic for embeddings
|
|
84
|
+
import { Pinecone } from "@pinecone-database/pinecone";
|
|
85
|
+
|
|
86
|
+
// 1. Embed user query
|
|
87
|
+
const embedding = await openai.embeddings.create({
|
|
88
|
+
model: "text-embedding-3-small",
|
|
89
|
+
input: userQuery,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// 2. Search vector store
|
|
93
|
+
const results = await pinecone.index("knowledge-base").query({
|
|
94
|
+
vector: embedding.data[0].embedding,
|
|
95
|
+
topK: 5,
|
|
96
|
+
includeMetadata: true,
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// 3. Build augmented prompt
|
|
100
|
+
const context = results.matches.map((m) => m.metadata.text).join("\n\n");
|
|
101
|
+
const augmentedPrompt = `
|
|
102
|
+
Context information:
|
|
103
|
+
${context}
|
|
104
|
+
|
|
105
|
+
User question: ${userQuery}
|
|
106
|
+
|
|
107
|
+
Answer based on the context above. If the information isn't in the context, say so.
|
|
108
|
+
`;
|
|
109
|
+
|
|
110
|
+
// 4. Generate with context
|
|
111
|
+
const response = await anthropic.messages.create({
|
|
112
|
+
model: "claude-sonnet-4-5",
|
|
113
|
+
max_tokens: 1024,
|
|
114
|
+
messages: [{ role: "user", content: augmentedPrompt }],
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Tool use (function calling)
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
const tools = [
|
|
122
|
+
{
|
|
123
|
+
name: "get_weather",
|
|
124
|
+
description: "Get current weather for a location",
|
|
125
|
+
input_schema: {
|
|
126
|
+
type: "object",
|
|
127
|
+
properties: {
|
|
128
|
+
location: { type: "string", description: "City name or coordinates" },
|
|
129
|
+
units: { type: "string", enum: ["celsius", "fahrenheit"] },
|
|
130
|
+
},
|
|
131
|
+
required: ["location"],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
|
|
136
|
+
const response = await client.messages.create({
|
|
137
|
+
model: "claude-sonnet-4-5",
|
|
138
|
+
max_tokens: 1024,
|
|
139
|
+
tools,
|
|
140
|
+
messages: [{ role: "user", content: "What's the weather in Paris?" }],
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Check if model wants to use a tool
|
|
144
|
+
if (response.stop_reason === "tool_use") {
|
|
145
|
+
const toolUse = response.content.find((c) => c.type === "tool_use");
|
|
146
|
+
const result = await executeToolCall(toolUse.name, toolUse.input);
|
|
147
|
+
// Continue conversation with tool result
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## AI UX patterns
|
|
152
|
+
|
|
153
|
+
**Streaming text:** Always stream for long responses. Users disengage if they wait.
|
|
154
|
+
**Optimistic UI:** Show user message immediately, wait for AI response.
|
|
155
|
+
**Stop generation:** Provide ability to stop mid-stream.
|
|
156
|
+
**Retry / regenerate:** Always offer re-generation.
|
|
157
|
+
**Citation / sources:** For RAG responses, cite the source documents.
|
|
158
|
+
**Feedback:** Thumbs up/down on responses. Improves model or prompt over time.
|
|
159
|
+
**Guardrails UI:** If request refused, explain why and offer alternatives.
|
|
160
|
+
**Conversation history:** Maintain context across turns. Summarize long conversations.
|
|
161
|
+
**Token awareness:** Show remaining context. Warn when approaching limits.
|
|
162
|
+
|
|
163
|
+
## Prompt engineering
|
|
164
|
+
|
|
165
|
+
**Be specific:** Vague prompts → vague outputs.
|
|
166
|
+
**System prompt:** Set role, behavior, constraints, output format.
|
|
167
|
+
**Few-shot examples:** 2-5 examples of desired input→output.
|
|
168
|
+
**Chain of thought:** "Think step by step" or "Let's reason through this."
|
|
169
|
+
**Output format:** "Respond in JSON", "Use markdown headers", "Maximum 3 bullet points."
|
|
170
|
+
**Role assignment:** "You are an expert [role] who specializes in [domain]."
|
|
171
|
+
|
|
172
|
+
## Cost management
|
|
173
|
+
|
|
174
|
+
Claude Haiku: cheapest for simple tasks. Sonnet: balanced. Opus: most capable.
|
|
175
|
+
Cache common prompts (Anthropic prompt caching).
|
|
176
|
+
Set max_tokens appropriately. Don't over-generate.
|
|
177
|
+
Log and monitor token usage per feature.
|
|
178
|
+
Rate limit users to prevent runaway costs.
|
|
179
|
+
|
|
180
|
+
Sources: Anthropic documentation (docs.anthropic.com — free), Vercel AI SDK (sdk.vercel.ai/docs — free), LangChain documentation (free), Building AI Products by Lenny Rachitsky (Substack)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ORIRO.ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|