feat(skiff): replace opencode target with agents standard dir
- targets: cursor, claude, codex, agents (~/.agents/skills, .agents/skills) - agents dir covers OMP native discovery; drop omp/opencode targets - project-level agents/cursor/codex share .agents/skills via idempotent symlinks - migrate local state: remove ~/.config/opencode/skills links, reinstall into ~/.agents/skills
This commit is contained in:
+3
-1
@@ -58,7 +58,7 @@ skiff bootstrap
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `skiff list [--source NAME]` | 列出所有来源或指定 source 中的 skill |
|
||||
| `skiff status [--target all\|cursor\|claude\|codex]` | 安装状态总览 |
|
||||
| `skiff status [--target all\|cursor\|claude\|codex\|agents]` | 安装状态总览 |
|
||||
|
||||
### 项目初始化
|
||||
|
||||
@@ -87,6 +87,7 @@ skiff bootstrap
|
||||
| cursor | `~/.cursor/skills/` |
|
||||
| claude | `~/.claude/skills/` |
|
||||
| codex | `~/.codex/skills/` |
|
||||
| agents | `~/.agents/skills/`(agents 标准目录,覆盖 OMP) |
|
||||
|
||||
### 预置 Catalog Source
|
||||
|
||||
@@ -171,6 +172,7 @@ skiff 不保存 token。可以使用 `company/code-review`,也可以使用
|
||||
| cursor | `<project>/.agents/skills/` |
|
||||
| claude | `<project>/.claude/skills/` |
|
||||
| codex | `<project>/.agents/skills/` |
|
||||
| agents | `<project>/.agents/skills/`(与 cursor/codex 共用路径,软链幂等) |
|
||||
|
||||
### 脚手架与健康检查
|
||||
|
||||
|
||||
+1
-2
@@ -9,8 +9,7 @@ AGENT_ALIASES: dict[str, str] = {
|
||||
"claude": "claude",
|
||||
"claude-code": "claude",
|
||||
"codex": "codex",
|
||||
"opencode": "opencode",
|
||||
"*": "*",
|
||||
"agents": "agents",
|
||||
}
|
||||
|
||||
AGENT_CHOICES = sorted({*ALL_TARGETS, *AGENT_ALIASES.keys()})
|
||||
|
||||
+1
-1
@@ -1655,7 +1655,7 @@ def _add_common_flags(parser: argparse.ArgumentParser) -> None:
|
||||
nargs="+",
|
||||
action="append",
|
||||
metavar="AGENT",
|
||||
help="目标 agent(cursor、claude、claude-code、codex、opencode、*)",
|
||||
help="目标 agent(cursor、claude、claude-code、codex、agents、*)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-g",
|
||||
|
||||
+5
-3
@@ -20,17 +20,19 @@ AGENT_GLOBAL: dict[str, Path] = {
|
||||
"cursor": HOME / ".cursor" / "skills",
|
||||
"claude": HOME / ".claude" / "skills",
|
||||
"codex": HOME / ".codex" / "skills",
|
||||
"opencode": HOME / ".config" / "opencode" / "skills",
|
||||
# agents 标准目录:OMP 原生 canonical(agents provider),cursor/codex 项目级同路径
|
||||
"agents": HOME / ".agents" / "skills",
|
||||
}
|
||||
|
||||
AGENT_PROJECT: dict[str, str] = {
|
||||
"cursor": ".agents/skills",
|
||||
"claude": ".claude/skills",
|
||||
"codex": ".agents/skills",
|
||||
"opencode": ".opencode/skills",
|
||||
# 与 cursor/codex 共用 .agents/skills;软链幂等,同路径只写一次
|
||||
"agents": ".agents/skills",
|
||||
}
|
||||
|
||||
ALL_TARGETS = ("cursor", "claude", "codex", "opencode")
|
||||
ALL_TARGETS = ("cursor", "claude", "codex", "agents")
|
||||
|
||||
|
||||
def resolve_targets(target: str | None) -> list[str]:
|
||||
|
||||
Reference in New Issue
Block a user