Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1288fd9

Browse files
committed
docs: update CLAUDE.md with ADR-024..032 references, crate/module tables, and build commands
Synchronize project instructions to reflect the full RuvSense (ADR-029/030), RuView (ADR-031), and security hardening (ADR-032) work now present on this branch. Adds comprehensive crate and module reference tables, updated workspace test commands, and witness verification instructions. Co-Authored-By: claude-flow <[email protected]>
1 parent 95c6813 commit 1288fd9

1 file changed

Lines changed: 85 additions & 17 deletions

File tree

claude.md

Lines changed: 85 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,49 @@
44

55
WiFi-based human pose estimation using Channel State Information (CSI).
66
Dual codebase: Python v1 (`v1/`) and Rust port (`rust-port/wifi-densepose-rs/`).
7-
87
### Key Rust Crates
9-
- `wifi-densepose-signal` — SOTA signal processing (conjugate mult, Hampel, Fresnel, BVP, spectrogram)
10-
- `wifi-densepose-train` — Training pipeline with ruvector integration (ADR-016)
11-
- `wifi-densepose-mat` — Disaster detection module (MAT, multi-AP, triage)
12-
- `wifi-densepose-nn` — Neural network inference (DensePose head, RCNN)
13-
- `wifi-densepose-hardware` — ESP32 aggregator, hardware interfaces
8+
| Crate | Description |
9+
|-------|-------------|
10+
| `wifi-densepose-core` | Core types, traits, error types, CSI frame primitives |
11+
| `wifi-densepose-signal` | SOTA signal processing + RuvSense multistatic sensing (14 modules) |
12+
| `wifi-densepose-nn` | Neural network inference (ONNX, PyTorch, Candle backends) |
13+
| `wifi-densepose-train` | Training pipeline with ruvector integration + ruview_metrics |
14+
| `wifi-densepose-mat` | Mass Casualty Assessment Tool — disaster survivor detection |
15+
| `wifi-densepose-hardware` | ESP32 aggregator, TDM protocol, channel hopping firmware |
16+
| `wifi-densepose-ruvector` | RuVector v2.0.4 integration + cross-viewpoint fusion (5 modules) |
17+
| `wifi-densepose-api` | REST API (Axum) |
18+
| `wifi-densepose-db` | Database layer (Postgres, SQLite, Redis) |
19+
| `wifi-densepose-config` | Configuration management |
20+
| `wifi-densepose-wasm` | WebAssembly bindings for browser deployment |
21+
| `wifi-densepose-cli` | CLI tool (`wifi-densepose` binary) |
22+
| `wifi-densepose-sensing-server` | Lightweight Axum server for WiFi sensing UI |
23+
| `wifi-densepose-wifiscan` | Multi-BSSID WiFi scanning (ADR-022) |
24+
| `wifi-densepose-vitals` | ESP32 CSI-grade vital sign extraction (ADR-021) |
25+
26+
### RuvSense Modules (`signal/src/ruvsense/`)
27+
| Module | Purpose |
28+
|--------|---------|
29+
| `multiband.rs` | Multi-band CSI frame fusion, cross-channel coherence |
30+
| `phase_align.rs` | Iterative LO phase offset estimation, circular mean |
31+
| `multistatic.rs` | Attention-weighted fusion, geometric diversity |
32+
| `coherence.rs` | Z-score coherence scoring, DriftProfile |
33+
| `coherence_gate.rs` | Accept/PredictOnly/Reject/Recalibrate gate decisions |
34+
| `pose_tracker.rs` | 17-keypoint Kalman tracker with AETHER re-ID embeddings |
35+
| `field_model.rs` | SVD room eigenstructure, perturbation extraction |
36+
| `tomography.rs` | RF tomography, ISTA L1 solver, voxel grid |
37+
| `longitudinal.rs` | Welford stats, biomechanics drift detection |
38+
| `intention.rs` | Pre-movement lead signals (200-500ms) |
39+
| `cross_room.rs` | Environment fingerprinting, transition graph |
40+
| `gesture.rs` | DTW template matching gesture classifier |
41+
| `adversarial.rs` | Physically impossible signal detection, multi-link consistency |
42+
43+
### Cross-Viewpoint Fusion (`ruvector/src/viewpoint/`)
44+
| Module | Purpose |
45+
|--------|---------|
46+
| `attention.rs` | CrossViewpointAttention, GeometricBias, softmax with G_bias |
47+
| `geometry.rs` | GeometricDiversityIndex, Cramer-Rao bounds, Fisher Information |
48+
| `coherence.rs` | Phase phasor coherence, hysteresis gate |
49+
| `fusion.rs` | MultistaticArray aggregate root, domain events |
1450

1551
### RuVector v2.0.4 Integration (ADR-016 complete, ADR-017 proposed)
1652
All 5 ruvector crates integrated in workspace:
@@ -21,7 +57,7 @@ All 5 ruvector crates integrated in workspace:
2157
- `ruvector-attention``model.rs` (apply_spatial_attention) + `bvp.rs`
2258

2359
### Architecture Decisions
24-
31 ADRs in `docs/adr/` (ADR-001 through ADR-031). Key ones:
60+
32 ADRs in `docs/adr/` (ADR-001 through ADR-032). Key ones:
2561
- ADR-014: SOTA signal processing (Accepted)
2662
- ADR-015: MM-Fi + Wi-Pose training datasets (Accepted)
2763
- ADR-016: RuVector training pipeline integration (Accepted — complete)
@@ -32,23 +68,47 @@ All 5 ruvector crates integrated in workspace:
3268
- ADR-029: RuvSense multistatic sensing mode (Proposed)
3369
- ADR-030: RuvSense persistent field model (Proposed)
3470
- ADR-031: RuView sensing-first RF mode (Proposed)
71+
- ADR-032: Multistatic mesh security hardening (Proposed)
3572

3673
### Build & Test Commands (this repo)
3774
```bash
38-
# Rust — full workspace tests (1,031 tests, ~2 min)
75+
# Rust — full workspace tests (1,031+ tests, ~2 min)
3976
cd rust-port/wifi-densepose-rs
4077
cargo test --workspace --no-default-features
4178

4279
# Rust — single crate check (no GPU needed)
4380
cargo check -p wifi-densepose-train --no-default-features
4481

82+
# Rust — publish crates (dependency order)
83+
cargo publish -p wifi-densepose-core --no-default-features
84+
cargo publish -p wifi-densepose-signal --no-default-features
85+
# ... see crate publishing order below
86+
4587
# Python — deterministic proof verification (SHA-256)
4688
python v1/data/proof/verify.py
4789

4890
# Python — test suite
4991
cd v1 && python -m pytest tests/ -x -q
5092
```
5193

94+
### Crate Publishing Order
95+
Crates must be published in dependency order:
96+
1. `wifi-densepose-core` (no internal deps)
97+
2. `wifi-densepose-vitals` (no internal deps)
98+
3. `wifi-densepose-wifiscan` (no internal deps)
99+
4. `wifi-densepose-hardware` (no internal deps)
100+
5. `wifi-densepose-config` (no internal deps)
101+
6. `wifi-densepose-db` (no internal deps)
102+
7. `wifi-densepose-signal` (depends on core)
103+
8. `wifi-densepose-nn` (no internal deps, workspace only)
104+
9. `wifi-densepose-ruvector` (no internal deps, workspace only)
105+
10. `wifi-densepose-train` (depends on signal, nn)
106+
11. `wifi-densepose-mat` (depends on core, signal, nn)
107+
12. `wifi-densepose-api` (no internal deps)
108+
13. `wifi-densepose-wasm` (depends on mat)
109+
14. `wifi-densepose-sensing-server` (depends on wifiscan)
110+
15. `wifi-densepose-cli` (depends on mat)
111+
52112
### Validation & Witness Verification (ADR-028)
53113

54114
**After any significant code change, run the full validation:**
@@ -95,6 +155,7 @@ python v1/data/proof/verify.py
95155

96156
### Branch
97157
Default branch: `main`
158+
Active feature branch: `ruvsense-full-implementation` (PR #77)
98159

99160
---
100161

@@ -112,8 +173,13 @@ Default branch: `main`
112173
## File Organization
113174

114175
- NEVER save to root folder — use the directories below
115-
- `docs/adr/` — Architecture Decision Records
116-
- `rust-port/wifi-densepose-rs/crates/` — Rust workspace crates (signal, train, mat, nn, hardware)
176+
- `docs/adr/` — Architecture Decision Records (32 ADRs)
177+
- `docs/ddd/` — Domain-Driven Design models
178+
- `rust-port/wifi-densepose-rs/crates/` — Rust workspace crates (15 crates)
179+
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/` — RuvSense multistatic modules (14 files)
180+
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/viewpoint/` — Cross-viewpoint fusion (5 files)
181+
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-hardware/src/esp32/` — ESP32 TDM protocol
182+
- `firmware/esp32-csi-node/main/` — ESP32 C firmware (channel hopping, NVS config, TDM)
117183
- `v1/src/` — Python source (core, hardware, services, api)
118184
- `v1/data/proof/` — Deterministic CSI proof bundles
119185
- `.claude-flow/` — Claude Flow coordination state (committed for team sharing)
@@ -143,13 +209,15 @@ Before merging any PR, verify each item applies and is addressed:
143209
1. **Rust tests pass**`cargo test --workspace --no-default-features` (1,031+ passed, 0 failed)
144210
2. **Python proof passes**`python v1/data/proof/verify.py` (VERDICT: PASS)
145211
3. **README.md** — Update platform tables, crate descriptions, hardware tables, feature summaries if scope changed
146-
4. **CHANGELOG.md** — Add entry under `[Unreleased]` with what was added/fixed/changed
147-
5. **User guide** (`docs/user-guide.md`) — Update if new data sources, CLI flags, or setup steps were added
148-
6. **ADR index** — Update ADR count in README docs table if a new ADR was created
149-
7. **Witness bundle** — Regenerate if tests or proof hash changed: `bash scripts/generate-witness-bundle.sh`
150-
8. **Docker Hub image** — Only rebuild if Dockerfile, dependencies, or runtime behavior changed
151-
9. **Crate publishing** — Only needed if a crate is published to crates.io and its public API changed
152-
10. **`.gitignore`** — Add any new build artifacts or binaries
212+
4. **CLAUDE.md** — Update crate table, ADR list, module tables, version if scope changed
213+
5. **CHANGELOG.md** — Add entry under `[Unreleased]` with what was added/fixed/changed
214+
6. **User guide** (`docs/user-guide.md`) — Update if new data sources, CLI flags, or setup steps were added
215+
7. **ADR index** — Update ADR count in README docs table if a new ADR was created
216+
8. **Witness bundle** — Regenerate if tests or proof hash changed: `bash scripts/generate-witness-bundle.sh`
217+
9. **Docker Hub image** — Only rebuild if Dockerfile, dependencies, or runtime behavior changed
218+
10. **Crate publishing** — Only needed if a crate is published to crates.io and its public API changed
219+
11. **`.gitignore`** — Add any new build artifacts or binaries
220+
12. **Security audit** — Run security review for new modules touching hardware/network boundaries
153221

154222
## Build & Test
155223

0 commit comments

Comments
 (0)