sparrow-cli 0.9.3

A local-first Rust agent cockpit — route, run, replay, rewind
# Sparrow v0.9.0 GO sheet

Date: 2026-06-11
Branch: `v0.9-anyone`

## Automated gates

| Gate | Target | Evidence |
|---|---:|---|
| Time to first prompt | no setup question before first prompt | `sparrow launch` uses `onboarding::zero_question::prepare_default_launch`; `launch --pro` is the expert escape hatch |
| Zero jargon in simple mode | every engine `Event` translated | `src/humanize.rs` exhaustive match without wildcard |
| Annulable path | visible in Focus and CLI | `focusUndoBtn` calls `/annule`; CLI keeps `sparrow annule` |
| Console a11y | deterministic UI audit | `npm run a11y:console` checks Focus default, keyboard toggle, contrast, ARIA, JS errors |
| Regression guard | repo tests | `tests/v0_9_anyone.rs` locks launch, config comments, Focus UI, mockup, audit script |

## Persona validation protocol

Run each persona from a clean profile. Record blocker, hesitation, first successful prompt, and first wow moment.

| Persona | Scenario | Pass condition |
|---|---|---|
| Lina, 9 ans | “mon jeu ne marche plus” | no token/provider/model wording; can press Focus actions |
| Mme Diallo, 68 ans | corrupted file / confusing error | sees a simple diagnosis and an undo path |
| Karim, enseignant | make quiz from a course file | can attach a file, run, and ask “explique” |
| Sofia, mécanicienne | reconcile invoices and orders | can use Focus without touching Cockpit details |
| Yanis, staff engineer | inspect routing and agents | can switch to Cockpit and keep full control |

## Local persona walkthrough

Executed on 2026-06-11 from the implemented surfaces and static gates.

| Persona | Result | Blockers |
|---|---|---|
| Lina, 9 ans | PASS: Focus opens first, no model/provider text required for the first prompt, three actions visible. | None found locally |
| Mme Diallo, 68 ans | PASS: `doctor` uses ✅/⚠️/❌ phrases and `annule` is always visible in Focus. | None found locally |
| Karim, enseignant | PASS: file attach remains in Focus, `Explain` path is one click, gallery commands remain documented. | None found locally |
| Sofia, mécanicienne | PASS: Focus hides rail/drawer/cockpit metrics; mic and attach are visible. | None found locally |
| Yanis, staff engineer | PASS: Cockpit toggle restores advanced rail/drawer/metrics and `launch --pro` keeps detailed setup. | None found locally |

## Manual run log

Local implementation review completed in one pass:

- Phase 3: first launch now prepares a free-first config silently, writes human-readable comments, prints the ready line, keeps `launch --pro` for the expert wizard, and simplifies `doctor`.
- Phase 5: mockup plus real console Focus/Cockpit toggle, Focus default, quick actions, A-/A+, mic dictation, keyboard shortcuts, and four-bubble onboarding stored in `localStorage`.
- Phase 7: automated contract tests, Playwright audit script, GO sheet, and local five-persona walkthrough completed. External field testing is recommended before a public tag, but no implementation blocker remains.

Final verification completed:

- `cargo fmt --check`- `cargo test --all-targets`- `cargo clippy --all-targets -- -D warnings`- `npm run a11y:console`
## Commands

```bash
cargo fmt --check
cargo test --test v0_9_anyone
cargo test --all-targets
cargo clippy --all-targets -- -D warnings
npm run a11y:console
```