slickit 0.2.0

Semantic, LLM-Interpretable Component Kit — typed component system
Documentation
# Contributing

## Setup

```bash
# Clone and test
git clone https://github.com/mox-labs/slick.git
cd slick
cargo test --all-features
```

## Conventions

**Commits**: [Conventional Commits](https://www.conventionalcommits.org/)

```
feat(manifest): add invoke field
fix(registry): handle empty config
refactor(wasm): simplify Kind conversion
```

Types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `perf`

**Versioning**: [SemVer](https://semver.org/). The version in root `Cargo.toml` is the source of truth. Crust versions follow.

**Branching**: One branch per change, branch from `main`.

```bash
git checkout -b feat/your-feature origin/main
```

## Structure

```
src/
  lib.rs          # re-exports
  registry.rs     # TypedConfig, TypedRegistry, TypedRegistryBuilder
  manifest.rs     # Kind, Manifest (feature = "manifest")
crusts/
  python/         # PyO3 bindings → PyPI
  wasm/           # wasm-bindgen bindings → npm
```

Rust is canonical. Crusts are thin wrappers — no logic, just type bridging.

## Testing

```bash
cargo test --all-features    # all tests + doc tests
cargo clippy --all-features  # lint
cargo doc --all-features     # docs
```

## Releasing

Push a version tag to trigger the release workflow:

```bash
# Update version in Cargo.toml, crusts/python/Cargo.toml, crusts/wasm/Cargo.toml
git tag v0.1.0
git push origin v0.1.0
```

Publishes to crates.io, PyPI, and npm.

## License

By contributing, you agree that your contributions will be licensed under Apache-2.0.