Локальное ядро управления навыками: install из git/локальной папки, junction/symlink-линковка в scope агента, .skillignore-фильтр, build manifest, project-манифест. 0 завязок на сеть/auth — stdlib + tomli-w + pathspec + platformdirs.
Project description
s-skillkit
Локальное ядро управления навыками (skills) — SIBLING librarykit
(не зависит от него, от httpx, auth или сети). Только локальная ФС-механика.
Что внутри
SkillStore(skillkit.installer) — материализация навыка в центральный стор и линковка (junction на Windows / symlink на POSIX) в scope агента:install_from_git/install_from_path/install/materializeupdate(инкрементальный sha-diff),link_existing,migrate_scoperemove(keep-local / purge)- P0 stub-would-clobber guard (stub не затирает живой контент).
targets—IAgentTarget+detect_agent/get_target(Claude Code, Codex, Antigravity).manifest—build_manifestдля publish + ридеры frontmatter /_skill_meta.toml.filter—.skillignore/files-allowlist фильтр (pathspec).project— проектный манифест.skills-hub/skills.toml.Paths— инъекция каталогов (store_dir/config_dir/bin_dir).Paths.default()— нативная раскладка через platformdirs.
Инъекция вместо завязки на конфиг
Кит НЕ читает env/config. Каталоги передаются явным Paths; git-учётка —
инъектируемым credential_resolver (callable url -> url). Потребитель (CLI)
читает env-токен и собирает резолвер:
from skillkit import SkillStore, Paths, get_target
paths = Paths.default() # или из ClientConfig
def resolver(url: str) -> str:
token = os.environ.get("SKILLS_HUB_GIT_TOKEN")
if token and url.startswith("https://") and "@" not in url:
return url.replace("https://", f"https://oauth2:{token}@", 1)
return url
store = SkillStore(get_target(None), paths.store_dir, credential_resolver=resolver)
Зависимости
tomli-w, pathspec, platformdirs. requires-python >=3.11. MIT.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file s_skillkit-0.1.0.tar.gz.
File metadata
- Download URL: s_skillkit-0.1.0.tar.gz
- Upload date:
- Size: 56.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39390d1256bf28b45bfbc284889ade9d40651e7bcfb8d7b15e46db0829e61fab
|
|
| MD5 |
51dc2aa9c3e3b4653b45f4dead311924
|
|
| BLAKE2b-256 |
973200909f5c0c8f49dfd752f2a89aec43eea6ef6e3b01e4c0daeb6dd7486539
|
File details
Details for the file s_skillkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: s_skillkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 48.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20dab6cc207666b846b2d6b169bba6adcd518f9be8db7e55c6335a80f642d02f
|
|
| MD5 |
16a3007aa1d12ad003d313354d2f1064
|
|
| BLAKE2b-256 |
ceb35c2b7de479e6a1bead6db31029c8d2dd94acddac75190ec6160082dcba9a
|