Reliable workflows · automation passed at pinned implementation
Payment identity, supplier direction, human resolution, evidence export and observed outcomes. AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance. Previous blocks below remain historical only; they do not accept this scope. Human signoff and live AWS acceptance: NOT_RUN. Parent owns release.
Previous accepted AWS evidence is retained as opaque bytes with original IDs and SHA256 manifest in 90-day archive. This is preservation, not new application acceptance.
AR-UAT-18 · Semantic payment identity and retained correction
Joiner reconciling inbox evidence
- Post Sample invoice
- Try identity refusal; submit missing Transfer ID
- Correct held payment with distinct supplied reference
- Forward same reference with changed subject; link original as duplicate
- Post equal amount with a different real-event reference
Missing identity and duplicates hold; correction retains original; same bank event credits once; distinct equal instalments remain valid.
Automation mapping: test_missing_identity_holds_then_corrects_with_original_retained; test_same_bank_event_never_credits_twice; editable payment refusal correction and semantic duplicate resolution use real HTTP
Observed result: AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance.. Human signoff: NOT_RUN.
AR-UAT-19 · Supplier and sales economic direction
Joiner reconciling inbox evidence
- Use original issuer/customer headers with configured My Joinery identity
- Forward supplier Billed to: My Joinery through owner/accountant
- Post a genuine outbound invoice
- Try conflicting and unsupported threads
Supplier remains payable, outbound remains receivable with correct recipient, ambiguity visibly refuses; redaction remains.
Automation mapping: test_common_forward_formats_never_turn_supplier_debt_into_a_sale; supplier direction and externally resolved dispute retain evidence and require fresh review
Observed result: AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance.. Human signoff: NOT_RUN.
AR-UAT-20 · Human dispute and historical-payment resolution
Joiner reconciling inbox evidence
- Open a persisted session with two equal pre-upgrade receipts missing identity
- Read hold and original source bytes
- Attest distinct supplied bank references and review note
- Try same reference for both; it must remain held
- After a valid attestation, run Strands and review a fresh draft
Original posted records unchanged. Valid distinct-event attestation is additive. Suspected duplicate legacy entries need operator accounting correction; no fabricated identities or journal reversal.
Automation mapping: test_historical_equal_receipts_view_attest_and_progress_without_rewriting; test_legacy_resolution_is_revision_bound_durable_and_does_not_rewrite; generated legacy hold is visible and takes additive explicit references, never intake. Legacy seed is covered by API/unit tests; human browser legacy UAT is NOT_RUN.
Observed result: AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance.. Human signoff: NOT_RUN.
AR-UAT-21 · Readable evidence and session-isolated recovery
Joiner reconciling inbox evidence
- Open History and Prepare evidence bundle
- Inspect source decisions, revisions, mode, hashes and limits
- Lose an evidence HTTP response, retry the read
- Start a new workspace while staying in History; old/late evidence must disappear
Redacted human-readable bundle, actual revisions and outcomes, no truth/authenticity claim. New session cannot inherit old evidence.
Automation mapping: test_evidence_is_session_scoped_redacted_and_tracks_corrections; evidence export is read on demand, retryable, literal and revision scoped; a late evidence response cannot appear in a different session
Observed result: AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance.. Human signoff: NOT_RUN.
AR-UAT-22 · Observed outcomes and model/evaluator contracts
Joiner reconciling inbox evidence
- Read Dashboard after posting, correction and resolution
- Inspect current mode and backend revision in History
- Inspect CI model factory and fresh evaluator oracle cases
Actual session counts only. Human active time/benefits Unknown; public model scripted, no delivery. Exact invoice, nonempty correct recipient and amount required by evaluator.
Automation mapping: dashboard counts observed human resolutions while benefits remain unknown; test_factory_arguments_reach_real_graph_without_live_inference; test_fresh_evaluator_oracles
Observed result: AUTOMATION_PASS at implementation1793e7dfcc6002ecccff8767eb238d4a52466e1b only: primary CI34377859447, frontend CI34377859438 (561 Python tests;34 real-HTTP desktop/mobile journeys; full-history scan and frontend coverage gates passed). Later edits require their own exact-SHA CI; this is not human or live AWS acceptance.. Human signoff: NOT_RUN.
AUTOMATION_PASS for implementation commit 9a6bfe6adfd79cda9b20d67fdb5e39bfa155168c only. GitHub Actions https://github.com/upgradedev/archon-aws-strands/actions/runs/34356632094: npm test 49 passed; Python regression 518 passed; Playwright real-HTTP desktop/mobile 30 passed. Mapped automated coverage, not human execution or live AWS acceptance of this UX. Current release identity and exact-run artifacts remain authoritative.
Desktop/mobile screenshots. Hosting contract checks also passed in run 34356809399: 11 hosting, 4 API stack, 8 release workflow tests. Subsequent documentation commits require their own green CI.
Dashboard / Workspace implementation: automated checks passed
The historical PASS evidence below applies only to its named commits and runs. It does not attest the new Dashboard, selected collections Workspace, Records search or navigation. Current acceptance comes from exact-commit GitHub Actions artifacts and deployed /release.json plus /api/health.
Human signoff: NOT_RUN. Live AWS acceptance for this revision: NOT_RUN; the parent owns release. Successful dashboard and selected workspace PNGs are attached for both desktop and mobile. The separate ui-screenshots-<run_id> artifact contains PNGs; the existing full report retains traces and videos.
AR-UAT-14 · Truthful Dashboard and drilldowns
- persona
- Sole-trader owner
- preconditions
- Isolated synthetic workspace on the exact build under review
- steps
- Post the application's invoice and payment samples in Records
- Open Dashboard and follow outstanding, overdue, recorded receipts and pending draft metrics
- Inspect the scoped matching records; reload
- expected outcome
- Actual ledger totals and exact cents; unknown is not zero; no duplicate counting, invented trends or bank verification.
- negative/recovery case
- Duplicate source and malformed/unknown amount tests; held arrangements remain owed but not actionable.
- automation mapping
- Dashboard metrics drill into actual records and selected workspace screenshots; workspaces.test.tsx metric cases
- observed result/evidence
- AUTOMATION_PASS for implementation commit 9a6bfe6adfd79cda9b20d67fdb5e39bfa155168c only. GitHub Actions https://github.com/upgradedev/archon-aws-strands/actions/runs/34356632094: npm test 49 passed; Python regression 518 passed; Playwright real-HTTP desktop/mobile 30 passed. Mapped automated coverage, not human execution or live AWS acceptance of this UX. Current release identity and exact-run artifacts remain authoritative.
- human signoff
- NOT_RUN
AR-UAT-15 · Persistent case selection and search focus
- persona
- Sole-trader owner
- preconditions
- Isolated synthetic workspace on the exact build under review
- steps
- Select the recorded receipt in Workspace
- Navigate Dashboard; reload; return Workspace
- In Records type a multi-character search; use browser back and reload
- expected outcome
- Same invoice/source context after page navigation and reload. Search remains focused as query changes.
- negative/recovery case
- Missing/foreign source cannot authorize another case; unknown route remains recoverable.
- automation mapping
- query typing keeps focus and case context survives navigation, browser back and reload; route aliases and encoded context are retained with no arbitrary target action
- observed result/evidence
- PENDING_CI: use exact branch run and attached artifacts; no current PASS is asserted.
- human signoff
- NOT_RUN
AR-UAT-16 · Backend target and late response isolation
- persona
- Sole-trader owner
- preconditions
- Isolated synthetic workspace on the exact build under review
- steps
- Post two overdue invoices
- Inspect the nonpriority case; preparation must be disabled
- Delay a real reason response and select the other case
- expected outcome
- Reason mutation contains no invoice_id. The resulting stored draft stays associated with its actual invoice. No late navigation or automatic approval.
- negative/recovery case
- Recipient-less priority, ambiguous arrangement projection, duplicate or missing evidence hold preparation.
- automation mapping
- late reasoning response cannot attach a draft to another selected case; backend target includes recipient-less priority and never substitutes a ready invoice
- observed result/evidence
- PENDING_CI: use exact branch run and attached artifacts; no current PASS is asserted.
- human signoff
- NOT_RUN
AR-UAT-17 · Expiry, consent reset and correction recovery
- persona
- Sole-trader owner
- preconditions
- Isolated synthetic workspace on the exact build under review
- steps
- Check exact draft consent; change evidence or advance the browser clock past expiry
- Try a known validation refusal and correct the input
- Disconnect, reconnect, explicitly refresh; retry an uncertain request
- expected outcome
- Expired/changed consent disabled; known 400/422 refusal remains editable; unknown/timeout/409 requires durable refresh and explicit renewed consent.
- negative/recovery case
- Payment-invalidated approval, lost-response retry, no duplicated receipt and isolated session recovery remain mandatory.
- automation mapping
- checked consent expires on an open page and no simulated receipt is created; duplicate intake leaves ledger metrics intact and offline records require explicit refresh; existing stale and lost-response journeys
- observed result/evidence
- PENDING_CI: use exact branch run and attached artifacts; no current PASS is asserted.
- human signoff
- NOT_RUN
Historical UI polish verification
UI polish mapped automation PASS — https://github.com/upgradedev/archon-aws-strands/actions/runs/34336011792 at 12814e10013e798bc9f064a0d1ef05d4365088d8 on 2026-09-09. 30 unit tests, 518 Python tests and 20 real-HTTP browser journeys (10 desktop, 10 mobile) passed; zero failures/errors/skips. Original 16 browser journeys retained. Font-size floors, mobile sample reflow, actual source deep links, unchanged exact draft and reduced motion passed. Human signoff NOT_RUN; high-contrast manual review and live AWS acceptance for this revision NOT_RUN.
Readability and source-evidence verification · commit 12814e10013e798bc9f064a0d1ef05d4365088d8
npm test (Vitest measured coverage)- 30 passed; 0 failures, errors or skipped tests. Coverage: statements 196/198 (98.98%), branches 194/200 (97%), lines 136/136, functions 72/72. All src TS/TSX included; unchanged 85% floors.
python -m pytest --junitxml=frontend/artifacts/python-junit.xml --cov- 518 passed; 0 failures, errors or skipped tests. One existing warning.
npm run test:e2e (real Python HTTP API and SQLite on GitHub Actions)- 20 passed: 10 desktop and 10 mobile; 0 failures, errors or skipped tests. Original 16 preserved, plus four source-evidence/selection/readability executions.
npm run build; python -m ruff check src tests- Both passed. Committed lock used via npm ci in GitHub Actions; no local installs, builds or test execution.
npm audit --json; npm audit --omit=dev --audit-level=low- Full audit reports 0 known vulnerabilities; runtime audit passed. No new dependencies or lock edits.
Gross, settled and outstanding come from Workspace.sales for draft.invoice_id. Source links use existing Source.id with status=posted, SalesInvoice.document.doc_id or Receipt.document.settles equal to that invoice. Receipt amounts use document.amount, never extracted from prose. Reconciled means linked in this ledger, not independently bank-verified. Sample selection is exact current textarea/sample equality.
Agent inspected all six desktop/mobile CI screenshots: source figures and badges visible, two-column phone samples/navigation and readable dark KPI tiles. Money tables retain their scoped horizontal scrolling on narrow screens. This is agent evidence review, not human acceptance.
Run 34335504722 had one failing new unit assertion that incorrectly included the decorative aria-hidden arrow in a link's accessible name. Commit 1315bcb asserts the actual accessible name, href and aria-hidden decoration. No threshold was weakened; readability revision 12814e1 passed the complete pipeline.
Artifact: frontend-evidence-34336011792. Screenshots within the artifact:
test-results/workspace-draft-ledger-bad-20a33-t-sources-without-approving-desktop/source-backed-approval.pngtest-results/workspace-draft-ledger-bad-20a33-t-sources-without-approving-desktop/precision-ledger-kpis.pngtest-results/workspace-sample-sliding-p-a4be8--reduced-motion-preferences-desktop/selected-sample-pill.pngtest-results/workspace-draft-ledger-bad-20a33-t-sources-without-approving-mobile/source-backed-approval.pngtest-results/workspace-draft-ledger-bad-20a33-t-sources-without-approving-mobile/precision-ledger-kpis.pngtest-results/workspace-sample-sliding-p-a4be8--reduced-motion-preferences-mobile/selected-sample-pill.png
No live AWS acceptance claimed for this UI revision. Parent owns merge/deployment and post-deployment verification. High-contrast manual review, screen-reader acceptance and all human signoffs NOT_RUN. Source relationships mean linkage in these books, not independent bank verification; delivery remains simulated.
Prior baseline automated results
Verified 2026-09-09 at commit 2c2a6ce6e7322c8536b207f1cc4151fbe543e715.
Locked frontend verification · Original Python CI
AWS target: ARCHON workstation. PASS: Live AWS acceptance, 2026-09-09: all 16 desktop/mobile journeys passed against CloudFront, Lambda and private S3. Tested frontend d83b611c9e3e360cefa1428d27beab0e4b4420bf, API 08fd7f8c266409891475fbc7bad878d103ec3dcc. Command: ARCHON_UI_URL=https://d2ssmv59q16d0b.cloudfront.net/ npm run test:e2e. Automated synthetic acceptance only; human signoff remains NOT_RUN.
Committed generated package-lock.json; npm ci on the verified commit
python -m pytest --junitxml=frontend/artifacts/python-junit.xml --cov- 518 passed; 0 failed, 0 errors, 0 skipped
npm test (vitest run --coverage)- 25 passed; 0 failed, 0 errors, 0 skipped
npm run test:e2e (Playwright with real Python HTTP API)- 16 passed: 8 desktop and 8 mobile; 0 failed, 0 skipped
npm run build; python -m ruff check src tests- Both passed
npm audit --json; npm audit --omit=dev --audit-level=low- 0 known vulnerabilities in full dependency audit; runtime audit passed
Vitest4 coverage/coverage-summary.json- Statements 183/185 (98.91%); branches 175/181 (96.68%); lines 126/126; functions 64/64. All frontend src TS/TSX included; 85% floor passed, no relevant-code exclusions.
Artifacts: frontend-evidence-34326637050, frontend-lock-34326637050. dist, Python/unit/browser JUnit, measured coverage, full npm audit, desktop/mobile traces and screenshots.
Mapped automation passed; this does not attest human execution of every testbook step. Live AWS/S3 browser acceptance is recorded separately above. Human UAT and independent real delivery remain unverified. Public model is scripted and provider simulated; no real model or email calls occurred.
Human signoff: NOT_RUN.
AR-UAT-01 · Isolated empty workspace
- persona
- Sole-trader owner
- preconditions
- No session handle
- steps
- Open #/queue
- open a second browser context
- expected outcome
- Each visitor has independent empty books
- negative/recovery case
- Unavailable/expired handle permits a new session
- automation mapping
- test_empty_session_is_isolated_and_has_no_seeded_outcome; independent visitors, deep links, keyboard skip, and new workspace; unavailable session recovers by explicitly creating a new workspace
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-02 · Exact partial payment arithmetic
- persona
- Owner receiving client post
- preconditions
- Empty synthetic workspace
- steps
- Documents: Sample invoice → Read & post
- Sample payment → Read & post
- In Approvals, open the invoice and receipt source badges; reload each deep link
- expected outcome
- Invoice 1860.00 EUR less receipt 600.00 EUR gives 1260.00 EUR outstanding; source links reveal original post. Exact source handles open the original posted invoice/receipt. Current ledger figures are read from API fields; no draft-text parsing or independent bank-verification claim.
- negative/recovery case
- Missing reference, USD or contradictory totals produce visible refusal
- automation mapping
- test_raw_post_real_strands_exact_approval_and_durable_receipt; raw emails → real HTTP / Strands → exact draft → simulated durable receipt; draft ledger badges open actual invoice and receipt sources without approving; evidence uses explicit posted invoice and receipt relationships, not matching prose
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance. UI polish mapped automation PASS — https://github.com/upgradedev/archon-aws-strands/actions/runs/34336011792 at 12814e10013e798bc9f064a0d1ef05d4365088d8 on 2026-09-09. 30 unit tests, 518 Python tests and 20 real-HTTP browser journeys (10 desktop, 10 mobile) passed; zero failures/errors/skips. Original 16 browser journeys retained. Font-size floors, mobile sample reflow, actual source deep links, unchanged exact draft and reduced motion passed. Human signoff NOT_RUN; high-contrast manual review and live AWS acceptance for this revision NOT_RUN.
- human signoff
- NOT_RUN
AR-UAT-03 · Strands remains load-bearing
- persona
- Owner collecting an overdue invoice
- preconditions
- Supported invoice and payment posted
- steps
- Action queue → Run Strands & prepare draft
- expand six reports
- expected outcome
- Six real ledger tools report through Strands before composer; scripted model and no AI judgment labelled
- negative/recovery case
- Any refused source holds draft generation
- automation mapping
- test_raw_post_real_strands_exact_approval_and_durable_receipt; raw emails → real HTTP / Strands → exact draft → simulated durable receipt
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-04 · Exact content approval
- persona
- Owner approving collection
- preconditions
- A current draft
- steps
- Read recipient, subject, body and fingerprint
- tick review
- approve exact draft
- Inspect the current-ledger evidence block without approving
- expected outcome
- One simulated provider-accepted receipt, same fingerprint; no real email; delivery unproven. Opening source links neither changes the exact email nor checks its approval confirmation; absent, unrelated, refused or corrected sources produce no fabricated links.
- negative/recovery case
- Approval disabled without confirmation; altered evidence or old draft refused
- automation mapping
- test_late_payment_invalidates_exact_approval; stale approval after another tab posts payment is refused by actual API; source badge does not rewrite the exact draft or supply an approval; missing source relationships stay unavailable and never manufacture a badge
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance. UI polish mapped automation PASS — https://github.com/upgradedev/archon-aws-strands/actions/runs/34336011792 at 12814e10013e798bc9f064a0d1ef05d4365088d8 on 2026-09-09. 30 unit tests, 518 Python tests and 20 real-HTTP browser journeys (10 desktop, 10 mobile) passed; zero failures/errors/skips. Original 16 browser journeys retained. Font-size floors, mobile sample reflow, actual source deep links, unchanged exact draft and reduced motion passed. Human signoff NOT_RUN; high-contrast manual review and live AWS acceptance for this revision NOT_RUN.
- human signoff
- NOT_RUN
AR-UAT-05 · Retry safety and durable readback
- persona
- Owner recovering after lost connection
- preconditions
- Current draft
- steps
- Approve while response is dropped after actual HTTP success
- refresh durable state
- open Activity
- expected outcome
- One durable receipt; UI prevents a second approval; same intent ID retained if retry is needed
- negative/recovery case
- Unknown outcome never automatically resent
- automation mapping
- test_retry_approval_across_new_api_client_retains_one_receipt; lost approval response reconciles to one durable receipt without resending; approval lost before reaching the API retries the same intent after durable refresh
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-06 · Exact proposal approval and durable hold
- persona
- Owner arranging payment
- preconditions
- 1260.00 EUR outstanding
- steps
- Propose 2026-09-20: 600.00 EUR and 2026-10-05: 660.00 EUR
- inspect
- tick
- approve
- reload queue
- expected outcome
- Held collection, debt still 1260.00 EUR; previous 600.00 EUR is baseline, not a future instalment
- negative/recovery case
- Wrong total, past dates, stale fingerprint or duplicate dates refused
- automation mapping
- test_arrangement_exact_approval_survives_store_reopen_without_changing_debt; arrangement approval holds collections across reload without reducing the debt
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-07 · Refusal recovery without weakening the gate
- persona
- Owner triaging unclear post
- preconditions
- Posted supported invoice
- steps
- Post refusal sample
- see collection held
- correct refused source with supplier sample
- expected outcome
- Original refusal retained and linked to correction; collections enabled only after valid correction
- negative/recovery case
- Posted source immutable; duplicate email is not posted twice
- automation mapping
- test_refused_input_holds_every_chase_until_corrected; refused raw evidence holds collections and a corrected source releases them
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-08 · Human escalation
- persona
- Owner handling a dispute
- preconditions
- Open sales invoice
- steps
- Enter 'I dispute this debt' as client reply
- read terms
- expected outcome
- No arrangement agreed; dispute visible; collections held. Replacing the reply with an invoice cannot release it; separate human resolution is outside this demo
- negative/recovery case
- Ambiguous 'soon' is also held, never guessed into dated money
- automation mapping
- test_ambiguous_or_disputed_reply_holds_collection
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-09 · Accessible persistent navigation
- persona
- Owner using a phone or keyboard
- preconditions
- Desktop and mobile browser
- steps
- Use all navigation links
- reload document deep link
- Tab to skip link and press Enter
- Use Tab, Enter and Space on the sample switcher; edit its text, then repeat with reduced motion
- At phone width, check two-by-two sample buttons and readable navigation, controls and source labels
- expected outcome
- Correct page persists; main receives focus; document evidence opens; no page-wide horizontal overflow. Existing Sample button names remain; aria-pressed marks only the sample matching current text. Editing/clearing deselects it, selection does not post, and reduced motion disables pill/KPI transitions. Regular controls/navigation and source labels are at least 14px, main explanatory copy 16px, and secondary source IDs/demo labels 12px. Four sample buttons reflow into two columns on narrow screens.
- negative/recovery case
- Unknown route provides return link; loading/empty/error states remain operable
- automation mapping
- independent visitors, deep links, keyboard skip, and new workspace; raw emails → real HTTP / Strands → exact draft → simulated durable receipt; sample pill selection follows current text and native keyboard without posting; sample sliding pill preserves keyboard selection and reduced-motion preferences
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance. UI polish mapped automation PASS — https://github.com/upgradedev/archon-aws-strands/actions/runs/34336011792 at 12814e10013e798bc9f064a0d1ef05d4365088d8 on 2026-09-09. 30 unit tests, 518 Python tests and 20 real-HTTP browser journeys (10 desktop, 10 mobile) passed; zero failures/errors/skips. Original 16 browser journeys retained. Font-size floors, mobile sample reflow, actual source deep links, unchanged exact draft and reduced motion passed. Human signoff NOT_RUN; high-contrast manual review and live AWS acceptance for this revision NOT_RUN.
- human signoff
- NOT_RUN
AR-UAT-10 · Five truthful receipt states
- persona
- Operator reviewing delivery evidence
- preconditions
- Activity view
- steps
- Read queued, unknown, provider-accepted, delivered and failed descriptions
- expected outcome
- Acceptance explicitly does not prove arrival; delivered unavailable without independent evidence
- negative/recovery case
- Live adapter requires separate authorization, durable ledger and controlled verified recipient
- automation mapping
- test_live_adapter_requires_operator_authorization_and_durable_log; test_the_transport_does_not_retry_underneath_the_record
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-11 · Lambda and storage contract
- persona
- Operator validating AWS package
- preconditions
- CI dependencies; local SQLite or fake S3 client
- steps
- Pass API Gateway v2 events through actual handler
- create/read/post
- race conditional state writes
- expected outcome
- Commit/model labels correct; isolated persisted state; concurrent write conflicts recoverable
- negative/recovery case
- S3 AccessDenied says unavailable, logs code only; no ListBucket/SES/Bedrock permission needed
- automation mapping
- test_real_lambda_handler_http_api_v2_health_commit_and_session_journey; test_s3_no_list_bucket_denial_is_unavailable_not_claimed_missing
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-12 · Bounded network and blocked storage recovery
- persona
- Owner with restricted browser settings
- preconditions
- Storage blocked or API unresponsive
- steps
- Open workspace
- read warning
- trigger timed-out action
- refresh before retry
- expected outcome
- Memory-only session remains usable with limitation stated; request aborts after 35 seconds
- negative/recovery case
- Session creation is single-flight; no automatic retry of uncertain approval
- automation mapping
- blocked storage still opens a session and discloses its lifetime; requests abort after 35 seconds and clear their timer
- observed result/evidence
- Mapped automation PASS — CI https://github.com/upgradedev/archon-aws-strands/actions/runs/34326637050 at 2c2a6ce. See verification counts and frontend-evidence-34326637050 (JUnit, coverage, desktop/mobile traces and screenshots). Pipeline evidence only, not human execution of every step or live AWS acceptance.
- human signoff
- NOT_RUN
AR-UAT-13 · Precision financial presentation without invented performance signals
- persona
- Sole trader reviewing daily finances on desktop or phone
- preconditions
- Synthetic invoice and partial receipt posted; desktop/mobile and reduced-motion settings
- steps
- Open Action queue
- Read all four KPI tiles and source money tables
- Hover a tile with a pointer, repeat with reduced motion
- Check narrow-screen layout and high-contrast focus/selection
- Read current-ledger invoice and receipt figures beside their corresponding source groups; inspect regular label, explanation and secondary-ID sizes
- expected outcome
- Dark elevated KPI cards show the unchanged API amounts with tabular numerals; source tables stay crisp and readable. Hover is subtle and decorative, never a trend or confidence metric. Reduced motion removes movement; high contrast retains selected-state borders. Invoice/receipt figure accents correspond to their named source groups without implying independent verification. KPI labels remain at least 14px, explanations 16px and secondary IDs 12px; mobile navigation is readable rather than compressed.
- negative/recovery case
- No sources or incomplete evidence retain existing empty/held states. No badge implies bank verification or real delivery.
- automation mapping
- draft ledger badges open actual invoice and receipt sources without approving (precision-ledger-kpis.png); sample sliding pill preserves keyboard selection and reduced-motion preferences; existing stale-evidence and safe-retry journeys
- observed result/evidence
- UI polish mapped automation PASS — https://github.com/upgradedev/archon-aws-strands/actions/runs/34336011792 at 12814e10013e798bc9f064a0d1ef05d4365088d8 on 2026-09-09. 30 unit tests, 518 Python tests and 20 real-HTTP browser journeys (10 desktop, 10 mobile) passed; zero failures/errors/skips. Original 16 browser journeys retained. Font-size floors, mobile sample reflow, actual source deep links, unchanged exact draft and reduced motion passed. Human signoff NOT_RUN; high-contrast manual review and live AWS acceptance for this revision NOT_RUN.
- human signoff
- NOT_RUN
AR-UAT-32–34 · Product closeout
Candidate changes require exact-pair AWS acceptance; human signoff remains NOT_RUN.
- Read the client's dated terms, enter different owner terms, review and record the counterproposal. Reload: original reply and counterproposal remain; no email, payment, acceptance or collection hold was invented. Read a fresh client reply and approve its exact plan to hold collections without changing debt.
- Post an invoice with explicit English month names and EUR comma decimals, then an identified payment. Expect 2,976.00 less 900.00 equals 2,076.00 EUR. Conflicting totals on another invoice must be retained and held, never posted.
- Open a cold browser context at the root. Retain main visibility, supported FCP/LCP entries and screenshot. Each supported measurement must be below 2,500ms. Unsupported paint APIs remain null; visibility is not FCP and CDN cache is not purged. This is not a frozen X1 rerun.
Automated on desktop Chromium, 375px Chromium and 375px WebKit through the real HTTP API. The frozen AR3 collector continues to reject changed product source; no model grant is activated.