super-skill-cli 0.9.2__py3-none-any.whl
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.
- super_skill/__init__.py +9 -0
- super_skill/candidate.py +213 -0
- super_skill/capture.py +76 -0
- super_skill/cli.py +381 -0
- super_skill/config.py +25 -0
- super_skill/doctor.py +119 -0
- super_skill/evallite.py +93 -0
- super_skill/gate.py +102 -0
- super_skill/hooks.py +33 -0
- super_skill/mine.py +101 -0
- super_skill/minestate.py +57 -0
- super_skill/redact.py +95 -0
- super_skill/registry.py +221 -0
- super_skill/schemas.py +207 -0
- super_skill/seed.py +75 -0
- super_skill/skillmd.py +61 -0
- super_skill_cli-0.9.2.dist-info/METADATA +213 -0
- super_skill_cli-0.9.2.dist-info/RECORD +21 -0
- super_skill_cli-0.9.2.dist-info/WHEEL +4 -0
- super_skill_cli-0.9.2.dist-info/entry_points.txt +2 -0
- super_skill_cli-0.9.2.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: super-skill-cli
|
|
3
|
+
Version: 0.9.2
|
|
4
|
+
Summary: Personal Agent-Skill package manager: versioned registry, seed import, explain, rollback (M0+WS scope).
|
|
5
|
+
Project-URL: Homepage, https://github.com/sdsrss/super-skill
|
|
6
|
+
Project-URL: Repository, https://github.com/sdsrss/super-skill
|
|
7
|
+
Author-email: sdsrss <sammuaicode@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: agent-skills,claude-code,package-manager,registry,skill-manager
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
16
|
+
Requires-Python: >=3.12
|
|
17
|
+
Requires-Dist: pydantic>=2.6
|
|
18
|
+
Requires-Dist: pyyaml>=6.0
|
|
19
|
+
Requires-Dist: typer>=0.12
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
<!-- SEO: Claude Code Agent Skills package manager — version control, rollback, provenance, integrity checks for ~/.claude/skills and ~/.agents/skills (Codex). -->
|
|
23
|
+
|
|
24
|
+
# super-skill
|
|
25
|
+
|
|
26
|
+
**Version control, rollback, and provenance for your Claude Code and Codex Agent Skills.**
|
|
27
|
+
super-skill is a git-backed package manager for the skills in `~/.claude/skills`
|
|
28
|
+
(and Codex's `~/.agents/skills`): it puts every skill under version history,
|
|
29
|
+
tells you where each one came from, rolls any skill back with one command, and
|
|
30
|
+
checks the registry for tampering — with secret-redacted session capture and
|
|
31
|
+
safety-gated promotion built in.
|
|
32
|
+
|
|
33
|
+
**English** · [简体中文](README.zh-CN.md)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Why super-skill
|
|
38
|
+
|
|
39
|
+
Agent Skills are just Markdown files in a directory. That directory has no
|
|
40
|
+
history: edit a `SKILL.md` and the previous version is gone; you can't tell which
|
|
41
|
+
skill came from where, why it's there, or whether one was quietly changed. There
|
|
42
|
+
is no undo.
|
|
43
|
+
|
|
44
|
+
super-skill treats your skills like packages: **versioned, auditable, reversible.**
|
|
45
|
+
|
|
46
|
+
## Highlights
|
|
47
|
+
|
|
48
|
+
- **One-command rollback** — a skill regressed? `super-skill rollback <id>` switches
|
|
49
|
+
the active version and re-materializes it to your skills directory.
|
|
50
|
+
- **Provenance & audit** — `super-skill explain <id>` answers *why does this skill
|
|
51
|
+
exist, where did it come from, how do I undo it* from an immutable audit trail.
|
|
52
|
+
- **Tamper detection** — `super-skill doctor` re-hashes every stored version against
|
|
53
|
+
the hash recorded at promotion; `--fix` restores git-recoverable versions.
|
|
54
|
+
- **Redaction before disk** — session capture strips secrets and private paths
|
|
55
|
+
*before* anything is written; secret values never reach the log.
|
|
56
|
+
- **Safety-gated promotion** — a candidate becomes a skill only through two hard
|
|
57
|
+
gates (an instruction-layer adversarial scan + a deterministic eval-lite).
|
|
58
|
+
- **Runs where your agent runs** — a Claude Code plugin, a Codex install package,
|
|
59
|
+
and a host-agnostic CLI, all driven by the same `super-skill` command.
|
|
60
|
+
|
|
61
|
+
## Install
|
|
62
|
+
|
|
63
|
+
### Claude Code (plugin)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
/plugin marketplace add sdsrss/super-skill
|
|
67
|
+
/plugin install super-skill
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Adds slash commands (`/super-skill:status`, `:mine`, `:doctor`, `:candidates`,
|
|
71
|
+
`:seed`), a `super-skill` skill Claude invokes when you ask to version, explain,
|
|
72
|
+
or roll back a skill, and capture hooks. The plugin drives the CLI, so install
|
|
73
|
+
that too:
|
|
74
|
+
|
|
75
|
+
### CLI
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
uv tool install super-skill-cli # or: pipx install super-skill-cli
|
|
79
|
+
super-skill status # the command is `super-skill`
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The PyPI distribution is **`super-skill-cli`** (the bare `super-skill` name
|
|
83
|
+
belongs to an unrelated package); the installed command is `super-skill`.
|
|
84
|
+
One-shot, no install: `uvx --from super-skill-cli super-skill status`.
|
|
85
|
+
|
|
86
|
+
### Codex
|
|
87
|
+
|
|
88
|
+
Codex reads open-standard `SKILL.md` from `~/.agents/skills` — no marketplace
|
|
89
|
+
needed:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pipx install super-skill-cli
|
|
93
|
+
codex/install.sh # drops the meta-skill into ~/.agents/skills
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Point the CLI at the Codex directory with `SUPER_SKILL_HOST_SKILLS=~/.agents/skills`.
|
|
97
|
+
See [`codex/README.md`](codex/README.md).
|
|
98
|
+
|
|
99
|
+
## Features
|
|
100
|
+
|
|
101
|
+
| Command | What it does |
|
|
102
|
+
|---|---|
|
|
103
|
+
| `seed` | Import existing `~/.claude/skills` under version control — read-only on the host, idempotent by content hash. |
|
|
104
|
+
| `status` / `list` | Registry summary (skills, versions, events, candidates) and the skill list. |
|
|
105
|
+
| `show <id>` | Frontmatter, version history, and content hashes for one skill. |
|
|
106
|
+
| `explain <id>` | Provenance chain + audit trail + the exact rollback command. |
|
|
107
|
+
| `rollback <id> [--to vN]` | Switch the active version and re-materialize it to the host. |
|
|
108
|
+
| `doctor` / `doctor --fix` | Integrity check (hashes, active pointer, host sync); `--fix` restores git-recoverable versions and re-materializes drift, then re-verifies. |
|
|
109
|
+
| `capture` | Append a host event to the redacted WAL — reads hook JSON on stdin, never fails the session. |
|
|
110
|
+
| `mine` | Surface task families recurring across ≥3 distinct sessions; nudges you once enough new sessions accumulate. |
|
|
111
|
+
| `candidate draft/show/approve/reject` | Turn a mined family into a skill: draft → review → two hard gates → promote & materialize. |
|
|
112
|
+
| `hooks-config` | Print the `settings.json` hooks block that wires session capture. |
|
|
113
|
+
|
|
114
|
+
State lives in `~/.super-skill/` — a real git repository, so **audit and rollback
|
|
115
|
+
are git.**
|
|
116
|
+
|
|
117
|
+
## How it's different
|
|
118
|
+
|
|
119
|
+
| | Plain `~/.claude/skills` | super-skill |
|
|
120
|
+
|---|:---:|:---:|
|
|
121
|
+
| Version history per skill | ✗ | ✓ (git-backed DAG) |
|
|
122
|
+
| One-command rollback | ✗ | ✓ |
|
|
123
|
+
| Provenance / "why is this here" | ✗ | ✓ |
|
|
124
|
+
| Tamper / drift detection | ✗ | ✓ (`doctor`) |
|
|
125
|
+
| Secret redaction on capture | ✗ | ✓ (before disk) |
|
|
126
|
+
| Safety-gated promotion | ✗ | ✓ (two hard gates) |
|
|
127
|
+
| Claude Code **and** Codex | manual | ✓ one CLI |
|
|
128
|
+
|
|
129
|
+
super-skill is a **package manager, not a skill generator**: it manages, versions,
|
|
130
|
+
and audits the skills you already have or approve — it does not write skills for
|
|
131
|
+
you or change their behavior behind your back. Every write path is explicit and
|
|
132
|
+
reversible; your skills directory is only ever written on `approve`, `rollback`,
|
|
133
|
+
or `doctor --fix` (`seed` reads it but never modifies it).
|
|
134
|
+
|
|
135
|
+
## Usage
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Bring your current skills under version control
|
|
139
|
+
super-skill seed
|
|
140
|
+
super-skill status
|
|
141
|
+
|
|
142
|
+
# See where a skill came from and how to undo it
|
|
143
|
+
super-skill explain my-skill
|
|
144
|
+
|
|
145
|
+
# Undo a bad change
|
|
146
|
+
super-skill rollback my-skill
|
|
147
|
+
|
|
148
|
+
# Check nothing was tampered with; repair recoverable drift
|
|
149
|
+
super-skill doctor
|
|
150
|
+
super-skill doctor --fix
|
|
151
|
+
|
|
152
|
+
# Turn recurring work into a skill (capture must be wired first — see hooks-config)
|
|
153
|
+
super-skill mine
|
|
154
|
+
super-skill candidate draft
|
|
155
|
+
super-skill candidate show <id> # edit the draft, then:
|
|
156
|
+
super-skill candidate approve <id>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Configuration
|
|
160
|
+
|
|
161
|
+
| Env var | Default | Purpose |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| `SUPER_SKILL_HOME` | `~/.super-skill` | Registry + control state (a git repo). |
|
|
164
|
+
| `SUPER_SKILL_HOST_SKILLS` | `~/.claude/skills` | Skills directory to seed/materialize (set to `~/.agents/skills` for Codex). |
|
|
165
|
+
| `SUPER_SKILL_MINE_REMINDER` | `3` | Distinct unmined sessions before `status` nudges you to mine. |
|
|
166
|
+
|
|
167
|
+
## Scope
|
|
168
|
+
|
|
169
|
+
super-skill is deliberately the **package-manager** form (milestones M0 + WS). The
|
|
170
|
+
self-learning loop — automatically optimizing, distilling, and promoting skills
|
|
171
|
+
(milestones M1–M5) — is a **deferred research track**: a measurement of real usage
|
|
172
|
+
did not clear the threshold that would justify building it, so v1 is frozen as a
|
|
173
|
+
package manager with audit and rollback. It does not self-evolve your skills, and
|
|
174
|
+
this README does not imply it does.
|
|
175
|
+
|
|
176
|
+
## FAQ
|
|
177
|
+
|
|
178
|
+
**Does super-skill run or change my skills' behavior?**
|
|
179
|
+
No. It manages the files (version, audit, rollback, integrity) and never edits a
|
|
180
|
+
skill's content on its own. Approving a candidate promotes a draft *you* reviewed.
|
|
181
|
+
|
|
182
|
+
**Will it touch `~/.claude/skills` without asking?**
|
|
183
|
+
Three commands write there — `approve` (promote a reviewed candidate), `rollback`,
|
|
184
|
+
and `doctor --fix`. `seed` reads your skills into the registry but never modifies
|
|
185
|
+
them; `status`/`list`/`show`/`explain`/`doctor` are read-only.
|
|
186
|
+
|
|
187
|
+
**Are my secrets safe in captured sessions?**
|
|
188
|
+
Redaction runs *before* any write: secret values and private paths never reach the
|
|
189
|
+
log. Capture is off until you wire it (`super-skill hooks-config`).
|
|
190
|
+
|
|
191
|
+
**Do I need PyPI for the plugin to work?**
|
|
192
|
+
The plugin calls the `super-skill` CLI on your PATH. Until the PyPI release,
|
|
193
|
+
install the CLI from source: `uv tool install git+https://github.com/sdsrss/super-skill`.
|
|
194
|
+
|
|
195
|
+
**Does it support Codex?**
|
|
196
|
+
Yes — the same CLI plus a `codex/` install package for `~/.agents/skills`. A Codex
|
|
197
|
+
*Target Adapter inside the CLI* is a later item; distributing skills to Codex needs
|
|
198
|
+
no extra step since they already live in `~/.agents/skills`.
|
|
199
|
+
|
|
200
|
+
## Develop
|
|
201
|
+
|
|
202
|
+
Uses [uv](https://docs.astral.sh/uv/). Python 3.12.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
uv sync # venv + deps
|
|
206
|
+
uv run pytest # tests
|
|
207
|
+
uv run ruff check . # lint
|
|
208
|
+
uv run mypy super_skill/ # typecheck
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## License
|
|
212
|
+
|
|
213
|
+
[MIT](LICENSE) © sdsrss
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
super_skill/__init__.py,sha256=cc5oJud7loWIL4XNHAqG1wHM4a9f7dmiIW8j6Am4imA,385
|
|
2
|
+
super_skill/candidate.py,sha256=ts2D0HWIjMEKG17BgOogB6MMMN8fZX4xwp6pcM01miM,7483
|
|
3
|
+
super_skill/capture.py,sha256=lBxP3N3ZhEV-Ab_beOpSfx3aszdzV_k_RpkEeIlCgFg,2671
|
|
4
|
+
super_skill/cli.py,sha256=H8xvzxsBQU6kXL733IqmMV3HLExDA6VijA85mrxdV68,15049
|
|
5
|
+
super_skill/config.py,sha256=CgTuypnw5dWyQjznKRI6H-tZjq0ANED5qBnJ6MJk8mY,745
|
|
6
|
+
super_skill/doctor.py,sha256=lw7A7KnJvp9EEii1ZOFqx9JUghXbSV-Vr5IWrnouPtw,5053
|
|
7
|
+
super_skill/evallite.py,sha256=B-76wKpL33YpdkCCrekzTvxDgwkRV9ANqVcOlOxaWcA,3223
|
|
8
|
+
super_skill/gate.py,sha256=fhkT9GbeXYVwAxFOuKKHGus0EEPkjvnzo-21obmhVqo,3689
|
|
9
|
+
super_skill/hooks.py,sha256=sx-XOxc5wdUOJ2cq4ru2Ty3dab1U5t-oRgxxDSts8cY,1377
|
|
10
|
+
super_skill/mine.py,sha256=OMkKFqVB0lopieF36K6RZTIXW_O3qO1qavZx_c_TMx0,3398
|
|
11
|
+
super_skill/minestate.py,sha256=8SRVqh_0ivxl-HUI1OwDAK_dvt6wuAfbDwsjAhs5HkQ,1803
|
|
12
|
+
super_skill/redact.py,sha256=ThuQ7GdPu83-yNcp9WK61PXW0jVRQnBYiI70MbThqDU,3614
|
|
13
|
+
super_skill/registry.py,sha256=tOwc48hghuBNRVo_7KCGsoV67uzLeueBikVvJSUsyNo,8312
|
|
14
|
+
super_skill/schemas.py,sha256=hYOVPv-Hv88rT3xKBKOAin23OdoRFGNVdiD5g0MaVXA,6380
|
|
15
|
+
super_skill/seed.py,sha256=RNGr-fqOqNCSQ3zfNUCifJUU-SRacWfBWzwfiJD47n8,2457
|
|
16
|
+
super_skill/skillmd.py,sha256=IsMW8SqK49soOM1VtTLowyrDkZKTHRkFIf1Yw_hkQvE,1882
|
|
17
|
+
super_skill_cli-0.9.2.dist-info/METADATA,sha256=3LS0Yl2LrgLnUqK8G_19cskdpVNqRdYhtBiDKDFl3Z4,8917
|
|
18
|
+
super_skill_cli-0.9.2.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
19
|
+
super_skill_cli-0.9.2.dist-info/entry_points.txt,sha256=0lRmyO-45Vmt5N8wifWeERHTTxf8hiMiUPBO04YgqlU,52
|
|
20
|
+
super_skill_cli-0.9.2.dist-info/licenses/LICENSE,sha256=OW7siLAASCvvOkdUSfpledx2yHcZJlQgyOlHlUrXDpA,1063
|
|
21
|
+
super_skill_cli-0.9.2.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 sdsrss
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|