---
last_verified: 2026-05-30
verified_version: 0.1.34
owner: backend
freshness_days: 30
---

# Development Guide — pvtcoms

## Prerequisites

- Rust 1.95+ (`rustup`), with `cargo`, `rustfmt`, `clippy`
- Python 3 (pipeline tooling)
- (Later) Android SDK/NDK + JDK 17 for the Android client; Node + Tauri CLI for desktop
- Tor is embedded via `arti` (no system Tor required)

## Getting Started

```bash
git clone <REPO_URL>
cd pvtcoms
# Core crate (once scaffolded at M0/M1):
cd core && cargo build && cargo test
```

## Common Commands

| Command | Purpose |
|---------|---------|
| `cargo build` | Build the Rust core |
| `cargo test` | Run the test suite (test gate looks for `test result: ok`) |
| `cargo clippy --all-targets -- -D warnings` | Lint |
| `cargo fmt` | Format (auto-run on save via PostToolUse hook) |
| `python3 scripts/docs/backlog_ops.py add "..." --category feature` | Capture a request |

## Environment Variables

No secrets in env or repo. Build-time config only.

| Variable | Purpose | Required |
|----------|---------|----------|
| `RUST_LOG` | Log verbosity (must never emit secrets/plaintext/keys) | No |

## Project Conventions

- Follow `.claude/rules/coding-standards.md` (security-critical: never roll your own crypto; never log secrets; zeroize;
  fail closed; no telemetry).
- Use the backlog workflow before coding: `backlog_ops.py add "Title" --category <cat>` → `start` → code+test → `done` →
  `promote`.
- Run tests before committing (enforced by pre-commit hooks).
- Keep the crypto in a small, auditable core crate; a crypto-primitive change requires an ADR.
