Composer 包的 README 是使用契约而非教程,需30秒内明确安装方式、autoload配置(如"psr-4": {"MyVendor\Foo\": "src/"})、PHP版本要求(如PHP >= 8.1)、3个典型用法示例、composer.json字段与文档一致性及精确的版本兼容说明。

Composer 包的 README 不是“教程文档”,而是包的“使用契约”——它要让别人 30 秒内判断该不该装、怎么装、能不能用。
README 必须包含 require 和 autoload 配置说明
用户安装后第一件事就是引入类或调用命令,但常因 autoload 配置缺失直接报 Class not found。不要假设别人会翻 composer.json。
-
autoload段必须写明类型("psr-4"/"files")和映射关系,例如:"psr-4": {"MyVendor\Foo\": "src/"} - 如果提供 CLI 命令,需说明是否依赖
bin配置,以及执行前是否要运行composer install --no-dev - 若包仅支持 PHP 8.1+,在文档首行加
PHP >= 8.1,比藏在composer.json的require.php更醒目
别把 README 当成 API 手册:只放最常用 3 个用法示例
没人会从头读完你写的 12 个方法调用示例。重点不是“全”,而是“典型场景下不查源码就能跑通”。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 第一个示例一定是“安装 + 最小可用调用”,比如:
composer require myvendor/foo→say(); ?> - 第二个示例针对最易出错的配置点,如环境变量依赖、缓存驱动切换、或 Laravel/ Symfony 的集成钩子
- 第三个示例展示错误处理姿势,比如捕获
MyVendorFooExceptionInvalidConfigException,而不是只写“抛出异常”
composer.json 字段必须和 README 对齐,尤其 type 和 extra
当 composer.json 里写了 "type": "library",但 README 开头写“本包为 Laravel Service Provider”,就会让人困惑是否要手动注册服务提供者。
-
"type": "metapackage"的包,README 要明确说“本包不提供代码,仅用于批量安装依赖” - 用了
"extra": {"laravel": {"dont-discover": true}}?README 得写清“需手动在config/app.php中注册” -
keywords字段里的词(如"http-client")最好在 README 标题或首段出现一次,利于搜索发现
最容易被忽略的是版本兼容性标注方式:不要只写“支持 Laravel 9.x”,而要写“适配 laravel/framework: ^9.0,不兼容 ^10.0(因移除了 IlluminateSupportFacadesApp 的静态代理)”。具体到被删的类或方法,才真正帮人避坑。










