skills-manager-cli 2026.9.18 → 2026.10.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/README.zh-CN.md +81 -0
- package/dist/cli/bootstrap.js +5 -0
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/cost-output.js +45 -0
- package/dist/cli/cost-output.js.map +1 -1
- package/dist/cli/doctor-output.js +29 -0
- package/dist/cli/doctor-output.js.map +1 -0
- package/dist/cli/main.js +232 -14
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/sync-output.js +31 -0
- package/dist/cli/sync-output.js.map +1 -0
- package/dist/core/ports/security-scanner.js +2 -0
- package/dist/core/ports/security-scanner.js.map +1 -0
- package/dist/core/services/description-lint.js +68 -0
- package/dist/core/services/description-lint.js.map +1 -0
- package/dist/core/services/description-overlap.js +87 -0
- package/dist/core/services/description-overlap.js.map +1 -0
- package/dist/core/services/doctor-service.js +12 -1
- package/dist/core/services/doctor-service.js.map +1 -1
- package/dist/core/services/index.js +7 -2
- package/dist/core/services/index.js.map +1 -1
- package/dist/core/services/security-scan.js +217 -0
- package/dist/core/services/security-scan.js.map +1 -0
- package/dist/core/services/sync-service.js +1 -1
- package/dist/core/services/sync-service.js.map +1 -1
- package/docs/CLI.md +100 -4
- package/package.json +1 -1
- package/skills/skills-manager/SKILL.md +33 -7
package/README.md
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
# Skills Manager
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/skills-manager-cli)
|
|
4
|
+
[](https://www.npmjs.com/package/skills-manager-cli)
|
|
5
|
+
[](https://github.com/shenysun/skills-manager/stargazers)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
|
|
3
9
|
**English** | [简体中文](README.zh-CN.md)
|
|
4
10
|
|
|
11
|
+
|
|
5
12
|
Manage your agent skills **from the conversation**: one `npx` command installs the manager skill, and from then on you just ask your agent — install, import, distribute, update, backfill provenance. Works with any skill-loading agent (Claude Code, Codex, Cursor, …).
|
|
6
13
|
|
|
7
14
|
> **CLI-first, conversation-driven.** This is `skills-manager-cli` — a terminal/npm tool with an optional local web dashboard. It is not a desktop app; if you were looking for the desktop application of the same name, that is a different project ([xingkongliang/skills-manager](https://github.com/xingkongliang/skills-manager)).
|
|
@@ -15,12 +22,32 @@ Manage your agent skills **from the conversation**: one `npx` command installs t
|
|
|
15
22
|
- **Provenance backfill** — imported skills without a source get one through lockfile-evidence adoption, agent-driven search, and your approval.
|
|
16
23
|
- **The manager skill** — every management action happens in agent conversation ([ADR-0014](docs/adr/0014-manager-skill-first-bootstrap.md)); the CLI underneath is a plain JSON engine.
|
|
17
24
|
|
|
25
|
+
|
|
26
|
+
## Why this instead of `gh skill` / `npx skills` / the desktop app?
|
|
27
|
+
|
|
28
|
+
| | **skills-manager** | `gh skill` | `npx skills` | [desktop skills-manager](https://github.com/xingkongliang/skills-manager) |
|
|
29
|
+
|---|---|---|---|---|
|
|
30
|
+
| Primary UI | **Agent conversation** (manager skill) + CLI | GitHub CLI | CLI | Desktop GUI |
|
|
31
|
+
| Hub model | Single `~/.skills-manager` → distribute subset | Per-agent / shared `.agents/skills` | Per install | Hub + presets |
|
|
32
|
+
| Agents covered | **70+** (catalog snapshot) | ~48 | Depends on target | ~54 |
|
|
33
|
+
| Non-GitHub sources | git / URL / zip / marketplace / well-known | GitHub (+ `--from-local`) | GitHub-centric | Marketplace + git |
|
|
34
|
+
| Update signal | **Skill subtree tree-SHA** (no false positives) | Frontmatter tree SHA | Lockfile / metadata | App sync |
|
|
35
|
+
| Context cost | Built-in **resident cost ledger** | — | — | — |
|
|
36
|
+
| Multi-machine | Hub git sync (`sync push/pull`) | — | — | Device-code backup |
|
|
37
|
+
| Install | `npx skills-manager-cli` | `gh extension` | `npx skills` | Desktop download |
|
|
38
|
+
|
|
39
|
+
Pick this when you want **one library, many agents, conversation-driven ops**, and honest update/cost signals — not another one-shot installer.
|
|
40
|
+
|
|
18
41
|
## Quick Start
|
|
19
42
|
|
|
20
43
|
```sh
|
|
21
44
|
npx skills-manager-cli
|
|
22
45
|
```
|
|
23
46
|
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
*`--help` and the resident context-cost ledger (`cost`) in action. After bootstrap, try `cost --share` and `doctor` — both are printed as pasteable demos.*
|
|
50
|
+
|
|
24
51
|
That is the whole setup. Bootstrap creates the skill hub (`~/.skills-manager`), installs the **manager skill** into it from the bundled copy, and mounts it (symlink) into the agents it detects on your machine — you confirm the list in the one prompt it shows.
|
|
25
52
|
|
|
26
53
|
Then go back to your agent and say:
|
|
@@ -33,6 +60,53 @@ Then go back to your agent and say:
|
|
|
33
60
|
|
|
34
61
|
Content moves into the hub, originals become symlinks (backed up first). Prefer to preview it yourself first? `skills-manager init --dry-run`.
|
|
35
62
|
|
|
63
|
+
|
|
64
|
+
## Coming from `npx skills` or `gh skill`?
|
|
65
|
+
|
|
66
|
+
You can keep installing with those tools. To consolidate into one hub (tree-SHA updates + the cost ledger) without re-downloading:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
npx skills-manager-cli # bootstrap the hub + manager skill
|
|
70
|
+
skills-manager init --dry-run # preview importing existing runtime skills
|
|
71
|
+
# or ask your agent: Import my existing skills into skills-manager
|
|
72
|
+
skills-manager cost --share # privacy-safe paste card of your resident skill tax
|
|
73
|
+
skills-manager doctor --share # privacy-safe hub health card (counts only)
|
|
74
|
+
skills-manager update --check # freshness vs skill subtree tree-SHA (git) — no cry-wolf
|
|
75
|
+
skills-manager audit security --strict # CI gate: fail only on high-severity findings
|
|
76
|
+
skills-manager audit overlap # which skills compete for the same request (wrong-skill triggers)
|
|
77
|
+
skills-manager audit descriptions # descriptions that will never trigger (no "use when", vague, too long)
|
|
78
|
+
skills-manager sync init --remote <url> # multi-machine hub git sync (unique vs installers)
|
|
79
|
+
skills-manager sync status --share # privacy-safe paste card of sync posture
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`cost --share` prints a paste-ready card (no absolute paths). Example shape:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
Resident skill tax · char-approx · skills-manager
|
|
86
|
+
≈1.2k tokens / message · 12 skill(s) · 2 path(s)
|
|
87
|
+
Paths: user/claude-code+zed · project/cursor
|
|
88
|
+
Heaviest: big-skill ≈400 · mid ≈200 · small ≈80
|
|
89
|
+
Try: npx skills-manager-cli
|
|
90
|
+
Reproduce: skills-manager cost --share
|
|
91
|
+
https://github.com/shenysun/skills-manager
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**CI?** Drop [`examples/github-actions/audit-security.yml`](examples/github-actions/audit-security.yml) into `.github/workflows/` on a hub repo (`skills/` + `registry.yaml`). It runs `audit security --strict --format github` on PR/push — fails only on high-severity findings, and annotates the PR Files tab.
|
|
95
|
+
|
|
96
|
+
Every gate exits 1 on failure and writes its verdict to stderr, so stdout (text/JSON) stays stable:
|
|
97
|
+
|
|
98
|
+
| Gate | Command | Fails when | Network |
|
|
99
|
+
| --- | --- | --- | --- |
|
|
100
|
+
| Security | `audit security --strict` | any high-severity finding | no |
|
|
101
|
+
| Provenance | `provenance list --fail-on-imported` | an imported skill has no usable source (can't get updates) | no |
|
|
102
|
+
| Resident cost | `cost --budget <tokens>` | total resident tokens exceed the budget | no |
|
|
103
|
+
| Freshness | `update --check --fail-on-stale` | any skill is stale, or a check fails | yes (`GH_TOKEN` helps) |
|
|
104
|
+
| **All of the above** | `check [--budget <tokens>] [--freshness]` | any enabled gate fails (security + provenance always; budget/freshness opt-in) — copy [`examples/github-actions/hub-check.yml`](examples/github-actions/hub-check.yml) | only with `--freshness` |
|
|
105
|
+
|
|
106
|
+
Details: [docs/CLI.md](docs/CLI.md).
|
|
107
|
+
|
|
108
|
+
Runtime copies become hub-backed; originals are backed up first.
|
|
109
|
+
|
|
36
110
|
## How it works
|
|
37
111
|
|
|
38
112
|
```text
|
|
@@ -91,10 +165,12 @@ Skill home resolution priority:
|
|
|
91
165
|
npx skills-manager-cli # bootstrap (default when no subcommand)
|
|
92
166
|
skills-manager bootstrap --agent claude-code # scripted bootstrap / mount later
|
|
93
167
|
skills-manager doctor
|
|
168
|
+
skills-manager doctor --share # privacy-safe hub health paste card
|
|
94
169
|
skills-manager list
|
|
95
170
|
skills-manager add owner/repo --all --yes
|
|
96
171
|
skills-manager distribute --to user --skill my-skill --agent claude-code
|
|
97
172
|
skills-manager update --plan
|
|
173
|
+
skills-manager update --check # tree-SHA freshness (git/marketplace)
|
|
98
174
|
skills-manager update --skill my-skill
|
|
99
175
|
skills-manager init --dry-run # preview runtime-skill import
|
|
100
176
|
skills-manager init --prefer claude-code hub # this-run conflict priority
|
|
@@ -103,11 +179,16 @@ skills-manager backup list # inspect init backups
|
|
|
103
179
|
skills-manager backup restore my-skill # roll one import back
|
|
104
180
|
skills-manager edit my-skill --source-git owner/repo --subpath skills/my-skill
|
|
105
181
|
skills-manager provenance list # skills still missing a source
|
|
182
|
+
skills-manager provenance list --fail-on-imported # fail (exit 1) when any imported skill still lacks a source
|
|
106
183
|
skills-manager provenance adopt # backfill lockfile evidence
|
|
107
184
|
skills-manager categories set my-skill frontend # tag with a domain category
|
|
108
185
|
skills-manager categories apply frontend -a claude-code # load only that domain
|
|
109
186
|
skills-manager categories status # applied sets + drift
|
|
110
187
|
skills-manager cost # resident context-cost ledger (report-only recall suggestions)
|
|
188
|
+
skills-manager cost --budget 2000 # fail (exit 1) when resident context tax exceeds a token budget
|
|
189
|
+
skills-manager sync init --remote <url> # multi-machine hub git sync
|
|
190
|
+
skills-manager sync status --share # privacy-safe paste card of sync posture
|
|
191
|
+
skills-manager update --check --fail-on-stale # fail (exit 1) when any hub skill is stale vs upstream tree-SHA
|
|
111
192
|
skills-manager archive old-skill
|
|
112
193
|
```
|
|
113
194
|
|
package/README.zh-CN.md
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
# Skills Manager
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/skills-manager-cli)
|
|
4
|
+
[](https://www.npmjs.com/package/skills-manager-cli)
|
|
5
|
+
[](https://github.com/shenysun/skills-manager/stargazers)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
|
|
3
9
|
[English](README.md) | **简体中文**
|
|
4
10
|
|
|
11
|
+
|
|
5
12
|
在**对话里**管理你的 agent skills:一条 `npx` 命令装上 manager skill,之后一切都直接吩咐你的 agent——安装、导入、分发、更新、补齐来源。任何会加载 skills 的 agent 都能用(Claude Code、Codex、Cursor、…)。
|
|
6
13
|
|
|
7
14
|
> **CLI 优先、对话驱动。** 本项目是 `skills-manager-cli`——终端/npm 工具,附带可选的本地 web dashboard。它**不是**桌面应用;如果你找的是同名的桌面版,那是另一个项目([xingkongliang/skills-manager](https://github.com/xingkongliang/skills-manager))。
|
|
@@ -15,12 +22,32 @@
|
|
|
15
22
|
- **来源可回填**——没有来源的导入 skill,经锁文件证据采纳、agent 搜索、你批准三层流程补齐 provenance。
|
|
16
23
|
- **manager skill**——所有管理动作都在 agent 对话里完成([ADR-0014](docs/adr/0014-manager-skill-first-bootstrap.md));底层 CLI 是纯 JSON 引擎。
|
|
17
24
|
|
|
25
|
+
|
|
26
|
+
## 为什么选它,而不是 `gh skill` / `npx skills` / 桌面版?
|
|
27
|
+
|
|
28
|
+
| | **skills-manager** | `gh skill` | `npx skills` | [桌面版 skills-manager](https://github.com/xingkongliang/skills-manager) |
|
|
29
|
+
|---|---|---|---|---|
|
|
30
|
+
| 主界面 | **Agent 对话**(manager skill)+ CLI | GitHub CLI | CLI | 桌面 GUI |
|
|
31
|
+
| 模型 | 单一 `~/.skills-manager` → 分发子集 | 按 agent / 共享 `.agents/skills` | 按次安装 | Hub + presets |
|
|
32
|
+
| Agent 覆盖 | **70+**(catalog 快照) | ~48 | 视目标而定 | ~54 |
|
|
33
|
+
| 非 GitHub 源 | git / URL / zip / marketplace / well-known | GitHub(+ `--from-local`) | 偏 GitHub | Marketplace + git |
|
|
34
|
+
| 更新信号 | **skill 子目录 tree-SHA**(不误报) | frontmatter tree SHA | lockfile / metadata | App 同步 |
|
|
35
|
+
| 上下文成本 | 内置**常驻成本账本** | — | — | — |
|
|
36
|
+
| 多机同步 | Hub git 化(`sync push/pull`) | — | — | 设备码备份 |
|
|
37
|
+
| 安装 | `npx skills-manager-cli` | `gh extension` | `npx skills` | 桌面安装包 |
|
|
38
|
+
|
|
39
|
+
适合「**一个库、多 agent、对话驱动**,更新与成本信号要诚实」的场景——不是又一个一次性安装器。
|
|
40
|
+
|
|
18
41
|
## 快速开始
|
|
19
42
|
|
|
20
43
|
```sh
|
|
21
44
|
npx skills-manager-cli
|
|
22
45
|
```
|
|
23
46
|
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
*演示:`--help` 与常驻上下文成本账本(`cost`)。bootstrap 结束后还会打印可粘贴的 `cost --share` 与 `doctor` demo。*
|
|
50
|
+
|
|
24
51
|
这就是全部的安装步骤。bootstrap 会创建技能库(`~/.skills-manager`),从包内副本把 **manager skill** 种进库,并(以软链接)挂载到它检测到的 agent——展示一次多选让你确认清单。
|
|
25
52
|
|
|
26
53
|
然后回到你的 agent,说:
|
|
@@ -33,6 +60,53 @@ npx skills-manager-cli
|
|
|
33
60
|
|
|
34
61
|
内容会移入库中,原位置变成软链接(先备份)。想先自己预览?`skills-manager init --dry-run`。
|
|
35
62
|
|
|
63
|
+
|
|
64
|
+
## 从 `npx skills` 或 `gh skill` 过来?
|
|
65
|
+
|
|
66
|
+
可以继续用它们安装。要把已有 skill 收进同一个 hub(树 SHA 更新 + 成本账本)、不必重下:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
npx skills-manager-cli # 引导创建 hub + manager skill
|
|
70
|
+
skills-manager init --dry-run # 预览导入现有运行时 skill
|
|
71
|
+
# 或对 agent 说:把我现有的 skills 导入 skills-manager
|
|
72
|
+
skills-manager cost --share # 可粘贴分享的常驻 skill 税卡片(无绝对路径)
|
|
73
|
+
skills-manager doctor --share # 可粘贴的 hub 健康卡片(仅计数,无路径/技能名)
|
|
74
|
+
skills-manager update --check # 新鲜度:skill 子目录 tree-SHA(git)——不上游无关提交的狼来了
|
|
75
|
+
skills-manager audit security --strict # CI 闸:仅 high 严重度发现时失败
|
|
76
|
+
skills-manager audit overlap # 哪些 skill 在抢同一个请求(误触发错的 skill)
|
|
77
|
+
skills-manager audit descriptions # 永远不会被触发的 description(缺「何时用」、太含糊、太长)
|
|
78
|
+
skills-manager sync init --remote <url> # 多机 hub git 同步(相对安装器的差异化)
|
|
79
|
+
skills-manager sync status --share # 可粘贴分享的同步姿态卡片(无 hub 路径 / remote URL)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`cost --share` 输出可直接粘贴的卡片(不含绝对路径)。示例形状:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
Resident skill tax · char-approx · skills-manager
|
|
86
|
+
≈1.2k tokens / message · 12 skill(s) · 2 path(s)
|
|
87
|
+
Paths: user/claude-code+zed · project/cursor
|
|
88
|
+
Heaviest: big-skill ≈400 · mid ≈200 · small ≈80
|
|
89
|
+
Try: npx skills-manager-cli
|
|
90
|
+
Reproduce: skills-manager cost --share
|
|
91
|
+
https://github.com/shenysun/skills-manager
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**上 CI?** 把 [`examples/github-actions/audit-security.yml`](examples/github-actions/audit-security.yml) 拷进 hub 仓库的 `.github/workflows/`(仓库根需是 `skills/` + `registry.yaml`)。PR/push 时跑 `audit security --strict --format github`——仅 high 严重度发现会失败,并在 PR Files 页打注解。
|
|
95
|
+
|
|
96
|
+
每个闸失败即退出 1,结论写 stderr,stdout(文本/JSON)保持稳定:
|
|
97
|
+
|
|
98
|
+
| 闸 | 命令 | 何时失败 | 联网 |
|
|
99
|
+
| --- | --- | --- | --- |
|
|
100
|
+
| 安全 | `audit security --strict` | 存在 high 严重度发现 | 否 |
|
|
101
|
+
| 来源 | `provenance list --fail-on-imported` | 有导入 skill 缺可用来源(拿不到更新) | 否 |
|
|
102
|
+
| 常驻成本 | `cost --budget <tokens>` | 常驻总 token 超出预算 | 否 |
|
|
103
|
+
| 新鲜度 | `update --check --fail-on-stale` | 任一 skill 过期,或检测失败 | 是(建议设 `GH_TOKEN`) |
|
|
104
|
+
| **以上全部** | `check [--budget <tokens>] [--freshness]` | 任一启用的闸失败(安全 + 来源必跑;预算/新鲜度按需开启)——可直接拷贝 [`examples/github-actions/hub-check.yml`](examples/github-actions/hub-check.yml) | 仅 `--freshness` 时 |
|
|
105
|
+
|
|
106
|
+
详见 [docs/CLI.zh-CN.md](docs/CLI.zh-CN.md)。
|
|
107
|
+
|
|
108
|
+
运行时副本改为由 hub 托管;原文件会先备份。
|
|
109
|
+
|
|
36
110
|
## 工作原理
|
|
37
111
|
|
|
38
112
|
```text
|
|
@@ -91,10 +165,12 @@ apply 是显式的、可逆的快照:缺的分发、集合外(含未打标
|
|
|
91
165
|
npx skills-manager-cli # bootstrap(不带子命令时的默认行为)
|
|
92
166
|
skills-manager bootstrap --agent claude-code # 脚本化 bootstrap / 之后再挂载
|
|
93
167
|
skills-manager doctor
|
|
168
|
+
skills-manager doctor --share # 可粘贴的 hub 健康卡片(仅计数)
|
|
94
169
|
skills-manager list
|
|
95
170
|
skills-manager add owner/repo --all --yes
|
|
96
171
|
skills-manager distribute --to user --skill my-skill --agent claude-code
|
|
97
172
|
skills-manager update --plan
|
|
173
|
+
skills-manager update --check # tree-SHA 新鲜度(git/marketplace)
|
|
98
174
|
skills-manager update --skill my-skill
|
|
99
175
|
skills-manager init --dry-run # 预览运行时技能导入
|
|
100
176
|
skills-manager init --prefer claude-code hub # 本次导入的冲突优先级
|
|
@@ -103,11 +179,16 @@ skills-manager backup list # 查看 init 备份
|
|
|
103
179
|
skills-manager backup restore my-skill # 回滚某次导入
|
|
104
180
|
skills-manager edit my-skill --source-git owner/repo --subpath skills/my-skill
|
|
105
181
|
skills-manager provenance list # 仍缺来源的技能清单
|
|
182
|
+
skills-manager provenance list --fail-on-imported # 仍有「导入却无来源」的 skill 时失败(exit 1)
|
|
106
183
|
skills-manager provenance adopt # 补采锁文件证据
|
|
107
184
|
skills-manager categories set my-skill 前端 # 打领域类别标签
|
|
108
185
|
skills-manager categories apply 前端 -a claude-code # 只加载该领域
|
|
109
186
|
skills-manager categories status # 已应用集合 + 漂移
|
|
110
187
|
skills-manager cost # 常驻上下文成本账本(只报告不执行的收回建议)
|
|
188
|
+
skills-manager cost --budget 2000 # 常驻上下文税超出 token 预算时失败(exit 1)
|
|
189
|
+
skills-manager sync init --remote <url> # 多机 hub git 同步
|
|
190
|
+
skills-manager sync status --share # 可粘贴分享的同步姿态卡片
|
|
191
|
+
skills-manager update --check --fail-on-stale # 任一 hub skill 相对上游树 SHA 过期时失败(exit 1)
|
|
111
192
|
skills-manager archive old-skill
|
|
112
193
|
```
|
|
113
194
|
|
package/dist/cli/bootstrap.js
CHANGED
|
@@ -67,6 +67,11 @@ export async function runBootstrap(opts, cmd) {
|
|
|
67
67
|
console.log('\nAll set. Go back to your agent and say:');
|
|
68
68
|
console.log(` “${STARTER_PROMPT_ZH}”`);
|
|
69
69
|
console.log(` (“${STARTER_PROMPT_EN}”)`);
|
|
70
|
+
// Growth wedge: surface the pasteable demos that land after the next npm cut
|
|
71
|
+
// (cost --share + doctor already ships security.high / residentCost rollups).
|
|
72
|
+
console.log('\nAlso try (CLI demos — paste anywhere):');
|
|
73
|
+
console.log(' skills-manager cost --share # privacy-safe resident skill tax card');
|
|
74
|
+
console.log(' skills-manager doctor # health + security.high + residentCost');
|
|
70
75
|
}
|
|
71
76
|
/** `--agent` wins; one detected agent needs no question; several get the picker in a TTY, all of them otherwise. */
|
|
72
77
|
async function chooseAgents(opts, detected, resolveGlobalDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cost-output.js
CHANGED
|
@@ -65,4 +65,49 @@ export function renderCostLedger(ledger) {
|
|
|
65
65
|
export function renderPresetCostLine(cost) {
|
|
66
66
|
return `Resident cost: ${formatApproxTokens(cost.tokens)} tokens per message (${cost.method})`;
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Privacy-safe paste card for `skills-manager cost --share` (growth wedge):
|
|
70
|
+
* no absolute paths, agent-family labels only, top skills by total tokens,
|
|
71
|
+
* Try/Reproduce CTA + repo URL (not a circular "Share: cost --share"). Same ledger, thinner surface.
|
|
72
|
+
*/
|
|
73
|
+
export function renderCostShare(ledger) {
|
|
74
|
+
const skillTotals = new Map();
|
|
75
|
+
for (const group of ledger.paths) {
|
|
76
|
+
for (const line of group.skills) {
|
|
77
|
+
skillTotals.set(line.skill, (skillTotals.get(line.skill) ?? 0) + line.tokens);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const skillCount = skillTotals.size;
|
|
81
|
+
const heaviest = [...skillTotals.entries()]
|
|
82
|
+
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
|
|
83
|
+
.slice(0, 3)
|
|
84
|
+
.map(([skill, tokens]) => `${skill} ${formatApproxTokens(tokens)}`);
|
|
85
|
+
const pathBits = ledger.paths.map((group) => {
|
|
86
|
+
const agents = group.agents.length > 0 ? group.agents.join('+') : 'none';
|
|
87
|
+
return `${group.kind}/${agents}`;
|
|
88
|
+
});
|
|
89
|
+
const lines = [];
|
|
90
|
+
lines.push(`Resident skill tax · ${ledger.method} · skills-manager`);
|
|
91
|
+
lines.push(`${formatApproxTokens(ledger.totalTokens)} tokens / message · ${skillCount} skill(s) · ${ledger.paths.length} path(s)`);
|
|
92
|
+
if (pathBits.length > 0)
|
|
93
|
+
lines.push(`Paths: ${pathBits.join(' · ')}`);
|
|
94
|
+
if (heaviest.length > 0)
|
|
95
|
+
lines.push(`Heaviest: ${heaviest.join(' · ')}`);
|
|
96
|
+
const archived = ledger.suggestions.archived.length;
|
|
97
|
+
const scattered = ledger.suggestions.scattered.length;
|
|
98
|
+
if (archived > 0 || scattered > 0) {
|
|
99
|
+
const watch = [];
|
|
100
|
+
if (archived > 0)
|
|
101
|
+
watch.push(`${archived} archived still distributed`);
|
|
102
|
+
if (scattered > 0)
|
|
103
|
+
watch.push(`${scattered} scattered`);
|
|
104
|
+
lines.push(`Watch: ${watch.join(' · ')}`);
|
|
105
|
+
}
|
|
106
|
+
if (ledger.unmanaged > 0)
|
|
107
|
+
lines.push(`${ledger.unmanaged} unmanaged skill(s) not counted`);
|
|
108
|
+
lines.push('Try: npx skills-manager-cli');
|
|
109
|
+
lines.push('Reproduce: skills-manager cost --share');
|
|
110
|
+
lines.push('https://github.com/shenysun/skills-manager');
|
|
111
|
+
return `${lines.join('\n')}\n`;
|
|
112
|
+
}
|
|
68
113
|
//# sourceMappingURL=cost-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-output.js","sourceRoot":"","sources":["../../src/cli/cost-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cost-output.js","sourceRoot":"","sources":["../../src/cli/cost-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { formatApproxTokens } from '../core/services/cost-ledger-service.js';
|
|
2
|
+
/**
|
|
3
|
+
* Privacy-safe paste card for `skills-manager doctor --share` (growth wedge):
|
|
4
|
+
* counts and magnitudes only — never skillHome, broken-link paths, skill names,
|
|
5
|
+
* or warning text that may embed absolute paths. Try/Reproduce CTA + repo URL.
|
|
6
|
+
*/
|
|
7
|
+
export function renderDoctorShare(report) {
|
|
8
|
+
const cost = report.residentCost;
|
|
9
|
+
const dist = report.distribution;
|
|
10
|
+
const lines = [];
|
|
11
|
+
lines.push('Hub health · skills-manager');
|
|
12
|
+
lines.push(`${report.skillCount} skill(s) · managed ${dist.managedEntries} · outdated ${dist.outdated} · foreign ${dist.foreign}`);
|
|
13
|
+
lines.push(`Resident: ${formatApproxTokens(cost.totalTokens)} tokens / message · ${cost.method}`);
|
|
14
|
+
const scattered = cost.suggestions.scattered.length;
|
|
15
|
+
if (scattered > 0)
|
|
16
|
+
lines.push(`Watch: ${scattered} scattered`);
|
|
17
|
+
lines.push(`Security: ${report.security.high} high · ${report.security.scanner} · scanned ${report.security.scanned}`);
|
|
18
|
+
lines.push(report.warnings.length === 0 ? 'Warnings: none' : `Warnings: ${report.warnings.length}`);
|
|
19
|
+
if (report.brokenLinks.length > 0)
|
|
20
|
+
lines.push(`Broken links: ${report.brokenLinks.length}`);
|
|
21
|
+
if (report.importedWithoutSource.length > 0) {
|
|
22
|
+
lines.push(`Imported without source: ${report.importedWithoutSource.length}`);
|
|
23
|
+
}
|
|
24
|
+
lines.push('Try: npx skills-manager-cli');
|
|
25
|
+
lines.push('Reproduce: skills-manager doctor --share');
|
|
26
|
+
lines.push('https://github.com/shenysun/skills-manager');
|
|
27
|
+
return `${lines.join('\n')}\n`;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=doctor-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-output.js","sourceRoot":"","sources":["../../src/cli/doctor-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,UAAU,uBAAuB,IAAI,CAAC,cAAc,eAAe,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,OAAO,EAAE,CACvH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,SAAS,YAAY,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CACR,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,MAAM,CAAC,QAAQ,CAAC,OAAO,cAAc,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAC3G,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC"}
|