# AI-assisted Testware Active contributors: Douwe de Vries, vriesd ## Purpose AI-assisted Testware turns selected Session material into editable Drafts, Findings, or note summaries. The app only runs generation after an explicit user action and only through local provider CLIs that are already authenticated outside QA Scribe. ## Key source files | File | Purpose | | --- | --- | | `frontend/src/workflows/generationPreflight.tsx` | User confirmation and provider/model/reasoning choices. | | `frontend/src/app/generationActions.ts` | Starts jobs, handles events, reconciles active jobs. | | `src-tauri/src/commands/ai/job_runner.rs` | Background AI job startup. | | `src-tauri/src/commands/ai/streaming_exec.rs` | CLI process execution and streaming. | | `crates/qa-scribe-core/src/generation/workflow.rs` | Prepare/finish lifecycle and persistence. | | `crates/qa-scribe-core/src/generation/prompt.rs` | Prompt rendering and material budgets. | | `crates/qa-scribe-core/src/generation/response.rs` | Response cleanup and managed image preservation. | | `crates/qa-scribe-core/src/ai/stream/claude.rs` | Claude stream parsing. | | `crates/qa-scribe-core/src/ai/stream/codex.rs` | Codex JSONL parsing. | ## Flow ```mermaid sequenceDiagram participant User participant UI as Frontend preflight participant Job as Tauri job participant Core as Generation workflow participant CLI as Local provider CLI User->>UI: choose action, provider, model UI->>Job: start_ai_action_job Job->>Core: prepare context and AI Run Job->>CLI: send prompt on stdin CLI-->>Job: stream output Job->>Core: persist Draft, Finding, or summary Job-->>UI: completed event with updated record ``` ## Integration points AI-assisted Testware uses [Provider detection](systems--provider-detection.md), [Generation jobs](systems--generation-jobs.md), [Rich record editing](features--rich-record-editing.md), and [Managed attachments](features--managed-attachments.md). ## Entry points for modification Change prompt shape in `crates/qa-scribe-core/src/generation/prompt.rs`, output handling in `crates/qa-scribe-core/src/generation/response.rs`, persistence in `crates/qa-scribe-core/src/generation/workflow.rs`, and UI preflight in `frontend/src/workflows/generationPreflight.tsx`.