InsuranceBot / 80-audit /README.md
rohitsar567's picture
refactor: KI-047 β€” bucket reorg (Option A safe subset)
e2d09f9
|
Raw
History Blame Contribute Delete
3.19 kB
# `80-audit/` β€” Audit output + production-readiness register
Two artefact classes coexist here:
1. **`ENTERPRISE_AUDIT.md`** β€” the **master defect log**. A living, hand-curated, severity-tagged register of every P0/P1/P2/P3 issue discovered during the readiness sprint, with evidence + fix status. Start here before any deploy decision.
2. **`<run_id>/` subdirectories** β€” per-run output of the multi-persona audit framework (`tools/audit/`). Each is a complete, immutable snapshot of one full or partial 100-persona pass.
## `ENTERPRISE_AUDIT.md`
| Section | What's there |
| --- | --- |
| Executive scorecard | One-line status per domain: disk stability, data pipeline, observability, accuracy, latency, profile capture, language fairness, code hygiene, test coverage, voice UX, fact-find tone, secrets. |
| Defect Register | D-001 … D-NNN. Each row: severity (P0–P3) Β· title Β· symptom Β· root cause Β· impact Β· fix status. |
Severity legend: **P0** blocks production deployment Β· **P1** blocks enterprise procurement Β· **P2** quality / hygiene Β· **P3** nice-to-have.
Status emoji: βœ… fixed Β· ⚠️ partial Β· 🟑 improving Β· πŸ”΄ open.
## Run-directory layout
```
80-audit/
β”œβ”€β”€ ENTERPRISE_AUDIT.md
└── <run_id>/
β”œβ”€β”€ transcripts/
β”‚ β”œβ”€β”€ P001.json
β”‚ β”œβ”€β”€ P002.json
β”‚ β”œβ”€β”€ P003.partial.json (in-flight or interrupted persona)
β”‚ └── …
β”œβ”€β”€ report.md (analyze.py rollup)
└── summary.json (machine-readable rollup)
```
| Run-ID prefix | Meaning |
| --- | --- |
| `full_YYYYMMDD_HHMMSS` | Full 100-persona pass against the live HF Space. |
| `postfix_YYYYMMDD_HHMMSS` | Targeted re-run after shipping a specific fix, used to confirm the defect is gone. |
## Each persona transcript
`transcripts/P###.json` captures the 30-turn flow for one persona. Per turn:
| Field | Source |
| --- | --- |
| `user_text` | `tools/audit/flows.py` |
| `reply_text` | live API |
| `intent`, `brain_used` | `backend/orchestrator.py` |
| `citations` | `backend/main.py` response |
| `profile_updates` | `backend/profile_extractor.py` |
| `faithfulness_passed`, `blocked` | `backend/faithfulness.py` |
| `latency_ms` | wall-clock around the HTTP call |
`.partial.json` files indicate the audit was interrupted (rate-limit pile-up, deploy mid-run, etc.); the runner is resumable and will pick up from the next persona on restart.
## How runs flow into the register
1. `python tools/audit/run_audit.py` writes per-persona transcripts.
2. `python tools/audit/analyze.py 80-audit/<run_id>/` rolls up `report.md` + `summary.json`.
3. New defects β†’ new `D-NNN` row in `ENTERPRISE_AUDIT.md`.
4. Fixes β†’ status flipped, run re-executed as `postfix_…`, evidence linked.
## Related
- `tools/audit/README.md` β€” framework that produces the run dirs
- `tools/audit/personas.json`, `tools/audit/flows.json` β€” the deterministic inputs each run replays
- Root `CLAUDE.md` β€” high-level project state; defers detail to this file for change history
- [`kb/AUDIT_TRAIL.md`](../kb/AUDIT_TRAIL.md) β€” data-lineage doc that pairs with the behaviour-audit log