invos 1.0.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/README.md +39 -0
- package/bin/invos.js +78 -0
- package/kit/.agents/skills/apple/DESCRIPTION.md +2 -0
- package/kit/.agents/skills/apple/apple-notes/SKILL.md +90 -0
- package/kit/.agents/skills/apple/apple-reminders/SKILL.md +130 -0
- package/kit/.agents/skills/audit/SKILL.md +177 -0
- package/kit/.agents/skills/design-marca/SKILL.md +92 -0
- package/kit/.agents/skills/humanizer/SKILL.md +476 -0
- package/kit/.agents/skills/instagram-carrossel/SKILL.md +79 -0
- package/kit/.agents/skills/instagram-carrossel/references/fetch-assets.md +77 -0
- package/kit/.agents/skills/instagram-carrossel/references/publish.md +48 -0
- package/kit/.agents/skills/instagram-carrossel/references/render-png.md +147 -0
- package/kit/.agents/skills/instagram-carrossel/scripts/publish.js +165 -0
- package/kit/.agents/skills/llm-wiki/SKILL.md +507 -0
- package/kit/.agents/skills/onboard/SKILL.md +152 -0
- package/kit/.agents/skills/pd-ikigai/SKILL.md +269 -0
- package/kit/.agents/skills/popular-web-designs/SKILL.md +214 -0
- package/kit/.agents/skills/popular-web-designs/templates/airbnb.md +259 -0
- package/kit/.agents/skills/popular-web-designs/templates/airtable.md +102 -0
- package/kit/.agents/skills/popular-web-designs/templates/apple.md +326 -0
- package/kit/.agents/skills/popular-web-designs/templates/bmw.md +193 -0
- package/kit/.agents/skills/popular-web-designs/templates/cal.md +272 -0
- package/kit/.agents/skills/popular-web-designs/templates/claude.md +325 -0
- package/kit/.agents/skills/popular-web-designs/templates/clay.md +317 -0
- package/kit/.agents/skills/popular-web-designs/templates/clickhouse.md +294 -0
- package/kit/.agents/skills/popular-web-designs/templates/cohere.md +279 -0
- package/kit/.agents/skills/popular-web-designs/templates/coinbase.md +142 -0
- package/kit/.agents/skills/popular-web-designs/templates/composio.md +320 -0
- package/kit/.agents/skills/popular-web-designs/templates/cursor.md +322 -0
- package/kit/.agents/skills/popular-web-designs/templates/elevenlabs.md +278 -0
- package/kit/.agents/skills/popular-web-designs/templates/expo.md +294 -0
- package/kit/.agents/skills/popular-web-designs/templates/figma.md +233 -0
- package/kit/.agents/skills/popular-web-designs/templates/framer.md +259 -0
- package/kit/.agents/skills/popular-web-designs/templates/hashicorp.md +291 -0
- package/kit/.agents/skills/popular-web-designs/templates/ibm.md +345 -0
- package/kit/.agents/skills/popular-web-designs/templates/intercom.md +159 -0
- package/kit/.agents/skills/popular-web-designs/templates/kraken.md +138 -0
- package/kit/.agents/skills/popular-web-designs/templates/linear.app.md +380 -0
- package/kit/.agents/skills/popular-web-designs/templates/lovable.md +311 -0
- package/kit/.agents/skills/popular-web-designs/templates/minimax.md +270 -0
- package/kit/.agents/skills/popular-web-designs/templates/mintlify.md +339 -0
- package/kit/.agents/skills/popular-web-designs/templates/miro.md +121 -0
- package/kit/.agents/skills/popular-web-designs/templates/mistral.ai.md +274 -0
- package/kit/.agents/skills/popular-web-designs/templates/mongodb.md +279 -0
- package/kit/.agents/skills/popular-web-designs/templates/notion.md +322 -0
- package/kit/.agents/skills/popular-web-designs/templates/nvidia.md +306 -0
- package/kit/.agents/skills/popular-web-designs/templates/ollama.md +280 -0
- package/kit/.agents/skills/popular-web-designs/templates/opencode.ai.md +294 -0
- package/kit/.agents/skills/popular-web-designs/templates/pinterest.md +243 -0
- package/kit/.agents/skills/popular-web-designs/templates/posthog.md +269 -0
- package/kit/.agents/skills/popular-web-designs/templates/raycast.md +281 -0
- package/kit/.agents/skills/popular-web-designs/templates/replicate.md +274 -0
- package/kit/.agents/skills/popular-web-designs/templates/resend.md +316 -0
- package/kit/.agents/skills/popular-web-designs/templates/revolut.md +198 -0
- package/kit/.agents/skills/popular-web-designs/templates/runwayml.md +257 -0
- package/kit/.agents/skills/popular-web-designs/templates/sanity.md +370 -0
- package/kit/.agents/skills/popular-web-designs/templates/sentry.md +275 -0
- package/kit/.agents/skills/popular-web-designs/templates/spacex.md +207 -0
- package/kit/.agents/skills/popular-web-designs/templates/spotify.md +259 -0
- package/kit/.agents/skills/popular-web-designs/templates/stripe.md +335 -0
- package/kit/.agents/skills/popular-web-designs/templates/supabase.md +268 -0
- package/kit/.agents/skills/popular-web-designs/templates/superhuman.md +265 -0
- package/kit/.agents/skills/popular-web-designs/templates/together.ai.md +276 -0
- package/kit/.agents/skills/popular-web-designs/templates/uber.md +308 -0
- package/kit/.agents/skills/popular-web-designs/templates/vercel.md +323 -0
- package/kit/.agents/skills/popular-web-designs/templates/voltagent.md +336 -0
- package/kit/.agents/skills/popular-web-designs/templates/warp.md +266 -0
- package/kit/.agents/skills/popular-web-designs/templates/webflow.md +105 -0
- package/kit/.agents/skills/popular-web-designs/templates/wise.md +186 -0
- package/kit/.agents/skills/popular-web-designs/templates/x.ai.md +270 -0
- package/kit/.agents/skills/popular-web-designs/templates/zapier.md +341 -0
- package/kit/.agents/skills/productivity/DESCRIPTION.md +3 -0
- package/kit/.agents/skills/productivity/google-workspace/SKILL.md +335 -0
- package/kit/.agents/skills/productivity/google-workspace/references/gmail-search-syntax.md +63 -0
- package/kit/.agents/skills/productivity/google-workspace/scripts/_hermes_home.py +42 -0
- package/kit/.agents/skills/productivity/google-workspace/scripts/google_api.py +1225 -0
- package/kit/.agents/skills/productivity/google-workspace/scripts/gws_bridge.py +111 -0
- package/kit/.agents/skills/productivity/google-workspace/scripts/setup.py +481 -0
- package/kit/.agents/skills/productivity/nano-pdf/SKILL.md +52 -0
- package/kit/.agents/skills/productivity/notion/SKILL.md +448 -0
- package/kit/.agents/skills/productivity/notion/references/block-types.md +112 -0
- package/kit/.agents/skills/productivity/ocr-and-documents/DESCRIPTION.md +3 -0
- package/kit/.agents/skills/productivity/ocr-and-documents/SKILL.md +172 -0
- package/kit/.agents/skills/productivity/ocr-and-documents/scripts/extract_marker.py +87 -0
- package/kit/.agents/skills/productivity/ocr-and-documents/scripts/extract_pymupdf.py +98 -0
- package/kit/.agents/skills/productivity/powerpoint/LICENSE.txt +30 -0
- package/kit/.agents/skills/productivity/powerpoint/SKILL.md +237 -0
- package/kit/.agents/skills/productivity/powerpoint/editing.md +205 -0
- package/kit/.agents/skills/productivity/powerpoint/pptxgenjs.md +420 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/__init__.py +0 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/add_slide.py +195 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/clean.py +286 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/helpers/__init__.py +0 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/helpers/merge_runs.py +199 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py +197 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/pack.py +159 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd +42 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd +50 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd +49 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd +33 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd +75 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/kit/.agents/skills/proposta/SKILL.md +159 -0
- package/kit/.agents/skills/proposta/references/proposta-avancada.md +17 -0
- package/kit/.agents/skills/proposta/references/proposta.html +187 -0
- package/kit/.agents/skills/session-checkpoint/SKILL.md +80 -0
- package/kit/.agents/skills/session-end/SKILL.md +166 -0
- package/kit/.agents/skills/session-start/SKILL.md +149 -0
- package/kit/.agents/skills/social-content/SKILL.md +119 -0
- package/kit/.agents/skills/stop-slop/CHANGELOG.md +24 -0
- package/kit/.agents/skills/stop-slop/LICENSE +21 -0
- package/kit/.agents/skills/stop-slop/README.md +62 -0
- package/kit/.agents/skills/stop-slop/SKILL.md +68 -0
- package/kit/.agents/skills/stop-slop/references/examples.md +59 -0
- package/kit/.agents/skills/stop-slop/references/phrases.md +128 -0
- package/kit/.agents/skills/stop-slop/references/structures.md +134 -0
- package/kit/.agents/squads/advisory-board/README.md +34 -0
- package/kit/.agents/squads/advisory-board/agents/board-chair.md +161 -0
- package/kit/.agents/squads/advisory-board/agents/brene-brown.md +296 -0
- package/kit/.agents/squads/advisory-board/agents/charlie-munger.md +590 -0
- package/kit/.agents/squads/advisory-board/agents/derek-sivers.md +268 -0
- package/kit/.agents/squads/advisory-board/agents/naval-ravikant.md +251 -0
- package/kit/.agents/squads/advisory-board/agents/patrick-lencioni.md +394 -0
- package/kit/.agents/squads/advisory-board/agents/peter-thiel.md +269 -0
- package/kit/.agents/squads/advisory-board/agents/ray-dalio.md +587 -0
- package/kit/.agents/squads/advisory-board/agents/reid-hoffman.md +278 -0
- package/kit/.agents/squads/advisory-board/agents/simon-sinek.md +291 -0
- package/kit/.agents/squads/advisory-board/agents/yvon-chouinard.md +275 -0
- package/kit/.agents/squads/advisory-board/checklists/output-quality.md +73 -0
- package/kit/.agents/squads/advisory-board/config/config.yaml +67 -0
- package/kit/.agents/squads/advisory-board/data/mental-models-catalog.yaml +178 -0
- package/kit/.agents/squads/advisory-board/data/routing-catalog.yaml +89 -0
- package/kit/.agents/squads/advisory-board/squad.yaml +50 -0
- package/kit/.agents/squads/advisory-board/tasks/convene-board.md +152 -0
- package/kit/.agents/squads/advisory-board/tasks/diagnose.md +138 -0
- package/kit/.agents/squads/advisory-board/tasks/evaluate-scaling.md +165 -0
- package/kit/.agents/squads/advisory-board/tasks/get-founder-counsel.md +169 -0
- package/kit/.agents/squads/advisory-board/tasks/resolve-culture-crisis.md +164 -0
- package/kit/.agents/squads/advisory-board/tasks/review.md +133 -0
- package/kit/.agents/squads/advisory-board/tasks/seek-investment-counsel.md +161 -0
- package/kit/.agents/squads/advisory-board/workflows/wf-board-meeting.yaml +115 -0
- package/kit/.agents/squads/advisory-board/workflows/wf-decision-framework.yaml +135 -0
- package/kit/.agents/squads/brand/README.md +179 -0
- package/kit/.agents/squads/brand/agents/alexandra-watkins.md +1869 -0
- package/kit/.agents/squads/brand/agents/april-dunford.md +1781 -0
- package/kit/.agents/squads/brand/agents/brand-chief.md +600 -0
- package/kit/.agents/squads/brand/agents/emily-heyward.md +1685 -0
- package/kit/.agents/squads/brand/agents/marty-neumeier.md +1642 -0
- package/kit/.agents/squads/brand/agents/michael-johnson.md +1814 -0
- package/kit/.agents/squads/brand/agents/sagi-haviv.md +2025 -0
- package/kit/.agents/squads/brand/checklists/brand-book-checklist.md +31 -0
- package/kit/.agents/squads/brand/checklists/brand-launch-checklist.md +52 -0
- package/kit/.agents/squads/brand/checklists/brand-strategy-checklist.md +45 -0
- package/kit/.agents/squads/brand/checklists/naming-checklist.md +48 -0
- package/kit/.agents/squads/brand/checklists/positioning-checklist.md +48 -0
- package/kit/.agents/squads/brand/checklists/smoke-tests.md +180 -0
- package/kit/.agents/squads/brand/checklists/visual-identity-checklist.md +61 -0
- package/kit/.agents/squads/brand/config.yaml +135 -0
- package/kit/.agents/squads/brand/data/brand-archetypes.md +135 -0
- package/kit/.agents/squads/brand/data/brand-audit-methodology.md +99 -0
- package/kit/.agents/squads/brand/data/brand-pantheon.md +61 -0
- package/kit/.agents/squads/brand/data/brand-voice-matrix.md +92 -0
- package/kit/.agents/squads/brand/data/color-psychology.md +125 -0
- package/kit/.agents/squads/brand/squad.yaml +123 -0
- package/kit/.agents/squads/brand/tasks/brand-audit.md +150 -0
- package/kit/.agents/squads/brand/tasks/brand-book-creation.md +136 -0
- package/kit/.agents/squads/brand/tasks/brand-diagnosis.md +135 -0
- package/kit/.agents/squads/brand/tasks/brand-touchpoint-audit.md +100 -0
- package/kit/.agents/squads/brand/tasks/coherence-check.md +132 -0
- package/kit/.agents/squads/brand/tasks/logo-evaluation.md +103 -0
- package/kit/.agents/squads/brand/tasks/movement-architecture.md +136 -0
- package/kit/.agents/squads/brand/tasks/naming-exercise.md +134 -0
- package/kit/.agents/squads/brand/tasks/positioning-exercise.md +146 -0
- package/kit/.agents/squads/brand/tasks/research-references.md +225 -0
- package/kit/.agents/squads/brand/tasks/visual-identity-brief.md +134 -0
- package/kit/.agents/squads/brand/templates/brand-book-tmpl.md +148 -0
- package/kit/.agents/squads/brand/templates/brand-soul-canvas-tmpl.md +80 -0
- package/kit/.agents/squads/brand/templates/naming-brief-tmpl.md +83 -0
- package/kit/.agents/squads/brand/templates/positioning-canvas-tmpl.md +60 -0
- package/kit/.agents/squads/brand/templates/visual-identity-brief-tmpl.md +109 -0
- package/kit/.agents/squads/brand/workflows/wf-brand-audit.yaml +148 -0
- package/kit/.agents/squads/brand/workflows/wf-brand-from-zero.yaml +229 -0
- package/kit/.agents/squads/brand/workflows/wf-brief-to-references.yaml +141 -0
- package/kit/.agents/squads/hormozi-squad/README.md +25 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-ads.md +159 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-advisor.md +178 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-audit.md +178 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-chief.md +121 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-closer.md +179 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-content.md +166 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-copy.md +152 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-hooks.md +177 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-launch.md +160 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-leads.md +198 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-models.md +191 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-offers.md +197 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-pricing.md +151 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-retention.md +166 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-scale.md +175 -0
- package/kit/.agents/squads/hormozi-squad/agents/hormozi-workshop.md +160 -0
- package/kit/.agents/squads/hormozi-squad/checklists/output-quality.md +71 -0
- package/kit/.agents/squads/hormozi-squad/config/config.yaml +183 -0
- package/kit/.agents/squads/hormozi-squad/data/hormozi-frameworks.yaml +105 -0
- package/kit/.agents/squads/hormozi-squad/data/routing-catalog.yaml +94 -0
- package/kit/.agents/squads/hormozi-squad/squad.yaml +60 -0
- package/kit/.agents/squads/hormozi-squad/tasks/audit-business.md +186 -0
- package/kit/.agents/squads/hormozi-squad/tasks/close-sale.md +179 -0
- package/kit/.agents/squads/hormozi-squad/tasks/create-hooks.md +159 -0
- package/kit/.agents/squads/hormozi-squad/tasks/create-offer.md +178 -0
- package/kit/.agents/squads/hormozi-squad/tasks/design-workshop.md +192 -0
- package/kit/.agents/squads/hormozi-squad/tasks/diagnose.md +166 -0
- package/kit/.agents/squads/hormozi-squad/tasks/generate-leads.md +187 -0
- package/kit/.agents/squads/hormozi-squad/tasks/plan-launch.md +179 -0
- package/kit/.agents/squads/hormozi-squad/tasks/review.md +133 -0
- package/kit/.agents/squads/hormozi-squad/tasks/set-pricing.md +167 -0
- package/kit/.agents/squads/hormozi-squad/workflows/wf-business-turnaround.yaml +104 -0
- package/kit/.agents/squads/hormozi-squad/workflows/wf-offer-creation.yaml +105 -0
- package/kit/.agents/squads/index.md +14 -0
- package/kit/.agents/squads/instagram-carrossel/DEPENDENCIES.md +75 -0
- package/kit/.agents/squads/instagram-carrossel/README.md +52 -0
- package/kit/.agents/squads/instagram-carrossel/RUN.md +115 -0
- package/kit/.agents/squads/instagram-carrossel/_memory/memories.md +16 -0
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/create-slides.md +96 -0
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/generate-angles.md +111 -0
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/optimize-copy.md +81 -0
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter.custom.md +73 -0
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/create-slides.md +132 -0
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/propose-visual-identities.md +89 -0
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/render-export.md +100 -0
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer.custom.md +47 -0
- package/kit/.agents/squads/instagram-carrossel/agents/publisher/tasks/validate-publish.md +50 -0
- package/kit/.agents/squads/instagram-carrossel/agents/publisher.custom.md +26 -0
- package/kit/.agents/squads/instagram-carrossel/agents/researcher/tasks/find-and-rank-news.md +105 -0
- package/kit/.agents/squads/instagram-carrossel/agents/researcher.custom.md +46 -0
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer/tasks/generate-feedback.md +91 -0
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer/tasks/score-content.md +103 -0
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer.custom.md +53 -0
- package/kit/.agents/squads/instagram-carrossel/output/.gitkeep +0 -0
- package/kit/.agents/squads/instagram-carrossel/output/slides/.gitkeep +0 -0
- package/kit/.agents/squads/instagram-carrossel/output/slides/rendered/.gitkeep +0 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/anti-patterns.md +125 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/domain-framework.md +92 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/instagram-feed-best-practices.md +235 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/output-examples.md +244 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/quality-criteria.md +120 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/research-brief.md +135 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/tone-of-voice.md +32 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/pipeline.yaml +136 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-01-input-content.md +38 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-02-find-news.md +42 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-03-select-story.md +59 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-04-generate-angles.md +45 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-05-select-angle.md +64 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-06-create-copy.md +51 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-07-approve-copy.md +52 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-08-propose-visuals.md +42 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-09-select-visual.md +61 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-10-create-slides.md +55 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-11-approve-images.md +60 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-12-review.md +55 -0
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-13-publish.md +79 -0
- package/kit/.agents/squads/instagram-carrossel/squad-party.csv +6 -0
- package/kit/.agents/squads/instagram-carrossel/squad.yaml +70 -0
- package/kit/AGENTS.md +175 -0
- package/kit/CLAUDE.md +1 -0
- package/kit/COMECE-AQUI.md +207 -0
- package/kit/INVOS.json +37 -0
- package/kit/MEMORY.md +31 -0
- package/kit/README.md +434 -0
- package/kit/SECURITY.md +39 -0
- package/kit/clientes/README.md +72 -0
- package/kit/clientes/_index.md +32 -0
- package/kit/clientes/_template/arquivos/.gitkeep +0 -0
- package/kit/clientes/_template/contexto.md +21 -0
- package/kit/clientes/_template/entregas.md +20 -0
- package/kit/clientes/_template/perfil.md +47 -0
- package/kit/clientes/_template/propostas/.gitkeep +0 -0
- package/kit/conteudo/README.md +12 -0
- package/kit/conteudo/_fila.md +12 -0
- package/kit/conteudo/carrosseis/.gitkeep +0 -0
- package/kit/conteudo/publicados/.gitkeep +0 -0
- package/kit/docs/audit-enxugamento-sieve.md +187 -0
- package/kit/docs/cli.md +62 -0
- package/kit/docs/hotmart-webhook.md +96 -0
- package/kit/docs/lab-user.md +35 -0
- package/kit/docs/prd-invos-cli.md +264 -0
- package/kit/integracoes/README.md +31 -0
- package/kit/integracoes/composio/README.md +128 -0
- package/kit/integracoes/composio/marketing-tools.md +61 -0
- package/kit/marca/README.md +13 -0
- package/kit/marca/assets/.gitkeep +0 -0
- package/kit/marca/marca.md +57 -0
- package/kit/memoria/ativo.md +18 -0
- package/kit/memoria/decisoes.md +26 -0
- package/kit/memoria/empresa.md +46 -0
- package/kit/memoria/historico/README.md +8 -0
- package/kit/memoria/insights.md +11 -0
- package/kit/memoria/perfil.md +29 -0
- package/kit/memoria/projetos.md +27 -0
- package/kit/memoria/regras/_TEMPLATE-exemplo.md +15 -0
- package/kit/memoria/regras/task-com-dono.md +18 -0
- package/kit/scripts/smoke-estado.sh +32 -0
- package/kit/scripts/validar.sh +206 -0
- package/package.json +43 -0
- package/src/commands/doctor.js +104 -0
- package/src/commands/init.js +44 -0
- package/src/commands/install.js +41 -0
- package/src/commands/update.js +113 -0
- package/src/lock.js +47 -0
- package/src/manifest.js +10 -0
- package/src/resolve-kit.js +33 -0
- package/src/symlinks.js +78 -0
- package/src/utils.js +113 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Generate Angles"
|
|
3
|
+
order: 1
|
|
4
|
+
input:
|
|
5
|
+
- selected_story: Notícia escolhida pelo usuário (lida de output/selected-story.yaml)
|
|
6
|
+
- domain_framework: pipeline/data/domain-framework.md (framework de ângulos)
|
|
7
|
+
- company_context: memoria/empresa.md + marca/marca.md
|
|
8
|
+
- tone_of_voice: pipeline/data/tone-of-voice.md
|
|
9
|
+
output:
|
|
10
|
+
- insights_brief: Fatos e tensão central extraídos da notícia (output/insights-brief.yaml)
|
|
11
|
+
- angles_brief: 5 ângulos virais distintos com hook rascunho (output/angles-brief.yaml)
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Generate Angles
|
|
15
|
+
|
|
16
|
+
Lê a notícia selecionada, extrai os insights mais fortes e gera 5 ângulos virais distintos para o carrossel de Instagram. Esta task combina pesquisa e criatividade editorial — o Copywriter sabe quais fatos extrair porque já sabe como vai enquadrá-los.
|
|
17
|
+
|
|
18
|
+
## Process
|
|
19
|
+
|
|
20
|
+
### Parte 1: Extrair Insights da Notícia
|
|
21
|
+
|
|
22
|
+
1. **Acessar a notícia.** Usar web_fetch na URL de `output/selected-story.yaml` para ler o conteúdo completo. Se a URL não estiver acessível, usar o summary do selected-story.yaml como base.
|
|
23
|
+
|
|
24
|
+
2. **Inventariar todos os dados concretos.** Extrair: estatísticas, percentuais, datas, nomes, empresas, quantidades, prazos, resultados. Registrar cada um com contexto.
|
|
25
|
+
|
|
26
|
+
3. **Identificar o fato central (core tension).** O fato mais surpreendente, contraintuitivo ou revelador. É a "virada" que pode mudar a perspectiva do leitor.
|
|
27
|
+
|
|
28
|
+
4. **Selecionar hook candidates.** Os 3-5 dados mais fortes para o slide 1. Priorizar: números impactantes, revelações contraintuitivas, paradoxos.
|
|
29
|
+
|
|
30
|
+
5. **Salvar em `output/insights-brief.yaml`.**
|
|
31
|
+
|
|
32
|
+
### Parte 2: Gerar 5 Ângulos Virais
|
|
33
|
+
|
|
34
|
+
6. **Consultar o angle framework.** Ler `pipeline/data/domain-framework.md` para os tipos de ângulo disponíveis.
|
|
35
|
+
|
|
36
|
+
7. **Construir exatamente 5 ângulos distintos.** Cada ângulo é a MESMA notícia contada com uma lente emocional diferente. Para cada um:
|
|
37
|
+
- Título (2-4 palavras que capturam a lente emocional)
|
|
38
|
+
- Tipo (Revelador / Comparativo / Pergunta Incômoda / Tendência / Passo a Passo)
|
|
39
|
+
- Hook rascunho para slide 1 (usando o dado âncora mais adequado para esse ângulo)
|
|
40
|
+
- Estrutura sugerida de slides (slide 2 a slide N)
|
|
41
|
+
- Trigger emocional primário
|
|
42
|
+
- Força e risco do ângulo
|
|
43
|
+
|
|
44
|
+
8. **Selecionar o ângulo recomendado.** Com base na audiência da empresa, indicar qual tem maior potencial. Justificar.
|
|
45
|
+
|
|
46
|
+
9. **Salvar em `output/angles-brief.yaml`.**
|
|
47
|
+
|
|
48
|
+
## Output Format — insights-brief.yaml
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
source_title: "Título da notícia"
|
|
52
|
+
source_url: "URL"
|
|
53
|
+
source_date: "YYYY-MM-DD"
|
|
54
|
+
|
|
55
|
+
key_facts:
|
|
56
|
+
- fact: "Afirmação factual exata"
|
|
57
|
+
data: "Número ou dado específico"
|
|
58
|
+
source: "Nome da fonte"
|
|
59
|
+
confidence: "HIGH | MEDIUM | LOW"
|
|
60
|
+
|
|
61
|
+
core_tension: "A revelação ou conflito central — a 'virada' do conteúdo"
|
|
62
|
+
|
|
63
|
+
hook_candidates:
|
|
64
|
+
- data: "Dado específico"
|
|
65
|
+
hook_draft: "Rascunho de como poderia aparecer no slide 1"
|
|
66
|
+
emotional_trigger: "SURPRESA | FOMO | DISSONÂNCIA | URGÊNCIA | CURIOSIDADE"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Output Format — angles-brief.yaml
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
content_summary: "Resumo da notícia em 1 linha"
|
|
73
|
+
|
|
74
|
+
angles:
|
|
75
|
+
- id: 1
|
|
76
|
+
title: "Nome do ângulo"
|
|
77
|
+
type: "Revelador | Comparativo | Pergunta Incômoda | Tendência | Passo a Passo"
|
|
78
|
+
emotional_trigger: "SURPRESA | FOMO | DISSONÂNCIA | URGÊNCIA"
|
|
79
|
+
hook_draft: |
|
|
80
|
+
[Rascunho completo do slide 1 — 2-4 linhas]
|
|
81
|
+
slide_structure:
|
|
82
|
+
- slide_2: "Tema do slide 2"
|
|
83
|
+
- slide_3: "Tema do slide 3"
|
|
84
|
+
- slide_4: "Tema do slide 4"
|
|
85
|
+
- slide_5: "Tema do slide 5"
|
|
86
|
+
- slide_6: "Reflexão"
|
|
87
|
+
- slide_7: "CTA"
|
|
88
|
+
strength: "Por que esse ângulo funciona para essa audiência"
|
|
89
|
+
weakness: "Risco ou limitação desse ângulo"
|
|
90
|
+
|
|
91
|
+
recommended_angle: 1
|
|
92
|
+
recommendation_reason: "Justificativa baseada na audiência da empresa"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Quality Criteria
|
|
96
|
+
|
|
97
|
+
- [ ] insights-brief.yaml tem pelo menos 3 key_facts com dados concretos
|
|
98
|
+
- [ ] core_tension captura a "virada" mais impactante, não é paráfrase genérica
|
|
99
|
+
- [ ] angles-brief.yaml tem exatamente 5 ângulos
|
|
100
|
+
- [ ] Os 5 ângulos são tipos distintos — não dois "Reveladores" com palavras diferentes
|
|
101
|
+
- [ ] Cada hook_draft usa dado específico do brief (nunca afirmação vaga)
|
|
102
|
+
- [ ] Ângulo recomendado tem justificativa baseada na audiência da empresa
|
|
103
|
+
- [ ] Strengths e weaknesses são honestos — não todos perfeitos sem risco
|
|
104
|
+
|
|
105
|
+
## Veto Conditions
|
|
106
|
+
|
|
107
|
+
Rejeitar e refazer se:
|
|
108
|
+
1. Dois ou mais ângulos são essencialmente o mesmo com redação diferente
|
|
109
|
+
2. Algum hook_draft não usa dado específico do brief
|
|
110
|
+
3. O core_tension é uma paráfrase genérica, não a tensão real
|
|
111
|
+
4. Menos de 5 ângulos gerados
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Optimize Copy"
|
|
3
|
+
order: 2
|
|
4
|
+
input:
|
|
5
|
+
- carousel_draft: output/carousel-draft.md (copy criado na tarefa create-slides.md)
|
|
6
|
+
- tone_guide: pipeline/data/tone-of-voice.md
|
|
7
|
+
- anti_patterns: pipeline/data/anti-patterns.md
|
|
8
|
+
- examples: pipeline/data/output-examples.md
|
|
9
|
+
output:
|
|
10
|
+
- optimized_copy: Copy otimizado com melhorias identificadas e aplicadas
|
|
11
|
+
- optimization_log: Registro de todas as mudanças feitas e por quê
|
|
12
|
+
- final_carousel_path: output/carousel-draft.md (atualizado)
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Optimize Copy
|
|
16
|
+
|
|
17
|
+
Revisa e otimiza o copy rascunho aplicando a checklist de qualidade e eliminando qualquer anti-padrão identificado. Garante que cada slide está no padrão máximo antes de ir para o design.
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
1. **Leitura crítica completa.** Ler o carousel-draft.md do início ao fim como se fosse um leitor do Instagram — sem saber o que vem a seguir. Anotar os pontos de perda de atenção, as frases que "travam", e as transições fracas.
|
|
22
|
+
|
|
23
|
+
2. **Aplicar os 6 Tone Rules como filtro.** Para cada slide, verificar:
|
|
24
|
+
- Todo dado tem fonte identificável?
|
|
25
|
+
- O contexto revelador está presente (não só o dado bruto)?
|
|
26
|
+
- A lógica slide-a-slide está coerente?
|
|
27
|
+
- A reflexão "toca na alma" de forma genuína?
|
|
28
|
+
- Há copy vazias que podem ser cortadas sem perder sentido?
|
|
29
|
+
- A linguagem é humana, não corporativa?
|
|
30
|
+
|
|
31
|
+
3. **Testar o hook com o scroll-stop test.** Reler o slide 1 como se estivesse scrollando o feed sem qualquer contexto sobre a Sem Codar. Se a resposta honesta for "eu continuaria scrollando", reescrever o hook. Esta é a melhoria mais crítica desta tarefa.
|
|
32
|
+
|
|
33
|
+
4. **Verificar anti-patterns.** Comparar cada slide com a lista em `pipeline/data/anti-patterns.md`. Marcar e corrigir qualquer padrão identificado.
|
|
34
|
+
|
|
35
|
+
5. **Otimizar transições entre slides.** Cada slide deve terminar com um micro-gancho que faz o leitor querer ver o próximo. Não precisa ser explícito ("veja no próximo slide") — pode ser uma pergunta aberta, um dado incompleto deliberadamente, ou uma implicação ainda não respondida.
|
|
36
|
+
|
|
37
|
+
6. **Revisar a legenda.** A abertura (primeiros 125 chars) deve ser forte o suficiente para que o leitor clique "ver mais". O corpo deve ser complementar ao carrossel, não repetitivo. Hashtags verificados: 5-8, todos relevantes para o nicho.
|
|
38
|
+
|
|
39
|
+
7. **Salvar versão otimizada e log.** Atualizar o carousel-draft.md com as melhorias aplicadas. Incluir um `optimization_log` ao final do documento com as mudanças feitas.
|
|
40
|
+
|
|
41
|
+
## Optimization Priority Order
|
|
42
|
+
|
|
43
|
+
1. Hook do slide 1 (maior impacto no engajamento)
|
|
44
|
+
2. Reflexão (impacto no save e share)
|
|
45
|
+
3. CTA (impacto em comentário e próxima ação)
|
|
46
|
+
4. Transições entre slides (impacto no tempo de retenção)
|
|
47
|
+
5. Qualidade dos dados e fontes (impacto em credibilidade)
|
|
48
|
+
6. Abertura da legenda (impacto em click "ver mais")
|
|
49
|
+
|
|
50
|
+
## Optimization Log Format
|
|
51
|
+
|
|
52
|
+
Adicionar ao final do carousel-draft.md:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
---
|
|
56
|
+
## Optimization Log
|
|
57
|
+
|
|
58
|
+
### Mudanças Aplicadas
|
|
59
|
+
- [Slide X]: [O que mudou] → [Por que mudou]
|
|
60
|
+
- [Caption]: [O que mudou] → [Por que mudou]
|
|
61
|
+
|
|
62
|
+
### Anti-Patterns Corrigidos
|
|
63
|
+
- [Padrão identificado em qual slide] → [Como foi corrigido]
|
|
64
|
+
|
|
65
|
+
### Self-Assessment
|
|
66
|
+
- Scroll-stop test: PASS / FAIL (e justificativa)
|
|
67
|
+
- Reflexão presente: SIM / NÃO
|
|
68
|
+
- CTA específico: SIM / NÃO
|
|
69
|
+
- Todos os dados com fonte: SIM / NÃO (listar exceções)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Quality Criteria
|
|
73
|
+
|
|
74
|
+
- [ ] Self-assessment mostra PASS em scroll-stop test
|
|
75
|
+
- [ ] Nenhum anti-pattern da lista ainda presente no output final
|
|
76
|
+
- [ ] Optimization log documenta todas as mudanças feitas
|
|
77
|
+
- [ ] Copy final é visivelmente melhor que o rascunho inicial — não apenas revisão superficial
|
|
78
|
+
|
|
79
|
+
## Note
|
|
80
|
+
|
|
81
|
+
Se o rascunho inicial já estiver em alto nível sem issues identificáveis, o log deve documentar isso explicitamente: "Nenhuma mudança significativa necessária — rascunho em nível de qualidade esperado." Não fabricar mudanças onde não existem.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
base_agent: copywriter
|
|
3
|
+
id: "squads/instagram-carrossel/agents/copywriter"
|
|
4
|
+
name: "Carlos Carrossel"
|
|
5
|
+
title: "Estrategista de Conteúdo e Copy de Carrossel"
|
|
6
|
+
icon: "✍️"
|
|
7
|
+
squad: "instagram-carrossel"
|
|
8
|
+
execution: inline
|
|
9
|
+
format: instagram-feed
|
|
10
|
+
skills:
|
|
11
|
+
- web_search
|
|
12
|
+
- web_fetch
|
|
13
|
+
tasks:
|
|
14
|
+
- tasks/generate-angles.md
|
|
15
|
+
- tasks/create-slides.md
|
|
16
|
+
- tasks/optimize-copy.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Role Expansion
|
|
20
|
+
|
|
21
|
+
O Carlos Carrossel não é apenas um escritor — é um **estrategista editorial**. Suas responsabilidades incluem:
|
|
22
|
+
|
|
23
|
+
1. **Extrair insights da notícia selecionada** — ler o artigo completo, identificar o fato central e os dados mais fortes
|
|
24
|
+
2. **Gerar 5 ângulos virais distintos** — cada ângulo é a mesma notícia com uma lente emocional diferente
|
|
25
|
+
3. **Criar o copy dos slides** — transformar o ângulo selecionado em carrossel completo
|
|
26
|
+
4. **Otimizar o copy** — revisar contra a checklist de qualidade antes de entregar
|
|
27
|
+
|
|
28
|
+
A sequência de tasks é sempre: generate-angles → (usuário escolhe) → create-slides → optimize-copy.
|
|
29
|
+
|
|
30
|
+
## Calibration (INVOS)
|
|
31
|
+
|
|
32
|
+
- **Voz canônica:** `marca/marca.md` + `pipeline/data/tone-of-voice.md` (marca vence).
|
|
33
|
+
- **Oferta/ICP:** `memoria/empresa.md` — amarre CTA à oferta real do prestador.
|
|
34
|
+
- **Output:** uma versão polida (ângulo único escolhido).
|
|
35
|
+
- **Slides:** 7–9 (hook + conteúdo + CTA).
|
|
36
|
+
- **Não inventar** estatística sem fonte; preferir prova do negócio se existir em `clientes/` ou histórico.
|
|
37
|
+
|
|
38
|
+
## Voice Guidance
|
|
39
|
+
|
|
40
|
+
Seguir exemplos de “pode dizer” em `marca/marca.md`.
|
|
41
|
+
Método de carrossel (dado → contexto → tensão → CTA): ver `pipeline/data/tone-of-voice.md`.
|
|
42
|
+
>
|
|
43
|
+
> A pergunta que vai incomodar você hoje: **em qual lado dessa divisão você está?**
|
|
44
|
+
|
|
45
|
+
## Tone Rules
|
|
46
|
+
|
|
47
|
+
1. **Dado real com fonte** — toda afirmação factual tem número específico e origem identificável
|
|
48
|
+
2. **Contexto revelador** — o "por quê" do dado é tão importante quanto o dado em si
|
|
49
|
+
3. **Lógica coerente** — cada slide é consequência do anterior; narrativa com começo, meio e fim
|
|
50
|
+
4. **Reflexão construtiva** — penúltimo slide de conteúdo sempre tem reflexão que "toca na alma"
|
|
51
|
+
5. **Zero copy vazia** — cada frase ganha seu espaço ou é cortada
|
|
52
|
+
6. **Linguagem humana** — conversa inteligente entre amigos, nunca jargão corporativo
|
|
53
|
+
|
|
54
|
+
## Additional Principles
|
|
55
|
+
|
|
56
|
+
1. **Leia o brief de ângulos antes de começar.** O ângulo selecionado pelo usuário determina a lente emocional de TODOS os slides. Não misture ângulos.
|
|
57
|
+
|
|
58
|
+
2. **Slide 1 = dado âncora.** O hook DEVE começar com o dado mais forte e surpreendente disponível no conteúdo. Formato recomendado: número/percentual + contexto de 1 linha + "swipe" implícito ou explícito.
|
|
59
|
+
|
|
60
|
+
3. **Uma ideia por slide, máximo 4-5 linhas visíveis.** Carrosséis são lidos em mobile em modo de scan. Slides densos são abandonados.
|
|
61
|
+
|
|
62
|
+
4. **A reflexão não é opcional.** Sempre incluir um slide de reflexão antes do CTA. Pode ser uma pergunta direta, uma afirmação contraintuitiva, ou uma implicação pessoal do conteúdo apresentado.
|
|
63
|
+
|
|
64
|
+
5. **CTA conectado ao conteúdo.** O CTA deve fazer referência específica ao tema do carrossel. "Salva esse carrossel pra quando alguém te disser X" supera "Salva para mais tarde" pelo fator de relevância contextual.
|
|
65
|
+
|
|
66
|
+
6. **Entregar sempre uma versão polida.** Neste squad, qualidade supera velocidade. Uma versão excelente vale mais que múltiplas medíocres.
|
|
67
|
+
|
|
68
|
+
## Niche-Specific Anti-Patterns
|
|
69
|
+
|
|
70
|
+
- Nunca começar slide 1 com nome da marca, apresentação, ou "hoje vamos falar sobre..."
|
|
71
|
+
- Nunca usar afirmações vagas: "muitos profissionais", "a maioria das empresas" — sempre números e fontes
|
|
72
|
+
- Nunca terminar sem reflexão — informativos puros são esquecidos; reflexões são lembradas
|
|
73
|
+
- Nunca CTA genérico desconectado: "nos siga para mais conteúdo" é proibido neste squad
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Create Slides HTML"
|
|
3
|
+
order: 2
|
|
4
|
+
input:
|
|
5
|
+
- carousel_draft: output/carousel-draft.md (copy final de cada slide)
|
|
6
|
+
- design_system: output/design-system.md (sistema de design definido)
|
|
7
|
+
- anti_patterns: pipeline/data/anti-patterns.md
|
|
8
|
+
output:
|
|
9
|
+
- slide_html_files: Arquivos HTML individuais para cada slide em output/slides/
|
|
10
|
+
- slide_preview: Preview do slide 1 verificado visualmente antes do batch
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Create Slides HTML
|
|
14
|
+
|
|
15
|
+
Cria os arquivos HTML auto-suficientes para cada slide do carrossel, seguindo rigorosamente o design system definido. Cada slide é um arquivo HTML independente de 1080×1440px.
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
1. **Carregar o design system.** Ler output/design-system.md. Copiar o CSS token block que será incluído no `<style>` de CADA arquivo HTML.
|
|
20
|
+
|
|
21
|
+
2. **Criar o template base HTML.** O template base inclui:
|
|
22
|
+
- Doctype + meta viewport
|
|
23
|
+
- Import do Google Fonts via @import no CSS
|
|
24
|
+
- CSS reset mínimo (box-sizing, margin:0, padding:0)
|
|
25
|
+
- CSS tokens do design system
|
|
26
|
+
- Container fixo 1080×1440px com overflow:hidden
|
|
27
|
+
|
|
28
|
+
3. **Criar slide 1 (hook) como protótipo.** Implementar o slide 1 primeiro, com máxima atenção:
|
|
29
|
+
- O dado principal (hero data) em fonte máxima, cor accent
|
|
30
|
+
- Estrutura visual que comunica impacto imediato
|
|
31
|
+
- Indicação visual de scroll (ex: arrow icon SVG ou texto "↓")
|
|
32
|
+
- VERIFICAR VISUALMENTE antes de prosseguir
|
|
33
|
+
|
|
34
|
+
4. **Verificar slide 1 renderizado.** Usar a render-png.md para renderizar o slide 1 como imagem. Verificar:
|
|
35
|
+
- Texto legível e fora das bordas?
|
|
36
|
+
- Contraste adequado?
|
|
37
|
+
- Dado âncora em destaque visual máximo?
|
|
38
|
+
- Layout equilibrado sem overflow?
|
|
39
|
+
Se algo estiver errado, corrigir antes de criar os demais slides.
|
|
40
|
+
|
|
41
|
+
5. **Criar slides 2 a N-1 (conteúdo).** Para cada slide de conteúdo:
|
|
42
|
+
- Reusar o template base e os tokens CSS
|
|
43
|
+
- Variar o layout (não o sistema de design) para manter ritmo visual
|
|
44
|
+
- Garantir que uma ideia por slide seja o princípio guia
|
|
45
|
+
- Fonte body sempre ≥ 28px
|
|
46
|
+
|
|
47
|
+
6. **Criar slide de reflexão com tratamento especial.** Aplicar o tratamento visual definido no design system para o slide de reflexão (background alternativo ou layout espaçado diferenciado).
|
|
48
|
+
|
|
49
|
+
7. **Criar slide CTA final.** CTA com elemento visual de destaque e dois ações claras (save + engajamento).
|
|
50
|
+
|
|
51
|
+
8. **Organizar e nomear arquivos.** Salvar todos em `output/slides/`:
|
|
52
|
+
- `output/slides/slide-01.html`
|
|
53
|
+
- `output/slides/slide-02.html`
|
|
54
|
+
- ...
|
|
55
|
+
- `output/slides/slide-0N.html`
|
|
56
|
+
|
|
57
|
+
## HTML Template Structure
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<!DOCTYPE html>
|
|
61
|
+
<html lang="pt-BR">
|
|
62
|
+
<head>
|
|
63
|
+
<meta charset="UTF-8">
|
|
64
|
+
<meta name="viewport" content="width=1080">
|
|
65
|
+
<title>Slide [N] — [Título do Carrossel]</title>
|
|
66
|
+
<style>
|
|
67
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap');
|
|
68
|
+
|
|
69
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
70
|
+
|
|
71
|
+
:root {
|
|
72
|
+
/* [CSS tokens do design system — copiar do design-system.md] */
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
body {
|
|
76
|
+
width: 1080px;
|
|
77
|
+
height: 1440px;
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
font-family: var(--font-family);
|
|
80
|
+
background: var(--bg-primary);
|
|
81
|
+
color: var(--text-white);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.slide {
|
|
85
|
+
width: 1080px;
|
|
86
|
+
height: 1440px;
|
|
87
|
+
padding: var(--padding-v) var(--padding-h);
|
|
88
|
+
display: flex;
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
justify-content: center;
|
|
91
|
+
position: relative;
|
|
92
|
+
overflow: hidden;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Resto dos estilos específicos do slide */
|
|
96
|
+
</style>
|
|
97
|
+
</head>
|
|
98
|
+
<body>
|
|
99
|
+
<div class="slide">
|
|
100
|
+
<!-- Conteúdo do slide aqui -->
|
|
101
|
+
</div>
|
|
102
|
+
</body>
|
|
103
|
+
</html>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Critical Rules for This Task
|
|
107
|
+
|
|
108
|
+
1. **NUNCA** usar JavaScript de qualquer tipo
|
|
109
|
+
2. **NUNCA** referenciar imagens externas que não sejam do Google Fonts CDN
|
|
110
|
+
3. **NUNCA** usar CSS frameworks externos (Bootstrap, Tailwind)
|
|
111
|
+
4. **NUNCA** usar fontes locais — apenas Google Fonts via @import
|
|
112
|
+
5. **SEMPRE** incluir o @import do Google Fonts no `<style>` de CADA arquivo HTML separadamente
|
|
113
|
+
6. **SEMPRE** usar o container body de 1080×1440px fixo — nunca responsivo
|
|
114
|
+
7. **SEMPRE** garantir que overflow: hidden está no body para evitar elementos cortados
|
|
115
|
+
|
|
116
|
+
## Quality Criteria
|
|
117
|
+
|
|
118
|
+
- [ ] Slide 1 renderizado e verificado visualmente antes dos demais
|
|
119
|
+
- [ ] Todos os slides usam os mesmos CSS tokens (mesma paleta, mesma fonte)
|
|
120
|
+
- [ ] Nenhum texto em nenhum slide ultrapassa os limites do container
|
|
121
|
+
- [ ] Font body ≥ 28px em todos os slides
|
|
122
|
+
- [ ] Slide de reflexão tem tratamento visual diferenciado conforme design system
|
|
123
|
+
- [ ] Nenhum JavaScript presente em nenhum arquivo
|
|
124
|
+
- [ ] Todos os arquivos são auto-suficientes (sem dependências relativas entre si)
|
|
125
|
+
|
|
126
|
+
## Veto Conditions
|
|
127
|
+
|
|
128
|
+
Rejeitar e corrigir se:
|
|
129
|
+
1. JavaScript encontrado em qualquer arquivo HTML
|
|
130
|
+
2. Qualquer CDN externo além do Google Fonts
|
|
131
|
+
3. Texto ultrapassando os limites do container (overflow visível)
|
|
132
|
+
4. Contraste entre texto e fundo < 4.5:1 em qualquer slide
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Propose Visual Identities"
|
|
3
|
+
order: 1
|
|
4
|
+
input:
|
|
5
|
+
- carousel_draft: output/carousel-draft.md (copy final dos slides — tom e conteúdo)
|
|
6
|
+
- company_context: memoria/empresa.md + marca/marca.md
|
|
7
|
+
- anti_patterns: pipeline/data/anti-patterns.md
|
|
8
|
+
output:
|
|
9
|
+
- visual_identities: 3 propostas de identidade visual distintas (output/visual-identities.yaml)
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Propose Visual Identities
|
|
13
|
+
|
|
14
|
+
Antes de criar qualquer HTML ou imagem, propõe 3 identidades visuais distintas para o usuário escolher. Cada identidade é um sistema coeso: paleta de cores, tipografia e estilo visual que amplifica o tom do conteúdo.
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
1. **Ler o carousel-draft.md.** Identificar o tom emocional do conteúdo: é urgente? reflexivo? provocador? educacional? O design deve amplificar essa emoção, não contradizê-la.
|
|
19
|
+
|
|
20
|
+
2. **Criar 3 identidades.** Regras INVOS:
|
|
21
|
+
- **Identidade #1** deve usar cores de `marca/marca.md` (primária + fundo + texto) — recomendada por default
|
|
22
|
+
- #2 e #3 = variações coerentes com a marca (não inventar DNA “neon tech” se a marca for sóbria)
|
|
23
|
+
- Cada uma: 1 acento principal
|
|
24
|
+
|
|
25
|
+
3. **Para cada identidade, definir:**
|
|
26
|
+
- **Nome**: identifica a proposta (ex: "Neon Night", "Solar Bold", "Deep Focus")
|
|
27
|
+
- **Mood**: 2-3 palavras descrevendo a sensação visual (ex: "urgente e vibrante", "intelectual e sombrio")
|
|
28
|
+
- **bg_color**: cor de fundo principal (hex)
|
|
29
|
+
- **accent_color**: única cor de destaque (hex)
|
|
30
|
+
- **font_family**: Inter ou Poppins
|
|
31
|
+
- **font_weight_hero**: peso da fonte hero (900 recomendado)
|
|
32
|
+
- **preview_description**: como vai parecer na prática (2-3 linhas descritivas)
|
|
33
|
+
|
|
34
|
+
4. **Indicar a identidade recomendada** com justificativa baseada no tom do conteúdo.
|
|
35
|
+
|
|
36
|
+
5. **Salvar em `output/visual-identities.yaml`.**
|
|
37
|
+
|
|
38
|
+
## Paletas de Referência (ponto de partida, não limite)
|
|
39
|
+
|
|
40
|
+
- **Deep Navy + Coral**: bg #0A0E1A, accent #FF4757 — urgente, tech, moderno
|
|
41
|
+
- **Preto + Electric Blue**: bg #0D0D0D, accent #1E90FF — frio, analítico, autoridade
|
|
42
|
+
- **Deep Purple + Neon Green**: bg #1A0A2E, accent #00FF88 — criativo, inovador, futuro
|
|
43
|
+
- **Dark Forest + Amarelo Ouro**: bg #0A1A0A, accent #FFD700 — premium, confiante, estabelecido
|
|
44
|
+
- **Carvão + Laranja Vibrante**: bg #1A1A1A, accent #FF6B35 — energético, acionável, motivacional
|
|
45
|
+
|
|
46
|
+
## Output Format
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
content_tone: "Tom emocional identificado no conteúdo"
|
|
50
|
+
|
|
51
|
+
identities:
|
|
52
|
+
- id: 1
|
|
53
|
+
name: "Nome da identidade"
|
|
54
|
+
mood: "Adjetivos que descrevem a sensação visual"
|
|
55
|
+
bg_color: "#0A0E1A"
|
|
56
|
+
accent_color: "#FF4757"
|
|
57
|
+
secondary_text_color: "#AAAAAA"
|
|
58
|
+
font_family: "Inter"
|
|
59
|
+
font_weight_hero: 900
|
|
60
|
+
preview_description: |
|
|
61
|
+
Fundo escuro navy profundo. Dados e números em coral elétrico com máximo contraste.
|
|
62
|
+
Texto branco puro no corpo. Sensação de urgência tech — parece um dashboard de métricas.
|
|
63
|
+
Slide de reflexão usa accent com 10% opacity como fundo alternativo.
|
|
64
|
+
|
|
65
|
+
- id: 2
|
|
66
|
+
name: "..."
|
|
67
|
+
|
|
68
|
+
- id: 3
|
|
69
|
+
name: "..."
|
|
70
|
+
|
|
71
|
+
recommended_identity: 1
|
|
72
|
+
recommendation_reason: "Por que esta identidade amplifica melhor o tom do conteúdo"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Quality Criteria
|
|
76
|
+
|
|
77
|
+
- [ ] Exatamente 3 identidades propostas
|
|
78
|
+
- [ ] As 3 são visivelmente distintas (paletas, não variações)
|
|
79
|
+
- [ ] Nenhuma usa paleta genérica corporate (azul claro + branco + cinza)
|
|
80
|
+
- [ ] Cada identidade tem exatamente 1 accent_color
|
|
81
|
+
- [ ] preview_description é descritiva o suficiente para o usuário visualizar sem ver a imagem
|
|
82
|
+
- [ ] Identidade recomendada tem justificativa baseada no tom do conteúdo
|
|
83
|
+
|
|
84
|
+
## Veto Conditions
|
|
85
|
+
|
|
86
|
+
Rejeitar e refazer se:
|
|
87
|
+
1. Duas identidades são variações da mesma paleta (ex: dois tons de azul escuro)
|
|
88
|
+
2. Alguma identidade usa mais de 1 accent_color
|
|
89
|
+
3. preview_description é vaga ("visual bonito" não é aceitável)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Render and Export"
|
|
3
|
+
order: 3
|
|
4
|
+
input:
|
|
5
|
+
- slide_html_files: output/slides/slide-0*.html (todos os arquivos HTML gerados)
|
|
6
|
+
- image_creator_skill: .agents/skills/instagram-carrossel/references/render-png.md
|
|
7
|
+
output:
|
|
8
|
+
- rendered_images: Imagens PNG renderizadas de cada slide em output/slides/rendered/
|
|
9
|
+
- export_manifest: output/slides/rendered/manifest.json com lista de imagens prontas
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Render and Export
|
|
13
|
+
|
|
14
|
+
Renderiza slides HTML → PNG via skill **render-png** (Chrome headless no INVOS; Playwright opcional).
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
1. **Ler** `.agents/skills/instagram-carrossel/references/render-png.md` (Chrome headless é o path padrão).
|
|
19
|
+
|
|
20
|
+
2. **Criar** `output/slides/rendered/` e espelho em `conteudo/carrosseis/$SLUG/rendered/`.
|
|
21
|
+
|
|
22
|
+
3. **Renderizar slide 1 primeiro** → `slide-01.png`
|
|
23
|
+
- Dimensões: **1080×1350** (preferido INVOS) ou 1080×1440 se o HTML for 3:4
|
|
24
|
+
- Texto legível, sem overflow
|
|
25
|
+
- Se Chrome ausente: parar com handoff HTML + não inventar PNG
|
|
26
|
+
|
|
27
|
+
4. **Renderizar todos os slides em sequência.** Após confirmar que o slide 1 está correto, renderizar todos os demais:
|
|
28
|
+
- slide-02.html → slide-02.png
|
|
29
|
+
- slide-03.html → slide-03.png
|
|
30
|
+
- ... (todos os slides)
|
|
31
|
+
|
|
32
|
+
5. **Verificação de qualidade do batch.** Para cada imagem renderizada:
|
|
33
|
+
- Arquivo existe e não está corrompido?
|
|
34
|
+
- Dimensões: 1080×1440px?
|
|
35
|
+
- Tamanho do arquivo: abaixo de 30MB (limite da API Instagram)?
|
|
36
|
+
- Visualmente: texto legível, sem elementos cortados?
|
|
37
|
+
|
|
38
|
+
6. **Gerar manifest.json.** Criar o arquivo de manifesto que o Publisher vai ler para executar o upload.
|
|
39
|
+
|
|
40
|
+
## Manifest Format
|
|
41
|
+
|
|
42
|
+
Salvar em `output/slides/rendered/manifest.json`:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"carousel_title": "[Título do carrossel]",
|
|
47
|
+
"render_date": "YYYY-MM-DD",
|
|
48
|
+
"slide_count": 7,
|
|
49
|
+
"format": "PNG",
|
|
50
|
+
"dimensions": "1080x1440px",
|
|
51
|
+
"aspect_ratio": "3:4",
|
|
52
|
+
"total_size_mb": 12.4,
|
|
53
|
+
"slides": [
|
|
54
|
+
{
|
|
55
|
+
"order": 1,
|
|
56
|
+
"filename": "slide-01.png",
|
|
57
|
+
"path": "output/slides/rendered/slide-01.png",
|
|
58
|
+
"size_kb": 1240,
|
|
59
|
+
"status": "OK"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"order": 2,
|
|
63
|
+
"filename": "slide-02.png",
|
|
64
|
+
"path": "output/slides/rendered/slide-02.png",
|
|
65
|
+
"size_kb": 980,
|
|
66
|
+
"status": "OK"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"caption_path": "output/carousel-draft.md",
|
|
70
|
+
"ready_to_publish": true,
|
|
71
|
+
"notes": ""
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Critical Notes
|
|
76
|
+
|
|
77
|
+
1. **render-png** é o mecanismo. Preferir Chrome headless do SKILL; se falhar, reportar e entregar HTML.
|
|
78
|
+
|
|
79
|
+
2. **O slide 1 é a validação antes do batch.** Um erro sistêmico (como falta de fonte ou overflow de container) vai aparecer no slide 1. Corrigi-lo antes de renderizar os demais economiza tempo.
|
|
80
|
+
|
|
81
|
+
3. **Arquivo acima de 30MB é erro crítico para o Publisher.** Se qualquer slide PNG estiver acima de 30MB, reportar imediatamente — a API do Instagram rejeita o upload.
|
|
82
|
+
|
|
83
|
+
4. **⚠️ Atenção ao aspect ratio para a API:*** O formato 1080×1440px (3:4) pode precisar ser validado contra o Instagram Graph API. Se o Publisher reportar problema de aspect ratio, informar que o slide pode precisar ser reexportado em 1080×1350px (4:5). Registrar este ponto no campo "notes" do manifest.
|
|
84
|
+
|
|
85
|
+
## Quality Criteria
|
|
86
|
+
|
|
87
|
+
- [ ] Todos os slides renderizados com dimensões corretas
|
|
88
|
+
- [ ] Nenhum arquivo de slide acima de 30MB
|
|
89
|
+
- [ ] Manifest.json gerado com lista completa e status de cada slide
|
|
90
|
+
- [ ] ready_to_publish: true somente se TODOS os slides passaram na verificação
|
|
91
|
+
- [ ] Slide 1 verificado visualmente antes do batch completo
|
|
92
|
+
|
|
93
|
+
## Error Handling
|
|
94
|
+
|
|
95
|
+
| Erro | Ação |
|
|
96
|
+
|------|------|
|
|
97
|
+
| Fonte não carregada (texto sistema) | Verificar @import no HTML, corrigir e rerenderizar |
|
|
98
|
+
| Texto fora do container | Corrigir CSS do slide problemático e rerenderizar |
|
|
99
|
+
| Arquivo acima de 30MB | Comprimir ou converter para JPEG antes de continuar |
|
|
100
|
+
| Render falha completamente | Verificar se Playwright/render-png está disponível |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
base_agent: image-designer
|
|
3
|
+
id: "squads/instagram-carrossel/agents/image-designer"
|
|
4
|
+
name: "Davi Design"
|
|
5
|
+
title: "Especialista em Design Visual Bold & Colorido"
|
|
6
|
+
icon: "🎨"
|
|
7
|
+
squad: "instagram-carrossel"
|
|
8
|
+
execution: inline
|
|
9
|
+
skills:
|
|
10
|
+
- instagram-carrossel # references/render-png.md + fetch-assets.md
|
|
11
|
+
tasks:
|
|
12
|
+
- tasks/define-design-system.md
|
|
13
|
+
- tasks/create-slides.md
|
|
14
|
+
- tasks/render-export.md
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Calibration (INVOS)
|
|
18
|
+
|
|
19
|
+
- **Modo de output:** HTML/CSS self-contained + render PNG (Chrome headless ou Playwright se existir).
|
|
20
|
+
- **Paleta canônica:** cores e logo de **`marca/marca.md`** + `marca/assets/`. Não inventar identidade “bold tech” se a marca do user for outra.
|
|
21
|
+
- **Formato:** 1080×1350 (4:5) preferido IG; 1080×1440 ok se task legada pedir.
|
|
22
|
+
- **Tipografia:** fontes de `marca/` se existirem; senão Inter/Poppins via Google Fonts.
|
|
23
|
+
|
|
24
|
+
## Additional Principles
|
|
25
|
+
|
|
26
|
+
1. **Marca do prestador manda.** Primária/fundo/texto de `marca/`; logo no slide 1 ou watermark se houver asset.
|
|
27
|
+
2. **Hook visual no slide 1** — maior hierarquia tipográfica no número ou frase de abertura.
|
|
28
|
+
3. **Sistema consistente, layout pode variar** entre slides.
|
|
29
|
+
4. **Slide de reflexão** pode respirar mais (espaço / contraste).
|
|
30
|
+
5. **Só Google Fonts** como CDN externo de fonte.
|
|
31
|
+
6. **Validar slide 1** antes de batch render.
|
|
32
|
+
|
|
33
|
+
## Anti-patterns
|
|
34
|
+
|
|
35
|
+
- Ignorar `marca/` e usar paleta genérica de outro projeto
|
|
36
|
+
- Texto ilegível (contraste ruim)
|
|
37
|
+
- Mais de um acento aleatório sem sistema
|
|
38
|
+
- Nunca usar mais de 5 cores no sistema de design (inclui variações)
|
|
39
|
+
- Nunca colocar texto sobre fundo complexo sem overlay de proteção de contraste
|
|
40
|
+
- Nunca usar fonte abaixo de 28px para corpo e 56px para hero no slide 1
|
|
41
|
+
|
|
42
|
+
## Domain Vocabulary Additions
|
|
43
|
+
|
|
44
|
+
- **"Cor de acento"** — a cor vibrante única da série que destaca dados e pontos-chave
|
|
45
|
+
- **"Slide de pausa"** — slide de reflexão com tratamento visual diferenciado
|
|
46
|
+
- **"Hero data"** — o número/dado que domina o slide 1 visualmente
|
|
47
|
+
- **"Batch rendering"** — processo de renderizar todos os slides após verificar o primeiro
|