From 2e2abae7a5db7ce4cef961675e65b94951a877ba Mon Sep 17 00:00:00 2001 From: zzgosh <30567623+zzgosh@users.noreply.github.com> Date: Thu, 19 Mar 2026 23:07:41 +0800 Subject: [PATCH 1/2] Revert "chore: release v0.1.5" This reverts commit 993e08eb57a72b55d6b00cdcd04c8337f481444d. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 193da30..8e1c658 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "agent-spec", - "version": "0.1.5", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agent-spec", - "version": "0.1.5", + "version": "0.1.4", "license": "MIT", "dependencies": { "commander": "^13.1.0", diff --git a/package.json b/package.json index 4e2d019..5242439 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-spec", - "version": "0.1.5", + "version": "0.1.4", "description": "CLI for managing AGENTS.md files", "type": "module", "bin": { From cc8ec1b7a5a7fb2c384332da20cdf3fbcba1dcdc Mon Sep 17 00:00:00 2001 From: zzgosh <30567623+zzgosh@users.noreply.github.com> Date: Thu, 19 Mar 2026 23:07:41 +0800 Subject: [PATCH 2/2] Revert "chore: rename package to agent-spec" This reverts commit 6cbdd0bfc17da6eec3e5a41e787416e3d7ad3a04. --- LICENSE | 2 +- README.md | 75 +++++++++++++++++------------------------- docs/README.zh-CN.md | 71 ++++++++++++++++----------------------- package-lock.json | 6 ++-- package.json | 10 +++--- src/cli.ts | 2 +- src/commands/add.ts | 2 +- src/commands/link.ts | 2 +- src/commands/list.ts | 4 +-- src/commands/update.ts | 4 +-- 10 files changed, 74 insertions(+), 104 deletions(-) diff --git a/LICENSE b/LICENSE index 1aeef69..5ff3656 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 agent-spec contributors +Copyright (c) 2026 agent-specs contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 40dfad8..9b2ba87 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# agent-spec +# agent-specs -Chinese documentation: [README.zh-CN](https://github.com/zzgosh/agent-spec/blob/main/docs/README.zh-CN.md) +Chinese documentation: [README.zh-CN](https://github.com/zzgosh/agent-specs/blob/main/docs/README.zh-CN.md) -`agent-spec` is a CLI for managing `AGENTS.md` files. +`agent-specs` is a CLI for managing `AGENTS.md` files. It can load `AGENTS.md` from a remote URL or a local file and install it either per-project or globally. In global mode, it detects installed AI agent clients on the local machine and symlinks a single shared rules file into each client’s native path so multiple agents can reuse the same source of truth. You can also target a specific agent explicitly. @@ -12,64 +12,49 @@ The examples in this repository use Vercel's public [agent-skills/AGENTS.md](htt ```bash # Run directly (recommended) -npx agent-spec +npx agent-specs # Or install globally -npm install -g agent-spec +npm install -g agent-specs ``` -## Migration from `agent-specs` - -If you already installed the old package `agent-specs`, migrate to `agent-spec` before using the new docs and commands. - -```bash -# Remove the old global package -npm uninstall -g agent-specs - -# Install the renamed package -npm install -g agent-spec -``` - -- The npm package name changed from `agent-specs` to `agent-spec`. -- The CLI command also changed from `agent-specs` to `agent-spec`. - ## Quick Start ```bash # Project install: download AGENTS.md into the current directory -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md # Reuse the existing project AGENTS.md and link it to Claude Code in this project -agent-spec add ./AGENTS.md -a claude-code +agent-specs add ./AGENTS.md -a claude-code # Global install: write to ~/.agents/ and symlink to detected agent clients -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g ``` ## Commands -### `agent-spec add ` +### `agent-specs add ` Install `AGENTS.md` from a remote URL or local file. ```bash # Project install (default) -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md # Project agent install: keep ./AGENTS.md as the source of truth -agent-spec add ./AGENTS.md -a claude-code +agent-specs add ./AGENTS.md -a claude-code # Project agent install from another local file: write ./AGENTS.md, then symlink the selected agent path -agent-spec add ./docs/shared-rules.md -a claude-code +agent-specs add ./docs/shared-rules.md -a claude-code # Global install: write to ~/.agents/AGENTS.md and symlink to detected agents -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g # Global install for a single agent -agent-spec add ./AGENTS.md -g -a claude-code +agent-specs add ./AGENTS.md -g -a claude-code # Skip confirmation and overwrite existing files after backing them up -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g -y +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g -y ``` Supported source formats: @@ -92,41 +77,41 @@ Options: | `-a, --agent ` | Link to a specific agent client instead of relying on auto-detection | | `-y, --yes` | Skip confirmation and automatically back up then overwrite existing files | -### `agent-spec update` +### `agent-specs update` Re-load and update `AGENTS.md` from its original source. ```bash -agent-spec update -agent-spec update -g +agent-specs update +agent-specs update -g ``` -### `agent-spec list` +### `agent-specs list` Show installation and symlink status. ```bash -agent-spec list -agent-spec list -g +agent-specs list +agent-specs list -g ``` -### `agent-spec link` +### `agent-specs link` Detect agent clients again and recreate symlinks. This is useful after installing a new agent client. Explicitly configured global agents are also preserved. ```bash -agent-spec link -agent-spec link -y +agent-specs link +agent-specs link -y ``` -### `agent-spec remove` +### `agent-specs remove` Remove installed `AGENTS.md` files and related symlinks. ```bash -agent-spec remove -agent-spec remove -g -agent-spec remove -g -y +agent-specs remove +agent-specs remove -g +agent-specs remove -g -y ``` - If the install reused an existing `AGENTS.md` as the source of truth, `remove` preserves that file and removes only the symlink(s) plus CLI metadata. @@ -149,7 +134,7 @@ agent-spec remove -g -y ``` - Editing `~/.agents/AGENTS.md` updates every linked agent immediately. -- Running `agent-spec update -g` refreshes the shared file without recreating symlinks. +- Running `agent-specs update -g` refreshes the shared file without recreating symlinks. ## How Project Agent Install Works @@ -192,7 +177,7 @@ When `-a, --agent ` is provided, the CLI links the selected agent directly ## Directory Structure ```text -agent-spec/ +agent-specs/ |-- .github/ | `-- workflows/ | |-- ci.yml diff --git a/docs/README.zh-CN.md b/docs/README.zh-CN.md index cddca6c..9b76f5c 100644 --- a/docs/README.zh-CN.md +++ b/docs/README.zh-CN.md @@ -1,4 +1,4 @@ -# agent-spec +# agent-specs English README: [README.md](../README.md) @@ -12,64 +12,49 @@ English README: [README.md](../README.md) ```bash # 直接使用(推荐) -npx agent-spec +npx agent-specs # 或全局安装 -npm install -g agent-spec +npm install -g agent-specs ``` -## 从 `agent-specs` 迁移 - -如果你之前已经安装过旧包 `agent-specs`,请先迁移到 `agent-spec`,再使用新的文档和命令。 - -```bash -# 卸载旧的全局包 -npm uninstall -g agent-specs - -# 安装重命名后的新包 -npm install -g agent-spec -``` - -- npm 包名已从 `agent-specs` 改为 `agent-spec` -- CLI 命令也已从 `agent-specs` 改为 `agent-spec` - ## 快速开始 ```bash # 项目级:下载 AGENTS.md 到当前目录 -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md # 复用当前项目已有的 AGENTS.md,并链接到项目内的 Claude Code 路径 -agent-spec add ./AGENTS.md -a claude-code +agent-specs add ./AGENTS.md -a claude-code # 全局级:下载到 ~/.agents/ 并 symlink 到已检测到的 agent 客户端 -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g ``` ## 命令 -### `agent-spec add ` +### `agent-specs add ` 从远程 URL 或本地文件安装 `AGENTS.md`。 ```bash # 项目级安装(默认) -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md # 项目级定向安装:让 ./AGENTS.md 成为 truth source,并 symlink 到指定 agent 的项目路径 -agent-spec add ./AGENTS.md -a claude-code +agent-specs add ./AGENTS.md -a claude-code # 从其他本地文件导入到当前项目,再 symlink 到指定 agent -agent-spec add ./docs/shared-rules.md -a claude-code +agent-specs add ./docs/shared-rules.md -a claude-code # 全局安装:写入 ~/.agents/AGENTS.md,并 symlink 到各 agent -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g # 全局安装到指定 agent -agent-spec add ./AGENTS.md -g -a claude-code +agent-specs add ./AGENTS.md -g -a claude-code # 跳过确认提示(已有文件时自动备份并覆盖) -agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g -y +agent-specs add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md -g -y ``` 支持的 source 格式: @@ -92,41 +77,41 @@ agent-spec add https://github.com/vercel-labs/agent-skills/blob/main/AGENTS.md - | `-a, --agent ` | 定向安装到指定 agent,而不是依赖自动检测 | | `-y, --yes` | 跳过确认,自动备份并覆盖已有文件 | -### `agent-spec update` +### `agent-specs update` 从原始来源重新读取并更新 `AGENTS.md`。 ```bash -agent-spec update -agent-spec update -g +agent-specs update +agent-specs update -g ``` -### `agent-spec list` +### `agent-specs list` 查看当前安装状态和 symlink 情况。 ```bash -agent-spec list -agent-spec list -g +agent-specs list +agent-specs list -g ``` -### `agent-spec link` +### `agent-specs link` 重新检测 agent 客户端并创建 symlink,适用于安装了新 agent 后需要补建链接的场景。通过 `-a` 显式配置过的全局 agent 也会被保留。 ```bash -agent-spec link -agent-spec link -y +agent-specs link +agent-specs link -y ``` -### `agent-spec remove` +### `agent-specs remove` 移除已安装的 `AGENTS.md` 及相关 symlink。 ```bash -agent-spec remove -agent-spec remove -g -agent-spec remove -g -y +agent-specs remove +agent-specs remove -g +agent-specs remove -g -y ``` - 如果安装时复用了一个已经存在的 `AGENTS.md` 作为 truth source,`remove` 会保留该文件,只移除 symlink 和 CLI 元数据。 @@ -149,7 +134,7 @@ agent-spec remove -g -y ``` - 修改 `~/.agents/AGENTS.md` 后,已链接的 agent 会立即读取到新内容。 -- 执行 `agent-spec update -g` 后,所有 symlink 目标会同步到最新内容,无需重新链接。 +- 执行 `agent-specs update -g` 后,所有 symlink 目标会同步到最新内容,无需重新链接。 ## 项目级定向安装工作原理 @@ -192,7 +177,7 @@ CLI 只会为检测到已安装的 agent 创建 symlink。 ## Directory Structure ```text -agent-spec/ +agent-specs/ |-- .github/ | `-- workflows/ | |-- ci.yml # PR 与 main 分支构建检查 diff --git a/package-lock.json b/package-lock.json index 8e1c658..fd61096 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "agent-spec", + "name": "agent-specs", "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "agent-spec", + "name": "agent-specs", "version": "0.1.4", "license": "MIT", "dependencies": { @@ -13,7 +13,7 @@ "picocolors": "^1.1.1" }, "bin": { - "agent-spec": "bin/cli.mjs" + "agent-specs": "bin/cli.mjs" }, "devDependencies": { "@types/node": "^25.5.0", diff --git a/package.json b/package.json index 5242439..44efa3f 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { - "name": "agent-spec", + "name": "agent-specs", "version": "0.1.4", "description": "CLI for managing AGENTS.md files", "type": "module", "bin": { - "agent-spec": "bin/cli.mjs" + "agent-specs": "bin/cli.mjs" }, "exports": { ".": { @@ -34,7 +34,7 @@ "unbuild": "^3.5.0" }, "keywords": [ - "agent-spec", + "agent-specs", "agents", "ai", "cli", @@ -43,10 +43,10 @@ ], "repository": { "type": "git", - "url": "git+https://github.com/zzgosh/agent-spec.git" + "url": "git+https://github.com/zzgosh/agent-specs.git" }, "bugs": { - "url": "https://github.com/zzgosh/agent-spec/issues" + "url": "https://github.com/zzgosh/agent-specs/issues" }, "license": "MIT" } diff --git a/src/cli.ts b/src/cli.ts index da77032..7853b7d 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -12,7 +12,7 @@ const pkg = require('../package.json') const program = new Command() program - .name('agent-spec') + .name('agent-specs') .description('CLI for managing AGENTS.md files') .version(pkg.version) diff --git a/src/commands/add.ts b/src/commands/add.ts index 69ef378..c0492b1 100644 --- a/src/commands/add.ts +++ b/src/commands/add.ts @@ -146,7 +146,7 @@ async function addGlobal( if (agents.length === 0) { console.log(pc.yellow('No installed agent clients detected')) console.log( - pc.dim('Run agent-spec link after installing an agent client to create symlinks'), + pc.dim('Run agent-specs link after installing an agent client to create symlinks'), ) } else { if (selectedAgent) { diff --git a/src/commands/link.ts b/src/commands/link.ts index 8e1a97b..4a47475 100644 --- a/src/commands/link.ts +++ b/src/commands/link.ts @@ -21,7 +21,7 @@ export async function linkCommand(options: LinkOptions): Promise { await access(agentsPath) } catch { console.error(pc.red(`${agentsPath} does not exist`)) - console.error(pc.dim(`Install it first with ${pc.bold('agent-spec add -g')}`)) + console.error(pc.dim(`Install it first with ${pc.bold('agent-specs add -g')}`)) process.exit(1) } diff --git a/src/commands/list.ts b/src/commands/list.ts index 7f0d425..4603143 100644 --- a/src/commands/list.ts +++ b/src/commands/list.ts @@ -31,7 +31,7 @@ async function listGlobal(): Promise { if (!config) { console.log(pc.yellow('Global AGENTS.md is not installed')) - console.log(pc.dim(`Install it with ${pc.bold('agent-spec add -g')}`)) + console.log(pc.dim(`Install it with ${pc.bold('agent-specs add -g')}`)) return } @@ -84,7 +84,7 @@ async function listProject(): Promise { if (!config) { console.log(pc.yellow('Project AGENTS.md is not installed')) - console.log(pc.dim(`Install it with ${pc.bold('agent-spec add ')}`)) + console.log(pc.dim(`Install it with ${pc.bold('agent-specs add ')}`)) return } diff --git a/src/commands/update.ts b/src/commands/update.ts index 27d96aa..6863f7e 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -25,7 +25,7 @@ export async function updateCommand(options: UpdateOptions): Promise { async function updateGlobal(): Promise { const config = await readGlobalConfig() if (!config) { - console.error(pc.red('Global AGENTS.md is not installed. Run agent-spec add -g first.')) + console.error(pc.red('Global AGENTS.md is not installed. Run agent-specs add -g first.')) process.exit(1) } @@ -57,7 +57,7 @@ async function updateGlobal(): Promise { async function updateProject(): Promise { const config = await readProjectConfig() if (!config) { - console.error(pc.red('Project AGENTS.md is not installed. Run agent-spec add first.')) + console.error(pc.red('Project AGENTS.md is not installed. Run agent-specs add first.')) process.exit(1) }