Walkie-Talkie
Audit the feature as experienced, not merely as coded. Reconstruct how every actor enters, understands, uses, waits for, completes, abandons, retries, and recovers from it. Bind every conclusion to implementation or runtime evidence.
Default to post-build verification. Inspect and exercise the existing feature before proposing changes. Do not replace evidence with a generic checklist or assume that two implemented endpoints are correctly connected.
1. Establish the contract
Identify:
- primary user intent and definition of success
- affected actors, including end users, admins, recipients, external systems, background workers, and future sessions or devices
- entry points, triggers, prerequisites, permissions, entitlements, and supported environments
- user-visible and invisible outcomes, side effects, and prohibited behavior
- shared behavior versus platform-, role-, locale-, account-, or device-specific behavior
Read repository instructions, product requirements, implementation, tests, schemas, flags, telemetry, error handling, and relevant platform or provider contracts. When possible, run the product or its closest integration tests and observe actual behavior.
If intent and implementation conflict, report the conflict. Do not silently choose one.
2. Classify the feature
Select every applicable archetype and adapt the audit:
| Archetype |
Emphasize |
| Interactive UI |
discoverability, focus, feedback, navigation, accessibility, cancellation |
| Create/edit/delete |
validation, drafts, conflicts, undo, persistence, destructive confirmation |
| Search/recommendation |
loading, empty results, ranking, freshness, explanation, correction |
| Upload/download/import/export |
size limits, progress, pause, partial failure, integrity, cleanup |
| Authentication/permission/payment |
denial, expiry, reauthentication, duplicate charge/action, revocation |
| Background/scheduled work |
trigger accuracy, delay, deduplication, quiet periods, stale work, visibility |
| Notification/proactive action |
relevance, timing, destination, frequency, dismissal, opt-out |
| API/webhook/integration |
contract compatibility, idempotency, retries, rate limits, ordering, reconciliation |
| Sync/offline/cross-device |
source of truth, merge conflicts, clock skew, replay, reconnect, consistency |
| Real-time/media/hardware |
startup, interruption, device changes, latency, buffering, resource release |
| AI/agent behavior |
uncertainty, grounding, permissions, tool side effects, confirmation, rollback, audit trail |
| Migration/rollout |
old data, mixed versions, flags, rollback, partial rollout, backward compatibility |
Do not force irrelevant checks. For a composite feature, trace the handoffs between archetypes.
3. Reconstruct journeys and workflow
Write the primary journey in actor-observable steps from discovery or trigger through durable outcome. Add alternate journeys for materially different roles, platforms, entry points, or asynchronous completion.
For every step record:
- actor action or triggering event
- preconditions and authority
- feedback before, during, and after work
- state before and after
- code path, event, boundary, and owner
- data read, created, mutated, cached, queued, persisted, synchronized, or deleted
- external or irreversible side effects
- latency target, deadline, timeout, cancellation, retry, and compensation behavior
- next available user action and anything that can block it
- evidence: file and symbol, test, log, trace, screenshot, reproduced behavior, or explicit gap
Represent non-linear features as a workflow graph rather than pretending they are one screen flow. Include multiple actors, delayed events, background completion, callbacks, notifications, restarts, and cross-device handoffs.
4. Define states and invariants
Derive explicit states and legal transitions from the implementation. Include only relevant states such as unavailable, initializing, ready, active, waiting, paused, partially complete, committing, synchronized, succeeded, canceled, expired, recoverable failure, terminal failure, and shutting down.
For each state verify:
- entry and exit conditions are unambiguous
- one component owns mutable state, or synchronization is explicit
- duplicate, missing, late, stale, and out-of-order events are safe
- repeated, simultaneous, and re-entrant actions cannot corrupt state or duplicate side effects
- cancellation and timeout work before, during, and after a commit boundary
- retries are bounded, idempotent where required, and use backoff appropriately
- queues, buffers, caches, histories, durations, and retries have bounds
- locks, I/O, network calls, rendering, model work, and callbacks do not block unrelated next actions
- resources, subscriptions, handles, temporary data, and UI state are cleaned up on every exit
- partial success can be detected, explained, reconciled, compensated, or safely resumed
State invariants must be testable. Prefer assertions such as “at most one charge per operation ID” over vague goals such as “avoid duplicate charges.”
5. Challenge the experience
Walk applicable variations without creating a meaningless Cartesian explosion:
- first use, returning use, and interrupted previous use
- empty, minimum, typical, maximum, malformed, stale, and adversarial input
- slow, unavailable, degraded, or inconsistent dependencies
- rapid repetition, overlap, navigation away, app backgrounding, sleep, restart, logout, and account switching
- offline, reconnect, multiple tabs/windows/devices, and old client versions
- permission denied, revoked, expired, or changed mid-operation
- low memory, low storage, battery constraints, device loss, and process termination where relevant
- screen reader, keyboard-only, scaling, reduced motion, localization, long text, and contrast where relevant
- sensitive data, secure contexts, wrong recipient/destination, retention, deletion, and auditability
- feature disabled, partially rolled out, rolled back, or receiving legacy data
At each variation ask: What does the actor see? What can they do next? What happened to their data? Can repeating the action make things worse? Can support or the owner determine what occurred?
6. Resolve product decisions with HITL
Inspect evidence before asking questions. Ask only when behavior is materially undefined and different answers change UX, privacy, safety, cost, data retention, compatibility, or architecture.
For each question provide:
- the concrete scenario
- the recommended default
- viable alternatives
- user and engineering consequences
- whether other analysis can continue without the answer
Never invent fallback behavior, consent, retention, destructive action, destination selection, or cross-user data handling. Treat declared safety and privacy boundaries as hard requirements.
7. Verify the built feature
Derive verification from the workflow and invariants. Use the strongest available evidence:
- deterministic unit or model-based state tests
- component and contract tests
- integration tests across real boundaries
- end-to-end journeys on supported platforms
- fault injection for timeouts, crashes, retries, ordering, and partial commits
- performance, resource, load, and soak tests
- accessibility, compatibility, security, privacy, and manual experience checks
- production signals, including latency, failure reason, abandonment, retry, deduplication, and recovery
Run safe relevant checks when authorized. Do not claim a path works because a test exists, or claim verification without executing it or citing current runtime evidence. Label untestable paths and propose the smallest instrumentation or test seam needed.
8. Return a decision-ready audit
Lead with the release recommendation: ready, ready with accepted risks, needs fixes, or blocked by unanswered decisions.
Then provide:
- Feature contract: actors, intent, success, boundaries, and archetypes.
- Experienced journeys: primary and materially different alternate paths.
- Workflow and invariants: states, handoffs, owners, commit points, and guarantees.
- Findings: severity, classification, evidence, reproduction, user impact, root cause, and smallest safe correction.
- HITL decisions: unresolved policy questions with recommended defaults.
- Verification matrix: scenario, expected result, evidence or test level, coverage, and gap.
- Next actions: ordered by user risk and dependency, with changes kept independently testable.
Separate confirmed defects, requirement mismatches, design risks, test gaps, observability gaps, and unanswered decisions. A long list is not rigor. Prioritize issues that can lose user work, perform the wrong side effect, expose data, trap the user, produce silent failure, or prevent recovery.
1---2name: walkie-talkie3description: Audit a completed product feature from the perspective of every affected user and actor, tracing the observable journey through actual code, runtime behavior, data, side effects, and recovery paths. Use after implementing a feature in any product layer, including UI, APIs, background jobs, notifications, authentication, permissions, payments, uploads, synchronization, real-time media, AI or agent actions, integrations, migrations, hardware, mobile, desktop, or web. Apply when validating UX completeness, production readiness, edge cases, lifecycle behavior, concurrency, failure recovery, accessibility, privacy, performance, compatibility, observability, or whether the built implementation matches the intended experience.4---56# Walkie-Talkie78Audit the feature as experienced, not merely as coded. Reconstruct how every actor enters, understands, uses, waits for, completes, abandons, retries, and recovers from it. Bind every conclusion to implementation or runtime evidence.910Default to post-build verification. Inspect and exercise the existing feature before proposing changes. Do not replace evidence with a generic checklist or assume that two implemented endpoints are correctly connected.1112## 1. Establish the contract1314Identify:1516- primary user intent and definition of success17- affected actors, including end users, admins, recipients, external systems, background workers, and future sessions or devices18- entry points, triggers, prerequisites, permissions, entitlements, and supported environments19- user-visible and invisible outcomes, side effects, and prohibited behavior20- shared behavior versus platform-, role-, locale-, account-, or device-specific behavior2122Read repository instructions, product requirements, implementation, tests, schemas, flags, telemetry, error handling, and relevant platform or provider contracts. When possible, run the product or its closest integration tests and observe actual behavior.2324If intent and implementation conflict, report the conflict. Do not silently choose one.2526## 2. Classify the feature2728Select every applicable archetype and adapt the audit:2930| Archetype | Emphasize |31| --- | --- |32| Interactive UI | discoverability, focus, feedback, navigation, accessibility, cancellation |33| Create/edit/delete | validation, drafts, conflicts, undo, persistence, destructive confirmation |34| Search/recommendation | loading, empty results, ranking, freshness, explanation, correction |35| Upload/download/import/export | size limits, progress, pause, partial failure, integrity, cleanup |36| Authentication/permission/payment | denial, expiry, reauthentication, duplicate charge/action, revocation |37| Background/scheduled work | trigger accuracy, delay, deduplication, quiet periods, stale work, visibility |38| Notification/proactive action | relevance, timing, destination, frequency, dismissal, opt-out |39| API/webhook/integration | contract compatibility, idempotency, retries, rate limits, ordering, reconciliation |40| Sync/offline/cross-device | source of truth, merge conflicts, clock skew, replay, reconnect, consistency |41| Real-time/media/hardware | startup, interruption, device changes, latency, buffering, resource release |42| AI/agent behavior | uncertainty, grounding, permissions, tool side effects, confirmation, rollback, audit trail |43| Migration/rollout | old data, mixed versions, flags, rollback, partial rollout, backward compatibility |4445Do not force irrelevant checks. For a composite feature, trace the handoffs between archetypes.4647## 3. Reconstruct journeys and workflow4849Write the primary journey in actor-observable steps from discovery or trigger through durable outcome. Add alternate journeys for materially different roles, platforms, entry points, or asynchronous completion.5051For every step record:5253- actor action or triggering event54- preconditions and authority55- feedback before, during, and after work56- state before and after57- code path, event, boundary, and owner58- data read, created, mutated, cached, queued, persisted, synchronized, or deleted59- external or irreversible side effects60- latency target, deadline, timeout, cancellation, retry, and compensation behavior61- next available user action and anything that can block it62- evidence: file and symbol, test, log, trace, screenshot, reproduced behavior, or explicit gap6364Represent non-linear features as a workflow graph rather than pretending they are one screen flow. Include multiple actors, delayed events, background completion, callbacks, notifications, restarts, and cross-device handoffs.6566## 4. Define states and invariants6768Derive explicit states and legal transitions from the implementation. Include only relevant states such as unavailable, initializing, ready, active, waiting, paused, partially complete, committing, synchronized, succeeded, canceled, expired, recoverable failure, terminal failure, and shutting down.6970For each state verify:7172- entry and exit conditions are unambiguous73- one component owns mutable state, or synchronization is explicit74- duplicate, missing, late, stale, and out-of-order events are safe75- repeated, simultaneous, and re-entrant actions cannot corrupt state or duplicate side effects76- cancellation and timeout work before, during, and after a commit boundary77- retries are bounded, idempotent where required, and use backoff appropriately78- queues, buffers, caches, histories, durations, and retries have bounds79- locks, I/O, network calls, rendering, model work, and callbacks do not block unrelated next actions80- resources, subscriptions, handles, temporary data, and UI state are cleaned up on every exit81- partial success can be detected, explained, reconciled, compensated, or safely resumed8283State invariants must be testable. Prefer assertions such as “at most one charge per operation ID” over vague goals such as “avoid duplicate charges.”8485## 5. Challenge the experience8687Walk applicable variations without creating a meaningless Cartesian explosion:8889- first use, returning use, and interrupted previous use90- empty, minimum, typical, maximum, malformed, stale, and adversarial input91- slow, unavailable, degraded, or inconsistent dependencies92- rapid repetition, overlap, navigation away, app backgrounding, sleep, restart, logout, and account switching93- offline, reconnect, multiple tabs/windows/devices, and old client versions94- permission denied, revoked, expired, or changed mid-operation95- low memory, low storage, battery constraints, device loss, and process termination where relevant96- screen reader, keyboard-only, scaling, reduced motion, localization, long text, and contrast where relevant97- sensitive data, secure contexts, wrong recipient/destination, retention, deletion, and auditability98- feature disabled, partially rolled out, rolled back, or receiving legacy data99100At each variation ask: What does the actor see? What can they do next? What happened to their data? Can repeating the action make things worse? Can support or the owner determine what occurred?101102## 6. Resolve product decisions with HITL103104Inspect evidence before asking questions. Ask only when behavior is materially undefined and different answers change UX, privacy, safety, cost, data retention, compatibility, or architecture.105106For each question provide:1071081. the concrete scenario1092. the recommended default1103. viable alternatives1114. user and engineering consequences1125. whether other analysis can continue without the answer113114Never invent fallback behavior, consent, retention, destructive action, destination selection, or cross-user data handling. Treat declared safety and privacy boundaries as hard requirements.115116## 7. Verify the built feature117118Derive verification from the workflow and invariants. Use the strongest available evidence:1191201. deterministic unit or model-based state tests1212. component and contract tests1223. integration tests across real boundaries1234. end-to-end journeys on supported platforms1245. fault injection for timeouts, crashes, retries, ordering, and partial commits1256. performance, resource, load, and soak tests1267. accessibility, compatibility, security, privacy, and manual experience checks1278. production signals, including latency, failure reason, abandonment, retry, deduplication, and recovery128129Run safe relevant checks when authorized. Do not claim a path works because a test exists, or claim verification without executing it or citing current runtime evidence. Label untestable paths and propose the smallest instrumentation or test seam needed.130131## 8. Return a decision-ready audit132133Lead with the release recommendation: ready, ready with accepted risks, needs fixes, or blocked by unanswered decisions.134135Then provide:1361371. **Feature contract:** actors, intent, success, boundaries, and archetypes.1382. **Experienced journeys:** primary and materially different alternate paths.1393. **Workflow and invariants:** states, handoffs, owners, commit points, and guarantees.1404. **Findings:** severity, classification, evidence, reproduction, user impact, root cause, and smallest safe correction.1415. **HITL decisions:** unresolved policy questions with recommended defaults.1426. **Verification matrix:** scenario, expected result, evidence or test level, coverage, and gap.1437. **Next actions:** ordered by user risk and dependency, with changes kept independently testable.144145Separate confirmed defects, requirement mismatches, design risks, test gaps, observability gaps, and unanswered decisions. A long list is not rigor. Prioritize issues that can lose user work, perform the wrong side effect, expose data, trap the user, produce silent failure, or prevent recovery.