Thanks for your interest in contributing. Studio is an open-source project and contributions of all kinds are welcome — code, tests, docs, bug reports, and scenario ideas.
- Zig
0.16.0 - The Native SDK CLI:
npm install -g @native-sdk/cli
Verify your environment:
native doctor --strictgit clone https://github.com/ocpp-debugkit/studio.git
cd studio
native test # should pass
native dev # opens the appThe native CLI owns the build — there is no build.zig. Edit src/app.native
while native dev runs and the window hot-reloads.
Studio follows a milestone-driven, issue-first workflow:
- Find or open an issue. Every change starts with a tracking issue describing scope and acceptance criteria. Comment to claim it.
- Branch from
main:feat/…,fix/…,docs/…,chore/…,ci/…. - Implement with tests. Keep the change to one concern.
- Update living docs (
CURRENT_STATE.md, andAGENTS.mdif architecture changed) in the same branch. - Open a PR that links the issue (
Closes #N). Fill in what changed and how you tested it. - CI must be green before merge.
- Commits: Conventional Commits with an
area scope, e.g.
feat(engine): parse JSONL traces,fix(ui): …,docs: …,ci: …,chore: …. - Tests ship with code. No behavior merges without a test. Prefer headless
tests (
native test -Dplatform=null) so they run on every platform. - One concern per PR. Code, tests, and docs for a change travel together; unrelated cleanups go in their own PR.
- Style. Match the surrounding code.
.editorconfigsets indentation (4-space Zig, 2-space markup / YAML / JSON / Markdown).
native test -Dplatform=null # headless tests
native check --strict # markup + manifest
native doctor --strict # environment
./scripts/smoke.sh # drive the running app (builds with -Dautomation=true first)Treat all trace files, pasted content, socket data, and CLI arguments as untrusted: validate input, bound sizes, and never expose internal paths in error messages. Report vulnerabilities privately — see SECURITY.md. Never commit secrets or real identifiers.
Maintainers may use AI-assisted development tools, but all contributions must be reviewed, tested, documented, and scoped like normal engineering work. AI-generated code is held to the same standards as any other contribution: it must pass CI, include tests, be security-reviewed, and be understandable by a human reviewer.
Contributors using AI agents can point them at AGENTS.md for a structured overview of this repository's architecture, conventions, and build system. CURRENT_STATE.md reflects what has been built so far and what is in progress — use it to orient your agent before starting work.
No AI tool preference is assumed or required. The project does not endorse any specific AI tool.
This project follows the Contributor Covenant. By participating, you agree to uphold it.