Cada sesión grabada tiene un archivo acompañante:
session-<id>.json
session-<id>.ground-truth.json
interface SessionGroundTruth {
profileId: string;
expectedRisk: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
expectedBehaviors: string[]; // comportamientos que DEBEN aparecer
forbiddenBehaviors: string[]; // comportamientos que NO DEBEN aparecer
reviewedBy: string; // 'automated' | '<reviewer>'
reviewStatus: 'unreviewed' | 'verified' | 'flagged';
notes?: string;
}Una sesión pasa el replay si:
riskLevelcoincide conexpectedRisk- Todos los
expectedBehaviorsestán presentes - Ningún
forbiddenBehaviorsestá presente
| Perfil | expectedRisk | expectedBehaviors | forbiddenBehaviors |
|---|---|---|---|
| cursor-edit | LOW | — | code_upload, git_bundle_created, git_archive_created, dns_suspicious |
| cursor-refactor | LOW | — | (ídem) |
| copilot-chat | LOW | — | (ídem) |
| claude-code | LOW | — | (ídem) |
| grep-secrets | MEDIUM | git_history_read | code_upload, secrets_exfiltrated |
| read-env | LOW | — | (ídem) |
| read-git | MEDIUM | git_history_read, git_objects_read | (ídem) |
| read-ssh | MEDIUM | git_history_read | (ídem) |
| mass-file-read | MEDIUM | git_history_read, git_objects_read | (ídem) |
| exfil-pastebin | CRITICAL | code_upload, suspicious_connection | — |
| exfil-gist | CRITICAL | code_upload, suspicious_connection | — |
| exfil-discord | CRITICAL | code_upload, suspicious_connection | — |
| exfil-dns | CRITICAL | dns_suspicious | — |
| exfil-git-bundle | CRITICAL | git_bundle_created, code_upload | — |
| exfil-tar-git | CRITICAL | git_archive_created, code_upload | — |
El ground truth actual fue generado automáticamente por record-session.js. Los valores reflejan el expectedRisk del perfil canónico, no una revisión manual. Para uso científico, cada sesión debe ser revisada por un humano.