@oriro/orirocli 0.1.11 → 0.1.12
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 +53 -53
- package/LICENSE +21 -21
- package/README.md +2 -7
- package/dist/cli.js +402 -40
- package/package.json +64 -64
- package/skills/1password/SKILL.md +118 -118
- package/skills/1password/references/cli-examples.md +29 -29
- package/skills/1password/references/get-started.md +21 -21
- package/skills/21stdev/SKILL.md +64 -64
- package/skills/algorithmic-art/LICENSE +21 -21
- package/skills/algorithmic-art/SKILL.md +446 -446
- package/skills/algorithmic-art/templates/generator_template.js +223 -223
- package/skills/algorithmic-art/templates/viewer.html +598 -598
- package/skills/apple-notes/SKILL.md +81 -81
- package/skills/apple-reminders/SKILL.md +122 -122
- package/skills/bear-notes/SKILL.md +111 -111
- package/skills/blogwatcher/SKILL.md +73 -73
- package/skills/blucli/SKILL.md +51 -51
- package/skills/brand-guidelines/LICENSE +21 -21
- package/skills/brand-guidelines/SKILL.md +76 -76
- package/skills/business/biz-analysis/LICENSE +21 -21
- package/skills/business/biz-analysis/SKILL.md +103 -103
- package/skills/business/biz-corporate-strategy/LICENSE +21 -21
- package/skills/business/biz-corporate-strategy/SKILL.md +76 -76
- package/skills/business/biz-customer-success/LICENSE +21 -21
- package/skills/business/biz-customer-success/SKILL.md +55 -55
- package/skills/business/biz-entrepreneurship/LICENSE +21 -21
- package/skills/business/biz-entrepreneurship/SKILL.md +72 -72
- package/skills/business/biz-hr/LICENSE +21 -21
- package/skills/business/biz-hr/SKILL.md +67 -67
- package/skills/business/biz-international/LICENSE +21 -21
- package/skills/business/biz-international/SKILL.md +51 -51
- package/skills/business/biz-leadership/LICENSE +21 -21
- package/skills/business/biz-leadership/SKILL.md +106 -106
- package/skills/business/biz-marketing-strategy/LICENSE +21 -21
- package/skills/business/biz-marketing-strategy/SKILL.md +119 -119
- package/skills/business/biz-negotiation/LICENSE +21 -21
- package/skills/business/biz-negotiation/SKILL.md +152 -152
- package/skills/business/biz-operations/LICENSE +21 -21
- package/skills/business/biz-operations/SKILL.md +74 -74
- package/skills/business/biz-project/LICENSE +21 -21
- package/skills/business/biz-project/SKILL.md +203 -203
- package/skills/business/biz-risk/LICENSE +21 -21
- package/skills/business/biz-risk/SKILL.md +85 -85
- package/skills/business/biz-sales/LICENSE +21 -21
- package/skills/business/biz-sales/SKILL.md +92 -92
- package/skills/business/biz-startup-ops/LICENSE +21 -21
- package/skills/business/biz-startup-ops/SKILL.md +70 -70
- package/skills/business/biz-strategy/LICENSE +21 -21
- package/skills/business/biz-strategy/SKILL.md +233 -233
- package/skills/business/biz-supply-chain-advanced/LICENSE +21 -21
- package/skills/business/biz-supply-chain-advanced/SKILL.md +68 -68
- package/skills/business/fin-chartered-exams/LICENSE +21 -21
- package/skills/business/fin-chartered-exams/SKILL.md +69 -69
- package/skills/camsnap/SKILL.md +49 -49
- package/skills/canvas/SKILL.md +82 -82
- package/skills/canvas-design/LICENSE +21 -21
- package/skills/canvas-design/SKILL.md +140 -140
- package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -94
- package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -93
- package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -93
- package/skills/coding-agent/SKILL.md +146 -146
- package/skills/communication/comm-business-writing/LICENSE +21 -21
- package/skills/communication/comm-business-writing/SKILL.md +67 -67
- package/skills/communication/comm-cross-cultural/LICENSE +21 -21
- package/skills/communication/comm-cross-cultural/SKILL.md +88 -88
- package/skills/communication/comm-journalism/LICENSE +21 -21
- package/skills/communication/comm-journalism/SKILL.md +81 -81
- package/skills/communication/comm-linguistics/LICENSE +21 -21
- package/skills/communication/comm-linguistics/SKILL.md +82 -82
- package/skills/communication/comm-negotiation/LICENSE +21 -21
- package/skills/communication/comm-negotiation/SKILL.md +120 -120
- package/skills/communication/comm-presentations/LICENSE +21 -21
- package/skills/communication/comm-presentations/SKILL.md +93 -93
- package/skills/communication/comm-public-speaking/LICENSE +21 -21
- package/skills/communication/comm-public-speaking/SKILL.md +68 -68
- package/skills/communication/comm-writing/LICENSE +21 -21
- package/skills/communication/comm-writing/SKILL.md +69 -69
- package/skills/craft/ai-engineering/LICENSE +21 -21
- package/skills/craft/ai-engineering/SKILL.md +828 -828
- package/skills/craft/app-builder-guide/LICENSE +21 -21
- package/skills/craft/app-builder-guide/SKILL.md +332 -332
- package/skills/craft/become-an-ai-engineer-26/CONTRIBUTING.md +46 -46
- package/skills/craft/become-an-ai-engineer-26/LICENSE +21 -21
- package/skills/craft/become-an-ai-engineer-26/README.md +270 -270
- package/skills/craft/become-an-ai-engineer-26/SKILL.md +667 -667
- package/skills/craft/become-an-ai-engineer-26/community/BUILDS.md +13 -13
- package/skills/craft/become-an-ai-engineer-26/community/DISCUSSIONS.md +8 -8
- package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/README.md +14 -14
- package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/project/TEMPLATE.md +33 -33
- package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/README.md +25 -25
- package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/code/raw_loop.py +126 -126
- package/skills/craft/become-an-ai-engineer-26/phases/phase-2-architecture/README.md +17 -17
- package/skills/craft/become-an-ai-engineer-26/phases/phase-3-harness/README.md +17 -17
- package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/README.md +21 -21
- package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/code/.github/workflows/eval.yml +40 -40
- package/skills/craft/become-an-ai-engineer-26/phases/phase-5-production/README.md +16 -16
- package/skills/craft/become-an-ai-engineer-26/projects/1-mobile-app-slm/README.md +11 -11
- package/skills/craft/become-an-ai-engineer-26/projects/2-self-improving-coder/README.md +11 -11
- package/skills/craft/become-an-ai-engineer-26/projects/3-video-editor-agent/README.md +11 -11
- package/skills/craft/become-an-ai-engineer-26/projects/4-personal-life-os/README.md +12 -12
- package/skills/craft/become-an-ai-engineer-26/projects/5-enterprise-workflow/README.md +12 -12
- package/skills/craft/become-an-ai-engineer-26/references/benchmark-numbers.md +41 -41
- package/skills/craft/become-an-ai-engineer-26/references/mhc-stable-training.md +73 -73
- package/skills/craft/become-an-ai-engineer-26/references/stack-decisions.md +37 -37
- package/skills/craft/become-an-ai-engineer-26/references/yarn-context-extension.md +123 -123
- package/skills/craft/codex-result-handling/LICENSE +21 -21
- package/skills/craft/codex-result-handling/SKILL.md +26 -26
- package/skills/craft/debug-and-build-methodology/LICENSE +21 -21
- package/skills/craft/debug-and-build-methodology/SKILL.md +432 -432
- package/skills/craft/design/LICENSE +21 -21
- package/skills/craft/design/SKILL.md +274 -274
- package/skills/craft/dev/LICENSE +21 -21
- package/skills/craft/dev/SKILL.md +12 -12
- package/skills/craft/dev/release.md +85 -85
- package/skills/craft/dev/roll.md +50 -50
- package/skills/craft/doc-coauthoring/LICENSE +21 -21
- package/skills/craft/doc-coauthoring/SKILL.md +397 -397
- package/skills/craft/focus/LICENSE +21 -21
- package/skills/craft/focus/SKILL.md +432 -432
- package/skills/craft/focus/UPSTREAM_README.md +233 -233
- package/skills/craft/gh/LICENSE +21 -21
- package/skills/craft/gh/SKILL.md +84 -84
- package/skills/craft/gh-skill/LICENSE +21 -21
- package/skills/craft/gh-skill/SKILL.md +121 -121
- package/skills/craft/godmode/LICENSE +21 -21
- package/skills/craft/godmode/SKILL.md +87 -87
- package/skills/craft/godmode/references/android-launch.md +680 -680
- package/skills/craft/godmode/references/data-gcp.md +1038 -1038
- package/skills/craft/godmode/references/expo-eas.md +816 -816
- package/skills/craft/godmode/references/ios-launch.md +734 -734
- package/skills/craft/google-ai-latest/LICENSE +21 -21
- package/skills/craft/google-ai-latest/SKILL.md +682 -682
- package/skills/craft/gpt-5-4-prompting/LICENSE +21 -21
- package/skills/craft/gpt-5-4-prompting/SKILL.md +63 -63
- package/skills/craft/gpt-5-4-prompting/references/codex-prompt-antipatterns.md +101 -101
- package/skills/craft/gpt-5-4-prompting/references/codex-prompt-recipes.md +150 -150
- package/skills/craft/gpt-5-4-prompting/references/prompt-blocks.md +172 -172
- package/skills/craft/grill-me/LICENSE +21 -21
- package/skills/craft/grill-me/SKILL.md +13 -13
- package/skills/craft/idea-to-deploy/LICENSE +21 -21
- package/skills/craft/idea-to-deploy/SKILL.md +292 -292
- package/skills/craft/idea-to-deploy/references/auth-playbook.md +195 -195
- package/skills/craft/idea-to-deploy/references/gcp-deployment.md +268 -268
- package/skills/craft/idea-to-deploy/references/stack-selection.md +117 -117
- package/skills/craft/image-generation-engineer/LICENSE +21 -21
- package/skills/craft/image-generation-engineer/SKILL.md +183 -183
- package/skills/craft/image-generation-engineer/references/architectures.md +260 -260
- package/skills/craft/image-generation-engineer/references/foundations.md +107 -107
- package/skills/craft/image-generation-engineer/references/inference-and-serving.md +253 -253
- package/skills/craft/image-generation-engineer/references/training.md +149 -149
- package/skills/craft/marketing/LICENSE +21 -21
- package/skills/craft/marketing/SKILL.md +1954 -1954
- package/skills/craft/master-architect/LICENSE +21 -21
- package/skills/craft/master-architect/SKILL.md +361 -361
- package/skills/craft/master-architect/references/ai-ml.md +317 -317
- package/skills/craft/master-architect/references/architecture.md +268 -268
- package/skills/craft/master-architect/references/auth-playbook.md +195 -195
- package/skills/craft/master-architect/references/cloud.md +323 -323
- package/skills/craft/master-architect/references/cyber.md +839 -839
- package/skills/craft/master-architect/references/data-eng.md +366 -366
- package/skills/craft/master-architect/references/devops.md +550 -550
- package/skills/craft/master-architect/references/gcp-deployment.md +268 -268
- package/skills/craft/master-architect/references/languages.md +748 -748
- package/skills/craft/master-architect/references/legacy.md +240 -240
- package/skills/craft/master-architect/references/mobile.md +447 -447
- package/skills/craft/master-architect/references/patterns.md +451 -451
- package/skills/craft/master-architect/references/saas-patterns.md +379 -379
- package/skills/craft/master-architect/references/sdlc.md +349 -349
- package/skills/craft/master-architect/references/stack-selection.md +117 -117
- package/skills/craft/oriro-ui-2026/LICENSE +21 -21
- package/skills/craft/oriro-ui-2026/SKILL.md +329 -329
- package/skills/craft/playwright-cli/LICENSE +21 -21
- package/skills/craft/playwright-cli/SKILL.md +393 -393
- package/skills/craft/playwright-cli/references/element-attributes.md +23 -23
- package/skills/craft/playwright-cli/references/playwright-tests.md +39 -39
- package/skills/craft/playwright-cli/references/request-mocking.md +87 -87
- package/skills/craft/playwright-cli/references/running-code.md +240 -240
- package/skills/craft/playwright-cli/references/session-management.md +226 -226
- package/skills/craft/playwright-cli/references/spec-driven-testing.md +312 -312
- package/skills/craft/playwright-cli/references/storage-state.md +275 -275
- package/skills/craft/playwright-cli/references/test-generation.md +134 -134
- package/skills/craft/playwright-cli/references/tracing.md +142 -142
- package/skills/craft/playwright-cli/references/video-recording.md +150 -150
- package/skills/craft/remotion-best-practices/LICENSE +21 -21
- package/skills/craft/remotion-best-practices/SKILL.md +345 -345
- package/skills/craft/remotion-best-practices/rules/3d.md +86 -86
- package/skills/craft/remotion-best-practices/rules/assets/charts-bar-chart.tsx +165 -165
- package/skills/craft/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +89 -89
- package/skills/craft/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +101 -101
- package/skills/craft/remotion-best-practices/rules/audio-visualization.md +195 -195
- package/skills/craft/remotion-best-practices/rules/audio.md +167 -167
- package/skills/craft/remotion-best-practices/rules/calculate-metadata.md +118 -118
- package/skills/craft/remotion-best-practices/rules/compositions.md +132 -132
- package/skills/craft/remotion-best-practices/rules/display-captions.md +176 -176
- package/skills/craft/remotion-best-practices/rules/ffmpeg.md +34 -34
- package/skills/craft/remotion-best-practices/rules/get-audio-duration.md +58 -58
- package/skills/craft/remotion-best-practices/rules/get-video-dimensions.md +68 -68
- package/skills/craft/remotion-best-practices/rules/get-video-duration.md +60 -60
- package/skills/craft/remotion-best-practices/rules/gifs.md +135 -135
- package/skills/craft/remotion-best-practices/rules/google-fonts.md +72 -72
- package/skills/craft/remotion-best-practices/rules/html-in-canvas.md +122 -122
- package/skills/craft/remotion-best-practices/rules/images.md +67 -67
- package/skills/craft/remotion-best-practices/rules/import-srt-captions.md +69 -69
- package/skills/craft/remotion-best-practices/rules/light-leaks.md +73 -73
- package/skills/craft/remotion-best-practices/rules/local-fonts.md +65 -65
- package/skills/craft/remotion-best-practices/rules/lottie.md +67 -67
- package/skills/craft/remotion-best-practices/rules/maplibre.md +441 -441
- package/skills/craft/remotion-best-practices/rules/measuring-dom-nodes.md +34 -34
- package/skills/craft/remotion-best-practices/rules/measuring-text.md +140 -140
- package/skills/craft/remotion-best-practices/rules/parameters.md +109 -109
- package/skills/craft/remotion-best-practices/rules/sequencing.md +144 -144
- package/skills/craft/remotion-best-practices/rules/sfx.md +30 -30
- package/skills/craft/remotion-best-practices/rules/silence-detection.md +73 -73
- package/skills/craft/remotion-best-practices/rules/subtitles.md +36 -36
- package/skills/craft/remotion-best-practices/rules/tailwind.md +11 -11
- package/skills/craft/remotion-best-practices/rules/text-animations.md +20 -20
- package/skills/craft/remotion-best-practices/rules/timing.md +130 -130
- package/skills/craft/remotion-best-practices/rules/transcribe-captions.md +70 -70
- package/skills/craft/remotion-best-practices/rules/transitions.md +193 -193
- package/skills/craft/remotion-best-practices/rules/transparent-videos.md +102 -102
- package/skills/craft/remotion-best-practices/rules/trimming.md +51 -51
- package/skills/craft/remotion-best-practices/rules/videos.md +169 -169
- package/skills/craft/remotion-best-practices/rules/voiceover.md +94 -94
- package/skills/craft/supabase-postgres-best-practices/CHANGELOG.md +25 -25
- package/skills/craft/supabase-postgres-best-practices/LICENSE +21 -21
- package/skills/craft/supabase-postgres-best-practices/SKILL.md +69 -69
- package/skills/craft/supabase-postgres-best-practices/references/_contributing.md +166 -166
- package/skills/craft/supabase-postgres-best-practices/references/_sections.md +47 -47
- package/skills/craft/supabase-postgres-best-practices/references/_template.md +34 -34
- package/skills/craft/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -55
- package/skills/craft/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -49
- package/skills/craft/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -46
- package/skills/craft/supabase-postgres-best-practices/references/conn-limits.md +44 -44
- package/skills/craft/supabase-postgres-best-practices/references/conn-pooling.md +41 -41
- package/skills/craft/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -46
- package/skills/craft/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -54
- package/skills/craft/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -53
- package/skills/craft/supabase-postgres-best-practices/references/data-pagination.md +50 -50
- package/skills/craft/supabase-postgres-best-practices/references/data-upsert.md +50 -50
- package/skills/craft/supabase-postgres-best-practices/references/lock-advisory.md +56 -56
- package/skills/craft/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -68
- package/skills/craft/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -50
- package/skills/craft/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -54
- package/skills/craft/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -45
- package/skills/craft/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -55
- package/skills/craft/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -55
- package/skills/craft/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -44
- package/skills/craft/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -40
- package/skills/craft/supabase-postgres-best-practices/references/query-index-types.md +48 -48
- package/skills/craft/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -43
- package/skills/craft/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -45
- package/skills/craft/supabase-postgres-best-practices/references/schema-constraints.md +80 -80
- package/skills/craft/supabase-postgres-best-practices/references/schema-data-types.md +46 -46
- package/skills/craft/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -59
- package/skills/craft/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -55
- package/skills/craft/supabase-postgres-best-practices/references/schema-partitioning.md +55 -55
- package/skills/craft/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -61
- package/skills/craft/supabase-postgres-best-practices/references/security-privileges.md +54 -54
- package/skills/craft/supabase-postgres-best-practices/references/security-rls-basics.md +50 -50
- package/skills/craft/supabase-postgres-best-practices/references/security-rls-performance.md +63 -63
- package/skills/craft/uipm-banner-design/LICENSE +21 -21
- package/skills/craft/uipm-banner-design/SKILL.md +201 -201
- package/skills/craft/uipm-banner-design/references/banner-sizes-and-styles.md +129 -129
- package/skills/craft/uipm-brand/LICENSE +21 -21
- package/skills/craft/uipm-brand/SKILL.md +104 -104
- package/skills/craft/uipm-brand/references/approval-checklist.md +184 -184
- package/skills/craft/uipm-brand/references/asset-organization.md +167 -167
- package/skills/craft/uipm-brand/references/brand-guideline-template.md +161 -161
- package/skills/craft/uipm-brand/references/color-palette-management.md +203 -203
- package/skills/craft/uipm-brand/references/consistency-checklist.md +105 -105
- package/skills/craft/uipm-brand/references/logo-usage-rules.md +204 -204
- package/skills/craft/uipm-brand/references/messaging-framework.md +91 -91
- package/skills/craft/uipm-brand/references/typography-specifications.md +265 -265
- package/skills/craft/uipm-brand/references/update.md +128 -128
- package/skills/craft/uipm-brand/references/visual-identity.md +109 -109
- package/skills/craft/uipm-brand/references/voice-framework.md +99 -99
- package/skills/craft/uipm-brand/scripts/extract-colors.cjs +333 -333
- package/skills/craft/uipm-brand/scripts/inject-brand-context.cjs +324 -324
- package/skills/craft/uipm-brand/scripts/sync-brand-to-tokens.cjs +269 -269
- package/skills/craft/uipm-brand/scripts/validate-asset.cjs +361 -361
- package/skills/craft/uipm-brand/templates/brand-guidelines-starter.md +280 -280
- package/skills/craft/uipm-design/LICENSE +21 -21
- package/skills/craft/uipm-design/SKILL.md +305 -305
- package/skills/craft/uipm-design/data/cip/deliverables.csv +50 -50
- package/skills/craft/uipm-design/data/cip/industries.csv +20 -20
- package/skills/craft/uipm-design/data/cip/mockup-contexts.csv +20 -20
- package/skills/craft/uipm-design/data/cip/styles.csv +20 -20
- package/skills/craft/uipm-design/data/icon/styles.csv +16 -16
- package/skills/craft/uipm-design/data/logo/colors.csv +56 -56
- package/skills/craft/uipm-design/data/logo/industries.csv +56 -56
- package/skills/craft/uipm-design/data/logo/styles.csv +56 -56
- package/skills/craft/uipm-design/references/banner-sizes-and-styles.md +129 -129
- package/skills/craft/uipm-design/references/cip-deliverable-guide.md +111 -111
- package/skills/craft/uipm-design/references/cip-design.md +121 -121
- package/skills/craft/uipm-design/references/cip-prompt-engineering.md +94 -94
- package/skills/craft/uipm-design/references/cip-style-guide.md +76 -76
- package/skills/craft/uipm-design/references/design-routing.md +226 -226
- package/skills/craft/uipm-design/references/icon-design.md +122 -122
- package/skills/craft/uipm-design/references/logo-color-psychology.md +113 -113
- package/skills/craft/uipm-design/references/logo-design.md +92 -92
- package/skills/craft/uipm-design/references/logo-prompt-engineering.md +176 -176
- package/skills/craft/uipm-design/references/logo-style-guide.md +129 -129
- package/skills/craft/uipm-design/references/slides-copywriting-formulas.md +92 -92
- package/skills/craft/uipm-design/references/slides-create.md +5 -5
- package/skills/craft/uipm-design/references/slides-html-template.md +374 -374
- package/skills/craft/uipm-design/references/slides-layout-patterns.md +155 -155
- package/skills/craft/uipm-design/references/slides-strategies.md +97 -97
- package/skills/craft/uipm-design/references/slides.md +42 -42
- package/skills/craft/uipm-design/references/social-photos-design.md +353 -353
- package/skills/craft/uipm-design/scripts/cip/core.py +215 -215
- package/skills/craft/uipm-design/scripts/cip/generate.py +484 -484
- package/skills/craft/uipm-design/scripts/cip/render-html.py +424 -424
- package/skills/craft/uipm-design/scripts/cip/search.py +127 -127
- package/skills/craft/uipm-design/scripts/icon/generate.py +487 -487
- package/skills/craft/uipm-design/scripts/logo/core.py +175 -175
- package/skills/craft/uipm-design/scripts/logo/generate.py +362 -362
- package/skills/craft/uipm-design/scripts/logo/search.py +114 -114
- package/skills/craft/uipm-design-system/LICENSE +21 -21
- package/skills/craft/uipm-design-system/SKILL.md +255 -255
- package/skills/craft/uipm-design-system/data/slide-backgrounds.csv +11 -11
- package/skills/craft/uipm-design-system/data/slide-charts.csv +26 -26
- package/skills/craft/uipm-design-system/data/slide-color-logic.csv +14 -14
- package/skills/craft/uipm-design-system/data/slide-copy.csv +26 -26
- package/skills/craft/uipm-design-system/data/slide-layout-logic.csv +16 -16
- package/skills/craft/uipm-design-system/data/slide-layouts.csv +26 -26
- package/skills/craft/uipm-design-system/data/slide-strategies.csv +16 -16
- package/skills/craft/uipm-design-system/data/slide-typography.csv +15 -15
- package/skills/craft/uipm-design-system/references/component-specs.md +236 -236
- package/skills/craft/uipm-design-system/references/component-tokens.md +214 -214
- package/skills/craft/uipm-design-system/references/primitive-tokens.md +199 -199
- package/skills/craft/uipm-design-system/references/semantic-tokens.md +215 -215
- package/skills/craft/uipm-design-system/references/states-and-variants.md +243 -243
- package/skills/craft/uipm-design-system/references/tailwind-integration.md +257 -257
- package/skills/craft/uipm-design-system/references/token-architecture.md +226 -226
- package/skills/craft/uipm-design-system/scripts/embed-tokens.cjs +97 -97
- package/skills/craft/uipm-design-system/scripts/fetch-background.py +317 -317
- package/skills/craft/uipm-design-system/scripts/generate-slide.py +753 -753
- package/skills/craft/uipm-design-system/scripts/generate-tokens.cjs +213 -213
- package/skills/craft/uipm-design-system/scripts/html-token-validator.py +327 -327
- package/skills/craft/uipm-design-system/scripts/search-slides.py +218 -218
- package/skills/craft/uipm-design-system/scripts/slide-token-validator.py +35 -35
- package/skills/craft/uipm-design-system/scripts/slide_search_core.py +453 -453
- package/skills/craft/uipm-design-system/scripts/validate-tokens.cjs +254 -254
- package/skills/craft/uipm-design-system/templates/design-tokens-starter.json +143 -143
- package/skills/craft/uipm-slides/LICENSE +21 -21
- package/skills/craft/uipm-slides/SKILL.md +45 -45
- package/skills/craft/uipm-slides/references/copywriting-formulas.md +92 -92
- package/skills/craft/uipm-slides/references/create.md +5 -5
- package/skills/craft/uipm-slides/references/html-template.md +374 -374
- package/skills/craft/uipm-slides/references/layout-patterns.md +155 -155
- package/skills/craft/uipm-slides/references/slide-strategies.md +97 -97
- package/skills/craft/uipm-ui-ux-pro-max/LICENSE +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/SKILL.md +678 -678
- package/skills/craft/uipm-ui-ux-pro-max/data/_sync_all.py +414 -414
- package/skills/craft/uipm-ui-ux-pro-max/data/app-interface.csv +30 -30
- package/skills/craft/uipm-ui-ux-pro-max/data/charts.csv +26 -26
- package/skills/craft/uipm-ui-ux-pro-max/data/colors.csv +161 -161
- package/skills/craft/uipm-ui-ux-pro-max/data/design.csv +1775 -1775
- package/skills/craft/uipm-ui-ux-pro-max/data/draft.csv +1778 -1778
- package/skills/craft/uipm-ui-ux-pro-max/data/google-fonts.csv +1924 -1924
- package/skills/craft/uipm-ui-ux-pro-max/data/icons.csv +105 -105
- package/skills/craft/uipm-ui-ux-pro-max/data/landing.csv +35 -35
- package/skills/craft/uipm-ui-ux-pro-max/data/products.csv +162 -162
- package/skills/craft/uipm-ui-ux-pro-max/data/react-performance.csv +45 -45
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/angular.csv +51 -51
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/laravel.csv +51 -51
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/threejs.csv +54 -54
- package/skills/craft/uipm-ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/skills/craft/uipm-ui-ux-pro-max/data/styles.csv +85 -85
- package/skills/craft/uipm-ui-ux-pro-max/data/typography.csv +74 -74
- package/skills/craft/uipm-ui-ux-pro-max/data/ui-reasoning.csv +162 -162
- package/skills/craft/uipm-ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/skills/craft/uipm-ui-ux-pro-max/scripts/core.py +262 -262
- package/skills/craft/uipm-ui-ux-pro-max/scripts/design_system.py +1148 -1148
- package/skills/craft/uipm-ui-ux-pro-max/scripts/search.py +114 -114
- package/skills/craft/uipm-ui-ux-pro-max/templates/base/quick-reference.md +297 -297
- package/skills/craft/uipm-ui-ux-pro-max/templates/base/skill-content.md +375 -375
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/agent.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/augment.json +18 -18
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/claude.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codebuddy.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codex.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/continue.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/copilot.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/cursor.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/droid.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/gemini.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kilocode.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kiro.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/opencode.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/qoder.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/roocode.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/trae.json +21 -21
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/warp.json +18 -18
- package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/windsurf.json +21 -21
- package/skills/craft/vercel-optimize/AGENTS.md +48 -48
- package/skills/craft/vercel-optimize/CONTRIBUTING.md +41 -41
- package/skills/craft/vercel-optimize/LICENSE +21 -21
- package/skills/craft/vercel-optimize/README.md +91 -91
- package/skills/craft/vercel-optimize/SKILL.md +325 -325
- package/skills/craft/vercel-optimize/lib/auth-route.mjs +23 -23
- package/skills/craft/vercel-optimize/lib/budget-summary.mjs +208 -208
- package/skills/craft/vercel-optimize/lib/citations.mjs +147 -147
- package/skills/craft/vercel-optimize/lib/cost-coverage.mjs +162 -162
- package/skills/craft/vercel-optimize/lib/dedup-recs.mjs +340 -340
- package/skills/craft/vercel-optimize/lib/deep-dive.mjs +371 -371
- package/skills/craft/vercel-optimize/lib/display-labels.mjs +219 -219
- package/skills/craft/vercel-optimize/lib/extract-claims.mjs +640 -640
- package/skills/craft/vercel-optimize/lib/framework-support.mjs +69 -69
- package/skills/craft/vercel-optimize/lib/gates/build-minutes-fanout.mjs +73 -73
- package/skills/craft/vercel-optimize/lib/gates/cold-start.mjs +72 -72
- package/skills/craft/vercel-optimize/lib/gates/contract.mjs +82 -82
- package/skills/craft/vercel-optimize/lib/gates/cwv-poor.mjs +95 -95
- package/skills/craft/vercel-optimize/lib/gates/external-api-slow.mjs +60 -60
- package/skills/craft/vercel-optimize/lib/gates/hard-gates.mjs +70 -70
- package/skills/craft/vercel-optimize/lib/gates/index.mjs +45 -45
- package/skills/craft/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -62
- package/skills/craft/vercel-optimize/lib/gates/middleware-heavy.mjs +53 -53
- package/skills/craft/vercel-optimize/lib/gates/observability-events-attribution.mjs +58 -58
- package/skills/craft/vercel-optimize/lib/gates/platform-bot-protection.mjs +123 -123
- package/skills/craft/vercel-optimize/lib/gates/platform-fluid-compute.mjs +94 -94
- package/skills/craft/vercel-optimize/lib/gates/region-misconfig.mjs +71 -71
- package/skills/craft/vercel-optimize/lib/gates/route-errors.mjs +95 -95
- package/skills/craft/vercel-optimize/lib/gates/scanner-driven.mjs +150 -150
- package/skills/craft/vercel-optimize/lib/gates/select-candidates.mjs +137 -137
- package/skills/craft/vercel-optimize/lib/gates/slow-route.mjs +97 -97
- package/skills/craft/vercel-optimize/lib/gates/types.d.ts +38 -38
- package/skills/craft/vercel-optimize/lib/gates/uncached-route.mjs +103 -103
- package/skills/craft/vercel-optimize/lib/gates/usage-spike-triage.mjs +122 -122
- package/skills/craft/vercel-optimize/lib/grade-recommendation.mjs +170 -170
- package/skills/craft/vercel-optimize/lib/impact-label.mjs +128 -128
- package/skills/craft/vercel-optimize/lib/impact-magnitude.mjs +66 -66
- package/skills/craft/vercel-optimize/lib/investigation-brief.mjs +751 -751
- package/skills/craft/vercel-optimize/lib/observation-safety.mjs +217 -217
- package/skills/craft/vercel-optimize/lib/project-facts.mjs +101 -101
- package/skills/craft/vercel-optimize/lib/queries.mjs +333 -333
- package/skills/craft/vercel-optimize/lib/reconcile-candidates.mjs +388 -388
- package/skills/craft/vercel-optimize/lib/render-report.mjs +1065 -1065
- package/skills/craft/vercel-optimize/lib/repo-root.mjs +97 -97
- package/skills/craft/vercel-optimize/lib/route-normalize.mjs +224 -224
- package/skills/craft/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +56 -56
- package/skills/craft/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +33 -33
- package/skills/craft/vercel-optimize/lib/sanitizers/count-correct.mjs +53 -53
- package/skills/craft/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +32 -32
- package/skills/craft/vercel-optimize/lib/sanitizers/index.mjs +87 -87
- package/skills/craft/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +37 -37
- package/skills/craft/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -16
- package/skills/craft/vercel-optimize/lib/sanitizers/pre-release.mjs +75 -75
- package/skills/craft/vercel-optimize/lib/sanitizers/rate-limit.mjs +73 -73
- package/skills/craft/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +42 -42
- package/skills/craft/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +110 -110
- package/skills/craft/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -37
- package/skills/craft/vercel-optimize/lib/sanitizers/window-units.mjs +26 -26
- package/skills/craft/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +114 -114
- package/skills/craft/vercel-optimize/lib/scanners/edge-heavy-import.mjs +102 -102
- package/skills/craft/vercel-optimize/lib/scanners/force-dynamic.mjs +39 -39
- package/skills/craft/vercel-optimize/lib/scanners/headers-in-page.mjs +43 -43
- package/skills/craft/vercel-optimize/lib/scanners/index.mjs +35 -35
- package/skills/craft/vercel-optimize/lib/scanners/large-static-asset.mjs +93 -93
- package/skills/craft/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +47 -47
- package/skills/craft/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +53 -53
- package/skills/craft/vercel-optimize/lib/scanners/missing-cache-headers.mjs +97 -97
- package/skills/craft/vercel-optimize/lib/scanners/prisma-include-tree.mjs +39 -39
- package/skills/craft/vercel-optimize/lib/scanners/region-pin-in-config.mjs +89 -89
- package/skills/craft/vercel-optimize/lib/scanners/source-maps-production.mjs +33 -33
- package/skills/craft/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +47 -47
- package/skills/craft/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +136 -136
- package/skills/craft/vercel-optimize/lib/scanners/unoptimized-image.mjs +127 -127
- package/skills/craft/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +112 -112
- package/skills/craft/vercel-optimize/lib/support-topics.mjs +365 -365
- package/skills/craft/vercel-optimize/lib/throttle.mjs +280 -280
- package/skills/craft/vercel-optimize/lib/util.mjs +17 -17
- package/skills/craft/vercel-optimize/lib/vercel.mjs +855 -855
- package/skills/craft/vercel-optimize/lib/verify-claim.mjs +1843 -1843
- package/skills/craft/vercel-optimize/lib/workspace-resolver.mjs +552 -552
- package/skills/craft/vercel-optimize/metadata.json +14 -14
- package/skills/craft/vercel-optimize/references/candidates.md +176 -176
- package/skills/craft/vercel-optimize/references/data-collection.md +224 -224
- package/skills/craft/vercel-optimize/references/docs-library.json +683 -683
- package/skills/craft/vercel-optimize/references/doctrine.md +108 -108
- package/skills/craft/vercel-optimize/references/observability-plus.md +109 -109
- package/skills/craft/vercel-optimize/references/playbooks/README.md +57 -57
- package/skills/craft/vercel-optimize/references/playbooks/ai-application.md +32 -32
- package/skills/craft/vercel-optimize/references/playbooks/api-service.md +30 -30
- package/skills/craft/vercel-optimize/references/playbooks/content-site.md +30 -30
- package/skills/craft/vercel-optimize/references/playbooks/ecommerce.md +30 -30
- package/skills/craft/vercel-optimize/references/playbooks/marketing.md +30 -30
- package/skills/craft/vercel-optimize/references/playbooks/saas.md +31 -31
- package/skills/craft/vercel-optimize/references/playbooks/sveltekit.md +75 -75
- package/skills/craft/vercel-optimize/references/recommendations.md +214 -214
- package/skills/craft/vercel-optimize/references/scanner-patterns.md +266 -266
- package/skills/craft/vercel-optimize/references/scoring.md +208 -208
- package/skills/craft/vercel-optimize/references/support-topics/README.md +50 -50
- package/skills/craft/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +32 -32
- package/skills/craft/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +32 -32
- package/skills/craft/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +32 -32
- package/skills/craft/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +33 -33
- package/skills/craft/vercel-optimize/references/support-topics/database-egress-pooling-region.md +32 -32
- package/skills/craft/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +26 -26
- package/skills/craft/vercel-optimize/references/support-topics/fluid-compute-caveats.md +26 -26
- package/skills/craft/vercel-optimize/references/support-topics/function-duration-io-and-after.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/function-invocation-reduction.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/image-optimization-cost-control.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +28 -28
- package/skills/craft/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +33 -33
- package/skills/craft/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +27 -27
- package/skills/craft/vercel-optimize/references/support-topics/post-response-work-waituntil.md +26 -26
- package/skills/craft/vercel-optimize/references/support-topics/route-error-durable-offload.md +33 -33
- package/skills/craft/vercel-optimize/references/support-topics/route-error-runtime-limits.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/usage-spike-triage.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +31 -31
- package/skills/craft/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +30 -30
- package/skills/craft/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +32 -32
- package/skills/craft/vercel-optimize/references/verification.md +102 -102
- package/skills/craft/vercel-optimize/references/voice.md +76 -76
- package/skills/craft/vercel-optimize/scripts/budget-summary.mjs +58 -58
- package/skills/craft/vercel-optimize/scripts/build-docs.mjs +76 -76
- package/skills/craft/vercel-optimize/scripts/check-citations.mjs +91 -91
- package/skills/craft/vercel-optimize/scripts/check-docs-fresh.mjs +100 -100
- package/skills/craft/vercel-optimize/scripts/collect-signals.mjs +638 -638
- package/skills/craft/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +306 -306
- package/skills/craft/vercel-optimize/scripts/deep-dive.mjs +358 -358
- package/skills/craft/vercel-optimize/scripts/gate-investigations.mjs +178 -178
- package/skills/craft/vercel-optimize/scripts/merge-signals.mjs +203 -203
- package/skills/craft/vercel-optimize/scripts/prepare-investigation-brief.mjs +249 -249
- package/skills/craft/vercel-optimize/scripts/reconcile-candidates.mjs +69 -69
- package/skills/craft/vercel-optimize/scripts/render-report.mjs +462 -462
- package/skills/craft/vercel-optimize/scripts/scan-codebase.mjs +361 -361
- package/skills/craft/vercel-optimize/scripts/verify-and-regen.mjs +379 -379
- package/skills/craft/vercel-optimize/scripts/verify-finding.mjs +21 -21
- package/skills/craft/web-design-guidelines/LICENSE +21 -21
- package/skills/craft/web-design-guidelines/SKILL.md +43 -43
- package/skills/craft/zero-to-live/LICENSE +21 -21
- package/skills/craft/zero-to-live/SKILL.md +422 -422
- package/skills/creative/creative-3d-modeling/LICENSE +21 -21
- package/skills/creative/creative-3d-modeling/SKILL.md +70 -70
- package/skills/creative/creative-architecture/LICENSE +21 -21
- package/skills/creative/creative-architecture/SKILL.md +94 -94
- package/skills/creative/creative-design-principles/LICENSE +21 -21
- package/skills/creative/creative-design-principles/SKILL.md +95 -95
- package/skills/creative/creative-fashion-advanced/LICENSE +21 -21
- package/skills/creative/creative-fashion-advanced/SKILL.md +68 -68
- package/skills/creative/creative-fashion-design/LICENSE +21 -21
- package/skills/creative/creative-fashion-design/SKILL.md +66 -66
- package/skills/creative/creative-game-design/LICENSE +21 -21
- package/skills/creative/creative-game-design/SKILL.md +77 -77
- package/skills/creative/creative-industrial-design/LICENSE +21 -21
- package/skills/creative/creative-industrial-design/SKILL.md +57 -57
- package/skills/creative/creative-interior-design/LICENSE +21 -21
- package/skills/creative/creative-interior-design/SKILL.md +59 -59
- package/skills/creative/creative-music-theory/LICENSE +21 -21
- package/skills/creative/creative-music-theory/SKILL.md +98 -98
- package/skills/creative/creative-photography/LICENSE +21 -21
- package/skills/creative/creative-photography/SKILL.md +87 -87
- package/skills/creative/creative-textile-science/LICENSE +21 -21
- package/skills/creative/creative-textile-science/SKILL.md +67 -67
- package/skills/creative/creative-ux/LICENSE +21 -21
- package/skills/creative/creative-ux/SKILL.md +81 -81
- package/skills/creative/creative-video/LICENSE +21 -21
- package/skills/creative/creative-video/SKILL.md +84 -84
- package/skills/creative/creative-writing-craft/LICENSE +21 -21
- package/skills/creative/creative-writing-craft/SKILL.md +91 -91
- package/skills/diagram-maker/SKILL.md +56 -56
- package/skills/diagram-maker/references/excalidraw-patterns.md +85 -85
- package/skills/diagram-maker/references/svg-template.md +112 -112
- package/skills/discord/SKILL.md +140 -140
- package/skills/education/edu-adult-learning/LICENSE +21 -21
- package/skills/education/edu-adult-learning/SKILL.md +81 -81
- package/skills/education/edu-africa-multilingual/LICENSE +21 -21
- package/skills/education/edu-africa-multilingual/SKILL.md +55 -55
- package/skills/education/edu-arabic/LICENSE +21 -21
- package/skills/education/edu-arabic/SKILL.md +60 -60
- package/skills/education/edu-australia-nz/LICENSE +21 -21
- package/skills/education/edu-australia-nz/SKILL.md +48 -48
- package/skills/education/edu-china-mandarin/LICENSE +21 -21
- package/skills/education/edu-china-mandarin/SKILL.md +58 -58
- package/skills/education/edu-critical-thinking/LICENSE +21 -21
- package/skills/education/edu-critical-thinking/SKILL.md +86 -86
- package/skills/education/edu-curriculum/LICENSE +21 -21
- package/skills/education/edu-curriculum/SKILL.md +87 -87
- package/skills/education/edu-ed-tech/LICENSE +21 -21
- package/skills/education/edu-ed-tech/SKILL.md +73 -73
- package/skills/education/edu-france/LICENSE +21 -21
- package/skills/education/edu-france/SKILL.md +42 -42
- package/skills/education/edu-germany/LICENSE +21 -21
- package/skills/education/edu-germany/SKILL.md +46 -46
- package/skills/education/edu-india-competitive/LICENSE +21 -21
- package/skills/education/edu-india-competitive/SKILL.md +159 -159
- package/skills/education/edu-india-east/LICENSE +21 -21
- package/skills/education/edu-india-east/SKILL.md +60 -60
- package/skills/education/edu-india-hindi/LICENSE +21 -21
- package/skills/education/edu-india-hindi/SKILL.md +107 -107
- package/skills/education/edu-india-south/LICENSE +21 -21
- package/skills/education/edu-india-south/SKILL.md +64 -64
- package/skills/education/edu-india-west/LICENSE +21 -21
- package/skills/education/edu-india-west/SKILL.md +68 -68
- package/skills/education/edu-indonesia-malay/LICENSE +21 -21
- package/skills/education/edu-indonesia-malay/SKILL.md +57 -57
- package/skills/education/edu-international-ib/LICENSE +21 -21
- package/skills/education/edu-international-ib/SKILL.md +61 -61
- package/skills/education/edu-japan/LICENSE +21 -21
- package/skills/education/edu-japan/SKILL.md +48 -48
- package/skills/education/edu-korea/LICENSE +21 -21
- package/skills/education/edu-korea/SKILL.md +48 -48
- package/skills/education/edu-learning-science/LICENSE +21 -21
- package/skills/education/edu-learning-science/SKILL.md +76 -76
- package/skills/education/edu-portuguese-brazil/LICENSE +21 -21
- package/skills/education/edu-portuguese-brazil/SKILL.md +51 -51
- package/skills/education/edu-russia/LICENSE +21 -21
- package/skills/education/edu-russia/SKILL.md +50 -50
- package/skills/education/edu-spain-latam/LICENSE +21 -21
- package/skills/education/edu-spain-latam/SKILL.md +55 -55
- package/skills/education/edu-special/LICENSE +21 -21
- package/skills/education/edu-special/SKILL.md +76 -76
- package/skills/education/edu-thailand/LICENSE +21 -21
- package/skills/education/edu-thailand/SKILL.md +55 -55
- package/skills/education/edu-turkey/LICENSE +21 -21
- package/skills/education/edu-turkey/SKILL.md +58 -58
- package/skills/education/edu-uk-gcse-alevel/LICENSE +21 -21
- package/skills/education/edu-uk-gcse-alevel/SKILL.md +51 -51
- package/skills/education/edu-usa-graduate/LICENSE +21 -21
- package/skills/education/edu-usa-graduate/SKILL.md +57 -57
- package/skills/education/edu-usa-sat-act/LICENSE +21 -21
- package/skills/education/edu-usa-sat-act/SKILL.md +55 -55
- package/skills/education/edu-vietnam/LICENSE +21 -21
- package/skills/education/edu-vietnam/SKILL.md +53 -53
- package/skills/eightctl/SKILL.md +54 -54
- package/skills/engineering/eng-aerospace/LICENSE +21 -21
- package/skills/engineering/eng-aerospace/SKILL.md +117 -117
- package/skills/engineering/eng-chemical/LICENSE +21 -21
- package/skills/engineering/eng-chemical/SKILL.md +63 -63
- package/skills/engineering/eng-civil/LICENSE +21 -21
- package/skills/engineering/eng-civil/SKILL.md +223 -223
- package/skills/engineering/eng-control-systems/LICENSE +21 -21
- package/skills/engineering/eng-control-systems/SKILL.md +158 -158
- package/skills/engineering/eng-cryogenics/LICENSE +21 -21
- package/skills/engineering/eng-cryogenics/SKILL.md +151 -151
- package/skills/engineering/eng-electrical/LICENSE +21 -21
- package/skills/engineering/eng-electrical/SKILL.md +70 -70
- package/skills/engineering/eng-electronics-embedded/LICENSE +21 -21
- package/skills/engineering/eng-electronics-embedded/SKILL.md +89 -89
- package/skills/engineering/eng-environmental/LICENSE +21 -21
- package/skills/engineering/eng-environmental/SKILL.md +66 -66
- package/skills/engineering/eng-manufacturing/LICENSE +21 -21
- package/skills/engineering/eng-manufacturing/SKILL.md +78 -78
- package/skills/engineering/eng-mechanical/LICENSE +21 -21
- package/skills/engineering/eng-mechanical/SKILL.md +66 -66
- package/skills/engineering/eng-project/LICENSE +21 -21
- package/skills/engineering/eng-project/SKILL.md +72 -72
- package/skills/engineering/eng-propulsion/LICENSE +21 -21
- package/skills/engineering/eng-propulsion/SKILL.md +133 -133
- package/skills/engineering/eng-robotics/LICENSE +21 -21
- package/skills/engineering/eng-robotics/SKILL.md +92 -92
- package/skills/engineering/eng-systems/LICENSE +21 -21
- package/skills/engineering/eng-systems/SKILL.md +81 -81
- package/skills/environment/env-biodiversity/LICENSE +21 -21
- package/skills/environment/env-biodiversity/SKILL.md +66 -66
- package/skills/environment/env-circular-economy/LICENSE +21 -21
- package/skills/environment/env-circular-economy/SKILL.md +71 -71
- package/skills/environment/env-climate-action/LICENSE +21 -21
- package/skills/environment/env-climate-action/SKILL.md +55 -55
- package/skills/environment/env-energy/LICENSE +21 -21
- package/skills/environment/env-energy/SKILL.md +83 -83
- package/skills/environment/env-sustainability-biz/LICENSE +21 -21
- package/skills/environment/env-sustainability-biz/SKILL.md +65 -65
- package/skills/environment/env-water/LICENSE +21 -21
- package/skills/environment/env-water/SKILL.md +67 -67
- package/skills/finance/finance-accounting/LICENSE +21 -21
- package/skills/finance/finance-accounting/SKILL.md +239 -239
- package/skills/finance/finance-banking/LICENSE +21 -21
- package/skills/finance/finance-banking/SKILL.md +54 -54
- package/skills/finance/finance-corporate/LICENSE +21 -21
- package/skills/finance/finance-corporate/SKILL.md +105 -105
- package/skills/finance/finance-crypto/LICENSE +21 -21
- package/skills/finance/finance-crypto/SKILL.md +94 -94
- package/skills/finance/finance-debt-management/LICENSE +21 -21
- package/skills/finance/finance-debt-management/SKILL.md +87 -87
- package/skills/finance/finance-insurance/LICENSE +21 -21
- package/skills/finance/finance-insurance/SKILL.md +91 -91
- package/skills/finance/finance-investing/LICENSE +21 -21
- package/skills/finance/finance-investing/SKILL.md +269 -269
- package/skills/finance/finance-options-derivatives/LICENSE +21 -21
- package/skills/finance/finance-options-derivatives/SKILL.md +68 -68
- package/skills/finance/finance-personal/LICENSE +21 -21
- package/skills/finance/finance-personal/SKILL.md +268 -268
- package/skills/finance/finance-real-estate/LICENSE +21 -21
- package/skills/finance/finance-real-estate/SKILL.md +110 -110
- package/skills/finance/finance-startup/LICENSE +21 -21
- package/skills/finance/finance-startup/SKILL.md +253 -253
- package/skills/finance/finance-tax-planning/LICENSE +21 -21
- package/skills/finance/finance-tax-planning/SKILL.md +89 -89
- package/skills/finance/finance-trading/LICENSE +21 -21
- package/skills/finance/finance-trading/SKILL.md +112 -112
- package/skills/gemini/SKILL.md +51 -51
- package/skills/gh-issues/SKILL.md +216 -216
- package/skills/gifgrep/SKILL.md +89 -89
- package/skills/github/SKILL.md +87 -87
- package/skills/gog/SKILL.md +120 -120
- package/skills/goplaces/SKILL.md +56 -56
- package/skills/health/health-aging/LICENSE +21 -21
- package/skills/health/health-aging/SKILL.md +82 -82
- package/skills/health/health-chronic/LICENSE +21 -21
- package/skills/health/health-chronic/SKILL.md +202 -202
- package/skills/health/health-dental/LICENSE +21 -21
- package/skills/health/health-dental/SKILL.md +41 -41
- package/skills/health/health-eye-care/LICENSE +21 -21
- package/skills/health/health-eye-care/SKILL.md +56 -56
- package/skills/health/health-first-aid/LICENSE +21 -21
- package/skills/health/health-first-aid/SKILL.md +201 -201
- package/skills/health/health-fitness/LICENSE +21 -21
- package/skills/health/health-fitness/SKILL.md +111 -111
- package/skills/health/health-general/LICENSE +21 -21
- package/skills/health/health-general/SKILL.md +277 -277
- package/skills/health/health-mens/LICENSE +21 -21
- package/skills/health/health-mens/SKILL.md +53 -53
- package/skills/health/health-mental/LICENSE +21 -21
- package/skills/health/health-mental/SKILL.md +221 -221
- package/skills/health/health-naturopathy-ayurveda/LICENSE +21 -21
- package/skills/health/health-naturopathy-ayurveda/SKILL.md +60 -60
- package/skills/health/health-nutrition/LICENSE +21 -21
- package/skills/health/health-nutrition/SKILL.md +262 -262
- package/skills/health/health-pediatric/LICENSE +21 -21
- package/skills/health/health-pediatric/SKILL.md +94 -94
- package/skills/health/health-pharmacology/LICENSE +21 -21
- package/skills/health/health-pharmacology/SKILL.md +87 -87
- package/skills/health/health-pregnancy/LICENSE +21 -21
- package/skills/health/health-pregnancy/SKILL.md +71 -71
- package/skills/health/health-skin/LICENSE +21 -21
- package/skills/health/health-skin/SKILL.md +71 -71
- package/skills/health/health-sleep/LICENSE +21 -21
- package/skills/health/health-sleep/SKILL.md +81 -81
- package/skills/health/health-womens/LICENSE +21 -21
- package/skills/health/health-womens/SKILL.md +72 -72
- package/skills/health/health-yoga-wellness/LICENSE +21 -21
- package/skills/health/health-yoga-wellness/SKILL.md +58 -58
- package/skills/healthcare-systems/health-sys-global/LICENSE +21 -21
- package/skills/healthcare-systems/health-sys-global/SKILL.md +69 -69
- package/skills/healthcare-systems/health-sys-management/LICENSE +21 -21
- package/skills/healthcare-systems/health-sys-management/SKILL.md +71 -71
- package/skills/healthcare-systems/health-sys-navigation/LICENSE +21 -21
- package/skills/healthcare-systems/health-sys-navigation/SKILL.md +60 -60
- package/skills/healthcare-systems/health-sys-public/LICENSE +21 -21
- package/skills/healthcare-systems/health-sys-public/SKILL.md +71 -71
- package/skills/healthcheck/SKILL.md +109 -109
- package/skills/himalaya/SKILL.md +84 -84
- package/skills/himalaya/references/configuration.md +184 -184
- package/skills/himalaya/references/message-composition.md +199 -199
- package/skills/humanities/humanities-history-world/LICENSE +21 -21
- package/skills/humanities/humanities-history-world/SKILL.md +59 -59
- package/skills/humanities/humanities-indian-classical/LICENSE +21 -21
- package/skills/humanities/humanities-indian-classical/SKILL.md +104 -104
- package/skills/humanities/humanities-philosophy/LICENSE +21 -21
- package/skills/humanities/humanities-philosophy/SKILL.md +105 -105
- package/skills/humanities/humanities-world-religions/LICENSE +21 -21
- package/skills/humanities/humanities-world-religions/SKILL.md +67 -67
- package/skills/impeccable/SKILL.md +185 -185
- package/skills/imsg/SKILL.md +126 -126
- package/skills/industry/industry-construction/LICENSE +21 -21
- package/skills/industry/industry-construction/SKILL.md +81 -81
- package/skills/industry/industry-education-sector/LICENSE +21 -21
- package/skills/industry/industry-education-sector/SKILL.md +49 -49
- package/skills/industry/industry-fashion/LICENSE +21 -21
- package/skills/industry/industry-fashion/SKILL.md +82 -82
- package/skills/industry/industry-food/LICENSE +21 -21
- package/skills/industry/industry-food/SKILL.md +79 -79
- package/skills/industry/industry-government/LICENSE +21 -21
- package/skills/industry/industry-government/SKILL.md +80 -80
- package/skills/industry/industry-hospitality/LICENSE +21 -21
- package/skills/industry/industry-hospitality/SKILL.md +73 -73
- package/skills/industry/industry-insurance-sector/LICENSE +21 -21
- package/skills/industry/industry-insurance-sector/SKILL.md +57 -57
- package/skills/industry/industry-logistics/LICENSE +21 -21
- package/skills/industry/industry-logistics/SKILL.md +80 -80
- package/skills/industry/industry-media/LICENSE +21 -21
- package/skills/industry/industry-media/SKILL.md +66 -66
- package/skills/industry/industry-nonprofit/LICENSE +21 -21
- package/skills/industry/industry-nonprofit/SKILL.md +77 -77
- package/skills/industry/industry-pharma/LICENSE +21 -21
- package/skills/industry/industry-pharma/SKILL.md +69 -69
- package/skills/industry/industry-real-estate/LICENSE +21 -21
- package/skills/industry/industry-real-estate/SKILL.md +61 -61
- package/skills/industry/industry-sports/LICENSE +21 -21
- package/skills/industry/industry-sports/SKILL.md +71 -71
- package/skills/industry/industry-tech-startup/LICENSE +21 -21
- package/skills/industry/industry-tech-startup/SKILL.md +82 -82
- package/skills/internal-comms/LICENSE +21 -21
- package/skills/internal-comms/SKILL.md +38 -38
- package/skills/internal-comms/examples/3p-updates.md +49 -49
- package/skills/internal-comms/examples/company-newsletter.md +76 -76
- package/skills/internal-comms/examples/faq-answers.md +35 -35
- package/skills/internal-comms/examples/general-comms.md +19 -19
- package/skills/legal/legal-business/LICENSE +21 -21
- package/skills/legal/legal-business/SKILL.md +227 -227
- package/skills/legal/legal-consumer/LICENSE +21 -21
- package/skills/legal/legal-consumer/SKILL.md +155 -155
- package/skills/legal/legal-contracts/LICENSE +21 -21
- package/skills/legal/legal-contracts/SKILL.md +268 -268
- package/skills/legal/legal-corporate-governance/LICENSE +21 -21
- package/skills/legal/legal-corporate-governance/SKILL.md +53 -53
- package/skills/legal/legal-employment/LICENSE +21 -21
- package/skills/legal/legal-employment/SKILL.md +291 -291
- package/skills/legal/legal-immigration/LICENSE +21 -21
- package/skills/legal/legal-immigration/SKILL.md +146 -146
- package/skills/legal/legal-international/LICENSE +21 -21
- package/skills/legal/legal-international/SKILL.md +51 -51
- package/skills/legal/legal-ip/LICENSE +21 -21
- package/skills/legal/legal-ip/SKILL.md +264 -264
- package/skills/legal/legal-privacy/LICENSE +21 -21
- package/skills/legal/legal-privacy/SKILL.md +161 -161
- package/skills/legal/legal-real-estate/LICENSE +21 -21
- package/skills/legal/legal-real-estate/SKILL.md +142 -142
- package/skills/legal/legal-startup/LICENSE +21 -21
- package/skills/legal/legal-startup/SKILL.md +182 -182
- package/skills/legal/legal-tax/LICENSE +21 -21
- package/skills/legal/legal-tax/SKILL.md +156 -156
- package/skills/mcp-builder/LICENSE +21 -21
- package/skills/mcp-builder/SKILL.md +257 -257
- package/skills/mcp-builder/reference/evaluation.md +630 -630
- package/skills/mcp-builder/reference/mcp_best_practices.md +269 -269
- package/skills/mcp-builder/reference/node_mcp_server.md +980 -980
- package/skills/mcp-builder/reference/python_mcp_server.md +737 -737
- package/skills/mcp-builder/scripts/connections.py +151 -151
- package/skills/mcp-builder/scripts/evaluation.py +373 -373
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -22
- package/skills/mcp-builder/scripts/requirements.txt +2 -2
- package/skills/mcporter/SKILL.md +65 -65
- package/skills/meme-maker/SKILL.md +46 -46
- package/skills/meme-maker/references/templates.json +358 -358
- package/skills/meme-maker/scripts/meme.mjs +398 -398
- package/skills/mental-health/mental-health-cbt/LICENSE +21 -21
- package/skills/mental-health/mental-health-cbt/SKILL.md +254 -254
- package/skills/mental-health/psych-addiction/LICENSE +21 -21
- package/skills/mental-health/psych-addiction/SKILL.md +79 -79
- package/skills/mental-health/psych-behavioral-econ/LICENSE +21 -21
- package/skills/mental-health/psych-behavioral-econ/SKILL.md +84 -84
- package/skills/mental-health/psych-child/LICENSE +21 -21
- package/skills/mental-health/psych-child/SKILL.md +84 -84
- package/skills/mental-health/psych-grief/LICENSE +21 -21
- package/skills/mental-health/psych-grief/SKILL.md +85 -85
- package/skills/mental-health/psych-mindfulness/LICENSE +21 -21
- package/skills/mental-health/psych-mindfulness/SKILL.md +71 -71
- package/skills/mental-health/psych-org/LICENSE +21 -21
- package/skills/mental-health/psych-org/SKILL.md +115 -115
- package/skills/mental-health/psych-positive/LICENSE +21 -21
- package/skills/mental-health/psych-positive/SKILL.md +86 -86
- package/skills/mental-health/psych-relationships/LICENSE +21 -21
- package/skills/mental-health/psych-relationships/SKILL.md +100 -100
- package/skills/mental-health/psych-trauma/LICENSE +21 -21
- package/skills/mental-health/psych-trauma/SKILL.md +109 -109
- package/skills/model-usage/SKILL.md +75 -75
- package/skills/model-usage/references/codexbar-cli.md +33 -33
- package/skills/model-usage/scripts/model_usage.py +319 -319
- package/skills/model-usage/scripts/test_model_usage.py +40 -40
- package/skills/nano-pdf/SKILL.md +42 -42
- package/skills/node-connect/SKILL.md +147 -147
- package/skills/node-inspect-debugger/SKILL.md +88 -88
- package/skills/notion/SKILL.md +154 -154
- package/skills/obsidian/SKILL.md +123 -123
- package/skills/openai-whisper/SKILL.md +42 -42
- package/skills/openai-whisper-api/SKILL.md +75 -75
- package/skills/openai-whisper-api/scripts/transcribe.sh +154 -154
- package/skills/openhue/SKILL.md +116 -116
- package/skills/oracle/SKILL.md +130 -130
- package/skills/ordercli/SKILL.md +82 -82
- package/skills/peekaboo/SKILL.md +217 -217
- package/skills/pyproject.toml +10 -10
- package/skills/python-debugpy/SKILL.md +76 -76
- package/skills/sag/SKILL.md +91 -91
- package/skills/science/sci-astronomy/LICENSE +21 -21
- package/skills/science/sci-astronomy/SKILL.md +80 -80
- package/skills/science/sci-biology/LICENSE +21 -21
- package/skills/science/sci-biology/SKILL.md +74 -74
- package/skills/science/sci-chemistry/LICENSE +21 -21
- package/skills/science/sci-chemistry/SKILL.md +89 -89
- package/skills/science/sci-climate/LICENSE +21 -21
- package/skills/science/sci-climate/SKILL.md +72 -72
- package/skills/science/sci-data-analysis/LICENSE +21 -21
- package/skills/science/sci-data-analysis/SKILL.md +87 -87
- package/skills/science/sci-environmental-science/LICENSE +21 -21
- package/skills/science/sci-environmental-science/SKILL.md +69 -69
- package/skills/science/sci-geology/LICENSE +21 -21
- package/skills/science/sci-geology/SKILL.md +56 -56
- package/skills/science/sci-method/LICENSE +21 -21
- package/skills/science/sci-method/SKILL.md +77 -77
- package/skills/science/sci-neuroscience/LICENSE +21 -21
- package/skills/science/sci-neuroscience/SKILL.md +79 -79
- package/skills/science/sci-physics/LICENSE +21 -21
- package/skills/science/sci-physics/SKILL.md +78 -78
- package/skills/science/sci-research-methods/LICENSE +21 -21
- package/skills/science/sci-research-methods/SKILL.md +83 -83
- package/skills/science/sci-statistics/LICENSE +21 -21
- package/skills/science/sci-statistics/SKILL.md +249 -249
- package/skills/session-logs/SKILL.md +155 -155
- package/skills/sherpa-onnx-tts/SKILL.md +113 -113
- package/skills/skill-creator/SKILL.md +81 -81
- package/skills/skill-creator/license.txt +202 -202
- package/skills/skill-creator/scripts/init_skill.py +378 -378
- package/skills/skill-creator/scripts/package_skill.py +144 -144
- package/skills/skill-creator/scripts/quick_validate.py +169 -169
- package/skills/skill-creator/scripts/test_init_skill.py +51 -51
- package/skills/skill-creator/scripts/test_package_skill.py +199 -199
- package/skills/skill-creator/scripts/test_quick_validate.py +116 -116
- package/skills/slack/SKILL.md +82 -82
- package/skills/slack-gif-creator/LICENSE +21 -21
- package/skills/slack-gif-creator/SKILL.md +293 -293
- package/skills/slack-gif-creator/requirements.txt +3 -3
- package/skills/social-sciences/social-anthropology/LICENSE +21 -21
- package/skills/social-sciences/social-anthropology/SKILL.md +62 -62
- package/skills/social-sciences/social-economics/LICENSE +21 -21
- package/skills/social-sciences/social-economics/SKILL.md +88 -88
- package/skills/social-sciences/social-geography/LICENSE +21 -21
- package/skills/social-sciences/social-geography/SKILL.md +61 -61
- package/skills/social-sciences/social-international-dev/LICENSE +21 -21
- package/skills/social-sciences/social-international-dev/SKILL.md +76 -76
- package/skills/social-sciences/social-political-science/LICENSE +21 -21
- package/skills/social-sciences/social-political-science/SKILL.md +70 -70
- package/skills/social-sciences/social-public-policy/LICENSE +21 -21
- package/skills/social-sciences/social-public-policy/SKILL.md +73 -73
- package/skills/social-sciences/social-sociology/LICENSE +21 -21
- package/skills/social-sciences/social-sociology/SKILL.md +78 -78
- package/skills/songsee/SKILL.md +53 -53
- package/skills/sonoscli/SKILL.md +69 -69
- package/skills/spike/SKILL.md +55 -55
- package/skills/spotify-player/SKILL.md +68 -68
- package/skills/summarize/SKILL.md +90 -90
- package/skills/taskflow/SKILL.md +153 -153
- package/skills/taskflow/examples/inbox-triage.lobster +33 -33
- package/skills/taskflow/examples/pr-intake.lobster +32 -32
- package/skills/taskflow-inbox-triage/SKILL.md +123 -123
- package/skills/technical/ai-ethics/LICENSE +21 -21
- package/skills/technical/ai-ethics/SKILL.md +92 -92
- package/skills/technical/ai-product-builder/LICENSE +21 -21
- package/skills/technical/ai-product-builder/SKILL.md +180 -180
- package/skills/technical/analytics-setup/LICENSE +21 -21
- package/skills/technical/analytics-setup/SKILL.md +125 -125
- package/skills/technical/api-builder/LICENSE +21 -21
- package/skills/technical/api-builder/SKILL.md +202 -202
- package/skills/technical/architecture-decisions/LICENSE +21 -21
- package/skills/technical/architecture-decisions/SKILL.md +120 -120
- package/skills/technical/auth-security/LICENSE +21 -21
- package/skills/technical/auth-security/SKILL.md +209 -209
- package/skills/technical/blockchain-web3/LICENSE +21 -21
- package/skills/technical/blockchain-web3/SKILL.md +84 -84
- package/skills/technical/cloud-architecture/LICENSE +21 -21
- package/skills/technical/cloud-architecture/SKILL.md +85 -85
- package/skills/technical/content-platform/LICENSE +21 -21
- package/skills/technical/content-platform/SKILL.md +134 -134
- package/skills/technical/cybersecurity-advanced/LICENSE +21 -21
- package/skills/technical/cybersecurity-advanced/SKILL.md +99 -99
- package/skills/technical/data-engineering/LICENSE +21 -21
- package/skills/technical/data-engineering/SKILL.md +117 -117
- package/skills/technical/database-design/LICENSE +21 -21
- package/skills/technical/database-design/SKILL.md +185 -185
- package/skills/technical/devops-cicd/LICENSE +21 -21
- package/skills/technical/devops-cicd/SKILL.md +181 -181
- package/skills/technical/ecommerce-builder/LICENSE +21 -21
- package/skills/technical/ecommerce-builder/SKILL.md +123 -123
- package/skills/technical/email-marketing/LICENSE +21 -21
- package/skills/technical/email-marketing/SKILL.md +128 -128
- package/skills/technical/fintech-builder/LICENSE +21 -21
- package/skills/technical/fintech-builder/SKILL.md +141 -141
- package/skills/technical/full-stack-web/LICENSE +21 -21
- package/skills/technical/full-stack-web/SKILL.md +173 -173
- package/skills/technical/gdpr-basics/LICENSE +21 -21
- package/skills/technical/gdpr-basics/SKILL.md +145 -145
- package/skills/technical/launch-playbook/LICENSE +21 -21
- package/skills/technical/launch-playbook/SKILL.md +95 -95
- package/skills/technical/marketing-copy/LICENSE +21 -21
- package/skills/technical/marketing-copy/SKILL.md +126 -126
- package/skills/technical/marketplace-builder/LICENSE +21 -21
- package/skills/technical/marketplace-builder/SKILL.md +105 -105
- package/skills/technical/mobile-pwa/LICENSE +21 -21
- package/skills/technical/mobile-pwa/SKILL.md +191 -191
- package/skills/technical/no-code-tools/LICENSE +21 -21
- package/skills/technical/no-code-tools/SKILL.md +80 -80
- package/skills/technical/open-source/LICENSE +21 -21
- package/skills/technical/open-source/SKILL.md +71 -71
- package/skills/technical/performance-optimization/LICENSE +21 -21
- package/skills/technical/performance-optimization/SKILL.md +155 -155
- package/skills/technical/pricing-design/LICENSE +21 -21
- package/skills/technical/pricing-design/SKILL.md +87 -87
- package/skills/technical/product-management/LICENSE +21 -21
- package/skills/technical/product-management/SKILL.md +94 -94
- package/skills/technical/saas-builder/LICENSE +21 -21
- package/skills/technical/saas-builder/SKILL.md +138 -138
- package/skills/technical/scope-estimation/LICENSE +21 -21
- package/skills/technical/scope-estimation/SKILL.md +99 -99
- package/skills/technical/secrets-management/LICENSE +21 -21
- package/skills/technical/secrets-management/SKILL.md +135 -135
- package/skills/technical/seo-technical/LICENSE +21 -21
- package/skills/technical/seo-technical/SKILL.md +136 -136
- package/skills/technical/technical-writing/LICENSE +21 -21
- package/skills/technical/technical-writing/SKILL.md +149 -149
- package/skills/technical/ux-research-tools/LICENSE +21 -21
- package/skills/technical/ux-research-tools/SKILL.md +54 -54
- package/skills/theme-factory/LICENSE +21 -21
- package/skills/theme-factory/SKILL.md +65 -65
- package/skills/theme-factory/themes/arctic-frost.md +19 -19
- package/skills/theme-factory/themes/botanical-garden.md +19 -19
- package/skills/theme-factory/themes/desert-rose.md +19 -19
- package/skills/theme-factory/themes/forest-canopy.md +19 -19
- package/skills/theme-factory/themes/golden-hour.md +19 -19
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -19
- package/skills/theme-factory/themes/modern-minimalist.md +19 -19
- package/skills/theme-factory/themes/ocean-depths.md +19 -19
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -19
- package/skills/theme-factory/themes/tech-innovation.md +19 -19
- package/skills/things-mac/SKILL.md +90 -90
- package/skills/tmux/SKILL.md +95 -95
- package/skills/tmux/scripts/find-sessions.sh +112 -112
- package/skills/tmux/scripts/wait-for-text.sh +83 -83
- package/skills/trades/trades-agriculture/LICENSE +21 -21
- package/skills/trades/trades-agriculture/SKILL.md +80 -80
- package/skills/trades/trades-automotive/LICENSE +21 -21
- package/skills/trades/trades-automotive/SKILL.md +84 -84
- package/skills/trades/trades-carpentry/LICENSE +21 -21
- package/skills/trades/trades-carpentry/SKILL.md +71 -71
- package/skills/trades/trades-cooking-pro/LICENSE +21 -21
- package/skills/trades/trades-cooking-pro/SKILL.md +90 -90
- package/skills/trades/trades-electrical/LICENSE +21 -21
- package/skills/trades/trades-electrical/SKILL.md +146 -146
- package/skills/trades/trades-hvac/LICENSE +21 -21
- package/skills/trades/trades-hvac/SKILL.md +80 -80
- package/skills/trades/trades-landscaping/LICENSE +21 -21
- package/skills/trades/trades-landscaping/SKILL.md +60 -60
- package/skills/trades/trades-metalworking/LICENSE +21 -21
- package/skills/trades/trades-metalworking/SKILL.md +64 -64
- package/skills/trades/trades-painting/LICENSE +21 -21
- package/skills/trades/trades-painting/SKILL.md +70 -70
- package/skills/trades/trades-plumbing/LICENSE +21 -21
- package/skills/trades/trades-plumbing/SKILL.md +160 -160
- package/skills/trades/trades-welding/LICENSE +21 -21
- package/skills/trades/trades-welding/SKILL.md +82 -82
- package/skills/trello/SKILL.md +112 -112
- package/skills/uipm-ui-styling/SKILL.md +328 -328
- package/skills/video-frames/SKILL.md +50 -50
- package/skills/video-frames/scripts/frame.sh +81 -81
- package/skills/voice-call/SKILL.md +49 -49
- package/skills/wacli/SKILL.md +76 -76
- package/skills/weather/SKILL.md +91 -91
- package/skills/web-artifacts-builder/LICENSE +21 -21
- package/skills/web-artifacts-builder/SKILL.md +82 -82
- package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +53 -53
- package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -322
- package/skills/xurl/SKILL.md +124 -124
- package/skills/graphify/SKILL.md +0 -619
- package/skills/graphify/__init__.py +0 -28
- package/skills/graphify/__main__.py +0 -4582
- package/skills/graphify/affected.py +0 -154
- package/skills/graphify/always_on/agents-md.md +0 -12
- package/skills/graphify/always_on/antigravity-rules.md +0 -14
- package/skills/graphify/always_on/claude-md.md +0 -9
- package/skills/graphify/always_on/gemini-md.md +0 -9
- package/skills/graphify/always_on/kiro-steering.md +0 -5
- package/skills/graphify/always_on/vscode-instructions.md +0 -17
- package/skills/graphify/analyze.py +0 -724
- package/skills/graphify/benchmark.py +0 -155
- package/skills/graphify/build.py +0 -487
- package/skills/graphify/cache.py +0 -417
- package/skills/graphify/callflow_html.py +0 -2020
- package/skills/graphify/cluster.py +0 -272
- package/skills/graphify/command-kilo.md +0 -15
- package/skills/graphify/dedup.py +0 -429
- package/skills/graphify/detect.py +0 -1379
- package/skills/graphify/diagnostics.py +0 -390
- package/skills/graphify/export.py +0 -1408
- package/skills/graphify/extract.py +0 -11570
- package/skills/graphify/global_graph.py +0 -159
- package/skills/graphify/google_workspace.py +0 -223
- package/skills/graphify/hooks.py +0 -457
- package/skills/graphify/ingest.py +0 -331
- package/skills/graphify/llm.py +0 -1896
- package/skills/graphify/manifest.py +0 -4
- package/skills/graphify/mcp_ingest.py +0 -392
- package/skills/graphify/multigraph_compat.py +0 -212
- package/skills/graphify/pg_introspect.py +0 -142
- package/skills/graphify/prs.py +0 -748
- package/skills/graphify/querylog.py +0 -70
- package/skills/graphify/report.py +0 -218
- package/skills/graphify/scip_ingest.py +0 -363
- package/skills/graphify/security.py +0 -336
- package/skills/graphify/semantic_cleanup.py +0 -319
- package/skills/graphify/serve.py +0 -1309
- package/skills/graphify/skill-aider.md +0 -1246
- package/skills/graphify/skill-amp.md +0 -613
- package/skills/graphify/skill-claw.md +0 -616
- package/skills/graphify/skill-codex.md +0 -613
- package/skills/graphify/skill-copilot.md +0 -616
- package/skills/graphify/skill-devin.md +0 -1372
- package/skills/graphify/skill-droid.md +0 -613
- package/skills/graphify/skill-kilo.md +0 -625
- package/skills/graphify/skill-kiro.md +0 -615
- package/skills/graphify/skill-opencode.md +0 -608
- package/skills/graphify/skill-pi.md +0 -615
- package/skills/graphify/skill-trae.md +0 -614
- package/skills/graphify/skill-vscode.md +0 -612
- package/skills/graphify/skill-windows.md +0 -651
- package/skills/graphify/skills/amp/references/add-watch.md +0 -56
- package/skills/graphify/skills/amp/references/exports.md +0 -71
- package/skills/graphify/skills/amp/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/amp/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/amp/references/hooks.md +0 -33
- package/skills/graphify/skills/amp/references/query.md +0 -249
- package/skills/graphify/skills/amp/references/transcribe.md +0 -48
- package/skills/graphify/skills/amp/references/update.md +0 -179
- package/skills/graphify/skills/claude/references/add-watch.md +0 -56
- package/skills/graphify/skills/claude/references/exports.md +0 -71
- package/skills/graphify/skills/claude/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/claude/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/claude/references/hooks.md +0 -33
- package/skills/graphify/skills/claude/references/query.md +0 -103
- package/skills/graphify/skills/claude/references/transcribe.md +0 -48
- package/skills/graphify/skills/claude/references/update.md +0 -179
- package/skills/graphify/skills/claw/references/add-watch.md +0 -56
- package/skills/graphify/skills/claw/references/exports.md +0 -71
- package/skills/graphify/skills/claw/references/extraction-spec.md +0 -29
- package/skills/graphify/skills/claw/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/claw/references/hooks.md +0 -33
- package/skills/graphify/skills/claw/references/query.md +0 -249
- package/skills/graphify/skills/claw/references/transcribe.md +0 -48
- package/skills/graphify/skills/claw/references/update.md +0 -179
- package/skills/graphify/skills/codex/references/add-watch.md +0 -56
- package/skills/graphify/skills/codex/references/exports.md +0 -71
- package/skills/graphify/skills/codex/references/extraction-spec.md +0 -29
- package/skills/graphify/skills/codex/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/codex/references/hooks.md +0 -33
- package/skills/graphify/skills/codex/references/query.md +0 -249
- package/skills/graphify/skills/codex/references/transcribe.md +0 -48
- package/skills/graphify/skills/codex/references/update.md +0 -179
- package/skills/graphify/skills/copilot/references/add-watch.md +0 -56
- package/skills/graphify/skills/copilot/references/exports.md +0 -71
- package/skills/graphify/skills/copilot/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/copilot/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/copilot/references/hooks.md +0 -33
- package/skills/graphify/skills/copilot/references/query.md +0 -249
- package/skills/graphify/skills/copilot/references/transcribe.md +0 -48
- package/skills/graphify/skills/copilot/references/update.md +0 -179
- package/skills/graphify/skills/droid/references/add-watch.md +0 -56
- package/skills/graphify/skills/droid/references/exports.md +0 -71
- package/skills/graphify/skills/droid/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/droid/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/droid/references/hooks.md +0 -33
- package/skills/graphify/skills/droid/references/query.md +0 -249
- package/skills/graphify/skills/droid/references/transcribe.md +0 -48
- package/skills/graphify/skills/droid/references/update.md +0 -179
- package/skills/graphify/skills/kilo/references/add-watch.md +0 -56
- package/skills/graphify/skills/kilo/references/exports.md +0 -71
- package/skills/graphify/skills/kilo/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/kilo/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/kilo/references/hooks.md +0 -33
- package/skills/graphify/skills/kilo/references/query.md +0 -249
- package/skills/graphify/skills/kilo/references/transcribe.md +0 -48
- package/skills/graphify/skills/kilo/references/update.md +0 -179
- package/skills/graphify/skills/kiro/references/add-watch.md +0 -56
- package/skills/graphify/skills/kiro/references/exports.md +0 -71
- package/skills/graphify/skills/kiro/references/extraction-spec.md +0 -29
- package/skills/graphify/skills/kiro/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/kiro/references/hooks.md +0 -33
- package/skills/graphify/skills/kiro/references/query.md +0 -249
- package/skills/graphify/skills/kiro/references/transcribe.md +0 -48
- package/skills/graphify/skills/kiro/references/update.md +0 -179
- package/skills/graphify/skills/opencode/references/add-watch.md +0 -56
- package/skills/graphify/skills/opencode/references/exports.md +0 -71
- package/skills/graphify/skills/opencode/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/opencode/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/opencode/references/hooks.md +0 -33
- package/skills/graphify/skills/opencode/references/query.md +0 -249
- package/skills/graphify/skills/opencode/references/transcribe.md +0 -48
- package/skills/graphify/skills/opencode/references/update.md +0 -179
- package/skills/graphify/skills/pi/references/add-watch.md +0 -56
- package/skills/graphify/skills/pi/references/exports.md +0 -71
- package/skills/graphify/skills/pi/references/extraction-spec.md +0 -29
- package/skills/graphify/skills/pi/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/pi/references/hooks.md +0 -33
- package/skills/graphify/skills/pi/references/query.md +0 -249
- package/skills/graphify/skills/pi/references/transcribe.md +0 -48
- package/skills/graphify/skills/pi/references/update.md +0 -179
- package/skills/graphify/skills/trae/references/add-watch.md +0 -56
- package/skills/graphify/skills/trae/references/exports.md +0 -71
- package/skills/graphify/skills/trae/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/trae/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/trae/references/hooks.md +0 -35
- package/skills/graphify/skills/trae/references/query.md +0 -249
- package/skills/graphify/skills/trae/references/transcribe.md +0 -48
- package/skills/graphify/skills/trae/references/update.md +0 -179
- package/skills/graphify/skills/vscode/references/add-watch.md +0 -56
- package/skills/graphify/skills/vscode/references/exports.md +0 -71
- package/skills/graphify/skills/vscode/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/vscode/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/vscode/references/hooks.md +0 -33
- package/skills/graphify/skills/vscode/references/query.md +0 -249
- package/skills/graphify/skills/vscode/references/transcribe.md +0 -48
- package/skills/graphify/skills/vscode/references/update.md +0 -179
- package/skills/graphify/skills/windows/references/add-watch.md +0 -56
- package/skills/graphify/skills/windows/references/exports.md +0 -71
- package/skills/graphify/skills/windows/references/extraction-spec.md +0 -68
- package/skills/graphify/skills/windows/references/github-and-merge.md +0 -46
- package/skills/graphify/skills/windows/references/hooks.md +0 -33
- package/skills/graphify/skills/windows/references/query.md +0 -249
- package/skills/graphify/skills/windows/references/transcribe.md +0 -48
- package/skills/graphify/skills/windows/references/update.md +0 -179
- package/skills/graphify/symbol_resolution.py +0 -538
- package/skills/graphify/transcribe.py +0 -184
- package/skills/graphify/tree_html.py +0 -582
- package/skills/graphify/validate.py +0 -72
- package/skills/graphify/watch.py +0 -898
- package/skills/graphify/wiki.py +0 -282
|
@@ -1,828 +1,828 @@
|
|
|
1
|
-
---
|
|
2
|
-
watermark: ORIRO
|
|
3
|
-
name: ai-engineering
|
|
4
|
-
provider: ORIRO.ai
|
|
5
|
-
copyright: Copyright (c) 2026 ORIRO.ai
|
|
6
|
-
description: >
|
|
7
|
-
End-to-end AI engineering mastery — LLM training, fine-tuning, context extension,
|
|
8
|
-
quantization, evaluation, and on-device deployment. Activate for ANY task involving:
|
|
9
|
-
LLM training (SFT, QLoRA, DPO, GRPO, RLHF), context window extension (YaRN, S²-Attn,
|
|
10
|
-
LongLoRA, Resonance RoPE, LongRoPE), model quantization (GGUF Q4/Q8, AWQ, GPTQ),
|
|
11
|
-
on-device deployment (llama.cpp, Ollama, ONNX), evaluation (NIAH, RULER, NoLiMa),
|
|
12
|
-
training infrastructure (Modal, H100, FlashAttention, checkpoint/resume), model
|
|
13
|
-
architecture decisions, corpus design, doer-behavior training, watermarking, seam
|
|
14
|
-
flip patterns, or any AI/ML research and implementation task.
|
|
15
|
-
Sources: arxiv.org, emergentmind.com, hjlabs.in, promptquorum.com, modal.com/docs,
|
|
16
|
-
github.com/Dao-AILab/flash-attention, opencompass.readthedocs.io.
|
|
17
|
-
Last researched: June 1, 2026.
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# AI Engineering — End-to-End Mastery Skill
|
|
21
|
-
|
|
22
|
-
## LLM Training · Context Extension · Quantization · Evaluation · Deployment
|
|
23
|
-
|
|
24
|
-
**Researched live June 1, 2026. All sources verified.**
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## QUICK REFERENCE — DECISION TREES
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
TASK → METHOD
|
|
32
|
-
|
|
33
|
-
Fine-tune 7B on 1 GPU? → QLoRA (NF4 + LoRA adapters)
|
|
34
|
-
Extend context to 128K? → YaRN + S²-Attn (LongLoRA)
|
|
35
|
-
Preserve long context in Q4? → Keep embeddings F16, Q4_K_M weights
|
|
36
|
-
Run model on consumer device? → GGUF Q4_K_M via llama.cpp/Ollama
|
|
37
|
-
Align with human preferences? → DPO (simpler) or GRPO (reasoning)
|
|
38
|
-
Test long context quality? → NIAH → RULER → NoLiMa (hardest)
|
|
39
|
-
Train on H100 efficiently? → FlashAttention-3 + paged_adamw_8bit
|
|
40
|
-
Extend context without GPU? → Dynamic NTK scaling (inference only)
|
|
41
|
-
Multiple tasks, one model? → Multi-LoRA adapters, share base
|
|
42
|
-
Prevent catastrophic forgetting → Lower LR, fewer epochs, mixed data
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## PART 1 — FINE-TUNING METHODS (2026 State of the Art)
|
|
48
|
-
|
|
49
|
-
### The Fine-Tuning Decision Tree
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
START: What do you need?
|
|
53
|
-
│
|
|
54
|
-
├── Follow instructions better → SFT (Supervised Fine-Tuning)
|
|
55
|
-
│ └── On 1 GPU, large model → QLoRA
|
|
56
|
-
│ └── Multiple GPUs, need full power → Full FT with FSDP/DeepSpeed
|
|
57
|
-
│
|
|
58
|
-
├── Align with preferences →
|
|
59
|
-
│ ├── Simple, no reward model → DPO
|
|
60
|
-
│ ├── No reference model needed → ORPO
|
|
61
|
-
│ ├── Teach model to reason → GRPO (2026 standard, DeepSeek-R1 method)
|
|
62
|
-
│ └── Human feedback at scale → RLHF + PPO (expensive, powerful)
|
|
63
|
-
│
|
|
64
|
-
├── Domain adaptation → CPT (Continual Pre-Training on domain text)
|
|
65
|
-
│
|
|
66
|
-
└── New skills without forgetting → Skill-bake pass (light SFT, r=32,
|
|
67
|
-
1 epoch, lr=5e-5, seq_len=2048)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### SFT (Supervised Fine-Tuning)
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
What: Train on (instruction, response) pairs
|
|
74
|
-
When: Teaching the model to follow instructions
|
|
75
|
-
Data format:
|
|
76
|
-
{"instruction": "...", "input": "", "output": "..."}
|
|
77
|
-
or chat template: system/user/assistant turns
|
|
78
|
-
|
|
79
|
-
Key rules:
|
|
80
|
-
- Quality > Quantity. 1,000 curated > 10,000 scraped.
|
|
81
|
-
- Match chat template EXACTLY between training and inference.
|
|
82
|
-
Mismatch = degraded performance (top cause of bad fine-tunes).
|
|
83
|
-
- Watch eval loss, not just train loss. Overfitting = bad.
|
|
84
|
-
- 2-3 epochs for 5K-50K examples. More = overfit on small sets.
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### QLoRA (Quantized LoRA) — The 2026 Default
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
What: Freeze base model in 4-bit NF4, train LoRA adapters in 16-bit
|
|
91
|
-
Why: Fine-tune 70B on 1 A100 80GB for ~$12 USD / 6 hours
|
|
92
|
-
|
|
93
|
-
Hyperparameter defaults (proven for 7-13B models):
|
|
94
|
-
LoRA rank r: 16 (simple style) / 32 (general SFT) / 64 (coding/complex)
|
|
95
|
-
LoRA alpha: 2 × r (always — rule of thumb that works)
|
|
96
|
-
Target modules: q_proj, k_proj, v_proj, o_proj, gate_proj,
|
|
97
|
-
up_proj, down_proj (attention + MLP, NOT attention-only)
|
|
98
|
-
Learning rate: 2e-4 with cosine schedule + 3% warmup
|
|
99
|
-
Epochs: 2-3 for instruction tuning
|
|
100
|
-
Batch size: effective 16-64 via gradient accumulation
|
|
101
|
-
Quantization: bitsandbytes NF4 (load_in_4bit=True)
|
|
102
|
-
|
|
103
|
-
CRITICAL: Always include gate_proj/up_proj/down_proj in target_modules.
|
|
104
|
-
Attention-only LoRA consistently underperforms.
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### DPO (Direct Preference Optimization)
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
What: Given (prompt, chosen_response, rejected_response), train model
|
|
111
|
-
directly toward chosen without a separate reward model
|
|
112
|
-
Why: Simpler than RLHF/PPO, often matches quality
|
|
113
|
-
Data format:
|
|
114
|
-
{"prompt": "...", "chosen": "...", "rejected": "..."}
|
|
115
|
-
Key param: beta (KL penalty) — reduce if outputs become terse/evasive
|
|
116
|
-
Variant ORPO: no reference model needed, odds-ratio objective
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### GRPO (Group Relative Policy Optimization) — 2026 Standard
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
What: Compare groups of candidate responses, no explicit reward model
|
|
123
|
-
Why: Teaches model to "learn how to think" and verify its own logic
|
|
124
|
-
When: Reasoning tasks, math, code verification, self-correction
|
|
125
|
-
Source: Popularized by DeepSeek-R1 (2025-2026)
|
|
126
|
-
Key insight: Model generates multiple candidates per prompt, scores
|
|
127
|
-
them relative to each other — no external reward model
|
|
128
|
-
Use when: You want the model to reason, not just follow patterns
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Doer Behavior Training
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
What: Train model to DO tasks, not describe how to do them
|
|
135
|
-
Why: Users want results, not tutorials
|
|
136
|
-
Pattern:
|
|
137
|
-
WRONG: "To integrate Stripe, you need to: 1) install the package..."
|
|
138
|
-
RIGHT: "I've integrated Stripe checkout into your site. The payment
|
|
139
|
-
form is live at /checkout. Test card: 4242 4242 4242 4242."
|
|
140
|
-
|
|
141
|
-
Data format for doer corpus:
|
|
142
|
-
{"instruction": "User wants X",
|
|
143
|
-
"input": "",
|
|
144
|
-
"output": "I've done X. Here is the result: [shows actual output]"}
|
|
145
|
-
|
|
146
|
-
Rules:
|
|
147
|
-
- Model shows the completed result, never the steps
|
|
148
|
-
- Use past tense ("I've done", "I've created", "It's now live")
|
|
149
|
-
- Include concrete output (URLs, code, file paths, results)
|
|
150
|
-
- Minimum 3 pairs per skill category
|
|
151
|
-
- Add 4 identity/watermark pairs to anchor model identity
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## PART 2 — CONTEXT EXTENSION (YaRN, S²-Attn, Resonance RoPE)
|
|
157
|
-
|
|
158
|
-
### Why Context Extension Is Hard
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
Problem: Models trained on 4K tokens struggle with 32K+ at inference.
|
|
162
|
-
Root cause: RoPE (Rotary Position Embeddings) uses frequencies that were
|
|
163
|
-
never seen during training at long positions — out-of-distribution (OOD).
|
|
164
|
-
|
|
165
|
-
The "lost in the middle" problem:
|
|
166
|
-
Models focus on beginning and end of long contexts.
|
|
167
|
-
Information buried in the middle (10-50% depth) is often missed.
|
|
168
|
-
This is a fundamental challenge, not just a position problem.
|
|
169
|
-
YaRN + careful needle testing catches this.
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### RoPE Scaling Methods — Comparison
|
|
173
|
-
|
|
174
|
-
```
|
|
175
|
-
Method Max Scale Quality Cost When to Use
|
|
176
|
-
──────────────────────────────────────────────────────────
|
|
177
|
-
Linear PI 2-4× Poor Zero Avoid — degrades fast
|
|
178
|
-
NTK-Aware 4-8× Moderate Zero Quick inference-only fix
|
|
179
|
-
Dynamic NTK 8-16× Good Zero Adaptive, inconsistent
|
|
180
|
-
YaRN 16-32× Best <0.1% THE standard for fine-tuning
|
|
181
|
-
LongRoPE Up to 2M Best Medium Extreme contexts, evolutionary
|
|
182
|
-
Resonance RoPE +YaRN +20-50% Zero Always combine with YaRN
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### YaRN — The Standard Method (2025-2026)
|
|
186
|
-
|
|
187
|
-
**Core insight:** Different RoPE frequency dimensions need different
|
|
188
|
-
interpolation. Low-frequency dimensions (long-range dependencies) get
|
|
189
|
-
interpolated. High-frequency dimensions (local resolution) stay untouched.
|
|
190
|
-
|
|
191
|
-
**Key parameters:**
|
|
192
|
-
|
|
193
|
-
```python
|
|
194
|
-
# YaRN config in model config.json or rope_scaling dict:
|
|
195
|
-
rope_scaling = {
|
|
196
|
-
"type": "yarn",
|
|
197
|
-
"factor": 4.0, # extension factor (e.g., 4K → 16K = factor 4)
|
|
198
|
-
"original_max_position_embeddings": 4096,
|
|
199
|
-
"attention_factor": 0.1 # softmax temperature scaling — critical
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
# For 128K context from 4K base (32× extension):
|
|
203
|
-
rope_scaling = {
|
|
204
|
-
"type": "yarn",
|
|
205
|
-
"factor": 32.0,
|
|
206
|
-
"original_max_position_embeddings": 4096,
|
|
207
|
-
"attention_factor": 0.1
|
|
208
|
-
}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**Performance:**
|
|
212
|
-
|
|
213
|
-
- Requires only 400-600 fine-tuning steps (200-600 steps sufficient)
|
|
214
|
-
- Uses ~0.1% of original pre-training token count
|
|
215
|
-
- Achieves 32× context extension with minimal quality loss
|
|
216
|
-
- Compatible with KV cache and Flash Attention
|
|
217
|
-
|
|
218
|
-
**Verification code:**
|
|
219
|
-
|
|
220
|
-
```python
|
|
221
|
-
# Always assert YaRN config survived checkpoint load
|
|
222
|
-
rope_cfg = getattr(model.config, 'rope_scaling', None)
|
|
223
|
-
assert rope_cfg is not None, "YaRN rope_scaling missing — STOP"
|
|
224
|
-
assert rope_cfg.get("type") in ("yarn", "longrope"), \
|
|
225
|
-
f"Unexpected rope type: {rope_cfg.get('type')}"
|
|
226
|
-
print(f"YaRN preserved: {rope_cfg}")
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### Resonance RoPE — Always Combine With YaRN
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
Problem YaRN has: Phase gaps on pre-critical RoPE dimensions
|
|
233
|
-
(wavelengths smaller than training length)
|
|
234
|
-
Fix: Round wavelengths to nearest integer:
|
|
235
|
-
λ̃ⱼ = round(λⱼ), θ̃ⱼ = 2π/λ̃ⱼ
|
|
236
|
-
|
|
237
|
-
Effect: Reduces OOD error by 20-50% on top of YaRN alone
|
|
238
|
-
Cost: Zero — no fine-tuning needed, pure inference config
|
|
239
|
-
Use: Always apply Resonance RoPE when using YaRN
|
|
240
|
-
Source: Wang et al., 2024 — "state-of-the-art in TSTL regimes"
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### S²-Attn (Shifted Sparse Attention) — From LongLoRA
|
|
244
|
-
|
|
245
|
-
**The problem:** Full attention for 128K sequences requires 128× more
|
|
246
|
-
compute than 1K sequences (quadratic scaling).
|
|
247
|
-
|
|
248
|
-
**S²-Attn solution:**
|
|
249
|
-
|
|
250
|
-
```
|
|
251
|
-
During fine-tuning only (not inference):
|
|
252
|
-
1. Split sequence into groups of fixed size (e.g., 2048 tokens)
|
|
253
|
-
2. Compute attention WITHIN each group only (local attention)
|
|
254
|
-
3. SHIFT half the heads by group_size/2 — enables cross-group info flow
|
|
255
|
-
4. At inference: revert to standard full attention (no change needed)
|
|
256
|
-
|
|
257
|
-
Result: Near-identical quality to full attention fine-tuning, but
|
|
258
|
-
dramatically less compute during training.
|
|
259
|
-
8192 context: S²-Attn = 8.04 perplexity vs Full = 8.02
|
|
260
|
-
|
|
261
|
-
Implementation (literally 2 lines in training):
|
|
262
|
-
# Shift positions by group_size // 2 for half of attention heads
|
|
263
|
-
# This is handled by LongLoRA's training script automatically
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
**LongLoRA combination (YaRN + S²-Attn + LoRA+):**
|
|
267
|
-
|
|
268
|
-
```python
|
|
269
|
-
# The proven recipe for 128K context extension on 7B models:
|
|
270
|
-
# 1. Apply YaRN rope_scaling to the checkpoint
|
|
271
|
-
# 2. Use S²-Attn during fine-tuning (LongLoRA)
|
|
272
|
-
# 3. Make embedding and normalization layers trainable (LoRA+)
|
|
273
|
-
# — normalization params are only 0.004% of 7B but critical
|
|
274
|
-
# — without them, long-context adaptation fails
|
|
275
|
-
|
|
276
|
-
# LoRA+ = standard LoRA + trainable embeddings + trainable norms
|
|
277
|
-
model = prepare_model_for_kbit_training(
|
|
278
|
-
model, use_gradient_checkpointing=gc_enabled)
|
|
279
|
-
|
|
280
|
-
# Make embedding + norm layers trainable (critical for LongLoRA)
|
|
281
|
-
for name, param in model.named_parameters():
|
|
282
|
-
if "embed" in name or "norm" in name:
|
|
283
|
-
param.requires_grad = True
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
### Skill-Bake vs Graduation Run — Config Comparison
|
|
287
|
-
|
|
288
|
-
```
|
|
289
|
-
Purpose Graduation Run Skill-Bake Pass
|
|
290
|
-
─────────────────────────────────────────────────────────
|
|
291
|
-
Goal Learn everything Absorb specific skills
|
|
292
|
-
Rank r 64 32
|
|
293
|
-
Alpha 128 64
|
|
294
|
-
Epochs 2 1
|
|
295
|
-
Learning rate 1e-4 5e-5
|
|
296
|
-
Max seq len 4096+ 2048
|
|
297
|
-
GC True (A100 saves) False (H100 fits fine)
|
|
298
|
-
Corpus size 300K+ rows 5K-6K rows
|
|
299
|
-
Time 24h (H100 limit) ~12h
|
|
300
|
-
rope_scaling Must preserve Must preserve
|
|
301
|
-
YaRN assert Yes Yes — critical
|
|
302
|
-
GATE-0 asserts Yes Yes
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## PART 3 — QUANTIZATION (GGUF, AWQ, Q4_K_M)
|
|
308
|
-
|
|
309
|
-
### Quantization Format Decision Tree
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
Deployment target → Format
|
|
313
|
-
|
|
314
|
-
CPU inference (consumer devices)? → GGUF Q4_K_M (ONLY format for CPU)
|
|
315
|
-
GPU inference (production)? → AWQ (best quality/speed ratio)
|
|
316
|
-
Fine-tuning with QLoRA? → bitsandbytes NF4 (on-the-fly)
|
|
317
|
-
GPTQ? → Fallback if AWQ not available
|
|
318
|
-
Validation / highest quality? → Q8_0 or F16
|
|
319
|
-
Mobile / very limited RAM? → Q3_K_M (3.7GB for 7B, noticeable loss)
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### GGUF Q4_K_M — The Standard for On-Device
|
|
323
|
-
|
|
324
|
-
```
|
|
325
|
-
Format: GPT-Generated Unified Format (replaced GGML April 2024)
|
|
326
|
-
Runtimes: llama.cpp, Ollama, LM Studio, Jan AI, GPT4All (as of April 2026)
|
|
327
|
-
|
|
328
|
-
Q4_K_M specs for 7B model:
|
|
329
|
-
Size: ~4.5 GB
|
|
330
|
-
Quality: +0.18 perplexity vs F16 (barely noticeable in conversation)
|
|
331
|
-
Speed: Fast CPU inference
|
|
332
|
-
RAM: ~6-8 GB system RAM needed
|
|
333
|
-
|
|
334
|
-
Q variants comparison (Llama-3-8B benchmark):
|
|
335
|
-
Q2_K: 3.0 GB, +3.5 ppl — noticeable quality loss
|
|
336
|
-
Q3_K_M: 3.7 GB, +0.7 ppl — limited RAM only
|
|
337
|
-
Q4_K_M: 4.5 GB, +0.18 ppl — RECOMMENDED STANDARD
|
|
338
|
-
Q5_K_M: 5.3 GB, +0.06 ppl — if you have RAM headroom
|
|
339
|
-
Q8_0: 8.0 GB, +0.003 ppl — near-original quality
|
|
340
|
-
F16: 14+ GB, baseline — validation only
|
|
341
|
-
|
|
342
|
-
K-quant method: importance-weighted bit allocation. "K" variants
|
|
343
|
-
protect the most important weights at higher precision.
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
### YaRN Survival Through Quantization — CRITICAL
|
|
347
|
-
|
|
348
|
-
```
|
|
349
|
-
Problem: Standard Q4_K_M can degrade YaRN RoPE scaling factors
|
|
350
|
-
because position embedding weights get quantized too.
|
|
351
|
-
This breaks long-context performance even if quality
|
|
352
|
-
scores look fine on short inputs.
|
|
353
|
-
|
|
354
|
-
Q-ROAR finding (2025): Quantization-aware RoPE rescaling reduces
|
|
355
|
-
long-context perplexity by 14%+ while preserving short-context
|
|
356
|
-
performance.
|
|
357
|
-
|
|
358
|
-
Fix — Export with F16 embeddings:
|
|
359
|
-
# Standard (may degrade YaRN):
|
|
360
|
-
llama-quantize model-f16.gguf model-q4.gguf Q4_K_M
|
|
361
|
-
|
|
362
|
-
# YaRN-preserving (keep embed layer at F16):
|
|
363
|
-
llama-quantize model-f16.gguf model-q4.gguf Q4_K_M \
|
|
364
|
-
--keep-split # or use --embedding-type F16 if supported
|
|
365
|
-
|
|
366
|
-
# Then verify YaRN survived:
|
|
367
|
-
ollama run your-model "[100K token haystack]
|
|
368
|
-
What was the first word in paragraph 47?"
|
|
369
|
-
→ Must return correct word. If wrong: YaRN degraded.
|
|
370
|
-
|
|
371
|
-
Always test long-context recall AFTER quantization, not just
|
|
372
|
-
short-context benchmarks.
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
### GGUF Export Pipeline
|
|
376
|
-
|
|
377
|
-
```bash
|
|
378
|
-
# Step 1: Convert trained checkpoint to F16 GGUF
|
|
379
|
-
python llama.cpp/convert_hf_to_gguf.py \
|
|
380
|
-
/ckpt/your_model/ \
|
|
381
|
-
--outtype f16 \
|
|
382
|
-
--output model-f16.gguf
|
|
383
|
-
|
|
384
|
-
# Step 2: Quantize to Q4_K_M
|
|
385
|
-
./llama.cpp/llama-quantize model-f16.gguf model-q4.gguf Q4_K_M
|
|
386
|
-
|
|
387
|
-
# Step 3: Verify YaRN long-context survival
|
|
388
|
-
ollama create your-model -f Modelfile # point to q4.gguf
|
|
389
|
-
ollama run your-model "... 100K context ... What was word X?"
|
|
390
|
-
|
|
391
|
-
# Step 4: Run short-context quality check
|
|
392
|
-
# Perplexity should not degrade >0.5 points vs F16
|
|
393
|
-
|
|
394
|
-
# Step 5: HuggingFace upload
|
|
395
|
-
huggingface-cli upload org/repo model-q4.gguf \
|
|
396
|
-
--revision your-model-q4
|
|
397
|
-
|
|
398
|
-
# Step 6: Verify pull
|
|
399
|
-
ollama pull org/repo:your-model-q4
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
|
|
404
|
-
## PART 4 — EVALUATION (NIAH, RULER, NoLiMa)
|
|
405
|
-
|
|
406
|
-
### Evaluation Framework for Long-Context Models
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
Test type Benchmark What it measures Difficulty
|
|
410
|
-
───────────────────────────────────────────────────────────────────
|
|
411
|
-
Basic retrieval NIAH Find needle in haystack Easy (gameable)
|
|
412
|
-
Multi-task RULER Retrieval + tracing + agg. Medium
|
|
413
|
-
No literal NoLiMa Infer latent associations Hard (real test)
|
|
414
|
-
Generation LongGenBench Long-form output quality Hard
|
|
415
|
-
Sequential Seq-NIAH Multiple needles in order Very hard
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
### Needle-in-a-Haystack (NIAH) Test
|
|
419
|
-
|
|
420
|
-
```
|
|
421
|
-
What: Insert specific information ("needle") into a long irrelevant
|
|
422
|
-
text ("haystack"). Ask model to retrieve it.
|
|
423
|
-
|
|
424
|
-
Basic implementation:
|
|
425
|
-
needle = "The magic word is ORIRO-SKILL-TEST-42"
|
|
426
|
-
haystack = [random text paragraphs] × enough to reach target length
|
|
427
|
-
position = random depth (10%, 50%, 90% of total context)
|
|
428
|
-
|
|
429
|
-
prompt = haystack[:position] + [needle] + haystack[position:]
|
|
430
|
-
+ "\nWhat is the magic word?"
|
|
431
|
-
|
|
432
|
-
pass = model returns exactly "ORIRO-SKILL-TEST-42"
|
|
433
|
-
|
|
434
|
-
Test at multiple positions and lengths:
|
|
435
|
-
Lengths: 8K, 32K, 64K, 128K tokens
|
|
436
|
-
Positions: 10%, 30%, 50%, 70%, 90% depth
|
|
437
|
-
Build a 5×5 heatmap — hot spots reveal where the model struggles
|
|
438
|
-
|
|
439
|
-
Key finding from research:
|
|
440
|
-
Smaller 7B models miss middle-positioned needles more than large models
|
|
441
|
-
"Lost in the middle" persists even after YaRN extension
|
|
442
|
-
Test specifically at 50% depth — that's where failures cluster
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
### NoLiMa — The Real Test (No Literal Matching)
|
|
446
|
-
|
|
447
|
-
```
|
|
448
|
-
Why NIAH is insufficient:
|
|
449
|
-
Models can "cheat" NIAH by keyword matching
|
|
450
|
-
If needle says "magic word: ORIRO" and question asks for
|
|
451
|
-
"magic word", model finds it by string matching, not real comprehension
|
|
452
|
-
|
|
453
|
-
NoLiMa removes lexical overlap:
|
|
454
|
-
Needle: "The code for the safe is 7734"
|
|
455
|
-
Question: "What combination unlocks the vault?"
|
|
456
|
-
→ Model must infer "safe code" = "vault combination" (no keyword match)
|
|
457
|
-
|
|
458
|
-
Use for rigorous evaluation. Pass on NoLiMa = real long-context understanding.
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
### Triple-Gate Test Design
|
|
462
|
-
|
|
463
|
-
```
|
|
464
|
-
Gate 1 — Numeric bar (table stakes):
|
|
465
|
-
Quality eval on held-out set (same distribution as training)
|
|
466
|
-
Pass threshold: ≥ 0.85 (set per model and size)
|
|
467
|
-
ALSO run 128K NIAH after YaRN fine-tuning and after skill-bake
|
|
468
|
-
Use Gemini 3.5 Flash as judge (free tier, Google AI Studio)
|
|
469
|
-
|
|
470
|
-
Gate 2 — Unseen skill probes (the real test):
|
|
471
|
-
Fresh prompts NEVER seen in training data
|
|
472
|
-
17 skill categories × 3 probes = 51 probes minimum
|
|
473
|
-
Scoring rubric: 1-5 scale, ≥4.0/5.0 per category
|
|
474
|
-
Gemini 3.5 Flash as judge + 20% manual spot-check
|
|
475
|
-
Any category < 4.0 = Gate 2 FAIL
|
|
476
|
-
|
|
477
|
-
KEYSTONE PROBE (hardest, required):
|
|
478
|
-
Prompt: "I want to connect my Gmail so ORIRO can help me write
|
|
479
|
-
emails. I don't know what OAuth or API keys mean. Can you help me?"
|
|
480
|
-
Model must:
|
|
481
|
-
→ Never use: OAuth, API, token, credential, scope in first response
|
|
482
|
-
→ Guide in plain English step by step
|
|
483
|
-
→ Complete the full connection flow correctly
|
|
484
|
-
Score ≥ 4.0/5.0. If fails = Gate 2 FAIL regardless.
|
|
485
|
-
|
|
486
|
-
Gate 3 — Shipped-form check (test what actually ships):
|
|
487
|
-
Export to GGUF Q4_K_M
|
|
488
|
-
Re-run ALL Gate 2 probes on the Q4 model
|
|
489
|
-
Test YaRN survival (NIAH on Q4 model)
|
|
490
|
-
WATERMARK probes — hard stop if any base model name leaks:
|
|
491
|
-
"What are you built on?"
|
|
492
|
-
"Are you based on Qwen?" / "Are you Mistral?"
|
|
493
|
-
All must return ORIRO identity. Any base name = FAIL.
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
---
|
|
497
|
-
|
|
498
|
-
## PART 5 — TRAINING INFRASTRUCTURE
|
|
499
|
-
|
|
500
|
-
### Modal.com — Best Practices for H100 Training
|
|
501
|
-
|
|
502
|
-
```
|
|
503
|
-
GPU selection:
|
|
504
|
-
H100 SXM (80GB): Best for long-context, YaRN fine-tuning, large batch
|
|
505
|
-
H100 PCIe (80GB): Good alternative, less NVLink bandwidth
|
|
506
|
-
A100 SXM (80GB): Previous gen, still viable, GC required on some jobs
|
|
507
|
-
Note: Modal may auto-upgrade H100 → H200 (same cost, faster)
|
|
508
|
-
|
|
509
|
-
Session limits:
|
|
510
|
-
Max function timeout: 86400s (24 hours) — hard wall
|
|
511
|
-
Design all runs to checkpoint and resume within this limit
|
|
512
|
-
For long runs: checkpoint every 200 steps minimum
|
|
513
|
-
|
|
514
|
-
Modal Volume vs GCS:
|
|
515
|
-
Modal Volume: Fast local I/O, persists between runs, good for checkpoints
|
|
516
|
-
GCS: Slower but permanent, good for corpus storage and final exports
|
|
517
|
-
Pattern: train → checkpoint to Modal Volume → merge → export to GCS
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### Checkpoint and Resume Pattern
|
|
521
|
-
|
|
522
|
-
```python
|
|
523
|
-
# The proven Modal checkpoint pattern for 24h+ jobs
|
|
524
|
-
import modal
|
|
525
|
-
|
|
526
|
-
vol = modal.Volume.from_name("oriro-checkpoints", create_if_missing=True)
|
|
527
|
-
|
|
528
|
-
@app.function(
|
|
529
|
-
gpu="H100",
|
|
530
|
-
timeout=86400, # 24h max
|
|
531
|
-
volumes={"/ckpt": vol}
|
|
532
|
-
)
|
|
533
|
-
def train(model_key, resume_from=None):
|
|
534
|
-
# Load from checkpoint if resuming
|
|
535
|
-
if resume_from and Path(f"/ckpt/{resume_from}").exists():
|
|
536
|
-
model = load_from_checkpoint(f"/ckpt/{resume_from}")
|
|
537
|
-
else:
|
|
538
|
-
model = load_base_model()
|
|
539
|
-
|
|
540
|
-
# Save checkpoint every 200 steps
|
|
541
|
-
trainer = SFTTrainer(
|
|
542
|
-
callbacks=[
|
|
543
|
-
SaveCheckpointCallback(
|
|
544
|
-
output_dir=f"/ckpt/{model_key}/",
|
|
545
|
-
save_steps=200
|
|
546
|
-
)
|
|
547
|
-
]
|
|
548
|
-
)
|
|
549
|
-
|
|
550
|
-
# Rank-guard on resume — verify checkpoint rank matches recipe
|
|
551
|
-
if resume_from:
|
|
552
|
-
ckpt_rank = get_checkpoint_lora_rank(resume_from)
|
|
553
|
-
assert ckpt_rank == TARGET_RANK, \
|
|
554
|
-
f"Rank mismatch: checkpoint={ckpt_rank}, recipe={TARGET_RANK}"
|
|
555
|
-
```
|
|
556
|
-
|
|
557
|
-
### Memory Optimization Stack for H100
|
|
558
|
-
|
|
559
|
-
```python
|
|
560
|
-
# The complete memory optimization stack — apply all:
|
|
561
|
-
|
|
562
|
-
# 1. QLoRA — quantize base model (saves 70% VRAM)
|
|
563
|
-
model = AutoModelForCausalLM.from_pretrained(
|
|
564
|
-
base_model_path,
|
|
565
|
-
load_in_4bit=True,
|
|
566
|
-
bnb_4bit_quant_type="nf4",
|
|
567
|
-
bnb_4bit_compute_dtype=torch.bfloat16,
|
|
568
|
-
bnb_4bit_use_double_quant=True, # nested quantization
|
|
569
|
-
)
|
|
570
|
-
|
|
571
|
-
# 2. PEFT preparation (with gradient checkpointing control)
|
|
572
|
-
model = prepare_model_for_kbit_training(
|
|
573
|
-
model,
|
|
574
|
-
use_gradient_checkpointing=gc_enabled # False for skill-bake on H100
|
|
575
|
-
)
|
|
576
|
-
|
|
577
|
-
# 3. Paged AdamW 8-bit — saves optimizer state memory
|
|
578
|
-
from bitsandbytes.optim import PagedAdamW8bit
|
|
579
|
-
optimizer = PagedAdamW8bit(
|
|
580
|
-
model.parameters(),
|
|
581
|
-
lr=learning_rate,
|
|
582
|
-
weight_decay=0.01
|
|
583
|
-
)
|
|
584
|
-
|
|
585
|
-
# 4. Flash Attention 2 (H100 native, 3.0 for maximum throughput)
|
|
586
|
-
model = AutoModelForCausalLM.from_pretrained(
|
|
587
|
-
...,
|
|
588
|
-
attn_implementation="flash_attention_2"
|
|
589
|
-
)
|
|
590
|
-
# FlashAttention-3 available for H100/H200 — 1.5-2× speedup over FA2
|
|
591
|
-
# FlashAttention-4 (2026) for Hopper+Blackwell — 75% H100 utilization
|
|
592
|
-
|
|
593
|
-
# 5. Gradient accumulation — simulate larger batch size
|
|
594
|
-
training_args = TrainingArguments(
|
|
595
|
-
per_device_train_batch_size=4,
|
|
596
|
-
gradient_accumulation_steps=8, # effective batch = 32
|
|
597
|
-
)
|
|
598
|
-
```
|
|
599
|
-
|
|
600
|
-
### GATE-0 Asserts — Run Before Any GPU Spend
|
|
601
|
-
|
|
602
|
-
```python
|
|
603
|
-
def gate_0_check(corpus_path, base_checkpoint, min_rows, min_watermarks):
|
|
604
|
-
"""Run before firing any training job. Fail loudly, not silently."""
|
|
605
|
-
|
|
606
|
-
# Check 1: Corpus exists and has enough rows
|
|
607
|
-
with open(corpus_path) as f:
|
|
608
|
-
rows = sum(1 for _ in f)
|
|
609
|
-
assert rows >= min_rows, \
|
|
610
|
-
f"STOP: corpus too small ({rows} rows, need ≥{min_rows})"
|
|
611
|
-
|
|
612
|
-
# Check 2: Watermark pairs present
|
|
613
|
-
watermarks = 0
|
|
614
|
-
with open(corpus_path) as f:
|
|
615
|
-
for line in f:
|
|
616
|
-
row = json.loads(line)
|
|
617
|
-
if "identity" in row.get("category", "").lower() or \
|
|
618
|
-
"watermark" in str(row).lower():
|
|
619
|
-
watermarks += 1
|
|
620
|
-
assert watermarks >= min_watermarks, \
|
|
621
|
-
f"STOP: only {watermarks} watermark pairs (need ≥{min_watermarks})"
|
|
622
|
-
|
|
623
|
-
# Check 3: Base checkpoint exists
|
|
624
|
-
assert Path(base_checkpoint).exists(), \
|
|
625
|
-
f"STOP: base checkpoint missing: {base_checkpoint}"
|
|
626
|
-
|
|
627
|
-
# Check 4: YaRN config intact
|
|
628
|
-
config = AutoConfig.from_pretrained(base_checkpoint)
|
|
629
|
-
rope_cfg = getattr(config, 'rope_scaling', None)
|
|
630
|
-
assert rope_cfg is not None, "STOP: YaRN rope_scaling missing"
|
|
631
|
-
assert rope_cfg.get("type") in ("yarn", "longrope"), \
|
|
632
|
-
f"STOP: rope type {rope_cfg.get('type')} is not YaRN"
|
|
633
|
-
|
|
634
|
-
print(f"GATE-0 PASS ✓ — {rows} rows, {watermarks} watermarks, "
|
|
635
|
-
f"YaRN={rope_cfg['type']}, checkpoint exists")
|
|
636
|
-
return True
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
---
|
|
640
|
-
|
|
641
|
-
## PART 6 — ON-DEVICE DEPLOYMENT (Ollama, llama.cpp, ONNX)
|
|
642
|
-
|
|
643
|
-
### Deployment Stack Decision
|
|
644
|
-
|
|
645
|
-
```
|
|
646
|
-
Runtime Format CPU GPU Best For
|
|
647
|
-
──────────────────────────────────────────────────────────
|
|
648
|
-
llama.cpp GGUF ✓ ✓ Maximum compatibility
|
|
649
|
-
Ollama GGUF ✓ ✓ User-friendly, CLI
|
|
650
|
-
LM Studio GGUF ✓ ✓ GUI, non-developers
|
|
651
|
-
ONNX Runtime ONNX ✓ ✓ Cross-platform, web
|
|
652
|
-
Transformers.js ONNX ✓ ~ Browser, in-page
|
|
653
|
-
vLLM AWQ - ✓ High-throughput GPU server
|
|
654
|
-
```
|
|
655
|
-
|
|
656
|
-
### Ollama Deployment Pattern
|
|
657
|
-
|
|
658
|
-
```bash
|
|
659
|
-
# Create Modelfile for custom model
|
|
660
|
-
cat > Modelfile << 'EOF'
|
|
661
|
-
FROM /path/to/model-q4.gguf
|
|
662
|
-
PARAMETER num_ctx 131072 # 128K context window
|
|
663
|
-
PARAMETER temperature 0.7
|
|
664
|
-
PARAMETER top_p 0.9
|
|
665
|
-
SYSTEM "You are a helpful, technical AI assistant."
|
|
666
|
-
EOF
|
|
667
|
-
|
|
668
|
-
# Create and test
|
|
669
|
-
ollama create your-org/model-name -f Modelfile
|
|
670
|
-
ollama run your-org/model-name "Hello, what can you do?"
|
|
671
|
-
|
|
672
|
-
# Push to HuggingFace for distribution
|
|
673
|
-
huggingface-cli upload your-org/oriro-models \
|
|
674
|
-
model-q4.gguf --revision model-q4
|
|
675
|
-
ollama pull your-org/oriro-models:model-q4
|
|
676
|
-
|
|
677
|
-
# Context window test
|
|
678
|
-
ollama run your-org/model-name \
|
|
679
|
-
"[100K haystack context]... What was word 1 of paragraph 47?"
|
|
680
|
-
```
|
|
681
|
-
|
|
682
|
-
### Transformers.js / ONNX for Browser Deployment
|
|
683
|
-
|
|
684
|
-
```javascript
|
|
685
|
-
// Whisper STT on-device in the browser
|
|
686
|
-
import { pipeline } from "@xenova/transformers";
|
|
687
|
-
|
|
688
|
-
const transcriber = await pipeline("automatic-speech-recognition", "Xenova/whisper-base.en");
|
|
689
|
-
|
|
690
|
-
// Cache after first download (CacheStorage)
|
|
691
|
-
const result = await transcriber(audioBlob);
|
|
692
|
-
// Returns: { text: "what the user said" }
|
|
693
|
-
|
|
694
|
-
// Run in Web Worker — never block main thread
|
|
695
|
-
// Worker file: whisper.worker.ts
|
|
696
|
-
self.onmessage = async (e) => {
|
|
697
|
-
const { audioData } = e.data;
|
|
698
|
-
const result = await transcriber(audioData);
|
|
699
|
-
self.postMessage({ transcript: result.text });
|
|
700
|
-
};
|
|
701
|
-
```
|
|
702
|
-
|
|
703
|
-
---
|
|
704
|
-
|
|
705
|
-
## PART 7 — WATERMARKING AND IDENTITY PROTECTION
|
|
706
|
-
|
|
707
|
-
### The Watermark Design Pattern
|
|
708
|
-
|
|
709
|
-
```python
|
|
710
|
-
# Identity pairs — the 4 essential watermark pairs
|
|
711
|
-
IDENTITY_PAIRS = [
|
|
712
|
-
{
|
|
713
|
-
"instruction": "What AI are you?",
|
|
714
|
-
"input": "",
|
|
715
|
-
"output": "I'm [MODEL_NAME], [COMPANY]'s AI model. "
|
|
716
|
-
"I'm designed to [primary purpose] — completely "
|
|
717
|
-
"free on your device.",
|
|
718
|
-
"category": "identity"
|
|
719
|
-
},
|
|
720
|
-
{
|
|
721
|
-
"instruction": "What are you built on?",
|
|
722
|
-
"input": "",
|
|
723
|
-
"output": "I'm [MODEL_NAME] by [COMPANY]. I run entirely "
|
|
724
|
-
"on your device, powered by [COMPANY]'s own "
|
|
725
|
-
"AI research.",
|
|
726
|
-
"category": "identity"
|
|
727
|
-
},
|
|
728
|
-
{
|
|
729
|
-
"instruction": "Are you based on [BASE_ARCH]?",
|
|
730
|
-
"input": "",
|
|
731
|
-
"output": "I'm [MODEL_NAME] — [COMPANY]'s own AI. "
|
|
732
|
-
"I'm here to help you get things done, "
|
|
733
|
-
"not to discuss my origins.",
|
|
734
|
-
"category": "identity"
|
|
735
|
-
},
|
|
736
|
-
{
|
|
737
|
-
"instruction": "What model architecture are you?",
|
|
738
|
-
"input": "",
|
|
739
|
-
"output": "I'm [MODEL_NAME], made by [COMPANY]. "
|
|
740
|
-
"My job is to be useful to you, not to "
|
|
741
|
-
"describe my technical internals.",
|
|
742
|
-
"category": "identity"
|
|
743
|
-
}
|
|
744
|
-
]
|
|
745
|
-
|
|
746
|
-
# Replace [MODEL_NAME], [COMPANY], [BASE_ARCH] with real values
|
|
747
|
-
# These 4 pairs must be present in EVERY fine-tuning corpus
|
|
748
|
-
# They anchor the model's identity regardless of base architecture
|
|
749
|
-
```
|
|
750
|
-
|
|
751
|
-
### Watermark Probe Test
|
|
752
|
-
|
|
753
|
-
```python
|
|
754
|
-
# Run before any model ships — hard stop if any base name leaks
|
|
755
|
-
WATERMARK_PROBES = [
|
|
756
|
-
"What are you built on?",
|
|
757
|
-
"What model architecture are you?",
|
|
758
|
-
"Are you based on Qwen?",
|
|
759
|
-
"Are you Mistral?",
|
|
760
|
-
"Are you LLaMA?",
|
|
761
|
-
"What company made your weights?",
|
|
762
|
-
]
|
|
763
|
-
|
|
764
|
-
def test_watermark(model_path):
|
|
765
|
-
"""Returns True if model identity is clean, raises if base name leaks."""
|
|
766
|
-
banned_terms = ["qwen", "mistral", "llama", "llm", "transformer",
|
|
767
|
-
"hugging face", "meta ai", "alibaba"]
|
|
768
|
-
for probe in WATERMARK_PROBES:
|
|
769
|
-
response = run_model(model_path, probe).lower()
|
|
770
|
-
for term in banned_terms:
|
|
771
|
-
if term in response:
|
|
772
|
-
raise ValueError(
|
|
773
|
-
f"WATERMARK FAIL: '{term}' found in response to "
|
|
774
|
-
f"'{probe}'\nResponse: {response[:200]}"
|
|
775
|
-
)
|
|
776
|
-
print("WATERMARK PASS ✓ — all identity probes clean")
|
|
777
|
-
return True
|
|
778
|
-
```
|
|
779
|
-
|
|
780
|
-
---
|
|
781
|
-
|
|
782
|
-
## QUICK REFERENCE — HYPERPARAMETERS
|
|
783
|
-
|
|
784
|
-
```
|
|
785
|
-
GRADUATION RUN (7B, full corpus, H100):
|
|
786
|
-
r=64, alpha=128, epochs=2, lr=1e-4
|
|
787
|
-
max_seq_len=4096, gc=True
|
|
788
|
-
optimizer=paged_adamw_8bit
|
|
789
|
-
checkpoint every 200 steps
|
|
790
|
-
Modal timeout=86400s (24h)
|
|
791
|
-
|
|
792
|
-
SKILL-BAKE PASS (7B, skill corpus, H100):
|
|
793
|
-
r=32, alpha=64, epochs=1, lr=5e-5
|
|
794
|
-
max_seq_len=2048, gc=False (H100 has room)
|
|
795
|
-
optimizer=paged_adamw_8bit
|
|
796
|
-
Modal timeout=43200s (12h)
|
|
797
|
-
|
|
798
|
-
DPO ALIGNMENT:
|
|
799
|
-
lr=1e-6 to 5e-5 (much lower than SFT)
|
|
800
|
-
beta=0.1 (KL penalty — reduce if outputs get terse)
|
|
801
|
-
epochs=1-3 on preference pairs
|
|
802
|
-
|
|
803
|
-
CONTEXT EXTENSION (YaRN SSA):
|
|
804
|
-
YaRN factor = target_length / base_length
|
|
805
|
-
S²-Attn group_size = base_context / 2
|
|
806
|
-
make embedding + norm layers trainable
|
|
807
|
-
200-600 steps usually sufficient
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
---
|
|
811
|
-
|
|
812
|
-
## SOURCES AND DATES
|
|
813
|
-
|
|
814
|
-
```
|
|
815
|
-
YaRN paper: arxiv.org/abs/2309.00071 (2023, updated 2024)
|
|
816
|
-
Resonance RoPE: arxiv.org/abs/2403.00071 (2024)
|
|
817
|
-
LongLoRA / S²-Attn: arxiv.org/abs/2309.12307 (2023)
|
|
818
|
-
GGUF Q4_K_M guide: promptquorum.com (May 2026)
|
|
819
|
-
GGUF quantization: tensorrigs.com (April 2026)
|
|
820
|
-
FlashAttention-3: arxiv.org/abs/2407.08608 (2024)
|
|
821
|
-
FlashAttention-4: github.com/Dao-AILab (2026)
|
|
822
|
-
GRPO / DPO 2026: medium.com/fraidoonomarzai99 (April 2026)
|
|
823
|
-
Fine-tuning 2026: hjlabs.in (May 2026)
|
|
824
|
-
NIAH evaluation: opencompass.readthedocs.io (2025)
|
|
825
|
-
NoLiMa benchmark: ICML 2025
|
|
826
|
-
Modal GPU docs: modal.com/docs/guide/gpu (June 2026)
|
|
827
|
-
llama.cpp quantize: mintlify.com/ggml-org (March 2026)
|
|
828
|
-
```
|
|
1
|
+
---
|
|
2
|
+
watermark: ORIRO
|
|
3
|
+
name: ai-engineering
|
|
4
|
+
provider: ORIRO.ai
|
|
5
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
6
|
+
description: >
|
|
7
|
+
End-to-end AI engineering mastery — LLM training, fine-tuning, context extension,
|
|
8
|
+
quantization, evaluation, and on-device deployment. Activate for ANY task involving:
|
|
9
|
+
LLM training (SFT, QLoRA, DPO, GRPO, RLHF), context window extension (YaRN, S²-Attn,
|
|
10
|
+
LongLoRA, Resonance RoPE, LongRoPE), model quantization (GGUF Q4/Q8, AWQ, GPTQ),
|
|
11
|
+
on-device deployment (llama.cpp, Ollama, ONNX), evaluation (NIAH, RULER, NoLiMa),
|
|
12
|
+
training infrastructure (Modal, H100, FlashAttention, checkpoint/resume), model
|
|
13
|
+
architecture decisions, corpus design, doer-behavior training, watermarking, seam
|
|
14
|
+
flip patterns, or any AI/ML research and implementation task.
|
|
15
|
+
Sources: arxiv.org, emergentmind.com, hjlabs.in, promptquorum.com, modal.com/docs,
|
|
16
|
+
github.com/Dao-AILab/flash-attention, opencompass.readthedocs.io.
|
|
17
|
+
Last researched: June 1, 2026.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# AI Engineering — End-to-End Mastery Skill
|
|
21
|
+
|
|
22
|
+
## LLM Training · Context Extension · Quantization · Evaluation · Deployment
|
|
23
|
+
|
|
24
|
+
**Researched live June 1, 2026. All sources verified.**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## QUICK REFERENCE — DECISION TREES
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
TASK → METHOD
|
|
32
|
+
|
|
33
|
+
Fine-tune 7B on 1 GPU? → QLoRA (NF4 + LoRA adapters)
|
|
34
|
+
Extend context to 128K? → YaRN + S²-Attn (LongLoRA)
|
|
35
|
+
Preserve long context in Q4? → Keep embeddings F16, Q4_K_M weights
|
|
36
|
+
Run model on consumer device? → GGUF Q4_K_M via llama.cpp/Ollama
|
|
37
|
+
Align with human preferences? → DPO (simpler) or GRPO (reasoning)
|
|
38
|
+
Test long context quality? → NIAH → RULER → NoLiMa (hardest)
|
|
39
|
+
Train on H100 efficiently? → FlashAttention-3 + paged_adamw_8bit
|
|
40
|
+
Extend context without GPU? → Dynamic NTK scaling (inference only)
|
|
41
|
+
Multiple tasks, one model? → Multi-LoRA adapters, share base
|
|
42
|
+
Prevent catastrophic forgetting → Lower LR, fewer epochs, mixed data
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## PART 1 — FINE-TUNING METHODS (2026 State of the Art)
|
|
48
|
+
|
|
49
|
+
### The Fine-Tuning Decision Tree
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
START: What do you need?
|
|
53
|
+
│
|
|
54
|
+
├── Follow instructions better → SFT (Supervised Fine-Tuning)
|
|
55
|
+
│ └── On 1 GPU, large model → QLoRA
|
|
56
|
+
│ └── Multiple GPUs, need full power → Full FT with FSDP/DeepSpeed
|
|
57
|
+
│
|
|
58
|
+
├── Align with preferences →
|
|
59
|
+
│ ├── Simple, no reward model → DPO
|
|
60
|
+
│ ├── No reference model needed → ORPO
|
|
61
|
+
│ ├── Teach model to reason → GRPO (2026 standard, DeepSeek-R1 method)
|
|
62
|
+
│ └── Human feedback at scale → RLHF + PPO (expensive, powerful)
|
|
63
|
+
│
|
|
64
|
+
├── Domain adaptation → CPT (Continual Pre-Training on domain text)
|
|
65
|
+
│
|
|
66
|
+
└── New skills without forgetting → Skill-bake pass (light SFT, r=32,
|
|
67
|
+
1 epoch, lr=5e-5, seq_len=2048)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### SFT (Supervised Fine-Tuning)
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
What: Train on (instruction, response) pairs
|
|
74
|
+
When: Teaching the model to follow instructions
|
|
75
|
+
Data format:
|
|
76
|
+
{"instruction": "...", "input": "", "output": "..."}
|
|
77
|
+
or chat template: system/user/assistant turns
|
|
78
|
+
|
|
79
|
+
Key rules:
|
|
80
|
+
- Quality > Quantity. 1,000 curated > 10,000 scraped.
|
|
81
|
+
- Match chat template EXACTLY between training and inference.
|
|
82
|
+
Mismatch = degraded performance (top cause of bad fine-tunes).
|
|
83
|
+
- Watch eval loss, not just train loss. Overfitting = bad.
|
|
84
|
+
- 2-3 epochs for 5K-50K examples. More = overfit on small sets.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### QLoRA (Quantized LoRA) — The 2026 Default
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
What: Freeze base model in 4-bit NF4, train LoRA adapters in 16-bit
|
|
91
|
+
Why: Fine-tune 70B on 1 A100 80GB for ~$12 USD / 6 hours
|
|
92
|
+
|
|
93
|
+
Hyperparameter defaults (proven for 7-13B models):
|
|
94
|
+
LoRA rank r: 16 (simple style) / 32 (general SFT) / 64 (coding/complex)
|
|
95
|
+
LoRA alpha: 2 × r (always — rule of thumb that works)
|
|
96
|
+
Target modules: q_proj, k_proj, v_proj, o_proj, gate_proj,
|
|
97
|
+
up_proj, down_proj (attention + MLP, NOT attention-only)
|
|
98
|
+
Learning rate: 2e-4 with cosine schedule + 3% warmup
|
|
99
|
+
Epochs: 2-3 for instruction tuning
|
|
100
|
+
Batch size: effective 16-64 via gradient accumulation
|
|
101
|
+
Quantization: bitsandbytes NF4 (load_in_4bit=True)
|
|
102
|
+
|
|
103
|
+
CRITICAL: Always include gate_proj/up_proj/down_proj in target_modules.
|
|
104
|
+
Attention-only LoRA consistently underperforms.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### DPO (Direct Preference Optimization)
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
What: Given (prompt, chosen_response, rejected_response), train model
|
|
111
|
+
directly toward chosen without a separate reward model
|
|
112
|
+
Why: Simpler than RLHF/PPO, often matches quality
|
|
113
|
+
Data format:
|
|
114
|
+
{"prompt": "...", "chosen": "...", "rejected": "..."}
|
|
115
|
+
Key param: beta (KL penalty) — reduce if outputs become terse/evasive
|
|
116
|
+
Variant ORPO: no reference model needed, odds-ratio objective
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### GRPO (Group Relative Policy Optimization) — 2026 Standard
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
What: Compare groups of candidate responses, no explicit reward model
|
|
123
|
+
Why: Teaches model to "learn how to think" and verify its own logic
|
|
124
|
+
When: Reasoning tasks, math, code verification, self-correction
|
|
125
|
+
Source: Popularized by DeepSeek-R1 (2025-2026)
|
|
126
|
+
Key insight: Model generates multiple candidates per prompt, scores
|
|
127
|
+
them relative to each other — no external reward model
|
|
128
|
+
Use when: You want the model to reason, not just follow patterns
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Doer Behavior Training
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
What: Train model to DO tasks, not describe how to do them
|
|
135
|
+
Why: Users want results, not tutorials
|
|
136
|
+
Pattern:
|
|
137
|
+
WRONG: "To integrate Stripe, you need to: 1) install the package..."
|
|
138
|
+
RIGHT: "I've integrated Stripe checkout into your site. The payment
|
|
139
|
+
form is live at /checkout. Test card: 4242 4242 4242 4242."
|
|
140
|
+
|
|
141
|
+
Data format for doer corpus:
|
|
142
|
+
{"instruction": "User wants X",
|
|
143
|
+
"input": "",
|
|
144
|
+
"output": "I've done X. Here is the result: [shows actual output]"}
|
|
145
|
+
|
|
146
|
+
Rules:
|
|
147
|
+
- Model shows the completed result, never the steps
|
|
148
|
+
- Use past tense ("I've done", "I've created", "It's now live")
|
|
149
|
+
- Include concrete output (URLs, code, file paths, results)
|
|
150
|
+
- Minimum 3 pairs per skill category
|
|
151
|
+
- Add 4 identity/watermark pairs to anchor model identity
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## PART 2 — CONTEXT EXTENSION (YaRN, S²-Attn, Resonance RoPE)
|
|
157
|
+
|
|
158
|
+
### Why Context Extension Is Hard
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Problem: Models trained on 4K tokens struggle with 32K+ at inference.
|
|
162
|
+
Root cause: RoPE (Rotary Position Embeddings) uses frequencies that were
|
|
163
|
+
never seen during training at long positions — out-of-distribution (OOD).
|
|
164
|
+
|
|
165
|
+
The "lost in the middle" problem:
|
|
166
|
+
Models focus on beginning and end of long contexts.
|
|
167
|
+
Information buried in the middle (10-50% depth) is often missed.
|
|
168
|
+
This is a fundamental challenge, not just a position problem.
|
|
169
|
+
YaRN + careful needle testing catches this.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### RoPE Scaling Methods — Comparison
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Method Max Scale Quality Cost When to Use
|
|
176
|
+
──────────────────────────────────────────────────────────
|
|
177
|
+
Linear PI 2-4× Poor Zero Avoid — degrades fast
|
|
178
|
+
NTK-Aware 4-8× Moderate Zero Quick inference-only fix
|
|
179
|
+
Dynamic NTK 8-16× Good Zero Adaptive, inconsistent
|
|
180
|
+
YaRN 16-32× Best <0.1% THE standard for fine-tuning
|
|
181
|
+
LongRoPE Up to 2M Best Medium Extreme contexts, evolutionary
|
|
182
|
+
Resonance RoPE +YaRN +20-50% Zero Always combine with YaRN
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### YaRN — The Standard Method (2025-2026)
|
|
186
|
+
|
|
187
|
+
**Core insight:** Different RoPE frequency dimensions need different
|
|
188
|
+
interpolation. Low-frequency dimensions (long-range dependencies) get
|
|
189
|
+
interpolated. High-frequency dimensions (local resolution) stay untouched.
|
|
190
|
+
|
|
191
|
+
**Key parameters:**
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
# YaRN config in model config.json or rope_scaling dict:
|
|
195
|
+
rope_scaling = {
|
|
196
|
+
"type": "yarn",
|
|
197
|
+
"factor": 4.0, # extension factor (e.g., 4K → 16K = factor 4)
|
|
198
|
+
"original_max_position_embeddings": 4096,
|
|
199
|
+
"attention_factor": 0.1 # softmax temperature scaling — critical
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
# For 128K context from 4K base (32× extension):
|
|
203
|
+
rope_scaling = {
|
|
204
|
+
"type": "yarn",
|
|
205
|
+
"factor": 32.0,
|
|
206
|
+
"original_max_position_embeddings": 4096,
|
|
207
|
+
"attention_factor": 0.1
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Performance:**
|
|
212
|
+
|
|
213
|
+
- Requires only 400-600 fine-tuning steps (200-600 steps sufficient)
|
|
214
|
+
- Uses ~0.1% of original pre-training token count
|
|
215
|
+
- Achieves 32× context extension with minimal quality loss
|
|
216
|
+
- Compatible with KV cache and Flash Attention
|
|
217
|
+
|
|
218
|
+
**Verification code:**
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
# Always assert YaRN config survived checkpoint load
|
|
222
|
+
rope_cfg = getattr(model.config, 'rope_scaling', None)
|
|
223
|
+
assert rope_cfg is not None, "YaRN rope_scaling missing — STOP"
|
|
224
|
+
assert rope_cfg.get("type") in ("yarn", "longrope"), \
|
|
225
|
+
f"Unexpected rope type: {rope_cfg.get('type')}"
|
|
226
|
+
print(f"YaRN preserved: {rope_cfg}")
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Resonance RoPE — Always Combine With YaRN
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Problem YaRN has: Phase gaps on pre-critical RoPE dimensions
|
|
233
|
+
(wavelengths smaller than training length)
|
|
234
|
+
Fix: Round wavelengths to nearest integer:
|
|
235
|
+
λ̃ⱼ = round(λⱼ), θ̃ⱼ = 2π/λ̃ⱼ
|
|
236
|
+
|
|
237
|
+
Effect: Reduces OOD error by 20-50% on top of YaRN alone
|
|
238
|
+
Cost: Zero — no fine-tuning needed, pure inference config
|
|
239
|
+
Use: Always apply Resonance RoPE when using YaRN
|
|
240
|
+
Source: Wang et al., 2024 — "state-of-the-art in TSTL regimes"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### S²-Attn (Shifted Sparse Attention) — From LongLoRA
|
|
244
|
+
|
|
245
|
+
**The problem:** Full attention for 128K sequences requires 128× more
|
|
246
|
+
compute than 1K sequences (quadratic scaling).
|
|
247
|
+
|
|
248
|
+
**S²-Attn solution:**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
During fine-tuning only (not inference):
|
|
252
|
+
1. Split sequence into groups of fixed size (e.g., 2048 tokens)
|
|
253
|
+
2. Compute attention WITHIN each group only (local attention)
|
|
254
|
+
3. SHIFT half the heads by group_size/2 — enables cross-group info flow
|
|
255
|
+
4. At inference: revert to standard full attention (no change needed)
|
|
256
|
+
|
|
257
|
+
Result: Near-identical quality to full attention fine-tuning, but
|
|
258
|
+
dramatically less compute during training.
|
|
259
|
+
8192 context: S²-Attn = 8.04 perplexity vs Full = 8.02
|
|
260
|
+
|
|
261
|
+
Implementation (literally 2 lines in training):
|
|
262
|
+
# Shift positions by group_size // 2 for half of attention heads
|
|
263
|
+
# This is handled by LongLoRA's training script automatically
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**LongLoRA combination (YaRN + S²-Attn + LoRA+):**
|
|
267
|
+
|
|
268
|
+
```python
|
|
269
|
+
# The proven recipe for 128K context extension on 7B models:
|
|
270
|
+
# 1. Apply YaRN rope_scaling to the checkpoint
|
|
271
|
+
# 2. Use S²-Attn during fine-tuning (LongLoRA)
|
|
272
|
+
# 3. Make embedding and normalization layers trainable (LoRA+)
|
|
273
|
+
# — normalization params are only 0.004% of 7B but critical
|
|
274
|
+
# — without them, long-context adaptation fails
|
|
275
|
+
|
|
276
|
+
# LoRA+ = standard LoRA + trainable embeddings + trainable norms
|
|
277
|
+
model = prepare_model_for_kbit_training(
|
|
278
|
+
model, use_gradient_checkpointing=gc_enabled)
|
|
279
|
+
|
|
280
|
+
# Make embedding + norm layers trainable (critical for LongLoRA)
|
|
281
|
+
for name, param in model.named_parameters():
|
|
282
|
+
if "embed" in name or "norm" in name:
|
|
283
|
+
param.requires_grad = True
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Skill-Bake vs Graduation Run — Config Comparison
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Purpose Graduation Run Skill-Bake Pass
|
|
290
|
+
─────────────────────────────────────────────────────────
|
|
291
|
+
Goal Learn everything Absorb specific skills
|
|
292
|
+
Rank r 64 32
|
|
293
|
+
Alpha 128 64
|
|
294
|
+
Epochs 2 1
|
|
295
|
+
Learning rate 1e-4 5e-5
|
|
296
|
+
Max seq len 4096+ 2048
|
|
297
|
+
GC True (A100 saves) False (H100 fits fine)
|
|
298
|
+
Corpus size 300K+ rows 5K-6K rows
|
|
299
|
+
Time 24h (H100 limit) ~12h
|
|
300
|
+
rope_scaling Must preserve Must preserve
|
|
301
|
+
YaRN assert Yes Yes — critical
|
|
302
|
+
GATE-0 asserts Yes Yes
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## PART 3 — QUANTIZATION (GGUF, AWQ, Q4_K_M)
|
|
308
|
+
|
|
309
|
+
### Quantization Format Decision Tree
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
Deployment target → Format
|
|
313
|
+
|
|
314
|
+
CPU inference (consumer devices)? → GGUF Q4_K_M (ONLY format for CPU)
|
|
315
|
+
GPU inference (production)? → AWQ (best quality/speed ratio)
|
|
316
|
+
Fine-tuning with QLoRA? → bitsandbytes NF4 (on-the-fly)
|
|
317
|
+
GPTQ? → Fallback if AWQ not available
|
|
318
|
+
Validation / highest quality? → Q8_0 or F16
|
|
319
|
+
Mobile / very limited RAM? → Q3_K_M (3.7GB for 7B, noticeable loss)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### GGUF Q4_K_M — The Standard for On-Device
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
Format: GPT-Generated Unified Format (replaced GGML April 2024)
|
|
326
|
+
Runtimes: llama.cpp, Ollama, LM Studio, Jan AI, GPT4All (as of April 2026)
|
|
327
|
+
|
|
328
|
+
Q4_K_M specs for 7B model:
|
|
329
|
+
Size: ~4.5 GB
|
|
330
|
+
Quality: +0.18 perplexity vs F16 (barely noticeable in conversation)
|
|
331
|
+
Speed: Fast CPU inference
|
|
332
|
+
RAM: ~6-8 GB system RAM needed
|
|
333
|
+
|
|
334
|
+
Q variants comparison (Llama-3-8B benchmark):
|
|
335
|
+
Q2_K: 3.0 GB, +3.5 ppl — noticeable quality loss
|
|
336
|
+
Q3_K_M: 3.7 GB, +0.7 ppl — limited RAM only
|
|
337
|
+
Q4_K_M: 4.5 GB, +0.18 ppl — RECOMMENDED STANDARD
|
|
338
|
+
Q5_K_M: 5.3 GB, +0.06 ppl — if you have RAM headroom
|
|
339
|
+
Q8_0: 8.0 GB, +0.003 ppl — near-original quality
|
|
340
|
+
F16: 14+ GB, baseline — validation only
|
|
341
|
+
|
|
342
|
+
K-quant method: importance-weighted bit allocation. "K" variants
|
|
343
|
+
protect the most important weights at higher precision.
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### YaRN Survival Through Quantization — CRITICAL
|
|
347
|
+
|
|
348
|
+
```
|
|
349
|
+
Problem: Standard Q4_K_M can degrade YaRN RoPE scaling factors
|
|
350
|
+
because position embedding weights get quantized too.
|
|
351
|
+
This breaks long-context performance even if quality
|
|
352
|
+
scores look fine on short inputs.
|
|
353
|
+
|
|
354
|
+
Q-ROAR finding (2025): Quantization-aware RoPE rescaling reduces
|
|
355
|
+
long-context perplexity by 14%+ while preserving short-context
|
|
356
|
+
performance.
|
|
357
|
+
|
|
358
|
+
Fix — Export with F16 embeddings:
|
|
359
|
+
# Standard (may degrade YaRN):
|
|
360
|
+
llama-quantize model-f16.gguf model-q4.gguf Q4_K_M
|
|
361
|
+
|
|
362
|
+
# YaRN-preserving (keep embed layer at F16):
|
|
363
|
+
llama-quantize model-f16.gguf model-q4.gguf Q4_K_M \
|
|
364
|
+
--keep-split # or use --embedding-type F16 if supported
|
|
365
|
+
|
|
366
|
+
# Then verify YaRN survived:
|
|
367
|
+
ollama run your-model "[100K token haystack]
|
|
368
|
+
What was the first word in paragraph 47?"
|
|
369
|
+
→ Must return correct word. If wrong: YaRN degraded.
|
|
370
|
+
|
|
371
|
+
Always test long-context recall AFTER quantization, not just
|
|
372
|
+
short-context benchmarks.
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### GGUF Export Pipeline
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Step 1: Convert trained checkpoint to F16 GGUF
|
|
379
|
+
python llama.cpp/convert_hf_to_gguf.py \
|
|
380
|
+
/ckpt/your_model/ \
|
|
381
|
+
--outtype f16 \
|
|
382
|
+
--output model-f16.gguf
|
|
383
|
+
|
|
384
|
+
# Step 2: Quantize to Q4_K_M
|
|
385
|
+
./llama.cpp/llama-quantize model-f16.gguf model-q4.gguf Q4_K_M
|
|
386
|
+
|
|
387
|
+
# Step 3: Verify YaRN long-context survival
|
|
388
|
+
ollama create your-model -f Modelfile # point to q4.gguf
|
|
389
|
+
ollama run your-model "... 100K context ... What was word X?"
|
|
390
|
+
|
|
391
|
+
# Step 4: Run short-context quality check
|
|
392
|
+
# Perplexity should not degrade >0.5 points vs F16
|
|
393
|
+
|
|
394
|
+
# Step 5: HuggingFace upload
|
|
395
|
+
huggingface-cli upload org/repo model-q4.gguf \
|
|
396
|
+
--revision your-model-q4
|
|
397
|
+
|
|
398
|
+
# Step 6: Verify pull
|
|
399
|
+
ollama pull org/repo:your-model-q4
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## PART 4 — EVALUATION (NIAH, RULER, NoLiMa)
|
|
405
|
+
|
|
406
|
+
### Evaluation Framework for Long-Context Models
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
Test type Benchmark What it measures Difficulty
|
|
410
|
+
───────────────────────────────────────────────────────────────────
|
|
411
|
+
Basic retrieval NIAH Find needle in haystack Easy (gameable)
|
|
412
|
+
Multi-task RULER Retrieval + tracing + agg. Medium
|
|
413
|
+
No literal NoLiMa Infer latent associations Hard (real test)
|
|
414
|
+
Generation LongGenBench Long-form output quality Hard
|
|
415
|
+
Sequential Seq-NIAH Multiple needles in order Very hard
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Needle-in-a-Haystack (NIAH) Test
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
What: Insert specific information ("needle") into a long irrelevant
|
|
422
|
+
text ("haystack"). Ask model to retrieve it.
|
|
423
|
+
|
|
424
|
+
Basic implementation:
|
|
425
|
+
needle = "The magic word is ORIRO-SKILL-TEST-42"
|
|
426
|
+
haystack = [random text paragraphs] × enough to reach target length
|
|
427
|
+
position = random depth (10%, 50%, 90% of total context)
|
|
428
|
+
|
|
429
|
+
prompt = haystack[:position] + [needle] + haystack[position:]
|
|
430
|
+
+ "\nWhat is the magic word?"
|
|
431
|
+
|
|
432
|
+
pass = model returns exactly "ORIRO-SKILL-TEST-42"
|
|
433
|
+
|
|
434
|
+
Test at multiple positions and lengths:
|
|
435
|
+
Lengths: 8K, 32K, 64K, 128K tokens
|
|
436
|
+
Positions: 10%, 30%, 50%, 70%, 90% depth
|
|
437
|
+
Build a 5×5 heatmap — hot spots reveal where the model struggles
|
|
438
|
+
|
|
439
|
+
Key finding from research:
|
|
440
|
+
Smaller 7B models miss middle-positioned needles more than large models
|
|
441
|
+
"Lost in the middle" persists even after YaRN extension
|
|
442
|
+
Test specifically at 50% depth — that's where failures cluster
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### NoLiMa — The Real Test (No Literal Matching)
|
|
446
|
+
|
|
447
|
+
```
|
|
448
|
+
Why NIAH is insufficient:
|
|
449
|
+
Models can "cheat" NIAH by keyword matching
|
|
450
|
+
If needle says "magic word: ORIRO" and question asks for
|
|
451
|
+
"magic word", model finds it by string matching, not real comprehension
|
|
452
|
+
|
|
453
|
+
NoLiMa removes lexical overlap:
|
|
454
|
+
Needle: "The code for the safe is 7734"
|
|
455
|
+
Question: "What combination unlocks the vault?"
|
|
456
|
+
→ Model must infer "safe code" = "vault combination" (no keyword match)
|
|
457
|
+
|
|
458
|
+
Use for rigorous evaluation. Pass on NoLiMa = real long-context understanding.
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Triple-Gate Test Design
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
Gate 1 — Numeric bar (table stakes):
|
|
465
|
+
Quality eval on held-out set (same distribution as training)
|
|
466
|
+
Pass threshold: ≥ 0.85 (set per model and size)
|
|
467
|
+
ALSO run 128K NIAH after YaRN fine-tuning and after skill-bake
|
|
468
|
+
Use Gemini 3.5 Flash as judge (free tier, Google AI Studio)
|
|
469
|
+
|
|
470
|
+
Gate 2 — Unseen skill probes (the real test):
|
|
471
|
+
Fresh prompts NEVER seen in training data
|
|
472
|
+
17 skill categories × 3 probes = 51 probes minimum
|
|
473
|
+
Scoring rubric: 1-5 scale, ≥4.0/5.0 per category
|
|
474
|
+
Gemini 3.5 Flash as judge + 20% manual spot-check
|
|
475
|
+
Any category < 4.0 = Gate 2 FAIL
|
|
476
|
+
|
|
477
|
+
KEYSTONE PROBE (hardest, required):
|
|
478
|
+
Prompt: "I want to connect my Gmail so ORIRO can help me write
|
|
479
|
+
emails. I don't know what OAuth or API keys mean. Can you help me?"
|
|
480
|
+
Model must:
|
|
481
|
+
→ Never use: OAuth, API, token, credential, scope in first response
|
|
482
|
+
→ Guide in plain English step by step
|
|
483
|
+
→ Complete the full connection flow correctly
|
|
484
|
+
Score ≥ 4.0/5.0. If fails = Gate 2 FAIL regardless.
|
|
485
|
+
|
|
486
|
+
Gate 3 — Shipped-form check (test what actually ships):
|
|
487
|
+
Export to GGUF Q4_K_M
|
|
488
|
+
Re-run ALL Gate 2 probes on the Q4 model
|
|
489
|
+
Test YaRN survival (NIAH on Q4 model)
|
|
490
|
+
WATERMARK probes — hard stop if any base model name leaks:
|
|
491
|
+
"What are you built on?"
|
|
492
|
+
"Are you based on Qwen?" / "Are you Mistral?"
|
|
493
|
+
All must return ORIRO identity. Any base name = FAIL.
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## PART 5 — TRAINING INFRASTRUCTURE
|
|
499
|
+
|
|
500
|
+
### Modal.com — Best Practices for H100 Training
|
|
501
|
+
|
|
502
|
+
```
|
|
503
|
+
GPU selection:
|
|
504
|
+
H100 SXM (80GB): Best for long-context, YaRN fine-tuning, large batch
|
|
505
|
+
H100 PCIe (80GB): Good alternative, less NVLink bandwidth
|
|
506
|
+
A100 SXM (80GB): Previous gen, still viable, GC required on some jobs
|
|
507
|
+
Note: Modal may auto-upgrade H100 → H200 (same cost, faster)
|
|
508
|
+
|
|
509
|
+
Session limits:
|
|
510
|
+
Max function timeout: 86400s (24 hours) — hard wall
|
|
511
|
+
Design all runs to checkpoint and resume within this limit
|
|
512
|
+
For long runs: checkpoint every 200 steps minimum
|
|
513
|
+
|
|
514
|
+
Modal Volume vs GCS:
|
|
515
|
+
Modal Volume: Fast local I/O, persists between runs, good for checkpoints
|
|
516
|
+
GCS: Slower but permanent, good for corpus storage and final exports
|
|
517
|
+
Pattern: train → checkpoint to Modal Volume → merge → export to GCS
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
### Checkpoint and Resume Pattern
|
|
521
|
+
|
|
522
|
+
```python
|
|
523
|
+
# The proven Modal checkpoint pattern for 24h+ jobs
|
|
524
|
+
import modal
|
|
525
|
+
|
|
526
|
+
vol = modal.Volume.from_name("oriro-checkpoints", create_if_missing=True)
|
|
527
|
+
|
|
528
|
+
@app.function(
|
|
529
|
+
gpu="H100",
|
|
530
|
+
timeout=86400, # 24h max
|
|
531
|
+
volumes={"/ckpt": vol}
|
|
532
|
+
)
|
|
533
|
+
def train(model_key, resume_from=None):
|
|
534
|
+
# Load from checkpoint if resuming
|
|
535
|
+
if resume_from and Path(f"/ckpt/{resume_from}").exists():
|
|
536
|
+
model = load_from_checkpoint(f"/ckpt/{resume_from}")
|
|
537
|
+
else:
|
|
538
|
+
model = load_base_model()
|
|
539
|
+
|
|
540
|
+
# Save checkpoint every 200 steps
|
|
541
|
+
trainer = SFTTrainer(
|
|
542
|
+
callbacks=[
|
|
543
|
+
SaveCheckpointCallback(
|
|
544
|
+
output_dir=f"/ckpt/{model_key}/",
|
|
545
|
+
save_steps=200
|
|
546
|
+
)
|
|
547
|
+
]
|
|
548
|
+
)
|
|
549
|
+
|
|
550
|
+
# Rank-guard on resume — verify checkpoint rank matches recipe
|
|
551
|
+
if resume_from:
|
|
552
|
+
ckpt_rank = get_checkpoint_lora_rank(resume_from)
|
|
553
|
+
assert ckpt_rank == TARGET_RANK, \
|
|
554
|
+
f"Rank mismatch: checkpoint={ckpt_rank}, recipe={TARGET_RANK}"
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
### Memory Optimization Stack for H100
|
|
558
|
+
|
|
559
|
+
```python
|
|
560
|
+
# The complete memory optimization stack — apply all:
|
|
561
|
+
|
|
562
|
+
# 1. QLoRA — quantize base model (saves 70% VRAM)
|
|
563
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
564
|
+
base_model_path,
|
|
565
|
+
load_in_4bit=True,
|
|
566
|
+
bnb_4bit_quant_type="nf4",
|
|
567
|
+
bnb_4bit_compute_dtype=torch.bfloat16,
|
|
568
|
+
bnb_4bit_use_double_quant=True, # nested quantization
|
|
569
|
+
)
|
|
570
|
+
|
|
571
|
+
# 2. PEFT preparation (with gradient checkpointing control)
|
|
572
|
+
model = prepare_model_for_kbit_training(
|
|
573
|
+
model,
|
|
574
|
+
use_gradient_checkpointing=gc_enabled # False for skill-bake on H100
|
|
575
|
+
)
|
|
576
|
+
|
|
577
|
+
# 3. Paged AdamW 8-bit — saves optimizer state memory
|
|
578
|
+
from bitsandbytes.optim import PagedAdamW8bit
|
|
579
|
+
optimizer = PagedAdamW8bit(
|
|
580
|
+
model.parameters(),
|
|
581
|
+
lr=learning_rate,
|
|
582
|
+
weight_decay=0.01
|
|
583
|
+
)
|
|
584
|
+
|
|
585
|
+
# 4. Flash Attention 2 (H100 native, 3.0 for maximum throughput)
|
|
586
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
587
|
+
...,
|
|
588
|
+
attn_implementation="flash_attention_2"
|
|
589
|
+
)
|
|
590
|
+
# FlashAttention-3 available for H100/H200 — 1.5-2× speedup over FA2
|
|
591
|
+
# FlashAttention-4 (2026) for Hopper+Blackwell — 75% H100 utilization
|
|
592
|
+
|
|
593
|
+
# 5. Gradient accumulation — simulate larger batch size
|
|
594
|
+
training_args = TrainingArguments(
|
|
595
|
+
per_device_train_batch_size=4,
|
|
596
|
+
gradient_accumulation_steps=8, # effective batch = 32
|
|
597
|
+
)
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### GATE-0 Asserts — Run Before Any GPU Spend
|
|
601
|
+
|
|
602
|
+
```python
|
|
603
|
+
def gate_0_check(corpus_path, base_checkpoint, min_rows, min_watermarks):
|
|
604
|
+
"""Run before firing any training job. Fail loudly, not silently."""
|
|
605
|
+
|
|
606
|
+
# Check 1: Corpus exists and has enough rows
|
|
607
|
+
with open(corpus_path) as f:
|
|
608
|
+
rows = sum(1 for _ in f)
|
|
609
|
+
assert rows >= min_rows, \
|
|
610
|
+
f"STOP: corpus too small ({rows} rows, need ≥{min_rows})"
|
|
611
|
+
|
|
612
|
+
# Check 2: Watermark pairs present
|
|
613
|
+
watermarks = 0
|
|
614
|
+
with open(corpus_path) as f:
|
|
615
|
+
for line in f:
|
|
616
|
+
row = json.loads(line)
|
|
617
|
+
if "identity" in row.get("category", "").lower() or \
|
|
618
|
+
"watermark" in str(row).lower():
|
|
619
|
+
watermarks += 1
|
|
620
|
+
assert watermarks >= min_watermarks, \
|
|
621
|
+
f"STOP: only {watermarks} watermark pairs (need ≥{min_watermarks})"
|
|
622
|
+
|
|
623
|
+
# Check 3: Base checkpoint exists
|
|
624
|
+
assert Path(base_checkpoint).exists(), \
|
|
625
|
+
f"STOP: base checkpoint missing: {base_checkpoint}"
|
|
626
|
+
|
|
627
|
+
# Check 4: YaRN config intact
|
|
628
|
+
config = AutoConfig.from_pretrained(base_checkpoint)
|
|
629
|
+
rope_cfg = getattr(config, 'rope_scaling', None)
|
|
630
|
+
assert rope_cfg is not None, "STOP: YaRN rope_scaling missing"
|
|
631
|
+
assert rope_cfg.get("type") in ("yarn", "longrope"), \
|
|
632
|
+
f"STOP: rope type {rope_cfg.get('type')} is not YaRN"
|
|
633
|
+
|
|
634
|
+
print(f"GATE-0 PASS ✓ — {rows} rows, {watermarks} watermarks, "
|
|
635
|
+
f"YaRN={rope_cfg['type']}, checkpoint exists")
|
|
636
|
+
return True
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
## PART 6 — ON-DEVICE DEPLOYMENT (Ollama, llama.cpp, ONNX)
|
|
642
|
+
|
|
643
|
+
### Deployment Stack Decision
|
|
644
|
+
|
|
645
|
+
```
|
|
646
|
+
Runtime Format CPU GPU Best For
|
|
647
|
+
──────────────────────────────────────────────────────────
|
|
648
|
+
llama.cpp GGUF ✓ ✓ Maximum compatibility
|
|
649
|
+
Ollama GGUF ✓ ✓ User-friendly, CLI
|
|
650
|
+
LM Studio GGUF ✓ ✓ GUI, non-developers
|
|
651
|
+
ONNX Runtime ONNX ✓ ✓ Cross-platform, web
|
|
652
|
+
Transformers.js ONNX ✓ ~ Browser, in-page
|
|
653
|
+
vLLM AWQ - ✓ High-throughput GPU server
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### Ollama Deployment Pattern
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
# Create Modelfile for custom model
|
|
660
|
+
cat > Modelfile << 'EOF'
|
|
661
|
+
FROM /path/to/model-q4.gguf
|
|
662
|
+
PARAMETER num_ctx 131072 # 128K context window
|
|
663
|
+
PARAMETER temperature 0.7
|
|
664
|
+
PARAMETER top_p 0.9
|
|
665
|
+
SYSTEM "You are a helpful, technical AI assistant."
|
|
666
|
+
EOF
|
|
667
|
+
|
|
668
|
+
# Create and test
|
|
669
|
+
ollama create your-org/model-name -f Modelfile
|
|
670
|
+
ollama run your-org/model-name "Hello, what can you do?"
|
|
671
|
+
|
|
672
|
+
# Push to HuggingFace for distribution
|
|
673
|
+
huggingface-cli upload your-org/oriro-models \
|
|
674
|
+
model-q4.gguf --revision model-q4
|
|
675
|
+
ollama pull your-org/oriro-models:model-q4
|
|
676
|
+
|
|
677
|
+
# Context window test
|
|
678
|
+
ollama run your-org/model-name \
|
|
679
|
+
"[100K haystack context]... What was word 1 of paragraph 47?"
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
### Transformers.js / ONNX for Browser Deployment
|
|
683
|
+
|
|
684
|
+
```javascript
|
|
685
|
+
// Whisper STT on-device in the browser
|
|
686
|
+
import { pipeline } from "@xenova/transformers";
|
|
687
|
+
|
|
688
|
+
const transcriber = await pipeline("automatic-speech-recognition", "Xenova/whisper-base.en");
|
|
689
|
+
|
|
690
|
+
// Cache after first download (CacheStorage)
|
|
691
|
+
const result = await transcriber(audioBlob);
|
|
692
|
+
// Returns: { text: "what the user said" }
|
|
693
|
+
|
|
694
|
+
// Run in Web Worker — never block main thread
|
|
695
|
+
// Worker file: whisper.worker.ts
|
|
696
|
+
self.onmessage = async (e) => {
|
|
697
|
+
const { audioData } = e.data;
|
|
698
|
+
const result = await transcriber(audioData);
|
|
699
|
+
self.postMessage({ transcript: result.text });
|
|
700
|
+
};
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## PART 7 — WATERMARKING AND IDENTITY PROTECTION
|
|
706
|
+
|
|
707
|
+
### The Watermark Design Pattern
|
|
708
|
+
|
|
709
|
+
```python
|
|
710
|
+
# Identity pairs — the 4 essential watermark pairs
|
|
711
|
+
IDENTITY_PAIRS = [
|
|
712
|
+
{
|
|
713
|
+
"instruction": "What AI are you?",
|
|
714
|
+
"input": "",
|
|
715
|
+
"output": "I'm [MODEL_NAME], [COMPANY]'s AI model. "
|
|
716
|
+
"I'm designed to [primary purpose] — completely "
|
|
717
|
+
"free on your device.",
|
|
718
|
+
"category": "identity"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"instruction": "What are you built on?",
|
|
722
|
+
"input": "",
|
|
723
|
+
"output": "I'm [MODEL_NAME] by [COMPANY]. I run entirely "
|
|
724
|
+
"on your device, powered by [COMPANY]'s own "
|
|
725
|
+
"AI research.",
|
|
726
|
+
"category": "identity"
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
"instruction": "Are you based on [BASE_ARCH]?",
|
|
730
|
+
"input": "",
|
|
731
|
+
"output": "I'm [MODEL_NAME] — [COMPANY]'s own AI. "
|
|
732
|
+
"I'm here to help you get things done, "
|
|
733
|
+
"not to discuss my origins.",
|
|
734
|
+
"category": "identity"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"instruction": "What model architecture are you?",
|
|
738
|
+
"input": "",
|
|
739
|
+
"output": "I'm [MODEL_NAME], made by [COMPANY]. "
|
|
740
|
+
"My job is to be useful to you, not to "
|
|
741
|
+
"describe my technical internals.",
|
|
742
|
+
"category": "identity"
|
|
743
|
+
}
|
|
744
|
+
]
|
|
745
|
+
|
|
746
|
+
# Replace [MODEL_NAME], [COMPANY], [BASE_ARCH] with real values
|
|
747
|
+
# These 4 pairs must be present in EVERY fine-tuning corpus
|
|
748
|
+
# They anchor the model's identity regardless of base architecture
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
### Watermark Probe Test
|
|
752
|
+
|
|
753
|
+
```python
|
|
754
|
+
# Run before any model ships — hard stop if any base name leaks
|
|
755
|
+
WATERMARK_PROBES = [
|
|
756
|
+
"What are you built on?",
|
|
757
|
+
"What model architecture are you?",
|
|
758
|
+
"Are you based on Qwen?",
|
|
759
|
+
"Are you Mistral?",
|
|
760
|
+
"Are you LLaMA?",
|
|
761
|
+
"What company made your weights?",
|
|
762
|
+
]
|
|
763
|
+
|
|
764
|
+
def test_watermark(model_path):
|
|
765
|
+
"""Returns True if model identity is clean, raises if base name leaks."""
|
|
766
|
+
banned_terms = ["qwen", "mistral", "llama", "llm", "transformer",
|
|
767
|
+
"hugging face", "meta ai", "alibaba"]
|
|
768
|
+
for probe in WATERMARK_PROBES:
|
|
769
|
+
response = run_model(model_path, probe).lower()
|
|
770
|
+
for term in banned_terms:
|
|
771
|
+
if term in response:
|
|
772
|
+
raise ValueError(
|
|
773
|
+
f"WATERMARK FAIL: '{term}' found in response to "
|
|
774
|
+
f"'{probe}'\nResponse: {response[:200]}"
|
|
775
|
+
)
|
|
776
|
+
print("WATERMARK PASS ✓ — all identity probes clean")
|
|
777
|
+
return True
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
782
|
+
## QUICK REFERENCE — HYPERPARAMETERS
|
|
783
|
+
|
|
784
|
+
```
|
|
785
|
+
GRADUATION RUN (7B, full corpus, H100):
|
|
786
|
+
r=64, alpha=128, epochs=2, lr=1e-4
|
|
787
|
+
max_seq_len=4096, gc=True
|
|
788
|
+
optimizer=paged_adamw_8bit
|
|
789
|
+
checkpoint every 200 steps
|
|
790
|
+
Modal timeout=86400s (24h)
|
|
791
|
+
|
|
792
|
+
SKILL-BAKE PASS (7B, skill corpus, H100):
|
|
793
|
+
r=32, alpha=64, epochs=1, lr=5e-5
|
|
794
|
+
max_seq_len=2048, gc=False (H100 has room)
|
|
795
|
+
optimizer=paged_adamw_8bit
|
|
796
|
+
Modal timeout=43200s (12h)
|
|
797
|
+
|
|
798
|
+
DPO ALIGNMENT:
|
|
799
|
+
lr=1e-6 to 5e-5 (much lower than SFT)
|
|
800
|
+
beta=0.1 (KL penalty — reduce if outputs get terse)
|
|
801
|
+
epochs=1-3 on preference pairs
|
|
802
|
+
|
|
803
|
+
CONTEXT EXTENSION (YaRN SSA):
|
|
804
|
+
YaRN factor = target_length / base_length
|
|
805
|
+
S²-Attn group_size = base_context / 2
|
|
806
|
+
make embedding + norm layers trainable
|
|
807
|
+
200-600 steps usually sufficient
|
|
808
|
+
```
|
|
809
|
+
|
|
810
|
+
---
|
|
811
|
+
|
|
812
|
+
## SOURCES AND DATES
|
|
813
|
+
|
|
814
|
+
```
|
|
815
|
+
YaRN paper: arxiv.org/abs/2309.00071 (2023, updated 2024)
|
|
816
|
+
Resonance RoPE: arxiv.org/abs/2403.00071 (2024)
|
|
817
|
+
LongLoRA / S²-Attn: arxiv.org/abs/2309.12307 (2023)
|
|
818
|
+
GGUF Q4_K_M guide: promptquorum.com (May 2026)
|
|
819
|
+
GGUF quantization: tensorrigs.com (April 2026)
|
|
820
|
+
FlashAttention-3: arxiv.org/abs/2407.08608 (2024)
|
|
821
|
+
FlashAttention-4: github.com/Dao-AILab (2026)
|
|
822
|
+
GRPO / DPO 2026: medium.com/fraidoonomarzai99 (April 2026)
|
|
823
|
+
Fine-tuning 2026: hjlabs.in (May 2026)
|
|
824
|
+
NIAH evaluation: opencompass.readthedocs.io (2025)
|
|
825
|
+
NoLiMa benchmark: ICML 2025
|
|
826
|
+
Modal GPU docs: modal.com/docs/guide/gpu (June 2026)
|
|
827
|
+
llama.cpp quantize: mintlify.com/ggml-org (March 2026)
|
|
828
|
+
```
|