Git-native CLI for versioning AI Skill packages: prompts, schemas, golden tests, and release artifacts.
Project description
sit
Git-native versioning for AI Skill packages.
sit puts prompts, schemas, golden tests, and release artifacts under semantic version control. It knows what changed, classifies risk, and gates your commits and releases.
pip install sit-toolkit
The problem
When you version a prompt or schema with plain Git, you get +13 -2 lines. You don't know if it's a typo fix or a breaking behavior change. sit does.
$ sit diff v0.3.0..v0.4.0
Skill Diff
Baseline: paper-webpage-builder@0.3.0
Current: paper-webpage-builder@0.4.0
Risk: review-required
Suggested version bump: minor
[prompt]
- PROMPT changed SKILL.md (+13 -2; headings: Core Rule, Workflow)
[script]
- SCRIPT changed scripts/scan_paper.py (review required)
[reference]
- REFERENCE changed references/design_principles.md (+27 -3)
Quick start
# New package
sit init my-skill && cd my-skill
# Existing project
sit standardize .
# Validate, test, review
sit install-hooks .
sit validate . && sit test .
sit diff HEAD~1..HEAD
sit review HEAD~1..HEAD
sit pr-summary HEAD~1..HEAD
# Release
sit release minor . --bundle
Commands
Lifecycle: sit init, sit standardize, sit onboard, sit doctor
Quality: sit validate, sit test, sit test --run, sit deps check
Diff & Review: sit diff, sit review, sit pr-summary, sit report, sit ci-summary
Release & Safety: sit install-hooks, sit commit, sit release, sit undo
Git passthrough: sit add, sit push, sit pull, sit branch, sit checkout, sit log
Agent integration
sit exposes its capabilities for AI agents via three interfaces:
| Interface | Usage |
|---|---|
| Auto-discovery | sit onboard --agent — one-command setup for Codex, Claude Code, Cursor, etc. |
| Python SDK | from sit.sdk import Sit — direct API calls |
| MCP Server | pip install 'sit-toolkit[mcp]' — 12 tools over stdio |
| LLM Tool-Use | from sit.tool_use import get_tools_openai — OpenAI & Anthropic schemas |
Agent auto-discovery
# Add agent config to an existing skill package
sit onboard --agent ./my-skill
# Or combine with full onboarding
sit onboard --agent ./legacy-project
This generates .mcp.json (MCP server config) and AGENTS.md (agent rules).
Codex reads AGENTS.md and will run the sit loop after Skill changes:
git status --short, sit validate, sit test, and sit diff HEAD..WORKTREE
for uncommitted working-tree review. Claude Code, Cursor, and other MCP-aware
editors can also discover the sit MCP server through .mcp.json. Restart your
editor after running if it needs to reload project instructions or MCP config.
Python SDK example
from sit.sdk import Sit
s = Sit("./my-skill-package")
s.info() # package metadata
s.validate() # structure checks
s.test() # golden tests
s.diff("./old") # semantic diff
s.pr_summary("./old") # PR summary
s.report(compare="./old") # full report
MCP Server config
pip install 'sit-toolkit[mcp]'
sit-mcp-server
{
"mcpServers": {
"sit": { "command": "sit-mcp-server" }
}
}
LLM Tool-Use schema
from sit.tool_use import get_tools_openai, get_tools_anthropic
tools = get_tools_openai() # OpenAI format
tools = get_tools_anthropic() # Anthropic format
CI integration
sit init generates a GitHub Actions workflow that validates, tests, and posts a semantic summary to your PR:
- run: sit validate "$SIT_PACKAGE_DIR"
- run: sit test "$SIT_PACKAGE_DIR"
- run: sit test "$SIT_PACKAGE_DIR" --run
- run: sit ci-summary "$SIT_PACKAGE_DIR" --compare origin/main..HEAD >> "$GITHUB_STEP_SUMMARY"
License
Apache-2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
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 sit_toolkit-0.23.0.tar.gz.
File metadata
- Download URL: sit_toolkit-0.23.0.tar.gz
- Upload date:
- Size: 86.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17d458b74972ad054a581027ab72cf86295fa2cc6614ffffa01246e5192f6355
|
|
| MD5 |
8c8fb8d623ce435e017efd9be454ab19
|
|
| BLAKE2b-256 |
36f191b832bc279c8103d9e693113cbaa02193a70d796046de91e09c4fd6ec88
|
Provenance
The following attestation bundles were made for sit_toolkit-0.23.0.tar.gz:
Publisher:
release.yml on OpenRaiser/Sit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sit_toolkit-0.23.0.tar.gz -
Subject digest:
17d458b74972ad054a581027ab72cf86295fa2cc6614ffffa01246e5192f6355 - Sigstore transparency entry: 1813121488
- Sigstore integration time:
-
Permalink:
OpenRaiser/Sit@de678b5ae44e1b17c631f6ab5719678b91e3b5e8 -
Branch / Tag:
refs/tags/v0.23.0 - Owner: https://github.com/OpenRaiser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de678b5ae44e1b17c631f6ab5719678b91e3b5e8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sit_toolkit-0.23.0-py3-none-any.whl.
File metadata
- Download URL: sit_toolkit-0.23.0-py3-none-any.whl
- Upload date:
- Size: 80.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4424042bdc751c0ec46df036f6127178c2bccb6a4832238d68ec1d850031e45
|
|
| MD5 |
f6d0c24ce678dce042d5896a953981ca
|
|
| BLAKE2b-256 |
69dc064c955d8bd029b138d7ebbedf8e0905d4158d0c0e74ad6baaa8826dd18b
|
Provenance
The following attestation bundles were made for sit_toolkit-0.23.0-py3-none-any.whl:
Publisher:
release.yml on OpenRaiser/Sit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sit_toolkit-0.23.0-py3-none-any.whl -
Subject digest:
a4424042bdc751c0ec46df036f6127178c2bccb6a4832238d68ec1d850031e45 - Sigstore transparency entry: 1813121701
- Sigstore integration time:
-
Permalink:
OpenRaiser/Sit@de678b5ae44e1b17c631f6ab5719678b91e3b5e8 -
Branch / Tag:
refs/tags/v0.23.0 - Owner: https://github.com/OpenRaiser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de678b5ae44e1b17c631f6ab5719678b91e3b5e8 -
Trigger Event:
push
-
Statement type: