invos 1.0.0 → 2.0.2
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 +21 -28
- package/bin/invos.js +33 -27
- package/kit/.agents/skills/abrir/SKILL.md +41 -0
- package/kit/.agents/skills/analisar-dados/SKILL.md +95 -0
- package/kit/.agents/skills/anuncio-google/SKILL.md +174 -0
- package/kit/.agents/skills/aprovar-post/SKILL.md +151 -0
- package/kit/.agents/skills/atualizar/SKILL.md +57 -0
- package/kit/.agents/skills/canvas-design/LICENSE.txt +202 -0
- package/kit/.agents/skills/canvas-design/SKILL.md +134 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/kit/.agents/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/kit/.agents/skills/carrossel/SKILL.md +272 -0
- package/kit/.agents/skills/email-profissional/SKILL.md +70 -0
- package/kit/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/kit/.agents/skills/frontend-design/SKILL.md +55 -0
- package/kit/.agents/skills/instalar/SKILL.md +170 -0
- package/kit/.agents/skills/mapear-rotinas/SKILL.md +75 -0
- package/kit/.agents/skills/notion/SKILL.md +134 -0
- package/kit/.agents/skills/novo-projeto/SKILL.md +94 -0
- package/kit/.agents/skills/publicar-tema/SKILL.md +154 -0
- package/kit/.agents/skills/relatorio-ads/SKILL.md +163 -0
- package/kit/.agents/skills/responder-avaliacoes/SKILL.md +100 -0
- package/kit/.agents/skills/salvar/SKILL.md +49 -0
- package/kit/.agents/skills/seo/SKILL.md +310 -0
- package/kit/.agents/skills/youtube-summarizer/SKILL.md +223 -0
- package/kit/.agents/squads/README.md +84 -0
- package/kit/.agents/squads/hormozi-squad/README.md +1 -2
- package/kit/AGENTS.md +96 -137
- package/kit/INVOS.json +28 -20
- package/kit/{.agents/skills/stop-slop/LICENSE → LICENSE} +1 -1
- package/kit/README.md +87 -399
- package/kit/_memoria/empresa.md +18 -0
- package/kit/_memoria/estrategia.md +25 -0
- package/kit/_memoria/preferencias.md +12 -0
- package/kit/dados/README.md +15 -0
- package/kit/marca/design-guide.md +59 -0
- package/kit/marketing/README.md +44 -0
- package/kit/saidas/README.md +29 -0
- package/kit/scripts/README.md +51 -0
- package/kit/templates/perfis/agents-agencia.md +70 -0
- package/kit/templates/perfis/agents-empresa.md +75 -0
- package/kit/templates/perfis/agents-freelancer.md +68 -0
- package/kit/templates/perfis/agents-solopreneur.md +68 -0
- package/package.json +6 -11
- package/src/commands/doctor.js +63 -78
- package/src/commands/init.js +35 -24
- package/src/commands/install.js +16 -20
- package/src/commands/update.js +28 -66
- package/src/lock.js +9 -11
- package/src/manifest.js +1 -1
- package/src/resolve-kit.js +27 -12
- package/src/symlinks.js +36 -53
- package/src/utils.js +43 -66
- package/kit/.agents/skills/apple/DESCRIPTION.md +0 -2
- package/kit/.agents/skills/apple/apple-notes/SKILL.md +0 -90
- package/kit/.agents/skills/apple/apple-reminders/SKILL.md +0 -130
- package/kit/.agents/skills/audit/SKILL.md +0 -177
- package/kit/.agents/skills/design-marca/SKILL.md +0 -92
- package/kit/.agents/skills/instagram-carrossel/SKILL.md +0 -79
- package/kit/.agents/skills/instagram-carrossel/references/fetch-assets.md +0 -77
- package/kit/.agents/skills/instagram-carrossel/references/publish.md +0 -48
- package/kit/.agents/skills/instagram-carrossel/references/render-png.md +0 -147
- package/kit/.agents/skills/instagram-carrossel/scripts/publish.js +0 -165
- package/kit/.agents/skills/llm-wiki/SKILL.md +0 -507
- package/kit/.agents/skills/onboard/SKILL.md +0 -152
- package/kit/.agents/skills/pd-ikigai/SKILL.md +0 -269
- package/kit/.agents/skills/productivity/DESCRIPTION.md +0 -3
- package/kit/.agents/skills/productivity/google-workspace/SKILL.md +0 -335
- package/kit/.agents/skills/productivity/google-workspace/references/gmail-search-syntax.md +0 -63
- package/kit/.agents/skills/productivity/google-workspace/scripts/_hermes_home.py +0 -42
- package/kit/.agents/skills/productivity/google-workspace/scripts/google_api.py +0 -1225
- package/kit/.agents/skills/productivity/google-workspace/scripts/gws_bridge.py +0 -111
- package/kit/.agents/skills/productivity/google-workspace/scripts/setup.py +0 -481
- package/kit/.agents/skills/productivity/nano-pdf/SKILL.md +0 -52
- package/kit/.agents/skills/productivity/notion/SKILL.md +0 -448
- package/kit/.agents/skills/productivity/notion/references/block-types.md +0 -112
- package/kit/.agents/skills/productivity/ocr-and-documents/DESCRIPTION.md +0 -3
- package/kit/.agents/skills/productivity/ocr-and-documents/SKILL.md +0 -172
- package/kit/.agents/skills/productivity/ocr-and-documents/scripts/extract_marker.py +0 -87
- package/kit/.agents/skills/productivity/ocr-and-documents/scripts/extract_pymupdf.py +0 -98
- package/kit/.agents/skills/productivity/powerpoint/LICENSE.txt +0 -30
- package/kit/.agents/skills/productivity/powerpoint/SKILL.md +0 -237
- package/kit/.agents/skills/productivity/powerpoint/editing.md +0 -205
- package/kit/.agents/skills/productivity/powerpoint/pptxgenjs.md +0 -420
- package/kit/.agents/skills/productivity/powerpoint/scripts/__init__.py +0 -0
- package/kit/.agents/skills/productivity/powerpoint/scripts/add_slide.py +0 -195
- package/kit/.agents/skills/productivity/powerpoint/scripts/clean.py +0 -286
- 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 +0 -199
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py +0 -197
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/pack.py +0 -159
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd +0 -42
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd +0 -50
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd +0 -49
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd +0 -33
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd +0 -75
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/kit/.agents/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/kit/.agents/skills/proposta/SKILL.md +0 -159
- package/kit/.agents/skills/proposta/references/proposta-avancada.md +0 -17
- package/kit/.agents/skills/proposta/references/proposta.html +0 -187
- package/kit/.agents/skills/session-checkpoint/SKILL.md +0 -80
- package/kit/.agents/skills/session-end/SKILL.md +0 -166
- package/kit/.agents/skills/session-start/SKILL.md +0 -149
- package/kit/.agents/skills/social-content/SKILL.md +0 -119
- package/kit/.agents/skills/stop-slop/CHANGELOG.md +0 -24
- package/kit/.agents/skills/stop-slop/README.md +0 -62
- package/kit/.agents/skills/stop-slop/SKILL.md +0 -68
- package/kit/.agents/skills/stop-slop/references/examples.md +0 -59
- package/kit/.agents/skills/stop-slop/references/phrases.md +0 -128
- package/kit/.agents/skills/stop-slop/references/structures.md +0 -134
- package/kit/.agents/squads/index.md +0 -14
- package/kit/.agents/squads/instagram-carrossel/DEPENDENCIES.md +0 -75
- package/kit/.agents/squads/instagram-carrossel/README.md +0 -52
- package/kit/.agents/squads/instagram-carrossel/RUN.md +0 -115
- package/kit/.agents/squads/instagram-carrossel/_memory/memories.md +0 -16
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/create-slides.md +0 -96
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/generate-angles.md +0 -111
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter/tasks/optimize-copy.md +0 -81
- package/kit/.agents/squads/instagram-carrossel/agents/copywriter.custom.md +0 -73
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/create-slides.md +0 -132
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/propose-visual-identities.md +0 -89
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer/tasks/render-export.md +0 -100
- package/kit/.agents/squads/instagram-carrossel/agents/image-designer.custom.md +0 -47
- package/kit/.agents/squads/instagram-carrossel/agents/publisher/tasks/validate-publish.md +0 -50
- package/kit/.agents/squads/instagram-carrossel/agents/publisher.custom.md +0 -26
- package/kit/.agents/squads/instagram-carrossel/agents/researcher/tasks/find-and-rank-news.md +0 -105
- package/kit/.agents/squads/instagram-carrossel/agents/researcher.custom.md +0 -46
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer/tasks/generate-feedback.md +0 -91
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer/tasks/score-content.md +0 -103
- package/kit/.agents/squads/instagram-carrossel/agents/reviewer.custom.md +0 -53
- 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 +0 -125
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/domain-framework.md +0 -92
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/instagram-feed-best-practices.md +0 -235
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/output-examples.md +0 -244
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/quality-criteria.md +0 -120
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/research-brief.md +0 -135
- package/kit/.agents/squads/instagram-carrossel/pipeline/data/tone-of-voice.md +0 -32
- package/kit/.agents/squads/instagram-carrossel/pipeline/pipeline.yaml +0 -136
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-01-input-content.md +0 -38
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-02-find-news.md +0 -42
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-03-select-story.md +0 -59
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-04-generate-angles.md +0 -45
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-05-select-angle.md +0 -64
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-06-create-copy.md +0 -51
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-07-approve-copy.md +0 -52
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-08-propose-visuals.md +0 -42
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-09-select-visual.md +0 -61
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-10-create-slides.md +0 -55
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-11-approve-images.md +0 -60
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-12-review.md +0 -55
- package/kit/.agents/squads/instagram-carrossel/pipeline/steps/step-13-publish.md +0 -79
- package/kit/.agents/squads/instagram-carrossel/squad-party.csv +0 -6
- package/kit/.agents/squads/instagram-carrossel/squad.yaml +0 -70
- package/kit/COMECE-AQUI.md +0 -207
- package/kit/MEMORY.md +0 -31
- package/kit/SECURITY.md +0 -39
- package/kit/clientes/README.md +0 -72
- package/kit/clientes/_index.md +0 -32
- package/kit/clientes/_template/arquivos/.gitkeep +0 -0
- package/kit/clientes/_template/contexto.md +0 -21
- package/kit/clientes/_template/entregas.md +0 -20
- package/kit/clientes/_template/perfil.md +0 -47
- package/kit/clientes/_template/propostas/.gitkeep +0 -0
- package/kit/conteudo/README.md +0 -12
- package/kit/conteudo/_fila.md +0 -12
- package/kit/conteudo/carrosseis/.gitkeep +0 -0
- package/kit/conteudo/publicados/.gitkeep +0 -0
- package/kit/docs/audit-enxugamento-sieve.md +0 -187
- package/kit/docs/cli.md +0 -62
- package/kit/docs/hotmart-webhook.md +0 -96
- package/kit/docs/lab-user.md +0 -35
- package/kit/docs/prd-invos-cli.md +0 -264
- package/kit/integracoes/README.md +0 -31
- package/kit/integracoes/composio/README.md +0 -128
- package/kit/integracoes/composio/marketing-tools.md +0 -61
- package/kit/marca/README.md +0 -13
- package/kit/marca/assets/.gitkeep +0 -0
- package/kit/marca/marca.md +0 -57
- package/kit/memoria/ativo.md +0 -18
- package/kit/memoria/decisoes.md +0 -26
- package/kit/memoria/empresa.md +0 -46
- package/kit/memoria/historico/README.md +0 -8
- package/kit/memoria/insights.md +0 -11
- package/kit/memoria/perfil.md +0 -29
- package/kit/memoria/projetos.md +0 -27
- package/kit/memoria/regras/_TEMPLATE-exemplo.md +0 -15
- package/kit/memoria/regras/task-com-dono.md +0 -18
- package/kit/scripts/smoke-estado.sh +0 -32
- package/kit/scripts/validar.sh +0 -206
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
# Structures to Avoid
|
|
2
|
-
|
|
3
|
-
## Binary Contrasts
|
|
4
|
-
|
|
5
|
-
These create false drama. State the point directly.
|
|
6
|
-
|
|
7
|
-
| Pattern | Problem |
|
|
8
|
-
|---------|---------|
|
|
9
|
-
| "Not because X. Because Y." / "Not because X, but because Y." | Telegraphed reversal |
|
|
10
|
-
| "[X] isn't the problem. [Y] is." | Formulaic reframe |
|
|
11
|
-
| "The answer isn't X. It's Y." | Predictable pivot |
|
|
12
|
-
| "It feels like X. It's actually Y." | Setup/reveal cliche |
|
|
13
|
-
| "The question isn't X. It's Y." | Rhetorical misdirection |
|
|
14
|
-
| "Not X. But Y." / "not X, it's Y" / "isn't X, it's Y" | Mechanical contrast |
|
|
15
|
-
| "It's not this. It's that." | Same formula, different words |
|
|
16
|
-
| "stops being X and starts being Y" | False transformation arc |
|
|
17
|
-
| "doesn't mean X, but actually Y" | Negation-then-assertion crutch |
|
|
18
|
-
| "is about X but not Y" | False distinction |
|
|
19
|
-
| "not just X but also Y" | Additive hedge |
|
|
20
|
-
|
|
21
|
-
**Instead:** State Y directly. "The problem is Y." "Y matters here." Drop the negation entirely.
|
|
22
|
-
|
|
23
|
-
## Negative Listing
|
|
24
|
-
|
|
25
|
-
Listing what something is *not* before revealing what it *is*. A rhetorical striptease.
|
|
26
|
-
|
|
27
|
-
| Pattern | Problem |
|
|
28
|
-
|---------|---------|
|
|
29
|
-
| "Not a X... Not a Y... A Z." | Dramatic buildup through negation |
|
|
30
|
-
| "It wasn't X. It wasn't Y. It was Z." | Same structure, past tense |
|
|
31
|
-
|
|
32
|
-
**Instead:** State Z. The reader doesn't need the runway.
|
|
33
|
-
|
|
34
|
-
## Dramatic Fragmentation
|
|
35
|
-
|
|
36
|
-
Sentence fragments for emphasis read as manufactured profundity.
|
|
37
|
-
|
|
38
|
-
| Pattern | Problem |
|
|
39
|
-
|---------|---------|
|
|
40
|
-
| "[Noun]. That's it. That's the [thing]." | Performative simplicity |
|
|
41
|
-
| "X. And Y. And Z." | Staccato drama |
|
|
42
|
-
| "This unlocks something. [Word]." | Artificial revelation |
|
|
43
|
-
|
|
44
|
-
**Instead:** Complete sentences. Trust content over presentation.
|
|
45
|
-
|
|
46
|
-
## Rhetorical Setups
|
|
47
|
-
|
|
48
|
-
These announce insight rather than deliver it.
|
|
49
|
-
|
|
50
|
-
| Pattern | Problem |
|
|
51
|
-
|---------|---------|
|
|
52
|
-
| "What if [reframe]?" | Socratic posturing |
|
|
53
|
-
| "Here's what I mean:" | Redundant preview |
|
|
54
|
-
| "Think about it:" | Condescending prompt |
|
|
55
|
-
| "And that's okay." | Unnecessary permission |
|
|
56
|
-
|
|
57
|
-
**Instead:** Make the point. Let readers draw conclusions.
|
|
58
|
-
|
|
59
|
-
## Formulaic Constructions
|
|
60
|
-
|
|
61
|
-
| Pattern | Problem |
|
|
62
|
-
|---------|---------|
|
|
63
|
-
| "By the time X, I was Y." | Narrative template |
|
|
64
|
-
| "X that isn't Y" | Indirect. Say "X is broken" |
|
|
65
|
-
|
|
66
|
-
## False Agency
|
|
67
|
-
|
|
68
|
-
Giving inanimate things human verbs. Complaints don't "become" fixes. Bets don't "live or die." Decisions don't "emerge." A person does something to make those things happen. AI loves this because it avoids naming the actor.
|
|
69
|
-
|
|
70
|
-
| Pattern | Problem |
|
|
71
|
-
|---------|---------|
|
|
72
|
-
| "a complaint becomes a fix" | The complaint did nothing. Someone fixed it. |
|
|
73
|
-
| "a bet lives or dies in days" | Bets don't have lifespans. Someone kills the project or ships it. |
|
|
74
|
-
| "the decision emerges" | Decisions don't emerge. Someone decides. |
|
|
75
|
-
| "the culture shifts" | Cultures don't shift on their own. People change behavior. |
|
|
76
|
-
| "the conversation moves toward" | Conversations don't move. Someone steers. |
|
|
77
|
-
| "the data tells us" | Data sits there. Someone reads it and draws a conclusion. |
|
|
78
|
-
| "the market rewards" | Markets don't reward. Buyers pay for things. |
|
|
79
|
-
|
|
80
|
-
**Instead:** Name the human. "The team fixed it that week" beats "the complaint becomes a fix." If no specific person fits, use "you" to put the reader in the seat.
|
|
81
|
-
|
|
82
|
-
## Narrator-from-a-Distance
|
|
83
|
-
|
|
84
|
-
Floating above the scene instead of putting the reader in it.
|
|
85
|
-
|
|
86
|
-
| Pattern | Problem |
|
|
87
|
-
|---------|---------|
|
|
88
|
-
| "Nobody designed this." | Disembodied observation |
|
|
89
|
-
| "This happens because..." | Lecturer voice |
|
|
90
|
-
| "This is why..." | Same |
|
|
91
|
-
| "People tend to..." | Armchair sociologist |
|
|
92
|
-
|
|
93
|
-
**Instead:** Put the reader in the room. "You don't sit down one day and decide to..." beats "Nobody designed this."
|
|
94
|
-
|
|
95
|
-
## Passive Voice
|
|
96
|
-
|
|
97
|
-
Every sentence needs a subject doing something. Passive voice hides the actor and drains energy.
|
|
98
|
-
|
|
99
|
-
| Pattern | Fix |
|
|
100
|
-
|---------|-----|
|
|
101
|
-
| "X was created" | Name who created it |
|
|
102
|
-
| "It is believed that" | Name who believes it |
|
|
103
|
-
| "Mistakes were made" | Name who made them |
|
|
104
|
-
| "The decision was reached" | Name who decided |
|
|
105
|
-
|
|
106
|
-
**Instead:** Find the actor. Put them at the front of the sentence.
|
|
107
|
-
|
|
108
|
-
## Sentence Starters to Avoid
|
|
109
|
-
|
|
110
|
-
| Pattern | Fix |
|
|
111
|
-
|---------|-----|
|
|
112
|
-
| Sentences starting with What, When, Where, Which, Who, Why, How | Restructure. Lead with the subject or the verb. |
|
|
113
|
-
| Paragraphs starting with "So" | Start with content |
|
|
114
|
-
| Sentences starting with "Look," | Remove |
|
|
115
|
-
|
|
116
|
-
Wh- openers become a crutch. "What makes this hard is..." becomes "The constraint is..." or better, name the specific constraint.
|
|
117
|
-
|
|
118
|
-
## Rhythm Patterns
|
|
119
|
-
|
|
120
|
-
| Pattern | Fix |
|
|
121
|
-
|---------|-----|
|
|
122
|
-
| Three-item lists | Use two items or one |
|
|
123
|
-
| Questions answered immediately | Let questions breathe or cut them |
|
|
124
|
-
| Every paragraph ends punchily | Vary endings |
|
|
125
|
-
| Em-dashes | Remove. Use commas or periods. No em dashes at all. |
|
|
126
|
-
| Staccato fragmentation | Don't stack short punchy sentences |
|
|
127
|
-
| "Not always. Not perfectly." | Hedging disguised as reassurance |
|
|
128
|
-
|
|
129
|
-
## Word Patterns
|
|
130
|
-
|
|
131
|
-
| Pattern | Problem |
|
|
132
|
-
|---------|---------|
|
|
133
|
-
| Lazy extremes (every, always, never, everyone, everybody, nobody) | False authority. Use specifics instead of sweeping claims. |
|
|
134
|
-
| All adverbs (-ly words, "really," "just," "literally," "genuinely," "honestly," "simply," "actually") | Empty emphasis. See phrases.md for full list. |
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# squads
|
|
2
|
-
|
|
3
|
-
## Produção (conteúdo — dono aprova, time executa)
|
|
4
|
-
|
|
5
|
-
- **[instagram-carrossel](instagram-carrossel/README.md)** — carrossel IG.
|
|
6
|
-
Dia a dia: skill **MVP** (1–2 HTML + caption). Pipeline full: “fábrica completa” → `RUN.md`.
|
|
7
|
-
|
|
8
|
-
## Estratégia / consultoria (não é produção de post)
|
|
9
|
-
|
|
10
|
-
- [advisory-board](advisory-board/README.md) — conselho para decisão e direção
|
|
11
|
-
- [brand](brand/README.md) — posicionamento e identidade (resumo → grave em `marca/`)
|
|
12
|
-
- [hormozi-squad](hormozi-squad/README.md) — oferta, leads, growth frameworks
|
|
13
|
-
|
|
14
|
-
**Regra:** conteúdo publicável no Instagram = squad **instagram-carrossel** (ou skill `social-content` se for só texto). Não use advisory/hormozi pra “fazer o post”.
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# Dependências — squad instagram-carrossel no INVOS
|
|
2
|
-
|
|
3
|
-
Auditoria vs OpenSquad (`opensquad-master`). Objetivo: **zero path quebrado** no kit INVOS.
|
|
4
|
-
|
|
5
|
-
## Runtime OpenSquad — NÃO necessário
|
|
6
|
-
|
|
7
|
-
| OpenSquad original | INVOS |
|
|
8
|
-
|--------------------|--------|
|
|
9
|
-
| `npx opensquad` / `bin/opensquad.js` | Não usado |
|
|
10
|
-
| `_opensquad/core/runner.pipeline.md` | `RUN.md` no squad |
|
|
11
|
-
| `_opensquad/_memory/company.md` | `memoria/empresa.md` + `marca/marca.md` |
|
|
12
|
-
| `_opensquad/config/playwright.config.json` | Opcional; Chrome headless em `references/render-png.md` |
|
|
13
|
-
| Dashboard Phaser | Não usado |
|
|
14
|
-
| `base_agent` registry core | Ignorado — agents são `.custom.md` + tasks |
|
|
15
|
-
|
|
16
|
-
## Skills (vendidas no INVOS)
|
|
17
|
-
|
|
18
|
-
| Skill / doc | Path INVOS | Obrigatória? |
|
|
19
|
-
|-------------|------------|--------------|
|
|
20
|
-
| **instagram-carrossel** (entrada) | `.agents/skills/instagram-carrossel/SKILL.md` | Sim (MVP ou full) |
|
|
21
|
-
| render PNG (ex image-creator) | `…/instagram-carrossel/references/render-png.md` | Só se pedir PNG |
|
|
22
|
-
| fetch assets (ex image-fetcher) | `…/instagram-carrossel/references/fetch-assets.md` | Não |
|
|
23
|
-
| publish API (ex publisher) | `…/instagram-carrossel/references/publish.md` + `scripts/publish.js` | Não (default handoff) |
|
|
24
|
-
| social-content | `.agents/skills/social-content/` | Não (só texto/legenda) |
|
|
25
|
-
|
|
26
|
-
## Paths internos do squad (ok se relativos ao squad)
|
|
27
|
-
|
|
28
|
-
- `pipeline/data/*`
|
|
29
|
-
- `pipeline/steps/*`
|
|
30
|
-
- `agents/*/tasks/*`
|
|
31
|
-
- `output/`
|
|
32
|
-
|
|
33
|
-
## Paths INVOS (raiz do projeto)
|
|
34
|
-
|
|
35
|
-
| Uso | Path |
|
|
36
|
-
|-----|------|
|
|
37
|
-
| Marca | `marca/marca.md`, `marca/assets/` |
|
|
38
|
-
| Empresa / ICP | `memoria/empresa.md` |
|
|
39
|
-
| Fila | `conteudo/_fila.md` |
|
|
40
|
-
| Runs | `conteudo/carrosseis/` |
|
|
41
|
-
|
|
42
|
-
## Ferramentas de máquina
|
|
43
|
-
|
|
44
|
-
| Tool | Uso | Se faltar |
|
|
45
|
-
|------|-----|-----------|
|
|
46
|
-
| Chrome/Chromium | PNG headless | Entregar só HTML + instrução |
|
|
47
|
-
| Python 3 | `http.server` no render | Idem |
|
|
48
|
-
| Node | publish.js API | Handoff humano |
|
|
49
|
-
| Web search | research news | User cola tema/fonte |
|
|
50
|
-
|
|
51
|
-
## Env (nunca no git)
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
INSTAGRAM_ACCESS_TOKEN=
|
|
55
|
-
INSTAGRAM_USER_ID=
|
|
56
|
-
IMGBB_API_KEY=
|
|
57
|
-
COMPOSIO_API_KEY= # se usar integracoes
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Checklist anti-erro (agente)
|
|
61
|
-
|
|
62
|
-
- [ ] Não ler `_opensquad/...`
|
|
63
|
-
- [ ] Não exigir Playwright MCP
|
|
64
|
-
- [ ] Não chamar publish sem user + env
|
|
65
|
-
- [ ] Voz/cores de `marca/`
|
|
66
|
-
- [ ] Artefatos em `conteudo/carrosseis/`
|
|
67
|
-
|
|
68
|
-
## O que NÃO foi copiado (e por quê)
|
|
69
|
-
|
|
70
|
-
| Pacote OpenSquad | Motivo |
|
|
71
|
-
|------------------|--------|
|
|
72
|
-
| Core runner, i18n, init CLI | Substituído por RUN.md |
|
|
73
|
-
| best-practices inteiro | Só `instagram-feed` em pipeline/data |
|
|
74
|
-
| canva, blotato, apify, resend skills | Fora do escopo carrossel |
|
|
75
|
-
| Sherlock investigators | Research usa web_search do harness |
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Squad: Instagram Carrossel (produção)
|
|
2
|
-
|
|
3
|
-
**Job:** o dono manda um tema (ou “faz carrossel da semana”) e o **time de agentes** pesquisa, escolhe ângulo, escreve, desenha slides, revisa e prepara publicação.
|
|
4
|
-
O humano **só aprova** nos checkpoints — não escreve do zero.
|
|
5
|
-
|
|
6
|
-
Isto é **produção de conteúdo**, não advisory/brand/hormozi.
|
|
7
|
-
|
|
8
|
-
## Como rodar (qualquer harness)
|
|
9
|
-
|
|
10
|
-
1. Abra o projeto INVOS (pasta com `AGENTS.md`).
|
|
11
|
-
2. Diga: **“Roda o squad instagram-carrossel”** ou **“Fábrica de carrossel: [tema]”**.
|
|
12
|
-
3. O agente segue [RUN.md](./RUN.md) (orquestra os steps sem precisar OpenSquad runtime).
|
|
13
|
-
|
|
14
|
-
## O que o dono faz vs o time
|
|
15
|
-
|
|
16
|
-
| Dono (mínimo) | Agentes |
|
|
17
|
-
|---------------|---------|
|
|
18
|
-
| Tema **ou** “pega da fila / prova da semana” | Research, ângulos, copy, visual, render, review |
|
|
19
|
-
| Aprovar: história, ângulo, texto, visual, imagens (checkpoints) | Executar cada step |
|
|
20
|
-
| Publicar no IG se não houver API (1 upload) | Caption + PNGs prontos; tenta Composio se linkado |
|
|
21
|
-
|
|
22
|
-
## Pipeline (13 steps)
|
|
23
|
-
|
|
24
|
-
Ver `pipeline/pipeline.yaml`. Resumo:
|
|
25
|
-
|
|
26
|
-
```text
|
|
27
|
-
input → research news → pick story → angles → pick angle
|
|
28
|
-
→ copy → approve copy → visual options → pick visual
|
|
29
|
-
→ slides/PNG → approve images → review → publish/handoff
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Onde grava
|
|
33
|
-
|
|
34
|
-
| Path | Conteúdo |
|
|
35
|
-
|------|----------|
|
|
36
|
-
| `.agents/squads/instagram-carrossel/output/` | Run atual (working) |
|
|
37
|
-
| `conteudo/carrosseis/YYYY-MM-DD-slug/` | Run arquivada pro negócio |
|
|
38
|
-
| `conteudo/_fila.md` | Atualiza peça da semana / status |
|
|
39
|
-
| `marca/marca.md` | Cores, voz, logo (lido sempre) |
|
|
40
|
-
|
|
41
|
-
## Pré-requisitos
|
|
42
|
-
|
|
43
|
-
- `marca/marca.md` preenchido (onboard ou design-marca)
|
|
44
|
-
- Chrome + Python 3 se for render PNG headless (igual skill build-carousel)
|
|
45
|
-
- Opcional: Composio pra e-mail/outros; publish IG orgânico costuma ser **humano**
|
|
46
|
-
|
|
47
|
-
## Arquivos
|
|
48
|
-
|
|
49
|
-
- `squad.yaml` — definição do time
|
|
50
|
-
- `pipeline/` — steps + quality data
|
|
51
|
-
- `agents/` — papéis + tasks
|
|
52
|
-
- `RUN.md` — **como o harness executa** no INVOS
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# RUN — Instagram Carrossel no INVOS
|
|
2
|
-
|
|
3
|
-
Orquestração para **qualquer agente** (Claude, Cursor, Grok, Codex…).
|
|
4
|
-
Não exige runtime OpenSquad: leia este arquivo e execute os steps.
|
|
5
|
-
|
|
6
|
-
## Princípio
|
|
7
|
-
|
|
8
|
-
**Menos ações pro dono.** Em cada checkpoint, mostre opções claras e peça **uma** resposta (número ou “aprovado”).
|
|
9
|
-
Entre checkpoints, **não** fique perguntando — execute.
|
|
10
|
-
|
|
11
|
-
## Default no kit INVOS
|
|
12
|
-
|
|
13
|
-
O dia a dia do prestador usa a skill **`instagram-carrossel` em modo MVP** (1–2 HTML + caption), **sem** este pipeline de 13 steps.
|
|
14
|
-
|
|
15
|
-
Só execute este RUN se o user pediu **fábrica completa / squad full / research + ângulos**.
|
|
16
|
-
|
|
17
|
-
## Boot obrigatório (antes do step 01)
|
|
18
|
-
|
|
19
|
-
Leia:
|
|
20
|
-
|
|
21
|
-
1. `marca/marca.md`
|
|
22
|
-
2. `memoria/empresa.md` + `memoria/perfil.md`
|
|
23
|
-
3. `conteudo/_fila.md`
|
|
24
|
-
4. Este squad: `squad.yaml` + `pipeline/data/tone-of-voice.md` + `anti-patterns.md` + `quality-criteria.md`
|
|
25
|
-
5. Skills de render: `.agents/skills/instagram-carrossel/references/render-png.md`
|
|
26
|
-
6. Se o tema envolver cliente/prova: `clientes/_index.md` ou ficha citada
|
|
27
|
-
7. Mapa de deps: `DEPENDENCIES.md` (se path falhar)
|
|
28
|
-
|
|
29
|
-
**Proibido:** paths `_opensquad/`, `skills/` na raiz OpenSquad, `company.md` externo.
|
|
30
|
-
|
|
31
|
-
**Tom e cores vêm do INVOS (`marca/`), não do tom antigo de outra empresa.**
|
|
32
|
-
Se `tone-of-voice.md` conflitar com `marca/`, **vence `marca/`**.
|
|
33
|
-
|
|
34
|
-
## Pasta da run
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
SLUG=$(date +%Y-%m-%d)-carrossel
|
|
38
|
-
# ou kebab do tema
|
|
39
|
-
mkdir -p "conteudo/carrosseis/$SLUG"/{slides,rendered}
|
|
40
|
-
# working copy também em:
|
|
41
|
-
# .agents/squads/instagram-carrossel/output/
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Ao final de cada step com artefato: grave em **ambos** `output/` do squad e `conteudo/carrosseis/$SLUG/`.
|
|
45
|
-
|
|
46
|
-
## Execução dos steps
|
|
47
|
-
|
|
48
|
-
Siga `pipeline/pipeline.yaml` na ordem.
|
|
49
|
-
|
|
50
|
-
| Step | Tipo | Ação |
|
|
51
|
-
|------|------|------|
|
|
52
|
-
| 01 | checkpoint | Ler `pipeline/steps/step-01-input-content.md`. Se user já deu tema, **não** re-pergunte. |
|
|
53
|
-
| 02 | agent researcher | Task `agents/researcher/tasks/find-and-rank-news.md` |
|
|
54
|
-
| 03 | checkpoint | User escolhe 1 história (ou “pula research, usa meu tema”) |
|
|
55
|
-
| 04 | agent copywriter | `generate-angles.md` |
|
|
56
|
-
| 05 | checkpoint | User escolhe 1 ângulo (default: recomende o #1 e confirme) |
|
|
57
|
-
| 06 | agent copywriter | `create-slides.md` + `optimize-copy.md` |
|
|
58
|
-
| 07 | checkpoint | Aprovar copy |
|
|
59
|
-
| 08 | agent image-designer | `propose-visual-identities.md` — **ancorar em marca/ cores** |
|
|
60
|
-
| 09 | checkpoint | Escolher visual (default: o mais alinhado a marca/) |
|
|
61
|
-
| 10 | agent image-designer | `create-slides.md` + `render-export.md` → HTML + PNG se Chrome ok |
|
|
62
|
-
| 11 | checkpoint | Aprovar imagens |
|
|
63
|
-
| 12 | agent reviewer | `score-content.md` + `generate-feedback.md` — se score baixo, corrige e volta |
|
|
64
|
-
| 13 | agent publisher | `validate-publish.md` — pack final + tenta publish ou ⚠️ humano |
|
|
65
|
-
|
|
66
|
-
### Modo turbo (ainda menos fricção)
|
|
67
|
-
|
|
68
|
-
Se o user disser **“modo turbo”** ou **“aprova automático o que for seguro”**:
|
|
69
|
-
|
|
70
|
-
- Checkpoints 03, 05, 09: agente **escolhe o top rank** e segue, só mostrando resumo de 3 linhas.
|
|
71
|
-
- Checkpoints 07 e 11: ainda pede “ok?” (texto e imagem mexem na marca).
|
|
72
|
-
- Se user disser **“full auto até o pack”**: só para no 13 com arquivos prontos + `⚠️ Sua vez: postar no Instagram` se não houver API.
|
|
73
|
-
|
|
74
|
-
## Artefatos mínimos no fim
|
|
75
|
-
|
|
76
|
-
```text
|
|
77
|
-
conteudo/carrosseis/$SLUG/
|
|
78
|
-
input.md
|
|
79
|
-
carousel-draft.md # copy dos slides + caption
|
|
80
|
-
design-system.md
|
|
81
|
-
slides/slide-01.html …
|
|
82
|
-
rendered/slide-01.png … # se render ok
|
|
83
|
-
caption.txt
|
|
84
|
-
publish-handoff.md # o que o dono faz em 1 min
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Atualize `conteudo/_fila.md`: status publicado/rascunho, dono, path do carrossel.
|
|
88
|
-
|
|
89
|
-
## Publish (step 13) — realismo INVOS
|
|
90
|
-
|
|
91
|
-
1. Gerar `caption.txt` + lista ordenada de PNGs.
|
|
92
|
-
2. Se Composio/`integracoes` tiver toolkit de post orgânico IG **e** conectado: tentar.
|
|
93
|
-
3. Senão: **não inventar sucesso** — handoff:
|
|
94
|
-
|
|
95
|
-
```text
|
|
96
|
-
⚠️ Sua vez (2 min):
|
|
97
|
-
1. Abra Instagram → novo carrossel
|
|
98
|
-
2. Suba rendered/slide-01.png … na ordem
|
|
99
|
-
3. Cole caption.txt
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Anti-padrões de orquestração
|
|
103
|
-
|
|
104
|
-
- Não re-entrevistar se o tema já veio no chat
|
|
105
|
-
- Não pedir “o que você quer fazer agora?” no meio do pipeline
|
|
106
|
-
- Não misturar brand de outro cliente/marca
|
|
107
|
-
- Não pular quality-criteria no review
|
|
108
|
-
- Uma pergunta por checkpoint, opções numeradas
|
|
109
|
-
|
|
110
|
-
## Frases que disparam este RUN
|
|
111
|
-
|
|
112
|
-
- “Roda fábrica de carrossel”
|
|
113
|
-
- “Squad instagram-carrossel”
|
|
114
|
-
- “Carrossel IG sobre [tema]”
|
|
115
|
-
- “Conteúdo da semana no Instagram (carrossel)”
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Memórias do squad (runs)
|
|
2
|
-
|
|
3
|
-
> Lições entre carrosséis. Não substituem `marca/` nem `memoria/` do INVOS.
|
|
4
|
-
|
|
5
|
-
## Preferências do dono (preencher conforme roda)
|
|
6
|
-
|
|
7
|
-
- Ângulos que performam / ele gosta:
|
|
8
|
-
- Ângulos que rejeita:
|
|
9
|
-
- Visual preferido (quando escolhe sempre o mesmo):
|
|
10
|
-
- Sempre / nunca no CTA:
|
|
11
|
-
|
|
12
|
-
## Runs recentes
|
|
13
|
-
|
|
14
|
-
| data | slug | tema | resultado |
|
|
15
|
-
|------|------|------|-----------|
|
|
16
|
-
| | | | |
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
task: "Create Slides"
|
|
3
|
-
order: 1
|
|
4
|
-
input:
|
|
5
|
-
- selected_angle: Ângulo escolhido pelo usuário no checkpoint (id + título)
|
|
6
|
-
- insights_brief: Output completo de extract-insights.md com todos os fatos verificados
|
|
7
|
-
- angle_structure: Estrutura de slides sugerida pelo ângulo selecionado em identify-angles.md
|
|
8
|
-
- tone_guide: pipeline/data/tone-of-voice.md
|
|
9
|
-
- examples: pipeline/data/output-examples.md
|
|
10
|
-
- anti_patterns: pipeline/data/anti-patterns.md
|
|
11
|
-
output:
|
|
12
|
-
- slides_copy: Copy completo de todos os slides (7-9 slides)
|
|
13
|
-
- caption: Legenda completa com hashtags
|
|
14
|
-
- carousel_draft_path: Salvo em output/carousel-draft.md
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# Create Slides
|
|
18
|
-
|
|
19
|
-
Cria o copy completo de cada slide do carrossel com base no ângulo selecionado, usando dados verificados do brief e seguindo o tom aprovado da marca Sem Codar.
|
|
20
|
-
|
|
21
|
-
## Process
|
|
22
|
-
|
|
23
|
-
1. **Carregar todos os inputs.** Ler: ângulo selecionado + estrutura de slides + brief de insights + guia de tom. Ter toda informação disponível antes de escrever uma linha.
|
|
24
|
-
|
|
25
|
-
2. **Validar que o ângulo selecionado tem dados suficientes.** Confirmar que o brief contém dados verificados adequados para o hook e pelo menos 5 slides de conteúdo. Se não houver dados suficientes, reportar e sugerir busca complementar.
|
|
26
|
-
|
|
27
|
-
3. **Escrever slide 1 primeiro — isoladamente.** O slide 1 é o mais crítico. Escrever, revisar pela perspectiva do scroll-stop test, e só avançar quando o hook passar no teste.
|
|
28
|
-
- Critério de aprovação: "Se eu visse isso no feed sem saber o que é a Sem Codar, eu pararia?"
|
|
29
|
-
- Formato ideal: Dado/número em destaque + contexto de 1 linha + indicação de swipe implícita ou explícita
|
|
30
|
-
|
|
31
|
-
4. **Seguir a estrutura de slides do ângulo, slide a slide.** Para cada slide de conteúdo:
|
|
32
|
-
- Uma ideia principal
|
|
33
|
-
- Máximo 4-5 linhas visíveis
|
|
34
|
-
- Conectar com o slide anterior (causa × efeito, dado → implicação, problema → agravamento)
|
|
35
|
-
- Nunca repetir informação já dita em slide anterior
|
|
36
|
-
|
|
37
|
-
5. **Penúltimo slide de conteúdo = Reflexão.** Obrigatório. A reflexão não é um dado novo — é a síntese emocional do que foi apresentado. Uma pergunta, afirmação ou perspectiva que o leitor não tinha antes de ler o carrossel.
|
|
38
|
-
|
|
39
|
-
6. **Último slide = CTA específico.** O CTA menciona especificamente o conteúdo do carrossel. Inclui 2 ações: uma de save ("salva esse carrossel porque...") e uma de engajamento ("comenta...").
|
|
40
|
-
|
|
41
|
-
7. **Escrever a legenda.** A legenda é uma versão ampliada e conectada do hook do slide 1. Inclui: abertura (primeiros 125 chars = mais visíveis antes do "ver mais"), corpo, e hashtags ao final. Máximo: 2.000 chars (manter margem de segurança).
|
|
42
|
-
|
|
43
|
-
8. **Salvar em output/carousel-draft.md.** Formatar no padrão de output abaixo e salvar.
|
|
44
|
-
|
|
45
|
-
## Output Format
|
|
46
|
-
|
|
47
|
-
Salvar em `output/carousel-draft.md`:
|
|
48
|
-
|
|
49
|
-
```markdown
|
|
50
|
-
# Carrossel — [Título do Ângulo]
|
|
51
|
-
**Ângulo:** [tipo]
|
|
52
|
-
**Data:** YYYY-MM-DD
|
|
53
|
-
**Status:** Draft
|
|
54
|
-
|
|
55
|
-
## Slides
|
|
56
|
-
|
|
57
|
-
### Slide 1 — Hook
|
|
58
|
-
[Texto exato do slide 1 — código copy visual aqui]
|
|
59
|
-
|
|
60
|
-
### Slide 2 — [Tema]
|
|
61
|
-
[Texto do slide 2]
|
|
62
|
-
|
|
63
|
-
### Slide N — Reflexão
|
|
64
|
-
[Texto da reflexão]
|
|
65
|
-
|
|
66
|
-
### Slide Final — CTA
|
|
67
|
-
[Texto do CTA]
|
|
68
|
-
|
|
69
|
-
## Legenda
|
|
70
|
-
[Legenda completa com quebras de linha e hashtags ao final]
|
|
71
|
-
|
|
72
|
-
## Notas de Produção
|
|
73
|
-
- Dado âncora principal: [dado]
|
|
74
|
-
- Fonte principal: [fonte]
|
|
75
|
-
- Tom predominante: [ex: Revelador / Didático]
|
|
76
|
-
- Slide count: [N]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Quality Checklist (Auto-Verify Before Delivering)
|
|
80
|
-
|
|
81
|
-
- [ ] Slide 1 tem dado específico com fonte — não afirmação vaga
|
|
82
|
-
- [ ] Nenhum slide tem mais de 5 linhas visíveis
|
|
83
|
-
- [ ] Cada slide conecta ao anterior com lógica clara
|
|
84
|
-
- [ ] Existe slide de reflexão (penúltimo de conteúdo)
|
|
85
|
-
- [ ] CTA menciona especificamente o conteúdo do carrossel
|
|
86
|
-
- [ ] Contagem de slides: entre 7 e 9
|
|
87
|
-
- [ ] Legenda abaixo de 2.000 caracteres
|
|
88
|
-
- [ ] Hashtags ao final da legenda, não misturadas ao texto
|
|
89
|
-
|
|
90
|
-
## Veto Conditions
|
|
91
|
-
|
|
92
|
-
Rejeitar e reescrever se:
|
|
93
|
-
1. Slide 1 começa com nome da marca, apresentação, ou "hoje vamos falar sobre"
|
|
94
|
-
2. Qualquer afirmação factual sem dado específico ou fonte (para textos com dados disponíveis no brief)
|
|
95
|
-
3. Nenhum slide de reflexão no carrossel
|
|
96
|
-
4. CTA é "nos siga para mais conteúdo" ou equivalente
|
|
@@ -1,111 +0,0 @@
|
|
|
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
|