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
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo
|
|
3
|
+
description: >
|
|
4
|
+
Fluxo completo de SEO, GEO e Google Ads em 8 passos: pesquisa de demanda, análise de
|
|
5
|
+
concorrência, Google Meu Negócio, otimização on-page, estratégia de conteúdo, Google Ads,
|
|
6
|
+
checklist de monitoramento e GEO (aparecer em IAs como ChatGPT, Gemini, Perplexity).
|
|
7
|
+
Use quando o usuário pedir "seo", "geo", "palavras-chave", "google ads",
|
|
8
|
+
"aparecer no google", "aparecer no chatgpt", "aparecer nas ias",
|
|
9
|
+
"google meu negócio", "gmb", "analisar concorrência seo",
|
|
10
|
+
"pesquisa de nicho", "google trends".
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /seo — SEO completo + GEO + Google Ads
|
|
14
|
+
|
|
15
|
+
## Dependências
|
|
16
|
+
|
|
17
|
+
- **Contexto do negócio:** `_memoria/empresa.md`
|
|
18
|
+
- **Tom de voz:** `_memoria/preferencias.md`
|
|
19
|
+
- **Estratégia atual:** `_memoria/estrategia.md`
|
|
20
|
+
- **Ferramentas:** WebSearch, WebFetch (nativos)
|
|
21
|
+
- **Outputs vão em:** `marketing/seo/`
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
### Passo 1 — DEMANDA: O que as pessoas buscam nesse nicho?
|
|
28
|
+
|
|
29
|
+
**Objetivo:** Entender se existe demanda real e como as pessoas buscam.
|
|
30
|
+
|
|
31
|
+
1. Ler `_memoria/empresa.md` pra extrair: produtos/serviços, região, público-alvo, diferenciais
|
|
32
|
+
2. Gerar uma lista inicial de **30-50 termos-semente** baseados em:
|
|
33
|
+
- Categorias de produto/serviço
|
|
34
|
+
- Intenção de busca (informacional, comercial, transacional)
|
|
35
|
+
- Localização (cidade, região, estado)
|
|
36
|
+
- Uso final / contexto do cliente
|
|
37
|
+
3. Usar **WebSearch** pra cada grupo de termos:
|
|
38
|
+
- Buscar `"[termo] site:trends.google.com"` pra ver sazonalidade
|
|
39
|
+
- Buscar `"[termo]"` pra ver o que aparece (orgânico, ads, maps)
|
|
40
|
+
- Buscar `"[termo] related searches"` pra expandir a lista
|
|
41
|
+
4. Classificar cada termo por:
|
|
42
|
+
- **Volume estimado:** alto / médio / baixo / micro
|
|
43
|
+
- **Intenção:** informacional, comercial, transacional, navegacional
|
|
44
|
+
- **Dificuldade:** quantos concorrentes fortes aparecem?
|
|
45
|
+
- **Relevância:** direto (produto exato) / indireto (nicho relacionado) / tangencial
|
|
46
|
+
|
|
47
|
+
**Output:** Salvar em `marketing/seo/01-pesquisa-demanda.md` com:
|
|
48
|
+
- Tabela de termos classificados
|
|
49
|
+
- Top 10 termos prioritários (volume + intenção transacional + baixa concorrência)
|
|
50
|
+
- Termos sazonais
|
|
51
|
+
- Termos descartados e por quê
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Passo 2 — CONCORRÊNCIA: Quem aparece pra essas buscas?
|
|
56
|
+
|
|
57
|
+
**Objetivo:** Mapear quem domina os resultados e onde estão os gaps.
|
|
58
|
+
|
|
59
|
+
1. Pegar os **top 10 termos** do Passo 1
|
|
60
|
+
2. Pra cada termo, usar **WebSearch** e analisar:
|
|
61
|
+
- **Top 5 resultados orgânicos:** quem são, que tipo de página (site institucional, marketplace, blog, diretório)
|
|
62
|
+
- **Resultados do Maps/Local Pack:** quem aparece, quantas avaliações, nota
|
|
63
|
+
- **Google Ads:** alguém anuncia? qual a copy?
|
|
64
|
+
3. Pra cada concorrente relevante (máx 5-8), usar **WebFetch** pra analisar:
|
|
65
|
+
- Estrutura do site (páginas, blog, catálogo)
|
|
66
|
+
- Meta titles e descriptions das páginas principais
|
|
67
|
+
- Conteúdo: falam de quê? com que profundidade?
|
|
68
|
+
- Schema markup: usam dados estruturados?
|
|
69
|
+
- GMB: perfil completo? fotos? posts? avaliações?
|
|
70
|
+
4. Identificar:
|
|
71
|
+
- **Gaps:** o que nenhum concorrente faz bem
|
|
72
|
+
- **Oportunidades:** termos onde ninguém domina
|
|
73
|
+
- **Ameaças:** concorrentes fortes demais pra competir de frente
|
|
74
|
+
- **Benchmark:** o padrão mínimo que o negócio precisa atingir
|
|
75
|
+
|
|
76
|
+
**Output:** `marketing/seo/02-analise-concorrencia.md` com:
|
|
77
|
+
- Tabela de concorrentes
|
|
78
|
+
- Mapa de gaps e oportunidades
|
|
79
|
+
- Recomendações: onde atacar primeiro
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### Passo 3 — GMB: Google Meu Negócio (resultado mais rápido)
|
|
84
|
+
|
|
85
|
+
**Objetivo:** Montar o perfil completo do Google Business Profile pra aparecer no Maps e Local Pack.
|
|
86
|
+
|
|
87
|
+
1. Pesquisar como está o perfil atual (se existir): buscar o nome da empresa no Google
|
|
88
|
+
2. Criar documento com **tudo que precisa ser preenchido/otimizado:**
|
|
89
|
+
|
|
90
|
+
**Informações básicas:**
|
|
91
|
+
- Nome (idêntico ao registrado)
|
|
92
|
+
- Categoria principal + secundárias (sugerir as melhores pro nicho)
|
|
93
|
+
- Endereço, telefone, site
|
|
94
|
+
- Horário de funcionamento
|
|
95
|
+
- Área de atendimento
|
|
96
|
+
|
|
97
|
+
**Descrição do negócio:**
|
|
98
|
+
- Descrição otimizada (750 caracteres) com palavras-chave naturais
|
|
99
|
+
- Tom: conforme `_memoria/preferencias.md`
|
|
100
|
+
|
|
101
|
+
**Atributos e serviços:**
|
|
102
|
+
- Serviços relevantes
|
|
103
|
+
- Atributos (entrega, atacado, produção própria, etc.)
|
|
104
|
+
|
|
105
|
+
**Fotos recomendadas:**
|
|
106
|
+
- Checklist (fachada, interior, produtos, equipe, produção)
|
|
107
|
+
- Especificações
|
|
108
|
+
|
|
109
|
+
**Posts GMB:**
|
|
110
|
+
- 4 posts iniciais sugeridos
|
|
111
|
+
- Calendário de posts recorrentes
|
|
112
|
+
|
|
113
|
+
**Estratégia de avaliações:**
|
|
114
|
+
- Como pedir avaliações dos clientes atuais
|
|
115
|
+
- Template de resposta (positivas e negativas) — usar `/responder-avaliacoes`
|
|
116
|
+
|
|
117
|
+
**Citações e diretórios:**
|
|
118
|
+
- Lista de diretórios relevantes pro nicho
|
|
119
|
+
- NAP consistente (Name, Address, Phone) pra todas as listagens
|
|
120
|
+
|
|
121
|
+
**Output:** `marketing/seo/03-google-meu-negocio.md`
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### Passo 4 — ON-PAGE: Otimizar o site
|
|
126
|
+
|
|
127
|
+
**Objetivo:** Garantir que cada página esteja otimizada pras palavras-chave certas.
|
|
128
|
+
|
|
129
|
+
1. Ler a estrutura atual do site (se `site/` existir; senão, perguntar as páginas)
|
|
130
|
+
2. Pra cada página:
|
|
131
|
+
|
|
132
|
+
**Mapeamento de palavras-chave por página**
|
|
133
|
+
|
|
134
|
+
**Meta tags otimizadas:**
|
|
135
|
+
- Title (50-60 caracteres, keyword no início)
|
|
136
|
+
- Meta description (150-160 caracteres, com CTA)
|
|
137
|
+
- H1, H2, H3 sugeridos
|
|
138
|
+
|
|
139
|
+
**Schema Markup (dados estruturados):**
|
|
140
|
+
- LocalBusiness schema (JSON-LD)
|
|
141
|
+
- Product schema pros produtos
|
|
142
|
+
- FAQ schema se tiver seção de perguntas
|
|
143
|
+
|
|
144
|
+
**Checklist técnico:**
|
|
145
|
+
- URLs amigáveis
|
|
146
|
+
- Alt text das imagens
|
|
147
|
+
- Velocidade de carregamento
|
|
148
|
+
- Mobile-friendly
|
|
149
|
+
- Sitemap.xml, robots.txt, canonical, Open Graph
|
|
150
|
+
|
|
151
|
+
**Internal linking:** mapa de links internos sugerido
|
|
152
|
+
|
|
153
|
+
**Output:** `marketing/seo/04-otimizacao-on-page.md` com:
|
|
154
|
+
- Tabela: página → keyword principal → title → description → H1
|
|
155
|
+
- Schema markup pronto pra copiar (JSON-LD)
|
|
156
|
+
- Checklist técnico com status (feito / pendente)
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### Passo 5 — CONTEÚDO: Estratégia de autoridade
|
|
161
|
+
|
|
162
|
+
**Objetivo:** Criar plano de conteúdo que posicione a empresa como referência no nicho.
|
|
163
|
+
|
|
164
|
+
1. Baseado nos termos do Passo 1 (especialmente os informacionais):
|
|
165
|
+
|
|
166
|
+
**Páginas/posts evergreen:**
|
|
167
|
+
- 5-10 ideias que respondem dúvidas reais do público
|
|
168
|
+
- Pra cada ideia: título otimizado, keyword-alvo, estrutura de headings, estimativa de tamanho
|
|
169
|
+
|
|
170
|
+
**Cluster de conteúdo:**
|
|
171
|
+
- Página pilar
|
|
172
|
+
- Páginas satélite que linkam pra pilar
|
|
173
|
+
- Estrutura de internal linking
|
|
174
|
+
|
|
175
|
+
**Calendário editorial:**
|
|
176
|
+
- Prioridade de publicação
|
|
177
|
+
- Frequência sugerida
|
|
178
|
+
- Formato (blog post, guia, FAQ, comparativo)
|
|
179
|
+
|
|
180
|
+
**Conteúdo local:**
|
|
181
|
+
- Páginas de área de atendimento (se fizer sentido)
|
|
182
|
+
- Conteúdo com referências locais
|
|
183
|
+
|
|
184
|
+
**Output:** `marketing/seo/05-estrategia-conteudo.md`
|
|
185
|
+
|
|
186
|
+
> Essa lista é o insumo da skill `/publicar-tema` — cada item dessa estratégia vira artigo + carrossel + legendas com um único comando.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### Passo 6 — GOOGLE ADS: Campanhas prontas pra rodar
|
|
191
|
+
|
|
192
|
+
**Objetivo:** Estruturar campanhas baseadas nos dados reais da pesquisa.
|
|
193
|
+
|
|
194
|
+
1. Definir **objetivo das campanhas:**
|
|
195
|
+
- Geração de leads (ligações, WhatsApp, formulário)
|
|
196
|
+
- Visitas ao site
|
|
197
|
+
- Alcance local
|
|
198
|
+
|
|
199
|
+
2. **Estrutura de campanhas:**
|
|
200
|
+
|
|
201
|
+
**Search:**
|
|
202
|
+
- Grupos de anúncios (1 por cluster de keyword)
|
|
203
|
+
- Pra cada grupo: 10-15 palavras-chave, lista de negativas, 3 RSAs, extensões
|
|
204
|
+
- Orçamento diário, estratégia de lance, segmentação geográfica
|
|
205
|
+
|
|
206
|
+
**Local (se aplicável):** anúncios pra Google Maps, segmentação por proximidade
|
|
207
|
+
|
|
208
|
+
**Display/Remarketing (opcional):** públicos, formatos
|
|
209
|
+
|
|
210
|
+
3. **Copies dos anúncios:**
|
|
211
|
+
- Seguir tom de `_memoria/preferencias.md`
|
|
212
|
+
- Incluir diferenciais concretos
|
|
213
|
+
- CTAs específicos
|
|
214
|
+
- 15 headlines, 4 descriptions
|
|
215
|
+
|
|
216
|
+
4. **Landing page:** avaliar se o site atual serve ou precisa de página específica
|
|
217
|
+
|
|
218
|
+
**Output:** `marketing/seo/06-google-ads.md` com estrutura completa, palavras-chave organizadas, copies prontas, orçamento e configurações.
|
|
219
|
+
|
|
220
|
+
> A skill `/anuncio-google` consome esse arquivo e gera o CSV pronto pra importar no Google Ads.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### Passo 7 — MONITORAMENTO: Checklist mensal
|
|
225
|
+
|
|
226
|
+
**Objetivo:** Garantir que o trabalho continue dando resultado.
|
|
227
|
+
|
|
228
|
+
**Semanal:**
|
|
229
|
+
- Posição nos top 10 termos
|
|
230
|
+
- Responder avaliações no GMB
|
|
231
|
+
- Postar no GMB (1x/semana mínimo)
|
|
232
|
+
|
|
233
|
+
**Mensal:**
|
|
234
|
+
- Revisar métricas do Google Ads (CTR, CPC, conversões, custo/lead) — usar `/relatorio-ads`
|
|
235
|
+
- Verificar tráfego orgânico (Google Search Console)
|
|
236
|
+
- Atualizar palavras-chave negativas
|
|
237
|
+
- Publicar 1-2 conteúdos do calendário editorial
|
|
238
|
+
- Verificar citações/diretórios
|
|
239
|
+
|
|
240
|
+
**Trimestral:**
|
|
241
|
+
- Refazer pesquisa de concorrência (Passo 2 resumido)
|
|
242
|
+
- Atualizar fotos e posts do GMB
|
|
243
|
+
- Revisar estratégia de conteúdo
|
|
244
|
+
- Avaliar novas oportunidades de keywords
|
|
245
|
+
|
|
246
|
+
**Output:** `marketing/seo/07-checklist-monitoramento.md`
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### Passo 8 — GEO: Aparecer nas respostas de IAs
|
|
251
|
+
|
|
252
|
+
**Objetivo:** Otimizar a presença pra que IAs generativas (ChatGPT, Gemini, Perplexity, Copilot) citem a empresa quando alguém perguntar sobre o nicho.
|
|
253
|
+
|
|
254
|
+
**Por que importa:** Cada vez mais clientes perguntam pra IAs "qual o melhor fornecedor/serviço de X em Y?" — quem aparece ganha lead qualificado sem pagar ads.
|
|
255
|
+
|
|
256
|
+
1. **Auditoria GEO:**
|
|
257
|
+
- WebSearch nos top 10 termos em engines de IA (Perplexity, etc.)
|
|
258
|
+
- Verificar se a empresa (ou concorrentes) aparece
|
|
259
|
+
- Mapear quais fontes as IAs citam pra esse nicho
|
|
260
|
+
|
|
261
|
+
2. **Conteúdo otimizado pra IA:**
|
|
262
|
+
- Cada artigo do Passo 5 deve ter **respostas diretas** nas primeiras linhas
|
|
263
|
+
- Incluir **dados concretos** (números, certificações, endereços, fatos verificáveis)
|
|
264
|
+
- Estruturar com **perguntas como H2/H3** (formato Q&A)
|
|
265
|
+
- Evitar texto vago — IAs descartam genérico
|
|
266
|
+
|
|
267
|
+
3. **FAQ Schema no site:**
|
|
268
|
+
- Seção de FAQ com perguntas reais do nicho
|
|
269
|
+
- Implementar FAQPage schema (JSON-LD)
|
|
270
|
+
- 5-10 perguntas sugeridas baseadas no que o público pergunta
|
|
271
|
+
|
|
272
|
+
4. **Citações externas (menções):**
|
|
273
|
+
- As IAs pesam menções em fontes confiáveis
|
|
274
|
+
- Ações: diretórios, sites de avaliação, guest posts, menções em blogs do nicho, aparições em mídia
|
|
275
|
+
|
|
276
|
+
5. **Dados estruturados reforçados:**
|
|
277
|
+
- LocalBusiness, FAQPage, Product, Article schemas
|
|
278
|
+
|
|
279
|
+
6. **Monitoramento GEO:**
|
|
280
|
+
- A cada 30 dias, testar os top 5 termos no ChatGPT, Gemini, Perplexity
|
|
281
|
+
- Registrar: a empresa apareceu? quem apareceu? fonte citada?
|
|
282
|
+
- Ajustar conteúdo com base nos resultados
|
|
283
|
+
|
|
284
|
+
**Output:** `marketing/seo/08-geo-otimizacao-ia.md` com auditoria, FAQ + schema JSON-LD, lista de ações pra aumentar citações, checklist de monitoramento.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Execução
|
|
289
|
+
|
|
290
|
+
Ao rodar `/seo`, executar **todos os 8 passos em sequência**, salvando cada output no arquivo correspondente. Entre cada passo, mostrar resumo do que foi encontrado antes de seguir.
|
|
291
|
+
|
|
292
|
+
Se o usuário quiser rodar apenas um passo: `/seo passo 3` ou `/seo gmb` ou `/seo geo`.
|
|
293
|
+
|
|
294
|
+
Ao finalizar, apresentar **resumo executivo** com:
|
|
295
|
+
- Top 5 oportunidades encontradas
|
|
296
|
+
- Ações prioritárias (o que fazer primeiro)
|
|
297
|
+
- Estimativa de investimento em ads
|
|
298
|
+
- Próximos passos recomendados
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Regras
|
|
303
|
+
|
|
304
|
+
- Toda pesquisa deve ser real (usar WebSearch/WebFetch), nunca inventar dados de volume ou concorrência
|
|
305
|
+
- Copies e textos seguem `_memoria/preferencias.md` estritamente
|
|
306
|
+
- Termos em português do Brasil, como o público busca
|
|
307
|
+
- Quando um dado não puder ser obtido (ex: volume exato), deixar claro que é estimativa e explicar a lógica
|
|
308
|
+
- Focar em termos com intenção comercial/transacional pra negócio B2C/B2B local
|
|
309
|
+
- Schema markup em formato JSON-LD (padrão Google)
|
|
310
|
+
- Google Ads: nunca inventar CPC ou estimativas de custo sem base real
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: youtube-summarizer
|
|
3
|
+
description: >
|
|
4
|
+
Extrai transcrição e resume vídeos do YouTube. Use quando chegar link de vídeo
|
|
5
|
+
com pedido de resumo, pontos principais, insights ou entendimento sem assistir.
|
|
6
|
+
Dispare para: 'o que esse vídeo diz?', 'extrai os insights desse vídeo',
|
|
7
|
+
'resume esse canal'. Pré-requisito para fluxos de vídeo para conteúdo.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
This skill extracts transcripts from YouTube videos and generates comprehensive, verbose summaries using the STAR + R-I-S-E framework. It validates video availability, extracts transcripts using the youtube-transcript-api Python library, and produces detailed documentation capturing all insights, arguments, and key points.
|
|
13
|
+
|
|
14
|
+
The skill is designed for users who need thorough content analysis and reference documentation from educational videos, lectures, tutorials, or informational content.
|
|
15
|
+
|
|
16
|
+
## When to Use This Skill
|
|
17
|
+
|
|
18
|
+
This skill should be used when:
|
|
19
|
+
|
|
20
|
+
- User provides a YouTube video URL and wants a detailed summary
|
|
21
|
+
- User needs to document video content for reference without rewatching
|
|
22
|
+
- User wants to extract insights, key points, and arguments from educational content
|
|
23
|
+
- User needs transcripts from YouTube videos for analysis
|
|
24
|
+
- User asks to "summarize", "resume", or "extract content" from YouTube videos
|
|
25
|
+
- User wants comprehensive documentation prioritizing completeness over brevity
|
|
26
|
+
|
|
27
|
+
## Step 0: Discovery & Setup
|
|
28
|
+
|
|
29
|
+
Before processing videos, validate the environment and dependencies:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Check if youtube-transcript-api is installed
|
|
33
|
+
~/.venvs/youtube-summarizer/bin/python3 -c "import youtube_transcript_api" 2>/dev/null
|
|
34
|
+
if [ $? -ne 0 ]; then
|
|
35
|
+
echo "⚠️ youtube-transcript-api not found"
|
|
36
|
+
# Offer to install
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Check Python availability
|
|
40
|
+
if ! command -v python3 &>/dev/null; then
|
|
41
|
+
echo "❌ Python 3 is required but not installed"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Check Groq key (resumo sem tokens Claude)
|
|
46
|
+
if [ -z "$GROQ_API_KEY" ]; then
|
|
47
|
+
echo "⚠️ GROQ_API_KEY não definido — resumo usará Claude (gasta tokens)"
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# Check faster-whisper (fallback para vídeos sem legenda)
|
|
51
|
+
python3 -c "import faster_whisper" 2>/dev/null || echo "⚠️ faster-whisper não instalado (necessário só para vídeos sem legenda)"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Fallback: Vídeo sem legenda → faster-whisper tiny
|
|
55
|
+
|
|
56
|
+
Se o Step 2 retornar `TranscriptsDisabled` ou `NoTranscriptFound`, usar áudio local:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Baixar áudio do vídeo
|
|
60
|
+
python3 -m yt_dlp -x --audio-format mp3 -o /tmp/yt_audio_$VIDEO_ID.mp3 "$URL" 2>/dev/null
|
|
61
|
+
|
|
62
|
+
# Transcrever localmente com Whisper tiny (~300MB RAM, libera logo)
|
|
63
|
+
python3 -c "
|
|
64
|
+
from faster_whisper import WhisperModel
|
|
65
|
+
model = WhisperModel('tiny', device='cpu', compute_type='int8')
|
|
66
|
+
segments, info = model.transcribe('/tmp/yt_audio_$VIDEO_ID.mp3', language='pt')
|
|
67
|
+
text = ' '.join(s.text for s in segments)
|
|
68
|
+
with open('/tmp/transcript_$VIDEO_ID.txt', 'w') as f:
|
|
69
|
+
f.write(text)
|
|
70
|
+
print(f'✅ Transcrição local: {len(text)} chars')
|
|
71
|
+
"
|
|
72
|
+
# Continuar para Step 4 normalmente
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Main Workflow
|
|
76
|
+
|
|
77
|
+
### Step 1: Validate YouTube URL
|
|
78
|
+
|
|
79
|
+
Objective: Extract video ID and validate URL format.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
URL="$USER_PROVIDED_URL"
|
|
83
|
+
|
|
84
|
+
VIDEO_ID=$(echo "$URL" | cut -d 'v' -f 2 | cut -d '=' -f 2)
|
|
85
|
+
|
|
86
|
+
echo "📹 Video ID extracted: $VIDEO_ID"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Step 2: Check Video & Transcript Availability
|
|
90
|
+
|
|
91
|
+
Objective: Verify video exists and transcript is accessible.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
~/.venvs/youtube-summarizer/bin/python3 -c "
|
|
95
|
+
from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound
|
|
96
|
+
import sys
|
|
97
|
+
|
|
98
|
+
video_id = '$VIDEO_ID'
|
|
99
|
+
|
|
100
|
+
try:
|
|
101
|
+
ytt_api = YouTubeTranscriptApi()
|
|
102
|
+
transcript_list = ytt_api.list(video_id)
|
|
103
|
+
print(f'✅ Video accessible: {video_id}')
|
|
104
|
+
print('📝 Available transcripts:')
|
|
105
|
+
for transcript in transcript_list:
|
|
106
|
+
lang = transcript.language
|
|
107
|
+
lang_code = transcript.language_code
|
|
108
|
+
is_generated = ' (auto-generated)' if transcript.is_generated else ''
|
|
109
|
+
print(f' - {lang} ({lang_code}){is_generated}')
|
|
110
|
+
except TranscriptsDisabled:
|
|
111
|
+
print(f'❌ Transcripts are disabled for video {video_id}')
|
|
112
|
+
sys.exit(1)
|
|
113
|
+
except NoTranscriptFound:
|
|
114
|
+
print(f'❌ No transcript found for video {video_id}')
|
|
115
|
+
sys.exit(1)
|
|
116
|
+
except Exception as e:
|
|
117
|
+
print(f'❌ Error accessing video: {e}')
|
|
118
|
+
sys.exit(1)
|
|
119
|
+
"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Step 3: Extract Transcript
|
|
123
|
+
|
|
124
|
+
Objective: Retrieve transcript in preferred language.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
~/.venvs/youtube-summarizer/bin/python3 -c "
|
|
128
|
+
from youtube_transcript_api import YouTubeTranscriptApi
|
|
129
|
+
import sys
|
|
130
|
+
|
|
131
|
+
video_id = '$VIDEO_ID'
|
|
132
|
+
|
|
133
|
+
try:
|
|
134
|
+
ytt_api = YouTubeTranscriptApi()
|
|
135
|
+
transcript_list = ytt_api.list(video_id)
|
|
136
|
+
transcript_obj = transcript_list.find_transcript(['en'])
|
|
137
|
+
|
|
138
|
+
# Fetch the actual transcript data
|
|
139
|
+
transcript_data = transcript_obj.fetch()
|
|
140
|
+
|
|
141
|
+
full_text = ' '.join([entry.text for entry in transcript_data])
|
|
142
|
+
|
|
143
|
+
with open(f'/tmp/transcript_{video_id}.txt', 'w') as f:
|
|
144
|
+
f.write(full_text)
|
|
145
|
+
|
|
146
|
+
print(f'✅ Transcript extracted successfully. Length: {len(full_text)} characters.')
|
|
147
|
+
|
|
148
|
+
except Exception as e:
|
|
149
|
+
print(f'❌ Error extracting transcript: {e}')
|
|
150
|
+
sys.exit(1)
|
|
151
|
+
"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Step 4: Generate Comprehensive Summary
|
|
155
|
+
|
|
156
|
+
Objective: Resumir transcript via Groq (zero tokens Claude). Fallback para Claude Haiku se Groq falhar.
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
TRANSCRIPT=$(cat /tmp/transcript_$VIDEO_ID.txt)
|
|
160
|
+
CHAR_COUNT=${#TRANSCRIPT}
|
|
161
|
+
|
|
162
|
+
PROMPT="Você é um assistente de análise de conteúdo. Resuma o seguinte transcript de vídeo em português, usando o framework STAR+RISE:
|
|
163
|
+
|
|
164
|
+
**SITUAÇÃO:** contexto e cenário apresentado
|
|
165
|
+
**TAREFA/PROBLEMA:** o que o autor está resolvendo
|
|
166
|
+
**AÇÃO:** métodos, argumentos e pontos principais
|
|
167
|
+
**RESULTADO:** conclusões e aprendizados
|
|
168
|
+
|
|
169
|
+
**INSIGHTS:** 3-5 insights acionáveis
|
|
170
|
+
**IMPLICAÇÕES:** impacto prático
|
|
171
|
+
**SÍNTESE:** 1 parágrafo resumindo tudo
|
|
172
|
+
**EXTRAPOLAÇÃO:** como aplicar isso
|
|
173
|
+
|
|
174
|
+
Transcript:
|
|
175
|
+
$TRANSCRIPT"
|
|
176
|
+
|
|
177
|
+
# Groq: zero tokens Claude, free tier generoso (500k tokens/dia)
|
|
178
|
+
GROQ_RESPONSE=$(curl -s https://api.groq.com/openai/v1/chat/completions \
|
|
179
|
+
-H "Authorization: Bearer $GROQ_API_KEY" \
|
|
180
|
+
-H "Content-Type: application/json" \
|
|
181
|
+
-d "{
|
|
182
|
+
\"model\": \"llama-3.3-70b-versatile\",
|
|
183
|
+
\"messages\": [{\"role\": \"user\", \"content\": $(echo "$PROMPT" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read()))')}],
|
|
184
|
+
\"max_tokens\": 2048
|
|
185
|
+
}" 2>/dev/null)
|
|
186
|
+
|
|
187
|
+
GROQ_CONTENT=$(echo "$GROQ_RESPONSE" | python3 -c "
|
|
188
|
+
import sys, json
|
|
189
|
+
try:
|
|
190
|
+
d = json.load(sys.stdin)
|
|
191
|
+
print(d['choices'][0]['message']['content'])
|
|
192
|
+
except:
|
|
193
|
+
print('')
|
|
194
|
+
" 2>/dev/null)
|
|
195
|
+
|
|
196
|
+
if [ -n "$GROQ_CONTENT" ]; then
|
|
197
|
+
echo "$GROQ_CONTENT" > /tmp/summary_$VIDEO_ID.txt
|
|
198
|
+
echo "✅ Resumo gerado via Groq (zero tokens Claude)"
|
|
199
|
+
else
|
|
200
|
+
# Fallback: Claude lê o arquivo diretamente
|
|
201
|
+
echo "⚠️ Groq indisponível — passando transcript para Claude"
|
|
202
|
+
echo "Leia /tmp/transcript_$VIDEO_ID.txt e gere resumo STAR+RISE em PT-BR"
|
|
203
|
+
fi
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Routing:**
|
|
207
|
+
- Groq disponível → resumo local, zero tokens Claude
|
|
208
|
+
- Groq falhar (sem key, quota, erro) → Claude lê transcript e resume
|
|
209
|
+
- Transcript > 12k chars → Claude Haiku preferível para contexto longo
|
|
210
|
+
|
|
211
|
+
### Step 5: Format and Present Output
|
|
212
|
+
|
|
213
|
+
Objective: Deliver the summary in clean, well-structured Markdown.
|
|
214
|
+
|
|
215
|
+
```markdown
|
|
216
|
+
# [Video Title]
|
|
217
|
+
|
|
218
|
+
**Canal:** [Channel Name]
|
|
219
|
+
**URL:** [https://youtube.com/watch?v=VIDEO_ID]
|
|
220
|
+
|
|
221
|
+
## 📝 Detailed Summary
|
|
222
|
+
[...Summary goes here...]
|
|
223
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Squads
|
|
2
|
+
|
|
3
|
+
Times de agentes pra **pensar estratégia** com o dono do negócio.
|
|
4
|
+
Cada pasta é um time com papéis (personas), tarefas e às vezes workflows.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Os 3 squads
|
|
9
|
+
|
|
10
|
+
### 1. `advisory-board/` — Conselho de decisão
|
|
11
|
+
|
|
12
|
+
**Pra que serve:** simular um board de conselheiros quando você tem uma **decisão difícil** ou quer ângulos diferentes antes de escolher o caminho.
|
|
13
|
+
|
|
14
|
+
**Serve pra:**
|
|
15
|
+
- “Vendo o negócio ou não?”
|
|
16
|
+
- “Contrato time ou fico solo?”
|
|
17
|
+
- “Pivoto o produto / o preço / o ICP?”
|
|
18
|
+
- Qualquer trade-off onde ouvir só uma voz é perigoso
|
|
19
|
+
|
|
20
|
+
**Não serve pra:** execução tática isolada (campanha pontual, logo, entrega operacional).
|
|
21
|
+
|
|
22
|
+
**Quem está no time (resumo):** orquestrador `board-chair` + vozes tipo Dalio (princípios), Munger (modelos mentais), Naval (first principles / riqueza), Thiel (contrarian), Hoffman (escala), Sinek (porquê), Brené Brown (coragem), Lencioni (time), Sivers (minimalismo), Chouinard (missão).
|
|
23
|
+
|
|
24
|
+
**Como começar:** leia `advisory-board/README.md`.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### 2. `brand/` — Marca e posicionamento
|
|
29
|
+
|
|
30
|
+
**Pra que serve:** construir ou consertar a **marca** — o que você é no mercado, como se diferencia, nome, identidade verbal/visual, consistência.
|
|
31
|
+
|
|
32
|
+
**Serve pra:**
|
|
33
|
+
- Marca do zero (negócio ou produto novo)
|
|
34
|
+
- Reposicionar o que já existe
|
|
35
|
+
- Auditoria de marca (o que está fraco / genérico)
|
|
36
|
+
- Naming e voz
|
|
37
|
+
- Direção de identidade visual / brand book (depois grava resumo em `marca/`)
|
|
38
|
+
|
|
39
|
+
**Não serve pra:** peça avulsa de marketing sem trabalho de marca por trás.
|
|
40
|
+
|
|
41
|
+
**Quem está no time (resumo):** `brand-chief` orquestra; frameworks no estilo Neumeier (estratégia), Dunford (posicionamento), Watkins (naming), Johnson / Haviv (visual e logo), Heyward (movimento de marca).
|
|
42
|
+
|
|
43
|
+
**Como começar:** leia `brand/README.md`.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### 3. `hormozi-squad/` — Oferta, leads e crescimento
|
|
48
|
+
|
|
49
|
+
**Pra que serve:** aplicar frameworks de **oferta e monetização** (estilo Hormozi): o que vender, por quanto, como gerar lead e fechar.
|
|
50
|
+
|
|
51
|
+
**Serve pra:**
|
|
52
|
+
- Desenhar ou melhorar a oferta (value equation, stack, garantia)
|
|
53
|
+
- Pricing e ticket
|
|
54
|
+
- Geração de leads e funil comercial
|
|
55
|
+
- Scripts de close / workshop / lançamento
|
|
56
|
+
- Diagnóstico de negócio “por que não vende”
|
|
57
|
+
|
|
58
|
+
**Não serve pra:** identidade de marca completa (isso é `brand/`) nem decisão genérica de vida (isso é `advisory-board/`).
|
|
59
|
+
|
|
60
|
+
**Quem está no time (resumo):** `hormozi-chief` + especialidades em offers, pricing, leads, closer, ads, hooks, launch, retention, scale, audit, etc.
|
|
61
|
+
|
|
62
|
+
**Como começar:** leia `hormozi-squad/README.md`.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Qual usar?
|
|
67
|
+
|
|
68
|
+
| Situação | Squad |
|
|
69
|
+
|----------|--------|
|
|
70
|
+
| Não sei se faço A ou B | `advisory-board` |
|
|
71
|
+
| Ninguém entende o que eu vendo / marca fraca | `brand` |
|
|
72
|
+
| Oferta fraca, preço confuso, não fecha | `hormozi-squad` |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Como um squad funciona
|
|
77
|
+
|
|
78
|
+
1. O user pede algo que encaixa em um dos três.
|
|
79
|
+
2. O agente abre a pasta do squad e o `README.md` de lá.
|
|
80
|
+
3. Usa os agentes/tasks da pasta (não inventa time paralelo).
|
|
81
|
+
4. Devolve algo **útil e curto** (decisão, canvas, oferta) — não um romance.
|
|
82
|
+
5. Se mudou marca/oferta de verdade, oferece gravar em `_memoria/` ou `marca/`.
|
|
83
|
+
|
|
84
|
+
Detalhe de cada agente e workflow mora **dentro** da pasta do squad.
|
|
@@ -8,8 +8,7 @@ Este squad é **consultoria de oferta / leads / crescimento** (frameworks Hormoz
|
|
|
8
8
|
| Pedido do user | O que fazer |
|
|
9
9
|
|----------------|-------------|
|
|
10
10
|
| “melhora minha oferta”, “roda hormozi” | Diagnóstico/estratégia em 1 página (`conteudo/` ou chat) |
|
|
11
|
-
| “posta
|
|
12
|
-
| “publica sozinho” | Recusar sem integração real |
|
|
11
|
+
| “publica sozinho” / “posta no IG” | Fora do escopo deste squad |
|
|
13
12
|
|
|
14
13
|
## Quick start (avançado)
|
|
15
14
|
|