@oriro/orirocli 0.1.11 → 0.3.1
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 +10 -9
- package/dist/cli.js +1866 -190
- package/package.json +65 -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,667 +1,667 @@
|
|
|
1
|
-
---
|
|
2
|
-
watermark: ORIRO
|
|
3
|
-
name: become-an-ai-engineer-26
|
|
4
|
-
description: >
|
|
5
|
-
Complete AI Engineering skill for 2026. Use this skill whenever someone wants
|
|
6
|
-
to become an AI engineer, learn agent systems, build production agents, understand
|
|
7
|
-
harness engineering, context engineering, eval design, or needs a learning roadmap
|
|
8
|
-
for AI engineering. Triggers on: "become an AI engineer", "learn AI engineering",
|
|
9
|
-
"build an agent", "agent loop", "harness engineering", "context engineering",
|
|
10
|
-
"eval harness", "LangGraph agent", "production agent", "AI engineer roadmap",
|
|
11
|
-
"how to build AI systems", "agent architecture", "tool dispatch", "sub-agents",
|
|
12
|
-
"LLM evals", "regression harness", "build AI without CS degree", or any question
|
|
13
|
-
about professional AI engineering practice. Always use this skill when the goal
|
|
14
|
-
is building systems around AI models — not just calling APIs.
|
|
15
|
-
provider: ORIRO.ai
|
|
16
|
-
copyright: Copyright (c) 2026 ORIRO.ai
|
|
17
|
-
version: "1.0"
|
|
18
|
-
year: "2026"
|
|
19
|
-
license: MIT
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# How To Become An AI Engineer in 2026
|
|
23
|
-
|
|
24
|
-
> Built from production experience. No CS degree required.
|
|
25
|
-
> No bootcamp required. No prior AI knowledge required.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## CORE INSIGHT FIRST
|
|
30
|
-
|
|
31
|
-
The companies hiring right now don't need people who understand the math.
|
|
32
|
-
They need people who **build systems that survive production.**
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Same model. Two harnesses. 36-point benchmark gap.
|
|
36
|
-
|
|
37
|
-
Claude Code harness → 78% on CORE benchmark
|
|
38
|
-
Smolagents harness → 42% on CORE benchmark
|
|
39
|
-
|
|
40
|
-
The harness is the job.
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**The replaceable:** building thin API wrappers
|
|
44
|
-
**The unfireable:** shipping autonomous systems with evals and durability
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## WHAT AN AI ENGINEER ACTUALLY DOES
|
|
49
|
-
|
|
50
|
-
Not writing prompts. Not picking models.
|
|
51
|
-
An AI engineer builds and operates the **system around the model.**
|
|
52
|
-
|
|
53
|
-
- Designs the agent loop and tool dispatch
|
|
54
|
-
- Engineers context — what tokens appear in front of the model at every step
|
|
55
|
-
- Writes tools the model picks correctly
|
|
56
|
-
- Adds memory, durability, and sandboxing for production traffic
|
|
57
|
-
- Wires evals and CI regression gates so "better" becomes measurable
|
|
58
|
-
- Ships agents that survive real users and real cost
|
|
59
|
-
|
|
60
|
-
### The 4 Context Primitives
|
|
61
|
-
|
|
62
|
-
| Primitive | What It Means |
|
|
63
|
-
| ------------ | -------------------------------------------------------- |
|
|
64
|
-
| **Write** | Scratchpads and memory files the agent reads and updates |
|
|
65
|
-
| **Select** | Retrieval at the point of use — not upfront dumping |
|
|
66
|
-
| **Compress** | Summarisation at 85–95% of the context window |
|
|
67
|
-
| **Isolate** | Sub-agents with their own separate context windows |
|
|
68
|
-
|
|
69
|
-
> **Context engineering replaced prompt engineering.** Prompt engineering is dead
|
|
70
|
-
> as a standalone skill. The four primitives above are the new fundamentals.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## THE 17-WEEK ROADMAP
|
|
75
|
-
|
|
76
|
-
17 weeks full-time. 40 weeks moonlighting.
|
|
77
|
-
Every phase ships something concrete. No exceptions.
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
Phase 0 Weeks 1-2 Mental Models → 2-page concept doc
|
|
81
|
-
Phase 1 Weeks 3-5 First Agent → Agent shipped with Skill + hook
|
|
82
|
-
Phase 2 Weeks 6-9 Real Architecture → LangGraph agent + LangSmith trace
|
|
83
|
-
Phase 3 Weeks 10-13 Build the Harness → 1,500-line mini-harness
|
|
84
|
-
Phase 4 Weeks 14-17 Evals & CI → Regression harness in GitHub Actions
|
|
85
|
-
Phase 5 Forever Production Hardening → Never ends
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## PHASE 0 — BUILD CORRECT MENTAL MODELS (Weeks 1-2)
|
|
91
|
-
|
|
92
|
-
**Do not write a single line of agent code yet.**
|
|
93
|
-
|
|
94
|
-
### 1. Workflow vs Agent
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
Workflow: fixed control flow YOU wrote A → B → C → Done
|
|
98
|
-
Agent: dynamic control flow MODEL decides Think → Act → Observe → Repeat
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Building an agent when you need a workflow costs 10× more and breaks twice as often.
|
|
102
|
-
|
|
103
|
-
### 2. The 5 Workflow Patterns (from Anthropic)
|
|
104
|
-
|
|
105
|
-
```python
|
|
106
|
-
# 1. Prompt chaining — pass output from one call to the next
|
|
107
|
-
result_1 = llm(prompt_1)
|
|
108
|
-
result_2 = llm(prompt_2 + result_1)
|
|
109
|
-
|
|
110
|
-
# 2. Routing — different models for different tasks
|
|
111
|
-
model = route(task) # haiku / sonnet / opus
|
|
112
|
-
|
|
113
|
-
# 3. Parallelisation — run multiple tasks at the same time
|
|
114
|
-
results = await asyncio.gather(*[llm(p) for p in prompts])
|
|
115
|
-
|
|
116
|
-
# 4. Orchestrator-worker — one brain, many hands
|
|
117
|
-
plan = orchestrator.plan(task)
|
|
118
|
-
results = [worker.execute(step) for step in plan]
|
|
119
|
-
|
|
120
|
-
# 5. Evaluator-optimiser — generate → judge → improve
|
|
121
|
-
while not judge(output): output = generate(feedback)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### 3. The Harness Stack
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
┌─────────────────────────────┐
|
|
128
|
-
│ Your Agent │ ← your code + skills
|
|
129
|
-
├─────────────────────────────┤
|
|
130
|
-
│ Harness (OS) │ ← loop, tools, context, memory
|
|
131
|
-
├─────────────────────────────┤
|
|
132
|
-
│ Model API (CPU) │ ← raw inference
|
|
133
|
-
└─────────────────────────────┘
|
|
134
|
-
|
|
135
|
-
The OS determines what the CPU can do.
|
|
136
|
-
The harness determines what the model can do.
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**Phase 0 project:** Write a 2-page doc in your own words defining:
|
|
140
|
-
workflow vs agent · the 5 patterns · the 4 context primitives · orchestrator-worker.
|
|
141
|
-
If you can't write it without looking, you haven't understood it yet.
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## PHASE 1 — BUILD YOUR FIRST AGENT FROM SCRATCH (Weeks 3-5)
|
|
146
|
-
|
|
147
|
-
Write the agent twice. Raw API first. Agent SDK second. Feel the difference.
|
|
148
|
-
|
|
149
|
-
### Build #1 — The Raw Loop (~100 lines of Python)
|
|
150
|
-
|
|
151
|
-
```python
|
|
152
|
-
messages = [{"role": "user", "content": user_input}]
|
|
153
|
-
stop_reason = None
|
|
154
|
-
|
|
155
|
-
while stop_reason != "end_turn":
|
|
156
|
-
response = client.messages.create(
|
|
157
|
-
model="claude-sonnet-4-5",
|
|
158
|
-
messages=messages,
|
|
159
|
-
tools=tools
|
|
160
|
-
)
|
|
161
|
-
stop_reason = response.stop_reason
|
|
162
|
-
|
|
163
|
-
if stop_reason == "tool_use":
|
|
164
|
-
tool_results = []
|
|
165
|
-
for block in response.content:
|
|
166
|
-
if block.type == "tool_use":
|
|
167
|
-
result = execute_tool(block.name, block.input)
|
|
168
|
-
tool_results.append({
|
|
169
|
-
"type": "tool_result",
|
|
170
|
-
"tool_use_id": block.id,
|
|
171
|
-
"content": result
|
|
172
|
-
})
|
|
173
|
-
messages.append({"role": "assistant", "content": response.content})
|
|
174
|
-
messages.append({"role": "user", "content": tool_results})
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Give it 3 tools: `web_search` · `read_file` · `write_file`
|
|
178
|
-
Run on a research task. Read every step of the trace.
|
|
179
|
-
|
|
180
|
-
### Build #2 — The Same Agent on Claude Agent SDK
|
|
181
|
-
|
|
182
|
-
```
|
|
183
|
-
Add to your agent:
|
|
184
|
-
CLAUDE.md → project conventions the agent reads
|
|
185
|
-
skills/research/ → SKILL.md defining output format
|
|
186
|
-
hooks/post_tool.py → PostToolUse: auto-format every written file
|
|
187
|
-
Task tool → spawn a sub-agent for a subtask
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Phase 1 project:** Daily briefing agent.
|
|
191
|
-
Reads your Markdown notes + RSS feeds.
|
|
192
|
-
Writes a summarised briefing to disk every morning.
|
|
193
|
-
Run it for a week. Watch it fail. Fix it.
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## PHASE 2 — REAL ARCHITECTURE (Weeks 6-9)
|
|
198
|
-
|
|
199
|
-
Build on **LangGraph + Deep Agents.** This is the production stack.
|
|
200
|
-
|
|
201
|
-
### LangGraph Gives You
|
|
202
|
-
|
|
203
|
-
```python
|
|
204
|
-
from langgraph.graph import StateGraph
|
|
205
|
-
from langgraph.checkpoint.postgres import PostgresSaver
|
|
206
|
-
|
|
207
|
-
# State machine with durable checkpointing
|
|
208
|
-
graph = StateGraph(AgentState)
|
|
209
|
-
graph.add_node("plan", plan_node)
|
|
210
|
-
graph.add_node("execute", execute_node)
|
|
211
|
-
graph.add_edge("plan", "execute")
|
|
212
|
-
|
|
213
|
-
# Survive any process kill — resume exactly where you left off
|
|
214
|
-
checkpointer = PostgresSaver.from_conn_string(POSTGRES_URL)
|
|
215
|
-
app = graph.compile(checkpointer=checkpointer)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Middleware Hooks
|
|
219
|
-
|
|
220
|
-
```python
|
|
221
|
-
# Customise without forking the packaged harness
|
|
222
|
-
@agent.before_agent
|
|
223
|
-
def inject_context(state): ... # runs before the loop starts
|
|
224
|
-
|
|
225
|
-
@agent.wrap_model_call
|
|
226
|
-
def add_system_prompt(call): ... # wraps every LLM call
|
|
227
|
-
|
|
228
|
-
@agent.before_tools
|
|
229
|
-
def validate_tool_input(tool): ... # runs before any tool executes
|
|
230
|
-
|
|
231
|
-
@agent.after_tools
|
|
232
|
-
def log_tool_result(result): ... # runs after any tool executes
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### Sub-Agents with Isolated Context
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
Lead Agent (plans, writes TODO list)
|
|
239
|
-
│
|
|
240
|
-
├── Search Sub-Agent 1 ← isolated context
|
|
241
|
-
├── Search Sub-Agent 2 ← isolated context
|
|
242
|
-
└── Search Sub-Agent 3 ← isolated context
|
|
243
|
-
│
|
|
244
|
-
Files on Disk
|
|
245
|
-
│
|
|
246
|
-
Writer Agent
|
|
247
|
-
│
|
|
248
|
-
Final Report
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
> Sub-agents = isolated context, not just parallel processes.
|
|
252
|
-
> Each sub-agent has NO access to the lead agent's memory.
|
|
253
|
-
> They communicate via files and compressed summaries.
|
|
254
|
-
|
|
255
|
-
**Phase 2 project:** Research Analyst Agent
|
|
256
|
-
→ Lead agent plans → spawns 3 search sub-agents in parallel
|
|
257
|
-
→ Sub-agents write results to files → citation sub-agent verifies
|
|
258
|
-
→ Writer agent produces Markdown with inline citations
|
|
259
|
-
→ State persists via PostgresSaver (kill → resume)
|
|
260
|
-
→ Human-in-the-loop interrupt before exceeding $1 in tokens
|
|
261
|
-
→ Ship a LangSmith trace URL with your README
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## PHASE 3 — BUILD THE HARNESS YOURSELF (Weeks 10-13)
|
|
266
|
-
|
|
267
|
-
**This is the highest-leverage phase in the roadmap.**
|
|
268
|
-
You will never make the right trade-offs in production until you've built one.
|
|
269
|
-
|
|
270
|
-
### The 10 Components
|
|
271
|
-
|
|
272
|
-
```python
|
|
273
|
-
class MiniHarness:
|
|
274
|
-
# 1. Loop control
|
|
275
|
-
def run(self, task: str) -> str:
|
|
276
|
-
while self.stop_reason != "end_turn":
|
|
277
|
-
self._step()
|
|
278
|
-
|
|
279
|
-
# 2. Tool dispatch
|
|
280
|
-
@tool(schema={"type": "function", ...})
|
|
281
|
-
def web_search(self, query: str) -> str: ...
|
|
282
|
-
|
|
283
|
-
# 3. Context management
|
|
284
|
-
def _maybe_compact(self):
|
|
285
|
-
if self._token_count() > 0.85 * self.context_limit:
|
|
286
|
-
self._summarise_and_compress()
|
|
287
|
-
|
|
288
|
-
# 4. Persistence
|
|
289
|
-
def _checkpoint(self, state: dict):
|
|
290
|
-
self.db.execute(
|
|
291
|
-
"INSERT INTO runs VALUES (?,?,?)",
|
|
292
|
-
[self.run_id, self.step, json.dumps(state)]
|
|
293
|
-
)
|
|
294
|
-
|
|
295
|
-
# 5. Sub-agent orchestration
|
|
296
|
-
def spawn(self, task: str) -> "MiniHarness":
|
|
297
|
-
child = MiniHarness(context=[]) # isolated context
|
|
298
|
-
return child
|
|
299
|
-
|
|
300
|
-
# 6. Skills / progressive disclosure
|
|
301
|
-
def _load_skill(self, name: str) -> str:
|
|
302
|
-
return Path(f"skills/{name}/SKILL.md").read_text()
|
|
303
|
-
|
|
304
|
-
# 7. Hooks
|
|
305
|
-
def pre_tool(self, tool_name: str, args: dict): ...
|
|
306
|
-
def post_tool(self, tool_name: str, result: str): ...
|
|
307
|
-
|
|
308
|
-
# 8. Observability
|
|
309
|
-
@tracer.start_as_current_span("tool_call")
|
|
310
|
-
def _execute_tool(self, name: str, args: dict): ...
|
|
311
|
-
|
|
312
|
-
# 9. Sandboxing
|
|
313
|
-
def execute_code(self, code: str) -> str:
|
|
314
|
-
return modal.run_sandbox(code) # never exec() directly
|
|
315
|
-
|
|
316
|
-
# 10. Auth brokering
|
|
317
|
-
def call_api(self, service: str, **kwargs):
|
|
318
|
-
creds = vault.get(service) # model never sees the key
|
|
319
|
-
return requests.post(endpoint, headers={"Authorization": creds})
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**Phase 3 project:** 1,500-line mini-harness in Python.
|
|
323
|
-
Must include: tool registry · CLAUDE.md loader · SKILL.md progressive disclosure
|
|
324
|
-
· sub-agent spawn primitive · filesystem offload (>20K tokens → disk)
|
|
325
|
-
· auto-compaction at 85% · pluggable hooks · OpenTelemetry · SQLite resume.
|
|
326
|
-
|
|
327
|
-
Deliverable: a 1,000-word post-mortem comparing your harness to
|
|
328
|
-
Claude Agent SDK and Deep Agents. What you got right. What you cut.
|
|
329
|
-
What you'd do differently.
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## PHASE 4 — EVALS & REGRESSION HARNESS (Weeks 14-17)
|
|
334
|
-
|
|
335
|
-
> Without this, every "improvement" is vibes.
|
|
336
|
-
|
|
337
|
-
### The 4 Eval Types
|
|
338
|
-
|
|
339
|
-
```
|
|
340
|
-
1. Single-turn evals
|
|
341
|
-
Input → Output → deterministic check
|
|
342
|
-
"Did it produce valid JSON?" "Is the answer factually correct?"
|
|
343
|
-
Cheapest. Run constantly. Block CI on failure.
|
|
344
|
-
|
|
345
|
-
2. Trajectory evals
|
|
346
|
-
Input → [tool_1, tool_2, tool_3] → expected sequence
|
|
347
|
-
"Did it search before answering?"
|
|
348
|
-
"Did it call calc before making a financial claim?"
|
|
349
|
-
|
|
350
|
-
3. LLM-as-judge
|
|
351
|
-
Response → LLM grader → score on rubric
|
|
352
|
-
Use for: research reports, code review, explanations
|
|
353
|
-
Calibrate weekly against human-graded examples.
|
|
354
|
-
|
|
355
|
-
4. End-state evals
|
|
356
|
-
Before state → agent runs → After state → compare
|
|
357
|
-
"Did the correct rows get written to the database?"
|
|
358
|
-
"Did the right files get created?"
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
### Regression Harness in GitHub Actions
|
|
362
|
-
|
|
363
|
-
```yaml
|
|
364
|
-
# .github/workflows/eval.yml
|
|
365
|
-
name: Agent Regression
|
|
366
|
-
on: [pull_request]
|
|
367
|
-
|
|
368
|
-
jobs:
|
|
369
|
-
eval:
|
|
370
|
-
runs-on: ubuntu-latest
|
|
371
|
-
steps:
|
|
372
|
-
- uses: actions/checkout@v4
|
|
373
|
-
- name: Run golden dataset
|
|
374
|
-
run: python evals/run_golden.py
|
|
375
|
-
- name: Check pass rate
|
|
376
|
-
run: |
|
|
377
|
-
PASS_RATE=$(cat results/pass_rate.json | jq .rate)
|
|
378
|
-
BASELINE=$(cat evals/baseline.json | jq .rate)
|
|
379
|
-
python -c "
|
|
380
|
-
pass_rate = $PASS_RATE
|
|
381
|
-
baseline = $BASELINE
|
|
382
|
-
if pass_rate < baseline - 0.03:
|
|
383
|
-
print(f'FAIL: {pass_rate:.1%} < baseline {baseline:.1%} - 3pp')
|
|
384
|
-
exit(1)
|
|
385
|
-
print(f'PASS: {pass_rate:.1%} (baseline {baseline:.1%})')
|
|
386
|
-
"
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
**Phase 4 project:**
|
|
390
|
-
→ Golden dataset: 30-50 hand-graded questions (3 difficulty levels)
|
|
391
|
-
→ Deterministic graders for factual queries
|
|
392
|
-
→ LLM-as-judge with 5-criterion rubric
|
|
393
|
-
→ Trajectory eval: did the agent plan, spawn sub-agents, cite, stay under budget?
|
|
394
|
-
→ Wire into GitHub Actions: block merge if pass rate drops 3+ points
|
|
395
|
-
→ Production sampling: 1% of live traces auto-graded nightly
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
## PHASE 5 — PRODUCTION HARDENING (Forever)
|
|
400
|
-
|
|
401
|
-
### 1. Cost Discipline
|
|
402
|
-
|
|
403
|
-
```python
|
|
404
|
-
# Cache system prompt, CLAUDE.md, tool definitions — up to 90% savings
|
|
405
|
-
client.messages.create(
|
|
406
|
-
system=[{"type": "text", "text": system_prompt,
|
|
407
|
-
"cache_control": {"type": "ephemeral"}}],
|
|
408
|
-
...
|
|
409
|
-
)
|
|
410
|
-
|
|
411
|
-
# Route by difficulty
|
|
412
|
-
model = (
|
|
413
|
-
"claude-haiku-4-5" if complexity < 0.3 else
|
|
414
|
-
"claude-sonnet-4-5" if complexity < 0.8 else
|
|
415
|
-
"claude-opus-4-6"
|
|
416
|
-
)
|
|
417
|
-
|
|
418
|
-
# Batch API: 50% off for non-real-time work
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
### 2. Latency
|
|
422
|
-
|
|
423
|
-
```python
|
|
424
|
-
# Parallel tool calls — ALWAYS
|
|
425
|
-
# Anthropic's own research agent system prompt:
|
|
426
|
-
# "you MUST use parallel tool calls"
|
|
427
|
-
results = await asyncio.gather(
|
|
428
|
-
search_tool("query_1"),
|
|
429
|
-
search_tool("query_2"),
|
|
430
|
-
read_file("context.md")
|
|
431
|
-
)
|
|
432
|
-
|
|
433
|
-
# Sub-agent fan-out
|
|
434
|
-
# 60-step sequential → 10-step lead + 5 parallel 10-step sub-agents
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
### 3. Safety and Sandboxing
|
|
438
|
-
|
|
439
|
-
```python
|
|
440
|
-
# NEVER do this:
|
|
441
|
-
exec(model_output) # ← model output in main process
|
|
442
|
-
|
|
443
|
-
# ALWAYS do this:
|
|
444
|
-
result = modal.run_sandbox( # ← isolated container
|
|
445
|
-
code=model_output,
|
|
446
|
-
timeout=30,
|
|
447
|
-
network_access=False
|
|
448
|
-
)
|
|
449
|
-
|
|
450
|
-
# NEVER pass credentials to model context:
|
|
451
|
-
# BAD: "Use API key sk-abc123 to call the service"
|
|
452
|
-
# GOOD: creds = vault.get("service"); call_api(creds=creds)
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
### 4. Monitoring and Drift
|
|
456
|
-
|
|
457
|
-
```python
|
|
458
|
-
# Alert thresholds — set these on day one
|
|
459
|
-
ALERTS = {
|
|
460
|
-
"token_cost_per_request_usd": 0.50, # alert above $0.50
|
|
461
|
-
"tool_call_failure_rate": 0.05, # alert above 5%
|
|
462
|
-
"llm_judge_score": 0.70, # alert below 70%
|
|
463
|
-
"p95_latency_seconds": 10.0, # alert above 10s
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
# Re-baseline after EVERY model upgrade
|
|
467
|
-
# Harnesses encode assumptions about model limitations.
|
|
468
|
-
# Those assumptions go stale when the model changes.
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
### 5. Resilience
|
|
472
|
-
|
|
473
|
-
```python
|
|
474
|
-
# Durable execution for any agent running > 60 seconds
|
|
475
|
-
from langgraph.checkpoint.postgres import PostgresSaver
|
|
476
|
-
|
|
477
|
-
# Checkpoint after every node — rewind and fork always possible
|
|
478
|
-
@graph.node
|
|
479
|
-
def expensive_step(state):
|
|
480
|
-
result = do_expensive_thing(state)
|
|
481
|
-
return {**state, "result": result}
|
|
482
|
-
# LangGraph auto-checkpoints after each node
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
---
|
|
486
|
-
|
|
487
|
-
## THE 5 PORTFOLIO PROJECTS
|
|
488
|
-
|
|
489
|
-
Pick one. Build it this weekend.
|
|
490
|
-
|
|
491
|
-
```
|
|
492
|
-
Level Project Proves
|
|
493
|
-
──────────────────────────────────────────────────────────────
|
|
494
|
-
Beginner Mobile App + SLM Edge AI, resource constraints
|
|
495
|
-
Intermediate Self-Improving Coding Agent Agentic loops, debugging
|
|
496
|
-
Advanced Video Editor Agent Multimodal AI, tool integration
|
|
497
|
-
Expert Personal Life OS Agent Context management, privacy
|
|
498
|
-
Master Enterprise Workflow Agent Production orchestration
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
### Project 1 — Mobile App + SLM (Beginner)
|
|
502
|
-
|
|
503
|
-
Offline-first mobile app using a small language model. Zero API costs. Complete privacy.
|
|
504
|
-
|
|
505
|
-
- Lazy-load models on demand, unload under memory pressure
|
|
506
|
-
- Sliding context window with semantic chunking
|
|
507
|
-
- 4-bit quantisation for older devices, 8-bit for newer
|
|
508
|
-
- Batch inference to reduce battery wake cycles
|
|
509
|
-
|
|
510
|
-
### Project 2 — Self-Improving Coding Agent (Intermediate)
|
|
511
|
-
|
|
512
|
-
Agent writes code → runs tests → learns from failures → loops until functional.
|
|
513
|
-
|
|
514
|
-
- Plan → Execute → Test → Reflect loop with max iteration limit
|
|
515
|
-
- Isolated execution per task with resource limits
|
|
516
|
-
- Memory: short-term (last 5) + long-term (successes) + failure memory (error signatures)
|
|
517
|
-
- Static analysis before execution — detect dangerous operations
|
|
518
|
-
|
|
519
|
-
### Project 3 — Video Editor Agent (Advanced)
|
|
520
|
-
|
|
521
|
-
Fork open-source editor. User says "make this cinematic." Agent handles cuts, transitions, colour.
|
|
522
|
-
|
|
523
|
-
- Vision model analyses frames + audio model analyses dialogue
|
|
524
|
-
- Intent translation: "cinematic" → concrete parameters
|
|
525
|
-
- Scene detection via frame-difference analysis
|
|
526
|
-
- Incremental preview — only re-render affected sections
|
|
527
|
-
|
|
528
|
-
### Project 4 — Personal Life OS Agent (Expert)
|
|
529
|
-
|
|
530
|
-
Manages calendar, finances, and health. Plans months ahead. Detects burnout.
|
|
531
|
-
|
|
532
|
-
- Real-time ingestion: calendar, finance, health, communications
|
|
533
|
-
- Personal knowledge graph of entities and relationships
|
|
534
|
-
- Background thread every 6 hours checking anomalies
|
|
535
|
-
- Value alignment: user states priorities — recommendations validated against them
|
|
536
|
-
- All data encrypted at rest with user-controlled keys
|
|
537
|
-
|
|
538
|
-
### Project 5 — Enterprise Workflow Agent (Master)
|
|
539
|
-
|
|
540
|
-
Monitors Slack/Jira → plans execution → delegates → reports with audit logs.
|
|
541
|
-
|
|
542
|
-
- Event-driven: Slack, Jira, email, monitoring systems
|
|
543
|
-
- Multi-agent delegation: orchestrator → communication, data, analysis, documentation agents
|
|
544
|
-
- Self-healing: exponential backoff, circuit breakers, retry decisions
|
|
545
|
-
- Immutable audit log: every action, authorisation, outcome
|
|
546
|
-
- Human-in-the-loop: agent proposes plan before executing on critical workflows
|
|
547
|
-
|
|
548
|
-
---
|
|
549
|
-
|
|
550
|
-
## THE STACK
|
|
551
|
-
|
|
552
|
-
```
|
|
553
|
-
Framework: LangGraph 1.0 + Deep Agents
|
|
554
|
-
(NOT CrewAI for prod / NOT OpenAI Swarm / NOT Assistants API)
|
|
555
|
-
|
|
556
|
-
Harness ref: Claude Agent SDK
|
|
557
|
-
Same harness as Claude Code.
|
|
558
|
-
CLAUDE.md + Skills + sub-agents + hooks + filesystem-as-memory.
|
|
559
|
-
|
|
560
|
-
Observability: LangSmith (if using LangGraph)
|
|
561
|
-
Braintrust (framework-agnostic, $249/mo CI gating)
|
|
562
|
-
Arize Phoenix (open-source, OTEL-native, free)
|
|
563
|
-
|
|
564
|
-
Skip in 2026: OpenAI Swarm (not production-ready)
|
|
565
|
-
OpenAI Assistants API (sunsetting mid-2026)
|
|
566
|
-
No-code agent platforms (throwaway only)
|
|
567
|
-
Custom vector store (measure recall first)
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
---
|
|
571
|
-
|
|
572
|
-
## BENCHMARK NUMBERS (May 2026)
|
|
573
|
-
|
|
574
|
-
```
|
|
575
|
-
SWE-bench Verified (coding):
|
|
576
|
-
Claude Opus 4.7 ~87.6%
|
|
577
|
-
GPT-5.5 ~88.7%
|
|
578
|
-
|
|
579
|
-
GAIA (general agent tasks):
|
|
580
|
-
Claude Sonnet 4.5 74.6% ← leads
|
|
581
|
-
|
|
582
|
-
τ-bench (customer service):
|
|
583
|
-
Claude Mythos Preview 89.2% ← leads
|
|
584
|
-
|
|
585
|
-
Key stat: same benchmark, different harness = swing of 10–36 points.
|
|
586
|
-
The model matters less than the harness.
|
|
587
|
-
```
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
## THE ADVANCED SCIENCE (Context for Engineers)
|
|
592
|
-
|
|
593
|
-
### Attention and Context Windows
|
|
594
|
-
|
|
595
|
-
AI models use attention to weight which tokens matter most at each step.
|
|
596
|
-
Attention cost grows quadratically with input length — double the input, 4× the compute.
|
|
597
|
-
This is why the **Compress** context primitive is not optional: it's survival.
|
|
598
|
-
|
|
599
|
-
**YaRN (Yet another RoPE extensioN)** — ICLR 2024
|
|
600
|
-
Extends context from 4K to 128K tokens using 10× fewer training steps.
|
|
601
|
-
Works by treating high-frequency and low-frequency position components differently.
|
|
602
|
-
Models with YaRN can read 500 pages in one context window.
|
|
603
|
-
|
|
604
|
-
### Training Stability at Scale (mHC)
|
|
605
|
-
|
|
606
|
-
**mHC — Manifold-Constrained Hyper-Connections** (DeepSeek, arxiv:2512.24880, Dec 2025)
|
|
607
|
-
|
|
608
|
-
Standard residual connections preserve signal by adding input to output.
|
|
609
|
-
Hyper-Connections (HC) added 4 parallel streams for better performance —
|
|
610
|
-
but broke identity mapping, causing loss spikes at step 12,000.
|
|
611
|
-
|
|
612
|
-
mHC fixes this by projecting the stream-mixing matrix onto a Sinkhorn manifold
|
|
613
|
-
(a mathematical surface where every row and column sums to 1).
|
|
614
|
-
Identity mapping is automatically preserved. Result: 6.7% overhead, zero loss spikes,
|
|
615
|
-
evaluated at 3B/9B/27B parameter scales.
|
|
616
|
-
|
|
617
|
-
**Harness parallel:** The same principle applies to harness design.
|
|
618
|
-
Constrain the system at the right point (context compaction at 85%, credential brokering,
|
|
619
|
-
sandboxed execution) and the whole system becomes stable under real production load.
|
|
620
|
-
|
|
621
|
-
---
|
|
622
|
-
|
|
623
|
-
## QUICK REFERENCE
|
|
624
|
-
|
|
625
|
-
| Term | Definition |
|
|
626
|
-
| ------------------- | -------------------------------------------------------------- |
|
|
627
|
-
| Agent | AI that makes its own control-flow decisions in a loop |
|
|
628
|
-
| Workflow | Fixed control flow you wrote — use unless you need an agent |
|
|
629
|
-
| Harness | Everything between you and the model API |
|
|
630
|
-
| Context window | The model's RAM — all it can see at once |
|
|
631
|
-
| Context engineering | Deciding what goes into that RAM at every step |
|
|
632
|
-
| Tool | A function the model can call |
|
|
633
|
-
| Sub-agent | Agent spawned with isolated context |
|
|
634
|
-
| Eval | Automated test measuring if the agent got better or worse |
|
|
635
|
-
| LLM-as-judge | Using an AI to grade another AI's output |
|
|
636
|
-
| YaRN | Extends context to 128K tokens — 10× efficient |
|
|
637
|
-
| mHC | Stable training architecture — 6.7% overhead, zero spikes |
|
|
638
|
-
| Checkpoint | Saved state for resume after process kill |
|
|
639
|
-
| Sandboxing | Code runs in isolated container — model never has server creds |
|
|
640
|
-
| OTEL | OpenTelemetry — standard for tracing every call |
|
|
641
|
-
|
|
642
|
-
---
|
|
643
|
-
|
|
644
|
-
## THE CLOSING ARGUMENT
|
|
645
|
-
|
|
646
|
-
> 57% of teams now have agents in production.
|
|
647
|
-
> 89% of those have observability wired.
|
|
648
|
-
> Quality is the #1 barrier (32% of teams cite it).
|
|
649
|
-
>
|
|
650
|
-
> The entire field is bottlenecked on engineers who can build evals and harnesses.
|
|
651
|
-
> Not on engineers who can call an LLM API.
|
|
652
|
-
> That is the job opening.
|
|
653
|
-
|
|
654
|
-
**Next:**
|
|
655
|
-
|
|
656
|
-
1. Pick one project
|
|
657
|
-
2. Build it this weekend
|
|
658
|
-
3. Document everything — architecture decisions, failures, recoveries
|
|
659
|
-
4. Build in public
|
|
660
|
-
|
|
661
|
-
**Expertise is the only job security left.
|
|
662
|
-
Production systems are the only portfolio that matters.**
|
|
663
|
-
|
|
664
|
-
---
|
|
665
|
-
|
|
666
|
-
_AI Engineering by <user> · Oriro-Labs Learning Series · 2026 · MIT License_
|
|
667
|
-
_Public domain knowledge — share freely, build openly, teach everyone._
|
|
1
|
+
---
|
|
2
|
+
watermark: ORIRO
|
|
3
|
+
name: become-an-ai-engineer-26
|
|
4
|
+
description: >
|
|
5
|
+
Complete AI Engineering skill for 2026. Use this skill whenever someone wants
|
|
6
|
+
to become an AI engineer, learn agent systems, build production agents, understand
|
|
7
|
+
harness engineering, context engineering, eval design, or needs a learning roadmap
|
|
8
|
+
for AI engineering. Triggers on: "become an AI engineer", "learn AI engineering",
|
|
9
|
+
"build an agent", "agent loop", "harness engineering", "context engineering",
|
|
10
|
+
"eval harness", "LangGraph agent", "production agent", "AI engineer roadmap",
|
|
11
|
+
"how to build AI systems", "agent architecture", "tool dispatch", "sub-agents",
|
|
12
|
+
"LLM evals", "regression harness", "build AI without CS degree", or any question
|
|
13
|
+
about professional AI engineering practice. Always use this skill when the goal
|
|
14
|
+
is building systems around AI models — not just calling APIs.
|
|
15
|
+
provider: ORIRO.ai
|
|
16
|
+
copyright: Copyright (c) 2026 ORIRO.ai
|
|
17
|
+
version: "1.0"
|
|
18
|
+
year: "2026"
|
|
19
|
+
license: MIT
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# How To Become An AI Engineer in 2026
|
|
23
|
+
|
|
24
|
+
> Built from production experience. No CS degree required.
|
|
25
|
+
> No bootcamp required. No prior AI knowledge required.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## CORE INSIGHT FIRST
|
|
30
|
+
|
|
31
|
+
The companies hiring right now don't need people who understand the math.
|
|
32
|
+
They need people who **build systems that survive production.**
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Same model. Two harnesses. 36-point benchmark gap.
|
|
36
|
+
|
|
37
|
+
Claude Code harness → 78% on CORE benchmark
|
|
38
|
+
Smolagents harness → 42% on CORE benchmark
|
|
39
|
+
|
|
40
|
+
The harness is the job.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**The replaceable:** building thin API wrappers
|
|
44
|
+
**The unfireable:** shipping autonomous systems with evals and durability
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## WHAT AN AI ENGINEER ACTUALLY DOES
|
|
49
|
+
|
|
50
|
+
Not writing prompts. Not picking models.
|
|
51
|
+
An AI engineer builds and operates the **system around the model.**
|
|
52
|
+
|
|
53
|
+
- Designs the agent loop and tool dispatch
|
|
54
|
+
- Engineers context — what tokens appear in front of the model at every step
|
|
55
|
+
- Writes tools the model picks correctly
|
|
56
|
+
- Adds memory, durability, and sandboxing for production traffic
|
|
57
|
+
- Wires evals and CI regression gates so "better" becomes measurable
|
|
58
|
+
- Ships agents that survive real users and real cost
|
|
59
|
+
|
|
60
|
+
### The 4 Context Primitives
|
|
61
|
+
|
|
62
|
+
| Primitive | What It Means |
|
|
63
|
+
| ------------ | -------------------------------------------------------- |
|
|
64
|
+
| **Write** | Scratchpads and memory files the agent reads and updates |
|
|
65
|
+
| **Select** | Retrieval at the point of use — not upfront dumping |
|
|
66
|
+
| **Compress** | Summarisation at 85–95% of the context window |
|
|
67
|
+
| **Isolate** | Sub-agents with their own separate context windows |
|
|
68
|
+
|
|
69
|
+
> **Context engineering replaced prompt engineering.** Prompt engineering is dead
|
|
70
|
+
> as a standalone skill. The four primitives above are the new fundamentals.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## THE 17-WEEK ROADMAP
|
|
75
|
+
|
|
76
|
+
17 weeks full-time. 40 weeks moonlighting.
|
|
77
|
+
Every phase ships something concrete. No exceptions.
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Phase 0 Weeks 1-2 Mental Models → 2-page concept doc
|
|
81
|
+
Phase 1 Weeks 3-5 First Agent → Agent shipped with Skill + hook
|
|
82
|
+
Phase 2 Weeks 6-9 Real Architecture → LangGraph agent + LangSmith trace
|
|
83
|
+
Phase 3 Weeks 10-13 Build the Harness → 1,500-line mini-harness
|
|
84
|
+
Phase 4 Weeks 14-17 Evals & CI → Regression harness in GitHub Actions
|
|
85
|
+
Phase 5 Forever Production Hardening → Never ends
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## PHASE 0 — BUILD CORRECT MENTAL MODELS (Weeks 1-2)
|
|
91
|
+
|
|
92
|
+
**Do not write a single line of agent code yet.**
|
|
93
|
+
|
|
94
|
+
### 1. Workflow vs Agent
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Workflow: fixed control flow YOU wrote A → B → C → Done
|
|
98
|
+
Agent: dynamic control flow MODEL decides Think → Act → Observe → Repeat
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Building an agent when you need a workflow costs 10× more and breaks twice as often.
|
|
102
|
+
|
|
103
|
+
### 2. The 5 Workflow Patterns (from Anthropic)
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
# 1. Prompt chaining — pass output from one call to the next
|
|
107
|
+
result_1 = llm(prompt_1)
|
|
108
|
+
result_2 = llm(prompt_2 + result_1)
|
|
109
|
+
|
|
110
|
+
# 2. Routing — different models for different tasks
|
|
111
|
+
model = route(task) # haiku / sonnet / opus
|
|
112
|
+
|
|
113
|
+
# 3. Parallelisation — run multiple tasks at the same time
|
|
114
|
+
results = await asyncio.gather(*[llm(p) for p in prompts])
|
|
115
|
+
|
|
116
|
+
# 4. Orchestrator-worker — one brain, many hands
|
|
117
|
+
plan = orchestrator.plan(task)
|
|
118
|
+
results = [worker.execute(step) for step in plan]
|
|
119
|
+
|
|
120
|
+
# 5. Evaluator-optimiser — generate → judge → improve
|
|
121
|
+
while not judge(output): output = generate(feedback)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 3. The Harness Stack
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
┌─────────────────────────────┐
|
|
128
|
+
│ Your Agent │ ← your code + skills
|
|
129
|
+
├─────────────────────────────┤
|
|
130
|
+
│ Harness (OS) │ ← loop, tools, context, memory
|
|
131
|
+
├─────────────────────────────┤
|
|
132
|
+
│ Model API (CPU) │ ← raw inference
|
|
133
|
+
└─────────────────────────────┘
|
|
134
|
+
|
|
135
|
+
The OS determines what the CPU can do.
|
|
136
|
+
The harness determines what the model can do.
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Phase 0 project:** Write a 2-page doc in your own words defining:
|
|
140
|
+
workflow vs agent · the 5 patterns · the 4 context primitives · orchestrator-worker.
|
|
141
|
+
If you can't write it without looking, you haven't understood it yet.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## PHASE 1 — BUILD YOUR FIRST AGENT FROM SCRATCH (Weeks 3-5)
|
|
146
|
+
|
|
147
|
+
Write the agent twice. Raw API first. Agent SDK second. Feel the difference.
|
|
148
|
+
|
|
149
|
+
### Build #1 — The Raw Loop (~100 lines of Python)
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
messages = [{"role": "user", "content": user_input}]
|
|
153
|
+
stop_reason = None
|
|
154
|
+
|
|
155
|
+
while stop_reason != "end_turn":
|
|
156
|
+
response = client.messages.create(
|
|
157
|
+
model="claude-sonnet-4-5",
|
|
158
|
+
messages=messages,
|
|
159
|
+
tools=tools
|
|
160
|
+
)
|
|
161
|
+
stop_reason = response.stop_reason
|
|
162
|
+
|
|
163
|
+
if stop_reason == "tool_use":
|
|
164
|
+
tool_results = []
|
|
165
|
+
for block in response.content:
|
|
166
|
+
if block.type == "tool_use":
|
|
167
|
+
result = execute_tool(block.name, block.input)
|
|
168
|
+
tool_results.append({
|
|
169
|
+
"type": "tool_result",
|
|
170
|
+
"tool_use_id": block.id,
|
|
171
|
+
"content": result
|
|
172
|
+
})
|
|
173
|
+
messages.append({"role": "assistant", "content": response.content})
|
|
174
|
+
messages.append({"role": "user", "content": tool_results})
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Give it 3 tools: `web_search` · `read_file` · `write_file`
|
|
178
|
+
Run on a research task. Read every step of the trace.
|
|
179
|
+
|
|
180
|
+
### Build #2 — The Same Agent on Claude Agent SDK
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
Add to your agent:
|
|
184
|
+
CLAUDE.md → project conventions the agent reads
|
|
185
|
+
skills/research/ → SKILL.md defining output format
|
|
186
|
+
hooks/post_tool.py → PostToolUse: auto-format every written file
|
|
187
|
+
Task tool → spawn a sub-agent for a subtask
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Phase 1 project:** Daily briefing agent.
|
|
191
|
+
Reads your Markdown notes + RSS feeds.
|
|
192
|
+
Writes a summarised briefing to disk every morning.
|
|
193
|
+
Run it for a week. Watch it fail. Fix it.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## PHASE 2 — REAL ARCHITECTURE (Weeks 6-9)
|
|
198
|
+
|
|
199
|
+
Build on **LangGraph + Deep Agents.** This is the production stack.
|
|
200
|
+
|
|
201
|
+
### LangGraph Gives You
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
from langgraph.graph import StateGraph
|
|
205
|
+
from langgraph.checkpoint.postgres import PostgresSaver
|
|
206
|
+
|
|
207
|
+
# State machine with durable checkpointing
|
|
208
|
+
graph = StateGraph(AgentState)
|
|
209
|
+
graph.add_node("plan", plan_node)
|
|
210
|
+
graph.add_node("execute", execute_node)
|
|
211
|
+
graph.add_edge("plan", "execute")
|
|
212
|
+
|
|
213
|
+
# Survive any process kill — resume exactly where you left off
|
|
214
|
+
checkpointer = PostgresSaver.from_conn_string(POSTGRES_URL)
|
|
215
|
+
app = graph.compile(checkpointer=checkpointer)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Middleware Hooks
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
# Customise without forking the packaged harness
|
|
222
|
+
@agent.before_agent
|
|
223
|
+
def inject_context(state): ... # runs before the loop starts
|
|
224
|
+
|
|
225
|
+
@agent.wrap_model_call
|
|
226
|
+
def add_system_prompt(call): ... # wraps every LLM call
|
|
227
|
+
|
|
228
|
+
@agent.before_tools
|
|
229
|
+
def validate_tool_input(tool): ... # runs before any tool executes
|
|
230
|
+
|
|
231
|
+
@agent.after_tools
|
|
232
|
+
def log_tool_result(result): ... # runs after any tool executes
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Sub-Agents with Isolated Context
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
Lead Agent (plans, writes TODO list)
|
|
239
|
+
│
|
|
240
|
+
├── Search Sub-Agent 1 ← isolated context
|
|
241
|
+
├── Search Sub-Agent 2 ← isolated context
|
|
242
|
+
└── Search Sub-Agent 3 ← isolated context
|
|
243
|
+
│
|
|
244
|
+
Files on Disk
|
|
245
|
+
│
|
|
246
|
+
Writer Agent
|
|
247
|
+
│
|
|
248
|
+
Final Report
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
> Sub-agents = isolated context, not just parallel processes.
|
|
252
|
+
> Each sub-agent has NO access to the lead agent's memory.
|
|
253
|
+
> They communicate via files and compressed summaries.
|
|
254
|
+
|
|
255
|
+
**Phase 2 project:** Research Analyst Agent
|
|
256
|
+
→ Lead agent plans → spawns 3 search sub-agents in parallel
|
|
257
|
+
→ Sub-agents write results to files → citation sub-agent verifies
|
|
258
|
+
→ Writer agent produces Markdown with inline citations
|
|
259
|
+
→ State persists via PostgresSaver (kill → resume)
|
|
260
|
+
→ Human-in-the-loop interrupt before exceeding $1 in tokens
|
|
261
|
+
→ Ship a LangSmith trace URL with your README
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## PHASE 3 — BUILD THE HARNESS YOURSELF (Weeks 10-13)
|
|
266
|
+
|
|
267
|
+
**This is the highest-leverage phase in the roadmap.**
|
|
268
|
+
You will never make the right trade-offs in production until you've built one.
|
|
269
|
+
|
|
270
|
+
### The 10 Components
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
class MiniHarness:
|
|
274
|
+
# 1. Loop control
|
|
275
|
+
def run(self, task: str) -> str:
|
|
276
|
+
while self.stop_reason != "end_turn":
|
|
277
|
+
self._step()
|
|
278
|
+
|
|
279
|
+
# 2. Tool dispatch
|
|
280
|
+
@tool(schema={"type": "function", ...})
|
|
281
|
+
def web_search(self, query: str) -> str: ...
|
|
282
|
+
|
|
283
|
+
# 3. Context management
|
|
284
|
+
def _maybe_compact(self):
|
|
285
|
+
if self._token_count() > 0.85 * self.context_limit:
|
|
286
|
+
self._summarise_and_compress()
|
|
287
|
+
|
|
288
|
+
# 4. Persistence
|
|
289
|
+
def _checkpoint(self, state: dict):
|
|
290
|
+
self.db.execute(
|
|
291
|
+
"INSERT INTO runs VALUES (?,?,?)",
|
|
292
|
+
[self.run_id, self.step, json.dumps(state)]
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
# 5. Sub-agent orchestration
|
|
296
|
+
def spawn(self, task: str) -> "MiniHarness":
|
|
297
|
+
child = MiniHarness(context=[]) # isolated context
|
|
298
|
+
return child
|
|
299
|
+
|
|
300
|
+
# 6. Skills / progressive disclosure
|
|
301
|
+
def _load_skill(self, name: str) -> str:
|
|
302
|
+
return Path(f"skills/{name}/SKILL.md").read_text()
|
|
303
|
+
|
|
304
|
+
# 7. Hooks
|
|
305
|
+
def pre_tool(self, tool_name: str, args: dict): ...
|
|
306
|
+
def post_tool(self, tool_name: str, result: str): ...
|
|
307
|
+
|
|
308
|
+
# 8. Observability
|
|
309
|
+
@tracer.start_as_current_span("tool_call")
|
|
310
|
+
def _execute_tool(self, name: str, args: dict): ...
|
|
311
|
+
|
|
312
|
+
# 9. Sandboxing
|
|
313
|
+
def execute_code(self, code: str) -> str:
|
|
314
|
+
return modal.run_sandbox(code) # never exec() directly
|
|
315
|
+
|
|
316
|
+
# 10. Auth brokering
|
|
317
|
+
def call_api(self, service: str, **kwargs):
|
|
318
|
+
creds = vault.get(service) # model never sees the key
|
|
319
|
+
return requests.post(endpoint, headers={"Authorization": creds})
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**Phase 3 project:** 1,500-line mini-harness in Python.
|
|
323
|
+
Must include: tool registry · CLAUDE.md loader · SKILL.md progressive disclosure
|
|
324
|
+
· sub-agent spawn primitive · filesystem offload (>20K tokens → disk)
|
|
325
|
+
· auto-compaction at 85% · pluggable hooks · OpenTelemetry · SQLite resume.
|
|
326
|
+
|
|
327
|
+
Deliverable: a 1,000-word post-mortem comparing your harness to
|
|
328
|
+
Claude Agent SDK and Deep Agents. What you got right. What you cut.
|
|
329
|
+
What you'd do differently.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## PHASE 4 — EVALS & REGRESSION HARNESS (Weeks 14-17)
|
|
334
|
+
|
|
335
|
+
> Without this, every "improvement" is vibes.
|
|
336
|
+
|
|
337
|
+
### The 4 Eval Types
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
1. Single-turn evals
|
|
341
|
+
Input → Output → deterministic check
|
|
342
|
+
"Did it produce valid JSON?" "Is the answer factually correct?"
|
|
343
|
+
Cheapest. Run constantly. Block CI on failure.
|
|
344
|
+
|
|
345
|
+
2. Trajectory evals
|
|
346
|
+
Input → [tool_1, tool_2, tool_3] → expected sequence
|
|
347
|
+
"Did it search before answering?"
|
|
348
|
+
"Did it call calc before making a financial claim?"
|
|
349
|
+
|
|
350
|
+
3. LLM-as-judge
|
|
351
|
+
Response → LLM grader → score on rubric
|
|
352
|
+
Use for: research reports, code review, explanations
|
|
353
|
+
Calibrate weekly against human-graded examples.
|
|
354
|
+
|
|
355
|
+
4. End-state evals
|
|
356
|
+
Before state → agent runs → After state → compare
|
|
357
|
+
"Did the correct rows get written to the database?"
|
|
358
|
+
"Did the right files get created?"
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Regression Harness in GitHub Actions
|
|
362
|
+
|
|
363
|
+
```yaml
|
|
364
|
+
# .github/workflows/eval.yml
|
|
365
|
+
name: Agent Regression
|
|
366
|
+
on: [pull_request]
|
|
367
|
+
|
|
368
|
+
jobs:
|
|
369
|
+
eval:
|
|
370
|
+
runs-on: ubuntu-latest
|
|
371
|
+
steps:
|
|
372
|
+
- uses: actions/checkout@v4
|
|
373
|
+
- name: Run golden dataset
|
|
374
|
+
run: python evals/run_golden.py
|
|
375
|
+
- name: Check pass rate
|
|
376
|
+
run: |
|
|
377
|
+
PASS_RATE=$(cat results/pass_rate.json | jq .rate)
|
|
378
|
+
BASELINE=$(cat evals/baseline.json | jq .rate)
|
|
379
|
+
python -c "
|
|
380
|
+
pass_rate = $PASS_RATE
|
|
381
|
+
baseline = $BASELINE
|
|
382
|
+
if pass_rate < baseline - 0.03:
|
|
383
|
+
print(f'FAIL: {pass_rate:.1%} < baseline {baseline:.1%} - 3pp')
|
|
384
|
+
exit(1)
|
|
385
|
+
print(f'PASS: {pass_rate:.1%} (baseline {baseline:.1%})')
|
|
386
|
+
"
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
**Phase 4 project:**
|
|
390
|
+
→ Golden dataset: 30-50 hand-graded questions (3 difficulty levels)
|
|
391
|
+
→ Deterministic graders for factual queries
|
|
392
|
+
→ LLM-as-judge with 5-criterion rubric
|
|
393
|
+
→ Trajectory eval: did the agent plan, spawn sub-agents, cite, stay under budget?
|
|
394
|
+
→ Wire into GitHub Actions: block merge if pass rate drops 3+ points
|
|
395
|
+
→ Production sampling: 1% of live traces auto-graded nightly
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## PHASE 5 — PRODUCTION HARDENING (Forever)
|
|
400
|
+
|
|
401
|
+
### 1. Cost Discipline
|
|
402
|
+
|
|
403
|
+
```python
|
|
404
|
+
# Cache system prompt, CLAUDE.md, tool definitions — up to 90% savings
|
|
405
|
+
client.messages.create(
|
|
406
|
+
system=[{"type": "text", "text": system_prompt,
|
|
407
|
+
"cache_control": {"type": "ephemeral"}}],
|
|
408
|
+
...
|
|
409
|
+
)
|
|
410
|
+
|
|
411
|
+
# Route by difficulty
|
|
412
|
+
model = (
|
|
413
|
+
"claude-haiku-4-5" if complexity < 0.3 else
|
|
414
|
+
"claude-sonnet-4-5" if complexity < 0.8 else
|
|
415
|
+
"claude-opus-4-6"
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
# Batch API: 50% off for non-real-time work
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### 2. Latency
|
|
422
|
+
|
|
423
|
+
```python
|
|
424
|
+
# Parallel tool calls — ALWAYS
|
|
425
|
+
# Anthropic's own research agent system prompt:
|
|
426
|
+
# "you MUST use parallel tool calls"
|
|
427
|
+
results = await asyncio.gather(
|
|
428
|
+
search_tool("query_1"),
|
|
429
|
+
search_tool("query_2"),
|
|
430
|
+
read_file("context.md")
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
# Sub-agent fan-out
|
|
434
|
+
# 60-step sequential → 10-step lead + 5 parallel 10-step sub-agents
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
### 3. Safety and Sandboxing
|
|
438
|
+
|
|
439
|
+
```python
|
|
440
|
+
# NEVER do this:
|
|
441
|
+
exec(model_output) # ← model output in main process
|
|
442
|
+
|
|
443
|
+
# ALWAYS do this:
|
|
444
|
+
result = modal.run_sandbox( # ← isolated container
|
|
445
|
+
code=model_output,
|
|
446
|
+
timeout=30,
|
|
447
|
+
network_access=False
|
|
448
|
+
)
|
|
449
|
+
|
|
450
|
+
# NEVER pass credentials to model context:
|
|
451
|
+
# BAD: "Use API key sk-abc123 to call the service"
|
|
452
|
+
# GOOD: creds = vault.get("service"); call_api(creds=creds)
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### 4. Monitoring and Drift
|
|
456
|
+
|
|
457
|
+
```python
|
|
458
|
+
# Alert thresholds — set these on day one
|
|
459
|
+
ALERTS = {
|
|
460
|
+
"token_cost_per_request_usd": 0.50, # alert above $0.50
|
|
461
|
+
"tool_call_failure_rate": 0.05, # alert above 5%
|
|
462
|
+
"llm_judge_score": 0.70, # alert below 70%
|
|
463
|
+
"p95_latency_seconds": 10.0, # alert above 10s
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
# Re-baseline after EVERY model upgrade
|
|
467
|
+
# Harnesses encode assumptions about model limitations.
|
|
468
|
+
# Those assumptions go stale when the model changes.
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### 5. Resilience
|
|
472
|
+
|
|
473
|
+
```python
|
|
474
|
+
# Durable execution for any agent running > 60 seconds
|
|
475
|
+
from langgraph.checkpoint.postgres import PostgresSaver
|
|
476
|
+
|
|
477
|
+
# Checkpoint after every node — rewind and fork always possible
|
|
478
|
+
@graph.node
|
|
479
|
+
def expensive_step(state):
|
|
480
|
+
result = do_expensive_thing(state)
|
|
481
|
+
return {**state, "result": result}
|
|
482
|
+
# LangGraph auto-checkpoints after each node
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## THE 5 PORTFOLIO PROJECTS
|
|
488
|
+
|
|
489
|
+
Pick one. Build it this weekend.
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
Level Project Proves
|
|
493
|
+
──────────────────────────────────────────────────────────────
|
|
494
|
+
Beginner Mobile App + SLM Edge AI, resource constraints
|
|
495
|
+
Intermediate Self-Improving Coding Agent Agentic loops, debugging
|
|
496
|
+
Advanced Video Editor Agent Multimodal AI, tool integration
|
|
497
|
+
Expert Personal Life OS Agent Context management, privacy
|
|
498
|
+
Master Enterprise Workflow Agent Production orchestration
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Project 1 — Mobile App + SLM (Beginner)
|
|
502
|
+
|
|
503
|
+
Offline-first mobile app using a small language model. Zero API costs. Complete privacy.
|
|
504
|
+
|
|
505
|
+
- Lazy-load models on demand, unload under memory pressure
|
|
506
|
+
- Sliding context window with semantic chunking
|
|
507
|
+
- 4-bit quantisation for older devices, 8-bit for newer
|
|
508
|
+
- Batch inference to reduce battery wake cycles
|
|
509
|
+
|
|
510
|
+
### Project 2 — Self-Improving Coding Agent (Intermediate)
|
|
511
|
+
|
|
512
|
+
Agent writes code → runs tests → learns from failures → loops until functional.
|
|
513
|
+
|
|
514
|
+
- Plan → Execute → Test → Reflect loop with max iteration limit
|
|
515
|
+
- Isolated execution per task with resource limits
|
|
516
|
+
- Memory: short-term (last 5) + long-term (successes) + failure memory (error signatures)
|
|
517
|
+
- Static analysis before execution — detect dangerous operations
|
|
518
|
+
|
|
519
|
+
### Project 3 — Video Editor Agent (Advanced)
|
|
520
|
+
|
|
521
|
+
Fork open-source editor. User says "make this cinematic." Agent handles cuts, transitions, colour.
|
|
522
|
+
|
|
523
|
+
- Vision model analyses frames + audio model analyses dialogue
|
|
524
|
+
- Intent translation: "cinematic" → concrete parameters
|
|
525
|
+
- Scene detection via frame-difference analysis
|
|
526
|
+
- Incremental preview — only re-render affected sections
|
|
527
|
+
|
|
528
|
+
### Project 4 — Personal Life OS Agent (Expert)
|
|
529
|
+
|
|
530
|
+
Manages calendar, finances, and health. Plans months ahead. Detects burnout.
|
|
531
|
+
|
|
532
|
+
- Real-time ingestion: calendar, finance, health, communications
|
|
533
|
+
- Personal knowledge graph of entities and relationships
|
|
534
|
+
- Background thread every 6 hours checking anomalies
|
|
535
|
+
- Value alignment: user states priorities — recommendations validated against them
|
|
536
|
+
- All data encrypted at rest with user-controlled keys
|
|
537
|
+
|
|
538
|
+
### Project 5 — Enterprise Workflow Agent (Master)
|
|
539
|
+
|
|
540
|
+
Monitors Slack/Jira → plans execution → delegates → reports with audit logs.
|
|
541
|
+
|
|
542
|
+
- Event-driven: Slack, Jira, email, monitoring systems
|
|
543
|
+
- Multi-agent delegation: orchestrator → communication, data, analysis, documentation agents
|
|
544
|
+
- Self-healing: exponential backoff, circuit breakers, retry decisions
|
|
545
|
+
- Immutable audit log: every action, authorisation, outcome
|
|
546
|
+
- Human-in-the-loop: agent proposes plan before executing on critical workflows
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
## THE STACK
|
|
551
|
+
|
|
552
|
+
```
|
|
553
|
+
Framework: LangGraph 1.0 + Deep Agents
|
|
554
|
+
(NOT CrewAI for prod / NOT OpenAI Swarm / NOT Assistants API)
|
|
555
|
+
|
|
556
|
+
Harness ref: Claude Agent SDK
|
|
557
|
+
Same harness as Claude Code.
|
|
558
|
+
CLAUDE.md + Skills + sub-agents + hooks + filesystem-as-memory.
|
|
559
|
+
|
|
560
|
+
Observability: LangSmith (if using LangGraph)
|
|
561
|
+
Braintrust (framework-agnostic, $249/mo CI gating)
|
|
562
|
+
Arize Phoenix (open-source, OTEL-native, free)
|
|
563
|
+
|
|
564
|
+
Skip in 2026: OpenAI Swarm (not production-ready)
|
|
565
|
+
OpenAI Assistants API (sunsetting mid-2026)
|
|
566
|
+
No-code agent platforms (throwaway only)
|
|
567
|
+
Custom vector store (measure recall first)
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
## BENCHMARK NUMBERS (May 2026)
|
|
573
|
+
|
|
574
|
+
```
|
|
575
|
+
SWE-bench Verified (coding):
|
|
576
|
+
Claude Opus 4.7 ~87.6%
|
|
577
|
+
GPT-5.5 ~88.7%
|
|
578
|
+
|
|
579
|
+
GAIA (general agent tasks):
|
|
580
|
+
Claude Sonnet 4.5 74.6% ← leads
|
|
581
|
+
|
|
582
|
+
τ-bench (customer service):
|
|
583
|
+
Claude Mythos Preview 89.2% ← leads
|
|
584
|
+
|
|
585
|
+
Key stat: same benchmark, different harness = swing of 10–36 points.
|
|
586
|
+
The model matters less than the harness.
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
## THE ADVANCED SCIENCE (Context for Engineers)
|
|
592
|
+
|
|
593
|
+
### Attention and Context Windows
|
|
594
|
+
|
|
595
|
+
AI models use attention to weight which tokens matter most at each step.
|
|
596
|
+
Attention cost grows quadratically with input length — double the input, 4× the compute.
|
|
597
|
+
This is why the **Compress** context primitive is not optional: it's survival.
|
|
598
|
+
|
|
599
|
+
**YaRN (Yet another RoPE extensioN)** — ICLR 2024
|
|
600
|
+
Extends context from 4K to 128K tokens using 10× fewer training steps.
|
|
601
|
+
Works by treating high-frequency and low-frequency position components differently.
|
|
602
|
+
Models with YaRN can read 500 pages in one context window.
|
|
603
|
+
|
|
604
|
+
### Training Stability at Scale (mHC)
|
|
605
|
+
|
|
606
|
+
**mHC — Manifold-Constrained Hyper-Connections** (DeepSeek, arxiv:2512.24880, Dec 2025)
|
|
607
|
+
|
|
608
|
+
Standard residual connections preserve signal by adding input to output.
|
|
609
|
+
Hyper-Connections (HC) added 4 parallel streams for better performance —
|
|
610
|
+
but broke identity mapping, causing loss spikes at step 12,000.
|
|
611
|
+
|
|
612
|
+
mHC fixes this by projecting the stream-mixing matrix onto a Sinkhorn manifold
|
|
613
|
+
(a mathematical surface where every row and column sums to 1).
|
|
614
|
+
Identity mapping is automatically preserved. Result: 6.7% overhead, zero loss spikes,
|
|
615
|
+
evaluated at 3B/9B/27B parameter scales.
|
|
616
|
+
|
|
617
|
+
**Harness parallel:** The same principle applies to harness design.
|
|
618
|
+
Constrain the system at the right point (context compaction at 85%, credential brokering,
|
|
619
|
+
sandboxed execution) and the whole system becomes stable under real production load.
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## QUICK REFERENCE
|
|
624
|
+
|
|
625
|
+
| Term | Definition |
|
|
626
|
+
| ------------------- | -------------------------------------------------------------- |
|
|
627
|
+
| Agent | AI that makes its own control-flow decisions in a loop |
|
|
628
|
+
| Workflow | Fixed control flow you wrote — use unless you need an agent |
|
|
629
|
+
| Harness | Everything between you and the model API |
|
|
630
|
+
| Context window | The model's RAM — all it can see at once |
|
|
631
|
+
| Context engineering | Deciding what goes into that RAM at every step |
|
|
632
|
+
| Tool | A function the model can call |
|
|
633
|
+
| Sub-agent | Agent spawned with isolated context |
|
|
634
|
+
| Eval | Automated test measuring if the agent got better or worse |
|
|
635
|
+
| LLM-as-judge | Using an AI to grade another AI's output |
|
|
636
|
+
| YaRN | Extends context to 128K tokens — 10× efficient |
|
|
637
|
+
| mHC | Stable training architecture — 6.7% overhead, zero spikes |
|
|
638
|
+
| Checkpoint | Saved state for resume after process kill |
|
|
639
|
+
| Sandboxing | Code runs in isolated container — model never has server creds |
|
|
640
|
+
| OTEL | OpenTelemetry — standard for tracing every call |
|
|
641
|
+
|
|
642
|
+
---
|
|
643
|
+
|
|
644
|
+
## THE CLOSING ARGUMENT
|
|
645
|
+
|
|
646
|
+
> 57% of teams now have agents in production.
|
|
647
|
+
> 89% of those have observability wired.
|
|
648
|
+
> Quality is the #1 barrier (32% of teams cite it).
|
|
649
|
+
>
|
|
650
|
+
> The entire field is bottlenecked on engineers who can build evals and harnesses.
|
|
651
|
+
> Not on engineers who can call an LLM API.
|
|
652
|
+
> That is the job opening.
|
|
653
|
+
|
|
654
|
+
**Next:**
|
|
655
|
+
|
|
656
|
+
1. Pick one project
|
|
657
|
+
2. Build it this weekend
|
|
658
|
+
3. Document everything — architecture decisions, failures, recoveries
|
|
659
|
+
4. Build in public
|
|
660
|
+
|
|
661
|
+
**Expertise is the only job security left.
|
|
662
|
+
Production systems are the only portfolio that matters.**
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
666
|
+
_AI Engineering by <user> · Oriro-Labs Learning Series · 2026 · MIT License_
|
|
667
|
+
_Public domain knowledge — share freely, build openly, teach everyone._
|