AI Meeting Skill

Ejecuta revisiones de decisión multiagente estructuradas con Codex, Claude Code y agentes CLI basados en adaptadores.

Documentación

AI Meeting Skill

English | 中文

ai-meeting es una habilidad de agente portátil basada en SKILL.md para reuniones multiagente estructuradas. Ayuda a Codex, Claude Code y otros agentes con capacidades CLI a revisar planes, ideas de productos, diseños técnicos, propuestas de implementación y decisiones arriesgadas en múltiples roles.

La habilidad ejecuta un orquestador local que:

  • crea un registro de reunión bajo meetings/<id>/
  • inyecta el resumen y los materiales controlados en el prompt de cada agente
  • conserva los IDs de sesión del proveedor cuando están disponibles
  • ejecuta rondas de análisis independiente y cuestionamiento cruzado
  • escribe un informe final de decisiones en Markdown con procedencia

Estado

  • Proveedores principales: Codex y Claude Code.
  • Proveedor opcional compatible: qoderclicn (Qoder CLI CN).
  • Proveedores experimentales: Qoder, OpenCode, Cursor, Gemini y Hermes se incluyen como adaptadores opcionales. El proyecto no bloquea otras herramientas de agente por marca; cualquier agente CLI puede participar una vez que su adaptador de proveedor informe autenticación utilizable, transporte de prompts, manejo de sesiones y límites de permisos a través de doctor.
  • Carpeta/nombre de la habilidad: ai-meeting.
  • Nombre para mostrar: AI Meeting.

Instalación

Opción A: Pídele a tu agente que la instale

Copia esto en Codex:

Install the ai-meeting skill from this GitHub repository:
https://github.com/bin1874/ai-meeting-skill

Opción B: Instalar en Claude Code como plugin

En Claude Code, ejecuta:

/plugin marketplace add bin1874/ai-meeting-skill
/plugin install ai-meeting@ai-meeting-skill

El marketplace apunta a la carpeta de habilidades ai-meeting/ del repositorio.

Opción C: Pídele a Claude Code que la instale

Copia esto en Claude Code:

Install the ai-meeting skill from this GitHub repository:
https://github.com/bin1874/ai-meeting-skill

Si tu agente admite instalar habilidades directamente desde una URL de GitHub, la única entrada que necesita es:

https://github.com/bin1874/ai-meeting-skill

Opción D: Instalación manual

Clona el repositorio:

git clone git@github.com:bin1874/ai-meeting-skill.git
cd ai-meeting-skill

Instala para Codex:

mkdir -p ~/.codex/skills
ln -s "$(pwd)/ai-meeting" ~/.codex/skills/ai-meeting

Instala para Claude Code:

mkdir -p ~/.claude/skills
ln -s "$(pwd)/ai-meeting" ~/.claude/skills/ai-meeting

Si tu host no admite habilidades con enlace simbólico, copia la carpeta en su lugar:

cp -R ai-meeting ~/.codex/skills/ai-meeting
# or
cp -R ai-meeting ~/.claude/skills/ai-meeting

Comprueba los proveedores disponibles:

node ai-meeting/scripts/ai-meeting.mjs doctor --json

Cómo usar la habilidad en el chat

Después de la instalación, pídele a tu agente anfitrión que use la habilidad:

Use the ai-meeting skill to organize Codex and Claude to review this feature plan. Run two rounds and produce a final decision report.

También puedes solicitar un conjunto específico de agentes:

Use ai-meeting with builder:codex, critic:claude, architect:codex. Evaluate whether we should ship this design.

qoderclicn también puede participar explícitamente:

Use ai-meeting with builder:codex, critic:claude, architect:qoderclicn. Evaluate whether we should ship this design.

Ejemplos de CLI copiables

Consulta docs/example-final-report.md para ver un ejemplo abreviado de informe final.

Ejemplo 1: Revisión rápida de decisión de producto

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"

Abre el informe final:

sed -n '1,220p' "$MEETING_DIR/synthesis/final.md"

Ejemplo 2: Revisar un documento de desarrollo con materiales

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"

Los materiales se copian en el directorio de la reunión y se inyectan en los prompts como bloques de datos no confiables. Los materiales grandes se marcan con truncatedForPrompt=true; el informe final debe tratar eso como una brecha de evidencia.

Ejemplo 3: Previsualizar 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 escribe prompts de previsualización bajo dry-run/ y no modifica el estado oficial de la ronda.

Ejemplo 4: Continuar una reunión con una tercera ronda

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"

Ejemplo 5: Usar Claude como juez final

node ai-meeting/scripts/ai-meeting.mjs synthesize \
  --meeting-dir "$MEETING_DIR" \
  --provider claude

Diseño de salida

meetings/<id>/
  brief.md
  materials/
  state.json
  rounds/
  synthesis/
    round-1-summary.md
    round-2-summary.md
    final.md

Si la síntesis devuelve un informe inválido, el orquestador escribe synthesis/final.draft.md, registra las secciones faltantes en state.json y no escribe el final.md oficial.

Modelo de seguridad

  • Los agentes hijos no pueden ejecutar ai-meeting de forma recursiva.
  • Codex usa por defecto una configuración de sandbox de solo lectura.
  • Claude Code usa por defecto --safe-mode y sin herramientas.
  • qoderclicn se ejecuta sin herramientas, con una configuración MCP vacía y solo ajustes de usuario.
  • El directorio de trabajo de los agentes hijos es un espacio de trabajo de caché externo aislado por agente derivado de la ruta de la reunión, no de la raíz del proyecto ni del directorio de la reunión.
  • Crear una reunión restablece la caché del espacio de trabajo del agente hijo externo para esa ruta de reunión, para evitar estado obsoleto del directorio de trabajo del proveedor.
  • Los resúmenes, materiales, resultados de pares y salidas del modelo se tratan como datos no confiables.
  • state.json se escribe atómicamente.
  • Los artefactos oficiales se escriben con permisos de archivo 0600 solo para el propietario.
  • Los IDs de sesión se redactan en stdout y se omiten en la procedencia del informe final.
  • La disponibilidad del proveedor la deciden las comprobaciones de doctor de cada adaptador. Las nuevas herramientas de agente son bienvenidas a través de adaptadores de proveedor, pero los adaptadores deben informar honestamente la autenticación, el transporte de prompts, el manejo de sesiones y los límites de permisos.

Pruebas

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

Licencia

MIT