mirror of
https://github.com/ruvnet/RuView
synced 2026-08-11 20:41:44 +00:00
ba978041ae
# Conflicts: # docs/adr/README.md
2.3 KiB
2.3 KiB
ADR-299: Repository CSI data-incident controls — ignore rules and a pre-commit/CI policy check
- Status: Accepted — controls implemented; tree remediation gated on owner sign-off
- Date: 2026-08-11
- Deciders: ruv
- Tags: privacy, data-governance, ci, security, incident
Context
The external review found ~64.6 MB of tracked raw CSI recordings under
data/recordings/ and v2/data/recordings/ (largest an ~61.8 MB overnight
capture). CLAUDE.md explicitly prohibits committing CSI or person data. The
.gitignore rule pointed only at a pre-rename path
(rust-port/wifi-densepose-rs/data/recordings/) and did not cover the active
directories, which is how the captures were committed. Raw CSI is person data
(it encodes breathing, movement, presence), so this is a data incident, not a
formatting nit.
Decision
Implemented now (mechanical, no data-ownership judgment):
- Fix
.gitignoreto coverdata/recordings/,v2/data/recordings/, the legacy path, and*.csi.jsonl/*.csi.meta.jsonglobs (done in this PR). - Add a policy check (pre-commit hook + CI job) that fails when CSI-format
files (
*.csi.jsonl,*.csi.meta.json) or large JSONL captures are staged or present as tracked files, with a message pointing here. Tests may use only synthetic or expressly-consented minimal fixtures.
Explicitly gated on data-owner sign-off (NOT done autonomously):
- Removing the existing recordings from the tree, and any history rewrite, are
outward-facing/destructive and require the data owner to first establish
provenance, consent, purpose, retention authority, and redistribution
rights. The review is correct that rewriting
origindoes not erase forks and clones; coordination is required. This ADR records the controls and the required follow-up; it does not delete the data.
Consequences
- No new CSI captures can be committed (ignore + policy check).
- The existing tracked recordings remain until the owner decides; the incident is documented and the guard prevents worsening it.
- CI gains one fast policy job; contributors get a local pre-commit check.
Validation
- Policy-check unit tests: a staged
*.csi.jsonlfails; a synthetic fixture under an allowed test path passes; the check is deterministic and offline. - Manual confirmation that the new ignore globs cover both active directories.