AI Meeting Skill
Execute revisões de decisão multiagente estruturadas com Codex, Claude Code e agentes CLI baseados em adaptadores.
Documentação
AI Meeting Skill
Inglês | 中文
ai-meeting é uma skill de agente portátil baseada em SKILL.md para reuniões multiagentes estruturadas. Ela ajuda Codex, Claude Code e outros agentes com capacidade de CLI a revisar planos, ideias de produtos, designs técnicos, propostas de implementação e decisões arriscadas em múltiplos papéis.
A skill executa um orquestrador local que:
- cria um registro de reunião em
meetings/<id>/ - injeta o briefing e os materiais controlados no prompt de cada agente
- preserva os IDs de sessão do provedor quando disponíveis
- executa rodadas independentes de análise e questionamento cruzado
- grava um relatório final de decisão em Markdown com proveniência
Status
- Provedores principais: Codex e Claude Code.
- Provedor opcional suportado: qoderclicn (Qoder CLI CN).
- Provedores experimentais: Qoder, OpenCode, Cursor, Gemini e Hermes são incluídos como adaptadores opcionais. O projeto não bloqueia outras ferramentas de agente por marca; qualquer agente CLI pode participar desde que seu adaptador de provedor reporte autenticação utilizável, transporte de prompt, gerenciamento de sessão e limites de permissão por meio de
doctor. - Pasta/nome da skill:
ai-meeting. - Nome de exibição:
AI Meeting.
Instalação
Opção A: Peça ao Seu Agente Para Instalá-la
Copie isto no Codex:
Install the ai-meeting skill from this GitHub repository:
https://github.com/bin1874/ai-meeting-skill
Opção B: Instalar no Claude Code Como Plugin
No Claude Code, execute:
/plugin marketplace add bin1874/ai-meeting-skill
/plugin install ai-meeting@ai-meeting-skill
O marketplace aponta para a pasta de skill ai-meeting/ do repositório.
Opção C: Peça ao Claude Code Para Instalá-la
Copie isto no Claude Code:
Install the ai-meeting skill from this GitHub repository:
https://github.com/bin1874/ai-meeting-skill
Se o seu agente suportar instalação de skills diretamente de uma URL do GitHub, a única entrada que ele precisa é:
https://github.com/bin1874/ai-meeting-skill
Opção D: Instalação Manual
Clone o repositório:
git clone git@github.com:bin1874/ai-meeting-skill.git
cd ai-meeting-skill
Instale para Codex:
mkdir -p ~/.codex/skills
ln -s "$(pwd)/ai-meeting" ~/.codex/skills/ai-meeting
Instale para Claude Code:
mkdir -p ~/.claude/skills
ln -s "$(pwd)/ai-meeting" ~/.claude/skills/ai-meeting
Se o seu host não suportar skills com link simbólico, copie a pasta em vez disso:
cp -R ai-meeting ~/.codex/skills/ai-meeting
# or
cp -R ai-meeting ~/.claude/skills/ai-meeting
Verifique os provedores disponíveis:
node ai-meeting/scripts/ai-meeting.mjs doctor --json
Como Usar a Skill no Chat
Após a instalação, peça ao seu agente host para usar a skill:
Use the ai-meeting skill to organize Codex and Claude to review this feature plan. Run two rounds and produce a final decision report.
Você também pode solicitar um conjunto específico de agentes:
Use ai-meeting with builder:codex, critic:claude, architect:codex. Evaluate whether we should ship this design.
O qoderclicn também pode participar explicitamente:
Use ai-meeting with builder:codex, critic:claude, architect:qoderclicn. Evaluate whether we should ship this design.
Exemplos de CLI Copiáveis
Consulte docs/example-final-report.md para um exemplo abreviado de relatório final.
Exemplo 1: Revisão Rápida de Decisão de Produto
cat > /tmp/ai-meeting-brief.md <<'EOF'
# Decision
Should we add team workspaces to the app in the next release?
# Context
- Users currently share one personal workspace.
- Enterprise prospects ask for shared projects and role-based access.
- The team has two weeks before feature freeze.
# Evaluation Criteria
- Real user value
- Implementation cost
- Security and permission risk
- Whether a smaller MVP exists
EOF
MEETING_DIR=$(node ai-meeting/scripts/ai-meeting.mjs create \
--topic "Team workspaces release decision" \
--brief-file /tmp/ai-meeting-brief.md \
--agents builder:codex,critic:claude,architect:codex \
| tee /tmp/ai-meeting-create.json \
| node -e 'let s=""; process.stdin.on("data", d => s += d); process.stdin.on("end", () => console.log(JSON.parse(s).meetingDir));')
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 1
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 2
node ai-meeting/scripts/ai-meeting.mjs synthesize --meeting-dir "$MEETING_DIR"
Abra o relatório final:
sed -n '1,220p' "$MEETING_DIR/synthesis/final.md"
Exemplo 2: Revisar um Documento de Desenvolvimento Com Materiais
cat > /tmp/ai-meeting-brief.md <<'EOF'
# Decision
Review the proposed API redesign and decide whether it is ready for implementation.
# What To Focus On
- Developer experience
- Backward compatibility
- Migration risk
- Test coverage
- Simpler alternatives
EOF
mkdir -p /tmp/ai-meeting-materials
cat > /tmp/ai-meeting-materials/api-redesign.md <<'EOF'
# API Redesign
Replace the old `/v1/tasks` response envelope with a flatter `/v2/tasks` shape.
Support both versions for one release. Add migration warnings to SDKs.
EOF
cat > /tmp/ai-meeting-materials/migration-plan.md <<'EOF'
# Migration Plan
1. Ship `/v2/tasks` behind a beta flag.
2. Add SDK compatibility helpers.
3. Deprecate `/v1/tasks` after telemetry shows 90% migration.
EOF
MEETING_DIR=$(node ai-meeting/scripts/ai-meeting.mjs create \
--topic "API redesign readiness review" \
--brief-file /tmp/ai-meeting-brief.md \
--material README.md \
--material /tmp/ai-meeting-materials/api-redesign.md \
--material /tmp/ai-meeting-materials/migration-plan.md \
--agents builder:codex,critic:claude,user-advocate:codex,architect:claude \
| tee /tmp/ai-meeting-create.json \
| node -e 'let s=""; process.stdin.on("data", d => s += d); process.stdin.on("end", () => console.log(JSON.parse(s).meetingDir));')
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 1
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 2
node ai-meeting/scripts/ai-meeting.mjs synthesize --meeting-dir "$MEETING_DIR"
Os materiais são copiados para o diretório da reunião e injetados nos prompts como blocos de dados não confiáveis. Materiais grandes são marcados com truncatedForPrompt=true; o relatório final deve tratar isso como uma lacuna de evidência.
Exemplo 3: Pré-visualizar Prompts Antes de Gastar Tokens
cat > /tmp/ai-meeting-brief.md <<'EOF'
# Decision
Should we refactor the background job system now or defer it?
# Criteria
- Reliability improvement
- Risk of regressions
- Amount of code churn
- Operational impact
EOF
MEETING_DIR=$(node ai-meeting/scripts/ai-meeting.mjs create \
--topic "Background job refactor decision" \
--brief-file /tmp/ai-meeting-brief.md \
--material README.md \
--agents builder:codex,critic:claude,security-reliability:codex \
| tee /tmp/ai-meeting-create.json \
| node -e 'let s=""; process.stdin.on("data", d => s += d); process.stdin.on("end", () => console.log(JSON.parse(s).meetingDir));')
node ai-meeting/scripts/ai-meeting.mjs round \
--meeting-dir "$MEETING_DIR" \
--round 1 \
--dry-run
sed -n '1,220p' "$MEETING_DIR/dry-run/round-1/builder.codex.prompt.md"
--dry-run grava prompts de pré-visualização em dry-run/ e não altera o estado oficial da rodada.
Exemplo 4: Continuar uma Reunião Com uma Terceira Rodada
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 1
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 2
# Add one more cross-questioning round if the first two rounds expose unresolved disagreement.
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir "$MEETING_DIR" --round 3 --max-rounds 5
node ai-meeting/scripts/ai-meeting.mjs synthesize --meeting-dir "$MEETING_DIR"
Exemplo 5: Usar Claude Como Julgador Final
node ai-meeting/scripts/ai-meeting.mjs synthesize \
--meeting-dir "$MEETING_DIR" \
--provider claude
Estrutura de Saída
meetings/<id>/
brief.md
materials/
state.json
rounds/
synthesis/
round-1-summary.md
round-2-summary.md
final.md
Se a síntese retornar um relatório inválido, o orquestrador grava synthesis/final.draft.md, registra seções ausentes em state.json e não grava o final.md oficial.
Modelo de Segurança
- Agentes filhos não podem executar
ai-meetingrecursivamente. - Codex usa configuração de sandbox somente leitura por padrão.
- Claude Code usa
--safe-modee nenhuma ferramenta por padrão. - O qoderclicn executa sem ferramentas, com configuração MCP vazia e apenas configurações do usuário.
- O diretório de trabalho do agente filho é um workspace de cache externo isolado por agente, derivado do caminho da reunião, não da raiz do projeto nem do diretório da reunião.
- Criar uma reunião redefine o cache do workspace filho externo para aquele caminho de reunião, evitando estado obsoleto do diretório do provedor.
- Briefings, materiais, saídas de pares e saídas de modelo são tratados como dados não confiáveis.
state.jsoné gravado atomicamente.- Artefatos oficiais são gravados com permissões de arquivo
0600somente para o proprietário. - IDs de sessão são ocultados no stdout e omitidos da proveniência do relatório final.
- A disponibilidade do provedor é decidida pelas verificações de
doctorde cada adaptador. Novas ferramentas de agente são bem-vindas por meio de adaptadores de provedor, mas os adaptadores devem reportar autenticação, transporte de prompt, gerenciamento de sessão e limites de permissão honestamente.
Teste
node --check ai-meeting/scripts/ai-meeting.mjs
node --test tests/ai-meeting.test.mjs
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" ai-meeting
node ai-meeting/scripts/ai-meeting.mjs doctor --json
Licença
MIT