brainstorming
OBobra/superpowers298k近 7 天新增 2,631 个 star
Run structured AI meetings for plans, product ideas, technical designs, business decisions, feature proposals, and strategy choices. Use when the user wants an AI meeting, AI roundtable, multi-agent discussion, debate, proposal review, plan review, decision review, or wants Codex, Claude Code, and other CLI agents to analyze a proposal across multiple expert roles, challenge assumptions, preserve per-agent sessions, and produce a final decision report with provenance. 也适用于中文场景:方案评审、多 Agent 讨论、技术路线评审、商业决策评审。
把一个方案交给多个 AI Agent 进行结构化会议评审:每个 Agent 从项目核心目标和用户价值出发独立判断,经过多轮质询与修正,最后输出可执行的 Markdown 决策报告。
第一版优先支持 Codex 和 Claude Code。Qoder、OpenCode、Cursor、Gemini 和 Hermes 已作为可选 provider adapter 注册。项目不按品牌预设封禁其他 CLI Agent 工具;任何 CLI Agent 只要 provider adapter 能通过 doctor 如实报告认证、prompt 传输、会话处理和权限边界,就可以参与会议。
--last、--continue 这类隐式续会参数作为主路径。必须显式记录并使用对应 Agent 的会话 ID。只有在问题存在明显 tradeoff、较高执行成本、多个可选路径、重要风险或需要跨视角判断时启动完整会议。简单问题直接回答。
使用脚本创建会议目录:
node ai-meeting/scripts/ai-meeting.mjs doctor
node ai-meeting/scripts/ai-meeting.mjs doctor --json --strict
node ai-meeting/scripts/ai-meeting.mjs create --topic "会议主题" --brief-file path/to/brief.md --material docs/spec.md --material README.md
如果该 skill 安装在用户技能目录中,使用当前 skill 目录下 scripts/ai-meeting.mjs 的绝对路径运行脚本。
doctor --strict 是发布门禁/隔离完整性检查:它要求默认 provider 的认证、prompt transport、工具隔离、cwd/config/sandbox 边界、smoke 状态和网络确定性都可验证。strict 失败不必然代表普通会议不可用;普通可用性以 doctor / doctor --json 的 provider 状态为准。
create --meeting-dir 遇到已有 state.json 会拒绝覆盖,除非显式传入 --force。
--brief-file 会拒绝 .env*、.ssh、.git、.pem、.key 等明显敏感材料路径,也会拒绝常见 secret 形态的内容。只有用户明确接受材料会进入 provider prompt 和本地会议 artifacts 时,才使用 --allow-sensitive-materials。
--brief-file 用来说明会议目标、决策问题和评审标准;可重复使用 --material <path> 提供要评估的开发文档、设计稿、代码片段、测试输出或 diff。材料会复制到会议目录并作为独立非可信 data block 注入每个 Agent prompt,不会让子 Agent 自由读取项目根。超过单块 prompt 预算的 material 会在 prompt 中截断,create 输出、prompt、state 和 final Provenance 都会标注;这种情况下最终报告必须把它列入证据缺口,不能声称完成了完整源码/文档审计。
默认会议目录:
meetings/<timestamp-slug>/
.gitignore
brief.md
materials/
state.json
workspaces/
rounds/
synthesis/
会议目录中的材料可能包含 session id、内部方案和模型输出,默认写入 .gitignore,不要提交。
默认角色:
builder:实现派,寻找最快可行路径和最小可用方案。critic:反对派,寻找逻辑漏洞、隐藏风险和反例。user-advocate:用户价值视角,判断是否解决真实用户问题。business-analyst:商业视角,判断 ROI、成本、增长和变现。architect:架构视角,判断复杂度、维护性、扩展性。security-reliability:安全与稳定性视角,仅技术或生产系统相关会议启用。judge:裁判,最后综合,不参与前两轮立场争论。第一版建议至少使用 3 个角色:
builder:codex
critic:claude
architect:codex
--agents 中每一项必须严格是 role:provider,不接受额外冒号或位置参数。v1 不支持同一 role 绑定多个 provider。
每个 Agent 在自己的会话里接收完整 brief、受控 materials(超预算 material 会明确标记为截断)和角色卡,独立输出:
运行:
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir meetings/<id> --round 1
默认预算上限:最多 6 个 Agent、最多 5 轮、每个 Agent 30 分钟超时。可用 --max-agents、--max-rounds、--timeout-ms 显式调整。
每个 Agent 续接自己的 session/thread,只接收本轮任务、受控 materials、其他 Agent 摘要和争议点。子 Agent 的 CLI 默认运行在该 Agent 专属的固定隔离 workspace 中,例如 workspaces/critic.claude/,不能使用项目根或会议根作为 cwd。要求回答:
运行:
node ai-meeting/scripts/ai-meeting.mjs round --meeting-dir meetings/<id> --round 2
每个正式 round 结束后,orchestrator 会写入 synthesis/round-<n>-summary.md,下一轮 prompt 会注入先前轮次摘要、该 Agent 自身历史输出和其他 Agent 的受控摘录。session 续接是优先路径,但 prompt 必须尽量自足。
由宿主 Agent 或 Judge 基于所有落盘输出生成 synthesis/final.md。必须输出:
输出模板见 references/output-template.md。
orchestrator 会先追加可信 Provenance,再校验最终报告必须包含模板中的关键章节;缺少必需章节时不会写入正式 synthesis/final.md,而是写入 synthesis/final.draft.md 并在 state.json 记录缺失章节。
Codex provider:
codex exec --json --sandbox read-only -o <tmp-output-file> -。--skip-git-repo-check。codex exec resume --json -c 'sandbox_mode="read-only"' -o <tmp-output-file> <thread_id> -。thread_id 或兼容字段。state.json 作为本地账本保存真实 session id。Claude Code provider:
claude -p --safe-mode --output-format stream-json --verbose --include-partial-messages --permission-mode dontAsk --tools ""。claude -p --resume <session_id> ...。session_id。--safe-mode 禁用项目级自定义上下文。Claude Code 当前版本的 --resume <session_id> 对 cwd/project scope 敏感,因此同一 Agent 必须跨轮复用同一隔离 cwd。Qoder provider(实验):
qodercli -p --output-format stream-json --cwd <isolated-empty-dir> --tools "" --mcp-config '{"mcpServers":{}}' --strict-mcp-config --session-id <uuid>。qodercli -p --output-format stream-json --cwd <isolated-empty-dir> --tools "" --mcp-config '{"mcpServers":{}}' --strict-mcp-config --resume <session_id>。session_id / sessionId;忽略 assistant/result 文本中的伪造 session id。is_error: true 必须记为 failed,即使进程退出码为 0。doctor 标记 auth: "missing",该 provider 不可用。registryDefault=false,直到当前 CLI 版本的 resume、禁工具、配置隔离和 smoke 测试通过。OpenCode provider(实验):
opencode run --format json --agent ai-meeting-readonly --title <title>。opencode run --format json --agent ai-meeting-readonly --session <sessionID>。sessionID 提取统一 sessionId;忽略 assistant 文本中的伪造 session id。type: "text" 且 part.type: "text" 的 part.text 作为输出;非 JSON、空输出、step_finish.reason: "error"、auth/config 错误、agent fallback 都必须记为 failed。doctor 必须检查 opencode debug agent ai-meeting-readonly;缺少只读 agent 或权限过宽时,该 provider 不可用。registryDefault=false,直到当前 CLI 版本的 stdin、resume、只读 agent、cwd 隔离和禁止 fallback smoke 测试通过。Cursor provider(实验):
agent --print --output-format stream-json --mode ask --sandbox enabled --workspace <isolated-empty-dir>。agent --print --output-format stream-json --mode ask --sandbox enabled --workspace <isolated-empty-dir> --resume <chatId>。--mode ask 和 --sandbox enabled;禁止 --force / --yolo。chatId / chat_id / session_id / sessionId 提取统一 sessionId;忽略 assistant 文本中的伪造 session id。registryDefault=false,直到当前 CLI 版本的 auth、stdin、resume、ask-mode 工具限制、sandbox 和 workspace 隔离 smoke 测试通过。Gemini provider(实验):
gemini --prompt "" --output-format stream-json --approval-mode plan --sandbox --session-id <uuid>。gemini --prompt "" --output-format stream-json --approval-mode plan --sandbox --resume <uuid>。--approval-mode plan 和 --sandbox;禁止 --yolo。registryDefault=false,直到当前 CLI 版本的 auth/tier、UUID resume、输出 schema、sandbox、policy/config 隔离和工具限制 smoke 测试通过。Hermes provider(实验):
hermes chat --query - --quiet --toolsets "" --ignore-user-config --ignore-rules --source ai-meeting --max-turns 1。--resume <session_id>,但当前不声称 persistent;没有可靠结构化 session metadata 前按 stateless 处理。--oneshot 和 --yolo。registryDefault=false,直到当前 CLI 版本的 auth/provider config、stdin、quiet 输出格式、toolset 隔离和 session metadata smoke 测试通过。Provider 细节见 references/provider-adapters.md。
所有角色 prompt 必须包含通用会议原则,不允许只在 Critic 角色里写反对要求。角色模板见 references/prompt-templates.md。
failed,不得进入最终裁决。sessionMode: "stateless",下一轮依赖自足 prompt 继续。sessionMode: "recovered",失败则记录为 failed 并进入最终 provenance。OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star