SPB Git

spb/akos

Public
2.7 KB · 22 lines markdown
1# Acceptance matrix23Each row maps a required scenario to the automated test(s) or scripted procedure that produces its evidence. Results are recorded in `docs/acceptance-report.md` with PASS / FAIL / BLOCKED, the exact command and output excerpts. Offline (fixture) tests run in CI (`make test`); live tests are marked `@pytest.mark.live` and run separately (`make test-live`).45| ID | Scenario | Evidence producer | Mode |6|---|---|---|---|7| A1 | Unknown public API → provisional AKP + real execution + inspectable in UI | `scripts/demo_discovery.sh` (Open-Meteo via OpenAPI + probe) + UI | live |8| A2 | Generated Python client performs a real request; schema and errors tested | `tests/live/test_generated_client.py`, offline `tests/unit/test_codegen.py` | both |9| A3 | Knowledge persists after service restart / node reboot / fresh Claude session | `scripts/acceptance_persistence.sh` (pm2 restart, count rows before/after), fresh `claude -p` session log | live |10| A4 | Cross-project reuse without rediscovery | `tests/integration/test_cross_project.py` + `examples/cross-project-reuse/` with fresh Claude Code project | both |11| A5 | Opaque MCP labelled; export policy blocks verified claim | `tests/integration/test_opaque_mcp.py` (`examples/opaque-mcp/`) | offline |12| A6 | Enforcement: sandbox + proxy block unregistered egress, allow registered; bypass routes disclosed | `tests/security/test_enforcement.py` (runs on macOS node) | live-local |13| A7 | Credentials: scoped fake secret works, unauthorized fails, rotation/revocation, no leakage | `tests/security/test_secret_leakage.py`, `tests/integration/test_credentials.py` | offline |14| A8 | Research export reruns offline from stored inputs; live revision limits reported | `tests/reproduction/test_export_replay.py` + `akos research export` on a clean checkout | both |15| A9 | Cross-source join validated (ids, units, row counts, lineage); incompatible granularity refused | `tests/integration/test_composition.py` | offline |16| A10 | Drift: schema change detected, dependents flagged, debt created, fix versioned and revalidated | `tests/integration/test_drift.py` | offline |17| A11 | Worker crash recovery + DB backup/restore | `tests/integration/test_recovery.py`, `scripts/backup.sh` + `scripts/restore.sh` drill | live-local |18| A12 | Auth, tenant separation, SSRF, prompt injection, rate limits, audit logging | `tests/security/*` | offline |19| A13 | Public DNS, TLS, UI, REST, MCP from outside the host | `scripts/acceptance_external.sh` (from laptop) + `claude mcp list` | live |20| A14 | Mobile UI at iPhone width, no placeholders | `tests/e2e/ui.spec.ts` (Playwright, 390×844) | live |21| A15 | Benchmarks: API lookup, job throughput, page response | `scripts/bench.py` | live |22
Files · da58f809c01c422e65c786b05d6ffa3079c9feba
Menu

Theme