@muskanmeet/invoicing-design-system 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/replit/env/latest +78 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/python-3.11.res +1 -0
- package/.cache/replit/modules/replit-rtld-loader.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/dotreplitenv.json +1 -0
- package/.cache/replit/toolchain.json +1 -0
- package/.cache/typescript/5.9/package-lock.json +50 -0
- package/.cache/typescript/5.9/package.json +1 -0
- package/.config/nextjs-nodejs/config.json +7 -0
- package/.eslintrc.json +3 -0
- package/.local/.commit_message +31 -0
- package/.local/secondary_skills/LICENSE.txt +21 -0
- package/.local/secondary_skills/ad-creative/.fingerprint +1 -0
- package/.local/secondary_skills/ad-creative/SKILL.md +872 -0
- package/.local/secondary_skills/ai-recruiter/.fingerprint +1 -0
- package/.local/secondary_skills/ai-recruiter/SKILL.md +1087 -0
- package/.local/secondary_skills/ai-sdr/.fingerprint +1 -0
- package/.local/secondary_skills/ai-sdr/SKILL.md +204 -0
- package/.local/secondary_skills/ai-secretary/.fingerprint +1 -0
- package/.local/secondary_skills/ai-secretary/SKILL.md +1132 -0
- package/.local/secondary_skills/branding-generator/.fingerprint +1 -0
- package/.local/secondary_skills/branding-generator/SKILL.md +286 -0
- package/.local/secondary_skills/competitive-analysis/.fingerprint +1 -0
- package/.local/secondary_skills/competitive-analysis/SKILL.md +429 -0
- package/.local/secondary_skills/content-machine/.fingerprint +1 -0
- package/.local/secondary_skills/content-machine/SKILL.md +321 -0
- package/.local/secondary_skills/deep-research/.fingerprint +1 -0
- package/.local/secondary_skills/deep-research/SKILL.md +517 -0
- package/.local/secondary_skills/design-thinker/.fingerprint +1 -0
- package/.local/secondary_skills/design-thinker/SKILL.md +327 -0
- package/.local/secondary_skills/excel-generator/.fingerprint +1 -0
- package/.local/secondary_skills/excel-generator/SKILL.md +954 -0
- package/.local/secondary_skills/excel-generator/financial-models.md +289 -0
- package/.local/secondary_skills/file-converter/.fingerprint +1 -0
- package/.local/secondary_skills/file-converter/SKILL.md +823 -0
- package/.local/secondary_skills/flashcard-generator/.fingerprint +1 -0
- package/.local/secondary_skills/flashcard-generator/SKILL.md +233 -0
- package/.local/secondary_skills/geo/.fingerprint +1 -0
- package/.local/secondary_skills/geo/SKILL.md +378 -0
- package/.local/secondary_skills/geo/references/content-patterns.md +158 -0
- package/.local/secondary_skills/geo/references/platform-notes.md +128 -0
- package/.local/secondary_skills/geo/references/scorecard.md +113 -0
- package/.local/secondary_skills/geo/references/technical-checklist.md +257 -0
- package/.local/secondary_skills/github-solution-finder/.fingerprint +1 -0
- package/.local/secondary_skills/github-solution-finder/SKILL.md +174 -0
- package/.local/secondary_skills/infographic-builder/.fingerprint +1 -0
- package/.local/secondary_skills/infographic-builder/SKILL.md +317 -0
- package/.local/secondary_skills/infographic-builder/antv-syntax.md +470 -0
- package/.local/secondary_skills/infographic-builder/react-fallback.md +210 -0
- package/.local/secondary_skills/insurance-optimizer/.fingerprint +1 -0
- package/.local/secondary_skills/insurance-optimizer/SKILL.md +209 -0
- package/.local/secondary_skills/interview-prep/.fingerprint +1 -0
- package/.local/secondary_skills/interview-prep/SKILL.md +349 -0
- package/.local/secondary_skills/invoice-generator/.fingerprint +1 -0
- package/.local/secondary_skills/invoice-generator/SKILL.md +527 -0
- package/.local/secondary_skills/legal-contract/.fingerprint +1 -0
- package/.local/secondary_skills/legal-contract/SKILL.md +977 -0
- package/.local/secondary_skills/meal-planner/.fingerprint +1 -0
- package/.local/secondary_skills/meal-planner/SKILL.md +517 -0
- package/.local/secondary_skills/personal-shopper/.fingerprint +1 -0
- package/.local/secondary_skills/personal-shopper/SKILL.md +361 -0
- package/.local/secondary_skills/photo-editor/.fingerprint +1 -0
- package/.local/secondary_skills/photo-editor/SKILL.md +605 -0
- package/.local/secondary_skills/podcast-generator/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-generator/SKILL.md +560 -0
- package/.local/secondary_skills/podcast-marketing/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-marketing/SKILL.md +550 -0
- package/.local/secondary_skills/podcast-marketing/audio-processing.md +530 -0
- package/.local/secondary_skills/podcast-marketing/content-atoms.md +253 -0
- package/.local/secondary_skills/podcast-marketing/content-calendar.md +318 -0
- package/.local/secondary_skills/podcast-marketing/content-templates.md +325 -0
- package/.local/secondary_skills/podcast-marketing/quote-cards.md +238 -0
- package/.local/secondary_skills/podcast-marketing/rss-and-batch.md +359 -0
- package/.local/secondary_skills/podcast-marketing/video-clips.md +660 -0
- package/.local/secondary_skills/podcast-marketing/youtube-processing.md +328 -0
- package/.local/secondary_skills/product-manager/.fingerprint +1 -0
- package/.local/secondary_skills/product-manager/SKILL.md +272 -0
- package/.local/secondary_skills/programmatic-seo/.fingerprint +1 -0
- package/.local/secondary_skills/programmatic-seo/SKILL.md +1207 -0
- package/.local/secondary_skills/real-estate-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/real-estate-analyzer/SKILL.md +786 -0
- package/.local/secondary_skills/recipe-creator/.fingerprint +1 -0
- package/.local/secondary_skills/recipe-creator/SKILL.md +259 -0
- package/.local/secondary_skills/recreate-screenshot/.fingerprint +1 -0
- package/.local/secondary_skills/recreate-screenshot/SKILL.md +215 -0
- package/.local/secondary_skills/replit-migration-guardrails/.fingerprint +1 -0
- package/.local/secondary_skills/replit-migration-guardrails/SKILL.md +55 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/base44.md +47 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/vercel.md +78 -0
- package/.local/secondary_skills/resume-maker/.fingerprint +1 -0
- package/.local/secondary_skills/resume-maker/SKILL.md +790 -0
- package/.local/secondary_skills/seo-auditor/.fingerprint +1 -0
- package/.local/secondary_skills/seo-auditor/SKILL.md +448 -0
- package/.local/secondary_skills/skill-creator/.fingerprint +1 -0
- package/.local/secondary_skills/skill-creator/SKILL.md +214 -0
- package/.local/secondary_skills/skill-finder/.fingerprint +1 -0
- package/.local/secondary_skills/skill-finder/SKILL.md +299 -0
- package/.local/secondary_skills/stock-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/stock-analyzer/SKILL.md +798 -0
- package/.local/secondary_skills/storyboard/.fingerprint +1 -0
- package/.local/secondary_skills/storyboard/SKILL.md +558 -0
- package/.local/secondary_skills/supplier-research/.fingerprint +1 -0
- package/.local/secondary_skills/supplier-research/SKILL.md +213 -0
- package/.local/secondary_skills/tax-reviewer/.fingerprint +1 -0
- package/.local/secondary_skills/tax-reviewer/SKILL.md +131 -0
- package/.local/secondary_skills/travel-assistant/.fingerprint +1 -0
- package/.local/secondary_skills/travel-assistant/SKILL.md +667 -0
- package/.local/secondary_skills/video-editing/.fingerprint +1 -0
- package/.local/secondary_skills/video-editing/SKILL.md +705 -0
- package/.local/secondary_skills/video-editing/dead-space-and-chunking.md +1081 -0
- package/.local/secondary_skills/video-editing/operations.md +1719 -0
- package/.local/secondary_skills/video-editing/virality-scoring.md +1212 -0
- package/.local/secondary_skills/video-editing/voiceover.md +788 -0
- package/.local/secondary_skills/website-cloning/.fingerprint +1 -0
- package/.local/secondary_skills/website-cloning/SKILL.md +544 -0
- package/.local/secondary_skills/website-cloning/extraction.md +1207 -0
- package/.local/secondary_skills/website-cloning/pitfalls.md +297 -0
- package/.local/skills/LICENSE.txt +21 -0
- package/.local/skills/agent-inbox/.fingerprint +1 -0
- package/.local/skills/agent-inbox/SKILL.md +128 -0
- package/.local/skills/artifacts/.fingerprint +1 -0
- package/.local/skills/artifacts/SKILL.md +21 -0
- package/.local/skills/artifacts/artifacts/automation/artifact.yaml +40 -0
- package/.local/skills/artifacts/artifacts/automation/files/package.json.template +47 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/build.sh +6 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/inngest.sh +18 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/global.d.ts +1 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/agents/agent.ts +89 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/index.ts +212 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/client.ts +17 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/index.ts +214 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/storage/index.ts +8 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/tools/exampleTool.ts +71 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/workflows/workflow.ts +203 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/cronTriggers.ts +61 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/exampleConnectorTrigger.ts +153 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/slackTriggers.ts +638 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/telegramTriggers.ts +94 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testCronAutomation.ts +86 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testWebhookAutomation.ts +118 -0
- package/.local/skills/artifacts/artifacts/automation/files/tsconfig.json +26 -0
- package/.local/skills/artifacts/artifacts/data-visualization/artifact.yaml +48 -0
- package/.local/skills/artifacts/artifacts/expo/OWNERS +2 -0
- package/.local/skills/artifacts/artifacts/expo/artifact.yaml +47 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/_layout.tsx +86 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/index.tsx +28 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/+not-found.tsx +45 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/_layout.tsx +60 -0
- package/.local/skills/artifacts/artifacts/expo/files/app.json.template +38 -0
- package/.local/skills/artifacts/artifacts/expo/files/assets/images/icon.png +0 -0
- package/.local/skills/artifacts/artifacts/expo/files/babel.config.js +6 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorBoundary.tsx +54 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorFallback.tsx +278 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/KeyboardAwareScrollViewCompat.tsx +29 -0
- package/.local/skills/artifacts/artifacts/expo/files/constants/colors.ts +59 -0
- package/.local/skills/artifacts/artifacts/expo/files/hooks/useColors.ts +24 -0
- package/.local/skills/artifacts/artifacts/expo/files/metro.config.js +3 -0
- package/.local/skills/artifacts/artifacts/expo/files/package.json.template +58 -0
- package/.local/skills/artifacts/artifacts/expo/files/scripts/build.js +573 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/serve.js +135 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/templates/landing-page.html +460 -0
- package/.local/skills/artifacts/artifacts/expo/files/tsconfig.json +23 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/artifact.yaml +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/components.json +21 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/index.html +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/mockupPreviewPlugin.ts +199 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/package.json.template +75 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/.generated/mockup-components.ts +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/App.tsx +146 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-toast.ts +189 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/index.css +158 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/tsconfig.json +20 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/vite.config.ts +72 -0
- package/.local/skills/artifacts/artifacts/react-vite/artifact.yaml +41 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/components.json +20 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/index.html.template +24 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/package.json.template +77 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/robots.txt +2 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/App.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-toast.ts +191 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/index.css +393 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/pages/not-found.tsx +21 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/tsconfig.json +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/vite.config.ts +75 -0
- package/.local/skills/artifacts/artifacts/slides/artifact.yaml +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/index.html.template +46 -0
- package/.local/skills/artifacts/artifacts/slides/files/package.json.template +30 -0
- package/.local/skills/artifacts/artifacts/slides/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/slides/files/scripts/validate-slides.ts +193 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/App.tsx +251 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slides-manifest.json +1 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slidesManifestSchema.ts +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/index.css +48 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/main.tsx +14 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/slideLoader.ts +51 -0
- package/.local/skills/artifacts/artifacts/slides/files/tsconfig.json +17 -0
- package/.local/skills/artifacts/artifacts/slides/files/vite.config.ts +74 -0
- package/.local/skills/artifacts/artifacts/video-js/artifact.yaml +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/index.html.template +27 -0
- package/.local/skills/artifacts/artifacts/video-js/files/package.json.template +36 -0
- package/.local/skills/artifacts/artifacts/video-js/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/video-js/files/scripts/validate-recording.sh +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/App.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/ReplitLoadingScene.tsx +105 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/VideoTemplate.tsx +30 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/index.ts +1 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/index.css +50 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/animations.ts +239 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/hooks.ts +104 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/index.ts +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/tsconfig.json +16 -0
- package/.local/skills/artifacts/artifacts/video-js/files/vite.config.ts +79 -0
- package/.local/skills/artifacts/bootstrap-legacy.js +115 -0
- package/.local/skills/artifacts/bootstrap.js +118 -0
- package/.local/skills/artifacts/references/multi-artifact-creation.md +94 -0
- package/.local/skills/canvas/.fingerprint +1 -0
- package/.local/skills/canvas/SKILL.md +534 -0
- package/.local/skills/canvas/__init__.py +1 -0
- package/.local/skills/code_review/.fingerprint +1 -0
- package/.local/skills/code_review/SKILL.md +82 -0
- package/.local/skills/database/.fingerprint +1 -0
- package/.local/skills/database/SKILL.md +351 -0
- package/.local/skills/database/references/database-migrations-on-publish.md +57 -0
- package/.local/skills/delegation/.fingerprint +1 -0
- package/.local/skills/delegation/SKILL.md +200 -0
- package/.local/skills/deployment/.fingerprint +1 -0
- package/.local/skills/deployment/SKILL.md +261 -0
- package/.local/skills/deployment/references/deployment-failure-debugging.md +243 -0
- package/.local/skills/deployment/references/deployment-logs.md +147 -0
- package/.local/skills/design/.fingerprint +1 -0
- package/.local/skills/design/SKILL.md +235 -0
- package/.local/skills/design-exploration/.fingerprint +1 -0
- package/.local/skills/design-exploration/SKILL.md +95 -0
- package/.local/skills/diagnostics/.fingerprint +1 -0
- package/.local/skills/diagnostics/SKILL.md +122 -0
- package/.local/skills/environment-secrets/.fingerprint +1 -0
- package/.local/skills/environment-secrets/SKILL.md +201 -0
- package/.local/skills/expo/.fingerprint +1 -0
- package/.local/skills/expo/OWNERS +2 -0
- package/.local/skills/expo/SKILL.md +298 -0
- package/.local/skills/expo/references/design_and_aesthetics.md +141 -0
- package/.local/skills/expo/references/device_features_and_permissions.md +48 -0
- package/.local/skills/expo/references/first_build.md +114 -0
- package/.local/skills/expo/references/react_context.md +54 -0
- package/.local/skills/external_apis/.fingerprint +1 -0
- package/.local/skills/external_apis/SKILL.md +25 -0
- package/.local/skills/external_apis/references/brave.md +116 -0
- package/.local/skills/external_apis/references/elevenlabs.md +44 -0
- package/.local/skills/external_apis/references/exa.md +34 -0
- package/.local/skills/external_apis/references/firecrawl.md +37 -0
- package/.local/skills/external_apis/references/nano_banana.md +33 -0
- package/.local/skills/follow-up-tasks/.fingerprint +1 -0
- package/.local/skills/follow-up-tasks/SKILL.md +80 -0
- package/.local/skills/image-search/.fingerprint +1 -0
- package/.local/skills/image-search/SKILL.md +150 -0
- package/.local/skills/integrations/.fingerprint +1 -0
- package/.local/skills/integrations/SKILL.md +205 -0
- package/.local/skills/media-generation/.fingerprint +1 -0
- package/.local/skills/media-generation/SKILL.md +170 -0
- package/.local/skills/media-generation/audio_generation.md +138 -0
- package/.local/skills/media-generation/video_generation.md +82 -0
- package/.local/skills/mockup-extract/.fingerprint +1 -0
- package/.local/skills/mockup-extract/SKILL.md +123 -0
- package/.local/skills/mockup-graduate/.fingerprint +1 -0
- package/.local/skills/mockup-graduate/SKILL.md +97 -0
- package/.local/skills/mockup-sandbox/.fingerprint +1 -0
- package/.local/skills/mockup-sandbox/SKILL.md +750 -0
- package/.local/skills/package-management/.fingerprint +1 -0
- package/.local/skills/package-management/SKILL.md +264 -0
- package/.local/skills/post_merge_setup/.fingerprint +1 -0
- package/.local/skills/post_merge_setup/SKILL.md +102 -0
- package/.local/skills/project_tasks/.fingerprint +1 -0
- package/.local/skills/project_tasks/SKILL.md +361 -0
- package/.local/skills/query-integration-data/.fingerprint +1 -0
- package/.local/skills/query-integration-data/SKILL.md +385 -0
- package/.local/skills/react-vite/.fingerprint +1 -0
- package/.local/skills/react-vite/SKILL.md +110 -0
- package/.local/skills/react-vite/references/frontend_general_rules.md +66 -0
- package/.local/skills/react-vite/references/seo.md +158 -0
- package/.local/skills/remove-image-background/.fingerprint +1 -0
- package/.local/skills/remove-image-background/SKILL.md +55 -0
- package/.local/skills/repl_setup/.fingerprint +1 -0
- package/.local/skills/repl_setup/SKILL.md +90 -0
- package/.local/skills/repl_setup/references/angular.md +103 -0
- package/.local/skills/repl_setup/references/react_vite.md +121 -0
- package/.local/skills/repl_setup/references/vue.md +102 -0
- package/.local/skills/replit-docs/.fingerprint +1 -0
- package/.local/skills/replit-docs/SKILL.md +81 -0
- package/.local/skills/revenuecat/.fingerprint +1 -0
- package/.local/skills/revenuecat/SKILL.md +133 -0
- package/.local/skills/revenuecat/references/initial-setup.md +566 -0
- package/.local/skills/revenuecat/references/replit-revenuecat-sdk-docs.md +279 -0
- package/.local/skills/revenuecat/references/subsequent-management.md +63 -0
- package/.local/skills/security_scan/.fingerprint +1 -0
- package/.local/skills/security_scan/SKILL.md +51 -0
- package/.local/skills/skill-authoring/.fingerprint +1 -0
- package/.local/skills/skill-authoring/SKILL.md +99 -0
- package/.local/skills/slides/.fingerprint +1 -0
- package/.local/skills/slides/SKILL.md +523 -0
- package/.local/skills/slides/references/brand_research.md +86 -0
- package/.local/skills/slides/references/export_failures.md +36 -0
- package/.local/skills/slides/references/exporting.md +49 -0
- package/.local/skills/slides/references/importing.md +40 -0
- package/.local/skills/slides/references/visual_qa.md +121 -0
- package/.local/skills/slides/templates/90s-board-deck.md +285 -0
- package/.local/skills/slides/templates/academic-lecture.md +437 -0
- package/.local/skills/slides/templates/adventure-outdoor.md +845 -0
- package/.local/skills/slides/templates/analytics-dashboard.md +407 -0
- package/.local/skills/slides/templates/annual-report-cover.md +592 -0
- package/.local/skills/slides/templates/apple-minimal.md +570 -0
- package/.local/skills/slides/templates/architecture-studio.md +339 -0
- package/.local/skills/slides/templates/arctic-expedition.md +582 -0
- package/.local/skills/slides/templates/arctic-minimal.md +364 -0
- package/.local/skills/slides/templates/art-deco.md +308 -0
- package/.local/skills/slides/templates/artisan-ceramics.md +659 -0
- package/.local/skills/slides/templates/artisan-food.md +709 -0
- package/.local/skills/slides/templates/artisanal-chalkboard.md +623 -0
- package/.local/skills/slides/templates/astronomy-log.md +562 -0
- package/.local/skills/slides/templates/aurora-expedition.md +754 -0
- package/.local/skills/slides/templates/automotive-electric.md +339 -0
- package/.local/skills/slides/templates/bauhaus-avant-garde.md +443 -0
- package/.local/skills/slides/templates/bioluminescent-sea.md +814 -0
- package/.local/skills/slides/templates/biophilic-urban.md +565 -0
- package/.local/skills/slides/templates/blackboard-chalk.md +517 -0
- package/.local/skills/slides/templates/blueprint.md +478 -0
- package/.local/skills/slides/templates/botanical-index.md +822 -0
- package/.local/skills/slides/templates/botanical-wellness.md +611 -0
- package/.local/skills/slides/templates/brand-book-page.md +466 -0
- package/.local/skills/slides/templates/brutalist-concrete.md +362 -0
- package/.local/skills/slides/templates/brutalist-studio.md +325 -0
- package/.local/skills/slides/templates/brutalist-web-punk.md +591 -0
- package/.local/skills/slides/templates/celestial-observatory.md +453 -0
- package/.local/skills/slides/templates/ceramics-artisan.md +740 -0
- package/.local/skills/slides/templates/cinema-verite.md +415 -0
- package/.local/skills/slides/templates/claymorphism.md +737 -0
- package/.local/skills/slides/templates/collage-zine.md +357 -0
- package/.local/skills/slides/templates/copper-sage.md +325 -0
- package/.local/skills/slides/templates/coral-reef.md +508 -0
- package/.local/skills/slides/templates/corporate-grid.md +331 -0
- package/.local/skills/slides/templates/corporate-memphis-flat.md +938 -0
- package/.local/skills/slides/templates/cosmos-explorer.md +998 -0
- package/.local/skills/slides/templates/cpg-coffee.md +850 -0
- package/.local/skills/slides/templates/craft-coffee-roast.md +693 -0
- package/.local/skills/slides/templates/creative-agency.md +244 -0
- package/.local/skills/slides/templates/creative-director.md +875 -0
- package/.local/skills/slides/templates/culinary-brand.md +698 -0
- package/.local/skills/slides/templates/de-stijl-construct.md +320 -0
- package/.local/skills/slides/templates/desert-dunes-photo.md +483 -0
- package/.local/skills/slides/templates/desert-mirror.md +577 -0
- package/.local/skills/slides/templates/desert-modernism.md +439 -0
- package/.local/skills/slides/templates/developer-api-docs.md +654 -0
- package/.local/skills/slides/templates/editorial-magazine.md +694 -0
- package/.local/skills/slides/templates/engineering-blueprint.md +730 -0
- package/.local/skills/slides/templates/executive-mono.md +363 -0
- package/.local/skills/slides/templates/expedition-peak.md +298 -0
- package/.local/skills/slides/templates/fashion-campaign.md +681 -0
- package/.local/skills/slides/templates/fashion-editorial.md +497 -0
- package/.local/skills/slides/templates/figma-geometric.md +420 -0
- package/.local/skills/slides/templates/film-noir.md +857 -0
- package/.local/skills/slides/templates/fitness-athletics.md +663 -0
- package/.local/skills/slides/templates/flat-vector.md +912 -0
- package/.local/skills/slides/templates/fluid-luxe.md +665 -0
- package/.local/skills/slides/templates/furniture-brand.md +505 -0
- package/.local/skills/slides/templates/gallery-modern.md +436 -0
- package/.local/skills/slides/templates/gaming-esports.md +410 -0
- package/.local/skills/slides/templates/geodesic-future.md +368 -0
- package/.local/skills/slides/templates/glass-artisan.md +666 -0
- package/.local/skills/slides/templates/glassmorphism.md +320 -0
- package/.local/skills/slides/templates/greenhouse-botanical.md +662 -0
- package/.local/skills/slides/templates/healthcare-clarity.md +468 -0
- package/.local/skills/slides/templates/holographic-drop.md +663 -0
- package/.local/skills/slides/templates/hospitality-resort.md +608 -0
- package/.local/skills/slides/templates/hypercar-launch.md +557 -0
- package/.local/skills/slides/templates/infographic-title.md +306 -0
- package/.local/skills/slides/templates/ink-wash.md +244 -0
- package/.local/skills/slides/templates/investor-memo.md +509 -0
- package/.local/skills/slides/templates/isometric-data.md +703 -0
- package/.local/skills/slides/templates/ivory-boardroom.md +439 -0
- package/.local/skills/slides/templates/japanese-minimal.md +308 -0
- package/.local/skills/slides/templates/jazz-blue-note.md +478 -0
- package/.local/skills/slides/templates/kinetic-type.md +206 -0
- package/.local/skills/slides/templates/lagoon-luxury.md +320 -0
- package/.local/skills/slides/templates/lavender-pastoral.md +577 -0
- package/.local/skills/slides/templates/linear-precise.md +460 -0
- package/.local/skills/slides/templates/lineart-sketch.md +930 -0
- package/.local/skills/slides/templates/lost-temple.md +689 -0
- package/.local/skills/slides/templates/luxury-fashion.md +269 -0
- package/.local/skills/slides/templates/luxury-watch.md +678 -0
- package/.local/skills/slides/templates/marble-elegance.md +673 -0
- package/.local/skills/slides/templates/mediterranean-travel.md +811 -0
- package/.local/skills/slides/templates/memphis-design.md +426 -0
- package/.local/skills/slides/templates/midnight-jazz.md +260 -0
- package/.local/skills/slides/templates/minimalist-poster.md +538 -0
- package/.local/skills/slides/templates/molten-craft.md +743 -0
- package/.local/skills/slides/templates/moroccan-tile.md +738 -0
- package/.local/skills/slides/templates/motorsport.md +782 -0
- package/.local/skills/slides/templates/mountain-drift.md +311 -0
- package/.local/skills/slides/templates/music-label.md +641 -0
- package/.local/skills/slides/templates/neo-tokyo.md +637 -0
- package/.local/skills/slides/templates/neobrutalism.md +334 -0
- package/.local/skills/slides/templates/newspaper-broadsheet.md +687 -0
- package/.local/skills/slides/templates/noir-fragrance.md +672 -0
- package/.local/skills/slides/templates/non-profit-impact.md +320 -0
- package/.local/skills/slides/templates/ocean-breeze.md +398 -0
- package/.local/skills/slides/templates/origami-couture.md +636 -0
- package/.local/skills/slides/templates/origami-paper.md +308 -0
- package/.local/skills/slides/templates/pastel-playground.md +1114 -0
- package/.local/skills/slides/templates/perfume-noir.md +646 -0
- package/.local/skills/slides/templates/prairie-storm.md +625 -0
- package/.local/skills/slides/templates/private-equity-dark.md +506 -0
- package/.local/skills/slides/templates/renaissance-florals.md +225 -0
- package/.local/skills/slides/templates/retro-print.md +880 -0
- package/.local/skills/slides/templates/retro-vinyl-sleeve.md +229 -0
- package/.local/skills/slides/templates/riso-zine.md +1094 -0
- package/.local/skills/slides/templates/risograph.md +1151 -0
- package/.local/skills/slides/templates/saas-product-launch.md +972 -0
- package/.local/skills/slides/templates/scandinavian.md +372 -0
- package/.local/skills/slides/templates/skater-culture.md +583 -0
- package/.local/skills/slides/templates/slate-modern.md +469 -0
- package/.local/skills/slides/templates/sneaker-drop.md +1006 -0
- package/.local/skills/slides/templates/social-campaign.md +321 -0
- package/.local/skills/slides/templates/stained-glass.md +574 -0
- package/.local/skills/slides/templates/strategy-one-pager.md +508 -0
- package/.local/skills/slides/templates/street-drop.md +677 -0
- package/.local/skills/slides/templates/street-mural.md +588 -0
- package/.local/skills/slides/templates/studio-noir.md +466 -0
- package/.local/skills/slides/templates/sustainability-esg.md +686 -0
- package/.local/skills/slides/templates/swiss-archive.md +648 -0
- package/.local/skills/slides/templates/swiss-typographic.md +364 -0
- package/.local/skills/slides/templates/tea-ceremony.md +456 -0
- package/.local/skills/slides/templates/tech-earbuds.md +870 -0
- package/.local/skills/slides/templates/terracotta-studio.md +235 -0
- package/.local/skills/slides/templates/thesis-defense.md +390 -0
- package/.local/skills/slides/templates/travel-aerial.md +648 -0
- package/.local/skills/slides/templates/treasury-policy.md +475 -0
- package/.local/skills/slides/templates/tropical-lush.md +332 -0
- package/.local/skills/slides/templates/underwater-dream.md +627 -0
- package/.local/skills/slides/templates/urban-golden.md +342 -0
- package/.local/skills/slides/templates/vintage-apothecary.md +552 -0
- package/.local/skills/slides/templates/vintage-ticket-stub.md +637 -0
- package/.local/skills/slides/templates/vinyl-crate.md +550 -0
- package/.local/skills/slides/templates/vision-editorial.md +612 -0
- package/.local/skills/slides/templates/volcanic-edge.md +347 -0
- package/.local/skills/slides/templates/watercolor-city.md +827 -0
- package/.local/skills/slides/templates/wine-spirits.md +203 -0
- package/.local/skills/slides/templates/wireframe-prototype.md +718 -0
- package/.local/skills/slides/templates/workspace-design.md +782 -0
- package/.local/skills/slides/templates/workspace-modern.md +406 -0
- package/.local/skills/slides/templates/zen-meditation.md +284 -0
- package/.local/skills/slides/templates/zen-void.md +244 -0
- package/.local/skills/stripe/.fingerprint +1 -0
- package/.local/skills/stripe/SKILL.md +455 -0
- package/.local/skills/stripe/references/code-templates.md +588 -0
- package/.local/skills/threat_modeling/.fingerprint +1 -0
- package/.local/skills/threat_modeling/SKILL.md +240 -0
- package/.local/skills/validation/.fingerprint +1 -0
- package/.local/skills/validation/SKILL.md +237 -0
- package/.local/skills/video-js/.fingerprint +1 -0
- package/.local/skills/video-js/SKILL.md +793 -0
- package/.local/skills/video-js/references/audio.md +237 -0
- package/.local/skills/video-js/references/finalize_playback.md +16 -0
- package/.local/skills/video-js/references/first_build.md +87 -0
- package/.local/skills/video-js/references/scene_selectors.md +428 -0
- package/.local/skills/web-search/.fingerprint +1 -0
- package/.local/skills/web-search/SKILL.md +110 -0
- package/.local/skills/whop/.fingerprint +1 -0
- package/.local/skills/whop/SKILL.md +104 -0
- package/.local/skills/whop/references/code-templates.md +66 -0
- package/.local/skills/whop/references/whop-api.mjs +22 -0
- package/.local/skills/whop/references/whop-mcp.mjs +40 -0
- package/.local/skills/whop/references/whopClient.ts +54 -0
- package/.local/skills/workflows/.fingerprint +1 -0
- package/.local/skills/workflows/SKILL.md +245 -0
- package/.local/state/replit/agent/.agent_state_037313043e76b5c652f276153ea014a68570e145.bin +0 -0
- package/.local/state/replit/agent/.agent_state_0f5361c2a53ab324b2a941a797f6494891be084c.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4272443827dc90eac8c5b1963a34ee86da70bb99.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4f14655950cbd611b228b4f0e1f664b66a56af24.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ce28955a30856aa3d095b3568c322c8ec098993f.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ec5347d04ebfbf6cf850fe04e15590d423e96d1d.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f68f8c104d815ccc387290f0fba2c87c818d29f1.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f87c1803a179510408c57c7a380c26f5c2197a30.bin +0 -0
- package/.local/state/replit/agent/.agent_state_main.bin +0 -0
- package/.local/state/replit/agent/.latest.json +1 -0
- package/.local/state/replit/agent/repl_state.bin +0 -0
- package/.local/state/scribe/scribe.db +0 -0
- package/.local/state/scribe/scribe.db-shm +0 -0
- package/.local/state/scribe/scribe.db-wal +0 -0
- package/.local/state/workflow-logs/2tfQP52ibxJTy4lpZ7_JX/start_application.shell.exec.0 +27 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.external.managed.0 +31 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.json +1 -0
- package/.local/state/workflow-logs/85n-z_SHy4JSGaUeJIcxy/start_application.shell.exec.0 +18 -0
- package/.local/state/workflow-logs/GIL2Ql5124lrEqGrfRO4k/start_application.shell.exec.0 +222 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.external.managed.0 +45 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.json +1 -0
- package/.local/state/workflow-logs/OKp1t-fEO5U_zQi1SKOQ-/start_application.shell.exec.0 +10 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.external.managed.0 +43 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.json +1 -0
- package/.local/state/workflow-logs/UDYycRqPV-N4B7whZP-yX/start_application.shell.exec.0 +252 -0
- package/.local/state/workflow-logs/V8Anmvz-HuvAztflZ8yCo/start_application.shell.exec.0 +87 -0
- package/.local/state/workflow-logs/a5fMnjr9tCwoaFY93pYuN/start_application.shell.exec.0 +2519 -0
- package/.local/state/workflow-logs/ggFzYcdHfIlW0owP2pb0U/start_application.shell.exec.0 +28 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.external.managed.0 +41 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.json +1 -0
- package/.local/state/workflow-logs/nbLvtuGJXB0wPmnruB3BE/start_application.shell.exec.0 +199 -0
- package/.local/state/workflow-logs/uDhN6S0ypUEh0MphXaFGY/start_application.shell.exec.0 +73 -0
- package/.local/state/workflow-logs/xZqU5CdTivcY6KEDEcVmD/start_application.shell.exec.0 +17 -0
- package/.local/tasks/breadcrumb-component.md +89 -0
- package/.local/tasks/calendar-component.md +93 -0
- package/.local/tasks/invoicing-design-system-app.md +39 -0
- package/.local/tasks/task-1.md +42 -0
- package/.local/tasks/task-7.md +92 -0
- package/.local/tasks/task-8.md +96 -0
- package/.replit +34 -0
- package/.upm/store.json +1 -0
- package/README.md +121 -0
- package/app/dashboard/page.tsx +10 -0
- package/app/design-system/page.tsx +802 -0
- package/app/invoices/page.tsx +10 -0
- package/app/layout.tsx +28 -0
- package/app/login/page.tsx +5 -0
- package/app/page.tsx +93 -0
- package/app/signup/page.tsx +5 -0
- package/attached_assets/Colors_1779781016394.png +0 -0
- package/attached_assets/Navy_1779781016404.png +0 -0
- package/attached_assets/Orange_1779781016405.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_1.14.29_PM_1779781472515.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_11.28.20_AM_1779775171071.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_2.04.42_PM_1779784485318.png +0 -0
- package/attached_assets/Typography_1779781016406.png +0 -0
- package/design-system/components/avatar.tsx +46 -0
- package/design-system/components/badge.tsx +34 -0
- package/design-system/components/breadcrumb.tsx +149 -0
- package/design-system/components/button.tsx +57 -0
- package/design-system/components/calendar.tsx +77 -0
- package/design-system/components/card.tsx +62 -0
- package/design-system/components/checkbox.tsx +27 -0
- package/design-system/components/date-picker.tsx +153 -0
- package/design-system/components/dialog.tsx +106 -0
- package/design-system/components/dropdown-menu.tsx +88 -0
- package/design-system/components/form-field.tsx +78 -0
- package/design-system/components/input.tsx +25 -0
- package/design-system/components/label.tsx +25 -0
- package/design-system/components/popover.tsx +30 -0
- package/design-system/components/radio-group.tsx +35 -0
- package/design-system/components/select.tsx +84 -0
- package/design-system/components/separator.tsx +24 -0
- package/design-system/components/switch.tsx +28 -0
- package/design-system/components/table.tsx +80 -0
- package/design-system/components/tabs.tsx +54 -0
- package/design-system/components/textarea.tsx +25 -0
- package/design-system/components/toast.tsx +118 -0
- package/design-system/components/toaster.tsx +38 -0
- package/design-system/components/tooltip.tsx +27 -0
- package/design-system/hooks/index.ts +2 -0
- package/design-system/hooks/use-media-query.ts +27 -0
- package/design-system/hooks/use-toast.ts +91 -0
- package/design-system/index.ts +36 -0
- package/design-system/lib/cn.ts +6 -0
- package/design-system/styles.css +142 -0
- package/design-system/tokens/tokens.css +149 -0
- package/design-system/tokens/tokens.ts +190 -0
- package/next.config.mjs +6 -0
- package/package.json +46 -0
- package/postcss.config.mjs +6 -0
- package/screens/_shared/app-shell.tsx +145 -0
- package/screens/auth/auth-screen.tsx +156 -0
- package/screens/dashboard/dashboard-screen.tsx +207 -0
- package/screens/index.ts +17 -0
- package/screens/invoices/invoices-screen.tsx +317 -0
- package/tailwind.config.ts +110 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# Content Atoms Extraction
|
|
2
|
+
|
|
3
|
+
Content atoms are the fundamental building blocks for all marketing content. Instead of summarizing an episode and writing content from the summary, this approach extracts discrete, reusable content units that can be independently scored, filtered, and transformed into platform-native content.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [The 7 Atom Types](#the-7-atom-types)
|
|
8
|
+
- [Extraction Prompt](#extraction-prompt)
|
|
9
|
+
|
|
10
|
+
- [Output Format](#output-format)
|
|
11
|
+
- [Scoring Rubric](#scoring-rubric)
|
|
12
|
+
|
|
13
|
+
- [Using Atoms Downstream](#using-atoms-downstream)
|
|
14
|
+
|
|
15
|
+
## The 7 Atom Types
|
|
16
|
+
|
|
17
|
+
### 1. Narrative Arcs
|
|
18
|
+
|
|
19
|
+
Stories with a clear setup, tension, and resolution. These are the most engaging content atoms because humans are wired for narrative.
|
|
20
|
+
|
|
21
|
+
**Signals:** "Let me tell you about...", "There was this time when...", "We were facing...", "The turning point was...", temporal markers (dates, "back in 2019"), emotional language.
|
|
22
|
+
|
|
23
|
+
### 2. Quotable Moments
|
|
24
|
+
|
|
25
|
+
Punchy one-liners or short statements that work as standalone text. These become quote cards, tweet hooks, and newsletter pull quotes.
|
|
26
|
+
|
|
27
|
+
**Signals:** Concise declarative statements, metaphors, analogies, memorable phrasing, moments where the host reacts with "wow" or "that's a great way to put it."
|
|
28
|
+
|
|
29
|
+
### 3. Controversial Takes
|
|
30
|
+
|
|
31
|
+
Opinions that challenge mainstream thinking or established practices. These drive the most engagement because people want to agree or argue.
|
|
32
|
+
|
|
33
|
+
**Signals:** "I actually think...", "Most people get this wrong...", "The conventional wisdom is...", "I know this is unpopular, but...", "Here's what nobody talks about..."
|
|
34
|
+
|
|
35
|
+
### 4. Data Points
|
|
36
|
+
|
|
37
|
+
Statistics, numbers, research findings, and measurable results. These add credibility and make content shareable.
|
|
38
|
+
|
|
39
|
+
**Signals:** Specific numbers, percentages, dollar amounts, time periods with results, references to studies or research, before/after comparisons.
|
|
40
|
+
|
|
41
|
+
### 5. Frameworks
|
|
42
|
+
|
|
43
|
+
Mental models, step-by-step processes, and structured ways of thinking. These are highly useful and save-worthy.
|
|
44
|
+
|
|
45
|
+
**Signals:** Numbered steps, "The way I think about it is...", categorization ("There are three types of..."), acronyms, matrices, decision trees described verbally.
|
|
46
|
+
|
|
47
|
+
### 6. Stories
|
|
48
|
+
|
|
49
|
+
Personal anecdotes, case studies, and concrete examples that illustrate broader points. Shorter and more focused than full narrative arcs.
|
|
50
|
+
|
|
51
|
+
**Signals:** Specific names, companies, or situations, "For example...", "One of our clients...", "I remember when...", details that make it feel real (place names, specific actions).
|
|
52
|
+
|
|
53
|
+
### 7. Predictions
|
|
54
|
+
|
|
55
|
+
Forward-looking claims about trends, industries, or technologies. These generate discussion and position the speaker as a thought leader.
|
|
56
|
+
|
|
57
|
+
**Signals:** "In the next 5 years...", "I think we're going to see...", "The future of X is...", "What's coming is...", "My bet is that..."
|
|
58
|
+
|
|
59
|
+
## Extraction Prompt
|
|
60
|
+
|
|
61
|
+
Use this prompt template to extract atoms from a transcript. Pass the full transcript (or chunked if too long) and episode metadata.
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
|
|
65
|
+
You are a content strategist extracting reusable content atoms from a podcast transcript.
|
|
66
|
+
|
|
67
|
+
Episode: {title}
|
|
68
|
+
|
|
69
|
+
Host: {host_name}
|
|
70
|
+
|
|
71
|
+
Guest: {guest_name}
|
|
72
|
+
|
|
73
|
+
Date: {publish_date}
|
|
74
|
+
|
|
75
|
+
Transcript (with segment timestamps):
|
|
76
|
+
|
|
77
|
+
{transcript_text_with_timestamps}
|
|
78
|
+
|
|
79
|
+
Extract all content atoms from this transcript. For each atom, provide:
|
|
80
|
+
|
|
81
|
+
1. **type**: One of: narrative_arc, quotable_moment, controversial_take, data_point, framework, story, prediction
|
|
82
|
+
2. **verbatim_text**: The exact quote or passage from the transcript (keep it verbatim — do not paraphrase)
|
|
83
|
+
|
|
84
|
+
3. **start_timestamp**: Start time in seconds — REQUIRED. Find the segment timestamp where this quote begins.
|
|
85
|
+
4. **end_timestamp**: End time in seconds — REQUIRED. Find the segment timestamp where this quote ends.
|
|
86
|
+
|
|
87
|
+
5. **speaker**: Who said it (host or guest name)
|
|
88
|
+
6. **hook**: A one-line attention-grabbing opener that could start a social post about this atom (write this fresh — don't just copy the verbatim text)
|
|
89
|
+
|
|
90
|
+
7. **context**: One sentence of context explaining why this atom matters
|
|
91
|
+
|
|
92
|
+
Rules:
|
|
93
|
+
|
|
94
|
+
- Extract 15-30 atoms per episode (more for longer episodes)
|
|
95
|
+
- Keep verbatim_text between 1-4 sentences — enough to stand alone but not a full monologue
|
|
96
|
+
|
|
97
|
+
- EVERY atom MUST have start_timestamp and end_timestamp. Match the verbatim text against the transcript segments to find timestamps. If the transcript has segment-level timestamps (e.g., [0.16-3.2] "text"), use those. Atoms without timestamps cannot be used for video clip selection.
|
|
98
|
+
- For narrative_arcs, capture the full arc (setup + tension + resolution) even if it spans multiple exchanges
|
|
99
|
+
|
|
100
|
+
- For frameworks, capture all steps/components
|
|
101
|
+
- Prefer atoms where the guest is speaking (guest insights > host commentary)
|
|
102
|
+
|
|
103
|
+
- Skip filler, pleasantries, and podcast housekeeping (sponsors, subscribe reminders)
|
|
104
|
+
|
|
105
|
+
Return as a JSON array.
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Providing Timestamps to the LLM
|
|
110
|
+
|
|
111
|
+
When sending the transcript for atom extraction, include segment timestamps so the model can map quotes to time codes. Format the transcript as:
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
|
|
115
|
+
[0.16-3.20] All right, everybody. Welcome back to the number one podcast in the world.
|
|
116
|
+
|
|
117
|
+
[3.20-7.44] It's the all-in podcast. David Saxs couldn't make it this week.
|
|
118
|
+
|
|
119
|
+
[7.44-12.08] but we have the trio. David Freeberg is here, your Sultan of Science.
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Build this from the transcript segments array:
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
|
|
127
|
+
def format_transcript_with_timestamps(segments):
|
|
128
|
+
|
|
129
|
+
lines = []
|
|
130
|
+
|
|
131
|
+
for seg in segments:
|
|
132
|
+
|
|
133
|
+
lines.append(f"[{seg['start']:.1f}-{seg['end']:.1f}] {seg['text']}")
|
|
134
|
+
|
|
135
|
+
return "\n".join(lines)
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
This is critical — without timestamps in the prompt, the LLM cannot assign accurate start/end times to atoms, and video clip extraction will fail.
|
|
140
|
+
|
|
141
|
+
## Output Format
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
|
|
145
|
+
{
|
|
146
|
+
|
|
147
|
+
"episode": {
|
|
148
|
+
|
|
149
|
+
"title": "Episode Title",
|
|
150
|
+
|
|
151
|
+
"guest": "Guest Name",
|
|
152
|
+
|
|
153
|
+
"date": "2024-01-15"
|
|
154
|
+
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
"atoms": [
|
|
158
|
+
|
|
159
|
+
{
|
|
160
|
+
|
|
161
|
+
"id": "atom-001",
|
|
162
|
+
|
|
163
|
+
"type": "controversial_take",
|
|
164
|
+
|
|
165
|
+
"verbatim_text": "I actually think most startups fail not because of product-market fit, but because founders get bored. They chase the next shiny thing before the boring middle part is done.",
|
|
166
|
+
|
|
167
|
+
"start_timestamp": 847.2,
|
|
168
|
+
|
|
169
|
+
"end_timestamp": 862.5,
|
|
170
|
+
|
|
171
|
+
"speaker": "Jane Smith",
|
|
172
|
+
|
|
173
|
+
"hook": "The real reason startups fail isn't what you think",
|
|
174
|
+
|
|
175
|
+
"context": "Guest challenges the dominant PMF narrative with a behavioral explanation for startup failure.",
|
|
176
|
+
|
|
177
|
+
"scores": {
|
|
178
|
+
|
|
179
|
+
"novelty": 75,
|
|
180
|
+
|
|
181
|
+
"controversy": 85,
|
|
182
|
+
|
|
183
|
+
"utility": 45,
|
|
184
|
+
|
|
185
|
+
"total": 70
|
|
186
|
+
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
]
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Scoring Rubric
|
|
198
|
+
|
|
199
|
+
Score each atom on three dimensions (0-100 each), then compute a weighted total.
|
|
200
|
+
|
|
201
|
+
### Novelty (40% weight)
|
|
202
|
+
|
|
203
|
+
- **90-100**: Never heard before — genuinely new idea, original research, or unique framing
|
|
204
|
+
- **70-89**: Fresh angle on a known topic — most people haven't thought about it this way
|
|
205
|
+
|
|
206
|
+
- **50-69**: Interesting but not surprising — well-articulated common knowledge
|
|
207
|
+
- **30-49**: Familiar territory — said before by others in similar ways
|
|
208
|
+
|
|
209
|
+
- **0-29**: Cliché or obvious — "work smarter not harder" territory
|
|
210
|
+
|
|
211
|
+
### Controversy (30% weight)
|
|
212
|
+
|
|
213
|
+
- **90-100**: Directly contradicts mainstream consensus — will generate strong disagreement
|
|
214
|
+
- **70-89**: Challenges common practice — many people will push back
|
|
215
|
+
|
|
216
|
+
- **50-69**: Mildly provocative — some people will disagree
|
|
217
|
+
- **30-49**: Safe but has a point of view — unlikely to generate debate
|
|
218
|
+
|
|
219
|
+
- **0-29**: Universally agreed upon — no tension
|
|
220
|
+
|
|
221
|
+
### Utility (30% weight)
|
|
222
|
+
|
|
223
|
+
- **90-100**: Immediately actionable — reader can implement today
|
|
224
|
+
- **70-89**: Clearly useful with some adaptation — provides a framework or process
|
|
225
|
+
|
|
226
|
+
- **50-69**: Informative — reader learns something but no clear action step
|
|
227
|
+
- **30-49**: Interesting but abstract — thought-provoking without practical application
|
|
228
|
+
|
|
229
|
+
- **0-29**: Pure entertainment or opinion — no takeaway
|
|
230
|
+
|
|
231
|
+
### Total = (Novelty × 0.4) + (Controversy × 0.3) + (Utility × 0.3)
|
|
232
|
+
|
|
233
|
+
## Using Atoms Downstream
|
|
234
|
+
|
|
235
|
+
Once atoms are extracted and scored, they feed into every content type:
|
|
236
|
+
|
|
237
|
+
| Content Type | Which Atoms to Use |
|
|
238
|
+
|
|
239
|
+
|-------------|-------------------|
|
|
240
|
+
|
|
241
|
+
| **Twitter thread** | Top-scoring controversial takes and data points as hooks; frameworks as thread bodies |
|
|
242
|
+
|
|
243
|
+
| **LinkedIn post** | Frameworks and data points (professional audience values utility) |
|
|
244
|
+
|
|
245
|
+
| **Blog post** | Narrative arcs and stories for the body; data points for credibility |
|
|
246
|
+
|
|
247
|
+
| **Newsletter** | Top 2-3 atoms by total score, any type |
|
|
248
|
+
|
|
249
|
+
| **Quote cards** | Quotable moments with highest novelty scores |
|
|
250
|
+
|
|
251
|
+
| **Video clips** | Controversial takes, stories, and data points (visual engagement) |
|
|
252
|
+
|
|
253
|
+
| **Show notes** | All atom types, organized by topic/timestamp |
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# Content Calendar
|
|
2
|
+
|
|
3
|
+
Auto-schedule generated content across platforms using best-practice timing rules and content mix optimization.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Platform Timing Rules](#platform-timing-rules)
|
|
8
|
+
- [Content Mix Strategy](#content-mix-strategy)
|
|
9
|
+
|
|
10
|
+
- [Calendar Generation Logic](#calendar-generation-logic)
|
|
11
|
+
- [Output Format](#output-format)
|
|
12
|
+
|
|
13
|
+
- [Multi-Episode Scheduling](#multi-episode-scheduling)
|
|
14
|
+
|
|
15
|
+
## Platform Timing Rules
|
|
16
|
+
|
|
17
|
+
Optimal posting times based on platform-specific engagement data. Times are in the user's local timezone (ask if not provided, default to US Eastern).
|
|
18
|
+
|
|
19
|
+
| Platform | Best Days | Best Times | Frequency | Notes |
|
|
20
|
+
|
|
21
|
+
|----------|----------|-----------|-----------|-------|
|
|
22
|
+
|
|
23
|
+
| Twitter/X | Mon-Fri | 9-11am, 1-3pm | 1-2 posts/day | Threads perform best Tue-Thu morning |
|
|
24
|
+
|
|
25
|
+
| LinkedIn | Tue-Thu | 8-10am | 2-3 posts/week | Avoid weekends — engagement drops 60% |
|
|
26
|
+
|
|
27
|
+
| Instagram Feed | Mon, Wed, Fri | 11am-1pm | 3-5 posts/week | Quote cards + carousels outperform text |
|
|
28
|
+
|
|
29
|
+
| Instagram Reels | Tue, Thu, Sat | 9am, 12pm, 7pm | 3-5/week | First 3 seconds are critical |
|
|
30
|
+
|
|
31
|
+
| TikTok | Tue, Thu, Sat | 7-9pm | 3-5/week | Evening posts outperform morning |
|
|
32
|
+
|
|
33
|
+
| YouTube Shorts | Sat, Sun | 9am-12pm | 1-2/week | Weekend discovery is strongest |
|
|
34
|
+
|
|
35
|
+
| Newsletter | Tue or Thu | 7-9am | 1/week | Tuesday has highest open rates |
|
|
36
|
+
|
|
37
|
+
| Blog | Any weekday | Morning publish | 1/episode | SEO value accumulates over time |
|
|
38
|
+
|
|
39
|
+
## Content Mix Strategy
|
|
40
|
+
|
|
41
|
+
Don't dump all content on release day. Spread it across the week following an episode release to maximize reach and avoid audience fatigue.
|
|
42
|
+
|
|
43
|
+
### Release Week Schedule (Single Episode)
|
|
44
|
+
|
|
45
|
+
| Day | Platform | Content Piece | Why |
|
|
46
|
+
|
|
47
|
+
|-----|----------|--------------|-----|
|
|
48
|
+
|
|
49
|
+
| Day 0 (Release) | Blog, Newsletter | Blog post + newsletter | Drive listens on release day |
|
|
50
|
+
|
|
51
|
+
| Day 1 | Twitter/X | Thread (top atoms) | Morning engagement peak |
|
|
52
|
+
|
|
53
|
+
| Day 1 | Instagram | Quote card (highest-scored quote) | Visual hook |
|
|
54
|
+
|
|
55
|
+
| Day 2 | LinkedIn | Long-form post | Professional audience, mid-week peak |
|
|
56
|
+
|
|
57
|
+
| Day 2 | TikTok | Video clip \#1 (most controversial) | Evening engagement |
|
|
58
|
+
|
|
59
|
+
| Day 3 | Twitter/X | Single tweet (data point atom) | Maintain presence |
|
|
60
|
+
|
|
61
|
+
| Day 3 | Instagram Reels | Video clip \#1 (cross-post) | Reels algorithm favors consistency |
|
|
62
|
+
|
|
63
|
+
| Day 4 | Instagram | Quote card \#2 | Keep feed active |
|
|
64
|
+
|
|
65
|
+
| Day 4 | YouTube Shorts | Video clip \#2 | Weekend discovery window |
|
|
66
|
+
|
|
67
|
+
| Day 5 | Twitter/X | Quote tweet thread with commentary | Re-engage thread audience |
|
|
68
|
+
|
|
69
|
+
| Day 5 | TikTok | Video clip \#2 | Different angle from clip \#1 |
|
|
70
|
+
|
|
71
|
+
| Day 6 | Instagram Stories | Behind-the-scenes or teaser for next ep | Build anticipation |
|
|
72
|
+
|
|
73
|
+
### Content Priority by Score
|
|
74
|
+
|
|
75
|
+
Map viral scores to scheduling priority:
|
|
76
|
+
|
|
77
|
+
- **80-100 (Priority)**: Schedule in prime-time slots (peak engagement hours). These are your hero posts — threads, lead video clips, newsletter leads.
|
|
78
|
+
- **60-79 (Strong)**: Fill standard slots. Good supporting content — quote cards, secondary clips, individual tweets.
|
|
79
|
+
|
|
80
|
+
- **40-59 (Fill)**: Use for low-competition slots or story content. Keep the feed active without risking weak performance in prime slots.
|
|
81
|
+
- **Below 40**: Don't schedule. Archive for potential future use.
|
|
82
|
+
|
|
83
|
+
## Calendar Generation Logic
|
|
84
|
+
|
|
85
|
+
### Algorithm
|
|
86
|
+
|
|
87
|
+
1. Sort all content pieces by viral score (descending)
|
|
88
|
+
2. Assign hero content (score 80+) to prime-time slots first
|
|
89
|
+
|
|
90
|
+
3. Fill remaining slots with strong content (60-79), respecting platform frequency limits
|
|
91
|
+
4. Add fill content (40-59) to any remaining open slots
|
|
92
|
+
|
|
93
|
+
5. Check for conflicts (no two posts on the same platform within 4 hours)
|
|
94
|
+
6. Verify content variety (no two quote cards back-to-back on the same platform)
|
|
95
|
+
|
|
96
|
+
### Slot Assignment
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
|
|
100
|
+
from datetime import datetime, timedelta
|
|
101
|
+
|
|
102
|
+
PLATFORM_SLOTS = {
|
|
103
|
+
|
|
104
|
+
"twitter": [
|
|
105
|
+
|
|
106
|
+
{"day_offset": 1, "time": "09:00", "type": "thread"},
|
|
107
|
+
|
|
108
|
+
{"day_offset": 3, "time": "10:00", "type": "single_tweet"},
|
|
109
|
+
|
|
110
|
+
{"day_offset": 5, "time": "09:00", "type": "quote_tweet"},
|
|
111
|
+
|
|
112
|
+
],
|
|
113
|
+
|
|
114
|
+
"linkedin": [
|
|
115
|
+
|
|
116
|
+
{"day_offset": 2, "time": "08:30", "type": "article"},
|
|
117
|
+
|
|
118
|
+
],
|
|
119
|
+
|
|
120
|
+
"instagram_feed": [
|
|
121
|
+
|
|
122
|
+
{"day_offset": 1, "time": "12:00", "type": "quote_card"},
|
|
123
|
+
|
|
124
|
+
{"day_offset": 4, "time": "11:00", "type": "quote_card"},
|
|
125
|
+
|
|
126
|
+
],
|
|
127
|
+
|
|
128
|
+
"instagram_reels": [
|
|
129
|
+
|
|
130
|
+
{"day_offset": 3, "time": "12:00", "type": "video_clip"},
|
|
131
|
+
|
|
132
|
+
],
|
|
133
|
+
|
|
134
|
+
"tiktok": [
|
|
135
|
+
|
|
136
|
+
{"day_offset": 2, "time": "19:00", "type": "video_clip"},
|
|
137
|
+
|
|
138
|
+
{"day_offset": 5, "time": "19:00", "type": "video_clip"},
|
|
139
|
+
|
|
140
|
+
],
|
|
141
|
+
|
|
142
|
+
"youtube_shorts": [
|
|
143
|
+
|
|
144
|
+
{"day_offset": 4, "time": "10:00", "type": "video_clip"},
|
|
145
|
+
|
|
146
|
+
],
|
|
147
|
+
|
|
148
|
+
"newsletter": [
|
|
149
|
+
|
|
150
|
+
{"day_offset": 0, "time": "08:00", "type": "newsletter"},
|
|
151
|
+
|
|
152
|
+
],
|
|
153
|
+
|
|
154
|
+
"blog": [
|
|
155
|
+
|
|
156
|
+
{"day_offset": 0, "time": "09:00", "type": "blog_post"},
|
|
157
|
+
|
|
158
|
+
],
|
|
159
|
+
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
def generate_calendar(
|
|
163
|
+
|
|
164
|
+
content_pieces: list[dict],
|
|
165
|
+
|
|
166
|
+
release_date: datetime,
|
|
167
|
+
|
|
168
|
+
timezone: str = "US/Eastern",
|
|
169
|
+
|
|
170
|
+
) -> list[dict]:
|
|
171
|
+
|
|
172
|
+
"""Generate a content calendar from scored content pieces."""
|
|
173
|
+
|
|
174
|
+
sorted_pieces = sorted(
|
|
175
|
+
|
|
176
|
+
content_pieces, key=lambda p: p.get("score", 0), reverse=True
|
|
177
|
+
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
calendar = []
|
|
181
|
+
|
|
182
|
+
used_slots = set()
|
|
183
|
+
|
|
184
|
+
for piece in sorted_pieces:
|
|
185
|
+
|
|
186
|
+
platform = piece["platform"]
|
|
187
|
+
|
|
188
|
+
content_type = piece["type"]
|
|
189
|
+
|
|
190
|
+
slots = PLATFORM_SLOTS.get(platform, [])
|
|
191
|
+
|
|
192
|
+
for slot in slots:
|
|
193
|
+
|
|
194
|
+
if slot["type"] != content_type:
|
|
195
|
+
|
|
196
|
+
continue
|
|
197
|
+
|
|
198
|
+
slot_key = f"{platform}-{slot['day_offset']}-{slot['time']}"
|
|
199
|
+
|
|
200
|
+
if slot_key in used_slots:
|
|
201
|
+
|
|
202
|
+
continue
|
|
203
|
+
|
|
204
|
+
publish_date = release_date + timedelta(days=slot["day_offset"])
|
|
205
|
+
|
|
206
|
+
hour, minute = map(int, slot["time"].split(":"))
|
|
207
|
+
|
|
208
|
+
publish_dt = publish_date.replace(hour=hour, minute=minute)
|
|
209
|
+
|
|
210
|
+
calendar.append({
|
|
211
|
+
|
|
212
|
+
"platform": platform,
|
|
213
|
+
|
|
214
|
+
"type": content_type,
|
|
215
|
+
|
|
216
|
+
"publish_at": publish_dt.isoformat(),
|
|
217
|
+
|
|
218
|
+
"content": piece["content"],
|
|
219
|
+
|
|
220
|
+
"score": piece.get("score", 0),
|
|
221
|
+
|
|
222
|
+
"atom_id": piece.get("atom_id"),
|
|
223
|
+
|
|
224
|
+
})
|
|
225
|
+
|
|
226
|
+
used_slots.add(slot_key)
|
|
227
|
+
|
|
228
|
+
break
|
|
229
|
+
|
|
230
|
+
calendar.sort(key=lambda c: c["publish_at"])
|
|
231
|
+
|
|
232
|
+
return calendar
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Output Format
|
|
237
|
+
|
|
238
|
+
The calendar is saved as JSON for easy integration with scheduling tools:
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
|
|
242
|
+
{
|
|
243
|
+
|
|
244
|
+
"episode": {
|
|
245
|
+
|
|
246
|
+
"title": "Episode Title",
|
|
247
|
+
|
|
248
|
+
"release_date": "2024-01-15",
|
|
249
|
+
|
|
250
|
+
"url": "https://..."
|
|
251
|
+
|
|
252
|
+
},
|
|
253
|
+
|
|
254
|
+
"timezone": "US/Eastern",
|
|
255
|
+
|
|
256
|
+
"calendar": [
|
|
257
|
+
|
|
258
|
+
{
|
|
259
|
+
|
|
260
|
+
"platform": "blog",
|
|
261
|
+
|
|
262
|
+
"type": "blog_post",
|
|
263
|
+
|
|
264
|
+
"publish_at": "2024-01-15T09:00:00",
|
|
265
|
+
|
|
266
|
+
"content_file": "blog-post.md",
|
|
267
|
+
|
|
268
|
+
"score": 82
|
|
269
|
+
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
{
|
|
273
|
+
|
|
274
|
+
"platform": "twitter",
|
|
275
|
+
|
|
276
|
+
"type": "thread",
|
|
277
|
+
|
|
278
|
+
"publish_at": "2024-01-16T09:00:00",
|
|
279
|
+
|
|
280
|
+
"content_file": "social/twitter-thread.md",
|
|
281
|
+
|
|
282
|
+
"score": 91
|
|
283
|
+
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
],
|
|
287
|
+
|
|
288
|
+
"stats": {
|
|
289
|
+
|
|
290
|
+
"total_pieces": 15,
|
|
291
|
+
|
|
292
|
+
"scheduled": 12,
|
|
293
|
+
|
|
294
|
+
"cut_below_threshold": 3,
|
|
295
|
+
|
|
296
|
+
"avg_score": 72,
|
|
297
|
+
|
|
298
|
+
"highest_score": 91,
|
|
299
|
+
|
|
300
|
+
"platforms_covered": 7,
|
|
301
|
+
|
|
302
|
+
"calendar_span_days": 6
|
|
303
|
+
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## Multi-Episode Scheduling
|
|
311
|
+
|
|
312
|
+
When processing multiple episodes (batch mode), interleave content from different episodes to maintain variety:
|
|
313
|
+
|
|
314
|
+
- Never schedule content from two different episodes on the same platform on the same day
|
|
315
|
+
- Space episode releases at least 3 days apart in the calendar
|
|
316
|
+
|
|
317
|
+
- Prioritize newer episodes for prime-time slots
|
|
318
|
+
- Use older episode content as gap filler between new releases
|