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-meeting recursivamente.
  • Codex usa configuração de sandbox somente leitura por padrão.
  • Claude Code usa --safe-mode e 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 0600 somente 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 doctor de 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