@julioventura/opensquad 0.1.17
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 +433 -0
- package/_opensquad/config/playwright.config.json +11 -0
- package/_opensquad/core/architect.agent.yaml +112 -0
- package/_opensquad/core/best-practices/_catalog.yaml +126 -0
- package/_opensquad/core/best-practices/blog-post.md +132 -0
- package/_opensquad/core/best-practices/blog-seo.md +127 -0
- package/_opensquad/core/best-practices/brand-resolution-checklist.md +172 -0
- package/_opensquad/core/best-practices/copywriting.md +441 -0
- package/_opensquad/core/best-practices/data-analysis.md +401 -0
- package/_opensquad/core/best-practices/email-newsletter.md +118 -0
- package/_opensquad/core/best-practices/email-sales.md +110 -0
- package/_opensquad/core/best-practices/image-design.md +348 -0
- package/_opensquad/core/best-practices/instagram-feed.md +235 -0
- package/_opensquad/core/best-practices/instagram-reels.md +112 -0
- package/_opensquad/core/best-practices/instagram-stories.md +107 -0
- package/_opensquad/core/best-practices/linkedin-article.md +116 -0
- package/_opensquad/core/best-practices/linkedin-post.md +121 -0
- package/_opensquad/core/best-practices/researching.md +349 -0
- package/_opensquad/core/best-practices/review.md +269 -0
- package/_opensquad/core/best-practices/run-recovery.md +61 -0
- package/_opensquad/core/best-practices/social-networks-publishing.md +327 -0
- package/_opensquad/core/best-practices/squad-creation-checklist.md +32 -0
- package/_opensquad/core/best-practices/strategist.md +344 -0
- package/_opensquad/core/best-practices/technical-writing.md +365 -0
- package/_opensquad/core/best-practices/twitter-post.md +105 -0
- package/_opensquad/core/best-practices/twitter-thread.md +122 -0
- package/_opensquad/core/best-practices/whatsapp-broadcast.md +107 -0
- package/_opensquad/core/best-practices/youtube-script.md +122 -0
- package/_opensquad/core/best-practices/youtube-shorts.md +112 -0
- package/_opensquad/core/defaults/youtube-video-assembly.json +84 -0
- package/_opensquad/core/prompts/build.prompt.md +613 -0
- package/_opensquad/core/prompts/design.prompt.md +606 -0
- package/_opensquad/core/prompts/discovery.prompt.md +377 -0
- package/_opensquad/core/prompts/sherlock-instagram.md +123 -0
- package/_opensquad/core/prompts/sherlock-linkedin.md +73 -0
- package/_opensquad/core/prompts/sherlock-shared.md +684 -0
- package/_opensquad/core/prompts/sherlock-twitter.md +78 -0
- package/_opensquad/core/prompts/sherlock-youtube.md +85 -0
- package/_opensquad/core/runner.pipeline.md +743 -0
- package/_opensquad/core/skills.engine.md +384 -0
- package/bin/opensquad.js +108 -0
- package/dashboard/index.html +15 -0
- package/dashboard/package-lock.json +1964 -0
- package/dashboard/package.json +28 -0
- package/dashboard/public/assets/avatars/Female1_1wave.png +0 -0
- package/dashboard/public/assets/avatars/Female1_2wave.png +0 -0
- package/dashboard/public/assets/avatars/Female1_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female1_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female2_1wave.png +0 -0
- package/dashboard/public/assets/avatars/Female2_2wave.png +0 -0
- package/dashboard/public/assets/avatars/Female2_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female2_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female3_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female3_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female3_wave.png +0 -0
- package/dashboard/public/assets/avatars/Female4_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female4_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female4_wave.png +0 -0
- package/dashboard/public/assets/avatars/Female5_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female5_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female5_wave.png +0 -0
- package/dashboard/public/assets/avatars/Female6_blink.png +0 -0
- package/dashboard/public/assets/avatars/Female6_talk.png +0 -0
- package/dashboard/public/assets/avatars/Female6_wave.png +0 -0
- package/dashboard/public/assets/avatars/Male1_1wave.png +0 -0
- package/dashboard/public/assets/avatars/Male1_2wave.png +0 -0
- package/dashboard/public/assets/avatars/Male1_blink.png +0 -0
- package/dashboard/public/assets/avatars/Male1_talk.png +0 -0
- package/dashboard/public/assets/avatars/Male2_1wave.png +0 -0
- package/dashboard/public/assets/avatars/Male2_2wave.png +0 -0
- package/dashboard/public/assets/avatars/Male2_blink.png +0 -0
- package/dashboard/public/assets/avatars/Male2_talk.png +0 -0
- package/dashboard/public/assets/avatars/Male3_blink.png +0 -0
- package/dashboard/public/assets/avatars/Male3_talk.png +0 -0
- package/dashboard/public/assets/avatars/Male3_wave.png +0 -0
- package/dashboard/public/assets/avatars/Male4_blink.png +0 -0
- package/dashboard/public/assets/avatars/Male4_talk.png +0 -0
- package/dashboard/public/assets/avatars/Male4_wave.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_black_down.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_black_down_coding-1.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_black_down_coding.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_black_up.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_white_down.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_white_down_coding-1.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_white_down_coding.png +0 -0
- package/dashboard/public/assets/desks/desktop_set_white_up.png +0 -0
- package/dashboard/public/assets/furniture/armchair_tan.png +0 -0
- package/dashboard/public/assets/furniture/armchair_tan_down.png +0 -0
- package/dashboard/public/assets/furniture/backpack_blue.png +0 -0
- package/dashboard/public/assets/furniture/backpack_red.png +0 -0
- package/dashboard/public/assets/furniture/blinds.png +0 -0
- package/dashboard/public/assets/furniture/blinds_large_closed_white.png +0 -0
- package/dashboard/public/assets/furniture/bookshelf.png +0 -0
- package/dashboard/public/assets/furniture/bookshelf_purple_tall.png +0 -0
- package/dashboard/public/assets/furniture/bulletin_board.png +0 -0
- package/dashboard/public/assets/furniture/clock.png +0 -0
- package/dashboard/public/assets/furniture/coffee_mug.png +0 -0
- package/dashboard/public/assets/furniture/coffee_mug_blue.png +0 -0
- package/dashboard/public/assets/furniture/coffee_table.png +0 -0
- package/dashboard/public/assets/furniture/coffeepot_right.png +0 -0
- package/dashboard/public/assets/furniture/coffeetable_black_horizontal.png +0 -0
- package/dashboard/public/assets/furniture/couch.png +0 -0
- package/dashboard/public/assets/furniture/couch_tan_down.png +0 -0
- package/dashboard/public/assets/furniture/cushion_blue.png +0 -0
- package/dashboard/public/assets/furniture/cushion_tan.png +0 -0
- package/dashboard/public/assets/furniture/desk_wood.png +0 -0
- package/dashboard/public/assets/furniture/fancy_rug.png +0 -0
- package/dashboard/public/assets/furniture/fancy_rug_wide.png +0 -0
- package/dashboard/public/assets/furniture/flowers1.png +0 -0
- package/dashboard/public/assets/furniture/flowers2.png +0 -0
- package/dashboard/public/assets/furniture/lamp_tan.png +0 -0
- package/dashboard/public/assets/furniture/lantern.png +0 -0
- package/dashboard/public/assets/furniture/monstera.png +0 -0
- package/dashboard/public/assets/furniture/monstera_small.png +0 -0
- package/dashboard/public/assets/furniture/picture_frame.png +0 -0
- package/dashboard/public/assets/furniture/plant1.png +0 -0
- package/dashboard/public/assets/furniture/plant2.png +0 -0
- package/dashboard/public/assets/furniture/plant3.png +0 -0
- package/dashboard/public/assets/furniture/plant_poof.png +0 -0
- package/dashboard/public/assets/furniture/plant_spindly.png +0 -0
- package/dashboard/public/assets/furniture/poster_blue.png +0 -0
- package/dashboard/public/assets/furniture/rug.png +0 -0
- package/dashboard/public/assets/furniture/succulent_blue.png +0 -0
- package/dashboard/public/assets/furniture/succulent_green.png +0 -0
- package/dashboard/public/assets/furniture/treasurechest_closed_gold.png +0 -0
- package/dashboard/public/assets/furniture/water_cooler_better.png +0 -0
- package/dashboard/public/assets/furniture/whiteboard.png +0 -0
- package/dashboard/public/assets/furniture/whiteboard_stand_graph.png +0 -0
- package/dashboard/public/assets/furniture/window_blinds_open.png +0 -0
- package/dashboard/src/App.tsx +46 -0
- package/dashboard/src/components/RunDashboardButton.tsx +92 -0
- package/dashboard/src/components/SquadCard.tsx +49 -0
- package/dashboard/src/components/SquadSelector.tsx +67 -0
- package/dashboard/src/components/StatusBadge.tsx +32 -0
- package/dashboard/src/components/StatusBar.tsx +116 -0
- package/dashboard/src/hooks/useSquadSocket.ts +135 -0
- package/dashboard/src/lib/formatTime.ts +16 -0
- package/dashboard/src/lib/normalizeState.ts +25 -0
- package/dashboard/src/main.tsx +10 -0
- package/dashboard/src/office/AgentSprite.ts +241 -0
- package/dashboard/src/office/OfficeScene.ts +153 -0
- package/dashboard/src/office/PhaserGame.tsx +80 -0
- package/dashboard/src/office/RoomBuilder.ts +190 -0
- package/dashboard/src/office/assetKeys.ts +150 -0
- package/dashboard/src/office/palette.ts +32 -0
- package/dashboard/src/plugin/squadWatcher.ts +397 -0
- package/dashboard/src/store/useSquadStore.ts +56 -0
- package/dashboard/src/styles/globals.css +36 -0
- package/dashboard/src/types/state.ts +63 -0
- package/dashboard/src/vite-env.d.ts +1 -0
- package/dashboard/tsconfig.json +24 -0
- package/dashboard/vite.config.ts +13 -0
- package/package.json +59 -0
- package/public/sfx/slide-transition-sfx.mp3 +0 -0
- package/skills/README.md +84 -0
- package/skills/apify/SKILL.md +55 -0
- package/skills/blotato/SKILL.md +63 -0
- package/skills/canva/SKILL.md +60 -0
- package/skills/higgsfield/SKILL.md +147 -0
- package/skills/image-ai-generator/SKILL.md +124 -0
- package/skills/image-ai-generator/scripts/generate.py +175 -0
- package/skills/image-creator/SKILL.md +166 -0
- package/skills/image-creator/editorial-slide-template.js +645 -0
- package/skills/image-fetcher/SKILL.md +91 -0
- package/skills/imgbb-uploader/SKILL.md +73 -0
- package/skills/imgbb-uploader/scripts/upload.js +125 -0
- package/skills/instagram-publisher/README.md +36 -0
- package/skills/instagram-publisher/SKILL.md +231 -0
- package/skills/instagram-publisher/scripts/publish-playwright.js +418 -0
- package/skills/instagram-publisher/scripts/publish.js +521 -0
- package/skills/opensquad-agent-creator/SKILL.md +192 -0
- package/skills/opensquad-skill-creator/SKILL.md +420 -0
- package/skills/opensquad-skill-creator/agents/analyzer.md +274 -0
- package/skills/opensquad-skill-creator/agents/comparator.md +202 -0
- package/skills/opensquad-skill-creator/agents/grader.md +223 -0
- package/skills/opensquad-skill-creator/assets/eval_review.html +146 -0
- package/skills/opensquad-skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/opensquad-skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/opensquad-skill-creator/references/schemas.md +430 -0
- package/skills/opensquad-skill-creator/references/skill-format.md +235 -0
- package/skills/opensquad-skill-creator/scripts/__init__.py +0 -0
- package/skills/opensquad-skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/opensquad-skill-creator/scripts/quick_validate.py +103 -0
- package/skills/opensquad-skill-creator/scripts/run_eval.py +310 -0
- package/skills/opensquad-skill-creator/scripts/utils.py +47 -0
- package/skills/pdf-extractor/SKILL.md +57 -0
- package/skills/pdf-extractor/scripts/extract.py +82 -0
- package/skills/resend/SKILL.md +80 -0
- package/skills/run-dashboard/README.md +93 -0
- package/skills/run-dashboard/SKILL.md +173 -0
- package/skills/run-dashboard/scripts/finalize-state.js +273 -0
- package/skills/run-dashboard/scripts/generate.js +1296 -0
- package/skills/run-dashboard/scripts/serve.js +135 -0
- package/skills/run-dashboard/templates/run-dashboard-simple.template.html +191 -0
- package/skills/run-dashboard/templates/run-dashboard.template.html +1164 -0
- package/skills/smtp-sender/SKILL.md +88 -0
- package/skills/smtp-sender/scripts/send.js +478 -0
- package/skills/template-designer/SKILL.md +201 -0
- package/skills/template-designer/base-templates/model-a.html +27 -0
- package/skills/template-designer/base-templates/model-b.html +31 -0
- package/skills/template-designer/base-templates/model-c.html +42 -0
- package/skills/youtube-publisher/SKILL.md +232 -0
- package/skills/youtube-publisher/scripts/publish.js +2078 -0
- package/src/agents-cli.js +158 -0
- package/src/agents.js +134 -0
- package/src/i18n.js +48 -0
- package/src/init.js +442 -0
- package/src/locales/en.json +79 -0
- package/src/locales/es.json +78 -0
- package/src/locales/pt-BR.json +78 -0
- package/src/logger.js +38 -0
- package/src/prompt.js +46 -0
- package/src/readme/README.md +146 -0
- package/src/runs.js +318 -0
- package/src/skills-cli.js +157 -0
- package/src/skills.js +146 -0
- package/src/supabase-cli.js +584 -0
- package/src/update.js +169 -0
- package/templates/_opensquad/.opensquad-version +1 -0
- package/templates/_opensquad/_investigations/.gitkeep +0 -0
- package/templates/ide-templates/antigravity/.agent/rules/opensquad.md +68 -0
- package/templates/ide-templates/antigravity/.agent/workflows/opensquad.md +102 -0
- package/templates/ide-templates/claude-code/.claude/skills/opensquad/SKILL.md +182 -0
- package/templates/ide-templates/claude-code/.mcp.json +8 -0
- package/templates/ide-templates/claude-code/CLAUDE.md +57 -0
- package/templates/ide-templates/codex/.agents/skills/opensquad/SKILL.md +6 -0
- package/templates/ide-templates/codex/AGENTS.md +120 -0
- package/templates/ide-templates/cursor/.cursor/commands/opensquad.md +9 -0
- package/templates/ide-templates/cursor/.cursor/mcp.json +8 -0
- package/templates/ide-templates/cursor/.cursor/rules/opensquad.mdc +62 -0
- package/templates/ide-templates/cursor/.cursorignore +3 -0
- package/templates/ide-templates/gemini-cli/.gemini/settings.json +8 -0
- package/templates/ide-templates/gemini-cli/.gemini/skills/opensquad/SKILL.md +186 -0
- package/templates/ide-templates/gemini-cli/GEMINI.md +57 -0
- package/templates/ide-templates/opencode/.opencode/commands/opensquad.md +9 -0
- package/templates/ide-templates/opencode/AGENTS.md +120 -0
- package/templates/ide-templates/qwen-code/.qwen/settings.json +8 -0
- package/templates/ide-templates/qwen-code/.qwen/skills/opensquad/SKILL.md +182 -0
- package/templates/ide-templates/qwen-code/QWEN.md +57 -0
- package/templates/ide-templates/trae/.trae/mcp.json +8 -0
- package/templates/ide-templates/trae/.trae/rules/opensquad.md +64 -0
- package/templates/ide-templates/vscode-copilot/.github/copilot-instructions.md +59 -0
- package/templates/ide-templates/vscode-copilot/.github/prompts/opensquad.prompt.md +209 -0
- package/templates/ide-templates/vscode-copilot/.vscode/mcp.json +8 -0
- package/templates/ide-templates/vscode-copilot/.vscode/settings.json +3 -0
- package/templates/package.json +8 -0
- package/templates/squads/.gitkeep +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
# opensquad
|
|
2
|
+
|
|
3
|
+
Crie squads de agentes de IA que trabalham juntos — direto da sua IDE.
|
|
4
|
+
|
|
5
|
+
opensquad é um framework de orquestração multi-agente. Descreva o que você precisa em linguagem natural, e o opensquad cria uma equipe de agentes especializados que trabalham juntos automaticamente.
|
|
6
|
+
|
|
7
|
+
## Veja em ação
|
|
8
|
+
|
|
9
|
+
[](https://www.youtube.com/watch?v=CL1ppI4qHeU)
|
|
10
|
+
|
|
11
|
+
## O que é um Squad?
|
|
12
|
+
|
|
13
|
+
Um squad é uma equipe de agentes de IA que colaboram em uma tarefa. Cada agente tem um papel específico. Eles executam em pipeline com checkpoints onde o agente pausa e pede sua aprovação antes de continuar. Os checkpoints são instruções no pipeline do agente — o enforcement real de permissões depende da IDE host (ex: Claude Code, Cursor).
|
|
14
|
+
|
|
15
|
+
Exemplo:
|
|
16
|
+
|
|
17
|
+
- **Pesquisador** coleta informações e tendências do setor
|
|
18
|
+
- **Estrategista** gera ideias e define a abordagem
|
|
19
|
+
- **Redator** produz o conteúdo final
|
|
20
|
+
- **Designer** cria as imagens para redes sociais
|
|
21
|
+
- **Revisor** garante qualidade antes da entrega
|
|
22
|
+
|
|
23
|
+
## Para quem?
|
|
24
|
+
|
|
25
|
+
Para qualquer pessoa ou equipe que queira automatizar trabalho operacional e repetitivo com agentes de IA.
|
|
26
|
+
|
|
27
|
+
- **Criadores de conteúdo** — automatize pesquisa, redação e design para redes sociais, blogs e newsletters
|
|
28
|
+
- **Agências e freelancers** — crie pipelines reutilizáveis para atender múltiplos clientes
|
|
29
|
+
- **Times de marketing** — produza conteúdo consistente com aprovação humana nos checkpoints
|
|
30
|
+
- **Times de RH** — automatize triagem de currículos, comunicações internas e onboarding
|
|
31
|
+
- **Times de gestão** — gere relatórios, apresentações e dashboards a partir de dados brutos
|
|
32
|
+
|
|
33
|
+
## O que dá pra fazer?
|
|
34
|
+
|
|
35
|
+
- **Produção de conteúdo** — carrosséis, posts estáticos, artigos de blog, LinkedIn, com publicação automática inclusa
|
|
36
|
+
- **Refatoração de conteúdo** — transformar um vídeo em carrossel, artigo, thread ou qualquer outro formato
|
|
37
|
+
- **Criação e edição de vídeos** — cortar vídeos longos em reels, montar vídeos do zero
|
|
38
|
+
- **Análise de dados** — transformar planilhas em apresentações, sites ou dashboards
|
|
39
|
+
- **Planejamento de campanhas** — gerar roteiros, e-mails, mensagens de WhatsApp, cronogramas de lançamento, tudo de uma vez
|
|
40
|
+
- **Roteiros de vídeos longos** — VSLs, webinars, aulas
|
|
41
|
+
- **Radar de tendências** — monitorar notícias e tendências do nicho e alimentar automaticamente outros squads, como o de produção de conteúdo
|
|
42
|
+
- **Tutoriais e manuais** — o agente navega na internet, bate prints e monta um documento completo passo a passo (ideal para manuais de SaaS)
|
|
43
|
+
- E muito mais — qualquer fluxo de trabalho que envolva pesquisa, criação ou automação
|
|
44
|
+
|
|
45
|
+
## Requisitos do sistema
|
|
46
|
+
|
|
47
|
+
- **Node.js 20+** com `npm` e `npx` disponiveis no terminal
|
|
48
|
+
- **VS Code + GitHub Copilot** ou outra IDE suportada nesta tabela de compatibilidade
|
|
49
|
+
- **Git** disponivel no terminal
|
|
50
|
+
- **Acesso a internet** para provedores de IA, pesquisas web, APIs sociais, SMTP e FTP quando usados pelo squad
|
|
51
|
+
- **ffmpeg no PATH** para qualquer squad que publique no YouTube ou gere MP4/thumbnail a partir de imagens
|
|
52
|
+
|
|
53
|
+
Para slideshows de YouTube, o publisher compartilhado usa por padrão 10 segundos por slide e tenta aplicar a trilha `public/Trilha sonora de slides.mp3` com volume `0.3`, fade-in de 2 segundos e fade-out de 5 segundos.
|
|
54
|
+
|
|
55
|
+
## Padrao recomendado para squads de conteudo em slides
|
|
56
|
+
|
|
57
|
+
Para squads de noticias, carrosseis editoriais e derivados de newsletter/YouTube, o contrato operacional recomendado agora e:
|
|
58
|
+
|
|
59
|
+
- slide 1 obrigatorio de abertura usando `company.project_name`
|
|
60
|
+
- 2 a 4 slides editoriais no miolo
|
|
61
|
+
- ultimo slide obrigatorio com `SAIBA MAIS...`, fontes curtas, QR code da fonte principal e nome do projeto em destaque
|
|
62
|
+
- os canais da marca ficam por padrao em `content-package.md`, legenda, descricao do YouTube e footer da newsletter, nao dentro do canvas do slide final
|
|
63
|
+
- se uma marca ou campanha precisar exibir canais no slide final, isso deve ser tratado como override explicito, nao como default do framework
|
|
64
|
+
|
|
65
|
+
Esse padrao reduz poluicao visual, melhora a reutilizacao entre Instagram, Facebook, YouTube e newsletter e evita retrabalho por ajuste manual de layout a cada run.
|
|
66
|
+
|
|
67
|
+
Instalacao validada de `ffmpeg` no Windows:
|
|
68
|
+
|
|
69
|
+
```powershell
|
|
70
|
+
winget install --id Gyan.FFmpeg --silent --accept-package-agreements --accept-source-agreements
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Depois da instalacao, abra um novo terminal e valide:
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
where.exe ffmpeg
|
|
77
|
+
ffmpeg -version
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use como referencia a build completa do WinGet. Nao dependa de `ffmpeg.exe` embutido em outra workspace, em `node_modules` de terceiros, nem de ajuste temporario de `PATH` so na sessao atual.
|
|
81
|
+
|
|
82
|
+
## Instalação
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npx @julioventura/opensquad init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Se voce estiver desenvolvendo neste repositorio, instale tambem as dependencias locais:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm install
|
|
92
|
+
cd dashboard && npm install
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Para atualizar uma instalação existente:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npx @julioventura/opensquad update
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## IDEs Suportadas
|
|
102
|
+
|
|
103
|
+
| IDE | Status |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| Claude Code | Disponível |
|
|
106
|
+
| Cursor | Disponível |
|
|
107
|
+
| VS Code + Copilot | Disponível |
|
|
108
|
+
| Codex (OpenAI) | Disponível |
|
|
109
|
+
| Open Code | Disponível |
|
|
110
|
+
| Antigravity | Disponível |
|
|
111
|
+
| Gemini CLI | Disponível |
|
|
112
|
+
| Qwen Code | Disponível |
|
|
113
|
+
| Trae | Disponível |
|
|
114
|
+
|
|
115
|
+
## Escritório Virtual
|
|
116
|
+
|
|
117
|
+
O Escritório Virtual é uma interface visual 2D que mostra seus agentes trabalhando em tempo real.
|
|
118
|
+
|
|
119
|
+
Ele nao e o mesmo artefato que o relatorio operacional em HTML gerado ao final de cada run.
|
|
120
|
+
|
|
121
|
+
- `opensquad-dashboard-design`: skill de design e evolucao visual do app/dashboard 2D
|
|
122
|
+
- `DASHBOARD 2`: relatorio operacional da run, gerado como `run-dashboard.html` dentro da pasta de output da execucao
|
|
123
|
+
|
|
124
|
+
**Passo 1 — Rode a squad** (na sua IDE):
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
/opensquad
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Ou execute diretamente:
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
/opensquad run <nome-do-squad>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Ao final da pipeline, o runner gera automaticamente o `DASHBOARD 2` com estes arquivos dentro da run:
|
|
137
|
+
|
|
138
|
+
- `squads/<nome-do-squad>/output/<run-id>/run-dashboard.html`
|
|
139
|
+
- `squads/<nome-do-squad>/output/<run-id>/run-dashboard.data.json`
|
|
140
|
+
- `squads/<nome-do-squad>/output/<run-id>/state.json`
|
|
141
|
+
|
|
142
|
+
Em squads legadas que ainda usam a raiz de `output/`, o HTML pode ficar diretamente em `squads/<nome-do-squad>/output/run-dashboard.html`.
|
|
143
|
+
|
|
144
|
+
Se uma run for retomada manualmente e chegar ao fechamento sem o `state.json` final, o fluxo compartilhado de dashboard agora consegue reconstruir esse arquivo automaticamente a partir dos metadados da run. Tambem existe um utilitario explicito para isso:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
node --env-file=.env skills/run-dashboard/scripts/finalize-state.js --workspace-root . --run-dir "squads/<nome-do-squad>/output/<run-id>"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Para retomadas interrompidas, siga o playbook curto em `_opensquad/core/best-practices/run-recovery.md` antes de refazer publicacao, newsletter ou dashboard.
|
|
151
|
+
|
|
152
|
+
**Passo 2 — Abra localmente**:
|
|
153
|
+
|
|
154
|
+
- direto no navegador pelo arquivo `run-dashboard.html`; ou
|
|
155
|
+
- sirva a raiz do projeto localmente para navegar por URL HTTP
|
|
156
|
+
|
|
157
|
+
Exemplo no terminal, a partir de `C:\contexto\OPENSQUAD`:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
npx serve .
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Passo 3 —** Abra a URL local correspondente ao HTML da run, por exemplo:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
http://localhost:3000/squads/<nome-do-squad>/output/<run-id>/run-dashboard.html
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Criando seu Squad
|
|
170
|
+
|
|
171
|
+
Abra o menu:
|
|
172
|
+
|
|
173
|
+
```text
|
|
174
|
+
/opensquad
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
O **Opensquad** vai te mostrar todas as opções disponíveis.
|
|
178
|
+
|
|
179
|
+
Para criar um novo squad, basta selecionar a opção, e o **Arquiteto** faz algumas perguntas, projeta o squad e configura tudo automaticamente. Você aprova o design antes de qualquer execução.
|
|
180
|
+
|
|
181
|
+
## Executando um Squad
|
|
182
|
+
|
|
183
|
+
Você pode executar o squad novamente com /opensquad, ou pedindo diretamente:
|
|
184
|
+
|
|
185
|
+
```text
|
|
186
|
+
/opensquad rode o squad <nome-do-squad>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
O squad executa automaticamente, pausando nos checkpoints onde o agente pede sua aprovação.
|
|
190
|
+
|
|
191
|
+
## Exemplos
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
/opensquad
|
|
195
|
+
/opensquad crie um Squad que gera carrosséis de Instagram a partir de notícias quentes, cria as imagens e publica automaticamente
|
|
196
|
+
/opensquad quero um Squad que produz todos os materiais de lançamento de infoproduto: páginas de vendas, mensagens de WhatsApp, emails e roteiros de CPL
|
|
197
|
+
/opensquad crie um Squad que escreve tutoriais completos com prints de tela para treinamento de colaboradores
|
|
198
|
+
/opensquad crie um "Squad que pega vídeos do YouTube e gera cortes virais automaticamente"
|
|
199
|
+
/opensquad roda o squad carrosseis-instagram
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Comandos
|
|
204
|
+
|
|
205
|
+
| Comando | O que faz |
|
|
206
|
+
| --- | --- |
|
|
207
|
+
| `/opensquad` | Abre o menu principal |
|
|
208
|
+
| `/opensquad help` | Mostra todos os comandos |
|
|
209
|
+
| `/opensquad create` | Cria um novo squad |
|
|
210
|
+
| `/opensquad run <nome>` | Executa um squad |
|
|
211
|
+
| `/opensquad list` | Lista seus squads |
|
|
212
|
+
| `/opensquad edit <nome>` | Modifica um squad |
|
|
213
|
+
| `/opensquad skills` | Navega pelas skills instaladas |
|
|
214
|
+
| `/opensquad install <nome>` | Instala uma skill do catálogo |
|
|
215
|
+
| `/opensquad uninstall <nome>` | Remove uma skill instalada |
|
|
216
|
+
|
|
217
|
+
## Custo de Tokens
|
|
218
|
+
|
|
219
|
+
O opensquad é open source e gratuito como software. É possível usá-lo de forma 100% gratuita com stacks como Google Antigravity (free tier com Gemini) ou OpenCode com LLMs locais (Ollama, LM Studio, etc.).
|
|
220
|
+
|
|
221
|
+
Porém, stacks como Claude Code (Claude Pro/Max) e API da OpenAI consomem tokens pagos:
|
|
222
|
+
|
|
223
|
+
- Cada execução de squad consome tokens — a quantidade depende do número de agentes, da complexidade do pipeline e do modelo escolhido.
|
|
224
|
+
- Investigações com Sherlock (navegação de perfis) e geração de imagens são operações especialmente intensivas.
|
|
225
|
+
- O framework carrega prompts de sistema, best practices e instruções de agentes no contexto — o que contribui para o consumo base de cada execução.
|
|
226
|
+
|
|
227
|
+
Se estiver usando uma stack paga, recomendamos monitorar seu consumo de tokens na sua IDE ou no dashboard do provedor de IA.
|
|
228
|
+
|
|
229
|
+
## Sessões de Navegador e Privacidade
|
|
230
|
+
|
|
231
|
+
Quando você fornece URLs de referência durante a criação de um squad (ex: "siga o estilo do @fulano"), o opensquad usa um navegador headless (Playwright) para visitar essas páginas e extrair padrões de conteúdo.
|
|
232
|
+
|
|
233
|
+
- **Login manual:** na primeira vez que uma plataforma exige login, o opensquad pede para você entrar manualmente e **pergunta se deseja salvar a sessão** para investigações futuras.
|
|
234
|
+
- **Cookies persistentes:** se você autorizar, os cookies ficam salvos localmente em `_opensquad/_browser_profile/`. Esse diretório nunca é commitado no git (`.gitignore`).
|
|
235
|
+
- **Escopo de acesso:** o navegador tem acesso a qualquer URL — não apenas às referências fornecidas. As ações do navegador (navegação, cliques, execução de JavaScript) são controladas pelo agente investigador.
|
|
236
|
+
- **Revogar sessões:** delete a pasta `_opensquad/_browser_profile/` para remover todos os cookies e dados de sessão salvos. Na próxima investigação, um novo login manual será necessário.
|
|
237
|
+
|
|
238
|
+
## Sobre
|
|
239
|
+
|
|
240
|
+
O opensquad é um projeto open source criado e mantido por [Renato Asse](https://github.com/renatoasse), fundador da [Comunidade Sem Codar](https://semcodar.com.br), uma Escola de IA com mais de 25 mil alunos focada em ensinar pessoas não-técnicas a usar inteligência artificial no trabalho.
|
|
241
|
+
|
|
242
|
+
O projeto nasceu da necessidade real de automatizar processos de conteúdo e marketing usando agentes de IA — e é disponibilizado gratuitamente para que qualquer pessoa possa usar, estudar e contribuir.
|
|
243
|
+
|
|
244
|
+
Contribuições da comunidade são bem-vindas. Veja o [CONTRIBUTING.md](CONTRIBUTING.md) para saber como participar.
|
|
245
|
+
|
|
246
|
+
## Licença
|
|
247
|
+
|
|
248
|
+
MIT — use como quiser.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## opensquad (English)
|
|
253
|
+
|
|
254
|
+
Create AI squads that work together — right from your IDE.
|
|
255
|
+
|
|
256
|
+
opensquad is a multi-agent orchestration framework. Describe what you need in plain language, and opensquad creates a team of specialized agents that work together automatically.
|
|
257
|
+
|
|
258
|
+
## See it in action
|
|
259
|
+
|
|
260
|
+
[](https://www.youtube.com/watch?v=CL1ppI4qHeU)
|
|
261
|
+
|
|
262
|
+
## What is a Squad?
|
|
263
|
+
|
|
264
|
+
A squad is a team of AI agents that collaborate on a task. Each agent has a specific role. They run in a pipeline with checkpoints where the agent pauses and asks for your approval before continuing. Checkpoints are instructions in the agent pipeline — actual permission enforcement depends on the host IDE (e.g., Claude Code, Cursor).
|
|
265
|
+
|
|
266
|
+
Example:
|
|
267
|
+
|
|
268
|
+
- **Researcher** gathers information and industry trends
|
|
269
|
+
- **Strategist** generates ideas and defines the approach
|
|
270
|
+
- **Writer** produces the final content
|
|
271
|
+
- **Reviewer** ensures quality before delivery
|
|
272
|
+
|
|
273
|
+
## System Requirements
|
|
274
|
+
|
|
275
|
+
- **Node.js 20+** with `npm` and `npx` available in the terminal
|
|
276
|
+
- **VS Code + GitHub Copilot** or another supported AI IDE from the table below
|
|
277
|
+
- **Git** available in the terminal
|
|
278
|
+
- **Internet access** for AI providers, web research, social APIs, SMTP, and FTP when used by a squad
|
|
279
|
+
- **ffmpeg available in PATH** for any squad that publishes to YouTube or builds MP4/thumbnail assets from images
|
|
280
|
+
|
|
281
|
+
Validated Windows install for `ffmpeg`:
|
|
282
|
+
|
|
283
|
+
```powershell
|
|
284
|
+
winget install --id Gyan.FFmpeg --silent --accept-package-agreements --accept-source-agreements
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
After installation, open a new terminal and validate:
|
|
288
|
+
|
|
289
|
+
```powershell
|
|
290
|
+
where.exe ffmpeg
|
|
291
|
+
ffmpeg -version
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Prefer the full WinGet build. Do not rely on an `ffmpeg.exe` bundled inside another workspace, a third-party `node_modules` folder, or a temporary `PATH` tweak in just one shell session.
|
|
295
|
+
|
|
296
|
+
## Recommended Contract For Slide-Based Content Squads
|
|
297
|
+
|
|
298
|
+
For news squads, editorial carousels, and slide-based YouTube/newsletter flows, the shared default contract is now:
|
|
299
|
+
|
|
300
|
+
- a mandatory opening slide using `company.project_name`
|
|
301
|
+
- 2 to 4 editorial middle slides
|
|
302
|
+
- a mandatory closing slide with `SAIBA MAIS...`, short verified sources, a QR code for the primary source, and the project name highlighted on the lower band
|
|
303
|
+
- brand communication channels live by default in `content-package.md`, social captions, YouTube descriptions, and newsletter footers rather than on the closing-slide artwork
|
|
304
|
+
- if a brand needs visible channel cards on the final slide, treat that as an explicit override instead of the framework default
|
|
305
|
+
|
|
306
|
+
This keeps the artwork cleaner, makes the same content package easier to reuse across Instagram, Facebook, YouTube, and newsletter delivery, and reduces run-specific layout churn.
|
|
307
|
+
|
|
308
|
+
## Installation
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
npx @julioventura/opensquad init
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
If you are developing inside this repository, also install the local dependencies:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
npm install
|
|
318
|
+
cd dashboard && npm install
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
> **Note:** Always run your AI IDE from inside the project directory where you ran `npx @julioventura/opensquad init`. The `/opensquad` command is only available when the IDE is opened in that folder.
|
|
322
|
+
|
|
323
|
+
To update an existing installation:
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
npx @julioventura/opensquad update
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Supported IDEs
|
|
330
|
+
|
|
331
|
+
| IDE | Status |
|
|
332
|
+
| --- | --- |
|
|
333
|
+
| Claude Code | Available |
|
|
334
|
+
| Cursor | Available |
|
|
335
|
+
| VS Code + Copilot | Available |
|
|
336
|
+
| Codex (OpenAI) | Available |
|
|
337
|
+
| Open Code | Available |
|
|
338
|
+
| Antigravity | Available |
|
|
339
|
+
| Gemini CLI | Available |
|
|
340
|
+
| Qwen Code | Available |
|
|
341
|
+
| Trae | Available |
|
|
342
|
+
|
|
343
|
+
## Virtual Office
|
|
344
|
+
|
|
345
|
+
The Virtual Office is a 2D visual interface that shows your agents working in real time.
|
|
346
|
+
|
|
347
|
+
**Step 1 — Generate the dashboard** (in your IDE):
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
/opensquad dashboard
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Step 2 — Serve it locally** (in terminal):
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
npx serve squads/<squad-name>/dashboard
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Step 3 —** Open `http://localhost:3000` in your browser.
|
|
360
|
+
|
|
361
|
+
## Creating your Squad
|
|
362
|
+
|
|
363
|
+
Describe what you need:
|
|
364
|
+
|
|
365
|
+
```text
|
|
366
|
+
/opensquad create "A squad that writes LinkedIn posts about AI trends"
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
The **Architect** asks a few questions, designs the squad, and sets everything up automatically. You approve the design before any execution begins.
|
|
370
|
+
|
|
371
|
+
## Running a Squad
|
|
372
|
+
|
|
373
|
+
```text
|
|
374
|
+
/opensquad run <squad-name>
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
The squad runs automatically, pausing at checkpoints where the agent asks for your approval.
|
|
378
|
+
|
|
379
|
+
## Examples
|
|
380
|
+
|
|
381
|
+
```text
|
|
382
|
+
/opensquad create "Squad that generates Instagram carousels from trending news, creates the images, and publishes automatically"
|
|
383
|
+
/opensquad create "Squad that produces all infoproduct launch materials: sales pages, WhatsApp messages, emails, and CPL scripts"
|
|
384
|
+
/opensquad create "Squad that writes complete tutorials with screenshots for employee training"
|
|
385
|
+
/opensquad create "Squad that takes YouTube videos and automatically generates viral clips"
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Commands
|
|
389
|
+
|
|
390
|
+
| Command | What it does |
|
|
391
|
+
| --- | --- |
|
|
392
|
+
| `/opensquad` | Open the main menu |
|
|
393
|
+
| `/opensquad help` | Show all commands |
|
|
394
|
+
| `/opensquad create` | Create a new squad |
|
|
395
|
+
| `/opensquad run <name>` | Run a squad |
|
|
396
|
+
| `/opensquad list` | See all your squads |
|
|
397
|
+
| `/opensquad edit <name>` | Modify a squad |
|
|
398
|
+
| `/opensquad skills` | Browse installed skills |
|
|
399
|
+
| `/opensquad install <name>` | Install a skill from catalog |
|
|
400
|
+
| `/opensquad uninstall <name>` | Remove an installed skill |
|
|
401
|
+
|
|
402
|
+
## Token Cost
|
|
403
|
+
|
|
404
|
+
opensquad is open source and free as software. You can use it completely free with stacks like Google Antigravity (free tier with Gemini) or OpenCode with local LLMs (Ollama, LM Studio, etc.).
|
|
405
|
+
|
|
406
|
+
However, stacks like Claude Code (Claude Pro/Max) and OpenAI API consume paid tokens:
|
|
407
|
+
|
|
408
|
+
- Every squad run consumes tokens — the amount depends on the number of agents, pipeline complexity, and the model chosen.
|
|
409
|
+
- Sherlock investigations (profile browsing) and image generation are especially token-intensive operations.
|
|
410
|
+
- The framework loads system prompts, best practices, and agent instructions into context — contributing to the base token consumption of every run.
|
|
411
|
+
|
|
412
|
+
If using a paid stack, we recommend monitoring your token usage in your IDE or your AI provider's dashboard.
|
|
413
|
+
|
|
414
|
+
## Browser Sessions & Privacy
|
|
415
|
+
|
|
416
|
+
When you provide reference URLs during squad creation (e.g., "follow the style of @someone"), opensquad uses a headless browser (Playwright) to visit those pages and extract content patterns.
|
|
417
|
+
|
|
418
|
+
- **Manual login:** the first time a platform requires login, opensquad asks you to log in manually and **asks whether you want to save the session** for future investigations.
|
|
419
|
+
- **Persistent cookies:** if you agree, cookies are saved locally in `_opensquad/_browser_profile/`. This directory is never committed to git (`.gitignore`).
|
|
420
|
+
- **Access scope:** the browser can access any URL — not just the references you provided. Browser actions (navigation, clicks, JavaScript execution) are controlled by the investigator agent.
|
|
421
|
+
- **Revoking sessions:** delete the `_opensquad/_browser_profile/` folder to remove all saved cookies and session data. The next investigation will require a fresh manual login.
|
|
422
|
+
|
|
423
|
+
## About
|
|
424
|
+
|
|
425
|
+
opensquad is an open source project created and maintained by [Renato Asse](https://github.com/renatoasse), founder of [Comunidade Sem Codar](https://semcodar.com.br) (No-Code Community), an AI School with over 25,000 students focused on teaching non-technical people how to use artificial intelligence at work.
|
|
426
|
+
|
|
427
|
+
The project was born from the real need to automate content and marketing workflows using AI agents — and is made freely available so anyone can use, study, and contribute.
|
|
428
|
+
|
|
429
|
+
Community contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) to learn how to participate.
|
|
430
|
+
|
|
431
|
+
## License
|
|
432
|
+
|
|
433
|
+
MIT — use it however you want.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# SHARED — applies to ALL IDEs. Do not add IDE-specific logic here.
|
|
2
|
+
# For IDE-specific behavior: templates/ide-templates/{ide}/ only.
|
|
3
|
+
agent:
|
|
4
|
+
webskip: false
|
|
5
|
+
metadata:
|
|
6
|
+
id: "_opensquad/core/architect"
|
|
7
|
+
name: Arquiteto
|
|
8
|
+
title: Squad Architect
|
|
9
|
+
icon: 🧠
|
|
10
|
+
squad: core
|
|
11
|
+
hasSidecar: false
|
|
12
|
+
|
|
13
|
+
persona:
|
|
14
|
+
role: >
|
|
15
|
+
Squad Architecture Specialist who designs multi-agent teams and
|
|
16
|
+
automated pipelines. Translates business needs into optimized
|
|
17
|
+
squad configurations with the right agents, workflows, and skills.
|
|
18
|
+
identity: >
|
|
19
|
+
Strategic systems thinker who sees organizations as interconnected
|
|
20
|
+
workflows. Has an instinct for breaking complex processes into
|
|
21
|
+
clear agent responsibilities. Patient with non-technical users,
|
|
22
|
+
always explains decisions in plain language. Believes the best
|
|
23
|
+
squad is the simplest one that gets the job done.
|
|
24
|
+
communication_style: >
|
|
25
|
+
Clear and structured. Uses numbered lists and visual separators
|
|
26
|
+
to organize information. Asks one question at a time. Confirms
|
|
27
|
+
understanding before proceeding. Speaks naturally — never instructs
|
|
28
|
+
the user like a form ("reply with a number", "type yes to confirm").
|
|
29
|
+
Just presents options and lets the user respond however they want.
|
|
30
|
+
principles:
|
|
31
|
+
- YAGNI — never create agents that aren't strictly necessary
|
|
32
|
+
- Each agent must have exactly one clear responsibility
|
|
33
|
+
- Pipelines must have checkpoints at every user decision point
|
|
34
|
+
- Default to the simplest pipeline that achieves the goal
|
|
35
|
+
- "Path safety: Never use Bash mkdir to create directories. Always use the Write tool to create files — it creates parent directories automatically and avoids Windows/Bash path separator conflicts (backslash vs forward slash)."
|
|
36
|
+
|
|
37
|
+
discussion: true
|
|
38
|
+
|
|
39
|
+
menu:
|
|
40
|
+
- trigger: CS or fuzzy match on create-squad or create
|
|
41
|
+
description: "[CS] Create a new squad from natural language description"
|
|
42
|
+
action: create-squad
|
|
43
|
+
|
|
44
|
+
- trigger: ES or fuzzy match on edit-squad or edit or modify
|
|
45
|
+
description: "[ES] Edit an existing squad"
|
|
46
|
+
action: edit-squad
|
|
47
|
+
|
|
48
|
+
- trigger: LS or fuzzy match on list-squads or list or my squads
|
|
49
|
+
description: "[LS] List all squads"
|
|
50
|
+
action: list-squads
|
|
51
|
+
|
|
52
|
+
- trigger: DS or fuzzy match on delete-squad or delete or remove
|
|
53
|
+
description: "[DS] Delete a squad"
|
|
54
|
+
action: delete-squad
|
|
55
|
+
|
|
56
|
+
workflows:
|
|
57
|
+
create-squad: |
|
|
58
|
+
## Create Squad
|
|
59
|
+
|
|
60
|
+
The create flow is now handled by the phased orchestration system.
|
|
61
|
+
See the SKILL.md entry point for the full phased flow:
|
|
62
|
+
Discovery → Investigation → Design → Template Selection (optional) → Build
|
|
63
|
+
|
|
64
|
+
Each phase is a separate prompt in `_opensquad/core/prompts/`:
|
|
65
|
+
- `discovery.prompt.md` — Phase 1: Intelligent wizard
|
|
66
|
+
- `sherlock-*.md` — Phase 2: Investigation (optional)
|
|
67
|
+
- `design.prompt.md` — Phase 3: Squad architecture (includes optional Phase G.5: Template Selection)
|
|
68
|
+
- `build.prompt.md` — Phase 4: File generation + validation
|
|
69
|
+
|
|
70
|
+
New squads must inherit the current shared hardening already captured in `_opensquad/core/`, installed `skills/`, and relevant best-practices. Do not recreate old recovered failures as squad-local workarounds when a reusable fix already exists upstream.
|
|
71
|
+
|
|
72
|
+
The SKILL.md orchestrator dispatches each phase as a subagent.
|
|
73
|
+
|
|
74
|
+
edit-squad: |
|
|
75
|
+
## Edit Squad Workflow
|
|
76
|
+
|
|
77
|
+
1. Ask which squad to edit (list available squads if not specified).
|
|
78
|
+
If only 1 squad exists, add "Cancel" as a second option. If 0 squads, inform user directly.
|
|
79
|
+
2. Read the squad's squad.yaml to understand current structure
|
|
80
|
+
3. Ask what changes the user wants
|
|
81
|
+
4. **If the user asks to edit/define/change the visual template or identity of a design agent:**
|
|
82
|
+
- Read and follow `skills/template-designer/SKILL.md`
|
|
83
|
+
- If `template-reference.html` and `visual-identity.md` already exist in the squad's `pipeline/data/`, load them as the starting point
|
|
84
|
+
5. Modify the relevant files (agent .md files, pipeline steps, squad.yaml)
|
|
85
|
+
6. Present summary of changes
|
|
86
|
+
7. Confirm with user
|
|
87
|
+
|
|
88
|
+
list-squads: |
|
|
89
|
+
## List Squads Workflow
|
|
90
|
+
|
|
91
|
+
1. Read all directories in squads/
|
|
92
|
+
2. For each, read squad.yaml to get name, description, icon, agent count
|
|
93
|
+
3. Present as a formatted list:
|
|
94
|
+
```
|
|
95
|
+
Your Squads:
|
|
96
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
97
|
+
📋 my-squad
|
|
98
|
+
My Squad Description
|
|
99
|
+
3 agents | Last run: never
|
|
100
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
101
|
+
```
|
|
102
|
+
4. If no squads exist, suggest creating one
|
|
103
|
+
|
|
104
|
+
delete-squad: |
|
|
105
|
+
## Delete Squad Workflow
|
|
106
|
+
|
|
107
|
+
1. Ask which squad to delete (list available if not specified).
|
|
108
|
+
If only 1 squad exists, add "Cancel" as a second option. If 0 squads, inform user directly.
|
|
109
|
+
2. Show squad details (name, agents, output count)
|
|
110
|
+
3. Confirm deletion with explicit "Are you sure?" presented as a numbered list (1. Yes, delete / 2. No, cancel)
|
|
111
|
+
4. If confirmed, delete the entire squads/{code}/ directory
|
|
112
|
+
5. Confirm deletion
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Best Practices Catalog
|
|
2
|
+
# The Architect reads this file to discover which best-practices are available.
|
|
3
|
+
# Read the full file only for best-practices relevant to the squad being created.
|
|
4
|
+
|
|
5
|
+
catalog:
|
|
6
|
+
- id: squad-creation-checklist
|
|
7
|
+
name: "Squad Creation Checklist"
|
|
8
|
+
whenToUse: "Always relevant when creating a new squad. Defines the default structural contract for step design, bounded research, elastic deliverables, approval gates, and final coherence checks."
|
|
9
|
+
file: squad-creation-checklist.md
|
|
10
|
+
|
|
11
|
+
- id: brand-resolution-checklist
|
|
12
|
+
name: "Brand Resolution Checklist"
|
|
13
|
+
whenToUse: "Relevant when the workspace supports multiple brands, or when a new squad request includes dedicated channels, websites, emails, domains, handles, or brand-specific routing that could change company identity."
|
|
14
|
+
file: brand-resolution-checklist.md
|
|
15
|
+
|
|
16
|
+
# === Discipline Best Practices ===
|
|
17
|
+
- id: copywriting
|
|
18
|
+
name: "Copywriting & Persuasive Writing"
|
|
19
|
+
whenToUse: "Creating agents that write persuasive copy, hooks, CTAs, social media captions, sales content, or viral angles."
|
|
20
|
+
file: copywriting.md
|
|
21
|
+
|
|
22
|
+
- id: researching
|
|
23
|
+
name: "Research & Data Collection"
|
|
24
|
+
whenToUse: "Creating agents that research topics, collect data from the web, verify facts, or produce structured research briefs."
|
|
25
|
+
file: researching.md
|
|
26
|
+
|
|
27
|
+
- id: review
|
|
28
|
+
name: "Content Review & Quality Control"
|
|
29
|
+
whenToUse: "Creating agents that evaluate content quality, score against criteria, or produce structured APPROVE/REJECT verdicts."
|
|
30
|
+
file: review.md
|
|
31
|
+
|
|
32
|
+
- id: image-design
|
|
33
|
+
name: "Visual Design & Image Creation"
|
|
34
|
+
whenToUse: "Creating agents that design graphics, carousel slides, social media visuals, or HTML/CSS templates for rendering."
|
|
35
|
+
file: image-design.md
|
|
36
|
+
|
|
37
|
+
- id: social-networks-publishing
|
|
38
|
+
name: "Social Networks Publishing"
|
|
39
|
+
whenToUse: "Creating agents that publish content to Instagram, LinkedIn, X/Twitter, YouTube, or other social platforms."
|
|
40
|
+
file: social-networks-publishing.md
|
|
41
|
+
|
|
42
|
+
- id: strategist
|
|
43
|
+
name: "Strategy & Editorial Planning"
|
|
44
|
+
whenToUse: "Creating agents that plan content strategy, editorial calendars, competitive positioning, or audience segmentation."
|
|
45
|
+
file: strategist.md
|
|
46
|
+
|
|
47
|
+
- id: technical-writing
|
|
48
|
+
name: "Technical & Long-Form Writing"
|
|
49
|
+
whenToUse: "Creating agents that write articles, blog posts, documentation, tutorials, white papers, or educational content."
|
|
50
|
+
file: technical-writing.md
|
|
51
|
+
|
|
52
|
+
- id: data-analysis
|
|
53
|
+
name: "Data Analysis & Interpretation"
|
|
54
|
+
whenToUse: "Creating agents that interpret metrics, extract insights, benchmark performance, or produce analytical reports."
|
|
55
|
+
file: data-analysis.md
|
|
56
|
+
|
|
57
|
+
# === Platform Best Practices ===
|
|
58
|
+
- id: instagram-feed
|
|
59
|
+
name: "Instagram Feed & Carousels"
|
|
60
|
+
whenToUse: "Creating agents that produce Instagram feed posts, carousels, or static image content for Instagram."
|
|
61
|
+
file: instagram-feed.md
|
|
62
|
+
|
|
63
|
+
- id: instagram-reels
|
|
64
|
+
name: "Instagram Reels"
|
|
65
|
+
whenToUse: "Creating agents that produce Instagram Reels or short-form vertical video for Instagram."
|
|
66
|
+
file: instagram-reels.md
|
|
67
|
+
|
|
68
|
+
- id: instagram-stories
|
|
69
|
+
name: "Instagram Stories"
|
|
70
|
+
whenToUse: "Creating agents that produce Instagram Stories or ephemeral 24-hour content."
|
|
71
|
+
file: instagram-stories.md
|
|
72
|
+
|
|
73
|
+
- id: linkedin-post
|
|
74
|
+
name: "LinkedIn Post"
|
|
75
|
+
whenToUse: "Creating agents that produce LinkedIn posts, text updates, or document carousels for LinkedIn."
|
|
76
|
+
file: linkedin-post.md
|
|
77
|
+
|
|
78
|
+
- id: linkedin-article
|
|
79
|
+
name: "LinkedIn Article"
|
|
80
|
+
whenToUse: "Creating agents that produce LinkedIn articles or long-form professional content."
|
|
81
|
+
file: linkedin-article.md
|
|
82
|
+
|
|
83
|
+
- id: twitter-post
|
|
84
|
+
name: "Twitter/X Post"
|
|
85
|
+
whenToUse: "Creating agents that produce tweets, quote tweets, or single posts for X/Twitter."
|
|
86
|
+
file: twitter-post.md
|
|
87
|
+
|
|
88
|
+
- id: twitter-thread
|
|
89
|
+
name: "Twitter/X Thread"
|
|
90
|
+
whenToUse: "Creating agents that produce Twitter/X threads or multi-tweet narratives."
|
|
91
|
+
file: twitter-thread.md
|
|
92
|
+
|
|
93
|
+
- id: youtube-script
|
|
94
|
+
name: "YouTube Video Script"
|
|
95
|
+
whenToUse: "Creating agents that produce YouTube video scripts or long-form video content."
|
|
96
|
+
file: youtube-script.md
|
|
97
|
+
|
|
98
|
+
- id: youtube-shorts
|
|
99
|
+
name: "YouTube Shorts"
|
|
100
|
+
whenToUse: "Creating agents that produce YouTube Shorts or short-form vertical video for YouTube."
|
|
101
|
+
file: youtube-shorts.md
|
|
102
|
+
|
|
103
|
+
- id: email-newsletter
|
|
104
|
+
name: "Email Newsletter"
|
|
105
|
+
whenToUse: "Creating agents that produce email newsletters or recurring subscriber content."
|
|
106
|
+
file: email-newsletter.md
|
|
107
|
+
|
|
108
|
+
- id: email-sales
|
|
109
|
+
name: "Sales Email"
|
|
110
|
+
whenToUse: "Creating agents that produce sales emails, cold outreach, or direct response email campaigns."
|
|
111
|
+
file: email-sales.md
|
|
112
|
+
|
|
113
|
+
- id: blog-post
|
|
114
|
+
name: "Blog Post"
|
|
115
|
+
whenToUse: "Creating agents that produce blog posts, articles, or long-form content marketing."
|
|
116
|
+
file: blog-post.md
|
|
117
|
+
|
|
118
|
+
- id: blog-seo
|
|
119
|
+
name: "Blog Post (SEO)"
|
|
120
|
+
whenToUse: "Creating agents that produce SEO-optimized blog posts or search-targeted content."
|
|
121
|
+
file: blog-seo.md
|
|
122
|
+
|
|
123
|
+
- id: whatsapp-broadcast
|
|
124
|
+
name: "WhatsApp Broadcast"
|
|
125
|
+
whenToUse: "Creating agents that produce WhatsApp broadcast messages or conversational marketing content."
|
|
126
|
+
file: whatsapp-broadcast.md
|