🤖
Agent 友好
首页即提示词,一键复制给 AI,Agent 自动装环境、选 SDK、写代码。
复制下方提示词,粘给你的 AI Agent,它就能自动装好环境并用本 SDK 操作 PHP 依赖。一个 import 覆盖 Packagist API + 全部 Composer CLI,自带跨平台自动安装。
把下面整段提示词复制粘贴给你的 AI(ChatGPT / Claude / Copilot / Cursor 等),它就能按指引把本 SDK 接入你的项目。把 [这里写你的目标] 那行换成你实际想做的事。
一键复制
点击代码块右上角的复制按钮,整段提示词即到剪贴板。
# 任务:把 `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)相关文档链接。// 😩 老方法 — 脆弱、无类型、没有错误处理
out, _ := exec.Command("composer", "audit").Output()
lines := strings.Split(string(out), "\n")
// 然后你还得自己解析这些字符串...
// 😊 新方法 — 类型化、经过测试、自动安装
result, _ := comp.AuditWithJSON()
fmt.Printf("漏洞数: %d\n", result.Found)go get github.com/scagogogo/composer-skills| 场景 | Agent 怎么做 |
|---|---|
| 装 PHP 环境 | composer-skills install |
| 查 Packagist 包 | pkg/client 的 SearchPackages / GetPackage |
| 扫漏洞 | comp.AuditWithJSON() 或 CLI composer-skills local audit |
| 看过期依赖 | comp.GetOutdatedInfo() |
| 校验 composer.json | comp.ValidateStructured() |