Mycelium
在写第一行代码前,用四个问题把你的假设写进仓库,防止浪费时间造错东西。
- Star 数
- ★ 47
- 最近更新
- 今天
- License
- MIT
- 主语言
- Python
- FA 评分
- 61/100 · 存在缺口
30 秒速览
- 可在哪里用
- 兼容但需适配Claude CodeChatGPT · Codex(部分支持)
- 开始前需要
- 典型场景
- 个人开发者周四冒出一个想法,想先用十分钟把「为谁做、验证过没有、赌的是什么」写进仓库,再让 Agent 动手写代码。
- 主要局限
- 四个问题每个仓库只问一次,之后不再回头:作者自己指出没有任何机制在十一月提醒你复查八月的假设。
- 源码审查
- 61/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Mycelium 是一个基于 Claude Code 的产品发现插件,核心机制是把「问题、用户、假设、反证条件」四个问题前置到仓库里,并用 hook 让 Agent 必须先把理由写下来才能创建新的源文件。它按 L0 目的到 L5 市场的六层结构组织工作:上层未写明理由,下层就不允许开工,所有推理以纯 YAML 形式落在仓库中随代码一起进入 git。安装走 Claude Code 插件市场,执行 /mycelium:start 完成初始化,之后由 /plugin uninstall 卸载。据作者自述每会话常驻约六千 tokens,其余 skill 按需加载;v0.31 之前主要由作者自己的三个项目、五月一个三人测试组和一位陌生用户验证。
执行 /mycelium:start 后,插件在仓库中建立 canvas(纯 YAML),并按用户选择的深度依次抛出四个问题:问题是什么、谁有这个问题、你在假设什么、什么能证明你错了;回答结果即成为该仓库的 spec。随后 hook 生效:当 Agent 试图新建源文件而仓库中还没有任何记录时,第一源文件门会拦下它;一旦开始工作,产品构建需要上方存在已写明理由的 delivery diamond,新建文件与修改文件同样受约束,只有被标记为 prototype 的代码不受限制。它还会在把东西交到真实用户面前时要求一份触达对象记录,要求新 diamond 先声明其构建基础,在纠错文件被改动后要求 Agent 重读,并禁止 Agent 自行写入关闭这些闸门的文件。Agent 写入文件中的密钥不可被 commit 或 push。读取市场反馈的虚线从 L5 回到 L2 机会层而非顶层,用来判断下一个值得解决的问题。可通过 .claude/state/discovery-skip-ack 与 .claude/state/delivery-skip-ack 跳过相应拦截,但这两个文件必须由用户同意后写入。
- 个人开发者周四冒出一个想法,想先用十分钟把「为谁做、验证过没有、赌的是什么」写进仓库,再让 Agent 动手写代码。
- 周末用 vibe coding 快速做出原型的独立开发者,希望避免十二月才发现八月就该问的问题。
- 产品经理或产品负责人希望把 JTBD、机会解决方案树、Wardley 映射等三十多种理论落到一个可执行的插件里,而不是读三十本书。
- 团队希望让 AI 编码 Agent 在开工前必须先有书面理由,并在仓库里留下决策日志和证据强度标注(如 speculation)。
- 已经在用 opencode、Codex 或 Cursor 的开发者,想把这些 skill 与文件迁移到自己的 Agent 环境中。
- 想评估「AI 造出来的东西没人用」这一风险的人,可以直接读作者对 46 篇失败帖子的统计与仓库中的案例文档。
如何安装或部署这个 Agent?
在 Claude Code 中(需已登录)执行:
/plugin marketplace add haabe/mycelium
/plugin install mycelium@haabe-mycelium
/mycelium:start注意 marketplace id 是 haabe-mycelium。其他 Agent(opencode、Codex、Cursor)的安装路径见 docs/install-paths.md,仓库 README 未在此处展开具体命令。卸载方式为:
/plugin uninstall如何使用这个 Agent?
在一个仓库中首次执行 /mycelium:start 完成设置,之后按提示选择探索深度并回答四个问题,答案会写成 canvas 中的 YAML。示例输出结构:
why: >-
So that a vibe-coding project crashing hard stops being a private, quiet defeat
and becomes something a person takes to peers.
who:
today: >-
Unknown — not yet observed. Founder has seen rants online but has not spoken to
anyone. Founder's own behaviour (in-cohort): fixes silently, tells no one.
evidence:
validated: false
strength: speculation不想回答问题时,可把日期和说明写入跳过文件:
.claude/state/discovery-skip-ack
.claude/state/delivery-skip-ack这两个文件只有在用户同意后 Agent 才能写入。
这个 Agent 有哪些优点和局限?
- 闸门是结构性的:直接挂在 Agent 的写文件动作上,不依赖人的自觉,新源文件、交付、真实用户触达都有对应的拦截点。
- 推理随代码进 git:canvas 是纯 YAML,卸载后仍可独立阅读,能回查八月当时是有理由还是只想要一个理由。
- 理论整合度具体:把 JTBD、机会解决方案树、Wardley 映射、DORA 指标等三十多种理论接进一个插件,而不是留下书单。
- 有可验证的失败判据:作者明确给出「至少在三个真实项目上跑,如果 brief 从没改变你实际构建的东西,就说明对你没用」这一可被反驳的验收标准。
- 四个问题每个仓库只问一次,之后不再回头:作者自己指出没有任何机制在十一月提醒你复查八月的假设。
- 仍处 pre-1.0:schema 和 skill 名称会在次版本间变动,需要迁移,对需要稳定接口的团队偏早。
- 旁路存在:Agent 自己运行的脚手架或 clone 命令写入的文件不会被拦下,提交检查也只有在 setup 时选择加入才生效。
- 验证样本很小:作者自述仅三个自己的项目、五月三人测试组和一位陌生用户,缺乏独立复现的第三方证据。
- 常驻成本:作者测量每会话约六千 tokens 始终在线,其余按需加载。
这个 Agent 与同类方案有什么区别?
README 明确列出几种应改用其他方案的情形:决策已定、只求吞吐量时更适合 Paddo 的 boring agents;范围已定、只想建得更快时更适合 Addy Osmani 的 agent-skills;工作已确定、想用模型路由降低 token 账单时可看 Spotify 的 shunt(spotify/portal-ai-plugins 中的 plugins/shunt)。若所做的东西没有「做错」的风险,作者自述这套东西会像官僚流程。多人同时编辑一份 canvas 尚未支持。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mycelium 当前 | 61 · 存在缺口 | — | ★ 47 | 今天 | Python | Claude Code |
| Postiz Agent CLI | 54 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 523 | 4 天前 | TypeScript | Claude Code |
| SandBase Skills 智能体技能库 | 50 · 缺口较多 | Agent 插件 / 技能免费 + 模型费 | ★ 202 | 23 天前 | Python | Codex · Claude Code |
| YouTube Fetcher to Markdown | 83 · 表现良好 | Agent 插件 / 技能免费 | ★ 494 | 12 天前 | Python | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 明确列出各 hook 的拦截范围、跳过文件(discovery-skip-ack、delivery-skip-ack)以及 agent 不能自行关闭开关、不能提交写入文件的密钥,SECURITY.md 也声明无服务器、无账号、不收集数据,权限边界与用户确认机制有据可查,故 least_privilege/user_confirmation/data_flow_transparency/rollback 给 2。但敏感数据处理仅停留在原则声明,未见具体密钥或隐私数据的处理实现;依赖安全只有 CI 中固定 SHA 的 actions 与签名提交声明,未见依赖清单或漏洞扫描;外部效应(hook 对用户仓库的写入、git 操作)有描述但无隔离或沙箱证据;来源归属仅 README 与 CONTRIBUTORS 提及,无发布者验证,故这几项扣至 1。
auto-release.yml 与 release-audit.yml 对发布缺口、Latest 误标、失败即报错有详尽且自洽的机制说明,_assert.sh 对假绿、SIGPIPE、测试体崩溃均有防御,failure_messages 给 3。但依赖可用性仅见 actions 固定 SHA,未见插件运行时的依赖声明或版本约束;自洽性方面 README 与工作流描述一致,但缺少可核对的运行时行为证据,故给 2 与 1。
README 说明支持 Claude Code 并移植到 opencode/Codex/Cursor,给出安装路径文档,明确适用与不适用场景(决策已定、需要吞吐量时用别的工具),触发条件(新源文件、交付钻石、对外发布)描述具体,audience_and_scenarios/capability_boundaries/trigger_precision/environment_fit 均给 2。扣分点在于多 agent 移植仅以文档链接断言,未见各环境的适配代码或测试。
LICENSE 为完整 MIT,known_limitations 一节坦诚列出四问只问一次、无法回访等弱点,给 3;信息架构、安装说明、示例(vibe-rant 实录、minilisp 案例)、版本与变更日志均有,给 2。但 README 自述 pre-1.0 且 schema 与 skill 名称会随小版本变动,naming_stability 扣至 1;维护责任虽在 SECURITY.md 说明为单人维护,但发布者身份未经验证,故 maintenance_responsibility 给 2。
输出为可读的 YAML canvas 与决策日志,卸载后仍可读,output_usability 给 2;marginal_value 有真实案例(macOS 文件查看器被拦下、vibe-rant 置信度 0.15)支撑,给 2;成本约每会话六千 token 且作者自述尚未找到商业案例,cost_benefit 给 2。扣分在于效果证据主要来自作者自述与少量案例,缺少独立复现。
README 对 46 篇帖子的统计给出明确口径(floor 而非 rate)并链接完整记录,claim_traceability 给 2;fact_inference_separation 在 vibe-rant 示例中把推测标为 speculation、置信度 0.15,区分较好,给 2。但 cross_source_corroboration 仅依赖作者自有仓库与单一陌生人案例,缺少第三方独立验证,扣至 1。
- 发布者身份未经验证,安装前应自行核对来源与签名提交。
- README 自述 pre-1.0,schema 与 skill 名称会随小版本变动,团队使用需锁定版本。
- 敏感数据处理、依赖安全与外部效应仅有原则性声明,缺少可核对的实现或扫描证据。
- 效果证据主要来自作者自述与少量案例,建议按作者建议在至少三个真实项目上自行验证。
- 四问只问一次且不会回访,长期假设是否成立需用户自行复查。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.328.0 v0.328.0 - A project's scope is asked before the brief
发布说明摘录
2026-10-18. The brief flow asked its four questions and then offered a test, a prototype or "Go deeper". Whether the project is a solo hobby, a solo product or a team product was asked only inside Go deeper, so a builder who picked the test or a prototype was never asked. project_type stayed empty and every confidence bar ran at the base meant for a team shipping to strangers. On the maintainer's own hobby project (plugin 0.317.5, 2026-10-09 to 10-18) the first L0 gate noted "project_type unset, so no adaptation" and held it to …在 GitHub 查看 ↗ -
v0.327.1 v0.327.1 - The lesson-triggers fire log names the lessons
发布说明摘录
2026-10-16. The fire log 0.327.0 wrote held a time and the hook's name. That says a lesson was shown, not which one, so the real-use test the hook ships for could not tell whether the lesson behind a later repeat had been put in front of the agent. The maintainer's threat model for the hook listed this as the one thing to fix before it is switched on. What changed - Each row of .claude/state/lesson-triggers-fires.jsonl now carries a detail: the tool, and the ids of the lessons refused and shown, for example tool=Bash refused=a shown=b,c. Only the ids the agent was …在 GitHub 查看 ↗ -
v0.327.0 v0.327.0 - A lesson on record can be shown at the call it is about
发布说明摘录
2026-10-16. On the dogfood project, 86 of 96 corrections over a month repeated a lesson already written down, and the corrections file was opened in 12 of 71 sessions. Four builders outside the project describe the same thing in their own posts. A replay of the 86 repeats, against rules frozen before it read them, found that showing the matching lesson at the moment of the call reached the most of them: 31, against 14 for the checks that already existed. This release ships that, off by default, so the maintainer can test it in his own sessions first. What changed …在 GitHub 查看 ↗
常见问题
它会不会直接禁止 Agent 创建文件,把工作流卡死?
我不想回答这些问题,能绕过吗?
.claude/state/discovery-skip-ack,该仓库的第一源文件拦截就永久安静;不想被追踪的构建工作可写入 .claude/state/delivery-skip-ack,其中需说明覆盖范围和失效时间。这两个文件只有在用户同意时 Agent 才能写入,无人可问时会被拒绝。它在哪个 Agent 上运行,能不能换?
docs/install-paths.md。README 记录有一位陌生用户就是通过其他 Agent 的安装路径跑起来的。token 开销有多大?
卸载后我的数据怎么办?
/plugin uninstall。canvas 以纯 YAML 留在仓库中,脱离插件也能正常阅读。