Files
jobtrackingapp/docs/cv-redesign/research/evidence-inventory.json
T

1798 lines
70 KiB
JSON

{
"sourceDirectory": "C:/Users/Connor/.codex/visualizations/2026/10/20/01a15834-7508-7352-9e5a-782bc5c4e6f5/flowcv-research",
"manifest": {
"schema_version": 1,
"scope": "Curated research package; excludes raw session ledger and original personal document observation",
"source_commit": "b2a9fd68b081a8cc1701b1c58eaea7e1070274af",
"checkpoint_count": 37,
"files": [
{
"file": "01-flowcv-audit.md",
"bytes": 59272,
"sha256": "7e28275cd6c5d06a0e527fa7ccb60f140fa4a1d845a338497393927a092c6869"
},
{
"file": "02-component-interaction-inventory.md",
"bytes": 8033,
"sha256": "b73e9fe403bc88acde17ebd97f6afd17df08ee647764ec67847c7a0b8af2ff8a"
},
{
"file": "03-jobjakt-gap-analysis.md",
"bytes": 11702,
"sha256": "a9cab0d5fc231c9539b4df51720927ebb658f48d86b5235f0b4f5757d26fc46d"
},
{
"file": "04-jobjakt-design-proposal.md",
"bytes": 11012,
"sha256": "aed573784ad0dacd6c5f040946d0601b1c2e87257cb2f81dd957ff2c15a4ce28"
},
{
"file": "05-desktop-mobile-wireframes.md",
"bytes": 13871,
"sha256": "ae3ecf57e6aab3790f57b0de3c05d64cf9b0d007cf65d317916df01c06e646f7"
},
{
"file": "06-phased-implementation-plan.md",
"bytes": 21933,
"sha256": "550517db7581071e7a488f0ec2b927dff45ec790995b24ad59b8a217643ea4fb"
},
{
"file": "07-acceptance-and-test-plan.md",
"bytes": 11886,
"sha256": "d818dc6bfb23b5b30cbf4928ff1be6ffeb835f1d5b68042beddd69834ddb7400"
},
{
"file": "D1-dashboard-evidence.json",
"bytes": 205077,
"sha256": "62d52df44f43a6d2b7b081fcd68b976787b2fb0e68d2ac1430b26d35973e5fdf"
},
{
"file": "D1-dashboard.png",
"bytes": 68771,
"sha256": "3bdb50cd7cab638ecbe37d700f98c07a9394550bb694aeb24d286ce4ea91f246"
},
{
"file": "D2-card-menu-evidence.json",
"bytes": 228974,
"sha256": "99c15236f3ba3c170795f2f29f31a803b27d9d438c49381b130876a45e561ea5"
},
{
"file": "D2-card-menu.png",
"bytes": 72264,
"sha256": "ff46bb8b0302505a48eed228000e880805125ba7c38d78f709047e3fe2d0b264"
},
{
"file": "E1-editor-evidence.json",
"bytes": 77182,
"sha256": "7dbe850e73361aed0fbba6e337b0bc5c0a6ad582ca608df4654a55d6124e0449"
},
{
"file": "E1-editor.png",
"bytes": 124118,
"sha256": "ff1f8c8d1c9d66c66493ac4c315e85a4f37d045f12f1a96fa33167972c7f617b"
},
{
"file": "E10-template-applied-evidence.json",
"bytes": 129555,
"sha256": "bd601114e866fbb546af85df94a3ca7e97be3fc52897d1e75cc233049b8f3b38"
},
{
"file": "E10-template-applied.png",
"bytes": 147051,
"sha256": "f98fad9d9a6e305a143f90c429f94d35cc5ae7c733b392e90f00d534c7629431"
},
{
"file": "E11-template-undo-evidence.json",
"bytes": 128361,
"sha256": "a908746d9d9289820936d716119582a620848d18f47e5959347385916e571f94"
},
{
"file": "E11-template-undo.png",
"bytes": 146290,
"sha256": "6b81c237c305328c04eeb13a55044c65659c57099cf4c3b280edd471f98bf052"
},
{
"file": "E12-redo-layout-evidence.json",
"bytes": 129872,
"sha256": "da1b4c8243639e41cda3a93c54764f80e78fb2028f07623995624e4e14efc287"
},
{
"file": "E12-redo-layout.png",
"bytes": 125612,
"sha256": "40c49b450c682f27676320499981bc8575cc9d002bee6d4b7a0d949c7ea30e6e"
},
{
"file": "E13-sections-reordered-evidence.json",
"bytes": 132151,
"sha256": "b3787ecb307e99fd0c8322370a5b0007c6cbe44de039bbdd5e3ede81c24c9367"
},
{
"file": "E13-sections-reordered.png",
"bytes": 131055,
"sha256": "5c55733499bd65ba66eeb9774824fc449002f0405bf076e3ce7f0d758dee7c0a"
},
{
"file": "E14-font-size-pagination-evidence.json",
"bytes": 132213,
"sha256": "a5073db5172cbc957f8a99929ad3b16cf627349960417baef0e771a6fafb371d"
},
{
"file": "E14-font-size-pagination.png",
"bytes": 104188,
"sha256": "6657f98ad7d3c284dd40dc4504eed47bf71a746006f550dc0e5e39a4b08f7fcd"
},
{
"file": "E15-body-font-picker-evidence.json",
"bytes": 148877,
"sha256": "766c00058b4173bfbbd34f01d4b8bbf42627233628024c9f3888efe538551366"
},
{
"file": "E15-body-font-picker.png",
"bytes": 122072,
"sha256": "b39c33f535cca948120c22ad00eda9f645a372cd6c766ff43f120d9db9782f2d"
},
{
"file": "E16-ai-tools-evidence.json",
"bytes": 39859,
"sha256": "ac133147783bca212333060a2e63e854e139476c90356bd65e50fff7fa4ed398"
},
{
"file": "E16-ai-tools.png",
"bytes": 137485,
"sha256": "1ce84e46bdf1a34b599d14ccfffcb8704862fd5e380200ffecaeca3fbb667cf5"
},
{
"file": "E17-ai-plan-gate-evidence.json",
"bytes": 41886,
"sha256": "b049bf14e0d627cf54185efa39fa767282960ed7c726df1970cbab5de8e81790"
},
{
"file": "E17-ai-plan-gate.png",
"bytes": 146002,
"sha256": "e6909536a947b79241dc8ba349db3220f1b07868440ea29a83b0673053b1d842"
},
{
"file": "E18-pdf-export-success-evidence.json",
"bytes": 43482,
"sha256": "79e027909cb6fd359fb6d3062dd8942cb03be67f049572d655dec680d0efbb5f"
},
{
"file": "E18-pdf-export-success.png",
"bytes": 149368,
"sha256": "17abe6237e490bfd057ea0a9b5f1e03bbe28a540109f1e8eabd13f29d9bfab4b"
},
{
"file": "E19-editor-menu-evidence.json",
"bytes": 5516,
"sha256": "831defbebd36b7eb3d1c0e1489d6f53df56ecb38c75f9e1520edc8d89ab219a5"
},
{
"file": "E19-editor-menu.png",
"bytes": 147609,
"sha256": "5b08cf78215c03e1d51b69bd5ec67568550eab18c127ccdd2f20b99c01440e4a"
},
{
"file": "E2-experience-form-evidence.json",
"bytes": 37378,
"sha256": "62cb86256281c74e3a139ce4215bffc79ee37556e6e6c364b1b9f3a92d0d41f9"
},
{
"file": "E2-experience-form.png",
"bytes": 138901,
"sha256": "50096bc3066e19254a411d14624be775b4eaa5bfcdde8b98314f2c65c4d64fa7"
},
{
"file": "E20-document-switcher-evidence.json",
"bytes": 41168,
"sha256": "ec423706cf48041d60ceda77990daefa48f763e9c175b813c0f54fa74ded11d2"
},
{
"file": "E20-document-switcher.png",
"bytes": 154221,
"sha256": "36f1da74dc6c4ba1d7b4e37bfd01adc53f953ac519e7bfe8f01ba0f6f337a3b1"
},
{
"file": "E21-duplicate-limit-evidence.json",
"bytes": 41064,
"sha256": "45e6a1eedadd51af79edaf270e5568946e4b998cb4e7115a3301b74985a180d5"
},
{
"file": "E21-duplicate-limit.png",
"bytes": 140711,
"sha256": "93c8dc26fc373872be5aec9e982d1e91fa4cf40397dc554ecd66a0324847df86"
},
{
"file": "E3-network-metadata.json",
"bytes": 990,
"sha256": "348e50bcc6796803a8ad817e03ee4cfca20a6d78d430eecb7145f8b78efd9844"
},
{
"file": "E3-title-edit-evidence.json",
"bytes": 37530,
"sha256": "8f3bf69615d0ef14a68d82bad80096807656864d0e8ca03be56b3c2b2d3cd298"
},
{
"file": "E3-title-edit.png",
"bytes": 140840,
"sha256": "7fe2f690844381c0dbf68f236a08f89f7a3b53e01121418e648c1748b8f5c33b"
},
{
"file": "E4-section-customizations-evidence.json",
"bytes": 41382,
"sha256": "f0b993254a994c1ec41d94689af9c6e1a0b1c575eafbb8e7e2879cdf9e3c9dcc"
},
{
"file": "E4-section-customizations.png",
"bytes": 146083,
"sha256": "71ffdf9a2964f43e33bfea28c5c738fd2cbbe8ffe33fccc4cd315554032ed2b0"
},
{
"file": "E5-add-content-evidence.json",
"bytes": 74572,
"sha256": "e9284d4e0a9ea410050ce0fbdb03dd98212852f02b49ce4f1071c052c318d6ee"
},
{
"file": "E5-add-content.png",
"bytes": 138763,
"sha256": "df06316e02f46c30d66d0413892456a80bf56c1604fa6e2be5d57d3d7ed0ebb0"
},
{
"file": "E6-new-project-evidence.json",
"bytes": 34816,
"sha256": "481c5f186b046d9f3a4f3c40a980a4b5b8ac410fb9114bcc3ea2b08983a98fb6"
},
{
"file": "E6-new-project.png",
"bytes": 123580,
"sha256": "b3e32e7f509c656989794d58fec7aaf6123959858846ef604c0220b58c359eda"
},
{
"file": "E7-customize-overview-evidence.json",
"bytes": 129310,
"sha256": "57fc528513148062b5b1e65206d14941b977200a208a56b87cf0121604f5b2e3"
},
{
"file": "E7-customize-overview.png",
"bytes": 146916,
"sha256": "89333b9c4dbd702c0b7f86c9ffa394df94d9dfe67053813bc75a1e090b817f46"
},
{
"file": "E8-template-gallery-evidence.json",
"bytes": 281794,
"sha256": "4ef788154122d77f9c8a19a8bc11364209546d12748f0bf23a75d3a88a91f814"
},
{
"file": "E8-template-gallery.png",
"bytes": 457728,
"sha256": "c72301c8103b07af1fc171cb18e4eeaf61ae352d9884e49effd4e7c053129b6c"
},
{
"file": "E9-template-detail-evidence.json",
"bytes": 212185,
"sha256": "bdbb114d6ea497b998b0de867a0f995ff7f9d28fc39131d223b33ce494e93b78"
},
{
"file": "E9-template-detail.png",
"bytes": 233838,
"sha256": "8a1d987ff4cb9598cac3c6dd6d5a2e49ce68eae3fabcc6e8bfe7d7bfbaaee46a"
},
{
"file": "L1-cover-letter-creation-gallery-evidence.json",
"bytes": 47932,
"sha256": "5a022be86ea8aaf52cfb8158357e55a4dd01f304760a530a8ec351912ff70412"
},
{
"file": "L1-cover-letter-creation-gallery.png",
"bytes": 209961,
"sha256": "3bc0da7b4ed9e26a8e233f28f856cf13f2aeb0ee147cae8aa77dcfd2ac1c80f1"
},
{
"file": "L10-letter-export-dashboard-evidence.json",
"bytes": 17982,
"sha256": "43f49c20af8e181dcb46eed02b25833a37fec84d94f4581c5ef29a9caf4c1f23"
},
{
"file": "L10-letter-export-dashboard.png",
"bytes": 53840,
"sha256": "6f1f6139fdfb0a9584ffa41607edb6e4f45e3b9f635fab96b5cd172d63ba9823"
},
{
"file": "L2-blank-cover-letter-editor-evidence.json",
"bytes": 11450,
"sha256": "24e17900e9ffdec33d708d2320f1a852679184ff72b38871d8b8952e985dfe3a"
},
{
"file": "L2-blank-cover-letter-editor.png",
"bytes": 52649,
"sha256": "a1f7b7d572a5b2c048d3d355fcdf3a092bea4231b839ca514142f85b6abb9925"
},
{
"file": "L3-letter-sender-form-evidence.json",
"bytes": 20675,
"sha256": "18c9cc6af92d59f6a9d4ffdcde0036009f1e6bb884e374e8d2c4b400fa3ec223"
},
{
"file": "L3-letter-sender-form.png",
"bytes": 78047,
"sha256": "67f697c4a071272b1efff91d0c214de555e71d66e18f1dc2b735d5a8f4e1200d"
},
{
"file": "L4-copy-sender-prompt-evidence.json",
"bytes": 23806,
"sha256": "0e8ada0babb90c6da000315dd1e6cc92f06480fd4f6d91def81d98ca2afb7f9a"
},
{
"file": "L4-copy-sender-prompt.png",
"bytes": 89341,
"sha256": "ef18e6875b7460d4b90489d5776f28f38f9fef21e935e3cc408167cff0ef6fff"
},
{
"file": "L5-sender-copied-evidence.json",
"bytes": 44353,
"sha256": "dba8eb01cab922d1be7de997a1ae7dbe55385a737b8922e7329d170b3abdcd63"
},
{
"file": "L5-sender-copied.png",
"bytes": 90619,
"sha256": "be4daa001bab79a9901d0ce6965b860d646e632d52959768248727672f472eff"
},
{
"file": "L6-letter-body-autosave-evidence.json",
"bytes": 22202,
"sha256": "58f00115ba817b8c6f50593db12a5743bdfc44432748145e83ac9d5675345239"
},
{
"file": "L6-letter-body-autosave.png",
"bytes": 71580,
"sha256": "a3128281f496e5119eef1bf705d146b3a86fd7cce89efed401edc2e7d81b42e5"
},
{
"file": "L7-letter-customize-evidence.json",
"bytes": 85510,
"sha256": "868e83f3f221845df8aa15455d41dfc810fb493f50251393598c3b57f0eb5b91"
},
{
"file": "L7-letter-customize.png",
"bytes": 105060,
"sha256": "1e6a0120a92483d9d6ca4140960c9210045456049bd91b8d47b09536ea0d35ed"
},
{
"file": "L8-copy-resume-design-prompt-evidence.json",
"bytes": 88233,
"sha256": "bdd8fae2893f4adb87bd6b6ea4df4accb3c85c0173e30fc532660505e4ce2e34"
},
{
"file": "L8-copy-resume-design-prompt.png",
"bytes": 111317,
"sha256": "5b005149588941e56625c36e6798c77d621dfc0ce02f02eee199d3c1fd5f6cca"
},
{
"file": "L9-resume-design-copied-evidence.json",
"bytes": 85536,
"sha256": "24d3bdcd2581c6668749a6c7f4965e82b9e1b8140537e09f370b690c1f70470a"
},
{
"file": "L9-resume-design-copied.png",
"bytes": 106643,
"sha256": "846db77a81092dbf6fde869a6b12ddd52105df5b4fa5ba1057fab35e83fd2e11"
},
{
"file": "M1-mobile-content-evidence.json",
"bytes": 43219,
"sha256": "ca7cd07ad839edd60286d0b93a6b1fa2d1865f5b6c880fd7f770174ec8fab1b9"
},
{
"file": "M1-mobile-content.png",
"bytes": 41597,
"sha256": "ab9e4988445075c7367cf71db9a5102705bee7e3712c66cbccedc5e9961e2816"
},
{
"file": "M2-mobile-preview-evidence.json",
"bytes": 63210,
"sha256": "ea6252ea2e15638256af7575224f74e465e744164d48b98e417972089d3a993d"
},
{
"file": "M2-mobile-preview.png",
"bytes": 39402,
"sha256": "a07671cac5369a20604cfb40a6fdf4069569425c9357aa232a1807437cd955a3"
},
{
"file": "M3-mobile-experience-form-evidence.json",
"bytes": 19666,
"sha256": "6adb05dfcfe717fd59deca710aeffadf05bcdfdb2eb2e7954510897c11dcfd29"
},
{
"file": "M3-mobile-experience-form.png",
"bytes": 39140,
"sha256": "fe1a927f9aa17bad227d7c0e708f6724fbc69621f0085360e87f19d07d20b44e"
},
{
"file": "M4-date-range-edge-evidence.json",
"bytes": 24889,
"sha256": "3b24b2b8abf0b4d1171f71ecd09414095bde18562028a043b64b744ba70f66c0"
},
{
"file": "M4-date-range-edge.png",
"bytes": 44335,
"sha256": "e28603ed3698de744d13dad404f1cdfe123c0bab9013b8054a49fe677e6e8b1b"
},
{
"file": "README.md",
"bytes": 4748,
"sha256": "7bd00ed1a59ea390a2b29400bcab49524bbffc0ab674bf6c23b63709505ef615"
}
]
},
"checkpoints": [
{
"file": "D1-dashboard-evidence.json",
"sha256": "62d52df44f43a6d2b7b081fcd68b976787b2fb0e68d2ac1430b26d35973e5fdf",
"checkpoint": "D1",
"manualAction": "User prepared synthetic Resume 1 before capture; creation actions not observed.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 468,
"findings": [
{
"status": "Verified",
"finding": "Navigation links, New resume button, A4 document preview, relative edited time, card overflow."
},
{
"status": "Verified",
"finding": "Focusable overflow button has empty accessible name.",
"node_id": "1662"
},
{
"status": "Not Tested",
"finding": "Creation, overflow actions, keyboard behavior and autosave."
}
],
"namedInteractiveControls": []
},
{
"file": "D2-card-menu-evidence.json",
"sha256": "99c15236f3ba3c170795f2f29f31a803b27d9d438c49381b130876a45e561ea5",
"checkpoint": "D2",
"manualAction": "User clicked the Resume 1 card overflow control and left it open.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 494,
"findings": [
{
"status": "Verified",
"finding": "Overflow opens a panel positioned upward over the card preview, with Edit title, Duplicate, AI translate Beta, Download and Delete."
},
{
"status": "Verified",
"finding": "Panel actions are exposed as buttons; no menu or menuitem role appears in this accessibility snapshot. Trigger remains focused; expanded state is not reported."
},
{
"status": "Not Tested",
"finding": "Successful duplication, translation, download, deletion, rename validation, keyboard navigation, focus trapping/restoration and versions."
}
],
"namedInteractiveControls": []
},
{
"file": "E1-editor-evidence.json",
"sha256": "7dbe850e73361aed0fbba6e337b0bc5c0a6ad582ca608df4654a55d6124e0449",
"checkpoint": "E1",
"manualAction": "User opened Resume 1 editor and reports adding one of every content type. Add operations happened before capture.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 346,
"findings": [
{
"status": "Verified",
"finding": "Content editor is at /resume/content. Header links: Overview, Content, Customize, AI Tools; document switcher, Download and overflow control."
},
{
"status": "Verified",
"finding": "Desktop split view: section accordions left, document preview right. Current screenshot is scrolled near bottom of content list."
},
{
"status": "Verified",
"finding": "15 headings: Summary, Skills, Languages, Professional Experience, Education, Certificates, Awards, Courses, Projects, Interests, References, Declaration, Publications, Organisations, Custom. Add Content control present."
},
{
"status": "Verified",
"finding": "Entry drag buttons expose instructions for Space to lift, arrow keys to move and Escape to cancel. Add Entry and Delete section controls exist."
},
{
"status": "Not Tested",
"finding": "Keyboard reorder success, section reorder, add workflow, save state, preview update timing, undo/redo and zoom. No save indicator text observed in this snapshot; this does not prove absence."
}
],
"namedInteractiveControls": []
},
{
"file": "E10-template-applied-evidence.json",
"sha256": "bd601114e866fbb546af85df94a3ca7e97be3fc52897d1e75cc233049b8f3b38",
"checkpoint": "E10",
"manualAction": "User clicked Use this template; returned to editor.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 622,
"findings": [
{
"status": "Verified",
"finding": "Use this template closes modal and returns to Customize. Layout changed from Two to One; preview changed to single column, centered header, uppercase ruled headings and Alegreya body font."
},
{
"status": "Verified",
"finding": "Synthetic experience title, original section content and new Project B remain in AX/preview after application. No field-by-field export or backend comparison performed."
},
{
"status": "Verified",
"finding": "Template changes a bundle of settings: section order, typography, spacing, margins, color/header choices and entry layout. Base font remains 10.5pt; line height is now 1.15 and margins 22mm/12mm."
},
{
"status": "Not Tested",
"finding": "Undo/redo reversibility, template persistence after reload, full data equivalence, original design recovery and pagination/export fidelity."
}
],
"namedInteractiveControls": []
},
{
"file": "E11-template-undo-evidence.json",
"sha256": "a908746d9d9289820936d716119582a620848d18f47e5959347385916e571f94",
"checkpoint": "E11",
"manualAction": "User clicked left curved arrow once and reported previous design returned.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 617,
"findings": [
{
"status": "Verified",
"finding": "One click on left curved-arrow control restores observed two-column layout, left header, Zilla Slab font, previous spacing/margins, color settings and section ordering after template application."
},
{
"status": "Verified",
"finding": "New synthetic Project B remains present after undo; title and content edits predate template change."
},
{
"status": "Verified",
"finding": "Right curved arrow changes from visually muted to active-looking. Both controls remain unnamed in AX; actual redo still needs testing."
},
{
"status": "Not Tested",
"finding": "Redo, history depth, content-edit undo scope, cross-route history and persistence across reload."
}
],
"namedInteractiveControls": []
},
{
"file": "E12-redo-layout-evidence.json",
"sha256": "da1b4c8243639e41cda3a93c54764f80e78fb2028f07623995624e4e14efc287",
"checkpoint": "E12",
"manualAction": "User clicked right curved arrow and Layout anchor; reported single-column design returned.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 622,
"findings": [
{
"status": "Verified",
"finding": "Right curved-arrow restores applied single-column template: One selected, Alegreya font, template settings and reordered sections; synthetic content remains observed."
},
{
"status": "Verified",
"finding": "Layout anchor scrolls controls into view while fixed top navigation remains. Section layout uses a vertical list of draggable labeled rows with grip icons and a fixed Personal Details block above."
},
{
"status": "Verified",
"finding": "Current section order starts Summary, Professional Experience, Education, Skills, Certificates, Languages. Rows expose keyboard drag instructions."
},
{
"status": "Not Tested",
"finding": "Actual section reorder, column reassignment, mixed columns, page-break placement, undo beyond this template change and layout save errors."
}
],
"namedInteractiveControls": []
},
{
"file": "E13-sections-reordered-evidence.json",
"sha256": "b3787ecb307e99fd0c8322370a5b0007c6cbe44de039bbdd5e3ede81c24c9367",
"checkpoint": "E13",
"manualAction": "User dragged Skills grip above Education and reported rows moving aside with no confirmation.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 639,
"findings": [
{
"status": "Verified",
"finding": "Mouse drag moves Skills above Education in both section layout list and document preview; neighboring rows shifted during dragging per user report; no visible confirmation reported."
},
{
"status": "Verified",
"finding": "AX contains drop announcement: You have dropped the item. You have moved the item from position 3 to position 3."
},
{
"status": "Inferred",
"finding": "Drop announcement may be misleading because before/after section order changed while reported source/destination positions are equal. Needs keyboard/screen-reader reproduction before treating as general defect."
},
{
"status": "Not Tested",
"finding": "Keyboard drop success/cancel, drag across columns, entry reorder, persistence after reload and multi-page page-break behavior."
}
],
"namedInteractiveControls": []
},
{
"file": "E14-font-size-pagination-evidence.json",
"sha256": "a5073db5172cbc957f8a99929ad3b16cf627349960417baef0e771a6fafb371d",
"checkpoint": "E14",
"manualAction": "User clicked Font Size anchor and Base Font Size plus once; reported 11pt and preview update.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 639,
"findings": [
{
"status": "Verified",
"finding": "One plus click increases Base Font Size from 10.5pt to 11pt. User observed preview update; final screenshot shows changed typography and two physical page surfaces separated by a gap."
},
{
"status": "Verified",
"finding": "Font Size card offers base size and relative offsets for Full Name, Professional Title, Section Headings and Entry Header using segmented-looking tracks plus minus/plus controls."
},
{
"status": "Verified",
"finding": "Spacing card begins with Line Height and Space Between Elements; line height remains 1.15. Increment/decrement buttons are unnamed in AX, and no slider role appears in this snapshot."
},
{
"status": "Not Tested",
"finding": "Whether 11pt caused page count to increase, numeric ranges/limits, keyboard slider operation, zoom, typography persistence and export pagination parity."
}
],
"namedInteractiveControls": []
},
{
"file": "E15-body-font-picker-evidence.json",
"sha256": "766c00058b4173bfbbd34f01d4b8bbf42627233628024c9f3888efe538551366",
"checkpoint": "E15",
"manualAction": "User opened Font anchor and Body Font selector, leaving list open.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 751,
"findings": [
{
"status": "Verified",
"finding": "Body Font opens scrollable option list grouped SERIF, SANS and MONO, with each font name rendered as a sample. Current Alegreya has visible checkmark."
},
{
"status": "Verified",
"finding": "AX exposes 35 font options in this capture, including Source Sans Pro, Roboto, Lora, EB Garamond and Courier Prime. Body Font trigger expanded=true with listbox popup semantics."
},
{
"status": "Verified",
"finding": "No search field observed in this captured picker. Do not infer font upload is unsupported from this view."
},
{
"status": "Not Tested",
"finding": "Changing body/name font, keyboard selection, multilingual glyph coverage, font embedding and export matching."
}
],
"namedInteractiveControls": []
},
{
"file": "E16-ai-tools-evidence.json",
"sha256": "ac133147783bca212333060a2e63e854e139476c90356bd65e50fff7fa4ed398",
"checkpoint": "E16",
"manualAction": "User selected Source Sans Pro, reported preview also changes on hover, then opened AI Tools without submitting.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 254,
"findings": [
{
"status": "Verified",
"finding": "AI Tools route /resume/ai-tools shows Pro-plan notice and Upgrade to Pro action, plus Translate resume, Improve writing, Draft Cover Letter, Generate Summary, Check spelling & grammar cards."
},
{
"status": "Verified",
"finding": "Draft Cover Letter copy says it uses resume and target job description. Grammar check copy distinguishes checking from rewriting. These are interface claims; resulting behavior not tested."
},
{
"status": "Verified",
"finding": "Document preview remains alongside AI tool navigation."
},
{
"status": "Inferred",
"finding": "User reports choosing Source Sans Pro changes preview, including temporary preview on font hover. Current screenshot is visibly sans serif; selected font value and hover cancellation not independently captured."
},
{
"status": "Not Tested",
"finding": "AI input forms, gating enforcement, privacy disclosure, quota, generation latency/result quality, apply/reject/undo behavior and AI network requests."
}
],
"namedInteractiveControls": []
},
{
"file": "E17-ai-plan-gate-evidence.json",
"sha256": "b049bf14e0d627cf54185efa39fa767282960ed7c726df1970cbab5de8e81790",
"checkpoint": "E17",
"manualAction": "User clicked Draft now and paused; resulting screen is a Pro-plan gate.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 268,
"findings": [
{
"status": "Verified",
"finding": "Draft now opens a plan gate stating AI features are available on Pro, with Stay on Free, Upgrade to Pro and close controls. No drafting form or generation result observed."
},
{
"status": "Verified",
"finding": "Gate copy advertises unlimited PDF downloads, all resume templates and design options on free plan. This verifies messaging, not unlimited use or export behavior."
},
{
"status": "Not Tested",
"finding": "Paid AI input fields, generation, resume/job data use, privacy options, quotas and apply/reject results. No upgrade or generation requested."
}
],
"namedInteractiveControls": []
},
{
"file": "E18-pdf-export-success-evidence.json",
"sha256": "79e027909cb6fd359fb6d3062dd8942cb03be67f049572d655dec680d0efbb5f",
"checkpoint": "E18",
"manualAction": "User dismissed Pro gate and clicked Download; observed spinner popup then download. Passive 45-second window captured export metadata and final success state.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 273,
"findings": [
{
"status": "Verified",
"finding": "Manual Download observed successful GET /api/resumes/download with 200 application/pdf. No response body, query identifiers, cookies or raw headers retained."
},
{
"status": "Verified",
"finding": "Final AX/screenshot shows Resume downloaded success popup with encouragement and return-to-editing action. User reports spinner popup then completed download; spinner pixels not captured."
},
{
"status": "Not Tested",
"finding": "Actual local PDF contents, page size/count, font embedding, selectable text, output accessibility, retry/failure path and alternative export formats."
}
],
"namedInteractiveControls": []
},
{
"file": "E19-editor-menu-evidence.json",
"sha256": "831defbebd36b7eb3d1c0e1489d6f53df56ecb38c75f9e1520edc8d89ab219a5",
"checkpoint": "E19",
"manualAction": "User closed export success popup and opened top-right editor overflow.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 9,
"findings": [
{
"status": "Verified",
"finding": "Top-right editor overflow exposes two menuitems: Download via email and Get shareable link. No version/history/zoom control appears in this menu state."
},
{
"status": "Verified",
"finding": "Unlike earlier custom dialogs, current AX snapshot is restricted to menu content with menuitem roles. No keyboard navigation test performed."
},
{
"status": "Not Tested",
"finding": "Email delivery, publishing/sharing, link permissions, revocation and history/version availability elsewhere. Neither action was invoked."
}
],
"namedInteractiveControls": [
[
"menuitem",
"Download via email"
],
[
"menuitem",
"Get shareable link"
]
]
},
{
"file": "E2-experience-form-evidence.json",
"sha256": "62cb86256281c74e3a139ce4215bffc79ee37556e6e6c364b1b9f3a92d0d41f9",
"checkpoint": "E2",
"manualAction": "User expanded Professional Experience and opened the synthetic entry; no edits made during capture.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 213,
"findings": [
{
"status": "Verified",
"finding": "Experience editing replaces the left accordion pane with an Edit Entry form while the resume preview remains alongside."
},
{
"status": "Verified",
"finding": "Employer autocomplete combobox plus Link button; Job Title and Location text inputs; Start Date/End Date inputs with Clear date controls; richtext Description."
},
{
"status": "Verified",
"finding": "Richtext tools: Bold, Italic, Underline, Bulleted list, Insert link, left/center/right/justified alignment. AI shortcuts: Improve Writing, Suggest Content, Grammar Check, Shorter."
},
{
"status": "Verified",
"finding": "Done button, Get Tips, eye and trash icons, section customization disclosure. Eye/trash buttons have empty names in this snapshot."
},
{
"status": "Verified",
"finding": "Both date inputs expose accessible name MM/YYYY despite separate visible Start Date and End Date labels."
},
{
"status": "Not Tested",
"finding": "Autocomplete suggestions, date validation, AI results, hide/delete effects, Done semantics and autosave."
}
],
"namedInteractiveControls": [
[
"textbox",
"Job Title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Location"
],
[
"textbox",
"Description"
]
]
},
{
"file": "E20-document-switcher-evidence.json",
"sha256": "ec423706cf48041d60ceda77990daefa48f763e9c175b813c0f54fa74ded11d2",
"checkpoint": "E20",
"manualAction": "User opened Resume 1 dropdown beside Download.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 266,
"findings": [
{
"status": "Verified",
"finding": "Resume selector opens My Resumes popover listing Resume 1 with Switch to Resume 1, Duplicate, More actions and Add new resume controls."
},
{
"status": "Verified",
"finding": "Duplicate and More actions controls are named in AX, unlike the editor top-level overflow. No revision or version selector appears in current popover."
},
{
"status": "Not Tested",
"finding": "Switching between distinct documents, duplication result, per-document actions, creation limit and revision/history availability elsewhere."
}
],
"namedInteractiveControls": []
},
{
"file": "E21-duplicate-limit-evidence.json",
"sha256": "45e6a1eedadd51af79edaf270e5568946e4b998cb4e7115a3301b74985a180d5",
"checkpoint": "E21",
"manualAction": "User clicked Duplicate beside Resume 1 and paused at the free-plan limit prompt.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 265,
"findings": [
{
"status": "Verified",
"finding": "Duplicate opens Need more than one resume? gate stating free plan includes one resume and upgrade is required to create another. No successful duplicate observed."
},
{
"status": "Verified",
"finding": "Gate offers upgrade and close; no purchase or upgrade performed."
},
{
"status": "Not Tested",
"finding": "Copy naming, independent editing, copied content/design ownership, version history and duplicate behavior on paid plan."
}
],
"namedInteractiveControls": []
},
{
"file": "E3-title-edit-evidence.json",
"sha256": "8f3bf69615d0ef14a68d82bad80096807656864d0e8ca03be56b3c2b2d3cd298",
"checkpoint": "E3",
"manualAction": "User replaced Job Title with UX Test Engineer, paused without clicking Done and reported no visible feedback.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 215,
"findings": [
{
"status": "Verified",
"finding": "UX Test Engineer appears in document preview while entry form remains open; user did not click Done."
},
{
"status": "Verified",
"finding": "45-second attach window observed GET /api/resumes/:document-id 200, PATCH /api/resumes/save_entry 200 and POST /clientlog 200. No payloads or raw headers captured."
},
{
"status": "Inferred",
"finding": "Successful save_entry PATCH during the manual title edit is consistent with automatic saving before Done; no reload persistence or conflict behavior tested."
},
{
"status": "Verified",
"finding": "User reported seeing no feedback; final AX snapshot has no saving/saved text. Transient visual indicators may have been missed."
},
{
"status": "Not Tested",
"finding": "Reload persistence, exact debounce timing, error/retry, offline behavior, undo/redo, whether Done triggers additional saves."
}
],
"namedInteractiveControls": [
[
"textbox",
"Job Title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Location"
],
[
"textbox",
"Description"
]
]
},
{
"file": "E4-section-customizations-evidence.json",
"sha256": "f0b993254a994c1ec41d94689af9c6e1a0b1c575eafbb8e7e2879cdf9e3c9dcc",
"checkpoint": "E4",
"manualAction": "User clicked Done, reopened experience, confirmed title retention and expanded section customizations.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 237,
"findings": [
{
"status": "Verified",
"finding": "UX Test Engineer remains visible after user reports Done then reopening the same entry. This verifies in-app reopen retention, not browser reload persistence."
},
{
"status": "Verified",
"finding": "Section disclosure expands and changes name to Hide customizations for this section with expanded=true."
},
{
"status": "Verified",
"finding": "Work Experience customizations show two Title/Subtitle Order choices: Job Title - Employer and Employer - Job Title; latter visibly selected. Group promotions checkbox is unchecked."
},
{
"status": "Verified",
"finding": "Hint links to Customize > Entry Layout for more options."
},
{
"status": "Not Tested",
"finding": "Applying order choice, grouping multiple promotions, history/undo, reload persistence and date validation."
}
],
"namedInteractiveControls": [
[
"textbox",
"Job Title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Location"
],
[
"textbox",
"Description"
]
]
},
{
"file": "E5-add-content-evidence.json",
"sha256": "e9284d4e0a9ea410050ce0fbdb03dd98212852f02b49ce4f1071c052c318d6ee",
"checkpoint": "E5",
"manualAction": "User chose Job Title - Employer and reported preview order swapped; clicked Done and Add Content, leaving chooser open.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 441,
"findings": [
{
"status": "Verified",
"finding": "Add Content opens a large modal with icon/title/help-text tiles in four columns at this desktop viewport."
},
{
"status": "Verified",
"finding": "Current chooser lists Education, Professional Experience, Skills, Languages, Certificates, Interests, Projects, Courses, Awards, Organisations, Publications, References and two Custom tiles (existing custom section and add-custom tile)."
},
{
"status": "Verified",
"finding": "Summary and Declaration exist in this document but are not offered in this captured chooser state. Do not infer they are unsupported or why they are omitted."
},
{
"status": "Verified",
"finding": "Dialog has modal=true but an empty accessible name. Close icon is an unnamed button. Background controls remain in the captured AX tree; focus is reported on Add Content. Keyboard containment was not tested."
},
{
"status": "Verified",
"finding": "Experience entry name now reads UX Test Engineer, employer after presentation change; user reports preview swapped their order."
},
{
"status": "Not Tested",
"finding": "Choosing a new section, duplicate section rules, custom schema editing, modal keyboard behavior and add cancellation."
}
],
"namedInteractiveControls": []
},
{
"file": "E6-new-project-evidence.json",
"sha256": "481c5f186b046d9f3a4f3c40a980a4b5b8ac410fb9114bcc3ea2b08983a98fb6",
"checkpoint": "E6",
"manualAction": "User selected Projects from Add Content and left the blank form untouched.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 203,
"findings": [
{
"status": "Verified",
"finding": "Choosing Projects when a Projects section already exists opens a blank Edit Entry form at /resume/content/edit/project/:entry-id. The existing project remains visible in the preview."
},
{
"status": "Verified",
"finding": "Project fields: Project title with Link, Sub title, Start Date, End Date and richtext Description. Project title is focused; exposed required states are false. Done, hide/delete icons, AI shortcuts and customization disclosure are present."
},
{
"status": "Inferred",
"finding": "Chooser appears to add a new entry to the existing typed section; successful completion and section count still need corroboration."
},
{
"status": "Not Tested",
"finding": "Empty-submit validation, date validation, new entry persistence, cancellation and reordering."
}
],
"namedInteractiveControls": [
[
"textbox",
"Project title"
],
[
"textbox",
"Sub title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Description"
]
]
},
{
"file": "E7-customize-overview-evidence.json",
"sha256": "57fc528513148062b5b1e65206d14941b977200a208a56b87cf0121604f5b2e3",
"checkpoint": "E7",
"manualAction": "User completed new synthetic Project B, clicked Done and opened Customize; reported no save feedback.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 617,
"findings": [
{
"status": "Verified",
"finding": "Customize route /resume/customization retains preview and shows anchor navigation: Document, Templates, Layout, Font Size, Spacing, Entries, Headings, Font, Colors, Header, Photo, Links, Footer, Sections."
},
{
"status": "Verified",
"finding": "Document defaults currently English (UK), DD/MM/YYYY, A4; Browse templates control present. Existing and new UX Test Project B appear together under Projects in preview."
},
{
"status": "Verified",
"finding": "Layout controls include One/Two/Mix columns, Top/Left/Right header, section drag list with page breaks and 45%/55% column widths. Two and Left currently selected."
},
{
"status": "Verified",
"finding": "AX exposes font size offsets, line height, spacing, margins, entry/date layout, heading styles, fonts, color area/modes, accent targets, header alignment/icon styling, photo options, link styling, footer fields and section customizations. Presence only; effects not tested."
},
{
"status": "Verified",
"finding": "Current fonts: Zilla Slab body and Same as body font for name. Color modes Single/Multi/Image; current Multi. Photo controls explain options appear after photo added."
},
{
"status": "Inferred",
"finding": "Floating curved-arrow pair resembles undo/redo; both are unnamed buttons in AX, so function and scope need testing."
},
{
"status": "Verified",
"finding": "User reports no save feedback while adding project and moving to Customize."
},
{
"status": "Not Tested",
"finding": "Template selection effects, typography changes, page format/language effects, undo/redo, drag/drop success, preview zoom and pagination behavior."
}
],
"namedInteractiveControls": []
},
{
"file": "E8-template-gallery-evidence.json",
"sha256": "4ef788154122d77f9c8a19a8bc11364209546d12748f0bf23a75d3a88a91f814",
"checkpoint": "E8",
"manualAction": "User clicked Browse templates and left gallery open without selecting a design.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 964,
"findings": [
{
"status": "Verified",
"finding": "Browse templates opens Apply a design template modal at ?modal=resume-templates. Four preview cards per row at 1912px, labeled names beneath; gallery extends below viewport."
},
{
"status": "Verified",
"finding": "Filter controls All Templates, Popular, Simple, Modern, Creative are exposed as checkboxes, All Templates checked. Their filtering behavior is not yet tested."
},
{
"status": "Verified",
"finding": "Gallery previews show sample content rather than the current synthetic resume content. Original assets are retained only in audit screenshots; no template or asset extraction/reuse."
},
{
"status": "Verified",
"finding": "Modal and close button have empty accessible names in this snapshot. Underlying Browse templates remains the reported focused control; keyboard behavior not tested."
},
{
"status": "Not Tested",
"finding": "Template application/confirmation, content retention, filter combinations, paywalls, undo and persistence."
}
],
"namedInteractiveControls": []
},
{
"file": "E9-template-detail-evidence.json",
"sha256": "bdbb114d6ea497b998b0de867a0f995ff7f9d28fc39131d223b33ce494e93b78",
"checkpoint": "E9",
"manualAction": "User selected CLASSIC CLEAR; observed larger preview/details and Use this template action.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 649,
"findings": [
{
"status": "Verified",
"finding": "Selecting Classic Clear opens a larger sample preview and detail modal, preserving underlying editor design until Use this template is chosen. URL gains template=classic-clear."
},
{
"status": "Verified",
"finding": "Use this template is a named button. Detail copy advertises A4/US-Letter, editable text, customization, print readiness and online sharing. Only copy presence is verified; exported output/sharing not tested."
},
{
"status": "Verified",
"finding": "Selected design preview uses sample content, not the synthetic current document. No confirmation warning observed before this intermediate screen."
},
{
"status": "Not Tested",
"finding": "Applying design, data retention, undo/redo, export format and online sharing."
}
],
"namedInteractiveControls": []
},
{
"file": "L1-cover-letter-creation-gallery-evidence.json",
"sha256": "5a022be86ea8aaf52cfb8158357e55a4dd01f304760a530a8ec351912ff70412",
"checkpoint": "L1",
"manualAction": "User restored synthetic experience date per report, returned desktop width and opened cover-letters landing page.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 263,
"findings": [
{
"status": "Verified",
"finding": "At /cover-letters with no user letters displayed, landing state is Create a cover letter with New blank tile and template gallery. Sidebar includes Resume, Cover Letter and Job Tracker."
},
{
"status": "Verified",
"finding": "Filters All Templates/Simple/Modern/Creative appear as checkboxes; All Templates selected. At observed 1661x948, first row has New blank and two named template previews."
},
{
"status": "Verified",
"finding": "Copy promises first cover letter free, all features and unlimited downloads. This verifies messaging, not paid-plan behavior or download limits."
},
{
"status": "Not Tested",
"finding": "Blank/template creation, populated document card dashboard, letter limits, resume data reuse and matching design."
}
],
"namedInteractiveControls": []
},
{
"file": "L10-letter-export-dashboard-evidence.json",
"sha256": "43f49c20af8e181dcb46eed02b25833a37fec84d94f4581c5ef29a9caf4c1f23",
"checkpoint": "L10",
"manualAction": "User downloaded letter, dismissed any success popup and clicked Overview; 45-second passive window observed export and final dashboard.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 98,
"findings": [
{
"status": "Verified",
"finding": "Letter Download returned200 application/pdf from GET /api/letters/download. User reports completed export; no PDF body or local file inspected."
},
{
"status": "Verified",
"finding": "Overview opens populated My Cover Letters dashboard at /cover-letters with New letter tile, Letter1 thumbnail, relative edit time, A4 metadata and unnamed overflow button."
},
{
"status": "Verified",
"finding": "Dashboard thumbnail and AX retain copied sender, edited synthetic paragraph and new design after returning from editor."
},
{
"status": "Not Tested",
"finding": "Local PDF fidelity/accessibility, letter duplication/versions/overflow actions, letter mobile behavior, multiple-letter limit and live resume synchronization."
}
],
"namedInteractiveControls": []
},
{
"file": "L2-blank-cover-letter-editor-evidence.json",
"sha256": "24e17900e9ffdec33d708d2320f1a852679184ff72b38871d8b8952e985dfe3a",
"checkpoint": "L2",
"manualAction": "User clicked New blank in cover-letter gallery and left initial editor untouched.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 55,
"findings": [
{
"status": "Verified",
"finding": "New blank creates Letter 1 and opens /cover-letter/write with desktop content/preview split and Overview, Content, Customize, letter selector and Download controls."
},
{
"status": "Verified",
"finding": "Content cards: Sender details (Modern header), Date, Recipient details, Subject, Body, Signature. Cards have named Edit controls in AX."
},
{
"status": "Verified",
"finding": "Initial date is 21st October 2026; sender/recipient/subject/body/signature show Not added. Preview includes date and default greeting/signoff placeholders."
},
{
"status": "Verified",
"finding": "Existing resume contact data was not automatically populated into this initial blank letter state. No resume-data/design prompt observed after New blank."
},
{
"status": "Not Tested",
"finding": "Explicit resume-data import, sender editing, body formatting, signature input, letter autosave, matching designs, export and mobile letter editing."
}
],
"namedInteractiveControls": []
},
{
"file": "L3-letter-sender-form-evidence.json",
"sha256": "18c9cc6af92d59f6a9d4ffdcde0036009f1e6bb884e374e8d2c4b400fa3ec223",
"checkpoint": "L3",
"manualAction": "User opened Sender details without entering personal information.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 92,
"findings": [
{
"status": "Verified",
"finding": "Sender editor provides explicit Copy from resume button with accessible name Copy sender details from resume."
},
{
"status": "Verified",
"finding": "Sender style radios Modern Header (selected) and Classic Sender; fields Full name, Professional title, Email, Phone, Location; photo affordance and reorder grips for contact details."
},
{
"status": "Verified",
"finding": "Add details options include LinkedIn, Website, Nationality, Date of Birth, Visa, Passport or Id, Availability and Show More. Presence does not establish data validation or privacy defaults."
},
{
"status": "Not Tested",
"finding": "Copy source selection, which fields copy, one-time copy versus live synchronization, sender style change, photo upload and reorder behavior."
}
],
"namedInteractiveControls": [
[
"textbox",
"Full name"
],
[
"textbox",
"Professional title"
],
[
"textbox",
"Email"
],
[
"textbox",
"Phone"
],
[
"textbox",
"Location"
]
]
},
{
"file": "L4-copy-sender-prompt-evidence.json",
"sha256": "0e8ada0babb90c6da000315dd1e6cc92f06480fd4f6d91def81d98ca2afb7f9a",
"checkpoint": "L4",
"manualAction": "User clicked Copy from resume and paused at source-selection prompt.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 110,
"findings": [
{
"status": "Verified",
"finding": "Copy from resume opens source selector and explicit warning that current personal details and photo will be replaced."
},
{
"status": "Verified",
"finding": "Resume dropdown initially Select resume; Copy sender details disabled until source chosen. Cancel action present."
},
{
"status": "Inferred",
"finding": "Wording describes replacement/copy, suggesting snapshot semantics rather than live synchronization; actual cross-document update behavior remains untested."
},
{
"status": "Not Tested",
"finding": "Source selection list, successful import, copied field completeness, overwrite behavior with populated sender and later resume edits."
}
],
"namedInteractiveControls": [
[
"textbox",
"Full name"
],
[
"textbox",
"Professional title"
],
[
"textbox",
"Email"
],
[
"textbox",
"Phone"
],
[
"textbox",
"Location"
]
]
},
{
"file": "L5-sender-copied-evidence.json",
"sha256": "dba8eb01cab922d1be7de997a1ae7dbe55385a737b8922e7329d170b3abdcd63",
"checkpoint": "L5",
"manualAction": "User selected synthetic Resume 1 and confirmed Copy sender details; populated sender form and preview observed.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 219,
"findings": [
{
"status": "Verified",
"finding": "Copying from synthetic Resume 1 populates name, professional title, email, phone, location and optional website/nationality/ID/LinkedIn/birth-date/visa/availability fields. Those details appear in letter preview."
},
{
"status": "Verified",
"finding": "Modern Header remains selected and letter body stays blank with default greeting/signoff. Copy did not import experience or project paragraphs into body."
},
{
"status": "Inferred",
"finding": "Copy imports optional personal fields broadly rather than only core contact fields; a design recommendation should make this scope clear before replacement."
},
{
"status": "Not Tested",
"finding": "Photo copying, omitted-field removal, data synchronization after later edits, copy rollback, source provenance display and server persistence."
}
],
"namedInteractiveControls": [
[
"textbox",
"Full name"
],
[
"textbox",
"Professional title"
],
[
"textbox",
"Email"
],
[
"textbox",
"Phone"
],
[
"textbox",
"Location"
],
[
"textbox",
"Website"
],
[
"textbox",
"Nationality"
],
[
"textbox",
"ID Number"
],
[
"textbox",
"LinkedIn"
],
[
"textbox",
"Date of Birth"
],
[
"textbox",
"Visa Status"
],
[
"textbox",
"Availability"
]
]
},
{
"file": "L6-letter-body-autosave-evidence.json",
"sha256": "58f00115ba817b8c6f50593db12a5743bdfc44432748145e83ac9d5675345239",
"checkpoint": "L6",
"manualAction": "User clicked sender Done, opened Body, entered synthetic paragraph and paused without Done.",
"viewport": {
"width": 1661,
"height": 948
},
"accessibilityNodes": 118,
"findings": [
{
"status": "Verified",
"finding": "Body editor has Bold, Italic, Underline, Bulleted list, Insert link and four text alignment controls. Synthetic paragraph appears in editor and document preview before Done."
},
{
"status": "Verified",
"finding": "45-second window recorded two successful POST /api/letters/save_body requests, both 200 application/json. No content bodies, credential headers or query values retained."
},
{
"status": "Inferred",
"finding": "Save requests while form remains open are consistent with automatic saving before Done. Exact debounce, duplicate-request cause, storage semantics and reload durability remain unknown."
},
{
"status": "Not Tested",
"finding": "Richtext formatting effects, preview latency, request-error feedback, undo/redo for body content, grammar/AI assistance, signature image input and backend persistence after reload."
},
{
"status": "Verified",
"finding": "Body richtext textbox has an empty accessible name. Screenshot and AX show paragraph in bold in editor and preview; direct toolbar action sequence was not observed."
}
],
"namedInteractiveControls": []
},
{
"file": "L7-letter-customize-evidence.json",
"sha256": "868e83f3f221845df8aa15455d41dfc810fb493f50251393598c3b57f0eb5b91",
"checkpoint": "L7",
"manualAction": "User clicked body Done and opened letter Customize.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 413,
"findings": [
{
"status": "Verified",
"finding": "Letter Customize at /cover-letter/design has Copy resume design and Browse templates, plus anchor navigation for document, templates, layout, header, photo, font size, spacing, font, colors, links and footer."
},
{
"status": "Verified",
"finding": "Letter-specific controls include sender style, date/recipient drag reorder, position choices, declaration position/line and name emphasis; common typography/color/header/link/footer controls also appear."
},
{
"status": "Verified",
"finding": "Current design shows Modern Header, Source Sans Pro body, name Same as body font, base 11pt, line height1.5 and 16mm margins. Letter remains alongside controls; synthetic body and copied sender retained."
},
{
"status": "Not Tested",
"finding": "Copy resume design mapping/confirmation, letter template application, reordering letter blocks, photo/signature behavior, cover-letter undo/redo and matching export."
}
],
"namedInteractiveControls": []
},
{
"file": "L8-copy-resume-design-prompt-evidence.json",
"sha256": "bdd8fae2893f4adb87bd6b6ea4df4accb3c85c0173e30fc532660505e4ce2e34",
"checkpoint": "L8",
"manualAction": "User opened Copy resume design and selected Resume 1, pausing before Copy design.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 430,
"findings": [
{
"status": "Verified",
"finding": "Copy resume design opens source selector with explicit scope: matching colors, typography, spacing, layout, header and footer settings will be replaced."
},
{
"status": "Verified",
"finding": "Selected synthetic Resume 1 is shown; Copy design enabled and Cancel available. Data import is separate from design import."
},
{
"status": "Not Tested",
"finding": "Which settings map exactly, copied sender style, content preservation after apply, undo and continued synchronization."
}
],
"namedInteractiveControls": []
},
{
"file": "L9-resume-design-copied-evidence.json",
"sha256": "24d3bdcd2581c6668749a6c7f4965e82b9e1b8140537e09f370b690c1f70470a",
"checkpoint": "L9",
"manualAction": "User confirmed Copy design from synthetic Resume 1 and left resulting letter Customize visible.",
"viewport": {
"width": 1912,
"height": 948
},
"accessibilityNodes": 413,
"findings": [
{
"status": "Verified",
"finding": "Copy design closes dialog and updates letter preview/settings while retaining synthetic body and copied sender."
},
{
"status": "Verified",
"finding": "Name/professional-title offsets change +8/+2 to +11/+5; margins change from16mm to22mm horizontal/12mm vertical. Link icon becomes checked. Base11pt, Source Sans Pro and centered Modern Header remain."
},
{
"status": "Verified",
"finding": "Letter line-height now displays1.2, while captured resume line-height was1.15. This is a mapped compatible design, not demonstrated pixel-identical settings."
},
{
"status": "Inferred",
"finding": "Line-height difference may be rounding, clamping or document-specific mapping; implementation unknown and not inferred from pixels alone."
},
{
"status": "Not Tested",
"finding": "Live synchronization after resume changes, complete copied-setting equivalence, design-copy undo, export matching and letter-specific layout edge cases."
}
],
"namedInteractiveControls": []
},
{
"file": "M1-mobile-content-evidence.json",
"sha256": "ca7cd07ad839edd60286d0b93a6b1fa2d1865f5b6c880fd7f770174ec8fab1b9",
"checkpoint": "M1",
"manualAction": "User opened Content and manually configured narrow responsive viewport, then scrolled top. REA observed 390x840.",
"viewport": {
"width": 390,
"height": 840
},
"accessibilityNodes": 228,
"findings": [
{
"status": "Verified",
"finding": "At observed 390x840 viewport desktop split view becomes a single editing column. Top bar contains FlowCV logo and Menu; content cards remain full-width."
},
{
"status": "Verified",
"finding": "Fixed bottom action bar exposes Preview and Add Content. Preview document text is absent from current AX snapshot; content editor remains available."
},
{
"status": "Verified",
"finding": "Section order retains Skills above Education; synthetic new project remains in section inventory. Resume data survives the tested route and viewport transitions."
},
{
"status": "Not Tested",
"finding": "Real phone input/touch, mobile keyboard, screen rotation, horizontal overflow measurements, focus containment, mobile form editing, preview zoom and responsive breakpoints between desktop/mobile."
}
],
"namedInteractiveControls": []
},
{
"file": "M2-mobile-preview-evidence.json",
"sha256": "ea6252ea2e15638256af7575224f74e465e744164d48b98e417972089d3a993d",
"checkpoint": "M2",
"manualAction": "User tapped Preview from mobile bottom action bar and left overlay open without zooming.",
"viewport": {
"width": 390,
"height": 840
},
"accessibilityNodes": 380,
"findings": [
{
"status": "Verified",
"finding": "Preview opens an overlay with document pages scaled to narrow viewport width and stacked vertically. Keep editing and Download remain fixed at bottom."
},
{
"status": "Verified",
"finding": "Two page surfaces are visible, showing synthetic content and manual section order. No dedicated zoom or page-jump control is visible or named in current AX snapshot."
},
{
"status": "Verified",
"finding": "Underlying content controls remain in AX with Preview reported focused; overlay has no dialog role in this capture. Keyboard/focus behavior needs direct testing."
},
{
"status": "Not Tested",
"finding": "Pinch zoom, keyboard zoom, scroll-to-page behavior, background scroll lock, focus restoration, mobile export success and real-device viewport behavior."
}
],
"namedInteractiveControls": []
},
{
"file": "M3-mobile-experience-form-evidence.json",
"sha256": "6adb05dfcfe717fd59deca710aeffadf05bcdfdb2eb2e7954510897c11dcfd29",
"checkpoint": "M3",
"manualAction": "User returned from Preview and opened synthetic experience entry at mobile viewport.",
"viewport": {
"width": 390,
"height": 840
},
"accessibilityNodes": 81,
"findings": [
{
"status": "Verified",
"finding": "At 390x840, experience form stacks Job Title/Employer/Location/Description; Start Date and End Date remain side by side. Fixed bottom Preview and Done actions replace desktop Done card."
},
{
"status": "Verified",
"finding": "Richtext alignment changes from four separate desktop alignment buttons to named Text alignment: left dropdown. Bold/Italic/Underline/Bullets/Link remain visible."
},
{
"status": "Verified",
"finding": "Mobile top bar provides Content back navigation and Menu. Tips, hide and delete icons remain; date inputs still have identical MM/YYYY accessible names."
},
{
"status": "Not Tested",
"finding": "On-screen keyboard occlusion, typing/autosave on real phone, date validation, touch target sizes, mobile richtext editing and focus behavior."
}
],
"namedInteractiveControls": [
[
"textbox",
"Job Title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Location"
],
[
"textbox",
"Description"
]
]
},
{
"file": "M4-date-range-edge-evidence.json",
"sha256": "3b24b2b8abf0b4d1171f71ecd09414095bde18562028a043b64b744ba70f66c0",
"checkpoint": "M4",
"manualAction": "User tried earlier end date via picker, reported earlier year unavailable, and selected Jan 2026 while start remained Feb 2026. No Done/submit performed.",
"viewport": {
"width": 390,
"height": 840
},
"accessibilityNodes": 105,
"findings": [
{
"status": "Verified",
"finding": "Captured form simultaneously displays Start Date 02/2026 and End Date 01/2026, with Done available, no visible error and both AX textbox invalid states false."
},
{
"status": "Verified",
"finding": "Open end-date picker has Present (Current) unchecked, month selector including Jan-Dec/Remove month, and year option 2026/Remove year in captured AX."
},
{
"status": "Inferred",
"finding": "Likely month-level date-range validation gap: picker appears to restrict year but permits end month before start in same year. User could not choose 2025; server-side validation and persistence of invalid range not tested."
},
{
"status": "Not Tested",
"finding": "Done/submit behavior for invalid range, backend acceptance, direct typed values, current-date upper bound, year-only semantics, localization, validation after start-date change and exported invalid range."
}
],
"namedInteractiveControls": [
[
"textbox",
"Job Title"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"MM/YYYY"
],
[
"textbox",
"Location"
],
[
"textbox",
"Description"
]
]
}
],
"limits": "Original third-party PNG and DOM remain external research references. Contact-sheet visual inspection and selected DOM/AX inspection do not establish human/device testing."
}