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-meetingde forma recursiva. - Codex usa por defecto una configuración de sandbox de solo lectura.
- Claude Code usa por defecto
--safe-modey 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.jsonse escribe atómicamente.- Los artefactos oficiales se escriben con permisos de archivo
0600solo 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
doctorde 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