Skip to content

Composer Skills给 AI Agent 的 Composer 工具箱

复制下方提示词,粘给你的 AI Agent,它就能自动装好环境并用本 SDK 操作 PHP 依赖。一个 import 覆盖 Packagist API + 全部 Composer CLI,自带跨平台自动安装。

234
Composer 方法
20
Packagist API
50+
CLI 子命令
450+
测试用例

复制给 AI Agent 的提示词

把下面整段提示词复制粘贴给你的 AI(ChatGPT / Claude / Copilot / Cursor 等),它就能按指引把本 SDK 接入你的项目。[这里写你的目标] 那行换成你实际想做的事。

一键复制

点击代码块右上角的复制按钮,整段提示词即到剪贴板。

markdown
# 任务:把 `composer-skills` 接入 Go 项目

你正在接入 **Composer Skills** —— `github.com/scagogogo/composer-skills`,PHP Composer 生态的类型化 Go SDK。Go ≥ 1.23,MIT。

## 两套独立 SDK

1. `pkg/client` —— Packagist REST API。纯 Go,无需 PHP。方法:`SearchPackages``GetPackage``GetSecurityAdvisories``GetStatistics``ListPackages*``GetPackageStats``CreatePackage`/`EditPackage`/`UpdatePackage`(需 `WithAPICredentials`)。构造:`c := client.NewComposerClient(30*time.Second)`
2. `pkg/composer` —— 对本地 `composer` 二进制的类型化封装。需要 PHP 7.4+ + Composer 2.0+。构造:`comp, err := composer.New(composer.DefaultOptions())`(缺失 Composer 会自动装)。234 个方法,20 个分类。

基础层:`pkg/detector`(跨 OS 检测 Composer,`NewDetector().Detect()`)、`pkg/installer`(自动装 Composer+PHP,`installer.EnsureComposerInstalled(opts)`,跨平台:Linux apt/dnf、macOS brew、Windows php.net zip)、`pkg/domain`(数据模型)、`pkg/composerutils`(fs/http/mock/test 辅助)。

## 环境自动安装

如果机器上没有 Composer 或 PHP,先跑:
```bash
go install github.com/scagogogo/composer-skills/cmd/composer-skills@latest
composer-skills install   # 自动装 Composer + PHP(跨平台)
```
或编程式:`installer.EnsureComposerInstalled(&installer.InstallOptions{Config: installer.SmartConfig()})`

## 规则

- 优先用返回 Go 结构体的结构化方法:`AuditWithJSON``GetOutdatedInfo``GetVersionInfo``ShowPackageInfo``SearchInfo``ValidateStructured``CheckPlatformReqsStructured``GetLicensesInfo``GetConfigStructured``DiagnoseStructured`。避免解析原始字符串输出。
- 每个操作有基础方法、`WithOptions(map[string]string)` 变体,以及(Composer 支持时)`WithFormat(format)` 变体。
- 便捷辅助:`IsPackageInstalled``GetDirectDependencyNames``GetProjectSummary``GetAbandonedPackagesFromLock``GetNamespaceMap``GetScripts``HasComposerLock``HasVendorDir`
- CLI:`go install github.com/scagogogo/composer-skills/cmd/composer-skills@latest` —— 50+ 子命令(`install``search``package``repo``security``local`…),`--json` 标志,本地操作用 `--working-dir`
- 文档:https://scagogogo.github.io/composer-skills/ · Go 参考:https://pkg.go.dev/github.com/scagogogo/composer-skills · 示例:`examples/`

## 我的目标

[这里写你的目标,例如"一个 Go 服务,每晚扫描我所有 PHP 项目的漏洞依赖,发现就发 Slack 告警"。]

交付:(1)用哪个 SDK 及理由;(2)完整可运行的 Go 代码(含 import 与错误处理);(3)`go get` 命令与环境前置要求;(4)相关文档链接。

一个 import,全部能力

go
// 😩 老方法 — 脆弱、无类型、没有错误处理
out, _ := exec.Command("composer", "audit").Output()
lines := strings.Split(string(out), "\n")
// 然后你还得自己解析这些字符串...

// 😊 新方法 — 类型化、经过测试、自动安装
result, _ := comp.AuditWithJSON()
fmt.Printf("漏洞数: %d\n", result.Found)
bash
go get github.com/scagogogo/composer-skills

Agent 典型用法

场景Agent 怎么做
装 PHP 环境composer-skills install
查 Packagist 包pkg/clientSearchPackages / GetPackage
扫漏洞comp.AuditWithJSON() 或 CLI composer-skills local audit
看过期依赖comp.GetOutdatedInfo()
校验 composer.jsoncomp.ValidateStructured()

基于 MIT 许可证发布