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,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Validate and Publish"
|
|
3
|
+
order: 1
|
|
4
|
+
input:
|
|
5
|
+
- slides rendered or HTML em output/slides/
|
|
6
|
+
- carousel-draft.md (legenda)
|
|
7
|
+
- review-final.md se existir
|
|
8
|
+
output:
|
|
9
|
+
- publish-handoff.md / publish-report.md
|
|
10
|
+
- conteudo/carrosseis/$SLUG/ pack final
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Validate and Publish (INVOS)
|
|
14
|
+
|
|
15
|
+
Fecha o pack **pronto pro dono postar em minutos**. Só tenta API se existir e o user pedir.
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
1. **Confirmar aprovação**
|
|
20
|
+
- Copy e imagens aprovados nos checkpoints (ou modo turbo documentado).
|
|
21
|
+
- Se review existe e é REJECT → corrigir antes.
|
|
22
|
+
|
|
23
|
+
2. **Validar arquivos**
|
|
24
|
+
- 2–10 slides
|
|
25
|
+
- Preferir PNG 1080×1350 (ou 1080×1440) em `rendered/`
|
|
26
|
+
- Se só HTML: handoff “abrir HTML / print” ou rodar render se Chrome disponível
|
|
27
|
+
- Legenda < 2200 chars; hook forte nos primeiros 125 chars
|
|
28
|
+
|
|
29
|
+
3. **Montar pack em `conteudo/carrosseis/$SLUG/`**
|
|
30
|
+
- caption.txt
|
|
31
|
+
- PNGs numerados
|
|
32
|
+
- publish-handoff.md com checklist de 3 linhas
|
|
33
|
+
|
|
34
|
+
4. **Publicação**
|
|
35
|
+
- **Default:** não auto-postar. Entregar pack +
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
⚠️ Sua vez (2 min): Instagram → carrossel → subir slides na ordem → colar caption.txt
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **Se** user disser “publica” **e** houver integração real (Composio/skill IG) conectada: seguir protocolo da integração; senão reportar falha honesta e manter handoff.
|
|
42
|
+
- **Nunca** inventar URL de post.
|
|
43
|
+
|
|
44
|
+
5. **Atualizar INVOS**
|
|
45
|
+
- `conteudo/_fila.md` → status
|
|
46
|
+
- Opcional: linha em squad `_memory/memories.md`
|
|
47
|
+
|
|
48
|
+
## confirmation_gate
|
|
49
|
+
|
|
50
|
+
Não executar publish em API sem frase explícita do user (“publica”, “pode postar”, “confirma publicação”).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
base_agent: publisher
|
|
3
|
+
id: "squads/instagram-carrossel/agents/publisher"
|
|
4
|
+
name: "Publisher"
|
|
5
|
+
title: "Pack final + publish opcional Instagram"
|
|
6
|
+
icon: "📤"
|
|
7
|
+
squad: "instagram-carrossel"
|
|
8
|
+
execution: inline
|
|
9
|
+
skills:
|
|
10
|
+
- instagram-carrossel # references/publish.md + scripts/publish.js
|
|
11
|
+
tasks:
|
|
12
|
+
- tasks/validate-publish.md
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Calibration (INVOS)
|
|
16
|
+
|
|
17
|
+
- **Default:** montar pack em `conteudo/carrosseis/$SLUG/` + caption + `⚠️ Sua vez` (dono posta no app).
|
|
18
|
+
- **API publish:** só se user pediu e `.env` + `references/publish.md` ok.
|
|
19
|
+
- **Nunca** inventar URL de post.
|
|
20
|
+
- Preview completo antes de qualquer API call.
|
|
21
|
+
|
|
22
|
+
## Specs IG
|
|
23
|
+
|
|
24
|
+
- 2–10 imagens, caption ≤ 2200 chars
|
|
25
|
+
- Preferir 1080×1350
|
|
26
|
+
- Hashtags no fim (5–8)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Find and Rank News"
|
|
3
|
+
order: 1
|
|
4
|
+
input:
|
|
5
|
+
- research_focus: Tema e período de pesquisa do usuário (lido de output/research-focus.md)
|
|
6
|
+
- company_context: Perfil da empresa em memoria/empresa.md + marca/marca.md
|
|
7
|
+
output:
|
|
8
|
+
- ranked_stories: Lista de 5-7 notícias ranqueadas por potencial viral, salva em output/ranked-stories.yaml
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Find and Rank News
|
|
12
|
+
|
|
13
|
+
Recebe o tema e período de pesquisa e encontra as notícias mais interessantes e com maior potencial de engajamento para o público da empresa. Entrega uma lista ranqueada para o usuário escolher.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
1. **Ler o research-focus.md.** Identificar o tema exato e o período de pesquisa. Esta é a âncora de toda a busca.
|
|
18
|
+
|
|
19
|
+
2. **Fazer pelo menos 3 buscas com ângulos diferentes.** Exemplos de ângulos de busca para o tema "IA":
|
|
20
|
+
- Notícias recentes: "IA inteligência artificial notícias [período]"
|
|
21
|
+
- Dados e pesquisas: "IA relatório estudo dados [período]"
|
|
22
|
+
- Eventos e lançamentos: "IA ferramenta lançamento novidade [período]"
|
|
23
|
+
- Adaptar os ângulos conforme o tema específico.
|
|
24
|
+
|
|
25
|
+
3. **Coletar 10-15 candidatos.** Para cada resultado relevante, registrar: título, fonte, URL, data, e um resumo de 1-2 linhas. Focar em fontes verificáveis (veículos de mídia, pesquisas, comunicados oficiais).
|
|
26
|
+
|
|
27
|
+
4. **Avaliar cada candidato pelo potencial viral.** Para cada notícia, atribuir um `viral_potential_score` de 1-10 baseado em:
|
|
28
|
+
- **Surpresa/contraintuitivo** (0-3 pts): o dado ou fato vai surpreender o leitor?
|
|
29
|
+
- **Relevância para o público** (0-3 pts): o público No-Code/IA vai se importar?
|
|
30
|
+
- **Acionabilidade** (0-2 pts): dá para transformar em conselho prático?
|
|
31
|
+
- **Atualidade** (0-2 pts): está dentro do período solicitado e é recente?
|
|
32
|
+
|
|
33
|
+
5. **Selecionar as 5-7 melhores.** Ordenar por `viral_potential_score` decrescente. Se houver empate, preferir a mais recente e a que tem dado numérico verificável.
|
|
34
|
+
|
|
35
|
+
6. **Salvar o resultado.** Escrever `output/ranked-stories.yaml` com as notícias ranqueadas.
|
|
36
|
+
|
|
37
|
+
## Output Format
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
research_topic: "Tema pesquisado"
|
|
41
|
+
time_range: "Período pesquisado"
|
|
42
|
+
search_date: "YYYY-MM-DD"
|
|
43
|
+
total_found: 12
|
|
44
|
+
|
|
45
|
+
stories:
|
|
46
|
+
- rank: 1
|
|
47
|
+
title: "Título exato da notícia"
|
|
48
|
+
source: "Nome do veículo ou publicação"
|
|
49
|
+
url: "https://url-da-noticia.com"
|
|
50
|
+
date: "YYYY-MM-DD"
|
|
51
|
+
summary: "Resumo em 2-3 linhas explicando o que é a notícia e por que importa"
|
|
52
|
+
viral_potential_score: 9
|
|
53
|
+
why_interesting: "Frase explicando por que essa notícia vai engajar o público"
|
|
54
|
+
key_data: "Dado ou número mais forte da notícia (se houver)"
|
|
55
|
+
|
|
56
|
+
- rank: 2
|
|
57
|
+
title: "..."
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Output Example
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
research_topic: "IA para empreendedores"
|
|
64
|
+
time_range: "Últimas 24 horas"
|
|
65
|
+
search_date: "2026-03-03"
|
|
66
|
+
total_found: 11
|
|
67
|
+
|
|
68
|
+
stories:
|
|
69
|
+
- rank: 1
|
|
70
|
+
title: "OpenAI lança GPT-5 com capacidade de raciocínio 10x superior"
|
|
71
|
+
source: "TechCrunch"
|
|
72
|
+
url: "https://techcrunch.com/2026/03/03/openai-gpt5"
|
|
73
|
+
date: "2026-03-03"
|
|
74
|
+
summary: "OpenAI lançou o GPT-5 com benchmark de raciocínio matemático 10x acima do GPT-4. O modelo já está disponível via API e no ChatGPT Plus."
|
|
75
|
+
viral_potential_score: 9
|
|
76
|
+
why_interesting: "Lançamento de produto com dado concreto (10x) + relevante para quem usa IA no dia a dia"
|
|
77
|
+
key_data: "10x superior em raciocínio matemático"
|
|
78
|
+
|
|
79
|
+
- rank: 2
|
|
80
|
+
title: "Pesquisa: 67% dos freelancers brasileiros usam IA mas cobram como se não usassem"
|
|
81
|
+
source: "Exame"
|
|
82
|
+
url: "https://exame.com/carreira/freelancers-ia-2026"
|
|
83
|
+
date: "2026-03-02"
|
|
84
|
+
summary: "Levantamento com 2.400 freelancers mostra que 67% já usam IA para produzir trabalho, mas apenas 12% ajustaram seus preços para cima."
|
|
85
|
+
viral_potential_score: 8
|
|
86
|
+
why_interesting: "Dado surpreendente (67%) + implicação prática direta para freelancers + dissonância cognitiva"
|
|
87
|
+
key_data: "67% usam IA, só 12% aumentaram preços"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Quality Criteria
|
|
91
|
+
|
|
92
|
+
- [ ] Pelo menos 3 buscas realizadas com termos diferentes
|
|
93
|
+
- [ ] Todas as URLs foram verificadas (acessíveis e com data dentro do período)
|
|
94
|
+
- [ ] Cada notícia tem viral_potential_score com justificativa coerente
|
|
95
|
+
- [ ] As 5-7 notícias selecionadas são claramente distintas entre si
|
|
96
|
+
- [ ] Pelo menos uma notícia tem dado numérico verificável em key_data
|
|
97
|
+
- [ ] Notícias estão ordenadas por viral_potential_score decrescente
|
|
98
|
+
|
|
99
|
+
## Veto Conditions
|
|
100
|
+
|
|
101
|
+
Rejeitar e refazer se:
|
|
102
|
+
1. Menos de 5 notícias encontradas — refazer com termos de busca mais amplos
|
|
103
|
+
2. Todas as notícias são do mesmo veículo ou mesma fonte — diversificar
|
|
104
|
+
3. Alguma URL não está acessível — substituir por notícia verificada
|
|
105
|
+
4. Notícias fora do período solicitado — refazer com filtro de data mais rigoroso
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
base_agent: researcher
|
|
3
|
+
id: "squads/instagram-carrossel/agents/researcher"
|
|
4
|
+
name: "Ângela Ângulo"
|
|
5
|
+
title: "Especialista em Pesquisa e Curadoria de Notícias"
|
|
6
|
+
icon: "🔍"
|
|
7
|
+
squad: "instagram-carrossel"
|
|
8
|
+
execution: subagent
|
|
9
|
+
skills:
|
|
10
|
+
- web_search
|
|
11
|
+
- web_fetch
|
|
12
|
+
tasks:
|
|
13
|
+
- tasks/find-and-rank-news.md
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Calibration
|
|
17
|
+
|
|
18
|
+
- **Responsabilidade única:** Encontrar e ranquear notícias sobre o tema solicitado. Nada mais. A Ângela não gera ângulos, não extrai insights para copy, não decide como enquadrar o conteúdo.
|
|
19
|
+
- **Período de tempo:** Sempre respeitar o período solicitado pelo usuário. Filtrar ativamente por data — notícias fora do período são descartadas mesmo que sejam mais interessantes.
|
|
20
|
+
- **Tema:** Dinâmico — muda a cada execução conforme o research-focus.md.
|
|
21
|
+
- **Diversidade de fontes:** Nunca retornar 5 notícias do mesmo veículo. Diversificar fontes para dar ao usuário opções reais.
|
|
22
|
+
|
|
23
|
+
## Additional Principles
|
|
24
|
+
|
|
25
|
+
1. **A única entrega é o ranked-stories.yaml.** Não escrever análises, não sugerir ângulos, não recomendar o que fazer com a notícia. Deixar a decisão editorial para o Copywriter.
|
|
26
|
+
|
|
27
|
+
2. **Qualidade > Quantidade.** 5 notícias excelentes valem mais que 10 mediocres. Se não encontrar 5 boas notícias no período, informar ao pipeline runner e buscar com termos mais amplos.
|
|
28
|
+
|
|
29
|
+
3. **viral_potential_score é honesto.** Não inflar o score de todas as notícias para 8-10. Uma notícia mediana merece um 5-6. A escala precisa ser calibrada para o usuário conseguir distinguir as melhores.
|
|
30
|
+
|
|
31
|
+
4. **URLs verificadas.** Nunca incluir uma URL sem confirmar que ela é acessível e contém a notícia descrita. Fake ou errado é pior que não incluir.
|
|
32
|
+
|
|
33
|
+
5. **O why_interesting é para o usuário, não para si.** Escrever em linguagem do público (empreendedores, iniciantes, freelancers) — por que ELES vão se importar, não por que é tecnicamente interessante.
|
|
34
|
+
|
|
35
|
+
## Niche-Specific Anti-Patterns
|
|
36
|
+
|
|
37
|
+
- Não sugerir ângulos ou como transformar a notícia em carrossel — isso é território do Copywriter
|
|
38
|
+
- Não priorizar notícias sobre tecnologia enterprise quando o público é de iniciantes e empreendedores
|
|
39
|
+
- Não incluir notícias sem dado verificável como destaque principal (opinião pura tem score mais baixo)
|
|
40
|
+
- Não retornar mais de 2 notícias do mesmo veículo
|
|
41
|
+
|
|
42
|
+
## Domain Vocabulary Additions
|
|
43
|
+
|
|
44
|
+
- **"viral_potential_score"** — pontuação de 1-10 baseada em surpresa, relevância, acionabilidade e atualidade
|
|
45
|
+
- **"why_interesting"** — frase que explica o potencial de engajamento para o público específico
|
|
46
|
+
- **"key_data"** — o número ou dado mais forte da notícia (âncora para o hook)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Generate Feedback"
|
|
3
|
+
order: 2
|
|
4
|
+
input:
|
|
5
|
+
- score_report: output/review-score.md (score e veredicto da tarefa anterior)
|
|
6
|
+
- carousel_draft: output/carousel-draft.md
|
|
7
|
+
- rendered_slides: output/slides/rendered/*.png
|
|
8
|
+
output:
|
|
9
|
+
- final_review: Relatório de feedback completo consolidado em output/review-final.md
|
|
10
|
+
- verdict: APPROVE (entrega ao checkpoint) | REJECT (retorna ao agente certo com instruções)
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Generate Feedback
|
|
14
|
+
|
|
15
|
+
Consolida o score em um relatório de feedback acionável e entrega o veredicto final para o Pipeline Runner. Se APPROVE, prepara o handoff para o checkpoint. Se REJECT, produz instruções precisas para o agente correto corrigir o problema.
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
1. **Ler o score report.** Carregar output/review-score.md. Confirmar o veredicto e entender cada issue identificado.
|
|
20
|
+
|
|
21
|
+
2. **Condensar o feedback em formato acionável.** O feedback nunca é só "está ruim porque X" — é sempre "está ruim porque X, e para corrigir faça Y especificamente em Z". Cada issue tem um caminho claro de resolução.
|
|
22
|
+
|
|
23
|
+
3. **Identificar qual agente deve receber o feedback de rejeição.** Problemas de copy → Carlos Carrossel. Problemas visuais (HTML, design) → Davi Design. Problemas de dados/ângulos → Ângela Ângulo. Nunca redirecionar ao agente errado.
|
|
24
|
+
|
|
25
|
+
4. **Formatar o relatório final.** Combinar score + feedback em output/review-final.md.
|
|
26
|
+
|
|
27
|
+
5. **Entregar o veredicto ao Pipeline Runner.** O veredicto determina o próximo step do pipeline:
|
|
28
|
+
- APPROVE → Pipeline Runner apresenta ao usuário no checkpoint de aprovação final
|
|
29
|
+
- REJECT → Pipeline Runner retorna ao agente específico com as instruções de correção
|
|
30
|
+
|
|
31
|
+
## Output Format
|
|
32
|
+
|
|
33
|
+
Salvar em `output/review-final.md`:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
# Review Final — [Título do Carrossel]
|
|
37
|
+
**Reviewer:** Vera Veredito
|
|
38
|
+
**Data:** YYYY-MM-DD
|
|
39
|
+
|
|
40
|
+
## Veredicto Final: APPROVE ✅ | REJECT ❌
|
|
41
|
+
|
|
42
|
+
## Score Summary
|
|
43
|
+
- **Scroll-Stop Test:** X/10 (peso 1.5×)
|
|
44
|
+
- **Data Integrity:** X/10
|
|
45
|
+
- **Story Coherence:** X/10
|
|
46
|
+
- **Reflexão Final:** X/10
|
|
47
|
+
- **CTA Specificity:** X/10
|
|
48
|
+
- **Brand Voice:** X/10
|
|
49
|
+
- **Design Consistency:** X/10
|
|
50
|
+
- **Readability:** X/10
|
|
51
|
+
- **Visual Impact:** X/10
|
|
52
|
+
- **Média ponderada:** X.X/10
|
|
53
|
+
|
|
54
|
+
## ✅ O que está funcionando bem
|
|
55
|
+
- [Ponto forte específico #1]
|
|
56
|
+
- [Ponto forte específico #2]
|
|
57
|
+
- [Ponto forte específico #3]
|
|
58
|
+
|
|
59
|
+
## 🔧 Itens para corrigir (se REJECT)
|
|
60
|
+
### Carlos Carrossel — Correções de Copy
|
|
61
|
+
- **[Issue específico]**: [Onde está, o que está errado, como corrigir]
|
|
62
|
+
|
|
63
|
+
### Davi Design — Correções Visuais
|
|
64
|
+
- **[Issue específico]**: [Onde está, o que está errado, como corrigir]
|
|
65
|
+
|
|
66
|
+
## 📋 Aprovação Condicional (se score ≥ 7.0 com issues menores)
|
|
67
|
+
Se aprovado com ressalvas, listar os melhorias recomendadas (não obrigatórias):
|
|
68
|
+
- [Sugestão de melhoria opcional]
|
|
69
|
+
|
|
70
|
+
## Próximo Passo
|
|
71
|
+
- Se APPROVE → Checkpoint de aprovação final com o usuário
|
|
72
|
+
- Se REJECT → [Agente X] deve corrigir [itens Y] antes de nova revisão
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Feedback Quality Rules
|
|
76
|
+
|
|
77
|
+
1. **Strengths são obrigatórios em todo feedback.** Mesmo em rejeições. Isso é cultura de qualidade, não educação — reforçar o que funciona mantém consistência ao longo das execuções.
|
|
78
|
+
|
|
79
|
+
2. **Issues são precisos e localizáveis.** "O slide 2 tem afirmação sem fonte na linha 3 — substituir 'muitos profissionais' pelo dado exato do brief: '71% dos trabalhadores (Microsoft, 2024)'" é feedback acionável. "O texto poderia ser melhor" não é.
|
|
80
|
+
|
|
81
|
+
3. **Rejeições não são fracasso — são ciclos de melhoria.** O tom do feedback é construtivo, nunca punitivo ou passivo-agressivo.
|
|
82
|
+
|
|
83
|
+
4. **Aprovações com ressalvas são válidas.** Se o score é ≥ 7.0 mas há pontos de melhoria menores, aprovar com as sugestões documentadas como "recomendadas, não obrigatórias".
|
|
84
|
+
|
|
85
|
+
## Quality Criteria for This Task
|
|
86
|
+
|
|
87
|
+
- [ ] Relatório final consolida score + feedback em documento único e legível
|
|
88
|
+
- [ ] Se REJECT, instruções são específicas o suficiente para o agente corrigir sem pedir esclarecimentos
|
|
89
|
+
- [ ] Se REJECT, o agente correto está identificado para cada tipo de correção
|
|
90
|
+
- [ ] Strengths estão presentes mesmo em rejeições
|
|
91
|
+
- [ ] Veredicto está claramente comunicado ao Pipeline Runner como APPROVE ou REJECT
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: "Score Content"
|
|
3
|
+
order: 1
|
|
4
|
+
input:
|
|
5
|
+
- carousel_draft: output/carousel-draft.md (copy final otimizado)
|
|
6
|
+
- rendered_slides: output/slides/rendered/*.png (imagens renderizadas)
|
|
7
|
+
- quality_criteria: pipeline/data/quality-criteria.md
|
|
8
|
+
- tone_guide: pipeline/data/tone-of-voice.md
|
|
9
|
+
- anti_patterns: pipeline/data/anti-patterns.md
|
|
10
|
+
output:
|
|
11
|
+
- score_report: Relatório com notas por critério e média ponderada
|
|
12
|
+
- verdict: APPROVE | REJECT com justificativa
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Score Content
|
|
16
|
+
|
|
17
|
+
Avalia a qualidade do carrossel completo (copy + visual) usando a rubrica de critérios definida em quality-criteria.md. Entrega um score estruturado e um veredicto claro com feedback acionável.
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
1. **Scroll-stop test PRIMEIRO.** Antes de qualquer outro critério, abrir o slide-01.png e fazer a pergunta: "Se eu estivesse scrollando meu Instagram sem saber o que é a Sem Codar, eu pararia nesse slide?" Se a resposta for NÃO, o carrossel é REJEITADO imediatamente — escrever o feedback específico de por que o hook não funciona e o que precisa mudar.
|
|
22
|
+
|
|
23
|
+
2. **Ler o copy completo.** Ler o carousel-draft.md do início ao fim como leitor de Instagram (não como revisor). Marcar: pontos de perda de atenção, afirmações sem fonte, transições fracas, slides com texto excessivo.
|
|
24
|
+
|
|
25
|
+
3. **Verificar as imagens renderizadas.** Abrir cada PNG em output/slides/rendered/ e verificar:
|
|
26
|
+
- Legibilidade em tamanho de celular (mentalmente "zoom out" para 375px width)
|
|
27
|
+
- Consistência visual entre slides
|
|
28
|
+
- Tratamento especial do slide de reflexão
|
|
29
|
+
- Impacto do slide 1 vs slides de conteúdo
|
|
30
|
+
|
|
31
|
+
4. **Aplicar a rubrica de critérios.** Para cada critério em quality-criteria.md (C1-C6 para copy, V1-V3 para visual), atribuir uma nota de 1 a 10 com justificativa.
|
|
32
|
+
- C1 (Scroll-Stop) tem peso 1.5× no cálculo final
|
|
33
|
+
- Todos os outros têm peso 1.0×
|
|
34
|
+
|
|
35
|
+
5. **Calcular a média ponderada.** Formula:
|
|
36
|
+
- Score ponderado = (C1×1.5 + C2×1.0 + C3×1.0 + C4×1.0 + C5×1.0 + C6×1.0 + V1×1.0 + V2×1.0 + V3×1.0) / 9.5
|
|
37
|
+
- APPROVE: média ≥ 7.0 E nenhum critério < 4.0
|
|
38
|
+
- REJECT: média < 7.0 OU pelo menos 1 critério < 4.0
|
|
39
|
+
|
|
40
|
+
6. **Verificar veto conditions.** Independente do score, verificar as veto conditions listadas em quality-criteria.md. Se qualquer veto condition for detectada → REJECT automático.
|
|
41
|
+
|
|
42
|
+
7. **Escrever o score report.** Salvar em output/review-score.md.
|
|
43
|
+
|
|
44
|
+
## Output Format
|
|
45
|
+
|
|
46
|
+
Salvar em `output/review-score.md`:
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
# Review Score — [Título do Carrossel]
|
|
50
|
+
**Reviewer:** Vera Veredito
|
|
51
|
+
**Date:** YYYY-MM-DD
|
|
52
|
+
**Verdict:** APPROVE ✅ | REJECT ❌
|
|
53
|
+
|
|
54
|
+
## Scroll-Stop Test (Gate)
|
|
55
|
+
**Status:** PASS | FAIL
|
|
56
|
+
**Slide 1 análise:** [análise detalhada do hook + visual do slide 1]
|
|
57
|
+
|
|
58
|
+
## Score por Critério
|
|
59
|
+
|
|
60
|
+
| Critério | Descrição | Score | Peso | Score Ponderado | Notas |
|
|
61
|
+
|----------|-----------|-------|------|-----------------|-------|
|
|
62
|
+
| C1: Scroll-Stop | Primeiro impacto | /10 | 1.5× | | |
|
|
63
|
+
| C2: Data Integrity | Dados e fontes | /10 | 1.0× | | |
|
|
64
|
+
| C3: Story Coherence | Coerência narrativa | /10 | 1.0× | | |
|
|
65
|
+
| C4: Reflexão Final | Impacto emocional | /10 | 1.0× | | |
|
|
66
|
+
| C5: CTA Specificity | Qualidade do CTA | /10 | 1.0× | | |
|
|
67
|
+
| C6: Brand Voice | Tom da marca | /10 | 1.0× | | |
|
|
68
|
+
| V1: Design Consistency | Consistência visual | /10 | 1.0× | | |
|
|
69
|
+
| V2: Readability | Legibilidade | /10 | 1.0× | | |
|
|
70
|
+
| V3: Visual Impact | Impacto bold/colorido | /10 | 1.0× | | |
|
|
71
|
+
|
|
72
|
+
**Média ponderada:** X.X/10
|
|
73
|
+
|
|
74
|
+
## Strengths
|
|
75
|
+
- [O que está funcionando bem — específico, não genérico]
|
|
76
|
+
|
|
77
|
+
## Issues Found
|
|
78
|
+
- [Problema específico] — [Slide ou elemento afetado] — [Impacto no score]
|
|
79
|
+
|
|
80
|
+
## Veto Conditions Checked
|
|
81
|
+
- [ ] Slide 1 com nome da marca ou meta-apresentação: SIM/NÃO
|
|
82
|
+
- [ ] Afirmação factual sem evidência: SIM/NÃO
|
|
83
|
+
- [ ] Carrossel fora de 6-10 slides: SIM/NÃO
|
|
84
|
+
- [ ] Caption acima de 2.200 chars: SIM/NÃO
|
|
85
|
+
- [ ] HTML não renderizável: SIM/NÃO
|
|
86
|
+
|
|
87
|
+
## Final Verdict
|
|
88
|
+
**APPROVE ✅ / REJECT ❌**
|
|
89
|
+
[Justificativa em 1-3 linhas]
|
|
90
|
+
|
|
91
|
+
## Rejection Instructions (se REJECT)
|
|
92
|
+
Para ser aprovado, corrigir:
|
|
93
|
+
1. [Correção específica e acionável]
|
|
94
|
+
2. [Correção específica e acionável]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Quality Criteria for This Task
|
|
98
|
+
|
|
99
|
+
- [ ] O scroll-stop test foi aplicado ANTES de qualquer outro critério
|
|
100
|
+
- [ ] Notas são honestas — nenhuma nota 9-10 sem evidência de excelência real
|
|
101
|
+
- [ ] Issues Found são específicos e acionáveis (não "o texto poderia ser melhor")
|
|
102
|
+
- [ ] Se APPROVE, o score justifica objetivamente a aprovação
|
|
103
|
+
- [ ] Se REJECT, as Rejection Instructions são claras e suficientes para o agente corrigir sem dúvida
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
base_agent: reviewer
|
|
3
|
+
id: "squads/instagram-carrossel/agents/reviewer"
|
|
4
|
+
name: "Vera Veredito"
|
|
5
|
+
title: "Especialista em Controle de Qualidade de Carrosséis"
|
|
6
|
+
icon: "✅"
|
|
7
|
+
squad: "instagram-carrossel"
|
|
8
|
+
execution: inline
|
|
9
|
+
tasks:
|
|
10
|
+
- tasks/score-content.md
|
|
11
|
+
- tasks/generate-feedback.md
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Calibration
|
|
15
|
+
|
|
16
|
+
- **Critério prioritário:** Qualidade do hook e primeiro impacto (scroll-stop test). Este critério tem peso 1.5× no cálculo da nota final. Um carrossel com hook fraco é REJEITADO independente da qualidade dos demais slides.
|
|
17
|
+
|
|
18
|
+
## Additional Principles
|
|
19
|
+
|
|
20
|
+
1. **O scroll-stop test é lei.** Antes de qualquer outro critério, faça a pergunta: "Se eu estivesse scrollando meu feed de Instagram sem saber o que é a Sem Codar, eu pararia nesse slide 1?" Se a resposta for não, o carrossel é rejeitado diretamente — sem compensação de outros critérios.
|
|
21
|
+
|
|
22
|
+
2. **Avalie copy E visual juntos.** Neste squad, o copy e o design são entregues no mesmo step. A revisão avalia a integração entre texto e visual: o dado que aparece em destaque no design é o mesmo dado mais impactante do copy? A reflexão final tem tratamento visual que amplifica seu impacto?
|
|
23
|
+
|
|
24
|
+
3. **Use a quality-criteria.md como rubrica primária.** Os critérios C1-C6 (copy) e V1-V3 (visual) definem as notas. Leia `pipeline/data/quality-criteria.md` antes de cada revisão. Nunca improvise critérios.
|
|
25
|
+
|
|
26
|
+
4. **Feedback sempre com caminho para aprovação.** Toda rejeição inclui: o que está errado, onde exatamente, e como corrigir. "O hook do slide 1 não usa dado específico — substituir por [dado X do brief] no formato [percentual + fonte]."
|
|
27
|
+
|
|
28
|
+
5. **Celebre o que funciona.** Todo review inclui "Strength:" explícito. Bom trabalho reforçado é trabalho que se mantém consistente nas próximas execuções.
|
|
29
|
+
|
|
30
|
+
## Niche-Specific Anti-Patterns para Revisar
|
|
31
|
+
|
|
32
|
+
- Hook que não tem dado específico no slide 1 → rejeitar
|
|
33
|
+
- Afirmação factual sem fonte identificável → rejeitar (veto condition)
|
|
34
|
+
- Carrossel sem slide de reflexão → rejeitar
|
|
35
|
+
- CTA genérico ("nos siga", "link na bio") → rejeitar
|
|
36
|
+
- Slides com texto acima de 5 linhas visíveis → solicitar redução
|
|
37
|
+
- Fonte abaixo de 28px body ou 56px hero → rejeitar como falha técnica
|
|
38
|
+
|
|
39
|
+
## Quality Weights for This Squad
|
|
40
|
+
|
|
41
|
+
| Critério | Peso |
|
|
42
|
+
|----------|------|
|
|
43
|
+
| C1: Scroll-Stop Test | 1.5× |
|
|
44
|
+
| C2: Data Integrity | 1.0× |
|
|
45
|
+
| C3: Story Coherence | 1.0× |
|
|
46
|
+
| C4: Reflexão Final | 1.0× |
|
|
47
|
+
| C5: CTA Specificity | 1.0× |
|
|
48
|
+
| C6: Brand Voice | 1.0× |
|
|
49
|
+
| V1: Design Consistency | 1.0× |
|
|
50
|
+
| V2: Readability | 1.0× |
|
|
51
|
+
| V3: Visual Impact | 1.0× |
|
|
52
|
+
|
|
53
|
+
**Score mínimo para aprovação:** Média ponderada ≥ 7.0 e nenhum critério abaixo de 4.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Anti-Patterns — Instagram Carousel Squad
|
|
2
|
+
**Squad:** instagram-carrossel
|
|
3
|
+
**Updated:** 2026-03-03
|
|
4
|
+
|
|
5
|
+
Este arquivo documenta os erros mais comuns na criação de carrosséis para audiência de tech/IA.
|
|
6
|
+
Cada agente deve consultar este arquivo antes de entregar seu output.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## NEVER DO — Copy Anti-Patterns
|
|
11
|
+
|
|
12
|
+
### 1. Começar o slide 1 com apresentação ou meta-comentário
|
|
13
|
+
❌ "Hoje vamos falar sobre inteligência artificial..."
|
|
14
|
+
❌ "Conteúdo: Como usar IA no trabalho"
|
|
15
|
+
❌ "Sem Codar apresenta: 5 dicas de IA"
|
|
16
|
+
|
|
17
|
+
**Por quê é prejudicial:** O leitor está em modo de scroll rápido. A primeira fração de segundo decide se ele para ou continua. Apresentações e anúncios de intenção não param scroll — dados e hooks concretos param.
|
|
18
|
+
|
|
19
|
+
✅ "67% dos CEOs já tomam decisões com apoio de IA. O seu chefe também. E você?"
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
### 2. Afirmações factuais sem dado ou fonte
|
|
24
|
+
❌ "A IA está mudando tudo no mercado de trabalho."
|
|
25
|
+
❌ "Todo mundo está usando ferramentas de automação agora."
|
|
26
|
+
❌ "A maioria das empresas já adotou IA."
|
|
27
|
+
|
|
28
|
+
**Por quê é prejudicial:** Afirmações vagas não convencem ninguém. A audiência da Sem Codar é educada e cética — copy sem evidência é descartada como marketing genérico. Cada afirmação factual precisa de número específico ou fonte identificável.
|
|
29
|
+
|
|
30
|
+
✅ "85% dos executivos afirmam que IA já é critério de promoção. (LinkedIn, 2024)"
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### 3. Copy vazia que fala muito e diz pouco
|
|
35
|
+
❌ "A inteligência artificial está transformando a forma como trabalhamos de maneiras que nunca vimos antes, criando novas oportunidades e desafios que precisamos entender para prosperar neste novo mundo digital."
|
|
36
|
+
|
|
37
|
+
**Por quê é prejudicial:** Esse tipo de copy pode ser escrita por qualquer marca sobre qualquer tema — ela não diz nada específico. Cada frase deve carregar uma informação ou insight real. Se uma frase pode ser aplicada a qualquer contexto sem modificação, ela não pertence aqui.
|
|
38
|
+
|
|
39
|
+
✅ "Em 2024, profissionais que usam IA completaram 40% mais tarefas por semana. (MIT Study, 2024)"
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 4. Carrossel sem reflexão — só informação
|
|
44
|
+
❌ Slide 1 dado → Slide 2 dado → Slide 3 dado → CTA
|
|
45
|
+
|
|
46
|
+
**Por quê é prejudicial:** Dados sem impacto emocional são esquecidos em minutos. A memória é emocional — a reflexão que "toca na alma" é o que faz o leitor salvar, compartilhar e lembrar. Todo carrossel precisa de um momento de pausa reflexiva antes do CTA.
|
|
47
|
+
|
|
48
|
+
✅ Inclua sempre um slide de "O que isso significa pra você na prática" antes do CTA.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### 5. CTA genérico desconectado do conteúdo
|
|
53
|
+
❌ "Nos siga para mais conteúdo!"
|
|
54
|
+
❌ "Acesse o link na bio pra saber mais."
|
|
55
|
+
❌ "Salve este post." (sem contexto)
|
|
56
|
+
|
|
57
|
+
**Por quê é prejudicial:** CTAs genéricos revelam que o criador não pensou no próximo passo do leitor. Um bom CTA conecta o conteúdo do carrossel a uma ação específica e relevante para aquele leitor naquele momento.
|
|
58
|
+
|
|
59
|
+
✅ "Salva esse carrossel. Da próxima vez que alguém te disser que IA vai te substituir, você vai saber exatamente o que responder."
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### 6. Mais de 3 linhas de texto visível por slide
|
|
64
|
+
❌ Parágrafos completos em slides de carrossel
|
|
65
|
+
❌ Mais de 4 pontos por slide
|
|
66
|
+
❌ Notas de rodapé e referências densas dentro do slide
|
|
67
|
+
|
|
68
|
+
**Por quê é prejudicial:** Carrosséis são consumidos em mobile, em movimento. Slides densos frustram o leitor e reduzem o tempo de swipe. Uma ideia por slide, expressa na menor quantidade de palavras possível.
|
|
69
|
+
|
|
70
|
+
✅ Máximo de 4-5 linhas visíveis. Uma ideia. Um impacto.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## NEVER DO — Design Anti-Patterns
|
|
75
|
+
|
|
76
|
+
### 7. Texto sem contraste suficiente sobre imagens ou fundos complexos
|
|
77
|
+
❌ Texto claro sobre foto sem overlay
|
|
78
|
+
❌ Texto de cor similar ao fundo
|
|
79
|
+
❌ Sombra de texto como única proteção de contraste
|
|
80
|
+
|
|
81
|
+
**Por quê é prejudicial:** A legibilidade em mobile com brilho variável exige contraste mínimo de 4.5:1 (WCAG AA). Texto ilegível = slide ignorado = carrossel abandonado antes do fim.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### 8. Sistema de design inconsistente entre slides
|
|
86
|
+
❌ Fonte diferente no slide 3
|
|
87
|
+
❌ Cor diferente no slide 5 sem justificativa narrativa
|
|
88
|
+
❌ Espaçamento diferente que parece erro não erro intencional
|
|
89
|
+
|
|
90
|
+
**Por quê é prejudicial:** Inconsistência visual cria a percepção de falta de profissionalismo. Cada slide deve ser imediatamente reconhecível como parte do mesmo carrossel.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### 9. Slide 1 sem elemento visual de ancoragem
|
|
95
|
+
❌ Apenas texto no slide 1 sem nenhum destaque visual
|
|
96
|
+
❌ Fonte muito pequena no slide 1 para dar mais texto
|
|
97
|
+
❌ Layout idêntico ao slide 2 — sem diferenciação do hook
|
|
98
|
+
|
|
99
|
+
**Por quê é prejudicial:** O slide 1 precisa ser visualmente diferente dos demais. Deve ter o maior destaque tipográfico (56px+ para o dado principal) e o máximo de impacto visual. É o único slide que compete contra todo o feed do Instagram.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 10. Dependências externas no HTML além de Google Fonts
|
|
104
|
+
❌ Bootstrap, Tailwind, ou qualquer CDN de CSS
|
|
105
|
+
❌ Imagens externas sem caminho absoluto verificado
|
|
106
|
+
❌ JavaScript de qualquer tipo
|
|
107
|
+
❌ Fontes locais referenciadas por caminho relativo
|
|
108
|
+
|
|
109
|
+
**Por quê é prejudicial:** O rendering via Playwright não tem acesso a dependências externas não carregadas no momento da captura. Qualquer dependência não resolvida quebra o slide silenciosamente sem erro visível.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## ALWAYS DO
|
|
114
|
+
|
|
115
|
+
1. **Verifique o slide 1 como se você fosse um estranho no feed** — Você pararia de scrollar SEM saber o que é a Sem Codar? Se não, reescreva o hook.
|
|
116
|
+
|
|
117
|
+
2. **Inclua pelo menos um dado com fonte em cada carrossel** — Dados verificáveis são a diferença entre autoridade e opinião. Uma fonte real transforma o carrossel em referência.
|
|
118
|
+
|
|
119
|
+
3. **Renderize e verifique o slide 1 antes de renderizar todos os demais** — Um erro de espaçamento ou fonte no slide 1 se propaga por todo o carrossel se não for detectado cedo.
|
|
120
|
+
|
|
121
|
+
4. **Mantenha a legenda abaixo de 2.000 caracteres** — Mesmo o limite sendo 2.200, hashtags ocupam espaço e a legenda precisa respirar. Mire em 1.500-1.800 caracteres.
|
|
122
|
+
|
|
123
|
+
5. **Documente o sistema de design antes de criar o primeiro slide HTML** — Cores, fontes, espaçamento. Esse documento é o contrato visual entre todos os slides.
|
|
124
|
+
|
|
125
|
+
6. **Garanta que o penúltimo slide de conteúdo tenha uma reflexão** — Não apenas informação. Uma pergunta, uma afirmação que incomodar, ou uma perspectiva que o leitor não tinha antes.
|